S Subster

Ad networks and pixels

You will connect Meta or TikTok so the ad account sees your funnel's sign-ups and payments and learns from them.

Before you start

Step 1. Get the data in the network's account

The network issues two values where the pixel is created:

Also take the test event code (Test Event Code) from the network's event testing section. With it, the step 3 test event lands there, not in the pixel's regular statistics.

The network's help shows where. Meta: where to issue a token and where to get the test event code. TikTok: how to create a pixel and where to issue a token.

Step 2. Connect the network

Open “Settings” in the project menu → “Analytics and pixels” → “Ad sources”. Turn on the Meta or TikTok switch — a form opens.

Enter the “Pixel ID”, the token and the test event code. Meta's token goes into “Access token (CAPI)”, TikTok's into “Access token (Events API)”. Click “Connect”.

The pixel works on published pages at once, without republishing. A second network connects the same way, in its row.

Step 3. Send a test event

In the network row, click “Configure”, then “Send a test event”. If accepted, find ViewContent in the network's account: with the test event code it appears in event testing within minutes.

Step 4. Decide what to send

Optional: the defaults work; return later if needed. The settings are in the same form and apply on “Save”.

SettingDefaultWhat it changes
“Which payments to send”“All payments, renewals included”with “Only a person’s first payment”, no renewals or extra payments
“Send refunds and lost disputes as a cancelled conversion”ona full refund or lost dispute cancels the purchase in the network; partial refunds are not sent
“Send events around ad blockers”offpre-payment events go from the browser pixel and also from our server, which ad blockers do not cut; the network counts the repeat once
“Purchase value multiplier”1the purchase amount is multiplied by it
“Advanced: event names, person matching”names from the table below, “Send a hash of the email and phone” onevent names in the network; whether to help it recognize the person by email and phone

Step 5. Check the first payment

Put the published funnel's address or an A/B test's “Public URL” into the ad and launch. A purchase on Stripe test keys does not reach the network; the first delivered payment comes from a real sale.

What the status in the network row means:

StatusMeaning
“Working”the network accepted a server event in the last day
“No events yet”no event accepted yet. With “Send events around ad blockers” off, this lasts until the first payment; the test event does not change it
“Went quiet”events were accepted before, but none in the last day; the last one's time is shown. With blocker bypass off, a day without sales does this too
“Error”sends fail, with no event accepted in a day. A final refusal, such as a rejected token, shows “Error” at once, even if events were accepted that day. A banner with the reason and advice appears under the row, and we email the project owner — at most once a day

Reasons that mean more than they say:

Reason in the logMeaning
“the visitor refused tracking”refused, or pressed nothing on the consent banner
“a test purchase — it never goes to ad networks”paid in Stripe's test environment, or your server sent a test event
“there is no record of this visitor consenting”your server sent the event without the buyer's consent mark — give your developer Send an event to us

Which events go to the network

What happenedDefault network nameHow it goes
the visitor opened a funnel pagepage viewbrowser
completed 90% of the quizViewContentbrowser to Meta; server to both — with “around ad blockers”
left an emailCompleteRegistrationthe same
started checkoutInitiateCheckoutserver only, with “around ad blockers”
paidPurchaseserver always; browser — on the post-payment page
renewed a subscription or paid extraPurchaseserver, if all payments are sent
money fully refunded or a dispute lostRefund for Meta, CancelOrder for TikTokserver, if refunds are on
installed and opened the app after paymentAppInstallserver

In-app sign-ups and purchases reach the network only if your developer reports them — Send an event to us.

Visitors from the EU, Norway, Iceland, Liechtenstein, the UK and Switzerland, or of unknown country, see a cookie consent banner. For others, consent is set automatically.

Until “Accept”, the network learns nothing: the pixel does not load, click IDs are not stored, server events and the purchase are not sent. “Decline” and silence work the same, so the network shows fewer European purchases than Subster.

A visitor moving between your subdomains is asked on each. For one decision on all, turn on “Share the consent decision with my subdomains”: funnel row ⋮ → “Domain”.

Click IDs

The ID in the address links a purchase to an ad click. The funnel reads fbclid, ttclid and gclid itself — nothing to set up. Campaign tags are separate, see A/B tests and Funnel analytics.

A funnel button to an external address with {click_id} fills it for a European visitor only after “Accept”. A/B test addresses have no such limit.

Report to a partner tracker

If traffic comes through an affiliate network or tracker crediting sales by its own click ID, we can report sign-ups and first payments to it.

  1. Add the partner's click ID to their link as click_id, sub_id or clickid — whichever the partner names; they fill the value.
  2. Open “Settings” → “App connection” (without an app: “Keys and webhooks”) → “For developers”. In “Sales reports to the tracker”, paste the partner's address into “Postback address” and click “Save”.
Placeholder in the addressWhat goes into it
{click_id}the partner ID from the visit address; not ad network IDs; empty without an ID
{status}lead — left an email, purchase — first payment, app_installed — opened the app after payment
{payout}first payment amount in its currency, e.g. 19.99
{txid}payment number; for a sign-up — session number

An AppsFlyer or Adjust install tracker connects in “App connection”, “Through an ad tracker”. What to paste into it is in Funnel analytics.

Your own analytics: Amplitude

On “Analytics and pixels” → “Analytics”, turn on Amplitude. Enter the “Amplitude project key”, choose the “Project region” and tick “Which events to send”. Click “Connect”, then “Check the connection”: within a minute [Funnel] Connection Check appears in your Amplitude.

Visitor consent applies here too. If delivery breaks, the project owner gets an email, and a banner “Analytics for the … project is not receiving events” with “Open settings” appears above the cabinet.

Services under “In the works”, including Google Analytics, GTM, Mixpanel and PostHog, cannot be connected yet.

Next