Tag Archives: google_ads

Improvements to conversion adjustment uploads

Starting on September 9, 2024, Google Ads API users will no longer need to wait 24 hours before uploading conversion adjustments - they can be uploaded immediately after the original conversion has been uploaded or recorded by Google tags.

This means that you will no longer need to keep track of the 24-hour window before uploading conversion adjustments, and can stop checking for certain error codes and retrying those upload requests.

Specifically, the following changes will take effect:

  1. The following error codes will no longer be returned in responses from the UploadConversionAdjustments method, and will no longer be visible in diagnostic reports:
  2. Conversion adjustments that would previously be rejected with these error codes will count towards the pending_count in diagnostics until they’re processed, at which point they’ll be counted towards either the successful_count or failed_count fields. This might take up to 24 hours.

Here is how these changes will affect older Google Ads API versions v15 and v16:

  1. The following error codes will no longer be returned in responses from the UploadConversionAdjustments method, and will no longer be visible in diagnostic reports:
  2. Any conversion that would have triggered these codes will, in diagnostic reports, count towards the total_event_count metric while being processed. Once processing is completed they will be counted towards either the successful_count or failed_count. This might take up to 24 hours.

What do I need to do?

  1. Remove any logic from your application that waits before uploading adjustments, and begin uploading conversion adjustments at any time after the original conversion has been uploaded.
  2. Modify your application logic and business processes so that you are not tracking the two conversion adjustment errors that are being removed.
  3. If you rely on the successful or failed event count metrics, revisit your application logic with the understanding that some uploaded events may, at times, when using v17, be represented as pending.

If you have any questions or need help, see the Google Ads API support page for options.

Upcoming Changes in Python Version Support for the Google Ads API Client Library for Python

In October, 2024, Python 3.8 will reach end-of-life and will no longer be supported by the Python Software Foundation. Once Python 3.8 officially reaches end-of-life status, it will also no longer be supported by the Google Ads client library for Python. That means we will not make updates to the library, or address any issues related to compatibility with Python 3.8, outside of critical security updates.

In Q1 2025 we will release a new major version of the library that is incompatible with Python 3.8. This new version will include support for Python 3.13. Users of deprecated, or soon-to-be deprecated versions of Python, are at risk of losing access to the Google Ads API. Please note the below timelines:

  • Python 3.7 users will lose access to the API when v15 is sunset on September 25, 2024
  • Python 3.8 users will lose access to the API when v18 is sunset in Q3 or Q4 2025.

Any library users currently relying on Python 3.7 or 3.8 should upgrade their systems to Python 3.9 or higher as soon as possible.

If you have any questions about this change, please file an issue on the client library repository.

Watch Performance Max and the Google Ads API On Demand

As previously announced, Ads Developer Relations hosted a workshop on July 17: Performance Max and the Google Ads API. We are grateful to all the Google Ads API and Performance Max enthusiasts who tuned in for the live workshop.

If you didn't get a chance to watch the workshop live, or you want to review content you previously watched, you can still view sessions on demand at the event site.

We hope you will take advantage of this awesome resource to learn more about the power of Performance Max campaigns, and hear from Google Ads API experts on how to build, manage, and report on Performance Max campaigns using the API.

Register for the Performance Max Workshop

As previously announced, the Performance Max and the Google Ads API workshop is only one week away, on July 17, 2024. Register today to reserve your spot.

As a reminder, this developer-focused, virtual workshop will provide you with knowledge, resources, and support to build, manage, and report on Performance Max campaigns in the Google Ads API. We’re offering this live workshop in three regions. Follow the links below to view the full agenda in your region.

Regional Workshop Times & Agendas

We look forward to seeing you!

Batch processing support for Performance Max

What’s New

Starting with Google Ads API v17, BatchJobService supports AssetGroupOperation. With this change you can use batch processing to create and manage entire Performance Max campaigns.

Batch processing is a powerful feature in the Google Ads API that lets you dispatch a set of operations, which might be interdependent, to multiple services without waiting for each operation to complete. Batch processing also provides automatic retries for transient errors, and automatic grouping of operations We have made batch processing available for AssetGroupOperation in response to your feedback to provide another option for working with asset groups asynchronously.

Implementation Details

Using AssetGroupOperation with batch processing for Performance Max campaigns is similar to how you use other operations, with the following special considerations:

When creating asset groups using batch processing, AssetGroupOperation and AssetGroupAssetOperation must be sequential without other operations in between. This is due to how operations are grouped together when processed. You can learn more about the considerations and best practices for using batch processing to create Performance Max campaigns in the Batch processing for Performance Max guide.

Here’s how to create an asset group in a batch job:

  1. Create a MutateOperation containing an AssetGroupOperation. This is no different than creating a MutateOperation using the GoogleAdsService.Mutate service. See the mutating resources guide.
  2. Associate assets with the asset group by creating a MutateOperation containing operations of type AssetGroupAssetOperation for each asset required; the sequential AssetGroupOperation and operations of type AssetGroupAssetOperation must combine to meet applicable minimum asset requirements.
  3. Add the operations of type MutateOperation to the batch job as you would with any other type of operation.
  4. Run the batch job by calling RunBatchJob after adding all operations.

