SNAPCHAT CONVERSION TRACKING

Snapchat Conversions API tracking for your Shopify store

WeProfit sends your Shopify purchases and checkout steps to the Snapchat Conversions API from its own server, with each order’s purchase sent once as PURCHASE. Connect your Snap Pixel with a Conversions API token and check each event in the delivery log. Snapchat ad spend is not synced: you add it by hand, as a daily schedule or through the API.

What is the Snapchat Conversions API?

Snap’s Conversions API lets a server pass web conversion events straight to Snapchat through a server-to-server integration, next to the events the Snap Pixel sends from the shopper’s browser. Snap recommends that web advertisers use it alongside the pixel.

With WeProfit, a Shopify purchase reaches Snapchat as PURCHASE, sent from WeProfit’s servers to the Snap Pixel you connect. Snapchat is included in every WeProfit plan, with Meta, Google, TikTok, Pinterest, X Ads, Microsoft (pilot), Reddit, LinkedIn and Taboola.

Connect Snapchat in WeProfit

Connect your Shopify store first. Snapchat delivery needs two values: your Snap Pixel ID and a Conversions API token. Only an Organization Admin of your Snapchat business can create that token.

  1. In Snap Ads Manager, open the menu at the top left, select Events Manager and click your pixel. Copy the Pixel ID shown at the top: a long code with dashes.
  2. To create the token, open the menu in Ads Manager and select Business Details. Go to Conversions API Tokens and select Generate Token, then copy the token.
  3. Use that Conversions API token. The access token shown in Events Manager’s Event Source Setup is a different type of token and does not work for this connection.
  4. In WeProfit, open Ad Networks > Snapchat and select Add destination. Enter the Snap Pixel ID and the Conversions API token. A label is optional and helps when you connect more than one pixel.
  5. Leave Conditions empty to send every eligible event, or add conditions such as country, event, order value or campaign to limit what this pixel receives. Then select Connect Snapchat.
  6. Select Send test. WeProfit sends a test event to Snap’s validation endpoint, which checks whether an event is built correctly, and shows whether Snap accepted it. WeProfit’s Snapchat destination has no test event code, so there is no test mode for live events.

Purchases and checkout events sent to Snapchat

From a Shopify store, WeProfit sends Snapchat your purchases and two checkout steps that its web pixel records: checkout started and payment information added. Purchases come from Shopify’s order webhook, and each order’s purchase goes at most once to each connected pixel.

WeProfit sends an event to Snapchat only when it carries at least one of the match keys Snap asks for: a hashed email address, a hashed phone number, or both an IP address and a user agent. It sends a PURCHASE only with a value and a currency. It skips events that miss them, and a skipped event gets no row in the delivery log.

Snap’s list of standard events has no lead event, so WeProfit skips leads for Snapchat rather than sending them under another name. Custom events and refunds are not sent to Snapchat, and nothing withdraws a purchase Snapchat already received.

Each purchase carries the order total as Shopify reports it, in the order’s currency, the products with their IDs, quantities and prices, the number of items and the Shopify order ID as order_id.

Purchase and checkout events in Snapchat
Store eventSnapchat event
Checkout startedSTART_CHECKOUT
Payment information addedADD_BILLING
PurchasePURCHASE

Customer details sent with each purchase

To help Snapchat match a purchase to a Snapchat user, WeProfit sends details from the Shopify order, hashed with SHA-256: the buyer’s email address and phone number, and the first and last name, city, state, ZIP code and country from the shipping address, or else the billing address. The IP address and user agent go unhashed. When WeProfit has it, it also sends an external ID, a SHA-256 hash of WeProfit’s visitor ID.

When WeProfit has them, the purchase also carries Snapchat’s click ID and cookie: the ScCid value that Snapchat adds to your landing page URL when someone clicks your ad, sent as sc_click_id, and the Snap Pixel’s _scid cookie, sent as sc_cookie1. WeProfit does not load the Snap Pixel, so the _scid cookie only exists when your store runs it.

Snap Pixel and Conversions API: avoid counting twice

Snap matches a Snap Pixel event with a Conversions API event for the same Pixel ID when the pixel’s client_dedup_id equals the server’s event_id and the event names match, within 48 hours. For PURCHASE events, Snap can also match the pixel’s transaction_id with the order_id of the server event, for up to 30 days.

