Category Archives: Google Ads Developer Blog

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

IMA iOS SDK beta 7 released

Today we're releasing beta 7 of the IMA iOS SDK. This release includes an important API change, so you'll need to make a small code revision in your iOS apps that use it. We've introduced the concept of an IMAAdDisplayContainer and changed how companion ads are handled. See our previous blog post for information on changes to the SDK and how to update your application.

We've also updated our iOS sample application so you can see a working implementation of beta 7 of the IMA iOS SDK.

Why do I need to update to beta 7?

Beta 7 of the SDK introduces changes to the way video ads are displayed which will enable continued support of YouTube-hosted ads (including TrueView). Additionally, our restructuring of the SDK's API will eventually allow publishers who require a custom player (similar to the HTML5 SDK) to do so. Stay tuned for an upcoming announcement on this.

You can get this latest release of the IMA iOS SDK from our IMA downloads page.

Other questions?

As always, feel free to drop us a line on the IMA SDK forum and follow our Google+ page for other announcements and updates.

Ads Client Libraries: What’s on your Mind?

Do you use any of these products?
Then here’s your chance to tell us what you think about the corresponding client libraries, even if you don’t use one of them! Your feedback is very important for us and it helps us to prioritize the most wanted features. If you have any suggestions, feature requests or ideas—it's a great time to let us know!

Support for v201406 reports in AdWords scripts

We are announcing support for AdWords API v201406 reports in AdWords scripts. This version introduces several changes to the reporting columns.

Columns and fields cleanup

We've removed duplicates and changed column and display names in some reports:

Column Name
Change
Comments
ValuePerConvManyPerClick
Removed
Use ValuePerConversionManyPerClick instead.
ValuePerConv
Removed
Use ValuePerConversion instead.
TotalConvValue
Removed
Use ConversionValue instead.
PrimaryUserLogin
Removed
AccountId
Removed
Use ExternalCustomerId as unique account ID instead.
TargetingSetting
Removed
This column is now called IsRestrict and returns a proper boolean value.
NonDeletedAdGroupCount
Removed
New column name is NonRemovedAdGroupCount.
NonDeletedAdGroupCriteriaCount
Removed
New column name is NonRemovedAdGroupCriteriaCount.
NonDeletedCampaignCount
Removed
New column name is NonRemovedCampaignCount.


We also made changes to some enumerations for relevance and consistency:
  • Status value for an enabled object is now ENABLED across all reports. Before, it was ACTIVE for some objects.
  • Removed objects now have a status of REMOVED instead of DELETED.
  • The PRODUCT_LISTING_AD_CLICKS display name has changed from Offer to Product listing ad.
If your scripts use these fields in reports, make sure you fix the AWQL when migrating to the new version of the reporting API. Keep in mind that if you don’t use API versioning in your reports, then your code will now be using reports API version v201406 by default.

New report fields

Several new report fields were introduced:

Report Name
New columns
Campaign Performance Report
ServingStatus
Click Performance Report
UserListId
Product Partition Report
date fields, CampaignName, AdGroupName
Multiple reports
ExternalCustomerId, IsRestrict, BiddingStrategyType
Campaign, AdGroup, Ad, and Keyword Performance Reports
Labels


You can refer to https://developers.google.com/adwords/api/docs/appendix/reports for the list of supported reports and columns.

If you have any questions about this feature or the AdWords scripts in general, you can post them on our developer forum.

AdWords API Workshops: Feedback in Action!

If you’ve attended one of our AdWords API Workshops, you will know how important we think your feedback is to the growth of the API. We also have surveys you can fill in to let us know what you think. Many of the changes brought about in AdWords API v201406 were influenced by your requests, including:
  • Labels have been introduced to the API, for filtering and in reporting, which has been our most asked for feature for over a year now.
  • Destination URL customization has been improved, which along with greater Analytics functionality, improves your ability to track and manage actions from your Ads.
  • The Status fields of all the entities have been made more consistent. This has meant changing some enumeration fields, for instance, but the result should cause less confusion going forward.
  • Shared Sets are back - currently for whitelisted customers only.
  • Managed Customer Service can now move whole subMCC trees between MCCs.
We want to thank you again for your feedback, and ask that you continue to let us know what you need to use the API more effectively. Your input really does matter, and makes things happen.

Finally, if you want to see the content of our last AdWords API Workshops round, we’ve recorded a series of videos of the presentations we gave. We hope you find them useful and interesting.

