Posted:
Over the years, many developers have let us know they'd like to see more real-world AdWords API examples to help them drive their own success. To deliver on this, we've worked closely with our partners to share their innovative strategies for using the AdWords API to boost their business.

You can now find these case studies on the developer website. We plan to post more in the future, so check back for fresh insights from digital marketers on making the most of the AdWords API.

If you have any questions or feedback regarding these partner stories, please let us know on the forum.

Posted:
We’ve enhanced structured snippets to now have even more header translations, increasing from 12 to all AdWords languages. Structured snippets are extensions that highlight products and services in your ads. Existing structured snippets will not change, so no AdWords API code changes are necessary, but consider adding structured snippets to any campaigns targeting the newly available languages.
Here are some resources to get you started with structured snippets:

As always, if you have any questions, please contact us via the forum.

Posted:

AdWords API v201607 will be sunset on June 27th, 2017, after which all v201607 API requests will begin to fail. This version was deprecated on February 28th, 2017. If you are still on v201607, we recommend that you skip v201609 and v201702 and migrate directly to v201705. Please be sure to migrate prior to the sunset to ensure your API access is unaffected.

We've prepared various resources to help you with the migration:

As always, if you have any questions about this migration, please contact us via the forum.

Posted:

Today we're announcing the release of AdWords API v201705. Here are the highlights:

If you're using v201607 of the AdWords API, please note that it will be sunset on June 27, 2017. We encourage you to skip v201609 and v201702 and migrate straight to v201705. If you're using v201609, be aware it's now marked deprecated and will be sunset on October 2, 2017.

As with every new version of the AdWords API, please carefully review all changes in the release notes and the v201705 migration guide. The updated client libraries and code examples will be published within the next 48 hours.

If you have any questions or need help with migration, please post on the forum or the Ads Developers Plus Page.

Posted:
Update: Clarified AdGroupType values introduced in v201705.
Update 06/22/2017: Clarified information in last paragraph.

Starting this week, users of the new AdWords interface will be able to create dynamic search ads (DSA) through the new dynamic ad group type in Search campaigns with Dynamic Search Ad settings. This has some consequences in the AdWords API as described below.

How does this impact the AdWords API?
If your managed accounts are eligible for the new AdWords interface, be aware that if users create dynamic ad groups in the interface, AdGroupType values for the dynamic ad groups will be returned as SEARCH_DYNAMIC_ADS in v201705 and UNKNOWN for earlier API versions. Here are the rules applied to the dynamic ad group type: As described in this guide, to create dynamic search ads in the AdWords API, some settings and criteria are required, such as WebPage and DynamicSearchAdsSetting. These settings can still be added and modified in the dynamic ad group type.

What should you do?
If your application manages accounts that have access to the new AdWords interface, or if you have ad groups with type SEARCH_DYNAMIC_ADS for v201705 and UNKNOWN for earlier versions, ensure that you properly handle these cases by: In addition, for v201705, you cannot add features related to Dynamic Search Ads to ad groups with AdGroupType of SEARCH_STANDARD. Examples of Dynamic Search Ad features include the Webpage criterion and ExpandedDynamicSearchAds. However, for the earlier versions, ad groups with AdGroupType of SEARCH_STANDARD are not affected by this change. You can still continue adding expanded text ads, dynamic search ads, call ads, and various criterion types to them.

As always, if you have any questions, please post on the forum.

Posted:
Update: this change will go live in June 2017.

In June 2017, AdWords will begin gradually altering the specifics of the Enhanced CPC bidding strategy. If you're not familiar with the Enhanced CPC (ECPC) bidding strategy, it works by adjusting the bids for clicks that seem more likely to lead to a conversion. Clicks that seem unlikely to convert will get lower bids, while those more likely to convert will have the bid increased.

Currently, the strategy does not increase bids by more than 30% after bid modifiers are applied. Starting in June, this bid cap will be eliminated over time in order to get more clicks that are likely to convert. On Search and Display, the goal of the strategy will be to help you get more conversions while maintaining the same cost-per-acquisition (CPA) as you get with manual bidding. On Shopping, the goal of the strategy remains to help you get more conversions while maintaining the same cost as you get with manual bidding. The strategy will still respect your manual bids by trying to keep the average CPC below the max you set, which is done in the CpcBid.

This change will allow our system more flexibility to improve performance, and we will be monitoring the effects closely to make adjustments as necessary to continue to fine tune ECPC.

