mym ads tracking
Connect mym revenue to advertising performance
mym ads tracking turns subscriptions, PPV, Private Media and tips into server-side conversion events for your ad platforms. Every purchase posts back to the ad that brought the fan in, so you know exactly which campaigns make money.
Which ad platforms are supported?
A server-side conversions setup for each major ad platform used by creator marketing teams. Click IDs are captured on your landing page, and confirmed mym revenue is posted back to the platform that sourced the click.
Meta Pixel + Conversions API
Meta Pixel captures the click on the landing page, while a server-side Conversions API call sends the confirmed mym revenue event, deduplicated against the browser event.
- Capture fbclid, fbp and fbc cookies on the tracking-link landing page.
- Send Subscribe, Purchase (PPV, Private Media) and a custom Tip event as server events.
- Deduplicate browser and server events with a shared event_id.
- Hash email and phone with SHA-256 before sending in the user_data object.
TikTok Pixel + Events API
TikTok Pixel captures ttclid on the landing page, then the Events API confirms CompletePayment and Subscribe events once the mym revenue signal arrives.
- Capture ttclid and store it against the fan record.
- Map mym Subscribe and PPV purchase to CompletePayment and Subscribe events.
- Use TikTok's test event code during setup, then switch to production event sending.
- Deduplicate with a shared event_id and enable advanced matching with hashed identifiers.
- Pass purchase value and currency on every server event.
Snap Pixel + Conversions API
Snap Pixel captures the Snapchat click ID on landing, and the Conversions API sends confirmed PURCHASE and SUBSCRIBE events with hashed identifiers.
- Capture ScCid from the landing page URL and store it with the fan.
- Map PPV and Private Media purchases to the PURCHASE event, subscriptions to SUBSCRIBE.
- Hash email, phone and any other personal identifier with SHA-256 before sending.
- Send events server-side so ad blockers cannot drop the conversion.
Google Ads Enhanced Conversions
Enhanced Conversions and offline conversion imports match a stored gclid to a later mym revenue event, so value flows back to the original ad click.
- Capture gclid on the landing page and store it against the fan.
- Import offline conversions on a schedule, matched by gclid or hashed email.
- Enhanced Conversions improve match rates using hashed contact data.
- Pass conversion value in the fan's currency for accurate ROAS reporting.
How a server-side postback is sent
When mym confirms a PPV purchase, your server receives a webhook and posts a deduplicated Purchase event to Meta's Conversions API, carrying the click identifiers captured at first touch.
# Server-side postback to the Meta Conversions API
curl -X POST "https://graph.facebook.com/v20.0/PIXEL_ID/events" \
-H "Content-Type: application/json" \
-d '{
"data": [{
"event_name": "Purchase",
"event_time": 1730000000,
"event_id": "ppv_9087_evt",
"action_source": "system_generated",
"user_data": {
"em": ["<sha256 of fan email>"],
"fbp": "<stored fbp cookie>",
"fbc": "<stored fbc cookie>"
},
"custom_data": { "value": 24.00, "currency": "EUR", "content_type": "ppv" }
}],
"access_token": "YOUR_CONVERSIONS_API_TOKEN"
}'Server-side postback to the Meta Conversions API after a mym purchase webhook.
The incoming webhook payload
The mym API webhook carries the purchase amount plus the stored click identifiers, so your integration can map it to the right ad platform event.
{
"event": "ppv.purchased",
"id": "evt_77341",
"creator_id": "cr_1042",
"fan": { "id": "fan_44021", "email_hash": "<sha256>" },
"amount": 24.00,
"currency": "EUR",
"click_ids": {
"fbclid": "IwAR2x...",
"fbp": "fb.1.173...",
"fbc": "fb.1.173....IwAR2x",
"ttclid": null,
"sccid": null,
"gclid": null
},
"campaign": { "utm_campaign": "meta_summer_promo", "utm_content": "creative_04" },
"created_at": "2026-02-18T21:04:00Z"
}Example payload for a confirmed PPV purchase.
mym event to Meta event mapping
The mapping table for the mym revenue events most relevant to ad attribution.
| mym event | Meta event | Key parameters |
|---|---|---|
| subscription.created | Subscribe | value, currency, predicted_ltv, event_id, fbp, fbc |
| ppv.purchased | Purchase | value, currency, content_type=ppv, event_id, fbp, fbc |
| private_media.purchased | Purchase | value, currency, content_type=private_media, event_id, fbp, fbc |
| tip.received | Tip (custom event) | value, currency, event_id, fbp, fbc |
How attribution rolls up to the original campaign
Click identifiers captured at the first touch stay attached to the fan record, so revenue recognized much later still traces back to a campaign, ad set and creative.
When a fan clicks a tracking link, the landing page captures fbclid/fbp/fbc, ttclid, ScCid, and gclid alongside the campaign, ad set and creative identifiers from the link's UTM parameters.
That bundle is stored against the fan record the moment mym confirms the fan exists, before any purchase happens.
Every later PPV purchase, Private Media unlock or tip tied to that fan is then sent as a server event carrying the original click identifiers, so the ad platform (and your own reporting) can credit the correct campaign, ad set and creative even weeks after the click.
Attribution windows follow each platform's own default (for example a click-through window) so reported conversions stay consistent with what the ad platform shows in its own interface.
A ROAS-per-creator view
Once revenue events are flowing, the reporting endpoint rolls spend and revenue up per creator and per campaign, so you can see which ads actually pay back.
GET /v1/reports/roas
| Creator | Campaign | Spend | Revenue | ROAS |
|---|---|---|---|---|
| Creator A | meta_summer_promo | $1,200 | $4,320 | 3.6x |
| Creator B | tiktok_launch_q3 | $800 | $1,760 | 2.2x |
| Creator C | snap_retarget_01 | $450 | $1,935 | 4.3x |
| Creator D | gads_search_brand | $600 | $1,140 | 1.9x |
What else the integration handles
Ads tracking is more than sending events. These operational concerns are built in.
Deduplication
A shared event_id between browser pixel and server event so platforms count each conversion once.
Consent-aware processing
Events are only sent when the fan's recorded consent allows advertising measurement.
Event quality monitoring
A dashboard tracking match rate, event coverage and rejected events per platform.
Attribution windows
Configurable windows aligned to each platform's own click-through and view-through defaults.
Failed-event retries
Failed deliveries queue for automatic retry with backoff, then surface in an error log.
Creator reporting
Per-creator spend, revenue and ROAS summaries a creator or manager could review independently.
Agency cross-account reporting
A rolled-up view across an entire roster for agencies running ads on behalf of several creators.
Hashed personal data
Email, phone and other identifiers are normalized and hashed with SHA-256 before leaving the system.
The attribution flow
From ad click to a ROAS report, each step runs on compliant, server-side event delivery.
- Ad click
- Tracking link
- mym purchase signal
- Compliant integration
- Server-side event
- Ads platform
- ROAS report
Frequently asked questions
- Meta (Pixel + Conversions API), TikTok (Pixel + Events API), Snapchat (Snap Pixel + Conversions API) and Google Ads (Enhanced Conversions, offline conversion imports).
- Yes, for the browser-side click and identifiers (fbclid, fbp, fbc). The Conversions API server event is then sent alongside it and deduplicated with a shared event_id, which is the pattern Meta recommends.
- Yes, a shared event_id per conversion means the browser pixel event and the server-side Conversions API or Events API event are recognized as the same conversion instead of being counted twice.
- Click identifiers captured at first touch are stored against the fan record. When a later PPV purchase or tip is confirmed by mym, the server event carries those original click identifiers so the ad platform credits the right campaign, ad set and creative.
- Email, phone and other personal identifiers are hashed with SHA-256 before they leave the system, and events are only sent for fans whose recorded consent permits advertising measurement.
Build on mym today
Request early access to mym API and tell us what you want to build for your creators.