TL;DR: AdWords lacks label inheritance, add it to your account with this custom script.
In 2012, AdWords introduced account labels, a powerful feature allowing you to group together campaigns, ad groups and keywords based on whatever personal criteria you can come up with. To me it seemed like a great way to distinguish between weak and strong performing keywords, and apply different bidding rules to the different types of performers, allowing for flexible and lean campaign optimization.
Unfortunately, the feature has a bunch of nasty limitations.
Labels can’t be inherited down
In many situations, you might want to change the label for a bunch of different ad groups and keywords, for example to modify their bidding behavior. In the web interface, you would be forced to update labels for all those entities one-by-one, because labels aren’t and can’t be inherited down throughout the campaign. This makes updating keyword labels a bitch, especially when they’re spread over multiple campaigns and ad groups. Being forced to do this using the slow web interface isn’t any help either.
A work-around would be to batch update keywords per ad group label, but unfortunately, it is only possible to filter by keyword label, not the label of the parent ad group.
The API doesn’t support labels
The label feature is available to anyone using the web interface, but can’t be programmatically accessed using the AdWords API. This is very inconvenient:
- New ad groups and keywords now have to be labeled manually.
- It makes updating and applying labels based on product information in your own systems and databases impossible.
- The API could have been used here to make a script to solve the absence of label inheritance.
I’m not sure why Google is ignoring the API here, but from what I read in a discussion, they don’t seem to be planning to introduce labels in the API anytime soon:
is there already a timeframe for inclusion of the feature into the API?
We don’t have any plans at this time.
- Kevin Winter, AdWords API Team
Additionally, AdWords Editor doesn’t support labels either. So if you use editor to set up a campaign, and want to take care of labels when configuring all other campaign settings, you’re out of luck.
Fixing it with Scripts
That’s very nice, because that means we can now create Scripts to automate the stuff that was lacking by default!
I’ve started off myself by writing a Script that enables label inheritance for selected ad groups. You can grab it here. Feel free to use it yourself and adapt it.
For now, Scripts seem to be the only way to programmatically use labels. Here are some more advanced suggestions on using Scripts with labels:
- Post label information from AdWords to your web app using Jdbc.
- Use Jdbc to fetch product data in the other direction, for example to use up to date prices or performance stats, and use that to modify and apply labels.
- Alternatively, there’s UrlFetch that allows you to send or retrieve data via HTTP GET requests (you can use it with JSON and XML).
If you have any other suggestions on using Adwords Scripts, especially if the API lacks specific functionality, I would love to hear it!
What surprises me, is that although the API has been around for much longer, and is presumably used by the majority of ad developers, label support was added to Scripts, and not the API. And what’s more, Google actively announces to have no plans whatsoever to implement support in the API anytime soon.
Is it just a lack of resources, or does it indicate that Google will be steering away from the API, and move towards strongly encouraging developing within their own ecosystem?
Time will tell, but as advertisers are investing heavily in campaign management code (and Google’s bottom line), they should have the right to know.