Category Archives: Google Ads Developer Blog

The blog for information about the AdWords, AdSense, DoubleClick and AdMob APIs and SDKs.

AdWords API 2015 Workshop slides and videos now available

Did you miss our recent series of workshops? Did you attend a workshop, but can't seem to remember what was on slide 32 of the upgraded URLs presentation?

If so, then you're in luck! The videos and slides are now available at adwordsapiworkshops.com for your enjoyment. The Resources section has links to individual presentation videos and slides, or you can just grab a coffee, find a comfortable chair, and watch the complete list of videos.

Have questions? Feel free to visit us on the AdWords API Forum or our Google+ page.

Upgrade former AdWords interest category campaigns

In December 2014, we announced that “Other interests” has been superseded by affinity and in-market audiences. As a part of this transition, the associated criteria are no longer supported in AdWords API v201502.

To finalize this sunset, we’ll be auto-upgrading existing deprecated criteria of this type to supported ones. The auto-upgrade will happen gradually over several weeks starting May 15, 2015.

Campaigns that target "Other interests" will be automatically upgraded to one or more of the following options:
  • Affinity audiences for driving brand awareness and engagement from a defined list of categories;
  • In-market audiences for reaching customers actively researching and intending to make a purchase;
  • Topic targeting to target websites about specific topics.
Campaigns with "Other interests" exclusions will be converted to Topic exclusions during this upgrade. Campaigns that don’t target "Other interests" will not be affected by this upgrade. If you'd like to keep full control of your campaign targeting, make sure to upgrade your campaigns before May 15.

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

Change to default filters within AdWords API Reporting

Starting this week AdWords API reports will by default return all objects regardless of their status. API users will need to specify a custom predicate in order to filter out removed entries.

With AdWords API v201502 we made the handling of removed items consistent across services by changing the default filter of all services to exclude all removed entries.

We also included a few reports in this change, but based on your feedback, we’re reverting back to the old behavior. The new filters proved to be confusing and caused discrepancies between reports on different levels. In practice, most API users like to see historical stats of all objects regardless of their current status, so we are making it the default.

As of this week, we’ll start returning all entries in AdWords API Reports regardless of their status by default. This fully matches the old v201409 behavior. You can still filter out removed entries by specifying a custom predicate. Note that non-reporting services will still filter out removed entries by default in v201502 and later, as they do now.

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

Sunset of MobileAd and MobileImageAd Ad Types

Starting June 2015, AdWords will no longer support WAP mobile ads for devices without a full-featured browser, including feature phones. At that time, the AdWords API will no longer support creation of new MobileAds or MobileImageAds. Any remaining ads with these types will stop serving and be converted into DeprecatedAds with status REMOVED. These changes will be visible in all supported versions of the API, though the DeprecatedAd.type field may be UNKNOWN until it can be added to the WSDL in a subsequent API release.

Historical performance metrics for any removed ads will still be available for download via the API’s AD_PERFORMANCE_REPORT.

Next steps
To reach the broadest set of mobile users with your campaigns, we recommend that you: Still have questions? Feel free to visit us on the AdWords API Forum or our Google+ page.

AwReporting: Upgraded to use AdWords API v201502

We’ve upgraded the AwReporting tool to use the latest AdWords API version, v201502. The code changes were made according to the migration guide.

Note that besides code changes, the database tables’ column names have also been updated to reflect the new report field names. Since these changes are scattered around many tables, you can run this version of AwReporting on a new database schema, then use the schema generation command to generate both database schemas and compare them. You can also create SQL scripts to import data from old database tables to new ones with updated column names.

We’ve put the code changes in the v201502_upgrade branch. Please feel free to pull this branch and give it a try. Remember to update the properties file to use the new report field names. This upgrade branch will be merged into the master branch at the end of May.

If you have any questions or feedback regarding this upgrade, let us know via the project’s issue tracker.

Upcoming changes to mobile app install ads on the Search Network

As part of our ongoing effort to improve app promotion features in AdWords, we are making some changes to mobile app install ads (also known as click-to-download ads) on the Search Network. Starting July 1, 2015, we will support the creation of app install ads for the Search Network only in the Search Network only - Mobile app installs campaign type. In addition, app install ads created for the Search Network outside of this campaign type will stop running in July 2015. This includes any app install ads running together with website text ads in a Search Network only - All features campaign.

