Give every TikTok and Pangle visit a Valid or Invalid verdict, spot the placements skewing your conversion data, then exclude them yourself in Ads Manager.
Pangle bundle ID in TikTok AdsThe buyer adds bad bundle IDs individually or bulk-uploads an .xlsx (one bundle ID per row, up to 10,000) to the TikTok Ad Network (formerly Pangle) block list, which stops their ads serving on those apps for any ad group with the block list enabled.
TikTok Ads Manager sells more than the TikTok feed. Its eligible placements are TikTok itself (with TikTok Lite and PineDrama in some countries), Lemon8, the Global App Bundle of apps such as CapCut and Fizzo, and TikTok Ad Network, formerly TikTok Pangle: the ad network of TikTok for Business, which TikTok puts at nearly 400,000 apps. TikTok tags inventory with the __PLACEMENT__ macro, which it documents as the placement type: TikTok or TikTok Pangle. Pangle placements are served in third-party apps outside TikTok’s own application, with their own block list and their own traffic security system, so per-placement verdicts matter more here than campaign averages.
TikTok defines invalid traffic as activity created by non-human entities such as bots and automated scripts. It splits it into general invalid traffic (spiders, crawlers and data-centre traffic, often generated from a VPN) and sophisticated invalid traffic: botnets, incentivized human traffic, ad stacking and pixel stuffing.
On Pangle placements, TikTok describes a traffic security system that blocks bots, emulators and suspicious IPs before an ad is served, and filters non-human patterns in real time, such as clicks at fixed intervals or at identical screen coordinates. That is TikTok’s own account of what it has to keep out of this inventory, which is delivered inside publisher apps as interstitial, rewarded, native, banner, app open and icon ads.
TikTok appends a ttclid to the landing URL when someone clicks an ad, and says each Click ID is unique, so every judged visit can be tied to one TikTok click.
Segment verdicts by the __PLACEMENT__ value. TikTok documents two placement types for it, TikTok and TikTok Pangle. If the Pangle value pulls a disproportionate share of Invalid verdicts relative to its share of visits, that tier is the one to act on in Ads Manager, not the campaign as a whole.
Sorting IVT rate by __CAMPAIGN_ID__, and by __AID__ for ad groups, shows which campaigns and ad groups carry the Pangle exposure, so you can change those rather than pausing spend across the board. TikTok notes that an ad group’s placement cannot be changed after it is created, so the fix is the block list or a new ad group without that placement.
__PLACEMENT__ stops at the placement type and does not identify the app. TikTok lists the apps in its publisher list (before a campaign) and delivery report (after), under Tools > TikTok Ad Network brand safety, each with a bundle ID. When the Pangle value carries your invalid share, that report is where the bundle IDs to block come from.
Invalid share broken down by:
__PLACEMENT__Per-click id: TikTok Ads passes a unique click id, and ValidVisit stores it with each visit, so a verdict traces back to the click in TikTok Ads’s own reports.
Compare bot & invalid-traffic breakdown across every ad network →See your own TikTok Ads sub-sources judged this way.
Each TikTok Ads macro maps to a normalized parameter, so every judged visit is pinned to the right campaign, creative and publisher.
https://yoursite.com/landing?utm_source=tiktok-ads&utm_medium=social&vv_campaign_id=__CAMPAIGN_ID__&vv_adset_id=__AID__&vv_creative_id=__CID__&vv_placement_id=__PLACEMENT__| Token | TikTok Ads macro | Maps to | Identifies |
|---|---|---|---|
| Campaign ID | __CAMPAIGN_ID__ | campaign_id | campaign |
| Ad Group ID | __AID__ | adset_id | adset |
| Creative ID | __CID__ | creative_id | creative |
| Placement | __PLACEMENT__ | placement_id | placement |
| Click ID (ttclid) | (auto-tagging) | ttclid | click |
__CAMPAIGN_ID____AID____CID____PLACEMENT__(auto-tagging)Macros checked against TikTok Ads’s own documentation on 2026-10-02. TikTok Ads docs
The verdict works the same way on every network. ValidVisit never changes your TikTok Ads account: you make the exclusion there yourself. How the verdict works →
Both work and they complement each other. TikTok appends ttclid to the landing URL when someone clicks your ad, and ValidVisit ingests it with no extra configuration. Adding TikTok’s URL macros to your destination URL — __PLACEMENT__, __CAMPAIGN_ID__, __AID__ (ad group ID) and __CID__ (creative ID) — attaches placement and campaign context to each judged visit.
Add their bundle IDs to the block list (Ads Manager > Tools > TikTok Ad Network brand safety, still shown as Pangle for some advertisers > Block List), one at a time or as an .xlsx upload with one bundle ID per row, up to 10,000. The list only applies to ad groups where the "Use TikTok Ad Network (or Pangle) block list" toggle is switched on, under Advanced Settings in Placements.
TikTok’s protections run inside its own systems: a third-party anti-fraud certification, measurement partnerships with DoubleVerify and Integral Ad Science, and the traffic security system on its ad network. ValidVisit’s view starts when the visit reaches your landing page and gives each visit a Valid or Invalid verdict with its evidence, attributed to the placement, campaign and ad group. That per-visit record is yours.
No. TikTok documents no advertiser IP exclusion; the levers are placements and the Pangle block list. It does offer targeting by OS and OS version, device, language and connection type, but not by browser.
TikTok now calls it TikTok Ad Network (formerly TikTok Pangle), and says some advertisers still see Pangle in Ads Manager. Its macro documentation still describes the __PLACEMENT__ placement type as TikTok or TikTok Pangle, which is why this page keeps the older name.
Weighing a blocker for social traffic? How ValidVisit compares to ClickGUARD, Lunio and CHEQ.
See which publishers and placements send real buyers vs bots — every visit judged Valid or Invalid, worst first.
Join the waitlist with just your email · 7-day trial at launch
One script · no cookies · no device IDs · raw IP never stored