Reminder: AdWords Migration to Search Network with Display Select

In April, we announced that Search Network with Display Select support would begin in AdWords API v201402. Now that all previous API versions have been sunset, we’re on schedule to begin migrating all Search and Display Network campaigns to Search Network with Display Select beginning September 16, 2014.

This blog post will walk through everything you need to know about setting up your campaigns, including what this migration means for your campaign-creation code. You can proactively migrate your campaigns by setting their displaySelect property to true.

Remember, this will not affect Search-only or Display-only campaigns. Only campaigns that target both networks simultaneously will be migrated.

If you have any questions about this change, please contact us on the forum or via our Google+ page.

Real-time Bidding with OpenRTB and DoubleClick Ad Exchange

Working with multiple exchanges is a key pain point for those developing real-time bidders. To-date, individual exchanges have used their own distinct protocols requiring the time-consuming development of a separate model for each exchange. In response, the OpenRTB consortium introduced standards for communication in real-time bidding that greatly simplifies the process of adding support for new exchanges. That’s why we are pleased to announce two new open source libraries that implement the OpenRTB specification and are now available on GitHub—google/openrtb and google/openrtb-doubleclick.

The openrtb library provides support for the core OpenRTB model and was designed with extensibility in mind to support the development of libraries for other exchanges. The openrtb-doubleclick library is an extension of openrtb for DoubleClick Ad Exchange that provides interoperability between the OpenRTB model and DoubleClick's Real-Time Bidding protocol. The library also includes DoubleClick-specific utilities. In summary, these libraries provide the following:
  • The model - The RTB model, as seen in the OpenRTB specification.
  • The mapper - Translates DoubleClick’s native model to/from OpenRTB.
  • The serializer - Translates JSON to/from the OpenRTB model.
  • DoubleClick Ad Exchange utilities - Utilities to handle bid validation, DoubleClick crypto and metadata.
For more information about the OpenRTB specification, check out the documentation on their Github page.

Ad Exchange Real-Time Bidding Optimization Series: Video Best Practices

Two years ago, we introduced the Ad Exchange Real-Time Bidding Optimization Series on the developer's blog with our first post on post-filtered bids. Since then we’ve added tons of new formats and options for buying. Today, we’ll direct you to our Developers site for more information about how the video review process works, how throttling and filtering occur and highlight best practices to ensure smooth delivery.

The first step is to know your video-specific terms. Check out the in-stream video glossary to find definitions for terms with which you’re not familiar. Once you've created your in-stream video ad, you will need to monitor your video ads. The Video Best Practices Guide provides a list of ways to confirm your video ads are serving: Have questions or feedback? Reach out to your Ad Exchange account team.

AdWords API – Upgrading to account-level location extensions

On July 14th, 2014, AdWords announced upgraded location extensions, a more efficient way to manage and use business locations in ads by linking Google My Business and AdWords accounts.

The upgrade is taking place in phases for AdWords accounts throughout the coming months. The next phase of account upgrades is scheduled to start on August 25, 2014. All AdWords accounts will to be upgraded by November, 2014.

The upgrade has direct impact to AdWords API client applications. If you are using the CampaignAdExtensionService to manage LocationExtensions or LocationSyncExtensions, then you’re using the legacy location extensions that are being phased out. After an account is upgraded, you’ll need to use the new account-level feed-based location extensions.

How will existing location extensions be upgraded by Google?

Please review the AdWords Help Center article for all upgrade scenarios. For AdWords API developers, most accounts will fall into one of these scenarios:
  • Accounts that don’t have any existing legacy location extensions.
  • Accounts that have existing legacy location extensions not sourced from a Google My Business account (i.e., using LocationExtensions only).
  • Accounts that have existing legacy location extensions sourced from a Google My Business account (i.e., using LocationSyncExtensions).
If you programmatically create AdWords accounts that are not associated with any user, please get in touch with your Google representative for migration support.

Accounts that don’t have any existing legacy location extensions

For accounts that aren’t using any LocationExtensions or LocationSyncExtensions but will begin using location extensions, you should use feed-based location extensions instead.

Accounts that have existing legacy location extensions not sourced from a Google My Business account

