Keeping Clients Safe in the Age of Breitbart

This post is part of 3Q’s Brand Protection series, in which we tackle a range of issues to help companies safeguard their most important asset: their brand’s reputation. For a full list of posts, click here.

If I had to pick one hot topic in marketing from 2017, it would have to be brand safety. Specifically, the controversies behind AT&T and Johnson & Johnson pulling ads from YouTube and the rise of Breitbart on the Google Display Network have changed the landscape. More than ever, clients demand assurances from SEM practitioners and agencies that their ads do not serve on distasteful websites.

Even as advertisers flee controversial sites by the thousands, how confident are you that your clients aren’t showing up on Daily Stormer or other related websites as you read this? In this article, I’ll share how we solved this problem at 3Q Digital using Google AdWords scripts. I’ll also share the source code so that you can go the extra mile in protecting your clients on GDN.

Note: this script was created before the introduction of Account Level Exclusions. And while ALE is a great feature, you may still find value in the solution outlined here.

Outlining the Problem

The problem that we are attempting to solve is as follows:

Even the best-intentioned / thorough SEM manager can make the mistake of missing one GDN campaign / ad group in blocking questionable placements.

And one mistake by omission — e.g. forgetting to exclude placements like Breitbart — can jeopardize client relationships.

Because no individual should be allowed to introduce that level of uncertainty into the client relationship, we decided to craft a solution that would take the decision out of the hands of the SEM manager and place the responsiblity within the confines of automation.

(Instead of hoping that hundreds of people simulateously get a routine task correct, we’ll offload that task to computers.)

Essentially, we need a Google AdWords script that can keep track of an unlimited amount of accounts and ensure that our ads are far away from Breitbart and other questionable sites.

Anticipating the Edge Cases

Before getting to the code, it’s important to sketch out the possible edge cases that we might encounter.

How do we account for users who don’t want to exclude Breitbart? Some clients might actually want their ads to show on the site.

How do we account for incremental changes within an account? It is not enough to post changes on a daily basis – new GDN campaigns might be created at the start of the day and run for up to 24 hours.

How do we account for new accounts that join the agency MCC? We need a solution that accounts for the newest client, as well as the oldest.

Finally, how do we create a system that can scale? Even though our current use case concerns one domain (i.e. breitbart.com), there is a strong possibility that other domains will eventually become cause for concern/action.

Breaking Ground on a Solution

Now that we have our problem defined and at least the most obvious edge cases considered, lets get to the implementation. Here’s the approach that we used to manage GDN exclusions at scale:

By leveraging Google Sheets and leveraging AdWords MCC labels, we created a robust solution for ensuring that odious placements are restricted from serving from client GDN campaigns.

The Breitbart Script in a Nutshell

Create a Google Sheet that serves as a repository for unwanted GDN placements. Leveraging a Sheet will allow the scope to scale over time while also allowing non-developers to have a say in what gets restricted.

Leverage AdWords My Client Center (MCC) labels to serve as a way of delineating which accounts fall under the GDN exclusion script and which don’t.

All accounts are opted in by default to have a ‘Exclude Breitbart‘ label

Accounts that do not want to exclude Breitbart simply need to tag themselves with a ‘Breitbart Opt-Out‘ label

Create the MCC-level labels just outlined.

Create a Google AdWords script that manages the auto-labeling of all accounts within the MCC.

This logic is so specific and time-sensitive that we shouldn’t risk this task timing out

Cleaning up

Finally, we end the script with a possibly counter-intuitive task — we need to remove the GDN exclusion list from those accounts that have opted-out.

We do this by iterating over all MCC accounts that do not have the original label we selected. Since we already have a script running hourly that flags unidentified accounts and opts them in, we can safely assume that accounts that do not have our label have opted out.

Additionally, because it’s unclear exactly when an account opted out from our label, we can’t simply filter on that label. We need to effectively reverse the work of the last time our exclusion script completed.

function afterProcessAllClientAccounts() {
// this is where we do the reverse process of removing shared lists from accounts that do NOT have the account label

Next Steps

Believe it or not, that’s all there is to it! If you follow the steps outlined above, you’ll have a state-of-the-art GDN exclusions placement system.

Now you might be thinking, what is the point of this now that Account Shared Exclusions are a thing? Sadly, we still need to rely on humans to do the opting in, which rarely happens 100% of the time.

Run this script to ensure that both your big and small clients enjoy the same level of protection needed in this challenging time.

1 Comment

JaneNovember 29th, 2017

Hahaha.. This is great. I got nailed on this today through a twitter name & shame of a client via a new campaign I had forgotten to run my exclusion list on. Thanks for the perspective and the script. I’ll give it a try.

Leave a Comment

Name
(required)

Mail (will not be published)
(required)

Derek joined the online marketing industry in 2013 and 3Q Digital in February of 2017. He has directly managed paid search accounts across many industries, including education, retail, and professional services. Prior to his entry into paid search, he worked as a certified public account for a retail investment trust company in Los Angeles. A 2006 graduate of Villanova University, he is a devout Wildcat and also enjoys MMA.