How to Connect Perspection to Snapchat Conversions API for Server-Side Tracking

Connect Snapchat Conversions API Server-Side | Perspection

Connect Perspection to Snapchat Conversions API for server-side tracking with SHA-256 hashing, Snap Click ID matching, and deduplication.

Perspection connects to the Snapchat Conversions API v2 through a server-side integration that bypasses browser ad blockers, Safari ITP cookie restrictions, and iOS App Tracking Transparency prompts. The setup requires 2 credentials -- a Pixel ID and an Access Token -- both obtained from Snap Ads Manager. Perspection automatically normalizes and SHA-256 hashes all personally identifiable information (email, phone) before dispatching events to Snapchat servers. The Snapchat connector supports 1,000 requests per minute, maps 12 event types to Snapchat standard conversion events (including PURCHASE, SIGN_UP, ADD_CART, VIEW_CONTENT, START_CHECKOUT, and PAGE_VIEW), captures the Snap Click ID (ScCid/sclid) for click-to-conversion attribution, and classifies events as WEB, MOBILE_APP, or OFFLINE based on conversion source. Perspection deduplicates server-side and browser pixel events using a client_dedup_id derived from the Perspection event_id, preventing double-counted conversions in Snap Ads Manager.

How does server-side Snapchat conversion tracking work?

Server-side Snapchat conversion tracking sends conversion data directly from Perspection servers to the Snapchat Conversions API v2 endpoint at https://tr.snapchat.com/v2/conversion, bypassing the visitor's browser. Perspection captures raw events via the browser SDK, enriches each event with identity-resolved user data and SHA-256-hashed PII, then dispatches the enriched payload over a secure HTTPS connection.

Browser-based Snapchat Pixel tracking depends on JavaScript executing inside the visitor's browser. Three forces degrade browser pixel accuracy for Snapchat advertisers:

  1. Apple App Tracking Transparency (ATT): Since iOS 14.5, Apple requires explicit opt-in for cross-app tracking. Roughly 75-96% of users deny the ATT prompt, preventing the Snapchat Pixel from reading the IDFA (Identifier for Advertisers) on iOS devices. Because Snapchat's audience skews heavily toward mobile and younger demographics, ATT opt-out rates disproportionately affect Snapchat conversion tracking compared to desktop-heavy platforms.

  2. Safari Intelligent Tracking Prevention (ITP): Safari caps JavaScript-set cookies at 7 days of expiry. The Snapchat _scid cookie and the Snap Click ID (ScCid) stored in URL parameters degrade under ITP restrictions, reducing return-visitor attribution accuracy for Safari users on both iPhone and Mac.

  3. Browser ad blockers: Extensions like uBlock Origin, Brave Shield, and Firefox Enhanced Tracking Protection block requests to sc-static.net and Snapchat tracking domains, silently dropping pixel events before the pixel events leave the browser.

Perspection eliminates all three failure points. When the Perspection SDK captures an event in the browser, the Perspection SDK also captures the Snap Click ID (ScCid or sclid) from the landing page URL parameters and stores the Snap Click ID in the event payload. The Perspection processing pipeline enriches the event with identity-resolved user data, and the dispatch worker transmits the enriched event to the Snapchat Conversions API v2. Because the server-to-server request originates from Perspection infrastructure, ad blockers and browser cookie policies have no effect on delivery.

Perspection operates a first-party domain on behalf of each workspace, setting cookies under the merchant's own domain. Safari ITP treats Perspection first-party cookies as genuine first-party storage, preserving the Snap Click ID and session identifiers beyond the standard 7-day ITP cap.

For a comparison of how server-side tracking works across advertising platforms, see Connect Meta Conversions API.

How do you connect Perspection to Snapchat?

Connecting Perspection to Snapchat requires 2 credentials: the Pixel ID (UUID from Snap Ads Manager) and an Access Token (Bearer token via the Snap Marketing API). Both are obtained from Events Manager. Setup takes under 5 minutes, and Perspection validates by sending a test PAGE_VIEW event to the Snapchat Conversions API after saving.