If you are a developer who manages app install ads for the Search Network using the AdWords API, you need to perform the following changes on your end:
  • When creating new app install ads for the Search Network, make sure you create them only within Search Network only - Mobile app installs campaigns. These campaigns have their advertisingChannelType set to SEARCH and advertisingChannelSubType property set to SEARCH_MOBILE_APP.
  • If you have app install ads in your regular search campaigns, you need to move them to a Search Network only - Mobile app installs campaign. This may be done as follows:
    • Retrieve your Search campaigns containing app install ads.
    • For each campaign, create a new campaign with similar settings (such as location targeting, device targeting, ad delivery, etc.) with the advertisingChannelSubType changed to SEARCH_MOBILE_APP.
    • Mirror over your ad groups in the old campaign to the new campaign.
    • Mirror over your app install ads from the first campaign to the second campaign, in the corresponding ad groups.
    • Run an ad performance report to see how much you’ve spent on app install ads during the last month. Update your campaign budgets as follows:
      • new_campaign_daily_budget = app_install_cost / 30
      • old_campaign_daily_budget = old_campaign_daily_budget - new_campaign_daily_budget
  • [Optional] Delete or pause app install ads in the old campaign.
See our Help Center guide for more details.

To ensure uninterrupted serving of app install ads on the Search Network, make sure you move them to a Search Network only - Mobile App installs campaign before July 1, 2015.

If you have any further questions about this change, let us know via our forum or Google+ page.

IMA SDK for iOS Beta 13 Released

Today we’re announcing the release of beta version 13 of the IMA SDK for iOS. This release includes two new major features:

  1. The SDK can be included as a framework in your project.
  2. The SDK now supports ad playing in the background.

Importing the SDK as a Framework

Prior to today’s release, importing the SDK involved manually adding every header file to your project, importing every header file individually in your source, and manually including the required frameworks. With the new framework model, you can add a single .framework file to your app and replace all of your header import source lines with a single import statement.

For CocoaPods Users

