Making good things better is… good. Take campaign-level audiences — they’re good, but wouldn’t meta-campaign-level audiences be even better? Sure.
To reiterate, campaign level audiences are great. You don’t have quite as fine control as with ad group-level audiences (and it’s annoying you can’t have ad group and campaign audiences together!), but they’re much easier to keep track of, because there are a lot fewer of them.
(Plus, there’s a pesky limit of 5 million ad group targeting criteria in an account — which sounds like a lot but is easy to eat up when you’ve got lots of keywords, lots of negatives, a granular structure, duplication for different locations, and then want a handful of audiences in each group.)
But there’s still some slightly tedious work involved in making sure you’ve attached audiences to all campaigns. And not to be rude to humans, but this does leave room for some good old human error (e.g., forgetting to add to new campaigns, for whatever reason).
Obviously, the tech team at Brainlabs (my employer) couldn’t resist the opportunity for some script-based innovation. It’s a bit like the one I shared a few months ago to copy extensions and lists across your account, which was a classic. You set up the audiences (and bid adjustments) you want in one campaign, then the script uses that as a template and copies those audiences to all the other campaigns.
The script won’t remove existing audiences, but if a campaign was already targeting an audience, then the bid modifier may be overwritten. So, when audiences have been copied into a campaign, that campaign is labeled so the script ignores it on future runs — then you can exclude the audiences or change the modifiers however you like. You can rerun the script whenever you feel like it, to make sure any new campaigns have the audiences set up, and it won’t mess up the tweaks you’ve made in the old campaigns.
Sadly, you have to delete any ad group-level audiences before running the script. If there’s a campaign that has ad group audiences, even if they’re paused, then the script can copy campaign-level negative audiences, but not positive ones.
If you want to give it a go, copy the code below into a new AdWords Script in your account. Then change some of the options:
["Brand", "Generic"],then only campaigns with names containing “brand” or “generic” are included.
["Display", "Competitor"], then any campaigns with names containing “display” or “competitor” are ignored.
, to cover all campaigns.
Remember, you need to delete all ad group-level audiences before running the script! Otherwise you’ll get errors where the audiences couldn’t be added. If you have campaigns where you want to keep the ad group audiences, you may want to get the script to skip over them entirely: you can put their names in campaignNameDoesNotContain, or you could label them with the labelName used to show which campaigns already have audiences.
The post Here’s a script that copies audiences to all your campaigns appeared first on Search Engine Land.