Step-by-step: Generate Snapchat Conversions API credentials

  1. Open Snap Ads Manager and select the correct ad account.

  2. Navigate to Events Manager from the main navigation menu.

  3. Select the Snap Pixel associated with the ad account receiving conversions.

  4. Copy the Pixel ID displayed on the pixel overview page. The Snapchat Pixel ID follows a UUID format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.

  5. Navigate to the Snap Marketing API section or open the Snap Conversions API developer portal.

  6. Generate a Conversions API Access Token. The Access Token is a long-lived Bearer token starting with eyJ. Store the Access Token securely -- Snap does not display the Access Token again after generation.

  7. Ensure the Access Token has the snapchat-marketing-api scope with conversion event write permissions.

Step-by-step: Configure the destination in Perspection

  1. Log into the Perspection dashboard at dashboard.perspection.app and select the workspace where Snapchat tracking will be configured.

  2. Open Connectors > Destinations from the left navigation sidebar.

  3. Under the destination list, locate the Snapchat card labeled "Conversions API." Click the card to expand the configuration form.

  4. Paste the Pixel ID into the Pixel ID field. The field placeholder shows the expected UUID format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.

  5. Paste the Access Token into the Access Token field. The field uses a password mask to protect the credential.

  6. Toggle the Live switch to enabled.

  7. Click Save. Perspection creates the destination, encrypts the Access Token at rest in the data plane database, and displays a "Live" health badge.

  8. Click Test to send a validation PAGE_VIEW event to the Snapchat Conversions API v2 endpoint. Perspection reports the connection test result and latency in milliseconds.

Required and optional fields

Field

Required

Format

Source

Pixel ID

Yes

UUID (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)

Snap Ads Manager > Events Manager

Access Token

Yes

Bearer token starting with eyJ

Snap Marketing API > Conversions API

Perspection stores destination credentials in the destinations.destinations table in the data plane database, encrypted and scoped to the workspace's tenant ID with row-level security.

Common setup errors

Error

Cause

Resolution

401 Unauthorized

Invalid or expired Access Token

Regenerate the Conversions API token in Snap Ads Manager

400 Bad Request with invalid pixel_id

Pixel ID format is incorrect or does not belong to the ad account

Verify the UUID matches the Pixel ID in Events Manager exactly

403 Forbidden

Access Token lacks conversion event write permissions

Regenerate the token with the snapchat-marketing-api scope

What data does Perspection send to Snapchat?

Perspection sends 5 data categories to Snapchat for every event: event metadata (type, Pixel ID, timestamp, conversion type), user identifiers (hashed email, hashed phone, external_id, Snap Click ID, IP, user agent), custom data (currency, value, transaction_id, item_ids, item_category, page_url), a client_dedup_id for deduplication, and an event_conversion_type of WEB, MOBILE_APP, or OFFLINE.

Event payload structure

The Snapchat connector transforms every Perspection event into the Snapchat Conversions API v2 data format. The following tables show the complete field mapping:

Event Metadata

Snapchat Field

Source in Perspection

Example

pixel_id

Destination config pixel_id

a1b2c3d4-e5f6-7890-abcd-ef1234567890

event_type

Mapped from event_name via event map

PURCHASE

timestamp

timestamp in ISO 8601 format

2026-02-27T14:30:00.000Z

event_conversion_type

Derived from source_type

WEB, MOBILE_APP, or OFFLINE

User Data

Snapchat Field

Source in Perspection

Hashing

user_data.hashed_email

user_data.email_hash or raw email

SHA-256 (lowercased, trimmed)

user_data.hashed_phone_number

user_data.phone_hash or raw phone

SHA-256 (digits only)

user_data.external_id

user_data.external_id

Sent as-is

user_data.click_id

Extracted from click_ids JSONB: ScCid or sclid

Sent as-is (Snap Click ID)

user_data.ip_address

user_data.client_ip_address

Sent as-is

user_data.user_agent

user_data.client_user_agent

Sent as-is

Custom Data (for purchase, cart, and commerce events)

Snapchat Field

Source in Perspection

custom_data.currency

custom_data.currency or properties.currency or workspace default

custom_data.value

custom_data.value or properties.value

custom_data.transaction_id

custom_data.transaction_id or properties.order_id

custom_data.item_category

custom_data.item_category or properties.category

custom_data.item_ids

custom_data.item_ids or properties.product_ids

custom_data.number_items

