TikTok is walled — the lever is deselecting Pangle (its audience network) and the weak placements ValidVisit scores worst, then shifting budget and claiming credits.
TikTok Ads lives inside a closed in-app ecosystem where every click happens within the TikTok mobile app or its in-app browser. That architectural reality shapes the invalid traffic patterns advertisers run into here. Because users never leave the app for an external browser, the way visitors behave looks different from desktop web traffic — and so do the bots. Click farms running rooted Android devices or iOS emulators can cycle through TikTok accounts at scale, producing clicks that carry believable mobile user-agents but never behave like a person who actually wanted to be on your page. TikTok's auction is placement-aware: inventory is tagged with the __PLACEMENT__ macro, which surfaces values such as `tiktok` (in-feed), `pangle` (TikTok Audience Network publisher apps), and `topfeed`. Pangle placements — served across third-party mobile apps outside TikTok's own application — carry a different IVT risk profile than first-party in-feed inventory, which is the pattern you tend to see across mobile audience networks generally. ValidVisit appends tracking parameters at the click URL level and weighs each click against 100+ independent data points — the network it arrived through, the device behind it, and how the visitor actually behaves — folding them into a single 0-100 quality score per click. It scores after the click lands on your page and hands you per-placement visibility through the network's own macros, all without ever touching the click path itself.
https://yoursite.com/landing?utm_source=tiktok-ads&utm_medium=social&vv_campaign_id=__CAMPAIGN_ID__&vv_adset_id=__AID__&vv_ad_id=__CID__&vv_placement_id=__PLACEMENT__&ttclid=(auto-tagging)On first-party TikTok in-feed inventory, the most common shape of trouble is mobile click-farm activity: clicks that originate from IP ranges tied to bulk-account operations, show no engagement with the landing page, and finish in milliseconds. TikTok's in-app browser forwards a stripped user-agent, so ValidVisit leans on the broader picture instead — pulling together everything it can observe about the network, the device and the visitor's behavior, then scoring the whole package on a 0-100 scale. A click that claims to be a top-tier handset but behaves nothing like one is exactly the kind of mismatch that pushes a score toward the low end, and it's one of the more distinctive tells in this channel.
On Pangle placements, the pattern shifts toward SDK-level click generation: a publisher app can fire a click event without any deliberate user tap, so the click shows up with no matching sign of a real person arriving. That gap is very informative here — when a click presents as mobile but the surrounding context says otherwise, the inconsistency is what drags the quality score down rather than something the model waves off as noise.
TikTok auto-assigns a click ID (ttclid) to each session through auto-tagging, which ValidVisit ingests alongside __PLACEMENT__ and __CAMPAIGN_ID__ values to tie each score back to the exact campaign and sub-source. A ttclid that's missing, or that repeats across multiple distinct scored sessions, is a tell in its own right — it suggests the click wasn't organically generated inside TikTok's own flow.
Clicks that look like competitor automation do show up on TikTok, though less often than on search inventory. They tend to surface as bursts from a narrow account cohort inside a single campaign window — an inferential read, not a definitively caught category.
Segment your quality-score distribution by the __PLACEMENT__ token value. Pangle placements often land in a different part of the 0-100 range than first-party TikTok in-feed. If Pangle sub-sources are pulling a disproportionate share of low scores relative to their spend share, that placement tier is the right exclusion target inside Ads Manager — not the campaign as a whole.
Traffic-objective and Reach campaigns open budget to a broader publisher mix than Smart+ Performance campaigns do. Sorting IVT rate by __CAMPAIGN_ID__ quickly shows whether your campaign objective is amplifying exposure to lower-quality Pangle sub-sources, which lets you make a targeted change rather than pausing spend across the board.
TikTok auto-tags every valid click with a unique ttclid. Clicks that reach your landing page without a ttclid, or where the same ttclid turns up across multiple distinct sessions in ValidVisit's log, point to click injection or SDK-layer click generation on the Pangle publisher side — separate from any session a real user actually started.
Among the 100+ data points behind each score, ValidVisit weighs where a click really came from against the device it claims to be. A click presenting a mobile user-agent while the surrounding network context looks nothing like a phone on a carrier is a strong emulator-or-proxied-device signal, and it pulls the quality score down hard. That contradiction is more common in Pangle's third-party app supply than in TikTok's own app, which is why the Pangle placement breakdown matters.
Each TikTok Ads macro maps to a normalized parameter, so every scored click is pinned to the right campaign, creative and publisher.
| Token | TikTok Ads macro | Maps to | Identifies |
|---|---|---|---|
| Campaign ID | __CAMPAIGN_ID__ | campaign_id | campaign |
| Ad Group ID | __AID__ | adset_id | adset |
| Ad ID | __CID__ | ad_id | ad |
| Placement | __PLACEMENT__ | placement_id | placement |
| Click ID (ttclid) | (auto-tagging) | ttclid | click |
__CAMPAIGN_ID____AID____CID____PLACEMENT__(auto-tagging)TikTok Adsitself isn’t the problem — bots and invalid traffic concentrate in a handful of its sub-sources: the publisher, site or zone, and the placement or widget within it. So we roll the score up by those TikTok Ads tokens, not by creative (which says nothing about whether a click was human).
Illustrative example — TikTok Ads traffic scored 0–100 per sub-source, worst first.
See your own TikTok Ads sub-sources scored this way.
Bot / invalid-traffic score broken down by:
__PLACEMENT__Per-click id: TikTok Ads passes a unique click id, so we also run velocity, deduplication and repeat-source checks on every click.
Compare bot & invalid-traffic breakdown across every ad network →Every click is weighed against more than a hundred independent data points and reduced to a single, sortable 0–100 quality score.
Each data point is combined rather than checked in isolation, so a genuine human almost never trips enough of them to be flagged — and bots that beat one rarely beat the rest.
The detection model is ours and stays that way. What you get is a clear verdict on every click — not a single brittle rule you can game, and not an unexplained number you can't act on.
Every verdict maps to the campaign, publisher and placement that sent the click — so you know exactly which source to cut.
Both work and they complement each other. With auto-tagging on, TikTok appends ttclid to every click URL automatically — ValidVisit ingests that value with no extra configuration. You can also add TikTok's URL macros (__PLACEMENT__, __CAMPAIGN_ID__, __AID__) to your destination URL to attach placement and campaign context to each scored event. Neither approach interferes with the other, and using both gives you the richest per-click record for exclusion decisions.
ValidVisit tags each scored click with the __PLACEMENT__ value from your TikTok URL macro. Inside your ValidVisit dashboard you can filter and export the low-scoring sessions by placement, then carry that list into TikTok Ads Manager and apply placement-level exclusions yourself. ValidVisit's job is to surface which sub-sources are skewing your data and give you the evidence to act — the exclusion step happens in Ads Manager, where TikTok gives you the controls to do it.
TikTok's protections run inside its own infrastructure and focus on what it can see — mostly what happens before and during the click. ValidVisit scores each click after it arrives on your landing page, so it captures things TikTok can't: whether the visitor that showed up actually behaves like a real person on a real page, how the device and network it came from line up against the device it claims to be, and whether the ttclid matches a genuine TikTok session. It rolls all of that into one 0-100 quality score and produces timestamped, exportable records you own independently — useful if you need to support a spend dispute or give an agency an auditable view of traffic quality across their managed accounts.
See which campaigns and publishers send real, converting traffic vs bots — every click scored 0–100.
Free trial at launch · lock in early-access pricing
One script · raw IP never stored · GDPR legitimate-interest basis