TikTok Ads
TikTok: from pixel to your first campaign
Updated October 23, 2026
TikTok lets you choose a pixel in a campaign only after its first real event. This guide goes from creating the Data Source to a running campaign, including the step that switches the pixel on.
1. Create a Data Source in TikTok
The Data Source (TikTok also calls it a pixel) receives the events leadlime sends. Create one for each channel or bot.
- 1
Open Events Manager
In TikTok Ads Manager: Tools → Events → Connect data source.
- 2
Choose Web and manual setup
Web → Manual setup. Connection method: Events API. You do not install any code on your site.
- 3
Copy the pixel code
Name the Data Source, for example “leadlime”, and copy its code: Latin letters and digits.
- 4
Generate a token
In the Data Source's Settings, under Events API, select Generate Access Token and copy the token. Do not share it.
- 5
Copy the test code
Open the Test events tab and copy the test event code.
2. Connect TikTok in leadlime
In channel or bot setup, on the Ad platforms step, select Connect TikTok. For an active channel it is under Settings → Connections. Paste the pixel code, token, and test code, then select Verify TikTok connection.
leadlime sends a test CompleteRegistration event, which appears in the Test events tab. The test event only checks the connection; TikTok does not count it for campaigns.
3. Set up the landing page
On the Landing page step, choose a ready-made leadlime page or connect your own site with the tracking script. If your landing page already works for Meta, change nothing: the same script works for TikTok.
4. Check that the pixel is on
Right after the connection check, leadlime sends the pixel two real events: Contact and CompleteRegistration. They appear in Events Manager as real events, not test ones. Within 1–2 hours the Data Source status changes to Ready for campaign, and both events become available for optimization.
If the status does not change, activate the channel, copy the TikTok link from leadlime (Settings → Connections or the landing page menu), open it in a browser and tap the Telegram button on the page. leadlime sends one more Contact event. You do not need to join the channel.
5. Create the campaign
After launch, clicks appear in leadlime under Logs, joins are marked “Sent to TikTok”, and Events Manager shows server CompleteRegistration events.
- 1
Objective
Create → Lead generation → Website form.
- 2
Data Source and event
In Campaign info, choose your Data Source. Optimization event: Complete registration.
- 3
Link in the ad
Paste the TikTok link from leadlime into the ad's Destination URL.
- 4
No extra UTM
Under Preview, select Edit and turn off Auto-attach so TikTok does not add its own UTM on top of ours. TikTok adds ttclid itself, and it is needed.
- 5
Targeting and budget
Set them up as usual and submit the campaign for review.
Direct answers
Why does TikTok say “Not ready for campaign”?
TikTok enables a Data Source for campaigns after its first real standard event. Events from the Test events tab do not count. Right after the connection check, leadlime sends the pixel a real Contact and a real CompleteRegistration, and the status updates within 1–2 hours. If it does not, open your landing page with the TikTok link and tap the Telegram button.
Why is Complete registration greyed out with “Waiting for activity”?
TikTok lets you choose an optimization event only after it has received a real one. leadlime sends CompleteRegistration when you connect TikTok. If you connected TikTok earlier, save the connection again in Settings → Connections, wait 5–10 minutes and select Refresh in the event list.
Do I need the TikTok pixel on my website?
No. leadlime sends events from its server through the Events API. Create a Data Source connected with Events API; you do not add pixel code to the page.
Which event should I optimize for?
Complete registration: that is how leadlime marks a channel join or a bot start. Contact arrives when someone taps the Telegram button. It switches the pixel on, but optimizing for Contact means optimizing for taps, not joins.
I created an Offline Event Set. What now?
leadlime does not send events to an Offline Event Set. Create a new Data Source: Web → Manual setup → Events API. You can keep or delete the offline set.
Where do I paste the link?
Into the ad's Destination URL field. Take the TikTok link from leadlime, in Settings → Connections or the landing page menu. It already carries the TikTok parameters, and TikTok adds ttclid itself.
Primary sources
Test attribution on one public channel.
Install the snippet on your landing page, make a test join, and verify the complete path to Meta.
Try leadli.me