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
- A TikTok Ads Manager account
- A Pixel created in Events Manager
- Access to generate an Events API access token
Step 1: Get your Pixel ID
- Go to TikTok Events Manager
- Select your Pixel under Website Pixel
- Copy the Pixel Code (starts with
C, e.g.C4A1B2C3D4E5F6G7H8I9)
Step 2: Generate an Access Token
- In Events Manager, select your Pixel
- Go to Settings
- Under the Events API section, click Generate Access Token
- Copy the token
Step 3: Configure in ioZen
- Open your Intake Bot → Settings → Marketing → Ad Platform Integrations
- Enable TikTok and expand the section
- Paste your Pixel ID
- Paste your Access Token
- Enable On Submission
- Choose the TikTok event that matches what completing this Intake Bot means
- 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:
- In TikTok Ads Manager, go to Tools → Events Manager
- Select Data Sources, then select the Pixel connected to ioZen
- On Overview, locate Submit Form and review its Connection Method and Total Events
- Hover over the event and click Edit
- Select TikTok Pixel: Event Builder to inspect rules created with Event Builder
- Remove any Button Click rule attached to an Intake Bot answer, send, next, continue, or submit button
- Remove any URL Visit rule that treats the bot's general URL as a completed conversion
- Review the Events summary, then click Complete Setup or Finish Setup
- 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:
- Open TikTok Ads Manager → Campaigns
- Open the affected ad group and review its Optimization section
- Confirm the optimization location is Website
- Confirm the data source is the same Pixel configured in ioZen
- Select the exact standard event shown in ioZen as the optimization event, or a custom conversion based only on that event
- 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:
- In Events Manager, go to your Pixel → Test Events
- Copy the Test Event Code
- In ioZen, paste it into the Test Event Code field
- Click Test Connection
- 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:
- Install TikTok's Pixel Helper browser extension
- Open the published Intake Bot in a clean browser session
- Answer two or more questions without completing the Intake Bot
- Confirm Pixel Helper shows
PageView, but not the selected conversion event - Complete the Intake Bot once
- 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:
| Signal | Source |
|---|---|
email | SHA-256 hashed from submission data |
phone | SHA-256 hashed from submission data |
external_id | SHA-256 hashed submission ID |
ttclid | TikTok Click ID captured from the landing URL |
ttp | _ttp cookie set by the injected Pixel |
ip | Raw IP forwarded to the Events API (not stored by ioZen) |
user_agent | Browser UA from the submission request |
event_id | Browser-generated UUID shared by Pixel and Events API for deduplication |
Troubleshooting
| Error | Cause | Fix |
|---|---|---|
| Error code 40001 | Access token is invalid | Generate a new token in TikTok Events Manager → Settings |
| Error code 40002 | Pixel ID is invalid | Copy your Pixel Code from TikTok Events Manager (starts with C) |
| Test Connection event not appearing in Test Events | Events validate asynchronously, or the Test Event Code is incorrect | Wait a few minutes, confirm the code, and run Test Connection again |
| Real submissions not appearing in production | The bot did not reach COMPLETED, On Submission is off, or delivery failed | Complete a published bot, confirm On Submission is enabled, and review Diagnostics |
| Conversions increase after every answer | An Event Builder Button Click rule is attached to a reused chat button | Edit the event in Events Manager and remove the Button Click rule |
| Conversions increase on page load | An Event Builder URL Visit rule or the wrong campaign optimization event is active | Remove the URL rule and select Submit Form as the campaign event |
| Submit Form is browser only | The Events API credentials or server delivery are not working | Test the ioZen connection and review Diagnostics |
| Submit Form is server only | The browser Pixel is blocked or disabled for the embed | Check Pixel Helper, CSP, and Track inside embed |
| Browser and server events count twice | The paired events are not deduplicating | Open event details and verify deduplication diagnostics |
Best Practices
- Enable "Capture Click IDs" in ioZen's attribution settings so
ttclidis 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
SubmitFormoptimization event with ioZen's Completed submissions for the same date range and timezone.
Official TikTok references
- How to Add or Edit Events (Event Builder and Custom Code)
- Add or Edit Events
- Standard Events and Parameters
- Diagnostic and monitoring tools in TikTok Events Manager
- How to test TikTok Pixel events
- Set up and verify a TikTok web data connection
- Create a Lead Generation campaign with your website
- Signal optimization for Lead Generation campaigns
- Duplicate an ad group