Snap Pixel

Send your event data from RudderStack to Snap Pixel.

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.

Getting started

RudderStack supports sending event data to Snap Pixel via the following connection modes:

Connection ModeWebMobileServer
Device modeSupported--
Cloud mode---
In a web device mode integration, that is, using JavaScript SDK as a source, the Snap Pixel native SDK is loaded from domain. Based on your website’s content security policy, you might need to allowlist this domain to load the Snap Pixel SDK successfully.

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 Continue.

Connection settings

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

  • Pixel ID: Enter your Snap Pixel ID. Refer to the FAQ section for more information on obtaining your Snap Pixel ID.
  • 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.
  • Mapping to trigger the Snap Pixel events for the respective events set here: Use this setting to map custom event names to the standard Snap Pixel events.
  • Client-side Events Filtering: This setting lets you specify which events should be blocked or allowed to flow through to Reddit Pixel. Refer to the Client-side Events Filtering guide for more information.
  • Customize Client Deduplication Key: Enable this setting to set a custom client deduplication ID in Snap Pixel. Refer to the Setting custom client deduplication key section for more information on this setting.
  • Use device mode to send events: As this is a web device mode-only destination, this setting is enabled by default and cannot be disabled.


You can use the identify call 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 corresponding mapping to the Snap Pixel parameters:

RudderStack user parameterSnap Pixel user parameter


When you make a page call, RudderStack sends the following call to Snap Pixel:

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

A sample page call is as shown:;


You can use the track call to send Snap Pixel events. Refer to the Snapchat documentation for more information on the 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 ecommerce 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.

Snap Pixel supports up to 5 custom events, 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. You can find the Pixel ID under Set Up Your Snap Pixel:
Snap Pixel ID

Questions? Contact us by email or on Slack