Snapchat · Conversions API

A mobile audience, an in-app browser, and almost nothing that persists

The click leaves the Snapchat app inside an in-app browser that shares nothing with the main one. If the click identifier is not captured server-side on arrival, it will no longer exist when the order is placed.

POST /v3/{asset_id}/conversion
{
"event":"PURCHASE"
"user": {
"sc_click_id":"sccid_7a3f…d1"
"sc_cookie1":"scid_44b0…9e"
"em":"sha256:8f4e…c1a"
"ph":"sha256:2b7d…e90"
"external_id":"sha256:91af…33c"
"client_ip_address":"203.0.113.4"
"client_user_agent":"Mozilla/5.0…"
},
"properties": {
"price":84.90
"currency":"EUR"
"transaction_id":"#1175"
}
}
SHA-256 hashedclick identifiersent as-is
What Trackful actually sends to Snapchat for one order.

The problem

Why Snapchat measures so poorly without a server send

Everything that makes this channel effective works against browser-side measurement.

The in-app browser is a dead end

What is written in the app's internal browser does not exist in Safari or Chrome. A buyer who returns outside the app is, as far as measurement is concerned, an entirely new person.

A mobile audience in a hurry

Sessions are short and tabs close fast. The order confirmation page, where the pixel fires, is precisely the one least likely to be reached and held.

Lower volume, less tolerance

On a smaller-volume channel, a handful of missing conversions is enough to make a campaign look unprofitable. The margin for error is thinner here than elsewhere.

Match keys

What Snapchat accepts, and what we send

Personal data is SHA-256 hashed on your server. IP address and user agent are not, per version 3 of the API.

sc_click_id
The Snapchat click identifier, captured when the visitor lands. It is the strongest key on this channel and also the most fragile: it disappears as soon as the browsing context changes.
sc_cookie1
The identifier set by the Snapchat pixel, sent unhashed. It takes over when the click identifier is gone, which happens as soon as the buyer leaves the app.
em, ph, external_id
Email, phone and customer id, SHA-256 hashed. The phone is normalised from the buyer's actual country, never an assumed one.
client_ip_address, client_user_agent
Sent in the clear, with the visitor's real values. Version 3 of the API does not want a hashed IP, unlike the previous version.

Snapchat's rules

Constraints we respect on your behalf

Taken from the Conversions API parameter reference.

Consent denied, nothing sent

If the visitor declines advertising tracking, nothing goes to Snapchat. Unspecified consent limits the payload to click identifiers, with no personal data.

IP and user agent unhashed

Version 3 expects both fields in the clear. Hashing them, as the previous version did, means sending a value Snapchat cannot match, with no error anywhere to say so.

Deduplication with the pixel

The pixel and the server send must share a transaction identifier, otherwise the same sale is counted twice. Trackful generates it deterministically from the order.

Setup

Connected in minutes

  1. 1

    Enter the pixel

    Pixel id and access token, from your Snapchat Events Manager.

  2. 2

    Send a test

    A test conversion goes out immediately and you confirm Snapchat received it.

  3. 3

    Switch the channel on

    Once delivery is confirmed, leave the channel running. Trackful alerts you if sends stop landing.

Read the Snapchat documentation

Questions

Frequently asked

Should I keep the Snapchat pixel?

Yes. The pixel and the Conversions API complement each other, and the shared transaction identifier stops the same sale being counted twice. The pixel also remains useful for browsing events.

Why is the in-app browser a problem?

Because it has its own storage, separate from Safari or Chrome. An identifier written during the in-app visit is unreadable when the buyer returns from their usual browser. Capturing it server-side on arrival is the only way to keep it.

Does Snapchat accept backdated conversions?

We could not find a publicly documented age window for this channel. Trackful therefore does not filter events on that basis here, rather than inventing a limit that would drop valid conversions.

Is my customer data sent in the clear?

Email, phone and customer id are SHA-256 hashed on your server. IP address and user agent are sent in the clear, because version 3 of the Snapchat API requires it.

Trackful is not affiliated with or endorsed by Snap. Snapchat is a trademark of Snap Inc., referenced here to identify the service Trackful sends your conversions to.

Stop paying for results you cannot measure

Every day without Trackful is a day you make ad decisions with only 60% of the data. Install Trackful in 5 minutes and see the difference.

14 days free
No credit card
No developer
30-day guarantee