WeProfit does not load the Snap Pixel. It sends Snapchat’s events from its server only, each with its own event ID. A purchase goes out as pur_ followed by a store code and the Shopify order ID, such as pur_a1b2c3d4-6012345678901, once per order and pixel, and a retry reuses that ID. Its order_id is the Shopify order’s numeric ID, such as 6012345678901, not the order number your customers see.

If a Snap Pixel also reports purchases for the same Pixel ID, for example through an app or your theme code, its event IDs will not equal WeProfit’s. Snap then falls back to the order ID: it can match the two copies only if the pixel reports the same Shopify order ID as its transaction_id. Check how your pixel reports purchases, keep one purchase sender per Snap Pixel unless you have confirmed the IDs match, and compare a test purchase in Snapchat Ads Manager with the WeProfit delivery log.

Check delivery in the CAPI delivery log

Open Ad Networks > Snapchat in WeProfit and scroll to the CAPI delivery log. It lists every server-side event sent to Snapchat with the columns Created, Event, Destination, Event ID, Status, Attempts and Error, and you can filter by destination, event and status. The Purchase filter also finds PURCHASE events.

The log shows WeProfit’s own event ID, such as pur_6012345678901; Snapchat receives it with the store code, such as pur_a1b2c3d4-6012345678901. The log has no value column, so check a purchase’s value on the Events page in WeProfit. The Orders page shows each order’s delivery per connected network in its Networks column.

A sent status means Snapchat accepted the event, not that it credited the order to an ad. If Snapchat rejects the token, WeProfit pauses the connection and shows a banner; a new token or a passing Send test turns it back on.

Delivery statuses in the Snapchat log
StatusWhat it means
pendingQueued and not sent yet.
sentSnapchat accepted the event.
failedA temporary problem. WeProfit retries automatically for a few hours, with the same event ID.
deadWeProfit gave up: Snapchat refused the event, with its message in the Error column, or the attempts ran out.
skipped disabledThe destination was switched off or paused when the event’s turn came. Events skipped while it is switched off are not sent later.
skipped pre installThe purchase of an order placed before WeProfit was installed. It is never sent.

Snapchat ad spend: added by hand, not synced

WeProfit has no Snapchat ad account connection, so Snapchat spend is not synced automatically. Add it in one of three ways: as manual entries under Profit > Ad spend > Manual entries, with the date, amount, network, an optional campaign ID and an optional note; as a daily schedule, which books the same amount every day until you change it; or through the developer API.

Add the campaign ID to an entry when you want profit per Snapchat campaign: Attribution matches spend to attributed orders by campaign ID or name, and spend without a campaign counts at channel level. Snapchat campaigns usually show their IDs in Attribution, because there is no Snapchat ad account connection to look names up. A manual entry for a day takes priority over a daily schedule.

Campaign detail from your Snapchat ads

WeProfit files a visit under Snapchat Ads when it carries Snapchat’s ScCid click ID, or utm_source=snapchat with a paid medium. With Snap’s Auto-UTMs, it also reads the campaign ID and, where present, the ad ID. For the ad set, add WeProfit’s Snapchat URL template to each ad, after the question mark in the creative’s website URL.

The macros are case-sensitive: write {{adSet.id}}, not {{adset.id}}. Templates apply to new clicks only. In WeProfit’s own attribution an ad click counts for 30 days and the most recent click wins, which works like last click with a 30-day ad-click lookback. Snapchat credits conversions under its own attribution settings, so its numbers and WeProfit’s can differ for the same orders.

WeProfit Snapchat URL parameters (add to each ad)
utm_source=snapchat&utm_medium=paid_social&utm_campaign={{campaign.name}}&utm_term={{adSet.name}}&utm_content={{creative.name}}&wpcid={{campaign.id}}&wpasid={{adSet.id}}&wpadid={{ad.id}}

Related platform documentation

A LITTLE MORE CLARITY

Good questions.
Clear answers.

Have something else in mind?

Talk to our team

The Pixel ID is in Snap Ads Manager: open the menu at the top left, select Events Manager and click your pixel; the ID is the long code with dashes at the top. For the token, open the menu in Ads Manager, select Business Details, go to Conversions API Tokens and select Generate Token. Only Organization Admins see that section. Then open Ad Networks > Snapchat in WeProfit, select Add destination and enter both.

Give your ads better conversion data.

All 10 networks included. Plans from $19/month per store.

Start your 14-day free trial