Skip to content
SnapchatFanvue API

Fanvue Snapchat Pixel and Conversions API tracking

Fanvue Snapchat CAPI tracking sends Subscribe, Purchase, Sign Up and Page View events from the server, with hashed email and the ScCid click ID, so Snapchat counts every Fanvue conversion even when the browser pixel is blocked.

Start for freeLast updated March 2025

What you get

Fanvue Snapchat CAPI is a server-side integration built into Fanvue API. It exists so that agencies and creators running Snapchat ads to their Fanvue page can see accurate conversion data even after iOS tracking prevention and ad blockers cut off the browser-only Snap Pixel.

  • Server-side Snap Conversions API calls for every subscription, renewal, PPV purchase and tip
  • Automatic ScCid capture and 90-day first-party cookie storage on your Fanvue tracking link
  • SHA-256 hashed email matching, so raw personal data never reaches Snapchat unhashed
  • event_id deduplication shared between the Snap Pixel and the server-side event

How does Fanvue Snapchat CAPI tracking work?

A fan clicks your Snapchat ad and lands on a Fanvue tracking link with a ScCid parameter appended by Snapchat. Fanvue API's landing script stores that click ID in a first-party cookie, then attaches it to the fan record the moment they sign up, subscribe or spend. When that event happens, Fanvue API builds a signed request and posts it to Snapchat's Conversions API endpoint on your behalf, using the same event_id that the client-side Snap Pixel used, so Snapchat's deduplication counts it once.

  1. Fan clicks a Snapchat ad linking to a Fanvue tracking link carrying ScCid.
  2. The landing page stores ScCid in a first-party _scid_fv cookie for 90 days.
  3. The fan subscribes, renews, buys a PPV message or tips on Fanvue.
  4. Fanvue API hashes the fan's email and builds the Conversions API payload.
  5. Fanvue API posts the event to Snapchat with the shared event_id for dedup.

Before you start

Have these five things ready before you open the Fanvue API dashboard:

  • An active Snapchat Ads account with billing enabled
  • A Snap Pixel ID from Snapchat Ads Manager, Events Manager
  • A Conversions API access token generated for that pixel
  • A Fanvue tracking link for the creator you are running ads for
  • A Fanvue API key with the ads-tracking scope enabled

Step-by-step setup

01Create a Snap Pixel

In Snapchat Ads Manager, open Events Manager and create a new Snap Pixel for the ad account you use to promote your Fanvue page. Copy the Pixel ID once it is created.

Snapchat Ads Manager · Events Manager
Pixel name
Fanvue - Creator Xyz
Pixel ID
a1b2c3d4-0000-1111-2222
Status
Active

02Generate a Conversions API token

From Business Settings, generate a Conversions API access token scoped to that pixel. Treat this token like a password, it allows server-side writes to your ad account.

Business Settings · Conversions API
Token
scapi_tok_••••••••8f2a
Scope
events:write

03Connect in the Fanvue API dashboard

Paste the Pixel ID and Conversions API token into Ads Tracking → Snapchat in the Fanvue API dashboard. Fanvue API stores the token encrypted and never exposes it in client-side code.

Fanvue API · Ads Tracking · Snapchat
Snapchat CAPIconnected

04Add your tracking link to Snapchat ads

Use your Fanvue tracking link as the destination URL on every Snapchat ad creative, with the {{ScCid}} macro appended so Snapchat's click ID reaches the landing page.

Ad creative · destination URL
Destination URL
link.apifanvue.com/c/creator_xyz?ScCid={{ScCid}}

05Map Fanvue events to Snapchat events

The default mapping in section 7 below covers most creators. Adjust it in the dashboard if you use custom Fanvue event names.

Fanvue API · Event mapping
New subscription
SUBSCRIBE
Renewal / PPV / Tip
PURCHASE
Free signup
SIGN_UP

06Send a test event

Click "Send test event" in the Fanvue API dashboard, then confirm it appears in Snapchat Events Manager's test mode within a minute.

Fanvue API · Test event
POST /v3/PIXEL_ID/events200 OK

Capture the click ID

Snapchat appends a ScCid parameter to your destination URL. Fanvue API's tracking-link script reads it and stores it in a first-party cookie for 90 days so it survives the gap between the ad click and a later subscription or purchase.

