Snapchat Ads

Add the Snapchat Conversions API without counting every result twice

The Snap Pixel runs in the visitor's browser, so blockers, short sessions and consent choices can lose events. The Conversions API sends the same events from your server. Running both is recommended by Snap, but only works well if you tell Snapchat which two events are the same one.

Why two channels, and what ties them together

Snap's guidance for web advertisers is to run the Conversions API alongside the pixel. Redundant data is accepted, and deduplication is what prevents double attribution. For that, every event must carry an event_id, and the pixel and the server must use the same value for the same real action. The documentation says deduplication matches on event_id and timestamp within a 48-hour window.

Generate the identifier at the moment the action happens, for example when the order or lead is created, and pass it to both channels. A random value created separately in the browser and on the server defeats the purpose. A stable internal ID, such as an order number or a lead record ID, is a natural choice.

Each server event needs the event name, the action source, the event time and the page URL, and user data with at least one match key such as a hashed email, a hashed phone, or the IP address together with the user agent. Purchase events also need a currency and value. Snap recommends passing the click ID and the _scid cookie value (sc_click_id and sc_cookie1) when you have them, because they improve matching to the original ad click.

Treat privacy as part of the design. Send only what you need, hash identifiers as the documentation requires, and send the event only when the visitor's consent status allows measurement. Do not put names or free text from a form into events.

What you gain

  • Fewer lost conversions when the browser blocks the pixel.
  • One real result counted once, not twice, thanks to a shared event_id.
  • Better matching to the ad click when click ID and cookie value are included.

Set it up in five steps

  1. List the actions you want to send from the server and decide where in your system each one is confirmed.
  2. Create the event_id once per action and pass the same value to the pixel call and to the server call.
  3. Hash the email and phone as the documentation requires and add the click ID and _scid cookie value where you have them.
  4. Send a test event and confirm in the account that it arrived and was not shown twice.
  5. Keep a small log of what is sent and when, so a drop in events can be traced to your side or to Snapchat.

Good to know

  • Never send an event without a legitimate basis for measurement. Check the consent rules that apply to your visitors.
  • AdAce Ads can send the Interview and Hire events to Snapchat from the server (Conversions API) using the click ID stored with the lead, a stable event_id and a hashed lead number, with the access token held encrypted. This part of the integration is in early access.

Sources and further reading

Ace, the AdAce Ads mascot

Try it on your own accounts

Create a workspace, connect Google or Meta in a couple of clicks and see your accounts clearly. Changes follow your approvals or the policy you configure.

Create your workspace