custom_data.number_items or properties.quantity

custom_data.search_string

custom_data.search_string or properties.search_term

custom_data.page_url

custom_data.page_url or properties.page_url

custom_data.client_dedup_id

event_id (UUID, used for deduplication)

Event name mapping

Perspection automatically maps raw event names to Snapchat standard event types:

Perspection Event

Snapchat Standard Event

page_view

PAGE_VIEW

view_content

VIEW_CONTENT

add_to_cart

ADD_CART

purchase

PURCHASE

sign_up

SIGN_UP

subscribe

SUBSCRIBE

lead

SAVE

search

SEARCH

add_to_wishlist

ADD_TO_WISHLIST

complete_registration

COMPLETE_REGISTRATION

start_trial

START_TRIAL

add_billing

ADD_BILLING

All other events

Event name uppercased (e.g., custom_event becomes CUSTOM_EVENT)

Internal events such as identify, session_start, page_hidden, and consent update events are automatically skipped by the Perspection processing pipeline and never dispatched to Snapchat.

Event conversion type classification

The Snapchat Conversions API requires an event_conversion_type field that classifies the source of each conversion. Perspection determines the conversion type automatically:

Source

event_conversion_type

When Applied

Browser SDK events

WEB

Default for all browser-originated events

Mobile app events

MOBILE_APP

When source_type equals app

CSV uploads, COD webhooks

OFFLINE

When source_type equals offline

Snap Click ID capture and attribution

The Perspection browser SDK automatically captures the Snap Click ID from landing page URL parameters. When a user clicks a Snapchat ad, Snapchat appends either ScCid or sclid as a URL query parameter. The Perspection SDK reads both parameter variants at page load and stores the Snap Click ID in the click_ids JSONB payload alongside other platform click IDs (fbclid, gclid, ttclid, and others).

During dispatch, the Snapchat connector extracts the Snap Click ID using a three-tier fallback pattern:

  1. JSONB click_ids column (preferred): click_ids.ScCid or click_ids.sclid

  2. Individual database columns (migration fallback): event.ScCid or event.sclid

  3. Properties object (SDK event fallback): properties.ScCid or properties.sclid

The Snap Click ID is the single most valuable attribution signal for Snapchat because the Snap Click ID provides a direct, deterministic link between the ad click and the conversion event. Without the Snap Click ID, Snapchat relies on probabilistic matching using hashed email, hashed phone, and IP address, which produces lower match rates.

Deduplication via client_dedup_id

Perspection sets the custom_data.client_dedup_id field to the Perspection event_id (UUID v4) for every event dispatched to Snapchat. When both the Snapchat browser Pixel and Perspection server-side dispatch fire for the same user action, Snapchat uses the client_dedup_id to deduplicate the two signals and count the conversion exactly once. Without the client_dedup_id, advertisers running both the Snapchat Pixel and Perspection server-side tracking would see inflated conversion counts in Snap Ads Manager.

How do you verify Snapchat conversion events?

Perspection provides 3 verification methods for Snapchat: the built-in connection test (sends a test PAGE_VIEW event with latency reporting), Snapchat's Events Manager in Snap Ads Manager (confirms events with parameter details), and the Perspection destination health dashboard (success rates, error codes, latency percentiles). Use all three during initial setup to confirm end-to-end flow.

Method 1: Perspection connection test

  1. Navigate to Connectors > Destinations in the Perspection dashboard and expand the Snapchat destination card.

  2. Click the Test button. Perspection sends a test PAGE_VIEW event to the Snapchat Conversions API v2 endpoint using the configured Pixel ID and Access Token. The test event uses test_mode: true, which tells Snapchat to validate the payload without counting the event as a real conversion.

  3. Review the result. Perspection displays "Connection test successful!" with latency in milliseconds for a passing test, or an error message with the Snapchat API HTTP status code for a failing test.

  4. Common test failure causes: expired Access Token (HTTP 401), incorrect Pixel ID format (HTTP 400), insufficient API permissions (HTTP 403), or network connectivity issues (timeout).

