ioZen Docs

TikTok

Connect ioZen to TikTok Ads using dual-channel Pixel + Events API. ioZen injects the Pixel automatically — no code to paste.

Send conversion events to TikTok for accurate ad attribution. ioZen uses a dual-channel approach: a browser-side TikTok Pixel (for _ttp match quality and Test Events visibility) plus a server-side Events API call. Both events share the same event_id so TikTok deduplicates them automatically.

You never paste any Pixel code. ioZen handles injection on all published Intake Bot pages.

Prerequisites

Step 1: Get your Pixel ID

  1. Go to TikTok Events Manager
  2. Select your Pixel under Website Pixel
  3. Copy the Pixel Code (starts with C, e.g. C4A1B2C3D4E5F6G7H8I9)

Step 2: Generate an Access Token

  1. In Events Manager, select your Pixel
  2. Go to Settings
  3. Under the Events API section, click Generate Access Token
  4. Copy the token

Step 3: Configure in ioZen

  1. Open your Intake Bot → Settings → Marketing → Ad Platform Integrations
  2. Enable TikTok and expand the section
  3. Paste your Pixel ID
  4. Paste your Access Token
  5. Save

ioZen will automatically inject the TikTok Pixel on your bot's published page and fire a SubmitForm event on submission. The Events API call fires server-side in parallel using the same event_id.

The Test Events tab in Events Manager lets you see both the browser Pixel event and the Events API event.

TikTok validates events asynchronously. A successful Test Connection result (or a code: 0 API response) only confirms the request was well-formed and authenticated — it does not guarantee the event will appear. Always confirm in the Test Events tab before trusting a test result.

To use Test Events:

  1. In Events Manager, go to your Pixel → Test Events
  2. Copy the Test Event Code
  3. In ioZen, paste it into the Test Event Code field
  4. Click Test Connection
  5. Open Events Manager's Test Events tab to confirm the event actually arrived

With a Test Event Code set, any test submission you run inside ioZen (the bot preview and single-field test view) also routes to the Test Events tab.

The Test Event Code only affects test events — the Test Connection button and in-app test submissions. Real submissions from your published bot always go to your live pixel and ignore the code, so it's safe to leave it set.

How ioZen injects the Pixel

  • Hosted bot (yourdomain.com/i/slug): Pixel always injected when the integration is enabled
  • Embedded widget / popup / inline: Pixel injected by default; use the Track inside embed toggle to turn it off if your host page already has the same Pixel loaded

ioZen's own marketing Pixel (if present on your site) is separate and unaffected.

Match Quality

ioZen sends the following signals to improve Event Match Quality:

SignalSource
emailSHA-256 hashed from submission data
phoneSHA-256 hashed from submission data
external_idSHA-256 hashed submission ID
ttclidTikTok Click ID captured from the landing URL
ttp_ttp cookie set by the injected Pixel
ipRaw IP forwarded to the Events API (not stored by ioZen)
user_agentBrowser UA from the submission request
event_idBrowser-generated UUID — shared by Pixel and Events API for deduplication

Troubleshooting

ErrorCauseFix
Error code 40001Access token is invalidGenerate a new token in TikTok Events Manager → Settings
Error code 40002Pixel ID is invalidCopy your Pixel Code from TikTok Events Manager (starts with C)
Test submission not appearing in Test EventsEvents validate asynchronously — wait a few minutes, then confirm the Test Event Code is set correctlyRe-test with the Test Connection button
Real submissions not appearing in productionConfirm the submission was not a test run — test submissions route to the Test Events tab by design when a Test Event Code is set

Best Practices

  • Enable "Capture Click IDs" in ioZen's attribution settings so ttclid is captured for better match rates.
  • Leave Track inside embed on unless your host page already loads the same TikTok Pixel — loading it twice can double-count Pixel-side events (server-side Events API delivery is unaffected either way).

On this page