1. SEJ
  2.  ⋅ 
  3. PPC

How to Block Poor Performing Ad Placements in Apps Using a Script

Here's a Google Ads script you can use to automatically limit ads from showing on poorly performing mobile apps.

How to Block Poor Performing Ad Placements in Apps Using a Script

Google recently announced they will no longer allow advertisers to bulk exclude their ads from appearing on mobile apps.

Previously it had been possible to exclude this type of placement on the display network by adding “” as a negative target.

mobile device

When news like this comes to us via an update to the Google Ads help center, it’s a good time to evaluate if there is an alternative solution.

So I’m offering a script that can be used to automatically limit ads from showing on poorly performing mobile apps.

Hopefully advertisers will use this script to do something a bit more sophisticated than simply exclude any placement that is a mobile app and only exclude ones that are not producing the desired results.

The Case Against Bulk Excluding Mobile App Placements

I understand when advertisers have an aversion against showing ads on placements where there are no additional controls.

In that situation, even an expert advertiser who is willing to spend the effort to optimize things is left with their hands tied and might decide that it’s better to forsake an entire source of potential leads in order to safeguard their performance.

But when there are ways to control the bids and the budgets, there is no such thing as a bad place to show an ad. It may be that some places are too expensive so if the lowest bid can’t produce results, then it may be time to exclude that expensive target or placement.

In other words: there is no such thing as a bad placement, there are just bad bids.

You Don’t Exclude All Queries, so Why Exclude All Mobile Apps

Smart PPC pros manage queries for search ads by adding low performing ones as targeted keywords so they can set lower bids (and likewise high performing ones may be added with higher bids). Automatic placements for GDN can be optimized in the same manner.

In both scenarios, the tactic is to experiment with different traffic sources and manage it tightly to reduce the risk of a ballooning cost without additional value.

With ad placements on mobile apps, a similar technique can be followed. If a mobile app produces conversions at an acceptable CPA, it should remain part of the account.

Only mobile apps that are driving no conversions after a significant amount of spend, or ones with an unacceptably high CPA should be added as exclusions.

The Script to Manage Mobile App Placements on GDN

So the script that we’ve created looks for mobile apps where ads have already accrued some cost. It does this by looking for the string ‘mobileapp’ in the placement performance report that we pull into the script through the Ads API.

If the cost or CPA of that placement exceeds a user-selected limit, it gets added to the ad group as a negative placement.

The script adds placements it’s excluded to a Google spreadsheet and notifies the advertiser via email so that there is transparency into what is happening.

Advertisers can schedule this script to run automatically on a weekly schedule (or more frequently for high spending accounts).

Script Settings You Can Manage

As with most pre-written scripts you’ve already tried, your modifications are limited to the first few lines where the user settings are kept. Here are the things you can manage.


This sets the number of days the script looks back from today. If you want to use a longer lookback window, simply increase this number. I recommend not setting it lower than your average time to conversion

MAX_CPA = 25

The highest cost per action you are willing to pay. If a placement’s CPA exceeds this value, it will be added as a negative placement to the ad group.


In case a placement has cost but no conversions (and hence no defined value for CPA), this is the highest allowed cost for the placement in the ad group before it will be added as an exclusion.

EMAIL = ‘,’

The email addresses that should be notified when the script is run and makes changes.

How the Script Creates Excluded App Placements

The format for adding negative app placements is a bit tricky.

It’s not as simple as adding the URL of a website you want to exclude from GDN ads.

As Google’s help materials explain, to exclude iPhone apps enter the iTunes URL of the app to exclude.

For example, to exclude the “Colorize” app, you’d enter:

To exclude Android apps enter the last part of the URL after the “Id=” field. For instance, to exclude the “Colors by Number – inStar” app, you’d enter a negative placement for:

Script Modifications You Can Try

Right now the script pulls data including the ad group of a placement.

This means that it’s not aggregating costs and CPAs when your ads appear on the same mobile app through multiple ad groups.

You could remove the AdGroupName attribute from the query to aggregate metrics at the campaign level.

Likewise, remove the CampaignName from the query to get aggregate placement stats at the account level.


Scripts are a great way for marketers to gain some new controls over their Google Ads accounts.

When Google makes changes that throw most advertisers for a loop, those with the ability to work with scripts can often find reasonable workarounds that are highly automated and can be customized to your heart’s content.

I hope this script helps you gain back some of the control you want in Google Ads.

More Paid Search Resources:

Image Credit

In-post Photo: Adobe Stock

Category PPC
VIP CONTRIBUTOR Frederick Vallaeys Optmyzr

Frederick Vallaeys is a Co-Founder of which offers a Historical Quality Score Tracker, One-Click AdWords Optimizations, a custom report ...

How to Block Poor Performing Ad Placements in Apps Using a Script

Subscribe To Our Newsletter.

Conquer your day with daily search marketing news.