AB Tasty
Datafly Signal sends page views, goals and orders to AB Tasty server-to-server through the Universal Collect API, the same collection pipeline (ariane) the AB Tasty tag posts to. Hits are attributed to the visitor’s running campaigns through the visitor id and campaign history in the first-party ABTasty cookie.
Campaign allocation and rendering stay in the browser with the AB Tasty tag. Signal adds the goals and transactions the tag can miss.
Why route AB Tasty through Datafly Signal
- Events arrive when the browser cannot send them. Server-side delivery is not stopped by ad blockers, tracking prevention or a page unload.
- One consent decision governs every destination. The integration is gated by the same consent state as the rest of your stack.
Prerequisites
- An AB Tasty account with the AB Tasty tag on the site (it sets the
ABTastycookie). - Your account identifier (
cid), the 32-character hexadecimal tag identifier in the tag snippet. - Signal capturing the
ABTastycookie: the visitor id asabtasty_visitor_idand the cookie value (or itsthcampaign-history segment) asabtasty_campaign.
Configuration
| Field | Required | Description |
|---|---|---|
site_id | Yes | Your AB Tasty account identifier (the JS tag identifier). Found in your AB Tasty settings in the tag snippet. Sent as the cid field on every hit. |
Configure in Signal
Add the integration
Go to Integrations > Add Integration > AB Tasty.
Choose a preset
Default (page views, sign-ups, leads, orders), Ecommerce / Retail (the shopping funnel as goals) or Lead Generation.
Enter the configuration
Fill in the fields in the table above.
Select consent categories
Choose the categories that gate experimentation analytics for your site, typically analytics.
Save
Signal delivers the next matching event.
API Endpoint
POST https://ariane.abtasty.com
Content-Type: application/json
User-Agent: <the visitor's user agent>One flat JSON hit per request. Every hit carries cid, vid and t. AB Tasty rejects a hit with an empty User-Agent as bot traffic, so Signal sends the visitor’s own user agent as the header.
Identity Signals
| Signal | Sent as | Notes |
|---|---|---|
| AB Tasty visitor id | vid | From collected_ids.abtasty_visitor_id. A visitor without it is skipped by the preset’s filter (not dead-lettered). |
| Campaign history | c | {campaignId: variationId} parsed from collected_ids.abtasty_campaign. Without it AB Tasty attributes the hit to no campaign. |
| User language | ul | The locale, lower-cased. |
| Screen resolution | sr | widthxheight, when known. |
Event Mapping
Default preset (default)
Pageviews, sign-ups, leads and orders as AB Tasty PAGEVIEW, EVENT (Action Tracking) and TRANSACTION hits. Identity is the AB Tasty visitor id from the first-party ABTasty cookie (collected_ids.abtasty_visitor_id -> vid; a visitor without it is not sent); the campaign history c is parsed from collected_ids.abtasty_campaign (the cookie’s th segment) into {campaignId: variationId}, without which AB Tasty attributes a hit to no campaign.
| Signal event | Sent as | Enabled |
|---|---|---|
page | PAGEVIEW | Yes |
sign_up | EVENT | Yes |
generate_lead | EVENT | Yes |
purchase | TRANSACTION | Yes |
Ecommerce / Retail preset (ecommerce)
The shopping funnel as AB Tasty goals: product views, add to cart, cart and checkout steps as Action Tracking EVENT hits (el = first item name), the order as a TRANSACTION hit (tid, tr, tc, ts, tt, tcc, pm, sm, icn). Identity is the AB Tasty visitor id from the first-party ABTasty cookie (collected_ids.abtasty_visitor_id -> vid; a visitor without it is not sent); the campaign history c is parsed from collected_ids.abtasty_campaign (the cookie’s th segment) into {campaignId: variationId}, without which AB Tasty attributes a hit to no campaign.
| Signal event | Sent as | Enabled |
|---|---|---|
page | PAGEVIEW | Yes |
view_item | EVENT | Yes |
add_to_cart | EVENT | Yes |
view_cart | EVENT | Yes |
begin_checkout | EVENT | Yes |
add_payment_info | EVENT | Yes |
purchase | TRANSACTION | Yes |
sign_up | EVENT | Yes |
login | EVENT | Yes |
Lead Generation preset (lead_gen)
Lead and sign-up goals for experiments on lead-generation sites: pageviews plus Action Tracking EVENT hits for leads, demo requests, sign-ups and logins. Identity is the AB Tasty visitor id from the first-party ABTasty cookie (collected_ids.abtasty_visitor_id -> vid; a visitor without it is not sent); the campaign history c is parsed from collected_ids.abtasty_campaign (the cookie’s th segment) into {campaignId: variationId}, without which AB Tasty attributes a hit to no campaign.
| Signal event | Sent as | Enabled |
|---|---|---|
page | PAGEVIEW | Yes |
generate_lead | EVENT | Yes |
demo_requested | EVENT | Yes |
sign_up | EVENT | Yes |
login | EVENT | Yes |
To customise, edit the integration’s Field Mappings in the Management UI.
Example: an order (TRANSACTION hit)
What Signal sends (rendered from the preset):
POST https://ariane.abtasty.com{
"c": {
"123456": "654321",
"789012": "210987"
},
"cid": "3d09baddc21a365b7da5ae4d0aa5cb95",
"ds": "web",
"icn": 3,
"pm": "paypal",
"sm": "Express",
"sr": "1440x900",
"t": "TRANSACTION",
"ta": "Purchase",
"tc": "GBP",
"tcc": "AUTUMN",
"tid": "T-1001",
"tr": 279.98,
"ts": 4.95,
"tt": 46.66,
"ul": "en-gb",
"vid": "xst8a1w2a2630rtc"
}Testing
Send a test event
Trigger the event on your site, or replay one from Signal’s event debugger.
Check the response
Confirm a 2xx response in the event debugger, then check the goal or transaction in the campaign’s AB Tasty report.
Troubleshooting
| Problem | Solution |
|---|---|
| Hits accepted but not in any campaign report | c is missing: check that Signal captures the ABTasty cookie as abtasty_campaign. |
| Nothing is sent | The visitor has no ABTasty cookie yet, so there is no vid. The AB Tasty tag must run first. |
| Transaction goal missing | Transactions are sent with ta = Purchase; select that goal in the report. |
Limitations
- Per-line ITEM hits are not sent; the TRANSACTION hit carries the unit count (
icn). dlanddrare URL-encoded (by the preset’s script), as in AB Tasty’s documented PAGEVIEW request and its own tag.ev(event value) is not sent: AB Tasty documents a positive integer and Signal’s values are money amounts.