The Snapchat Pixel: install, events and checking it
The Snap Pixel is the code that tells Snapchat Ads what people do on your website after seeing an ad. This guide covers creating the pixel in Ads Manager, adding the base code directly or through Google Tag Manager and other partners, user data for matching, standard events and parameters, checking it with Snap Pixel Helper and Events Manager, pairing it with the Conversions API without counting events twice, and privacy, using Snap's own help pages.
This guide is built from the Snapchat Business Help Center, mainly Getting Started with Enabling the Pixel and Directly Implement the Pixel On Your Website, plus the pages linked below. Setting up the ad account and campaigns is in our Snapchat ads for business guide. The same job on other platforms is done by the Meta Pixel, the TikTok Pixel and the Pinterest Tag.
- What the Snap Pixel does
- Creating the pixel
- Installing it: direct code or a partner
- Installing through Google Tag Manager
- User data and matching
- Standard events and parameters
- Checking it: Pixel Helper and Events Manager
- Adding the Conversions API
- Deduplication: counting each event once
- Privacy and consent
- How we set it up
- Frequently asked questions
What the Snap Pixel does
Snap describes the pixel as "a piece of JavaScript code that helps Advertisers measure the cross-device impact of Campaigns". It shows how many Snapchatters take action on your site after seeing an ad, and Snap says it suits direct-response goals such as leads, subscriptions and sales. Snap's Google Tag Manager page adds the other uses: optimising delivery toward people likely to act, and building audiences from people who visited a page or took an action.
Creating the pixel
- Log in to Ads Manager, open the menu in the top corner and select Pixels.
- Click Create Pixel, give it a name and click Create.
- Choose the ad accounts to share the pixel with.
- Click Set up Pixel and select Pixel Code.
- Turn on the Automated Matching toggle, which Snap marks as recommended.
Before installing, Snap asks you to make sure your website and pages are eligible for the pixel under the Snap Personal Data Terms.
Installing it: direct code or a partner
Snap lists partner integrations for Ensighten, Google Tag Manager, Shopify, BigCommerce and Tealium; if you use one, follow its guide. Otherwise paste the pixel code into your site's header template so it loads on every page. Whichever route you take, Snap's checklist is the same:
- pass user data in the pixel (see below);
- fire at least one standard event;
- add the relevant optional parameters;
- turn on Automated Matching.
Two warnings from the same page: "Only pass PURCHASE events on a page once", as duplicates affect ROAS reporting, and always send price, currency and transaction_id with purchases.
Installing through Google Tag Manager
Snap's Google Tag Manager route starts in Events Manager rather than in Tag Manager:
- In Ads Manager, open Events Manager and select New Event Source, then Web setup and Snap Pixel.
- Choose the pixel, optionally enter your website URL, and select Partner Integration.
- Choose Google Tag Manager, sign in with Google and accept the Snapchat Ads integration.
- Pick the Tag Manager account, container and workspace.
- Optionally create email and phone tags for matching, then check the setup by entering your URL.
After the base code, Snap's Pixel Setup Tool can add event tracking for actions such as purchases or add to cart. How containers, tags and triggers work in general is covered in our Google Tag Manager basics guide.
User data and matching
For Snap to match a website visitor to a Snapchat account, Snap says it is "highly encouraged" to pass an email address or phone number in the init call; user data can only be passed there. You can send them in plain text or already hashed:
user_emailoruser_hashed_email(SHA-256 of the lower-cased email with spaces removed);user_phone_number(digits only, with country code) oruser_hashed_phone_number;ip_address, recommended.
Snap says plain values "will be SHA256 natively within our SDK before being passed to Snap's server". It now also recommends first name, last name, city, region, postal code, country and age where available, which the pixel hashes automatically. The Snapchat Click ID (ScCid) is added to ad landing page URLs automatically and needs no work for the pixel; Snap recommends sending it with Conversions API events too.
How well this works shows as the Event Quality Score in Events Manager. Snap says "Better event quality score means events are more likely to match to a Snapchat account", which can mean more reported conversions and a lower cost per result.
Standard events and parameters
Events are sent with snaptr('track', 'EVENT_NAME', {parameters}). Snap is firm that "Passing at least one standard event is required for attribution". Its list is long; the ones most websites need:
- PAGE_VIEW, VIEW_CONTENT and SEARCH for browsing;
- ADD_CART, START_CHECKOUT, ADD_BILLING and PURCHASE for a shop;
- SIGN_UP, SUBSCRIBE, START_TRIAL and RESERVE for leads and bookings.
Up to five custom events (CUSTOM_EVENT_1 to CUSTOM_EVENT_5) cover anything else. The key parameters are price, currency (an ISO 4217 code such as USD) and transaction_id, which Snap says are all required for return on ad spend reporting, plus item_ids and item_category for products and client_dedup_id for deduplication.
Checking it: Pixel Helper and Events Manager
Snap Pixel Helper is a Chrome extension offered by Snap Inc. Its store listing says it finds Snap Pixels on a page by ID, shows events and their parameters as they fire, explains common setup problems, and lets you copy a summary for support. Open your site with it, then walk through the actions you track and watch each event appear with the right values.
In Events Manager (Ads Manager menu, Events Manager) you see pixel, app and Conversions API events, the Event Quality Score and recommendations. Snap's deduplication page points to the Pixel test event tool for testing and troubleshooting.
Adding the Conversions API
The Conversions API (CAPI) sends web, app and offline events from your server to Snap. A direct integration gives the most control and "requires developer-involvement"; a partner integration may be available if your platform supports it.
Snap's best practices recommend running both: send the same events through CAPI that the pixel sends. "In fact, we recommend using both", Snap writes, to reduce signal loss. It also advises sending events within an hour, passing as many identifiers as you can (email, phone, IP, mobile ad ID and click ID), and checking server events in Events Manager, where they show "via Conversions API".
Deduplication: counting each event once
If the pixel and CAPI both report the same purchase, Snap needs to know it is one purchase. Its deduplication page says to send an event ID on every event from every integration: for pixel events other than purchases it maps to client_dedup_id, and for purchases to transaction_id. The values must match across the pixel, partners and CAPI.
The pixel deduplication page says client_dedup_id "allows for a 48 hour deduplication window", must be unique per event, and suggests a UUID. Events Manager flags it when most events share the same ID, usually because the value is hardcoded, too short, or built from a timestamp. Snap also stresses accurate timestamps.
Privacy and consent
Snap's install page asks you to confirm your site is eligible for the pixel under the Snap Personal Data Terms, and the Pixel Helper listing refers to those terms and the Snap Conversion Terms. Snap's help pages don't set out how to wire the pixel to a consent banner; that depends on your consent tool and the law where your visitors are. Our cookie consent banners guide covers the website side, and a tag manager makes it easier to hold the pixel back until people agree.
How we set it up
This is our own practice, not Snap's guidance:
- We install through Google Tag Manager when the site already has it, so the pixel follows the same consent rules as other marketing tags.
- We send PAGE_VIEW everywhere plus the one or two events that match the campaign goal, before adding more.
- We send PURCHASE once, from the order confirmation page, with price, currency and transaction_id, and check it in Pixel Helper with a test order.
- When we add CAPI, we use the order number as transaction_id and a UUID as client_dedup_id on both sides, then check Events Manager for duplicates.
- We tag ad links with UTM parameters so our own analytics shows Snapchat traffic as well.
If you want help setting up Snapchat ads tracking, see our services.
Frequently asked questions
Where do I find my Snap Pixel code?
In Ads Manager, open the menu, select Pixels, choose your pixel, click Set up Pixel and select Pixel Code.
How do I check that my Snap Pixel is working?
Install the Snap Pixel Helper Chrome extension and open your site to see the pixel and its events as they fire. Events Manager also shows received events and the Event Quality Score.
Can I install the Snap Pixel with Google Tag Manager?
Yes. Start in Events Manager with New Event Source, choose Partner Integration and Google Tag Manager, then connect your Tag Manager container.
Do I need the Conversions API as well as the Snap Pixel?
It isn't required, but Snap recommends using both and sending the same events through each, with matching IDs so events are only counted once.
Which Snap Pixel events do I need for purchases?
PURCHASE, sent once per order, with price, currency and transaction_id. Snap says all three are required for return on ad spend reporting.
For more on ad tracking, see our guides to the Meta Pixel and Conversions API and the Reddit Pixel.