TEASEDocs
ProductsLinkSmart links & ads

Connect an ad platform

Wire a domain up to Meta, TikTok, or one of 12 other networks, and confirm postbacks are actually being delivered.

Ad Platforms connects a domain to an ad network so the events that happen on it — a click, a new subscriber, a first purchase — are sent server-side (Conversions API / postback) to that network, instead of relying only on the browser pixel. Each connection is per-domain, per-network.

Networks

14 networks are in the registry: the four mainstream ones (Meta, X/Twitter, Reddit, TikTok — pixel + token, both browser pixel and server-side) and ten adult ad networks (ExoClick, TrafficStars, ClickAdilla, JuicyAds, EroAdvertising, HilltopAds, TrafficHunt, PlugRush, MyBid/TwinRed, Adsterra — server-side postback only, no browser pixel). GET /api/admin/bg/ad-platforms returns the full registry so the connect form can render each network's exact fields.

Connect one

POST /api/admin/bg/ad-platforms?domain=<host> (or put domain in the body):

FieldNotes
platformA registry key, e.g. meta, tiktok. Unknown key → platform_unsupported.
pixel_idValidated against that network's own format (e.g. Meta: 6–20 digits). Networks with no pixel field silently ignore it.
access_tokenRequired up front only if the network marks its token required (capi_token_required otherwise). Never returned by any read endpoint — only has_token-style presence.
extraNetwork-specific fields (e.g. Reddit's ad_account_id). A missing required one → extra_required.
event_mapMaps your six internal events (click, new_subscriber, first_purchase, repeat_purchase, message_received, fan_sent_3_messages) to that network's own event names. Unset entries fall back to the network's sane default.
send_all_conversionsDefaults true.

PUT /api/admin/bg/ad-platforms/{id} edits a connection. A blank access_token on an update keeps the existing token — it can never accidentally wipe a real one. status can be flipped between active and paused.

DELETE /api/admin/bg/ad-platforms/{id} removes it.

Confirm delivery, not just configuration

Saving a connection only means it's configured — it says nothing about whether events are actually reaching the network. Check that separately.

GET /api/admin/bg/ad-platforms/logs?domain=<host>&platform=<platform> returns the last 50 server-side send attempts plus counts by outcome:

  • sent — delivered with an HTTP 2xx.
  • failed — the network rejected or errored on it (http_code / error are included).
  • skipped — the event's mapping was off, or there was no ad-click to attribute it to.

Drop domain for an account-wide view across every connected network.

The on-page pixel

An active Meta connection with a non-empty pixel_id is additionally mirrored onto the landing page itself (both draft and published), so the browser fires PageView/Lead alongside the server-side events. This mirroring is Meta-only and only happens for a connection that's status: active with a pixel set — a paused Meta connection, or any other network, never touches the on-page pixel. If you change a Meta connection and the on-page pixel doesn't move, check that gate before anything else — see Troubleshooting.

Named ad campaigns

For attributing which specific ad drove a click, POST /api/admin/bg/ad-campaigns?domain=<host> with a name creates a named campaign; its ready link is https://<host>/?source=ig_ad_<slug> (the base, un-named link is always https://<host>/?source=ig_ad). GET/DELETE list and remove campaigns the same way.

What's next

Once a network is connected and its logs show sent events, record ad spend so those clicks turn into a profit/ROI number instead of just a delivery log.

On this page