Supported Destinations
SweetCode Cloud forwards tracking events to thirteen destinations: ten major ad platforms plus Google Analytics 4, Mixpanel and Klaviyo. All destinations are available on every plan, including the free tier. Configuration is automatically synced from Pixel Manager for WooCommerce — you never need to manually enter credentials in the SweetCode Cloud dashboard.
How Destination Sync Works
Section titled “How Destination Sync Works”- Configure your ad platform destinations in Pixel Manager for WooCommerce (API tokens, pixel IDs, etc.)
- Paste your SweetCode Cloud Sync Token into the Pixel Manager settings
- Pixel Manager pushes the destination configuration to SweetCode Cloud automatically
- Credentials are encrypted with AES-GCM before storage — they’re never visible in the dashboard, only masked previews (e.g.
sk-****...7f3a)
When you update credentials or add/remove a destination in Pixel Manager, changes sync automatically. You can also trigger a manual resync from the domain detail page.
Event Mapping
Section titled “Event Mapping”Each SSP event type is mapped to the corresponding platform-specific event name:
| SSP Event | Meta (Facebook) | TikTok | Snapchat | OpenAI | Nextdoor | Microsoft Advertising | Google GA4 | Mixpanel | Klaviyo | Spotify Ads | AppLovin | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
PageVisit | PageView | Pageview | page_visit | PAGE_VIEW | PageVisit | page_viewed | page_view | page_view | page_view | Page Viewed | (not sent) | VIEW | page_view |
ViewContent | ViewContent | ViewContent | view_category | VIEW_CONTENT | ViewContent | contents_viewed | view_content | view_item | view_item | Product Viewed | Viewed Product | PRODUCT | view_item |
Search | Search | Search | search | SEARCH | Search | custom | search | search | search | Products Searched | Submitted Search | (not sent) | search |
AddToCart | AddToCart | AddToCart | add_to_cart | ADD_CART | AddToCart | items_added | add_to_cart | add_to_cart | add_to_cart | Product Added to Cart | Added to Cart | ADD_TO_CART | add_to_cart |
AddToWishlist | AddToWishlist | AddToWishlist | add_to_wishlist | ADD_TO_WISHLIST | AddToWishlist | custom | add_to_wishlist | add_to_wishlist | add_to_wishlist | Product Added to Wishlist | Added to Wishlist | (not sent) | (not sent) |
Purchase | Purchase | CompletePayment | checkout | PURCHASE | Purchase | order_created | purchase | purchase | purchase | Order Completed | Placed Order | PURCHASE | purchase |
Lead | Lead | SubmitForm | lead | SIGN_UP | Lead | lead_created | lead | generate_lead | generate_lead | Lead Submitted | Submitted Lead | LEAD | generate_lead |
SignUp | CompleteRegistration | CompleteRegistration | signup | SIGN_UP | SignUp | registration_completed | sign_up | sign_up | sign_up | Signed Up | Signed Up | SIGN_UP | sign_up |
Custom | CustomEvent | CustomEvent | custom | CUSTOM_EVENT_1 | Custom | custom | custom_conversion_1 | custom | custom_event | Custom Event | Custom Event | CUSTOM_EVENT_1 | (not sent) |
Klaviyo’s PageVisit cell is empty on purpose: klaviyo.js reports Active on Site itself, so the proxy sends no page view to Klaviyo.
Spotify’s Conversions API has no search or wishlist event, so those rows are empty for Spotify. Its CHECK_OUT event has no SSP-canonical counterpart and is sent by Pixel Manager directly.
AppLovin has no wishlist or custom event in its standard set, so those rows are empty for AppLovin. Its begin_checkout, view_cart, remove_from_cart and other events are sent by Pixel Manager directly under the same names the AppLovin pixel uses.
Section titled “AppLovin has no wishlist or custom event in its standard set, so those rows are empty for AppLovin. Its begin_checkout, view_cart, remove_from_cart and other events are sent by Pixel Manager directly under the same names the AppLovin pixel uses.”Meta Conversions API
Section titled “Meta Conversions API”API: Facebook Graph API v21.0
SweetCode Cloud sends events to Meta’s Conversions API, which is used by Facebook Ads, Instagram Ads, and the broader Meta advertising ecosystem. Server-side events sent through the Conversions API are matched with browser-side pixel events for improved attribution and deduplication.
Required Configuration (in Pixel Manager)
Section titled “Required Configuration (in Pixel Manager)”| Field | Where to Find It | | --------------- | --------------------- | ---------------------------------------------------------- | | Access Token | Meta Events Manager → Settings → Generate Access Token | | Pixel ID | Meta Events Manager → Data Sources → Your Pixel → Pixel ID |
Optional
Section titled “Optional”- Test Event Code — Used to send events to the Meta Test Events tool for debugging without affecting production data. Found in Events Manager → Test Events.
How It Works
Section titled “How It Works”Each event is sent as a POST request to https://graph.facebook.com/v21.0/{pixelId}/events with the access token as a query parameter. User data (email, IP, user agent, click IDs) is included for advanced matching.
TikTok Events API
Section titled “TikTok Events API”API: TikTok Business API v1.3
SweetCode Cloud forwards events to TikTok’s Events API for server-side ad measurement and optimization. Like Meta, TikTok uses these events alongside browser-side pixel data for improved attribution.
Required Configuration (in Pixel Manager)
Section titled “Required Configuration (in Pixel Manager)”| Field | Where to Find It | | --------------- | --------------------- | ------------------------------------------------------- | | Access Token | TikTok Ads Manager → Assets → Events → Manage → Settings → Generate Access Token | | Pixel ID | TikTok Ads Manager → Assets → Events → Your Pixel ID |
Optional
Section titled “Optional”- Test Event Code — Used to send events in test mode for debugging.
How It Works
Section titled “How It Works”Events are sent as a POST request to https://business-api.tiktok.com/open_api/v1.3/event/track/ with the access token in the Access-Token header.
Pinterest Conversions API
Section titled “Pinterest Conversions API”API: Pinterest API v5
SweetCode Cloud sends conversion events to Pinterest’s API for ad measurement and optimization. Pinterest uses ad account IDs rather than pixel IDs for server-side event delivery.
Required Configuration (in Pixel Manager)
Section titled “Required Configuration (in Pixel Manager)”| Field | Where to Find It | | --------------- | --------------------- | -------------------------------------------------------- | | Access Token | Pinterest Business → Apps → Generate Token | | Ad Account ID | Pinterest Ads Manager → Your ad account ID |
Optional
Section titled “Optional”- Test Event Code — Used to send events in test mode for debugging.
How It Works
Section titled “How It Works”Events are sent as a POST request to https://api.pinterest.com/v5/ad_accounts/{adAccountId}/events with the access token in the Authorization header.
Snapchat Conversions API
Section titled “Snapchat Conversions API”API: Snapchat Conversions API v3
SweetCode Cloud forwards events to Snapchat’s Conversions API for ad attribution and optimization.
Required Configuration (in Pixel Manager)
Section titled “Required Configuration (in Pixel Manager)”| Field | Where to Find It | | --------------- | --------------------- | -------------------------------------------------------- | | Access Token | Snapchat Ads Manager → Business Settings → Generate Token | | Pixel ID | Snapchat Ads Manager → Events Manager → Your Pixel ID |
Optional
Section titled “Optional”- Test Event Code — Used to send events in test mode for debugging.
How It Works
Section titled “How It Works”Events are sent as a POST request to https://tr.snapchat.com/v3/{pixelId}/events with the access token in the Authorization header.
Reddit Conversions API
Section titled “Reddit Conversions API”API: Reddit Conversions API v3
SweetCode Cloud sends conversion events to Reddit’s Ads API for campaign measurement and optimization.
Required Configuration (in Pixel Manager)
Section titled “Required Configuration (in Pixel Manager)”| Field | Where to Find It | | --------------- | --------------------- | -------------------------------------------------------- | | Access Token | Reddit Ads → Pixel → Conversions API → Generate Token | | Pixel ID | Reddit Ads → Pixel → Your Pixel ID |
How It Works
Section titled “How It Works”Events are sent as a POST request to https://ads-api.reddit.com/api/v3/pixels/{pixelId}/conversion_events with the access token in the Authorization header.
OpenAI Conversions API
Section titled “OpenAI Conversions API”API: OpenAI Conversions API
SweetCode Cloud sends conversion events to OpenAI’s Ads measurement API for campaign measurement and optimization.
Required Configuration (in Pixel Manager)
Section titled “Required Configuration (in Pixel Manager)”| Field | Where to Find It | | --------------- | --------------------- | -------------------------------------------------------- | | Access Token | OpenAI Ads Manager → Conversions tab → API key | | Pixel ID | OpenAI Ads Manager → Conversions tab → Your pixel ID |
How It Works
Section titled “How It Works”Events are sent as a POST request to https://bzr.openai.com/v1/events?pid={pixelId} with the access token in the Authorization header. Monetary values are sent as integer ISO 4217 minor units (e.g. 12999 for $129.99).
Nextdoor Conversion API
Section titled “Nextdoor Conversion API”API: Nextdoor Conversion API
SweetCode Cloud sends conversion events to Nextdoor’s Conversion API for campaign measurement and optimization.
Required Configuration (in Pixel Manager)
Section titled “Required Configuration (in Pixel Manager)”| Field | Where to Find It |
|---|---|
| Access Token | Nextdoor Ads Manager → Ads API settings → Generate token |
| Pixel ID | Nextdoor Ads Manager → Assets → Pixels → Your pixel ID (a UUID) |
| Test Event Code | Optional. Any string; flags events as test events in Nextdoor |
How It Works
Section titled “How It Works”Events are sent as a POST request to https://ads.nextdoor.com/v2/api/conversions/track with the access token in the Authorization header. Nextdoor accepts one event per request. The pixel ID is sent as data_source_id, and the event timestamp is stamped server-side as event_time_epoch (Unix seconds).
Pixel Manager sends the same event_id to the Nextdoor browser pixel and the Conversion API, so Nextdoor deduplicates the two channels automatically. The Nextdoor click ID (ndclid) is forwarded as customer.click_id for attribution.
Spotify Conversions API
Section titled “Spotify Conversions API”API: Spotify Conversions API
SweetCode Cloud sends conversion events to Spotify’s Conversions API for campaign measurement and attribution in Spotify Ad Analytics.
Required Configuration (in Pixel Manager)
Section titled “Required Configuration (in Pixel Manager)”| Field | Where to Find It |
|---|---|
| Connection ID | Spotify Ads Manager → Events → Connect Data Source → Conversions API (a UUID) |
| Access Token | Generated next to the connection ID. Spotify allows up to three tokens at a time |
| Pixel ID | Spotify Ad Analytics → Manage → Your Pixels. Used by the browser pixel |
How It Works
Section titled “How It Works”Events are sent as a POST request to https://capi.spotify.com/capi-direct/events/ with the access token in the Authorization header. The body wraps the events in a conversion_events object carrying the connection ID, which is what the conversions are attributed to. The connection ID always comes from the synced configuration, never from the forwarded payload.
The event timestamp is stamped server-side as an ISO 8601 string. Spotify is the only destination here that takes a timestamp in that form; the others take a Unix number.
Pixel Manager sends the same event_id to the Spotify browser pixel and the Conversions API, so Spotify deduplicates the two channels. Spotify matches conversions on the hashed email address and publishes no click ID, so the email is sent whenever the Conversions API is configured rather than only under Advanced Matching.
AppLovin Conversion API
Section titled “AppLovin Conversion API”API: AppLovin Axon Conversion API
SweetCode Cloud sends conversion events to the AppLovin Axon Conversion API for campaign measurement and optimization in AppLovin’s Axon Ads Manager.
Required Configuration (in Pixel Manager)
Section titled “Required Configuration (in Pixel Manager)”| Field | Where to Find It |
|---|---|
| Event Key | AppLovin dashboard, Account > General > Keys. The same key the browser pixel uses |
| Conversion API Key | AppLovin dashboard, Keys page. If it is not listed there, AppLovin support issues one |
How It Works
Section titled “How It Works”Events are sent as a POST request to https://b.applovin.com/v1/event?pixel_id=<event key>, with the Conversion API key as the bare Authorization header value (no Bearer prefix). The body wraps the events in an events array. The event key always comes from the synced configuration, never from the forwarded payload.
The event timestamp is stamped server-side in Unix milliseconds, where most destinations here take seconds.
AppLovin’s pixel and its Conversion API share one GA4-style set of event names (page_view, view_item, add_to_cart, begin_checkout, purchase and so on), so Pixel Manager’s events are forwarded under the names it already uses. Pixel Manager sends the same dedupe_id to the AppLovin pixel and the Conversion API, so AppLovin counts each event once.
AppLovin requires at least one user identifier on every event: the AppLovin pixel’s visitor ID (axwrt), alart, client_id, a user ID, or an email address or phone number. The client IP and user agent do not count. An event that carries none, or that has no event name or source URL, is not sent and shows up in the event log as denied with the reason.
Microsoft Advertising Conversions API
Section titled “Microsoft Advertising Conversions API”API: Microsoft Advertising Conversions API (UET)
SweetCode Cloud sends conversion events to Microsoft Advertising’s Conversions API, the server-side counterpart of the Universal Event Tracking (UET) tag. It feeds conversion goals, remarketing audiences and dynamic remarketing for Microsoft Advertising and the Microsoft Audience Network.
Required Configuration (in Pixel Manager)
Section titled “Required Configuration (in Pixel Manager)”| Field | Where to Find It |
|---|---|
| UET Tag ID | Microsoft Advertising → Tools → UET tag → your tag (7 to 9 digits) |
| Access Token | Microsoft Advertising → Tools → UET tag → edit the tag → Set up tagging → Use Conversions API → Copy Token |
The token is scoped to a single UET tag, so the tag ID and the token always belong together. Both are required before the destination is synced.
How It Works
Section titled “How It Works”Events are sent as a POST request to https://capi.uet.microsoft.com/v1/{tagId}/events with the token in the Authorization header. The UET tag ID is part of the URL, so it is always taken from the synced configuration and never from the event payload. Events are wrapped in a data array with continueOnValidationError set, so one malformed event never takes a whole batch down, and dataProvider identifies Pixel Manager as the sender.
Each event carries eventType: "custom", the UET event name, the shared eventId, a server-side eventTime (Unix seconds), the page context (eventSourceUrl, referrerUrl, pageTitle) and the ecommerce fields Microsoft uses for dynamic remarketing: pageType, itemIds, items, value, ecommTotalValue, ecommCategory, currency and transactionId.
Pixel Manager pushes the same event_id to the UET tag in the browser and to the Conversions API, so Microsoft deduplicates the two channels automatically. The Microsoft click ID (msclkid) is captured on the landing page and forwarded as userData.msclkid, alongside the UET visitor ID (anonymousId), the client IP address and the user agent. With Microsoft Enhanced Conversions enabled, the SHA-256 hashed email and phone number are sent as em and ph.
Google Analytics 4 (Measurement Protocol)
Section titled “Google Analytics 4 (Measurement Protocol)”API: GA4 Measurement Protocol
SweetCode Cloud forwards events to Google Analytics 4 via the Measurement Protocol. Unlike the ad platforms above, GA4 is an analytics destination — events appear in your GA4 property’s reports rather than feeding an ad network’s conversion optimization.
Required Configuration (in Pixel Manager)
Section titled “Required Configuration (in Pixel Manager)”| Field | Where to Find It |
| --------------- | --------------------- | --------------------------------------------------------------------------------- |
| Measurement ID | GA4 Admin → Data Streams → Your web stream → Measurement ID (looks like G-XXXXXXX) |
| API Secret | GA4 Admin → Data Streams → Your web stream → Measurement Protocol API secrets → Create |
How It Works
Section titled “How It Works”Events are sent as a POST request to https://www.google-analytics.com/mp/collect with the Measurement ID and API secret as query parameters.
Mixpanel Ingestion API
Section titled “Mixpanel Ingestion API”API: Mixpanel Ingestion API (/track)
SweetCode Cloud forwards purchases to Mixpanel via the Ingestion API. Like GA4, Mixpanel is an analytics destination: events land in your Mixpanel project’s reports rather than feeding an ad network’s conversion optimization.
Required Configuration (in Pixel Manager)
Section titled “Required Configuration (in Pixel Manager)”| Field | Where to Find It |
|---|---|
| Project Token | Mixpanel → Settings → Project Settings → Project Token (32 hexadecimal characters) |
| Data Residency | The region your Mixpanel project lives in: US (default), EU or India |
How It Works
Section titled “How It Works”Events are sent as a POST request to https://api.mixpanel.com/track?verbose=1, with the project token inside the event properties. Mixpanel authenticates /track with that token alone, so there is no second credential to configure.
The data residency setting decides which regional host receives the events: api.mixpanel.com for US projects, api-eu.mixpanel.com for EU projects and api-in.mixpanel.com for Indian projects. This matters more than it looks: Mixpanel does not ingest events that reach the wrong region, and it does not report an error either. EU projects have a Mixpanel URL starting with eu.mixpanel.com, Indian projects with in.mixpanel.com.
Event timestamps are stamped server-side as time in Unix milliseconds. Each purchase carries a deterministic $insert_id derived from the WooCommerce order ID, so a retried delivery can never be counted twice. Pixel Manager captures the Mixpanel distinct_id from the browser during checkout and sends it with the purchase, which keeps the server-side order on the same Mixpanel user as the browser events — without it, purchases would land on a separate anonymous user and every funnel ending in a purchase would break.
The customer’s IP address is forwarded as the ip event property, which Mixpanel uses for geolocation and then drops. Without it, Mixpanel would geolocate every proxied event to the Cloudflare edge instead of the customer.
Klaviyo Events API
Section titled “Klaviyo Events API”API: Klaviyo Events API (/api/event-bulk-create-jobs)
SweetCode Cloud forwards purchases and their line items to Klaviyo through the Events API. Klaviyo is an email and SMS marketing destination: the events feed the merchant’s flows, segments and revenue reports rather than an ad network’s conversion optimization.
Pixel Manager only syncs this destination while it reports orders to Klaviyo itself, that is with a private key configured and without the official Klaviyo WooCommerce plugin active. With that plugin installed, Klaviyo produces Placed Order from its own order sync of the shop, and Klaviyo does not deduplicate a proxied event against it, so forwarding one would double every order in Klaviyo. Pixel Manager’s onsite Klaviyo events (Viewed Product, Added to Cart, Started Checkout and the rest) go to Klaviyo’s public client endpoint from the browser and never pass through the proxy.
Required Configuration (in Pixel Manager)
Section titled “Required Configuration (in Pixel Manager)”| Field | Where to Find It |
|---|---|
| Public API Key | Klaviyo → Settings → Account → API keys, the 6 character Site ID |
| Private API Key | Klaviyo → Settings → Account → API keys, a private key with the Events write scope, starting with pk_ |
How It Works
Section titled “How It Works”Each order is sent as one bulk event-create job to https://a.klaviyo.com/api/event-bulk-create-jobs: the customer’s profile carrying a Placed Order event plus one Ordered Product event per line item, the same pair Klaviyo’s own WooCommerce integration produces and that its prebuilt flows trigger on. The private key travels in the Authorization header, injected at the edge from the synced configuration and never taken from the payload. Every request is pinned to API revision 2026-07-15.
Every metric carries service: woocommerce. Klaviyo keys its metrics on name plus integration, and that tag puts the proxied events on the same metric Klaviyo’s WooCommerce integration uses instead of a generic API metric of the same name, so a merchant’s flows and segments keep working when the shop later connects that integration.
Event timestamps are stamped server-side as ISO 8601, unlike every epoch-based destination. Each event carries a deterministic unique_id derived from the WooCommerce order ID (pmw_<order_id> and pmw_<order_id>_<item_id>), and Klaviyo keeps only the first event per profile, metric and unique_id, so a retried delivery can never be counted twice. Pixel Manager captures the anonymous Klaviyo identity from the __kla_id cookie during checkout and sends it as _kx next to the billing email, which merges the browsing profile into the customer’s profile. Without it, a server-side order would land on a fresh anonymous profile.
The Events API has no client IP or user agent field on the event, so neither is forwarded.
Verifying Destination Events
Section titled “Verifying Destination Events”After connecting your destinations through Pixel Manager and SweetCode Cloud, verify that events are being received by each platform:
- SweetCode Cloud Dashboard — Go to the Events page and check that events show a success outcome for each destination
- Meta Events Manager — Check the “Server Events” tab for incoming events
- TikTok Events Manager — View the event activity in your pixel’s dashboard
- Pinterest Conversions — Check the conversion events in your ad account
- Snapchat Events Manager — View events under your pixel
- Reddit Ads Dashboard — Check the conversions tab in your pixel settings
- OpenAI Ads Manager — Check the event activity in the Conversions tab
- Nextdoor Ads Manager — Check the event activity under Assets → Pixels
- Spotify Ad Analytics — Check the conversion activity under Manage → Your Pixels
- AppLovin Axon Ads Manager: check the event activity for your pixel
- Microsoft Advertising — Open Tools → UET tag and check the tag status and recent activity, then Conversions for the goal itself
- Google Analytics 4 — Open the Realtime report (or DebugView for test traffic) in your GA4 property
- Mixpanel — Open Events in your Mixpanel project and filter for
Order Completed - Klaviyo — Open Analytics → Metrics in Klaviyo and look for
Placed Orderwith the WooCommerce integration icon, then open a profile’s activity feed to see the order
If events show a failed outcome in SweetCode Cloud, click on the event to see the error message from the destination API. Common issues include expired access tokens and incorrect pixel/account IDs — see the Troubleshooting guide for fixes.