Update (Jan 21, 2020): Clarified impact in more detail on both APIs.

On January 27, 2020, message extensions will be sunset in AdWords and Google Ads APIs and Google Ads scripts. After the sunset date:
  • All existing message extensions will no longer serve.
  • You will not be able to create new message extensions or update existing extensions.
  • You will still be able to retrieve data for existing message extensions until the end of 2020.
  • You will also be able to remove the existing message extensions until the end of 2020.
What will happen when you try to create or update message extensions after the sunset date?
If you try to create or update a message extension, you will see the following errors:

Google Ads API
  • Trying to create or update a TextMessageFeedItem will result in the ExtensionSettingError.INVALID_FEED_TYPE error.
  • Trying to create a message extension via FeedMapping with placeholder_type set to MESSAGE will result in the FeedMappingError.INVALID_PLACEHOLDER_TYPE error.
  • Trying to create or update CampaignFeeds, AdGroupFeeds, or CustomerFeeds by specifying MESSAGE in laceholderTypes will result in the CampaignFeedError.INVALID_PLACEHOLDER_TYPE, AdGroupFeedError.INVALID_PLACEHOLDER_TYPE, and CustomerFeedError.INVALID_PLACEHOLDER_TYPE errors, respectively.

AdWords API
  • Trying to create or update a MessageFeedItem will result in the ExtensionSettingError.INVALID_FEED_TYPE error.
  • Trying to create a message extension via FeedMapping using placeholder type ID 31 will result in the FeedMappingError.INVALID_PLACEHOLDER_TYPE error.
  • Trying to create or update CampaignFeeds, AdGroupFeeds, or CustomerFeeds by specifying ID 31 in placeholderTypes will result in the CampaignFeedError.INVALID_PLACEHOLDER_TYPES, AdGroupFeedError.INVALID_PLACEHOLDER_TYPES and CustomerFeedError.INVALID_PLACEHOLDER_TYPES errors, respectively.

Google Ads scripts
Trying to execute the following operations will result in the error, “Cannot operate on deprecated placeholder type” (translated to the language based on your locale):
What do you need to do?
  • Retrieve all the data from your existing message extensions that you need. All message extension data will be deleted at the end of 2020.
  • Ensure that your programs don’t contain any code trying to create or update message extensions after the sunset date.
As always, if you have any questions, feel free to reach out to us on the Google Ads API forum.

With the release of version 3.16.0 of the Interactive Media Ads SDK (IMA SDK) for Android, the location where we host the SDK has changed to Google's Maven Repository.