If you use CocoaPods, your build will fail after you update to beta 13. But fear not, you can fix this in a matter of seconds with the following steps:

  1. Locate and remove each instance of an imported IMA header file in your source (these will look like #import “IMA<something>.h”).
  2. Add the following line to the first header or implementation file to access an IMA object:
    @import GoogleInteractiveMediaAds;

For Manual Importers

If you don’t use Cocoapods, your path to upgrade is slightly different. You can update using the following steps:

  1. Remove all of the IMA header files and the IMA library file from your project.
  2. Under "Build Phases” > “Link Binary With Libraries”, click the plus sign, select “Add Other...”, and navigate to the downloaded and extracted SDK files. Select GoogleInteractiveMediaAds.framework from whichever folder applies to your implementation (with or without AdMob) and click “Open”.
  3. Follow the two steps above for CocoaPods users.

Background Ad Playback

Since our launch, one of the most requested features has been background ad playback. Suppose, for example, you author a music streaming app, and you want to be able to request and play ads in the background. With today’s release, however, we now support requesting and playing ads in a background service. For more info and implementation instructions, see our Background Ad Playback guide.

As always, if you have any questions feel free to contact us via the support forum.

Check the Forward Compatibility Map before modifying LocationGroups in CampaignCriterion (v201409, v201502)

Do you use LocationGroups in CampaignCriterion? If so, read on to learn about a new key in the Forward Compatibility Map to identify whether a Location Group is compatible with the AdWords user interface or the API.

Through the Campaign Settings tab of the user interface and the AdWords API CampaignCriterionService, you can create a LocationGroups campaign criteria to target locations within a specific radius around all of your campaign's location extensions.


The user interface also allows you to further restrict the LocationGroups criterion to location extensions within geographical targets or Cities-DMA regions. However, the AdWords API does not currently support modifying these additional settings.

To indicate in the AdWords API that someone created a configuration of the latter form through the user interface, the CampaignCriterion.forwardCompatibilityMap has a new key called LocationGroups.locationId.

Key
Read-Only
Value Description
IMPORTANT
Service
CampaignCriterionService
Entity
CampaignCriterion
Key Name
LocationGroups.locationId
Yes
The Location criterion ID chosen for the LocationGroups criterion from Geographical Targeting or Cities-DMA Regions. For example, an ID of 2752 indicates targeting around location extensions within Sweden.
If this key appears in CampaignCriterion .forwardCompatibilityMap, then re-adding the LocationGroups after removal or using a copy of the LocationGroups may result in a loss of configuration information.

We’re working to support the geographical targets and Cities-DMA regions option in future API versions.

Be on the lookout for an upcoming addition to the Forward Compatibility Map regarding which feed ID will be used for proximity targeting.

Questions? Visit us on the AdWords API Forum or our Google+ page.

Sunset of v201403 of the DFP API

It's that time again - time to say goodbye to another version of the DFP API. In accordance with our deprecation schedule, v201403 has been deprecated and is scheduled for sunset on Tuesday, June 30 2015. At that time, any requests made to v201403 will return errors.

If you're currently using v201403, there's still time to migrate to the latest and greatest v201502. To do so, check the release notes to identify any breaking changes, grab the latest version of your client library, and update your code!

Things to look out for include:

This is not an exhaustive list, so as always don't hesitate to reach out to us on our API forum with any questions.

Important upcoming breaking changes to DFP reporting

Now that it’s spring again (in the Northern Hemisphere at least), it’s time for DFP’s annual spring cleaning! In this edition, we’ll be doing some pruning of our ReportService. What does this mean for you? We’re sunsetting some reporting dimensions, attributes, and metrics in existing versions (before the version is fully sunset), so your reports will break if you don’t migrate before the shutoff dates. I know what you’re wondering: “should I panic?”. Absolutely not. This type of behavior rarely occurs, so as long as you phase out usage for these particular fields, you should be fine moving forward.

Merged Metrics

Remember when Doubleclick for Publishers was called DART? I, too, get nostalgic about our old ad server, but it’s been a couple of years since we transitioned to the new DFP platform, and it’s just about time when the merged reporting columns are no longer useful (these columns only existed so you could continue reporting on delivery that spanned DART and DFP). In all versions after v201502, we will no longer provide merged reporting columns and dimension attributes in the API, that is, anything starting with 'MERGED_' or contains '_LIFETIME_MERGED_.' After August 1, 2015, these columns and dimension attributes will stop returning data entirely and will return INVALID_COLUMNS in all versions that still include them.

There are three scenarios in which you’re using these columns:

  1. Just for fun.
  2. Because you forgot you’re using them.
  3. Because you have lifetime line items that have carried over from DART (in which case you’ll have to recreate these). To give you an example, if the metric you care about is impressions, you can get the DART delivery portion by subtracting the portion of delivery from DFP Premium (AD_SERVER_IMPRESSIONS) from the MERGED value (MERGED_AD_SERVER_IMPRESSIONS) which represents the aggregate DART and DFP Premium volume. Additionally, you should make the switch to the non-merged columns and dimension attributes as soon as possible.

Dimension Filters

But wait, there’s more! Our next API version (v201505) will be the last to support some of our infrequently used dimensionFilters.

  • MOBILE_LINE_ITEMS
  • WEB_INVENTORY_UNITS
  • MOBILE_INVENTORY_UNITS
  • WHOLE_NETWORK
  • PARTNER_STATS_TYPE_ESTIMATED
  • ACTIVE_ADVERTISERS
  • PARTNER_STATS_TYPE_RECONCILED
  • WEB_LINE_ITEMS
  • ALL_SALESPEOPLE

In each of the cases above, the filters either no longer provide meaningful information (as is the case with mobile vs. web line items and ad units with platform unification complete), or weren’t being used at all.

Similar to the changes above, after August 1, 2015, these dimension filters will return an INVALID_DIMENSION_FILTERS error in any version that still includes them.

So if you’re using any of the reporting features above, consider this an early heads up (and an opportunity) to refactor some of your code for spring cleaning.

As usual, if you have any questions, comments, or concerns, don’t hesitate to let us know on the forums.