Fix guide · Any website · medium · about 30 min
TikTok Pixel tracks a button on desktop but not on mobile
For the finding “Mobile buttons are tracked differently from desktop”.
What this means
On your page, a button or link sends a TikTok Pixel event (for example Lead or Contact) when it is clicked on a desktop screen, but not when the same button is tapped on a phone, or the other way round.
We report this as possible: a site can legitimately behave differently on phones. Check it yourself before changing anything.
Why it can cost you money:
- Most ad traffic is mobile. If the mobile button is silent, those conversions never reach TikTok.
- Campaigns that optimize for conversions then learn from the few desktop visitors.
- Reports undercount the device where people actually convert.
How to confirm it yourself
- Open the page in a private (incognito) window, open developer tools (F12), go to Network and filter by
analytics.tiktok.com/api/v2/pixel. Accept cookies. - Click the button on the desktop layout and note the event that leaves (the
eventfield in the request payload). - Turn on device emulation (the phone icon in Chrome’s developer tools, or Responsive Design Mode in Firefox and Safari), choose a phone, reload and accept cookies again.
- Tap the same button. If no event leaves, or a different one does, you have the mismatch. Confirm on a real phone if you can: some sites switch layouts on the device type, not only on the screen width.
TikTok’s Test Events tab in Events Manager is another way to watch events arrive while you tap through the site on your phone.
How to fix
The cause is almost always that the phone and desktop versions are different elements, and the tracking is attached to only one of them.
-
Find out whether there are two buttons. Right-click the button and choose Inspect in both layouts. If the element, its ID or its classes differ, your site renders a separate mobile copy (common in site builders, sticky mobile bars, mobile menus and “show on mobile only” blocks).
-
Attach the event to every copy. Options, from simplest:
- give both copies the same identifying attribute (a class like
js-book-callor adata-attribute) and attach the code to that, instead of to one element’s ID; - in a tag manager, change the click trigger so it matches both copies (for example “Click Classes contains
js-book-call” instead of a single Click ID), and check it in Preview mode on both layouts; - if the button leads to another page (a booking or thank-you page), send the event when that page loads instead, so it no longer depends on which copy was tapped.
- give both copies the same identifying attribute (a class like
-
Send the event once per action. If both copies are in the page at the same time (one hidden by CSS), make sure a single tap does not fire two events.
-
Check mobile-only links. On phones, a “Call us” or “WhatsApp” button often becomes a
tel:or app link. If that is your conversion, track it on the mobile element too, with the same event name as on desktop (Contactis TikTok’s standard event for this). -
Use the same call on both layouts, for example:
ttq.track('Contact', {}, { event_id: crypto.randomUUID() }); -
Publish your changes and clear any cache.
Common causes
- The site builder renders separate desktop and mobile versions of a section, and only the desktop button carries the tracking code or the tag manager selector.
- A sticky mobile call-to-action bar was added later without tracking.
- The click trigger uses an element ID that exists only in one layout.
- The desktop button submits a form (tracked on submit), while the mobile button links to a different page or app.
- A script waits for a mouse event (
mouseover,mousedown) that touch screens do not send the same way.
How to verify the fix
- Repeat the test in desktop and phone layouts: the same button sends the same event once in both.
- Re-run the check on IsPixelWorking. The finding should be gone.
Sources
- TikTok API for Business, Install Pixel using code (
ttq.track, event code placement): https://business-api.tiktok.com/portal/docs?id=1739585702922241 - TikTok API for Business, Supported events (Contact, Lead and others): https://business-api.tiktok.com/portal/docs?id=1771101186666498
- TikTok Business Help Center, Events Manager: monitor and diagnose (Test Events): https://ads.tiktok.com/resources/help/article/tiktok-events-manager-monitor-and-diagnose?lang=en
- Chrome for Developers, Simulate mobile devices with device mode: https://developer.chrome.com/docs/devtools/device-mode
- Google Tag Manager Help, Click trigger: https://support.google.com/tagmanager/answer/7679320
More TikTok guides
- TikTok Pixel fires before cookie consent: how to fix it
- TikTok Pixel not firing after cookie consent: how to fix it
- Repeated TikTok event IDs drop real conversions: how to fix
- Duplicate TikTok Pixel events: how to find and remove them
- TikTok Pixel event_id missing: how to add it for deduplication
- TikTok click ID (ttclid) lost after an ad click: how to fix it
- Two TikTok Pixels on one site: when it's fine, how to fix
- TikTok Events API deduplication: match the pixel's event_id
- How to set up the TikTok Events API (with deduplication)