Money-Saving Placement Exclusion Script for Google Ads

With an uncertain economic outlook, now is a good time for advertisers to ensure their tech stack includes the right tools and automations to save money in the long run.

Google Ads scripts should be part of everyone’s toolkit, especially considering that many scripts are available for free.

In addition to the many free scripts on top lists like this one and this one, here’s a brand new script you can try.

I wrote this with my team to give advertisers a new way to control ad spend on the display network.

Ways To Save Money On Google Ads

Advertisers are always looking for an edge over their competition, and a good way to unlevel the playing field is to spend less for the same results. That means finding and eliminating wasted ad spend.

Common ways to eliminate wasted spending are to add negative keywords, restrict match types, and add negative placements.

Here is how you go about each of these techniques manually:

  • Add negative keywords – Find ideas by scouring your search terms reports for ideas.
  • Restrict match types – If you’re not using automated bidding, play it safe with your keywords and rely more on exact and phrase match than broad match.
  • Add negative placements – Look at automatic placement reports to find non-converting placements that eat away at your budget.

Finding Placement Exclusions For Google Ads

The web is growing fast, which means there are more places every day where your ads may show when you participate in the Google Display Network (GDN).

There are over 36,000 apps added to the Apple App Store every month, and there are over 250,000 new websites launched every day. While they don’t all join the GDN, with this level of growth, it is challenging to keep up with placement exclusions.

Unless you want to play a constant game of whack-a-mole and manually review new placements as they come into existence, you need to identify trends that correlate with low performance and use technology to help eliminate traffic from those types of placements.

Google provides several ways to proactively prevent GDN ads from appearing in places you don’t like.

Exclusions can be based on:

  • Sensitive topics – such as pages about tragedy, conflict, or sensational news.
  • Digital content labels – similar to movie ratings, but for sites.
  • Video content types – such as live streams or videos embedded outside YouTube.

The script shared in this post provides another way to exclude placements.

While it can’t proactively prevent all impressions, it can add a negative placement as soon as a new placement is detected in the automated placement report.

Placement Reports

The script analyzes details of all placements in the placement detail report.

This is the query you can use with GAQL, the Google Ads Query Language, to find placements:

SELECT detail_placement_view.display_name, detail_placement_view.placement, detail_placement_view.placement_type, detail_placement_view.resource_name, detail_placement_view.target_url, detail_placement_view.group_placement_target_url FROM detail_placement_view

The data might look like this when you export it to a Google Sheet:

Screenshot from Google Sheet, October 2022Placement details data in a Google Sheet

Notice the placement on line 12 in the screenshot uses the Arabic script for the name of the video.

That is what this script will look for and add as a negative placement.

If your language uses a non-Latin script, you would simply change the settings and allow your ad to show for a placement like on line 12 and exclude all the other ones that use the Latin character set.

Language Targeting On GDN

You might wonder why advertisers wouldn’t simply use language targeting to prevent their ads from showing next to content that uses a different script in its language.

The problem is that when you target a language, it’s not a very strict criterion. A user will match the targeted language as long as they have interacted with an app or website in that language recently.

It doesn’t mean they must be viewing a site or video in that language when your ad is shown.

Google says:

“On the Google Display Network, Google Ads may detect and look at the language of pages or apps that someone is viewing or has recently viewed, to determine which ads to show.”

So if a user just reads a few English webpages with Latin script but spends most of their time reading sites in Thai script, they may still see ads targeting English.

This script fixes this by making targeting more strict.

It gives advertisers extra control, and that’s usually a welcome thing in the age of ever-more automation from the ad engines, something I wrote a whole book about this year.

Unicode Character Targeting With A Google Ads Script

In a similar vein as language targeting, you can use ad scripts to detect when an ad is shown on a placement with a title using a different Unicode character set and exclude that placement from ever showing your ad again.

Here’s what the script does.

It finds instances when your ad is shown with a video, app, or website whose content is in a different character set than the one you want.

The script then excludes placements whose names are not in the desired character set.

E.g., a placement with the title ‘انشاء حساب جوجل ادوورد مجانا للمبتدئين وطريقة ربطة مع القناة Google Adwords | كنز الربح من اليوتيوب’ is using the Arabic script rather than the Latin character set, and can be made a negative placement.

Use this technique with caution, though.

There’s nothing necessarily wrong with showing your ad to users whose language is in a different script. For example, they may be seeing your ad because they got onto your remarketing list and are, in fact, a very good lead.

So how does this ad script find placements using non-Latin characters?

It’s based on identifying Unicode character sets, which are a way for computers to render the different characters associated with different alphabets.

I’m used to the a-z alphabet used in English as well as in my mother tongue, Dutch, and this is called the Latin alphabet. But many languages use entirely different characters, like Hebrew, Thai, Japanese (Hiragana), etc.

Unicode is the way computers encode these different characters.

In Google Ads scripts, which are closely related to JavaScript, we can use regex functionality to detect what Unicode character set a character is.

The Script

Download the script.

Copy and paste all the text from the code on the link into a new script in Google Ads, where you first delete all the sample code the new script loaded with.

Here’s a video that explains how to use the script.

Settings For The Script

After copy-and-pasting the script in an individual Google Ads account, tell it which Unicode character sets you want to allow your ads to appear for, e.g., Latin.

Then give a name for the shared placement exclusion list the script should use for new negative placements it discovers.

After previewing the script, you will see that a new shared exclusion list is created.

If there are ad placements whose titles use a non-allowed Unicode character set, those will be added as negative placements to the newly created shared exclusion list.


Two things many advertisers like are saving money and getting back control over automated systems.

Scripts like the one in this post help you do both.

If you have an idea for a script that could help a lot of advertisers, please reach out to me.

This script came about because someone asked for my help with their idea.

More resources:

Featured Image: Dean Drobot/Shutterstock

window.addEventListener( ‘load’, function() {
setTimeout(function(){ striggerEvent( ‘load2’ ); }, 2000);

window.addEventListener( ‘load2’, function() {

if( sopp != ‘yes’ && addtl_consent != ‘1~’ && !ss_u ){


if( typeof sopp !== “undefined” && sopp === ‘yes’ ){
fbq(‘dataProcessingOptions’, [‘LDU’], 1, 1000);
fbq(‘dataProcessingOptions’, []);

fbq(‘init’, ‘1321385257908563’);

fbq(‘track’, ‘PageView’);

fbq(‘trackSingle’, ‘1321385257908563’, ‘ViewContent’, {
content_name: ‘money-saving-placement-exclusion-script-for-google-ads’,
content_category: ‘paid-media-strategy pay-per-click seo’

[sibwp_form id=1]