Subscribe; for free-trial offers it’s StartTrial.
Configuration
- Creator
- Agency
event_id.
Providers
The six events
Fanvue sends six conversion events and no others.InitiateCheckout but never Purchase or Subscribe.
The new-subscriber event
Optimise forSubscribe. It’s the only event that fires when someone becomes a paying subscriber to a creator’s profile, and this is how it sits beside the other outcomes:
- Renewals are
Purchase, notSubscribe. Recurring revenue from an existing subscriber doesn’t re-fire the acquisition event, so aSubscribecampaign metric isn’t inflated by month two. - A fan acquired on a free trial never fires
Subscribeat all. See Trials.
Subscribe fires on every new paid subscription start, including a returning fan who previously
cancelled and subscribes again. It counts subscription starts, not first-ever subscribers.
Trials
If you run free-trial offers,Subscribe alone undercounts your acquisition. A trial fan’s entire lifetime produces StartTrial and then Purchase, never Subscribe. This is the full trial funnel.
- Optimise on
StartTrial. It’s the acquisition moment, and the only event that fires at trial signup. - Treat the first
Purchaseas the value event. Its payload is indistinguishable from an ordinary monthly renewal, so measure it by time fromStartTrialrather than by looking for a differentcontent_category. - Don’t expect
InitiateCheckout. A trial never reaches a paid checkout, so a funnel built onInitiateCheckout→Subscribeshows zero trial traffic even when trials are converting.
StartTrial, and both share one
deduplication key, so a trial is never counted twice.
StartTrial deliberately carries value: 0 rather than omitting the amount, because Meta flags
StartTrial events sent without a currency. It doesn’t inflate ROAS.
Reading the Purchase event
Purchase covers several commercially distinct things, so every one carries a
custom_data.content_category you can filter on.
Event structure
The payload sent to the Meta Conversions API has this shape. The Google Tag Manager container receives the same fields, wrapped with your container ID.Top-level fields
user_data: customer matching
Every personal field is SHA-256 hashed before it leaves Fanvue, per Meta’s specification. Raw email
addresses, phone numbers and names are never transmitted.
PageView naturally carry fewer of them than a Purchase.
custom_data
Deduplication
Meta receives each conversion from two places at once:- Browser pixel. Fires in the fan’s browser and carries the browser cookies (
_fbp/_fbc). - Conversions API (server-side). Fires from Fanvue’s backend, carries hashed customer data and survives ad blockers and iOS restrictions.
event_id. Meta deduplicates on the pair (event_name, event_id), so it
keeps one and discards the other, and running both doesn’t double count.
Keep both legs enabled. Turning off the browser pixel doesn’t improve accuracy, because it removes the
cookie signal and lowers match quality.
Server postback (S2S)
Use a server postback for ad trackers that expect a server-to-server callback rather than a pixel.Append the click ID to your links
fvc_id to the creator links you advertise, set to your tracker’s
click-ID macro, for example ?fvc_id={clickid}. Fanvue stores it when the
fan lands.Set your postback URL
GET on conversion. The available macros
are {click_id}, {payout}, {goal}, {currency}, {event_id} and {event_name}.Send a test
Test events
Meta’s Events Manager → Test Events tab shows events in real time without touching your reported metrics.Copy the test event code
TEST12345.Paste it into Fanvue
Watch it arrive
TestEvent and are deliberately excluded from real
conversion reporting, so sending a test doesn’t make a misconfigured setup look live.
Reporting recipes
The tracking-link and UTM fields sit on every event, but no standard report breaks down by them on its own. Each destination needs a one-time setup.Count new subscribers in Meta
Count new subscribers in Meta
Subscribe as a standard event, so it’s available in Ads Manager with no setup.
To separate it further (for example, new subscribers from a specific campaign), create a Custom
Conversion on the Subscribe event with a rule on utm_source or tracking_link.If the creator runs free trials, Subscribe isn’t your whole acquisition number. Report
Subscribe and StartTrial side by side, and never add them together as “subscribers”, because
one is paying and one is not.Measure a trial campaign
Measure a trial campaign
StartTrial, which fires the moment the trial begins. To measure
whether those trials monetise, compare StartTrial volume against Purchase with
content_category equal to subscription_renewal, offset by the trial length. The first charge
after a trial is delivered as an ordinary renewal, so there’s no separate “trial converted”
event to filter on.Report revenue without renewals
Report revenue without renewals
Purchase and exclude content_category equal to
subscription_renewal and product_subscription_renewal. What remains is new spend rather than
recurring billing.Segment by tracking link
Segment by tracking link
utm_source equals TIKTOK or tracking_link equals fv-3. The
resulting Custom Conversion can be reported on and optimised against.Meta’s standard campaign reports attribute to Meta ad clicks, not to Fanvue links, so these
fields don’t appear there without the Custom Conversion. The raw values are always visible
per event under Test Events and in the event detail view.Map the fields in GTM → GA4
Map the fields in GTM → GA4
source / medium / campaign) using utm_source / utm_medium / utm_campaign.
Conversions then break down by source and campaign natively.Common issues
Events show as Failed in Recent activity
Events show as Failed in Recent activity
- Invalid or expired Conversions API token. Tokens generated against a different pixel, or revoked when the generating user lost access to the Business Manager, fail every event. Generate a new one in Events Manager and save it again.
- Pixel ID and token mismatch. The token must have been generated for the pixel ID entered alongside it.
- Pixel deleted or moved to a different Business Manager. Re-enter both fields.
Conversions appear twice in Meta
Conversions appear twice in Meta
event_name and event_id. If
you also run your own Meta pixel on a landing page and fire your own
Subscribe or Purchase from it, Meta has no way to match it to Fanvue’s
event and counts both. Remove the duplicate fire, or give it your own
distinct event name.Low Event Match Quality
Low Event Match Quality
user_data a given event can carry. PageView and
CompleteRegistration carry less than a Purchase, which also has the billing address behind it,
so a page-view-heavy pixel shows a lower average score. That difference is expected and not a
misconfiguration.The score does drop for real reasons too. Visitors who declined marketing cookies carry no _fbp
or _fbc, and a click identifier older than 90 days is dropped rather than sent expired.No PageView events at all
No PageView events at all
PageView requires the visitor to have accepted marketing cookies. In regions
where a consent banner is shown, page views from visitors who declined are not
sent. Conversion events later in the funnel are sent server-side and are not
affected in the same way, so a pixel with few page views but healthy purchases
is behaving correctly.Revenue does not match the creator's earnings
Revenue does not match the creator's earnings
valueis the gross amount charged, before Fanvue’s fee, and is always in USD.Purchaseincludes renewals, tips and unlocks, not only subscriptions. Filter oncontent_categoryto compare like with like.
A conversion is missing entirely
A conversion is missing entirely
- The event is enabled. Both the creator and the agency configuration have a per-event list, and an event that is switched off is never sent.
- The configuration is enabled. A saved but disabled provider sends nothing.
- The payment actually succeeded. Declined and pending payments fire
InitiateCheckoutonly. - For server postbacks, the fan arrived carrying
fvc_id.
Events stopped after a token or pixel change
Events stopped after a token or pixel change