One of my favorite use cases for scripts is managing negative keywords.
I use scripts to:
– suggest negative keywords candidates
– allow for easy management of negatives via Google Sheets
– do n-gram analyses to discover potential negative candidates
– keep exact match keywords exact (super handy for brand campaigns to prevent non-brand from matching your brand keyword)
– automatically add positive keywords to a negative keywordlist that is attached to my DSA campaigns to prevent cannibalization
– auto-negate converting search terms in HIGH prio Shopping campaigns, so that the queries get funneled into higher bid MED prio campaigns
– automatically add positive keywords to a negative keywordlist that is attached to my DSA campaigns to prevent cannibalization
– …and a ton of other things.
Occasionally, me or my team members make the unfortunate mistake of accidentally adding a negative keyword that blocks one or more positive keywords.
Not good.
So, I use another script to alert me when that happens: the Negative Keyword Conflicts script.
What it does:
Email alert if an account has positive keywords which are blocked by negative keywords. The script saves all such conflicts to a spreadsheet and sends out the email alert.
Why you care:
Negative keywords are intended to prevent ads from showing on irrelevant search queries, but they may inadvertently block normal keywords from matching relevant search queries, making your campaigns less effective.
The original script is developed by Google, but it has a major drawback;
it also looks at keywords in campaigns that have ended (ie: ended experiment campaigns).
This results in a lot of false alerts, making you want to ignore them altogether.
So I decided to fix this issue by changing the script to only look at campaigns that are still serving.
This fix was easy. The only thing I need to add was the condition to only look at campaigns with serving_status = ‘SERVING’.
In the code that means one extra condition in the GAQL query (extra condition in green):
`WHERE campaign.status = "ENABLED" AND campaign.serving_status = "SERVING" AND ad_group.status = "ENABLED" `+
Here’s the complete code of the script:
Continue reading “Negative Keyword Conflicts Alert Script – UPDATE”