The Snap Pixel is a piece of JavaScript code that lets you measure the cross-device impact of your advertising campaigns. It enables you to understand how many Snapchat users interact with your website after seeing the ads.

RudderStack supports Snap Pixel as a destination where you can seamlessly send your event data.

Getting started

Before configuring Snap Pixel as a destination in RudderStack, verify if the source platform is supported by Snap Pixel by referring to the table below:

Connection ModeWebMobileServer
Device modeSupported--
Cloud mode---
To know more about the difference between cloud mode and device mode in RudderStack, refer to the RudderStack Connection Modes guide.

Once you have confirmed that the source supports sending events to Snap Pixel, follow these steps:

  1. From your RudderStack dashboard, add the source. From the list of destinations, select Snap Pixel.
  2. Assign a name to the destination and click on Continue.

Connection settings

To set up Snap Pixel as a destination, you need to configure the following settings:

Snapchat Pixel connection settings
  • Pixel ID: Enter your Snap Pixel ID.
For more information on obtaining your Snap Pixel ID, refer to the FAQ section below.
  • Hashing Method: Snap Pixel lets you pass a user parameter (email or phone) in both hashed and non-hashed format during the snippet's intialization. If you choose SHA-256, RudderStack will hash-encode the parameter before passing it to Snap Pixel.
  • Client-side Events Filtering: This setting lets you specify which events should be blocked or allowed to flow through to Snap Pixel.
For more information on this setting, refer to the Client-side Events Filtering guide.
  • Customize Client Deduplication Key: Enable this setting to set a custom client deduplication ID in Snap Pixel.
For more information on this setting, refer to the Setting custom client deduplication key section below.
  • Use device mode to send events: As this destination supports sending events only via the web device mode, this setting will be automatically enabled.


The identify call is used to initialize the Snap Pixel code.

RudderStack checks the cookies for the user parameter (email or phone) before loading the Snap Pixel snippet. If the parameter is present, RudderStack loads the snippet. Otherwise, it loads the snippet without passing the user parameter.

Snapchat strongly recommends passing a user parameter (either email or phone) through the Snap Pixel, as it lets you get better insights into your tracked conversions and creates more robust Pixel Custom Audiences. For more information, refer to the Snap Pixel FAQ.

A sample identify call is as shown:

email: "",
phone: "+1-202-555-0146"

The following table lists the user parameters along with the relative mapping to the Snap Pixel parameters:

RudderStack user parameterSnap Pixel user parameter


When the page call is made, RudderStack sends the following call to Snap Pixel:

snaptr("track", "PAGE_VIEW")
You can make the page call with or without the event payload.

A sample page call is as shown:;


The track call lets you send Snap Pixel events.

A sample track call is as shown below:

rudderanalytics.track('Order Completed', {
'currency': 'USD',
'price': 333.33,
'order_id': '11111111'

You can also send the following RudderStack e-commerce events:

RudderStack eventSnap Pixel event
Order CompletedPURCHASE
Checkout StartedSTART_CHECKOUT
Product AddedADD_CART
Payment Info EnteredADD_BILLING
Promotion ClickedAD_CLICK
Promotion ViewedAD_VIEW
Product Added To WishlistADD_TO_WISHLIST
Product ViewedVIEW_CONTENT
Product List ViewedVIEW_CONTENT
Products SearchedSEARCH
RudderStack maps order_id to Snap Pixel's transaction_id only in case of the Order Completed event.
For more information on the Snap Pixel events, refer to the Snapchat documentation.

Snap Pixel supports up to 5 custom events, as listed below:


Setting custom client deduplication key

RudderStack lets you define the client deduplication key for event deduplication. Enable the Customize Client Deduplication Key setting in the dashboard to use this feature.

The following scenarios describe the different ways RudderStack sets the custom deduplication key:

Scenario 1: Passing the key in the event properties

Suppose you enable the Customize Client Deduplication Key setting and set the Client Deduplication Field to properties.dedup. RudderStack then sets the client deduplication ID with the value associated with properties.dedup, as shown in the following snippet:

"SHARE", {
dedup: "mydedupid",
checkout_id: "12345",
product_name: "Red T-shirt",
product_url: "",
}, {
integrations: {},

In this case, RudderStack sets mydedupid as the client deduplication ID.

Scenario 2: Passing the messageId as the deduplication key

Suppose you enable Customize Client Deduplication Key and leave the Client Deduplication Field empty. In this case, RudderStack sets the event's messageId as the client deduplication ID.

Scenario 3: Passing wrong/missing field in the dashboard settings

Suppose you enable Customize Client Deduplication Key and set the Client Deduplication Field, but the field is either missing or has a different name in the event. In this case, RudderStack does not set the client deduplication ID.

For example, if you set Client Deduplication Field to properties.dedup and the event contains properties.deduplication instead, then RudderStack sends the event to Snap Pixel without setting the client deduplication ID.


Where can I find the Snap Pixel ID?

To get your Snap Pixel ID, follow these steps:

  1. Go to your Snap Ads Manager account.
  2. Under Events Manager, go to View Pixel Details > Setup Pixel.
  3. You can find the Pixel ID under Set Up Your Snap Pixel, as shown:
Snap Pixel ID

Contact us

For more information on the topics covered on this page, email us or start a conversation in our Slack community.