The following resources contain additional information to help you with your integration:

Improving Performance Max integrations Blog Series

This article is part of a series that discusses new and upcoming features that you have been asking for. We’ll cover what’s new and how it differs from the current implementation approach.

Keep an eye out for further updates and improvements on our developer blog, continue providing feedback on Performance Max integrations with the Google Ads API, and as always, contact our team if you need support.

Workshop Reminder

Register today for the Performance Max and the Google Ads API workshop happening on July 17!

Upcoming Workshop: Performance Max and the Google Ads API

Today, we’re announcing an upcoming developer workshop, Performance Max and the Google Ads API. These virtual sessions will provide you with knowledge, resources, and support to create, manage, and report on Performance Max campaigns in the Google Ads API. The workshop will be presented live in three regions on July 17, 2024.

Regional Workshop Times & Agendas

Hear from Google Ads API experts as we:

  • Tour the core features and business goals available in Performance Max campaigns.
  • Detail key technical pieces of your Performance Max implementation, from setup to reporting.
  • Build a Performance Max interface in an interactive demo.
  • Review best practices for configuring and optimizing your Performance Max campaigns.
  • Discuss Performance Max and AI in an experts panel.

Whether you’re new to Performance Max or looking to expand upon an existing integration, we'll have a variety of sessions to help you achieve your goals and boost your Google Ads account performance with the power of Google AI. We’ll be delivering several talks to discuss what's unique about Performance Max and explain key concepts across experience levels.

Throughout the workshop, you’ll have the opportunity to interact with our team via live Q&A.

Head over to the event site to register and view the full agenda. We look forward to seeing you!

A new guide to help you upgrade to Performance Max using the Google Ads API


Do you want to discover if Performance Max can provide additional benefits beyond your existing campaigns?
Are you interested in upgrading existing campaigns to Performance Max?
Do you need to scale your upgrades using the Google Ads API?

What’s new
If the answer to any of these questions is “yes”, then the new Upgrade to Performance Max guide can help. In this guide you will discover:
  • A summary of the benefits available in Performance Max
  • Steps to assist you managing the upgrade process
  • Eligibility information to help you understand which existing campaigns you are able to upgrade using the Google Ads API
  • Recommendations to compare reporting between existing campaigns and Performance Max campaigns
  • Enhancements you can make to improve your upgraded campaign
Feedback and support
If you have further questions or concerns about upgrading to Performance Max, we want to hear from you. Please provide any feedback on the upgrade process or Performance Max using our feedback page. If you require further support with your upgrade, please reach out to our team via one of our support channels.

Introducing "Solutions": A New Way to Automate Management of your Google Ads Account

We're excited to announce the launch of "Solutions," a new tool for Google Ads that makes it easier to manage and automate tasks in your account. With Solutions, you can quickly and easily generate reports that show you how your campaigns are performing against your business goals, automate simple management tasks and more.

Solutions is available for free in Google Ads under Tools and includes a number of features that make it easy to customize your reports, including the ability to:

  • Filter your data by campaign, ad group, keyword, or other dimensions
  • Set flexible budgets
  • Manage negative keyword lists throughout your account
  • Sort your data by any metric
  • Export your reports to a variety of formats, including CSV and XLSX

To learn more about Solutions, visit the the Google Ads Help Center.

Benefits of Using Solutions

Solutions offers a number of benefits, including:

  • It's easy to use. Solutions is a simple and straightforward script that can be used by anyone, regardless of their technical expertise.
  • It's customizable. Solutions can be customized to meet your specific automation needs.
  • It's efficient. Solutions can generate reports quickly and easily, saving you time and effort.
  • It's accurate. Solutions uses the Google Ads API to pull data directly from your Google Ads account, ensuring that your reports are accurate and up-to-date.

Developers Site Solution Library

In order to try to provide the best possible experience and to avoid duplication of efforts, we will also be sunsetting our manual solutions library in the coming months.

Get Started with Solutions Today!

Solutions is a powerful tool that can help you get the most out of your Google Ads campaigns. To get started, simply install the solution from the Google Ads Solutions gallery.

Important information for Performance Max campaigns using page feeds with text asset automation opted out

Note: You can ignore this if you are not using Google Ads Performance Max with page feeds and text asset automation

What’s happened?

In October 2023, as part of Google Ads API v15, we launched the ability to configure your campaign to automatically generate text assets. Assets such as dynamic headlines or descriptions that match your landing page content can be configured by setting the Campaign.AssetAutomationSetting of TEXT_ASSET_AUTOMATION to be opted-in or opted-out. We also launched the ListingGroupFilterDimension.Webpage dimension to allow Performance Max campaigns to filter URLs from a page feed specified by a CampaignAssetSet linking the campaign to an AssetSet of type PAGE_FEED.