capture-sccid.tsts
// capture-sccid.ts - run on your Fanvue tracking-link landing page
function captureSnapClickId() {
  const params = new URLSearchParams(window.location.search);
  const scCid = params.get("ScCid");
  if (!scCid) return;

  const ninetyDays = 90 * 24 * 60 * 60 * 1000;
  const expires = new Date(Date.now() + ninetyDays).toUTCString();
  document.cookie = `_scid_fv=${scCid}; expires=${expires}; path=/; SameSite=Lax; Secure`;
}

captureSnapClickId();

Event mapping

Fanvue events map to Snapchat's four core event types as follows.

Fanvue eventSnapchat eventRequired / recommended parameters
Tracking link clickPAGE_VIEWRecommended: event_source_url, sc_click_id
Free follow / signupSIGN_UPRequired: em (hashed), sc_click_id
New subscriptionSUBSCRIBERequired: value, currency, em, event_id
RenewalPURCHASERequired: value, currency. Recommended: content_ids
PPV message purchasePURCHASERequired: value, currency. content_ids = ["fanvue:ppv"]
TipPURCHASERequired: value, currency. content_ids = ["fanvue:tip"]

Full payload example

The same conversion can be sent with a raw cURL call, the Fanvue API TypeScript client or a plain Python request. All three produce the same Snapchat Conversions API event.

snap-capi.shbash
curl -X POST "https://tr.snapchat.com/v3/PIXEL_ID/events?access_token=SNAP_CAPI_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "data": [
      {
        "event_name": "SUBSCRIBE",
        "event_time": 1699999999,
        "action_source": "WEB",
        "event_source_url": "https://link.apifanvue.com/c/creator_xyz",
        "event_id": "fanvue_sub_abc123",
        "user_data": {
          "em": ["<sha256(lowercase(trim(email)))>"],
          "client_ip_address": "203.0.113.4",
          "client_user_agent": "Mozilla/5.0 ...",
          "sc_click_id": "<ScCid>"
        },
        "custom_data": {
          "currency": "USD",
          "value": 9.99,
          "content_ids": ["fanvue:creator_xyz"]
        }
      }
    ]
  }'

Deduplication

If you also run the client-side Snap Pixel on your Fanvue page or bio link, both the browser event and the server event carry the same event_id. Snapchat uses this shared ID to recognize the two as one conversion, so ROAS and conversion counts are not inflated. Generate the event_id once per conversion, for example fanvue_sub_abc123, and pass it to both the pixel call and the server-side event in the same request cycle.

Matching and privacy

Fanvue API only sends hashed personal data to Snapchat. Email addresses are trimmed of whitespace, lowercased, and hashed with SHA-256 before they ever leave Fanvue API's servers. Raw email addresses are never transmitted.

Fields sent with each event: the hashed email (em), the client IP address and user agent for context, and the sc_click_id when a ScCid was captured. Consent is respected end to end: if a fan has not accepted marketing consent under IAB TCF v2.2 or your Consent Mode v2 configuration, Fanvue API withholds the event rather than sending it with degraded identifiers.

Test and verify

Open Events Manager in Snapchat Ads Manager and switch to the pixel's test mode, or request a test_event_code. Send a test event from the Fanvue API dashboard, either through the "Send test event" button on the Snapchat connection page or by including the test code on a real conversion. A good result shows the event listed within Events Manager with status "Received", the correct event name, and the hashed email marked as matched.

Troubleshooting

Six common Snapchat CAPI issues and how to resolve them
SymptomLikely causeFix
Events Manager shows 0 eventsWrong pixel ID or CAPI token in the Fanvue API dashboardRe-copy the Snap Pixel ID and token from Ads Manager, save, and resend a test event
Events arrive but are marked "low match quality"Missing em, client_ip_address or sc_click_idConfirm the tracking-link cookie is set and the fan's email is captured before the event fires
Duplicate conversions in Ads ManagerBrowser pixel and server event use different event_id valuesGenerate one event_id per conversion and pass it to both the Snap Pixel and the server call
401 Unauthorized from tr.snapchat.comCAPI token expired or missing scopesRegenerate the Conversions API token in Business Settings and update it in Fanvue API
PURCHASE events missing valuecustom_data.value not set on renewals or tipsAlways pass value and currency, even for $0 trials, so ROAS reporting stays accurate
ScCid not present on landing pageAd creative link is missing the Snapchat click-ID macroAdd {{ScCid}} to the destination URL template in Snapchat Ads Manager
Test events not showing in Events ManagerWrong or expired test_event_codeFetch a fresh test_event_code from Events Manager and pass it on the next test send

Frequently asked questions

Ready to build on Fanvue?

Get API keys, docs and MCP access in one click. Free trial, no credit card.