If you are an API user, there is no action required on your part for this change to take effect. The setup in the API works the same as before, so you can use your existing version to make any changes you may want to your account as a result of this change in functionality.

If you have any questions about this change or other API features, please post on the forum.

Posted:
Hello PHP developers! In December 2016, we announced the stable release of the new ads PHP library and the deprecation of the old one. This is a reminder to upgrade to the new library by July 31, 2017.

The new PHP library has many improvements such as support of namespaces and Composer installation. It is currently available as the master branch on GitHub. We also provide an upgrading guide to help you during this upgrade.

The old library has been moved to the deprecated branch with reduced support and will reach end of life (EOL) on July 31, 2017. We recommend you complete your upgrade before that date. Past this date, the deprecated branch can still be used until all of the AdWords / DFP API versions it supports are sunset, but we will not add support and examples for new API versions, nor fix any bugs.

If you have questions about upgrading or need help, as always, feel free to ask on the GitHub issues page. If you have questions regarding AdWords or DFP API, please drop us a line on the AdWords or DFP API forums.

Posted:
When making any AdWords API call, you should always remember to handle the possibility of a rate limit error properly. Do you feel this is a bit troublesome and want to solve it in one go?

We’ve just released a new Java client library extension named “RateLimiter”, which automatically adds rate limit error handling logic (wait-and-retry) across all threads in a single JVM, so you can focus on implementing core business logic. More excitingly, you just need to change a few lines of code to use it! Check out this open-source extension on GitHub, and follow the instructions to give it a try.

As always, feel free to ask questions or give us feedback via the forum or the project’s issue tracker.

Posted:
Are you tired of reading? Do you prefer to learn by watching? Then the latest series of AdWords API Workshop videos is for you! Visit the Ads Developers YouTube channel to discover more.

Recorded as part of the AdWords API Workshops - Fall 2016 events that toured 7 countries around the world, these short and easy-to-digest videos were presented by the experts from the AdWords API team. They cover the content presented in the technical workshop sessions on the following topics: The videos have subtitles available in English, Chinese (Simplified), and Japanese as well as auto-generated options for other languages.

Now you can watch all the Fall 2016 videos at your convenience. Also make sure to look at the associated slide decks that accompany these presentations.

Interested in attending similar workshops? Follow this blog for future workshop announcements.

Have questions? Feel free to visit us on the AdWords API Forum.

Posted:
Starting this week BudgetOrderService get requests are available for all users, regardless of API version.

Previously, usage of this service was allowed on a whitelist-only basis. Now, you can retrieve your budget orders without being added to the whitelist. This enables you to view the account-level spending limit.

You still need to be whitelisted to modify your budget orders via the API; this new access applies only to viewing existing budget orders. Keep in mind that BudgetOrderService will only work on accounts that have been set up for consolidated billing; otherwise you will get an error.

To get started, check out the BudgetOrderService guide. If you have any questions about this change or other API features, please post on the forum.

Posted:
AwReporting is an open-source Java framework optimized for large-scale retrieval of AdWords API reports.

We’ve just released a new major version of the tool that encompasses the full suite of AdWords API Reports and their fields. As mentioned in our pre-announcement, "aw-reporting-server” and “aw-reporting-server-appengine” modules were removed.

You can find the latest release on GitHub. Please find the full list of changes in the ChangeLog, and follow the migration guide to upgrade from the current version of the tool.

Feel free to ask questions or give us feedback via the forum or the project’s issue tracker.

Posted:
AdWords API v201605 will be sunset on March 28, 2017, after which all v201605 API requests will begin to fail. This version was deprecated on July 28, 2016. If you are still on v201605, we recommend that you skip v201607 and v201609 and migrate directly to v201702. Please be sure to migrate prior to the sunset to ensure your API access is unaffected.

We've prepared the following resources to help you with the migration: As always, if you have any questions about this migration, please contact us via the forum.

Posted:
Today we’re announcing the release of AdWords API v201702. Here are the highlights: If you’re using v201605 or v201607 of the AdWords API, please note that they are now deprecated and will be sunset on March 28, 2017 and June 27, 2017, respectively. We encourage you to skip v201609 and migrate straight to v201702.

As with every new version of the AdWords API, please carefully review all changes in the release notes and the v201702 migration guide. The updated client libraries and code examples will be published within the next 48 hours.

If you have any questions or need help with migration, please post on the forum or the Ads Developers Plus Page.