As a result of this change, your Android project should include a reference to the google() repository (Google's Maven Repository) as a dependency. Previously, the SDK was hosted on JCenter. You can now remove the jcenter() reference from your Android project’s build.gradle file, as long as none of your other dependencies are hosted there.

With the release of version 3.16.0 of the Interactive Media Ads SDK (IMA SDK) for Android, the location where we host the SDK has changed to Google's Maven Repository.

As a result of this change, your Android project should include a reference to the google() repository (Google's Maven Repository) as a dependency. Previously, the SDK was hosted on JCenter. You can now remove the jcenter() reference from your Android project’s build.gradle file, as long as none of your other dependencies are hosted there.

The google() repository should be referenced in the project-level build.gradle file of your project. You should then import the IMA SDK in the app/build.gradle file. See an example in the following code snippet from the Adding the IMA Android SDK to the player app section of the Android IMA SDK getting started guide.

repositories {
    google()
}

dependencies {
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'com.google.ads.interactivemedia.v3:interactivemedia:3.16.0'
}

Another change that comes from this update is that the com.google.android.gms:play-services-ads-identifier target is now included as a dependency of the IMA SDK and is no longer required to be explicitly included in the app/build.gradle file.

If you have questions about the IMA SDK for Android, please see the SDK documentation, or reach out to us on the IMA SDK forum.

On January 31, 2020, the AdWords API and Google Ads API will no longer allow positive user list criteria in Smart Display campaigns.

What happens to my existing Smart Display Campaigns?
Existing Smart Display campaigns with positive user list targeting:
  • Will continue to serve without interruption.
  • Will no longer allow adding a positive CampaignCriterion or AdGroupCriterion with a user list criterion.
  • Will no longer serve if the ad group is paused and then restarted.
What code do I need to change?
Please update your code that manages Smart Display campaigns per the following updated validation rules:
AdWords API Google Ads API
Positive CampaignCriterion.criterion set to CriterionUserList can no longer be added. Positive CampaignCriterion.user_list can no longer be added.
Positive AdGroupCriterion.criterion set to CriterionUserList can no longer be added. Positive AdGroupCriterion.user_list can no longer be added.

You will receive a CANNOT_TARGET_CRITERION error if you try to add one of these criteria.

Why is this changing?
Adding these criteria for Smart Display campaigns was never formally supported as outlined in our Smart Display campaigns guide. Additional validation is being put in place now to make sure that these values are not being set. Please see the guide for supporting criteria.

If you have any questions while updating your code, please reach out to us on our Google Ads API and AdWords API forum.

On January 31, 2020, the AdWords API and Google Ads scripts will start returning UNKNOWN for AdFormat in the Geo Performance Report. All other reports with AdFormat will not be affected. The Google Ads API is not affected as the field does not exist.

Please update your code where it uses these fields:
AdWords API Google Ads API Google Ads scripts
AdFormat in GEO_PERFORMANCE_REPORT NOT AFFECTED AdFormat in GEO_PERFORMANCE_REPORT

If you have any questions while updating your code, please reach out to us on our Google Ads API and AdWords API forum or our Google Ads scripts forum.


Update (Nov 27, 2019 15:00 PST): An issue that impacted Google Ads reporting for conversions occurring between Nov 11 and Nov 20 (Pacific Time) for advertisers using non-last click attribution models has been fixed and the data is now correct in all reports, including the Search Query Performance, Geo Performance, Keywordless Query, and Keywordless Category reports.

An issue that impacted Google Ads reporting for conversions occurring between Nov 11 and Nov 20 (Pacific Time) for advertisers using non-last click attribution models has been fixed and the data is now correct.

If you downloaded any of the fields in the table below or any derivative custom columns using the AdWords API, Google Ads API or Google Ads scripts since November 20th 9:00 PM PST, you may have incorrect data in your systems. Please re-download the affected fields to ensure accurate conversions reporting.

We appreciate your patience as we worked to resolve this issue.



AdWords API Google Ads API beta
Conversions
ConversionValue
ConversionRate
ValuePerConversion
CostPerConversion
AllConversions
AllConversionValue
AllConversionRate
ValuePerAllConversion
CostPerAllConversion
CurrentModelAttributedConversions
CurrentModelAttributedConversionValue
ValuePerCurrentModelAttributedConversion
CostPerCurrentModelAttributedConversion
metrics.all_conversions
metrics.all_conversions_from_click_to_call
metrics.all_conversions_from_interactions_rate
metrics.all_conversions_from_interactions_value_per_interaction
metrics.all_conversions_value
metrics.all_conversions_value_per_cost
metrics.conversions
metrics.conversions_from_interactions_rate
metrics.conversions_from_interactions_value_per_interaction
metrics.conversions_value
metrics.conversions_value_per_cost
metrics.cost_per_all_conversions
metrics.cost_per_conversion
metrics.cost_per_current_model_attributed_conversion
metrics.cross_device_conversions
metrics.current_model_attributed_conversions
metrics.current_model_attributed_conversions_from_interactions_rate
metrics.current_model_attributed_conversions_from_interactions_value_per_interaction
metrics.current_model_attributed_conversions_value
metrics.current_model_attributed_conversions_value_per_cost
metrics.value_per_all_conversions
metrics.value_per_conversion
metrics.value_per_current_model_attributed_conversion

We are pleased to announce the release of version 1.1 of the DoubleClick Bid Manager API. The full v1.1 API documentation can be found here.

Major changes

This release contains two major changes that affect the API methods queries.createquery, queries.getquery, queries.listqueries, and reports.listreports. All other API methods remain unchanged.

One-to-one API filters to report column mappings

In v1, some report columns were not mapped to any API filters and could only be included indirectly by adding related API filters in createquery. For example, in v1, report column “Advertiser Integration Code” could only be accessed by including API filter FILTER_ADVERTISER in calls to createquery

Starting with v1.1, a new API filter FILTER_ADVERTISER_INTEGRATION_CODE maps to report column “Advertiser Integration Code”, and it is no longer automatically included when using FILTER_ADVERTISER. Instead, this new filter needs to be added to the report explicitly.
Refer to the v1.1 API filter documentation for a full list of the new API filters.

Pagination support 


In v1, listqueries and listreports attempted to retrieve all Queries and Reports and would time out if there were too many resources to return. Starting with v1.1, responses from these two methods are paginated, making all resources retrievable.

Refer to the v1.1 API release notes for more details.


- DBM API Team

Thanks to everyone who was able to make it to the September 2019 Ad Manager Developer Workshop in London!

If you are interested in the content we covered, you can now access the presentation materials from the workshop talks. We have also posted videos of the talks on our Ads Developers YouTube channel.

As always, if you have general API questions or comments, please reach out to us on the Ad Manager API forums.

In today’s mobile-first world, app publishers who use banner ads must serve them across a greater variety of screen sizes and layouts than ever before. Existing responsive banner ad formats often produce ads that are too small and not optimally tailored to the specifications of each device.

In today’s mobile-first world, app publishers who use banner ads must serve them across a greater variety of screen sizes and layouts than ever before. Existing responsive banner ad formats often produce ads that are too small and not optimally tailored to the specifications of each device.

To address this, we’ve created a new banner type called adaptive anchor banners. These banners dynamically adjust creative size to deliver an ad that is ideally sized across all of your user’s devices, without the need to write any custom code.

These banners are designed to replace standard 320x50 and leaderboard banner sizes, as well as smart banners. Here is a comparison of the 3 formats on a standard mobile device:

Standard banner vs. smart banner vs. AdMob’s adaptive anchor banner


Migrating your banner implementation to adaptive

Here are a few simple steps to update your banner implementation to use adaptive banners:

  1. Ensure your UI supports a variable height banner. Depending on what constraints or layout mechanism you are using to position your banner, you may need to remove height constraints such that the layout accepts variable content size.
    • For Android this can be done using WRAP_CONTENT.
    • For iOS constrain your banner in terms of X and Y positions, you may also give it a width constraint, but ensure any height constraint or content size is placeholder only.

    Note that the max height is 15% of the device height or 90px, whichever is smaller.

  2. Use the adaptive banner ad size APIs to get an adaptive ad size. The adaptive ad size APIs are available for different orientations.

    Android:
    AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(context, width)
    AdSize.getPortraitAnchoredAdaptiveBannerAdSize(context, width)
    AdSize.getLandscapeAnchoredAdaptiveBannerAdSize(context, width)

    iOS:
    GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(width)
    GADPortraitAnchoredAdaptiveBannerAdSizeWithWidth(width)
    GADLandscapeAnchoredAdaptiveBannerAdSizeWithWidth(width)

    Unity:
    AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(width)
    AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth(width)
    AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth(width)

    Which one you use depends on your use case. If you want to preload ads for a given orientation, use the API for that orientation. If you only need a banner for the current orientation of the device, use the current orientation API.

    Once you have an ad size, set that on your banner view as usual before loading an ad. The banner will resize to the adaptive ad size as long as you have laid it out without any conflicting constraints.

  3. Update your mediation adapters. If you use mediation, update your mediation adapters to the latest version. All open source mediation adapters that support banners have been updated to support the adaptive banner ad size requests. Note that adapters will still only return ad sizes supported by their corresponding ad network SDK, and those ads will be centered in your adaptive banner view.

Review our developer resources

For further information including detailed implementation guidance, review our developer resources:

As always, please reach out on our developer forum if you have any questions.

We're happy to announce that v201911 of the Google Ad Manager API is available starting today. This version brings new reporting and video features, unlocking new possibilities for automation in your Ad Manager network.

Reporting
  • We’re improving our reporting error messages so that you can better understand what went wrong in a number of situations, including when a report has an invalid date range.
  • You can now break down reports by CMS Metadata, which was added as a targeting option in v201902 of the Ad Manager API.
Video
  • On video line items, you can now read and write customVastExtension, which provides access to XML extensions that are part of the VAST specification (both v3 and v4).
  • For further configurability of Dynamic Ad Insertion, you can now set the mediaPlaylistOriginForwardingType and mediaPlaylistOriginPathPrefix fields on CdnConfigurations.

If you’re on an older version of the Ad Manager API, now is a great time to upgrade to take advantage of these and other recent features like the TargetingPresetService, which was added in v201905. The release notes contain the full list of API changes for v201911 and all other active API versions.

Feel free to reach out to us on the Ad Manager API forum with any API-related questions.

On Monday, December 2, 2019, in accordance with the deprecation schedule, v201811 of the Ad Manager API will be sunset. At that time, any requests made to this version will return errors.

If you’re still using this version, now is the time to upgrade to the latest release and take advantage of new features like the TargetingPresetService and reporting on CustomTargetingKeys.

When you’re ready to upgrade, check the release notes to identify any breaking changes. Then, grab the latest version of your client library and update your code.

We now provide a machine-readable version of our deprecation schedule, giving you more flexibility to stay up to date with the latest Ad Manager API features. You can access this CSV file at https://developers.google.com/ad-manager/downloads/api-schedule.csv.


As always, don't hesitate to reach out to us on the developer forum with any questions.

On November 15, 2019, AdWords API, Google Ads API, and Google Ads scripts will start returning null ID criteria for YouTube channels and videos that have been deleted, due to changes in our data retention policy. The criteria itself remains for a given ad group, but referencing the video ID or channel ID for that criteria will return null.
  • In the AdWords API v201809, null values are returned as two dashes (--) in reporting.
  • In the Google Ads API, NULL values are returned as NULL values.
  • In Google Ads Scripts, null values are returned as null JavaScript values.
Please update your code where it uses these fields:
AdWords API Google Ads API Google Ads Scripts
YouTubeVideo.videoId YouTubeVideoInfo.video_id YouTubeVideo.getVideoId()
YouTubeChannel.channelId YouTubeChannelInfo.channel_id VideoYouTubeVideo.getVideoId()
Criteria in CAMPAIGN_CRITERIA_REPORT Media.getYouTubeVideoId()
Criteria in CRITERIA_PERFORMANCE_REPORT
Criteria in SHARED_SET_CRITERIA_REPORT

If you have any questions while updating your code, please reach out to us on our forum.

On June 11, 2019 we deprecated support for Python 2 in the AdWords/Google Ad Manager client library for Python. As part of our previously announced plans, in mid-November 2019 we will be deprecating support in the Google Ads client library for Python as well.

When version 4.0.0 of the Google Ads client library for Python is released, we will officially end support for Python 2 and versions of Python 3 prior to 3.6.0.

If you use the Google Ads client library for Python, please take note of the following:
  • If you are already using Python version 3.6.0 or later, you can upgrade to Google Ads client library 4.0.0 and no other action is needed. If not, please do not upgrade to version 4.0.0 until you’ve upgraded to Python version 3.6.0 or later.
  • Version 4.0.0 will continue to support previous API versions such as v1_3 but we won't support client library issues related to Python 2 compatibility. For example, we won't release version 4.0.1 to fix a bug that only exists for Python 2 users.

If you have questions about the Python 3 migration, please submit an issue on the Google Ads client library repository’s Issues page, and for general API support please reach out to us on the Google Ads API forum.


This is a reminder that, starting October 14, 2019, accelerated budget delivery will no longer be generally available in AdWords API, Google Ads API, and Google Ads scripts for use with shared budgets, search campaigns, and shopping campaigns.

We encourage all developers to review our announcement of the sunset, which has been recently updated to include the most up-to-date information on expected error codes that could be returned after this change goes into effect.

Please don’t hesitate to contact us via the AdWords API and Google Ads API Forum or the Google Ads scripts forum if you have any questions.

Adam Ohren, Google Ads API Team

We’re continuously improving our guides, code samples, and other developer resources for the Google Mobile Ads SDK to help you integrate AdMob and Ad Manager into your mobile apps.

To learn more about what's working well and what could be improved, we're announcing our second annual developer feedback survey for the Google Mobile Ads SDK. We'd like to hear from you about where we should focus our efforts.

We’re continuously improving our guides, code samples, and other developer resources for the Google Mobile Ads SDK to help you integrate AdMob and Ad Manager into your mobile apps.

To learn more about what's working well and what could be improved, we're announcing our second annual developer feedback survey for the Google Mobile Ads SDK. We'd like to hear from you about where we should focus our efforts.

SHARE YOUR FEEDBACK

Your answers will be completely anonymous. The survey should take about 15 minutes to complete and will close on September 30, 2019.

Your feedback is truly important to us. Here are a few highlights of the changes we made based on feedback from last year’s survey:

  1. Continuous translations of the developer docs in several languages
  2. Continuous build integration of sample applications via Travis CI
  3. Launched a Developer tutorials playlist on the Google AdMob YouTube channel
  4. Launched the App Policy Center to help publishers handle policy violations

Please let us know what you’d like us to focus on next. Thank you in advance for helping us continue to improve the developer experience for everyone.

Today we're announcing the general availability of Structured Data Files (SDF) v5 in the DoubleClick Bid Manager API. Highlights of this release include:
  • Updates to environment targeting
  • TrueView for action
  • Regional location list targeting
  • Deal simplification updates
  • IO-level budget optimization
As previously announced, this release introduces a number of breaking changes to SDF v3.1, v4, v4.1, and v4.2. All existing SDF users who rely on legacy targeting fields must now migrate in order to make use of the new, enhanced targeting fields in SDF v5.

Retiring older API versions

We're also introducing a new deprecation schedule and announcing the deprecation of all SDF versions prior to v5. Moving forward, we will generally only support 3 versions of SDF at a time and sunset the oldest version 4 months after a new release. In order to help developers adjust to this new schedule, we're providing an extended migration period for these newly deprecated versions and announcing a sunset date of February 28, 2020 for SDF v3.1, v4, v4.1, and v4.2.

These versions will remain active and supported until the sunset date, and we encourage you to use this time to update your applications. After the sunset date, requests to these versions will no longer work, preventing you from accessing SDF.

Get started with SDF v5

All SDF users are encouraged to begin requesting v5 files in order to take advantage of the new features listed above. To do so, simply pass 5 as the value of version when calling Sdf.download. For workflows that are dependent on older SDF formats, you can find additional details about the file format changes in the release notes.


Questions about this or anything else DV360 related? Contact our support team.

The Ad Manager Developer Relations team is excited to hop across the pond and bring our Ad Manager Developer Workshop to London on September 26, 2019. If you’re a regular user of the Ad Manager API and Google Publisher Tags, then you’re sure to find something of interest at this event!

What is it?

A full-day event featuring technical talks by Google engineers and office hours with Google's Developer Relations team. We will have talks on a range of topics, including Ad Manager API tips and best practices and strategies for faster loading pages and ads.

Who is the target audience?

The event is targeted toward developers who use the Ad Manager API. The talks will be technical in nature, so a technical background is required for all attendees. You’ll get the most out of some sessions if you come prepared with an API user’s credentials for your network and a laptop. For the full list of sessions, see the event schedule.

Where and when?

This event will be at Google’s London office at 1 St Giles High St. Doors will open at 9:30 AM and we’ll kick things off at 10 o’clock.

How do I sign up?

To register, please visit our website for this event. Seating is limited, so after you register, we will reach back out to you to confirm your spot at the workshop.

Starting September 9, 2019, we are rolling out a change to prevent the same Payments accounts in the Google Ads API (billing accounts in the AdWords API) from being used across manager account hierarchies. Only valid Payments accounts belonging to the Google Ads manager account hierarchy can be used to create and update billing setups in the Google Ads API.

How does this affect you?
For your authenticated Google Ads client account Therefore, you may get fewer results from those API calls than before.

What do you need to do?
Google Ads API
When creating/updating a new billing setup, you will need to select a valid Payments account returned by PaymentsAccountService.ListPaymentsAccounts(). If you use an invalid Payments account during the above processes, the INVALID_PAYMENTS_ACCOUNT error will be thrown.


AdWords API
When creating a new budget order, you will need to specify a valid billingAccountId (the ID of a valid billing account returned by BudgetOrderService.getBillingAccounts()). If you use an invalid billingAccountId during the above process, the BudgetOrderError.INVALID_BILLING_ACCOUNT error will be thrown.

As always, if you have any questions, feel free to post your questions on the Google Ads API forum.

Update (Oct 1, 2019): We have updated the error codes that will be returned in the table below.

Starting October 14, 2019, accelerated budget delivery will no longer be available for use with search campaigns, shopping campaigns, or shared budgets. This will affect budgets in all versions of the AdWords API, Google Ads API, and Google Ads scripts.

All three developer surfaces will stop accepting ACCELERATED delivery method setting on budgets for search campaigns, shopping campaigns, or shared budgets. Campaigns using accelerated delivery with these campaign and budget types will be automatically migrated over to STANDARD delivery, starting October 7, 2019.

Note: When a new budget is created using the API or scripts, it is shared by default. Thus, a newly created budget will behave as STANDARD. To explicitly create a budget with ACCELERATED delivery, all of the following conditions must be met:
  • The budget’s isExplicitlyShared field is set to false
  • The budget’s delivery method is set to ACCELERATED
  • It is not associated with a search or shopping campaign post creation
Affected API and scripts operations

After this change goes into effect, API clients and scripts will no longer be able to use the ACCELERATED delivery method setting on search campaigns, shopping campaigns, or shared budgets. Any programmatic operations that create or modify such budgets, or that would result in the following states, may result in errors according to the following criteria.
AdWords API Operation
Creating new budget isExplicitlyShared: true
deliveryMethod: ACCELERATED
Campaign Type: (N/A)
Service: BudgetService
Error: OperationAccessDenied.ACTION_NOT_PERMITTED*
Modifying existing budget isExplicitlyShared: true
deliveryMethod: ACCELERATED
Campaign Type: All
Service: BudgetService
Error: OperationAccessDenied.ACTION_NOT_PERMITTED*
Modifying existing budget isExplicitlyShared: false
deliveryMethod: ACCELERATED
Campaign Type: Search, Shopping
Service: BudgetService
Error: OperationAccessDenied.ACTION_NOT_PERMITTED*
Attaching existing budget to campaign isExplicitlyShared: false
deliveryMethod: ACCELERATED
Campaign Type: Search, Shopping
Service: CampaignService
Error: OperationAccessDenied.ACTION_NOT_PERMITTED*
*For the Google Ads API beta, an analogous OperationAccessDeniedError.ACTION_NOT_PERMITTED will be thrown.

If you have any questions about this change, please don’t hesitate to contact us via the AdWords API and Google Ads API Forum or the Google Ads scripts forum.

We're happy to announce that v201908 of the Google Ad Manager API is available starting today. There are several highly requested features in this new version of the API.

Reporting
  • You can now access “Advertiser (Classified)” and “Brand (Classified)” dimensions through the API.
  • We’ve also added the dimensions and metrics for calculating video sell-through.

Programmatic
  • Programmatic LineItems and ProposalLineItems now have an allowedFormats field, which gives publishers more control over what types of creatives a buyer can add.

LiveStreamEvents
  • You can now use the slateCreativeId field to programmatically set live stream slates, which are shown during gaps in a live stream ad break that cannot be filled with a dynamically served ad.

The release notes contain the full list of API changes for v201908.

If you have questions about these or any other API changes, reach out to us on the Ad Manager API forums.

Today we’re announcing the v2_1 releases of the Google Ads API beta. To use the v2_1 features via the new endpoint, please update update your client libraries. If you are upgrading from v1, some of your code may break when you switch to the new v2 endpoint. Please see the migration guide for more information on breaking changes.

Here are the highlights:
  • Introduced AdService for updating existing ads that were created using AdGroupAdService. Updating ads maintains existing metrics.
  • Introduced summary rows when retrieving data from GoogleAdService.Search() by setting return_summary_row to true in the request. The summary row contains the report totals.
  • Introduced the AdGroupAdAssetView resource for querying ad asset metrics.
  • Introduced the DistanceView resource (equivalent to the User Ad Distance Report in the AdWords API).
  • Introduced the UserLocationView resource (equivalent to the Geo Performance Report where isTargetingLocation is false in the AdWords API).
  • Added the ability to retrieve all label resource names associated with the AdGroup resource using AdGroup.labels and with the Campaign resource using Campaign.labels.
  • Added time_zone, test_account, manager, descriptive_name, currency_code, and id to CustomerClient to make it easier to retrieve customers in an account hierarchy.
Where can I learn more?
The following resources can help you get going with the Google Ads API: The updated client libraries and code examples will be published by August 16. If you have any questions or need additional help, please contact us via the forum.

We’re excited to announce support for price extensions in Google Ads scripts starting today.

Price extensions allow you to add details about your business’s offerings and prices to a text ad, and are supported at the account, ad group, and campaign level.

You can see how to implement price extensions in our AdsApp.Extensions documentation, or check out some example code using these extension types.

If you have any questions or concerns, please don't hesitate to contact us via our Google Ads Scripts forum.

In accordance with our deprecation schedule, we will be sunsetting version 3.2 of the API on August 31, 2019. Requests to version 3.2 will no longer work after this date, preventing you from updating and accessing information in Campaign Manager. To avoid an interruption in service, you must migrate to a newer API version as soon as possible.

To learn about changes between versions and get tips for migrating, visit the API developer site. Also consider subscribing to this blog to stay up to date about new releases, upcoming sunsets, and changes to the API.

If you have technical questions regarding new versions of the API, please reach out via the developer forum.

Update (Jul 30, 2019): clarified the sunset schedule.

Starting the week of September 30, 2019, the average position metric will be sunset. This change was announced this past February in the Google Ads Help Center. The new alternatives were described in this November 2018 blog post. Once the sunset occurs, requests for the average position (AdWords API, Google Ads API) will return NULL values.

In the AdWords API v201809, NULL values are returned as two dashes. In the Google Ads API, NULL values are returned as NullValues.

If you use ValueTrack parameters, we encourage you to remove the ValueTrack parameter {adposition} from your tracking templates. When average position is sunset, the ValueTrack parameter {adposition} will begin returning the empty string.

Note that average position has already been removed from the current beta version of the Google Ads API, but is accessible in the earlier V1_x versions.

In lieu of average position, we recommend you use the new metrics of Impression (Absolute Top) %" and "Impression (Top) %. These are the new metrics:

Absolute Top Metrics
AdWords API Google Ads API
AbsoluteTopImpressionPercentage absolute_top_impression_percentage
SearchAbsoluteTopImpressionShare search_absolute_top_impression_share
SearchBudgetLostAbsoluteTopImpressionShare search_budget_lost_absolute_top_impression_share
SearchRankLostAbsoluteTopImpressionShare search_rank_lost_absolute_top_impression_share


Top Metrics
AdWords API Google Ads API
TopImpressionPercentage top_impression_percentage
SearchTopImpressionShare search_top_impression_share
SearchBudgetLostTopImpressionShare search_budget_lost_top_impression_share
SearchRankLostTopImpressionShare search_rank_lost_top_impression_share


As always, don't hesitate to reach out to us on the developer forum with any questions.

In case you missed it, Google Ad Manager's video content ingestion is getting an upgrade, and the API has been updated to support the new Content Metadata features.




If you create video line items through the API, you'll need to update your application to target metadata for video line items using CmsMetadataCriteria instead of CustomCriteria keys and values. The values for CmsMetadataCriteria can be retrieved from the CmsMetadataService, available in v201902 and later.

Migration Steps

A significant part of this migration will be coordinating your changes - especially if you work with multiple Ad Manager networks. You'll need to wait until Google migrates each network, then change your application's behavior when creating line items.

The order of operations will be:
  1. Google backfills and verifies existing content metadata in new Ad Manager infrastructure.
  2. Google enables the new content ingestion features on a network.
  3. You update your application to use CMS Metadata targeting for all new line items.

If you need help with this migration, or coordinating changes with your partners, don't hesitate to reach out to us on the Ad Manager API forums.

Update (Aug 5, 2019): Please also include SharedSet ID in your verification for 64-bit compliance.
Update (Jul 26, 2019): Please also include Asset ID in your verification for 64-bit compliance.

In the AdWords API and Google Ads API, Campaign IDs and Budget IDs are 64-bit signed integers and are of type xsd:long in the AdWords API and INT64 in the Google Ads API. Applications that integrate with the API should handle ID values in that range.

Historically, Campaign and Budget IDs in Google Ads were within the maximum value of 32-bit signed integer, but will soon be exceeding this range. In order to avoid any issues, please make sure your applications are fully compliant with IDs within a range of 64-bit signed integer values.

If you have any questions or concerns, please don't hesitate to contact us via the forum.

On Friday, August 30, 2019, in accordance with the deprecation schedule, v201808 of the Ad Manager API will be sunset. At that time, any requests made to this version will return errors.

If you’re still using this version, now is the time to upgrade to the latest release and take advantage of new functionality like DateTimeRangeTargeting, the TargetingPresetService, and reporting on CustomTargetingKeys.

When you’re ready to upgrade, check the release notes to identify any breaking changes. Significant changes include:
  • A change to the capitalization of DateTime.timeZoneId, which was previously DateTime.timeZoneID.
  • Removal of the ContentMetadataKeyHierarchyService. You can continue to target video content with key‑values mapped from content metadata or content bundles.

Then, grab the latest version of your client library and update your code. As always, don't hesitate to reach out to us on the developer forum with any questions.

Your feedback about the performance of our products is very important to us. After launching the Google Ads API in March, we’ve heard feedback about slow response times compared to the AdWords API. After in-depth analysis, we’ve determined that the overall performance of the Google Ads API is not ready for production usage.

We take performance very seriously, and this is our highest priority to address. In the meantime, we’re reverting Google Ads API back to beta status and recommend production systems to use AdWords API for the best experience.

If you’re currently using the Google Ads API in production, please contact googleadsapi-support@google.com to discuss recommendations specific to your use cases.

We appreciate all the work you’ve put into learning and developing on the new Google Ads API. We thank you for your feedback and are committed to delivering a better performing API to meet you and your customers’ needs. As more updates become available, we'll share them on this blog.

Update (Aug 8, 2019): Replacement field mappings have been updated to align with changes to the SDF v5 release notes.

On August 26, 2019, we'll be introducing a number of changes to environment and position targeting in Display & Video 360. These changes are being made to allow you to target your ads with increased accuracy and granularity. To learn more about these changes and how they will affect various parts of the Display & Video 360 product, visit the help center.

How will this affect API users?

A new version of Structured Data Files (SDF) will launch alongside these changes, containing new fields that allow you to retrieve and set all of the new targeting options. At the same time, existing SDF versions will be updated to disallow retrieving and setting legacy environment and position targeting options.

The following legacy fields will no longer be populated on download and will return errors on upload for SDF v3.1, v4, v4.1, and v4.2. Suggested SDF v5 replacement fields are provided where applicable.

SDF Entity
Legacy Field
New SDF v5 Field(s)
Campaign
Environment Targeting
Environment Targeting
Viewability Targeting Ad Position - Exclude
No longer supported
Viewability Targeting Ad Position - Include
Position Targeting - Display On Screen
Insertion Order
Environment Targeting
Environment Targeting
Video Ad Position Targeting
Position Targeting - Video Position In Content
Viewability Targeting Ad Position - Exclude
No longer supported
Viewability Targeting Ad Position - Include
Position Targeting - Display On Screen
Line Item
Environment Targeting
Environment Targeting
Video Ad Position Targeting
Position Targeting - Video Position In Content
Viewability Targeting Ad Position - Exclude
No longer supported
Viewability Targeting Ad Position - Include
Position Targeting - On Screen


If you are a current user of SDF and rely on any of the legacy fields listed above, you will need to migrate to SDF v5 in order to make use of the new targeting fields. While this SDF version will not be available until August 26, we are providing a preview of the documentation that you can use to prepare.

Questions about this or anything else DV360 related? Contact our support team.