Judge every Google Ads visit Valid or Invalid, then exclude the keywords, placements and IPs draining your budget, inside your own account.
placement in Google AdsThe buyer pastes the list of bad placements (URLs, app IDs, YouTube channel/video IDs) as placement exclusions — per campaign or ad group, account-wide, or into a placement exclusion list (65,000 account-level exclusions per account; the account-level page allows 20,000 at a time). Account-level exclusions also cover search partner sites and Performance Max, and typically take effect within 12 hours.
Google defines invalid traffic as traffic that doesn’t represent genuine interest in your business, and its own examples include bots and automated software, accidental clicks, fraudulent ad placements, and competitors who click manually to increase your spend. Google filters what it detects, but a Search campaign also serves beyond Google’s own results: search partners are included by default, and Performance Max reaches all of Google’s inventory from a single campaign. ValidVisit reads Google’s gclid through auto-tagging passthrough, alongside ValueTrack parameters such as {keyword}, {campaignid} and {network}, so each visit’s verdict ties back to the keyword, campaign or network segment where the problem sits.
Google removes the invalid traffic it detects from your campaign metrics and billing, and says it catches most of it shortly after the ad interaction. Those filters run after an ad serves, so, in Google’s own words, they cannot block traffic from your site: the visit can still reach your landing page. ValidVisit judges every visit that arrives there Valid or Invalid, with the evidence shown, and that includes visits Google has already filtered and not charged for.
Where the invalid share sits depends on where the campaign served. {network} returns g for Google search, s for search partners, d for the Display Network and x for all Performance Max traffic, so one parameter splits the verdicts by network. Google itself notes that clicks from search partner sites that list products for sale may not always reflect highly targeted traffic.
{keyword} returns the keyword from your account that matched the search, and comes back blank when the ad matched without keywords, as in Performance Max, Dynamic Search Ads and AI Max. None of this shows in aggregate campaign metrics; it surfaces only when visits are judged one by one and cut by keyword, campaign or network segment.
Pass {keyword} as a ValidVisit parameter and review verdicts per keyword rather than per campaign. A campaign average can hide one or two keywords that carry a disproportionate share of invalid visits. Google’s checklist for an invalid traffic investigation asks for the suspicious keywords, so the per-keyword view is also the one to bring to that request.
Pass {network} and compare the invalid share of “s” (search partners) with “g” (Google search). If Search Partners consistently produces a higher share of invalid visits, the per-visit breakdown shows how wide the gap is and how consistently it holds, which is the evidence for opting that campaign out of Search Partners: in the campaign’s settings, open Networks and uncheck “Include Google search partners”.
Performance Max serves across all of Google’s inventory from one campaign. {network} returns “x” for all of its traffic and {keyword} comes back blank, so judge those visits per campaign with {campaignid}. Google manages placement exclusions for Performance Max at the account level, and campaign-level IP exclusions aren’t available for it; account-level IP exclusions do cover it.
Invalid share broken down by:
{network}Where the click came from: g Google search, s search partners, d Display Network, ytv YouTube, x Performance Max.Invalid share broken down by:
{placement}The content site where the ad was clicked, or the matching placement targeting criteria.Per-click id: Google Ads passes a unique click id, and ValidVisit stores it with each visit, so a verdict traces back to the click in Google Ads’s own reports.
Compare bot & invalid-traffic breakdown across every ad network →See your own Google Ads sub-sources judged this way.
Each Google 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=google-ads&utm_medium=search&vv_campaign_id={campaignid}&vv_adset_id={adgroupid}&vv_creative_id={creative}&vv_keyword={keyword}&vv_publisher_id={network}&vv_placement_id={placement}| Token | Google Ads macro | Maps to | Identifies |
|---|---|---|---|
| Campaign ID | {campaignid} | campaign_id | campaign |
| Ad Group ID | {adgroupid} | adset_id | adset |
| Creative ID | {creative} | creative_id | creative |
| Keyword | {keyword} | keyword | keyword |
| Network | {network} | publisher_id | publisher |
| Placement | {placement} | placement_id | placement |
| Click ID (gclid) | (auto-tagging) | gclid | click |
{campaignid}{adgroupid}{creative}{keyword}{network}{placement}(auto-tagging)Macros checked against Google Ads’s own documentation on 2026-10-02. Google Ads docs
The verdict works the same way on every network. ValidVisit never changes your Google Ads account: you make the exclusion there yourself. How the verdict works →
No. The gclid Google appends to the URL stays intact, and your conversion import reads it exactly as it would without ValidVisit. ValidVisit never writes to your Google Ads account, so Smart Bidding keeps receiving your conversion events unaltered. What ValidVisit adds is a judged visit log showing which keywords, campaigns and network segments send invalid visits.
Google’s ValueTrack list describes {placement} as the content site where the ad was clicked, and for search partners {network} only tells you the click came from that network (“s”). ValidVisit judges each of those visits and reports the invalid share of the search partner segment as a whole. For the site list, Google’s Search Partner Network placement report (Report editor, under Content suitability) shows the partner sites your Search, Shopping and App campaigns served on, with impressions per site, and placements you exclude at the account level also apply to search partner sites.
Google filters the invalid clicks it detects out of your campaign metrics and billing; the Invalid clicks column shows how many. If it detects more after you were billed, it automatically issues a credit, labelled “Invalid activity”, when appropriate and possible. Google does not say which clicks it filtered, so ValidVisit’s verdicts are a separate per-visit record made on your own page, and some visits judged Invalid there will be ones Google already filtered and never charged. Each verdict comes with the keyword, campaign or network segment it concentrates on, so you can apply an exclusion or bid adjustment in Google Ads yourself. If you suspect invalid traffic that wasn’t filtered, Google takes investigation requests through its Click Quality Form for activity within the last 60 days; that request is yours to make, and ValidVisit does not send it.
Up to 65,000 account-level placement exclusions per account. Google’s account-level page allows 20,000 at a time, while its limits page says the interface takes 5,000 at one time and the API 20,000. Exclusions can be set per campaign or ad group, account-wide under Tools > Content suitability, or in a placement exclusion list under Tools > Shared library > Exclusion lists; lists created in a manager account can be applied across accounts. New account-level exclusions typically take effect within 12 hours.
Yes. Up to 500 IP addresses per campaign, under the campaign’s Settings > Additional settings > IP exclusions; an asterisk in place of the last three digits excludes a block of addresses. Account-level IP exclusions, under Admin > Account settings, cover all campaigns including Performance Max. Campaign-level IP exclusions aren’t available for video, hotel, App, Performance Max and Smart Display campaigns. Demand Gen, Display and Video campaigns can also target by operating system, device model, carrier and Wi-Fi.
Weighing a blocker for search traffic? How ValidVisit compares to ClickCease, ClickGUARD, Fraud Blocker and Lunio.
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