Posted:
Update: The sunset date for manual location extensions and subsequent auto-migration has changed to June 24th, 2017.

At the moment, location extensions in AdWords can be sourced from two different places: a Google My Business account that is linked to your AdWords account or - for legacy users - manual location extensions created as feed items in AdWords.

What’s changing?
We’ll sunset manual location extensions on June 24th, 2017 for all legacy users. You’ll no longer be able to manually create and manage Feed and FeedItem with a corresponding FeedMapping of placeholderType 7 (location extensions) and placeholderType 77 (location targeting) after this date. Instead, create your locations in Google My Business and link them to your AdWords account as outlined in our Location Extensions guide. You can use the Google My Business API to manage your business locations at scale.

What you should do
Please migrate your code before June 24th, 2017 to avoid being impacted by this transition. See our guide for managing location extensions for further details, including an end-to-end code example. We recommend migrating your existing legacy locations alongside your code in order to have full control over your Google My Business account structure, test your setup, and avoid any downtime in location extension management. If you're not concerned about downtime, let us migrate your existing manual location extensions for you (you still have to migrate your code).

Auto-migration
All unmigrated manual location extensions stored in AdWords will be gradually auto-migrated starting from June 24th, 2017.
  • For each Customer Account with unmigrated manual location extensions, we'll pick all Manager Accounts at the lowest level of the manager hierarchy.
  • For each such Manager Account, we'll create a single Business Account in Google My Business managed by the administrative users of the original Manager Account and its managers. The name of this Business Account will be ‘AdWords (<cid>)’, where <cid> is the AdWords Customer ID of the original Manager Account.
  • We’ll also create Business Accounts in Google My Business for Customer Accounts not linked to any Manager Account. Those will be managed by the administrative users of the Customer Account.
  • For each unmigrated location in the Customer Account, we'll create a new unverified business location in that Business Account and label it with its AdWords Customer ID. The original manually created feed items representing that location in AdWords will be removed.
  • We'll replace all unmigrated location extension and location targeting feeds with new feeds linked to the shared Business Account created in Google My Business. In each feed, we'll set up a labelFilter based on the Customer ID to map each location to its original account.
  • Any existing CampaignFeed and AdGroupFeed will be recreated to match the original setup, including their matching functions.
If you have questions while you’re upgrading, please reach out to us on the AdWords API forum.

Posted:
What’s happening?
In March 2017, we will stop supporting the Budget Optimizer and Conversion Optimizer bidding strategies in AdWords. These strategies have long been unavailable for user opt in. We will migrate existing campaigns that use these legacy strategies to use their replacement counterparts which offer identical features: There will be no change in performance after the migration.

What do I need to do?
If you are satisfied with your current Budget Optimizer or Conversion Optimizer setup, then you don't need to do anything to your existing campaigns -- Google will automatically migrate them for you.

If you prefer manually migrating your campaigns before the automatic migration begins, you may refer to the automatic migration steps below. Refer to our bidding guide and help center articles on target CPA and target spend strategies to learn more about the new bidding strategies.

What will the automatic migration do for Conversion Optimizer campaigns?
  • Convert the campaign's bidding strategy to standard target CPA.
  • Identify all ad groups of the campaign and their CPA bids, calculate the most common CPA bid value, and set the campaign's target CPA value to this value. If no CPA bids exist, Google sets the campaign's target CPA to the minimum billable unit.
  • Pause any ad groups that do not have a CPA bid. This prevents previously inactive ad groups from inheriting the campaign's new target CPA value and inadvertently serving.
What will the automatic migration do for Budget Optimizer campaigns?
  • If no ad group level bidding strategy overrides exist, update the campaign’s bidding strategy to a standard target spend strategy. If the enhancedCpcEnabled field is set to true for the budget optimizer strategy, set it for the target spend strategy also.
  • If some--but not all--ad groups have overrides, update the the campaign’s bidding strategy to a new portfolio target spend strategy. This preserves the ad group level bidding strategy overrides.
  • In the rare case that all ad groups have overrides, update the campaign’s bidding strategy to standard manual CPC. The campaign level bidding strategy doesn’t matter in this case since all the ad groups have overrides. However, changing the campaign’s bidding strategy to manual CPC helps us avoid creating portfolio target spend strategies for each ad group in the campaign.
As always, if you have any questions about this change or other API features, please post on the forum.

Posted:
AdWords offers several different strategies for configuring filters for your Google My Business locations. However, users sometimes choose filters that do not match any locations, which results in no location extensions appearing with ads.

