DV360
With the DV360 integration, you can connect your Display & Video 360 campaigns to ClickPatrol to classify programmatic traffic as ClickPatrol_Legitimate or ClickPatrol_Suspicious. You then use that classification to exclude suspicious visitors and bad inventory from your line items, so your programmatic budget goes to real people instead of bots, scrapers and click farms.
Important: DV360 protection works differently from Google Ads. In Google Ads, ClickPatrol connects to your account and blocks bad sources automatically. DV360 does not offer IP-based targeting at all, so there is nothing for ClickPatrol to write IP exclusions into. Instead, ClickPatrol classifies your DV360 traffic on your website, and you act on that classification with the two exclusion controls DV360 does offer: audience lists and Apps & URLs targeting.
How it works#
When a visitor arrives from a DV360 ad, the URL parameters on your creative's landing page URL tell ClickPatrol the traffic came from DV360. The ClickPatrol Tag classifies the visit and pushes a ClickPatrol_Legitimate or ClickPatrol_Suspicious event into Google Tag Manager. From there you have three ways to protect your campaigns:
- Exclude suspicious visitors: build an audience from the suspicious event and exclude it on your line items.
- Exclude bad inventory: use ClickPatrol's placement data to find the sites and apps that produce fake clicks, and exclude them in Apps & URLs targeting.
- Keep your data clean: gate your pixels, conversions and remarketing tags on legitimate traffic only, so DV360's optimization never learns from invalid visits.
Note: ClickPatrol is a Google-certified click tracker and is listed in Google's list of certified click trackers for Display & Video 360 (certified domains clckptrl.com and clck-001.clickpatrol.com), so routing DV360 clicks through ClickPatrol is compliant with Google's click tracker policy.
Before you start#
- The ClickPatrol Tag is installed and firing on All Pages in Google Tag Manager, and the ClickPatrol Event Trigger is set up. If you have not done this yet, start with the Google Tag Manager article.
- You can edit creatives and line item targeting in your DV360 advertiser.
- For audience exclusions, you have either a GA4 property you can link to DV360, or a Floodlight configuration (Campaign Manager 360).
Step 1: Install the ClickPatrol tag in Google Tag Manager#
The ClickPatrol Tag does the classification, so nothing works without it. Follow the Google Tag Manager article to import the template, enter your UID, fire the tag on All Pages and create the ClickPatrol_.* event trigger. Publish the container before you continue.
Step 2: Build your DV360 URL parameters#
DV360 uses its own macro syntax, written as ${MACRO_NAME}. This means the Google Ads tracking template does not work in DV360, and neither do the UTM templates from the Bing, LinkedIn, TikTok, Meta or Pinterest articles: those use each platform's own macros and will be passed through as literal text in DV360.
Use this parameter string for your DV360 creatives:
&cr=${CREATIVE_ID}&utm_id=${INSERTION_ORDER_ID}&utm_campaign=your-campaign-name&adi=${CAMPAIGN_ID}&utm_medium=programmatic&utm_source=dv360&source=dv&utm_content=${CREATIVE_ID}
Note: this string is appended to your existing URL parameters, which is why it starts with &. If your landing page URL has no parameters yet, remove the leading &.
Keep source=dv exactly as it is. This parameter is what tells the ClickPatrol Tag that a visit is ad traffic and that it came from DV360. Without it, the tag will not classify the visit and no event fires. Use the test in Step 4 to confirm the classification works before you roll the parameters out to all your creatives.
What each macro records:
${CREATIVE_ID}— the ID of the creative that served.${CAMPAIGN_ID}— despite its name, this macro returns the line item ID, which is why it is mapped toadi(the ad group equivalent).${INSERTION_ORDER_ID}— the ID of the insertion order that served the impression.utm_campaign— DV360 has no macro for the campaign name or campaign ID, so fill this in as a static value per campaign.
Optional — see which site or app the click came from: add &placement=${SOURCE_URL_ENC} for web inventory or &placement=${BUNDLE_ID} for app inventory. This passes the publisher page or the app bundle ID into your ClickPatrol reports, which makes it much easier to spot the inventory that produces fake clicks.
Two macro limitations to know about:
- DV360 macros do not expand in YouTube ads or data-driven creatives. On YouTube & partners and Demand Gen line items you can still add the static parameters (
utm_source,utm_medium,utm_campaign,source) to the Landing page URL, but any${...}macro will not be replaced with a real value. - The click tracking macros
${CLICK_URL},${CLICK_URL_ENC}and${CLICK_URL_ENC_ENC}only apply to third-party ad tags. They do not work with creatives hosted by DV360.
Step 3: Add the parameters to your DV360 creatives#
DV360 has no account-level tracking template like Google Ads, so the parameters live on the creative itself.
- Sign in to Display & Video 360 and select the advertiser you want to protect.
- Go to Creatives and open the creative you want to edit.
- Expand the Serving properties section and find the Landing page URL field.
- Append the parameter string from Step 2 to the end of the existing URL.
- Click Save.
- Repeat for every creative you want ClickPatrol to classify.
Third-party creatives: if your creatives are third-party ad tags trafficked in DV360, the destination URL is controlled by that ad server, not by DV360. Add the ClickPatrol parameters to the landing page URL in the third-party ad server, and check with that ad server which macros it supports for passing DV360 values.
Campaign Manager 360 advertisers: if your DV360 advertiser serves through CM360, you can add the parameters once in the Landing page URL suffix field at advertiser or campaign level instead of editing every creative. Keep the suffix locked on your ads so they inherit it. Note that CM360 does not add the suffix to landing page URLs that contain more than one redirect; in that case add it manually.
Step 4: Verify the setup#
ClickPatrol events only fire for ad traffic, so test the tag manually first.
- In Google Tag Manager, click Preview (top right).
- Enter your website URL with the DV360 source value appended,
https://www.yourwebsite.com/?source=dv, and click Connect. - In the Tag Assistant window, confirm that a ClickPatrol_Legitimate or ClickPatrol_Suspicious event appears in the event list, with ClickPatrol Tag under Tags Fired. If no ClickPatrol event appears, check that the tag fires on All Pages, that your container is published, and that the UID matches the one in your Integration settings.
- Preview one of your DV360 ads and click through to your site. Check the URL in your browser's address bar: every
${...}macro should be replaced with a real ID, and no macro text should be left over. - Check your ClickPatrol dashboard for incoming DV360 traffic under Reports.
If no traffic appears after 24 hours: confirm the parameters are on the creatives that are actually serving, that the ClickPatrol Tag is firing in GTM, and that your dashboard date range is set to Today.
Note: ClickPatrol can only classify DV360 traffic that carries these parameters. Creatives without them will not be tracked.
Step 5: Exclude suspicious visitors from your line items#
Classifying traffic does not protect your campaigns yet. To act on it, turn the suspicious event into an audience and exclude that audience in DV360.
Option A: via GA4 (recommended)#
- Send your ClickPatrol events to GA4 by following GA4 - Events.
- Link the GA4 property to your DV360 advertiser: in GA4, go to Admin > Product links > Display & Video 360 links, click Link, select the advertiser and keep Enable Personalized Advertising switched on. You can also start from DV360 under Advertiser settings > Linked accounts > Google Analytics. You need Editor access on the GA4 property and Admin access on the DV360 advertiser.
- Make sure Google signals or user-provided data collection is active on the GA4 property. Without one of them, audiences are not exported.
- Build the audience in GA4, for example CP Suspicious 30d based on the ClickPatrol_Suspicious event. The audience steps are described in Google Ads - Audiences (via GA4).
- Eligible audiences are exported automatically and appear under All Audiences in the linked DV360 advertiser. Audiences that contain demographics or interests data are not exported.
- Open the line item you want to protect, go to the Targeting section, edit Audience lists, and add CP Suspicious 30d under Exclude.
- Save, and repeat for every line item you want protected.
Option B: via a Floodlight tag-based audience#
Use this route if your advertiser tracks conversions with Floodlight instead of GA4.
- In Google Tag Manager, fire a Floodlight activity tag on the ClickPatrol_Suspicious event, and pass the ClickPatrol classification into a custom Floodlight variable. A tag-based audience needs at least one custom Floodlight variable to build on.
- In DV360, open your advertiser and go to Audiences. Click New audience and select Tag-based audience.
- Name the audience (for example CP Suspicious), select the Floodlight activity from Step 1, and add the custom variable condition that matches suspicious traffic.
- Save, then exclude the audience on your line items under Targeting > Audience lists > Exclude.
Note: an audience list is not targetable until it has at least 100 active members, and membership data is not available until 24 hours after you create the list. Expect a day or two before the exclusion has an effect.
Step 6: Exclude the inventory that produces fake clicks#
In programmatic buying, most waste comes from bad inventory rather than individual visitors, so this step usually has the biggest impact.
- Open the Placements page in ClickPatrol and sort by % Fake Clicks to surface the domains and apps that deliver the least real traffic.
- Note the domains and app IDs you want to stop serving on.
- In DV360, open the line item (or insertion order) you want to protect. In the Targeting section, click the pencil icon next to Apps & URLs.
- Add the domains and app IDs and set them to Exclude, then save.
Important: the Is_Excluded toggle on ClickPatrol's Placements page applies exclusions to your connected Google Ads account. DV360 exclusions are not written automatically, so you always apply them yourself in DV360.
Working at scale: a line item can target a combined total of 10,000 individual apps and URLs. For longer lists, group the bad inventory into a channel in your advertiser and exclude the channel instead. Excluding that channel at advertiser level applies it to all current and future campaigns, insertion orders and line items, so new line items are protected by default.
What ClickPatrol can and cannot do for DV360#
What it does:
- Classifies every DV360 ad click that carries your parameters as legitimate or suspicious, and reports on it in your dashboard.
- Feeds exclusion audiences and clean remarketing lists.
- Lets you gate pixels and conversion tags on legitimate traffic only, so DV360's optimization learns from real users. See Clean traffic pixel trigger.
- Surfaces the sites and apps that generate fake clicks so you can exclude them.
- Lets you check individual IP addresses from your own systems through the ClickPatrol API.
What it does not do:
- Automatically block IP addresses in DV360. Targeting based on specific IP addresses is not available in Display & Video 360, so ClickPatrol's automatic IP blocking applies to Google Ads only.
- Classify traffic from creatives without the ClickPatrol parameters, or from YouTube and data-driven creatives where DV360 macros do not expand.
- Filter invalid impressions before the bid. DV360 handles pre-bid and post-serve invalid traffic filtering itself; ClickPatrol works on clicks and on what happens after the click.
Next steps#
- GA4 - Events: forward ClickPatrol events to GA4.
- Building audiences with ClickPatrol: best practices: get more out of your legitimate and suspicious audiences.
- How to properly test ClickPatrol: design a fair test for your programmatic campaigns.
Was this article helpful?
Let us know so we can improve our documentation
Need Help?
If something isn't working or you have questions, our support team is here to help you.
Contact Support