← All resources Guide

Snapchat Conversions API through your server container

Snapchat's Conversions API takes the same events as the Snap pixel, straight from your server. With both in place and deduplicated, Snapchat keeps measuring when the pixel is blocked and matches on hashed email, phone, IP address and the _scid cookie. Here is the setup from Measurebase.

What you need

Step 1 · Add it to your measurement setup

Open the domain in your dashboard, go to its Settings page and find Measurement setup. Tick the destination card and fill in the IDs below. Tokens and API keys are stored encrypted, outside the setup itself. The setup sends nothing on its own: it is the reference the tracking audit and the template builder work from, so what you fill in here is what the audit expects to find in your containers.

Step 2 · Generate and import the containers

Go to Resources → GTM templates in the dashboard. Under Destinations, tick the platform (Google Analytics 4 and the e-commerce events are on by default; pick the Shopify, WordPress or Shopware data layer if your site runs one of our plugins). Fill in the same IDs on the next step, choose Web + server under Containers and download the two JSON files.

In Google Tag Manager, open each container, go to Admin → Import Container, choose the matching file, pick a new workspace and Merge. The import only adds: new tags, triggers and variables with their own names, plus the gallery templates they need. Check the result in Preview, then publish.

Step 3 · What the import contains

Web container: the Snap pixel template from the gallery with Snap - _Config on initialisation and the events View Content, Add Cart and Purchase, a constant with your pixel ID and the Unique Event ID variable.

Server container: the Snapchat Conversion API template from the gallery with PAGE_VIEW, VIEW_CONTENT, ADD_CART, START_CHECKOUT and PURCHASE as server tags on the GA4 events, with value, currency, hashed email and phone, IP address and user agent.

Step 4 · One event ID for browser and server

A platform that receives the same event from a browser pixel and from a server tag counts it twice unless both carry the same event ID. The import takes care of that: the Unique Event ID variable creates one ID per event in the web container, the GA4 event settings send it to your server container as event_id, and both the pixel tag and the server tag send that same value in their deduplication field. The platform keeps one copy and discards the other.

With the Shopify app, the WordPress plugin or the Shopware plugin, a purchase that is also forwarded server-side carries the order number as mb_event_id, so the two purchase copies can be paired as well.

On the Snap side the field is called client_dedup_id; Snapchat keeps one copy of events that share it.

The imported tags carry the consent settings of the reference containers they were copied from. Check them against your own consent setup before you publish: a browser pixel should require ad_storage under Additional consent checks or fire on your consent tool's event, and the server tags should only send when the hit carries ad consent. The audit's consent checks and the guide on tags that fire before consent show how to verify both.

Step 6 · Test it

Events Manager shows browser and server events per pixel with their deduplication status; the server tag has a test mode while you check it.

On the Measurebase side, open the domain's Request logs: a browse through your site should show GA4 events arriving at your server container with a green 200. Open the server container's Preview mode to see the server tag fire on those events, with the event ID and the user data it picked up.

Cookies and click IDs

Cookie Keeper keeps Snapchat's first-party cookies alive past Safari's 7-day cap. Snapchat's click ID (ScCid) is not part of Click ID Restorer yet; the Conversions API matches on the cookie and the hashed customer data instead.

What the tracking audit checks

Every night the tracking audit compares your measurement setup with your live containers and your site. For every destination it checks that the tags exist in the container your setup expects, that the ID in the container matches the one in your setup, that a browser pixel and its server tag share an event ID, and which of the platform's cookies are still set after a visitor rejects. Findings open an alert the first time they appear; what the audit can fix, it proposes as a change in a separate Measurebase workspace in your container.

Frequently asked questions

Why is there no begin checkout tag in the web import?

The reference container only sends it from the server; the browser side covers content views, add to cart and purchase. Add a web tag for it by copying the add to cart tag if you want both copies.

Continue reading

Ready to move your tagging to Europe?

Start free, no credit card required. Live in about 15 minutes.

Start free