If you’re using LocationExtension entities to manage individual locations, the automatic upgrade process will perform the following:
  1. A Google My Business account will be created and linked with the AdWords account. All administrators of that AdWords account will have access to locations in the linked Google My Business account.
  2. A CustomerFeed with the Location placeholder type will be created.
  3. Existing locations in LocationExtension entities will be copied into the Google My Business account. Existing LocationExtension entities will then be removed.
  4. Ads in all campaigns will be served with locations from the linked Google My Business account (you can create a CampaignFeed to further filter or disable location extensions served for a given campaign).
Accounts that have existing legacy location extensions sourced from a Google My Business account

If you’re using LocationSyncExtension to link campaigns to a Google My Business account, then the automatic upgrade process will perform the following:
  1. The campaign-level links to the Google My Business account will be switched to a single link at the account level.
    • A CustomerFeed with the Location placeholder type will be created for the account.
  2. Any existing LocationExtension entities will be removed, so make sure they’re copied to the linked Google My Business account before the upgrade.
  3. Ads in all campaigns will be served with locations from the linked Google My Business account (you can create a CampaignFeed to further filter or disable location extensions served for a given campaign).
If an AdWords account is already linked to Google My Business at the account level using CustomerFeed, any existing legacy location extensions will be removed during the upgrade process.

How do I know if an account has been upgraded?

An account is considered upgraded if either condition is true:
  1. It has a CustomerFeed for the Location placeholder type. You can query CustomerFeedService to check:

    select FeedId, PlaceholderTypes where PlaceholderTypes = 7
  2. It has neither a CustomerFeed nor legacy LocationExtension or LocationSyncExtension entities.
In an upgraded account, any attempts to create legacy location extensions using the CampaignAdExtensionsService will return the AdExtensionError.INVALID_ADEXTENSION_TYPE error.

How do I continue to manage locations?

There’s currently no API support for Google My Business. Locations are managed via the Google My Business Locations interface, which supports bulk management.

Can I start using upgraded location extensions before an account is upgraded?

Since the upgrade process is complicated for many accounts, the simplest approach is to allow accounts using legacy location extensions to be automatically upgraded (account owners will be notified 30 days before the upgrade).

What about reporting?

For upgraded accounts, you’ll need to use the Placeholder Feed Item Report rather than the Ad Extensions Performance Report to download statistics for each location.

We are here to help

If you have any questions about this upcoming change or anything else related to the AdWords API, please contact us on the AdWords API forum or via the Google Ads Developers Google+ page.

Google Media Framework: Making online video simple

We’re excited to announce an open source video player framework to make online video and video monetization with the IMA SDK easier than ever. The Google Media Framework (GMF) is available for iOS and Android, and we have a Video.js plugin for web based video players.


Google Media Framework for iOS


Google Media Framework for Android


GMF Features
  • Ready to use Video player for your apps and websites
  • Demo apps include production ready integrations with the IMA ads SDK
  • GMF is free and open source, so can be customized to meet your specific needs (Send us a pull request!)
  • Easily customize the UI color and add or remove buttons
  • Support for iOS 7+ and Android 4.1+

We hope these frameworks enable you to simply make great mobile video apps and awesome web video experiences. You can send us thoughts or questions via the GMF Google group.

GitHub Links

-- The Google Media Framework Team

Preserving and renewing your AdWords scripts

To help streamline management of your AdWords scripts, we’ve made it easier to preserve scripts created in your AdWords account even after the original author becomes inactive.

In the past, a script in an AdWords account would become unavailable if the script’s original author was no longer associated with the AdWords account. Other users on the AdWords account would need to recreate the script on their own or else risk losing it entirely.

With the new changes we’re launching, scripts from an inactive user will continue to be available in the AdWords account where they were created. To keep these scripts running, the remaining users in the AdWords account will need to log into AdWords and reauthorize the script.

We’ll e-mail the administrators on the AdWords account if the author of a scheduled script goes inactive and here’s what you’ll need to do to get the script running again:
  1. Log in to your AdWords account, and navigate to the Scripts section under Bulk Operations (or the Scripts section of your MCC account).
  2. In the “Script” column, find the relevant script.
  3. Click the "Edit" link.
  4. Click the "Authorize now" button in the yellow bar at the top of the script editor.
  5. Click the “Accept” button.
We are applying this change with an effective date of March 15, 2014. If an author went inactive before that date, his or her scripts will continue to be unavailable. Scripts created in your AdWords account after March 15 will remain available as long as the AdWords account remains open.