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 + access token (see below)Ad Account ID + token with ads_management
Google AdsCustomer ID of the operating account (not a manager) + conversion action + Enhanced conversions for leads turned onaccount eligible for Customer Match
GA4Measurement ID + API secretn/a (measurement only)
MixpanelProject token (+ US/EU residency)n/a (product analytics only)
TikTokPixel code + tokenAdvertiser ID + Audience (DMP) permission
SnapchatPixel ID + Conversions API tokenAd Account ID + Marketing API OAuth (client ID/secret + refresh token)
PinterestAd account ID + tokennothing extra
RedditAccount ID + conversion access tokenOAuth credentials from a developer app — on request
KlaviyoPrivate API keykey scoped lists:write + profiles:write
HubSpotPrivate App tokentoken scoped crm.lists.write
LinkedIn—activation only (Matched Audiences). On request: needs a LinkedIn-approved developer app
X (Twitter)—activation only (Custom Audiences). On request: 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 credentialsn/a (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.


Tokens that expire, and the one that doesn't

Most credentials on this page never expire: a Klaviyo, HubSpot, Mailchimp or GA4 key keeps working until you revoke it. A few ad platform tokens do expire — and when one does, nothing announces it. Deliveries start coming back 401, conversions stop arriving, and the first thing you notice is a ROAS drifting down for reasons that look like the market.

DestinationHow long its token lasts
MetaEvents Manager token: ~60 days · system user token: no expiry
LinkedIn~60 days — unless you fill the three OAuth fields, then we renew it for you
SnapchatConversions API token: no expiry. The OAuth used for audiences lasts 30 minutes, and we renew it
RedditConversion access token: no expiry. The OAuth used for audiences lasts 1 hour, and we renew it
Everything elseno expiry

Meta: generate a system user token

The token Events Manager offers under Generate access token belongs to you as a person: it dies after about 60 days, and also when you change your password. A system user token belongs to the business and has no expiry date. It takes ten minutes, once:

  1. Business settings → Accounts → Apps. Empty? Create an app at developers.facebook.com (type: Business) and add it here. No app review is required while only you use it.
  2. Business settings → Users → System users → Add. Any name, role Employee.
  3. Assign assets → your pixel (full control), plus your ad account if you want audience sync and automatic ad-spend import.
  4. Generate new token → pick the app → tick ads_management and business_management → leave the 60-day expiry box unticked → copy the token (shown once).

Paste it into the Meta tab, save, then press Check token: we ask Meta directly and tell you which of the two tokens you have and when it expires.


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.