Method 2: Snapchat Events Manager validation

  1. Open Snap Ads Manager and navigate to Events Manager.

  2. Select the Snap Pixel connected to the Perspection workspace.

  3. Open the Event Activity or Test Events view to see incoming server-side events.

  4. Trigger a tracked action on the website connected to the Perspection workspace -- for example, view a product page (triggers VIEW_CONTENT), add an item to cart (triggers ADD_CART), or complete a purchase (triggers PURCHASE).

  5. Return to Snap Events Manager within 60 seconds. Server-side events should appear showing the event type, timestamp, user data parameters (hashed_email, hashed_phone_number, click_id, ip_address, user_agent), and custom data (value, currency, transaction_id).

  6. Verify that the event_conversion_type shows WEB for browser-originated events.

  7. Confirm the client_dedup_id is populated, which ensures deduplication against the Snapchat browser Pixel.

Method 3: Perspection destination health monitoring

  1. Open the Pipeline section in the Perspection dashboard.

  2. Review dispatch status for the Snapchat destination. Perspection displays real-time delivery metrics including success rate, error rate, average latency, and most recent error messages.

  3. Check for common Snapchat API errors:

    • 401 Unauthorized -- Access Token has expired or been revoked. Regenerate the token in Snap Ads Manager.

    • 400 Bad Request -- Payload validation failed. Check that the Pixel ID matches the UUID format and that required fields (event_type, timestamp) are present.

    • 429 Too Many Requests -- Rate limit exceeded. Perspection automatically tracks the 1,000 requests per minute limit and backs off with exponential retry.

    • 500 Internal Server Error -- Snapchat server-side issue. Perspection retries automatically with exponential backoff up to 3 attempts (500ms, 1,000ms, 2,000ms delays).

For detailed guidance on monitoring destination health across all connected platforms, see Destination Health Monitoring.

Ongoing monitoring with Event Match Quality

After verifying initial event delivery, monitor the quality of data Perspection sends to Snapchat using the Event Match Quality coaching panel. The EMQ panel aggregates data completeness across the last 7 days, identifying missing parameters that reduce Snapchat attribution accuracy. The most impactful actions for improving Snapchat EMQ are:

  1. Capture the Snap Click ID -- Deploy Perspection first-party domain tracking to preserve ScCid/sclid beyond Safari ITP limits.

  2. Collect email at checkout -- Ensure the checkout form captures email before the purchase event fires. Perspection's identity resolution pipeline automatically associates the email with the user's event stream.

  3. Include phone numbers when available -- Hashed phone number provides a secondary matching signal when the Snap Click ID is unavailable (organic traffic, repeat visitors after cookie expiry).

  4. Pass product details in commerce events -- Include product_ids, quantity, value, and currency in purchase and add-to-cart event properties.

Methodology

All Snapchat Conversions API configuration steps in this guide were verified against the Perspection production dashboard and Snapchat Ads Manager as of February 2026.

"The single highest-impact action for improving Snapchat Conversions API attribution is preserving the Snap Click ID -- the ScCid or sclid parameter appended to the landing page URL when a user taps a Snapchat ad. The Snap Click ID provides deterministic, click-level attribution that Snapchat trusts more than probabilistic matching via hashed email or IP address. Perspection's browser SDK captures both ScCid and sclid URL parameters at page load and stores the Snap Click ID in the click_ids JSONB payload. However, Safari ITP can strip or expire the URL parameter before the SDK reads the parameter on slow-loading pages. Deploying Perspection's first-party domain tracking ensures the Snap Click ID persists in a first-party cookie beyond ITP restrictions, which is why advertisers using Perspection first-party domains see measurably higher Snapchat attributed conversions compared to standard browser pixel implementations." -- Perspection Engineering Team

Sources & References

  1. Snapchat -- Conversions API Documentation, https://marketingapi.snapchat.com/docs/#conversions-api

  2. Snapchat Business -- Ads Manager Help, https://businesshelp.snapchat.com/

  3. Snapchat -- Snap Pixel and CAPI, https://businesshelp.snapchat.com/s/article/snap-pixel

  4. Perspection Product Guide -- Event Match Quality, /library/event-match-quality-guide

  5. Perspection Product Guide -- Destination Health, /library/destination-health-failed-events-guide

Data Pipeline for Digital Marketing and Business Analytics

Contact Us

info@perspection.app

Data Pipeline for Digital Marketing and Business Analytics

Contact Us

info@perspection.app