Tag Archives: google_ads_api

Restricting Payments account usage across manager account hierarchies

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.

Sunsetting accelerated budget delivery

Starting October 1, 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.

Google Ads will stop respecting the ACCELERATED delivery method setting on any budgets of the above types. Campaigns using such budgets will be automatically switched over to use standard delivery instead.

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 will need to 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
Fields and methods affected

Google Ads API campaign_budget.delivery_method
AdWords API Budget.BudgetDeliveryMethod
Google Ads scripts Budget.setDeliveryMethod()

API applications and scripts that set the ACCELERATED delivery method will continue to function and will not return any errors when attempting to set the ACCELERATED fields on budgets. However, the setting will not have any effect for shared budgets, or for any budget attached to a search or shopping campaign; the setting will be defaulted to STANDARD delivery instead. Get or mutate responses from the AdWords API on any affected budgets will show the budgets as STANDARD.

The ACCELERATED delivery method may eventually be removed from future versions of the APIs and scripts for the affected budget and campaign types. We will provide additional details regarding any further changes in a later post.

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.

Announcing v2_1 of the Google Ads API beta

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.

Sunset of the Average Position Metric in AdWords and Google Ads APIs

In 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.

Campaign IDs and Budget IDs as 64-bit in Google Ads

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.

Google Ads API Returning to Beta

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.

Upcoming changes to App campaigns

We will be rolling out the improved version of App campaigns in the AdWords API and Google Ads API over the coming months. Please make sure you get your code ready before the migration of all campaigns to the new structure on August 6, 2019.

What's changing
Once this change is rolled out to a given account, all App campaigns for that account will immediately begin using the new fields. You will no longer use a UniversalAppCampaignSetting, which included both information about the app and references to media and descriptions that would be used for ads in that campaign.

Instead, you will specify an AppCampaignSetting in the Google Ads API (UniversalAppCampaignInfo in the AdWords API), which contains only basic details about the app you want to promote through advertising. All the specific ad-level details will be added in the new AppAdInfo in the Google Ads API (UniversalAppAd in the AdWords API). This improved structure allows you to have a single campaign for each app you want to advertise, and offers the flexibility to have a variety of different ads within that campaign.

For reporting, stats at the ad group level will be available in the Google Ads API only.

Update schedule
For this update, we are rolling out the changes in two phases.
  • On June 17, 2019, all test accounts will be updated to use the new App campaign settings. Starting on this date, you can write test code against a test account you own to ensure that your code is ready for the full migration.
  • On August 6, 2019, all Google Ads accounts will be updated to use the new App campaign settings. Make sure that you have tested and deployed your new code to adapt to the changes by this date.
If you have any questions or concerns, please don't hesitate to contact us via our forum.

Sunsetting the creation of target spend field for Maximize Clicks strategies in Google Ads API

On July 31st, 2019 we will begin to sunset the target spend field for Maximize Clicks bidding strategies in the API. This will affect all versions of both the AdWords API and Google Ads API. The following behaviors will be blocked:
  • Populating the target spend field on existing standard and portfolio strategies.
  • Attaching portfolio strategies that have the deprecated field set to campaigns.
Later this year, our systems will start ignoring the target spend field and instead use your daily budget to manage spend. In order to prepare for this change, you should start using your budgets to specify how much you’d like to spend for Maximize Clicks bidding strategies and migrate your campaigns off this field today.

Read on to see how this will affect your API usage.
Affected Target Spend Fields
Google Ads API campaign.target_spend.target_spend_micros
AdWords API Campaign.BiddingStrategyConfiguration.TargetSpendBiddingScheme.spendTarget

Change Description
Any mutate operations that set a target spend field for the first time will return an error. You will be able to update a target spend field that currently contain a value, but you cannot set previously empty fields to a new value. Additionally, any operation attaching a bidding strategy to a campaign, where that bidding strategy has a value set for a target spend field, will throw an error. To manage Target Spend on any new campaigns, we recommend using a campaign budget. In each of these disallowed cases an error will be thrown.

Performing any of the disallowed actions above will generate one of the following errors:
If you have any questions about this change or any other API feature, please contact us via the forum.

Content API for Shopping live webinar on May 31st (Mandarin, Chinese)

We are running a live webinar this Friday, May 31, on the Content API for Shopping. This webinar is for our Chinese-speaking developers that are interested in using the API to manage products and Shopping ads at scale.

The webinar will cover topics on:
  • Content API for Shopping use case
  • Merchant Center setup
  • Content API features
  • Best practices
  • API request/response demo
You will be able to submit questions throughout the live event. We will answer questions during the Q&A session in the webinar.

Note: The webinar content will be delivered in Mandarin, Chinese.

The webinar will begin at 10:00am (China Time, GMT +8) on Friday, May 31, 2019. Please contact us via the Content API forum if you have any questions or need help.

If you’d like to review some of our previous webinars covering the Google Ads API, you can find them at the following links:

Migrating from position to impression share bidding strategies in Google Ads

In June 2019, we will shut off the ability to add new Target Search Page Location and Target Outranking Share bidding strategies. This will affect both the AdWords API and the Google Ads API. Later this year, existing campaigns on these strategies will automatically be migrated to the new Target Impression Share bidding strategy, which offers more flexible and granular controls to optimize for your desired impression share and search page location.

Read on to see how this will affect your API usage.

Google Ads API Users
Please start using the TARGET_IMPRESSION_SHARE BiddingStrategyType rather than TARGET_OUTRANK_SHARE or PAGE_ONE_PROMOTED.

If you attempt to create a TARGET_OUTRANK_SHARE or PAGE_ONE_PROMOTED after they are removed, you will get an error.

AdWords API Users
If you attempt to use the AdWords API to add a TARGET_OUTRANK_SHARE or PAGE_ONE_PROMOTED bidding strategy after they are removed, you will get an error.

All existing campaigns using the old bidding strategies will be automatically migrated to use Target Impression Share for both APIs. The AdWords API does not support the Target Impression Share bidding strategy, so we recommend migrating to the Google Ads API if you need this functionality.

If you have any questions about this change or any other API feature, please contact us via the forum.