What's changing?
Starting on February 14, 2017, AdWords will perform a daily check to determine if the following location extension feed item filters are not matching any Google My Business locations: If any such invalid filters are found, they will be automatically cleared as outlined in the updated Location Extensions guide.

Please keep the following details in mind:
  • The periodic check will only clear matchingFunction filters on a CampaignFeed or AdGroupFeed for location extensions (placeholderType = 7). It will not clear filters on those objects for location targeting (criterionType = 77).
  • The periodic check will not clear matching functions of the form IDENTITY(false), since these indicate that you want to disable location extensions for a campaign or ad group.
What you should do
  1. To minimize the impact of the periodic check, regularly review your application's location feed setup and ensure that you are choosing filtering options on your PlacesLocationFeedData and matching functions that actually match locations in your Google My Business account.
  2. Make sure that your application will be able to handle the filter changes made by the periodic check.
If you have any questions, please post on the AdWords API Forum.

Posted:
Last year, we announced that you have until February 1st, 2017 to upgrade from ExperimentService to the new campaign drafts and experiments introduced in v201603. After this date, you’ll no longer be able to use ExperimentService.
  • API calls to ExperimentService across all API versions will result in an error
  • All experiments running via ExperimentService will be stopped
  • All ExperimentService experiments will be deleted and their stats will be unavailable
Check out our Campaign Drafts and Experiments guide for examples while upgrading your code. If you have questions while you’re upgrading, please reach out to us on the AdWords API forum.

Posted:
Last year, we announced that you have until January 31st, 2017 to upgrade your standard text ads to expanded text ads or responsive ads. After this date, you’ll no longer be able to create new standard text ads. Existing standard text ads will continue serving alongside expanded text ads and responsive ads.

To prevent any errors when creating ads, it’s important to immediately upgrade to expanded text ads or responsive ads before January 31st, 2017. To help you get started, we’ve put together a few resources: If you have questions while you’re upgrading, please reach out to us on the AdWords API forum.

Posted:
TL;DR: New feeds and feed items will automatically be added to eligible AdWords accounts.

This year, mobile search engines are predicted to drive nearly 33 billion clicks-to-call to businesses globally, almost 19% more calls than from mobile landing pages alone (BIA/Kelsey, July 2016). Using Google call extensions, you can get more calls by making it easy for people to contact you right from your mobile search ads.

If you manage accounts with ads that take users to landing pages prominently featuring a phone number, starting February 6, 2017 you will see call extensions automatically added for these mobile search ads via the extension setting services.

When added automatically, the new feed will have ORIGIN of "USER". You can update call extensions yourself directly with Feed services, Call Extensions or the AdWords user interface at any time.

You’ll be able to get detailed reporting insights (API report) about your calls performance (including call duration, call start and end time, caller area code) and whether the call was connected. You can also set up call conversion tracking to see which parts of your campaigns are driving the most valuable calls.

These extensions will only be added automatically once to each campaign or ad group and will not be re-added if modified or removed in the user interface or via the API. You can also indicate if you don't want extensions to be created for a specific account in the AdWords user interface:
  1. On the Ad extensions tab select “View: Automated extensions report”
  2. Scroll down to “Automated extension options (advanced)” and click on “Edit”
  3. Uncheck the option for “Automatic call extensions” under “Do not use specific automated extensions in this account”. 
As always, if you have any questions about this announcement, or other questions about the AdWords API, contact us via the forum.

Posted:
AwReporting is an open-source Java framework that is optimized for large-scale retrieval of AdWords API reports.

We plan to release a new major version (v2.0) within the next few months that will
This release will have some backwards incompatible changes, such as
  • uses report type names with “AW_” prefix as database table names
  • uses field names as database column names
  • renames setting “mccAccountId” to “managerAccountId” in properties file
  • renames setting "aw.report.downloader.retries.count" to "aw.report.downloader.num.attempts"
  • renames processor type setting’s options from “ON_FILE” to “FILE”, and “ON_MEMORY” to “STREAM”
  • removes “-debug” and “-verbose” command line options, and depends on log configuration file (default one is log4j.properties) for setting logging granularity
  • removes server modules (aw-reporting-server and aw-reporting-server-appengine) in the new release since they have third-party dependencies that are not actively maintained
If you are actively using the aw-reporting-server or aw-reporting-server-appengine module or have any questions about this upcoming release, please let us know on this forum thread.