Snapchat Ads
Datafly Signal delivers conversion events to Snapchat server-to-server, replacing the client-side Snap Pixel with lightweight server-side delivery. This provides reliable campaign attribution and ad performance measurement without loading vendor JavaScript.
Why route Snapchat Ads through Datafly Signal
- Conversions survive ad blockers and tracking prevention. A browser tag served from an advertising domain is blocked outright for part of your traffic, and Safari’s ITP shortens the cookies it can set. Signal sends the event from your own server, so the conversions Snapchat Ads optimises against are not filtered by the browser.
- Email and phone number are hashed before leaving your infrastructure. Signal normalises (trim and lowercase) and applies SHA-256 inside your own deployment, so Snapchat Ads receives match keys rather than raw personal data.
- Client IP and user agent are carried in the payload. Both are taken from the original visitor request rather than your server, which is what Snapchat Ads needs to attribute the event to the right session.
- Click identifiers are captured and replayed. Signal stores
sccidfirst-party at collection time and attaches them to the conversion later, so attribution survives even when the original landing cookie has expired. - Delivery is batched, rate-limited, and retried. Signal buffers to Kafka, respects the Snapchat Ads rate limit, and retries on 429 or transient failure rather than dropping the event.
- Presets for Retail and Travel. The mapping starts from a working configuration for your vertical instead of a blank field map.
- One consent decision governs every destination. Snapchat Ads is gated by the same consent state as the rest of your stack, so a withdrawal applies everywhere at once.
- No vendor tag on the page. Removing it removes its page weight and its independent access to your visitors.
Prerequisites
Before configuring Snapchat Ads in Signal, you need a Snapchat Business account with a Snap Pixel created and an API key generated.
Create a Snapchat Business Account
- Go to business.snapchat.com and click Create Account.
- Enter your business name, email, and business details.
- Complete the account setup and verify your email address.
Create a Snap Pixel
- In Snapchat Ads Manager, navigate to Events Manager in the left sidebar.
- Click New Event Source > Snap Pixel.
- Name your Pixel (e.g. “Website Pixel”) and click Create.
- Note the Pixel ID — a UUID format string (e.g.
abc123de-f456-7890-gh12-ijkl34567890).
You do not need to install the Snap Pixel JavaScript snippet on your website. Signal replaces the client-side tag with server-side delivery.
Generate an API Key
- In Snapchat Ads Manager, go to Business Settings > API Access (or navigate to business.snapchat.com/ad-accounts).
- Click Generate API Key for server-side event delivery.
- Copy the API Key immediately — it may only be shown once.
Store the API key securely. If you lose it, you will need to generate a new one.
Configure in Signal
Now that you have your Pixel ID and API key, configure the integration in Signal.
Configuration Fields
| Field | Required | Description |
|---|---|---|
pixel_id | Yes | Your Snap Pixel ID (UUID format). Found in Snapchat Ads Manager under Events Manager. |
api_key | Yes | API key for server-side event delivery. Generated in Snapchat Business Manager under API Access. |
Vendor Click IDs
Signal automatically captures the following Snapchat click identifiers from URL parameters:
| Vendor ID | Parameter | Description |
|---|---|---|
sccid | sccid | Snapchat click ID. Used for click-through attribution. |
scid | scid | Snapchat campaign ID. Used for campaign-level attribution. |
These are captured automatically by the Datafly.js collector and forwarded with conversion events.
Management UI Setup
- Go to Integrations > Add Integration > Snapchat Ads.
- Enter your
pixel_idandapi_key. - Select consent categories (typically
advertising). - Click Save.
Management API Setup
curl -X POST http://localhost:8084/v1/admin/integrations \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"source_id": "src_abc123",
"vendor": "snapchat_ads",
"name": "Snapchat Ads Production",
"enabled": true,
"config": {
"pixel_id": "abc123de-f456-7890-gh12-ijkl34567890",
"api_key": "ak_snap_abc123..."
},
"consent_categories": ["advertising"]
}'API endpoint
POST https://tr.snapchat.com/v3/{{pixel_id}}/eventsAllow egress to tr.snapchat.com from the network your delivery workers run on.
Event Mapping
Retail preset
| Signal event | Snapchat event |
|---|---|
page | PAGE_VIEW |
Products Searched | SEARCH |
Product Viewed | VIEW_CONTENT |
Product Added to Wishlist | ADD_TO_WISHLIST |
Product Added | ADD_CART |
Checkout Started | START_CHECKOUT |
Payment Info Entered | ADD_BILLING |
Order Completed | PURCHASE |
Signed Up | SIGN_UP |
Travel preset
| Signal event | Snapchat event |
|---|---|
page | PAGE_VIEW |
Destination Searched | SEARCH |
Listing Viewed | VIEW_CONTENT |
Listing Saved | ADD_TO_WISHLIST |
Booking Started | START_CHECKOUT |
Payment Info Entered | ADD_BILLING |
Booking Completed | PURCHASE |
To customise, edit the integration’s Field Mappings in the Management UI.
Identity Signals
Automatic Signals
These are sent automatically by Signal — no configuration needed:
| Signal | Description |
|---|---|
sccid | Snapchat click ID, captured from URL parameters. |
scid | Snapchat campaign ID, captured from URL parameters. |
| IP address | Visitor’s IP address, forwarded from the original request. |
| User agent | Visitor’s User-Agent string, forwarded from the original request. |
User-Provided Signals
When a user is identified via datafly.identify(), additional signals improve match quality:
| Signal | Description |
|---|---|
| Email (hashed) | User’s email address, SHA-256 hashed before sending. |
| Phone (hashed) | User’s phone number, SHA-256 hashed before sending. |
All PII hashing is performed server-side by the Signal before the data leaves your infrastructure.
Testing Your Integration
Step 1: Send a Test Event
- Trigger a page view or conversion event on your website.
- Check the Signal event debugger in the Management UI to confirm the event was captured and delivered.
Step 2: Verify in Snapchat Events Manager
- In Snapchat Ads Manager, go to Events Manager > your Pixel.
- Click on the Overview tab to see received events.
- Events should appear within a few minutes.
Step 3: Validate Attribution
- Create a test campaign with a small audience.
- Confirm that conversion events are attributed correctly in campaign reports.
- Check that
sccidclick IDs are being matched for click-through attribution.
Troubleshooting
| Problem | Solution |
|---|---|
| Events not appearing in Snapchat | Verify the pixel_id and api_key are correct. Check that the API key has not been revoked. |
| Authentication errors | Regenerate the API key in Snapchat Business Manager and update the integration config in Signal. |
Missing sccid or scid | These are captured from URL parameters when users click Snapchat ads. They will not be present for organic traffic. |
| Low match rate | Add user identity signals (email, phone) via datafly.identify() when users log in or submit forms. |
| Events delayed | Snapchat may take up to 15 minutes to display server-side events. Allow time before investigating further. |
| Custom events not mapping | Snapchat supports up to 5 custom event slots (CUSTOM_EVENT_1 through CUSTOM_EVENT_5). Ensure your events are mapped to available slots. |
Visit Snapchat Ads documentation for full API documentation and credential setup instructions.