For this feature to work correctly, developers need to provide BOTH the page feed configuration AND set text asset automation to OPTED_IN (which is the default behavior, if you do not specify a Campaign.AssetAutomationSetting of type TEXT_ASSET_AUTOMATION). We noticed that some developers have included a page feed or a listing group filter for a webpage, but have text asset automation set to OPTED_OUT. Unfortunately this combination will not correctly utilize the page feed for Performance Max campaigns as might be expected.

What is happening today?

Starting Feb 15, 2024, we will begin throwing OPERATION_NOT_PERMITTED_FOR_CONTEXT errors if a Performance Max campaign is created or updated such that it contains the follow incompatible state:

Incompatible state for a Performance Max campaign with a page feed and text asset automation
Campaign.AssetAutomationSetting of type TEXT_ASSET_AUTOMATION is set to OPTED_OUT AND A CampaignAssetSet linking the campaign to an AssetSet of type PAGE_FEED
OR
An AssetGroupListingGroupFilter with ListingGroupFilterDimension set to Webpage.

We are doing this to let you know that this combination is not valid and won’t serve ads utilizing landing page content as expected.

What happens next?

For those developers who have campaigns in this incompatible state, starting April 15, 2024, we will automatically fix the compatibility by removing CampaignAssetSet resources linking a campaign to an AssetSet of type PAGE_FEED and removing AssetGroupListingGroupFilter resources with ListingGroupFilterDimension set to Webpage only if the Campaign.AssetAutomationSetting of type TEXT_ASSET_AUTOMATION is set to OPTED_OUT. This fix will match how the campaign is currently serving and no action is required if you would like the campaign to remain in this state. If you would like to utilize the landing page content, then you will need to opt-in to text asset automation.

What do I need to do?

First, confirm that you are using text asset automation and page feed assets or asset group listing filters with webpage dimensions in your Performance Max campaigns. Otherwise, you are not impacted by this change.

To check if your Performance Max campaign is in an incompatible state for page feeds, run the following GAQL queries:

1) Check for page feeds linked to campaigns that have text asset automation opted-out:

SELECT 
  asset_set.id, 
  asset_set.name, 
  asset_set.resource_name, 
  campaign.id, 
  campaign.name, 
  campaign.resource_name, 
  campaign.asset_automation_settings, 
  campaign_asset_set.status, 
  campaign.status 
FROM campaign_asset_set 
WHERE 
  campaign.advertising_channel_type = 'PERFORMANCE_MAX' 
  AND asset_set.type = 'PAGE_FEED' 
  AND asset_set.status = 'ENABLED' 
  AND campaign_asset_set.status = 'ENABLED' 
  AND campaign.status != 'REMOVED' 

You may be impacted if any of the CampaignAssetSet resources, linking a campaign to an AssetSet of type PAGE_FEED, have a campaign_asset_set.status that is set to ENABLED and an item in campaign.asset_automation_settings with TEXT_ASSET_AUTOMATION set to OPTED_OUT.

2) Check for asset group listing group filters with dimension webpage for campaigns that have text asset automation opted-out:

SELECT 
  asset_group.id, 
  asset_group.name, 
  asset_group.resource_name, 
  asset_group_listing_group_filter.case_value.webpage.conditions, 
  asset_group_listing_group_filter.id, 
  asset_group_listing_group_filter.resource_name, 
  asset_group_listing_group_filter.listing_source, 
  campaign.id, 
  campaign.name, 
  campaign.resource_name, 
  campaign.asset_automation_settings, 
  campaign.status 
FROM asset_group_listing_group_filter 
WHERE 
  asset_group.status != 'REMOVED' 
  AND campaign.advertising_channel_type = 'PERFORMANCE_MAX' 
  AND asset_group_listing_group_filter.listing_source = 'WEBPAGE' 
  AND campaign.status != 'REMOVED'

You may be impacted if any of the AssetGroupListingGroupFilter resources have a case_value that is a Webpage and an item in campaign.asset_automation_settings with TEXT_ASSET_AUTOMATION set to OPTED_OUT.

Manually fix the inconsistent state of the campaign

If you would like to manually configure the campaign yourself ahead of the automatic fix, we suggest one of the two options:

Options to manually fix the inconsistent state of a Performance Max campaign
OPTION A) Turn on text asset automation
Set Campaign.AssetAutomationSetting of type TEXT_ASSET_AUTOMATION to OPTED_IN
OPTION B) Remove associated page feed references
Remove BOTH:
The CampaignAssetSet linking the campaign to an AssetSet of type PAGE_FEED AND The AssetGroupListingGroupFilter with ListingGroupFilterDimension set to Webpage.

You will be able to make this change until April 15, 2024, after which option B will be automatically applied to fix the Performance Max campaign. Note that after the automatic fix is applied, the serving state of the campaign won't change from how it is serving today.

How do I get support?

For more details on how to correctly use automatically generated text assets with landing pages, see the automatically created assets section of the Performance Max guide. If you require further support, please reach out to our team via one of our support channels.