Destinations

A destination is somewhere your data goes. Connect them under Websites → your site → Destinations. Each one is independent: connect one, or all ten, in any order.


The three families

They are not interchangeable — what a destination receives depends on what it is.

FamilyDestinationsReceives
Ad platforms & analyticsMeta, Google Ads, GA4, TikTok, Snapchat, Pinterest, RedditSHA-256 hashes only — never an email in clear text
CRM & emailKlaviyo, HubSpot, Mailchimp, ActiveCampaignemail and phone in clear text, and only with consent
Your own infrastructureBigQuery, Snowflake, S3/R2, webhookraw events; personal data only if you switch it on

CRMs get clear text because they operate on your own customer relationships and can't work with hashes. Ad platforms never do, whatever you pass us.


What each one needs

DestinationFor eventsExtra, only for audience activation
MetaPixel ID + Conversions API tokenAd Account ID + token with ads_management
Google AdsCustomer IDaccount eligible for Customer Match
GA4Measurement ID + API secret— (measurement only)
MixpanelProject token (+ US/EU residency)— (product analytics only)
TikTokPixel code + tokenAdvertiser ID + Audience (DMP) permission
SnapchatPixel ID + tokenAd Account ID
PinterestAd account ID + tokennothing extra
RedditAccount ID + OAuth credentialsnothing extra
KlaviyoPrivate API keykey scoped lists:write + profiles:write
HubSpotPrivate App tokentoken scoped crm.lists.write
LinkedInAd account ID + access tokenactivation only (Matched Audiences) — syncs the segment as a DMP segment; token needs rw_dmp_segments and expires ~60 days
X (Twitter)Ads account ID + 4 OAuth 1.0a keysactivation only (Custom Audiences) — needs an approved X Ads API developer account
MailchimpAPI key + Audience IDactivation only — syncs contacts into your Audience, tagged with the segment name
ActiveCampaignAPI URL + API key + List IDactivation only — syncs contacts into your list, tagged with the segment name
Warehousetarget + its credentials— (export only)

Why there's a second column

Sending conversions and building audiences are different APIs at the same provider. Meta delivers events to your pixel, but Custom Audiences live on your ad account — two different objects.

So a destination can legitimately show Active for tracking and Needs setup for audiences. It's one connection, not two: usually just one extra field to fill in on the tab you already configured. The Segments page tells you exactly which field is missing.


Test event codes

Meta, TikTok, Snapchat and Pinterest accept an optional test event code. With one set, events show up in that platform's live debug view instead of counting in reporting.

Remove it when you go live. A test code left in place means your real conversions never reach reporting — and the campaign optimises on nothing.

Deduplication with your browser pixel

You do not need to remove your existing pixel. Browser and server events carry the same event_id; the platform sees the pair and counts one conversion. Keeping both is more robust: if the browser is blocked, the server still delivers.


Verify before you rely on it

Test all destinations on the Destinations tab fires one synthetic purchase to every configured platform in its test mode and reports what each answered:

  • ✅ accepted
  • ⏭️ skipped, with the reason (missing credentials, no click ID for this event, no consent…)
  • ❌ rejected, with the platform's error

Then watch Delivery for real traffic. See Testing & troubleshooting.


Disconnecting

Disconnect platform at the bottom of each tab removes the credentials and stops delivery immediately. Data already sent to that platform lives there under their retention rules — we can't recall it.