ioZen Docs

TikTok

Connect ioZen to TikTok Ads using dual-channel Pixel + Events API. ioZen injects the Pixel automatically, with 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. Enable On Submission
  6. Choose the TikTok event that matches what completing this Intake Bot means
  7. Save

SubmitForm is the default for a general completed Intake Bot. Choose CompleteRegistration for a completed account or registration, Contact when the person contacted your organization, or SubmitApplication for an application. TikTok does not define Lead as a standard web event.

ioZen injects the TikTok Pixel on the published page. The browser Pixel and server-side Events API call send the selected event with the same event_id, so TikTok can deduplicate them.

Step 4: Configure conversion triggers in ioZen

Open your Intake Bot and go to Settings → Marketing → Conversion Events.

  • On Submission: Sends one selected TikTok event after the Intake Bot is completed and the submission is saved.
  • Field-Level Conversions: Not sent to TikTok. A marked question would otherwise count as a second lead. Other platforms, such as Google Analytics or your webhook, can still receive it.

TikTok receives one event per completed case. A custom webhook label does not change the event TikTok receives. In Ads Manager, optimize on the exact event selected in ioZen (for example SubmitForm), not Lead.

Step 5: Remove Event Builder conversion rules

ioZen already installs the Pixel and sends browser events using custom code. Do not add a TikTok Event Builder Button Click or URL Visit rule for SubmitForm, Lead, or CompleteRegistration on an ioZen Intake Bot.

An Intake Bot reuses its answer or continue button for multiple questions. An Event Builder rule attached to that button can therefore report a conversion for every answered question, even though ioZen only completes one submission.

Audit the Pixel in TikTok:

  1. In TikTok Ads Manager, go to Tools → Events Manager
  2. Select Data Sources, then select the Pixel connected to ioZen
  3. On Overview, locate Submit Form and review its Connection Method and Total Events
  4. Hover over the event and click Edit
  5. Select TikTok Pixel: Event Builder to inspect rules created with Event Builder
  6. Remove any Button Click rule attached to an Intake Bot answer, send, next, continue, or submit button
  7. Remove any URL Visit rule that treats the bot's general URL as a completed conversion
  8. Review the Events summary, then click Complete Setup or Finish Setup
  9. Allow up to 30 minutes for the change to take effect

TikTok documents the supported edit path as Pixel details → hover over the event → Edit → select the integration method. Button Click rules measure every click on the selected element, while URL Visit rules measure every matching URL visit.

TikTok may vary the final remove control by account UI. Remove the rule from its Event Builder editor, then finish the setup. Do not paste TikTok's generated custom event code into ioZen; ioZen already supplies the base Pixel and conversion code.

Use the Pixel's Change Log to confirm who changed the Event Builder configuration and when. If no Event Builder rule exists, check the host site and Google Tag Manager for another copy of the same Pixel.

Step 6: Select the correct campaign event

The generic Conversions column in TikTok Ads Manager reports the optimization event selected for the campaign or ad group. It does not necessarily mean completed Intake Bot submissions.

For one conversion per completed Intake Bot:

  1. Open TikTok Ads Manager → Campaigns
  2. Open the affected ad group and review its Optimization section
  3. Confirm the optimization location is Website
  4. Confirm the data source is the same Pixel configured in ioZen
  5. Select the exact standard event shown in ioZen as the optimization event, or a custom conversion based only on that event
  6. Do not use Landing Page View, a button-click event, or a URL rule as the completion conversion

If TikTok does not allow the live ad group's optimization setting to be changed, duplicate the ad group, update the draft, publish it, and pause the original after the replacement is approved. TikTok's duplicate flow copies the settings and lets you review and edit the new draft.

Step 7: Verify the event behavior

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.

Verify server delivery:

  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. Filter Test Events to Server and confirm one event with the exact name selected in ioZen arrived

The Test Event Code is used by Test Connection. It does not reroute real published-bot submissions.

Verify browser behavior with TikTok Pixel Helper:

  1. Install TikTok's Pixel Helper browser extension
  2. Open the published Intake Bot in a clean browser session
  3. Answer two or more questions without completing the Intake Bot
  4. Confirm Pixel Helper shows PageView, but not the selected conversion event
  5. Complete the Intake Bot once
  6. Confirm exactly one browser event with the selected name appears

After TikTok processes the events, return to the Pixel's Overview:

  • Connection Method for Submit Form should be server & browser
  • Event details should show deduplication information
  • One completed Intake Bot should increase the deduplicated conversion count by approximately one, not once per answered question
  • Review Diagnostics for active issues and expand any issue for TikTok's affected-event samples and remediation steps

Use a dedicated test bot or remove the controlled submission afterward. A published-bot test is a real ioZen submission and may enter live reporting.

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 Connection event not appearing in Test EventsEvents validate asynchronously, or the Test Event Code is incorrectWait a few minutes, confirm the code, and run Test Connection again
Real submissions not appearing in productionThe bot did not reach COMPLETED, On Submission is off, or delivery failedComplete a published bot, confirm On Submission is enabled, and review Diagnostics
Conversions increase after every answerAn Event Builder Button Click rule is attached to a reused chat buttonEdit the event in Events Manager and remove the Button Click rule
Conversions increase on page loadAn Event Builder URL Visit rule or the wrong campaign optimization event is activeRemove the URL rule and select Submit Form as the campaign event
Submit Form is browser onlyThe Events API credentials or server delivery are not workingTest the ioZen connection and review Diagnostics
Submit Form is server onlyThe browser Pixel is blocked or disabled for the embedCheck Pixel Helper, CSP, and Track inside embed
Browser and server events count twiceThe paired events are not deduplicatingOpen event details and verify deduplication diagnostics

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.
  • Do not combine ioZen custom-code events with Event Builder rules for the same conversion.
  • Compare TikTok's SubmitForm optimization event with ioZen's Completed submissions for the same date range and timezone.

Official TikTok references

On this page