[go: up one dir, main page]

This blog post was updated on August 12, 2025 to add clarification on how to attach a negative keyword list to your campaign.

We're excited to announce the launch of three powerful new features for Performance Max campaigns within the Google Ads API. These updates will give you greater control and flexibility over your Performance Max campaigns, allowing for even more precise targeting and optimization. Available today across all supported versions of the Google Ads API, these features empower developers and advertisers to refine their Performance Max strategies.

Introducing new targeting capabilities

1. Device targeting

With the introduction of device targeting, you now have the ability to specify at the campaign level where your Performance Max ads will appear. This feature provides a new layer of control, enabling you to optimize your campaign reach across various platforms. To set up device targeting, add a DeviceInfo criterion to your Performance Max campaign.

2. Negative keyword lists

To help prevent your ads from showing for irrelevant searches, we're introducing support for negative keyword lists at the campaign level on Performance Max campaigns. This highly requested feature allows you to upload and apply lists of keywords that you want to exclude, ensuring your ads are displayed to the most relevant audience. You can attach a negative keyword list to your campaign by attaching a SharedSet with the type NEGATIVE_KEYWORDS using the CampaignSharedSetService. Refer to this page for an example on how to attach a negative keyword set to a campaign.

3. Age range exclusions

We're also adding the capability to exclude specific age ranges from your Performance Max campaigns. This allows for more granular audience targeting, which helps you comply with age-related advertising regulations and focus your spend on the most appropriate demographics for your products or services. To set up an age range exclusion, add an AgeRangeInfo as a negative criterion on your PMax campaign.

How to get started

These new features are available starting today on all supported versions of the Google Ads API. For detailed documentation on how to implement these new targeting options in your Performance Max campaigns, refer to our developer guides.

We're committed to continually enhancing the Google Ads API to provide you with the tools you need to succeed. We encourage you to explore these new features and incorporate them into your Performance Max strategies to achieve even better results.

What’s changed?

Today, we're excited to announce that the brand guidelines rollout is now complete for all new Performance Max campaigns created through the Google Ads UI, with API-created accounts soon to follow. As was first announced in December, this means that new PMax campaigns initiated in the UI will have brand guidelines enabled by default, offering advertisers greater control over their brand's representation.

With brand guidelines rolling out to more Performance Max campaigns, it is crucial to understand how this impacts campaigns you interact with via the API, and for you to update your code in advance to prepare for it.

What do API Users need to update now?

Previously, brand assets such as your business name and logo were associated with Asset Groups.

Currently, for any PMax campaign with brand guidelines enabled, these brand assets are now stored at the campaign level. This means if your application queries or modifies brand assets for PMax campaigns, you must adjust your code to look for these assets in CampaignAsset instead of AssetGroupAsset for these campaigns. Accounting for both asset locations in your application is vital to ensure your integrations continue to function as expected. To determine if brand guidelines are enabled for a PMax Campaign, check the Campaign.brand_guidelines_enabled field.

What do API Users need to plan for in the future?

Brand guidelines will be enabled by default when creating PMax Campaigns using the API beginning in v21. You can optionally disable brand guidelines by setting the Campaign.brand_guidelines_enabled field to false on-creation. The default behavior for brand guidelines on new Performance Max campaigns created via the API remain disabled for all supported versions through v20.

To manually turn on brand guidelines through the API, you have two options:

  1. Starting in v19, all API users can choose to manually enable brand guidelines when creating a new PMax campaign. To do so, you need to set the Campaign.brand_guidelines_enabled field to true during campaign creation. You can refer to the “Add Performance Max Campaign” code sample for an example of how to create a campaign with brand guidelines enabled.
  2. To manually enable brand guidelines for an existing campaign, use CampaignService.EnablePMaxBrandGuidelines. Set auto_populate_brand_assets to true to automatically populate the campaign with top-performing brand assets. Disabling brand guidelines for a campaign after its creation is not supported.

There is an in-progress automatic migration to enable brand guidelines for existing campaigns. As previously announced, this migration has already begun on a rolling basis by CID. Only campaigns that use the same logos and business name across all asset groups will be automatically migrated. We anticipate the migration to be completed for all applicable CIDs by October 30th. In the meantime, we encourage you to use the existing migration endpoint to manually update your campaigns to brand guidelines at your own pace.

This post was recently updated to reflect that API support for these settings will be included in v21.

We're providing an important update regarding new image optimization features rolling out in the Google Ads user interface, specifically impacting Performance Max campaigns.

What are these new UI features?

  • Landing Page Images: This setting allows Google AI to automatically source relevant images directly from your ad's landing page. The aim is to dynamically incorporate these visuals into your ads, potentially improving relevance and extending your reach across more placements.
  • Image Enhancements: With this feature, Google AI can automatically make improvements to your uploaded image assets. This can include smart cropping to create different versions of your images, helping to unlock more ad inventory and boost performance. Future enhancements may also include capabilities like uncropping or animating images.

You can find more information about these features in the Google Ads Help Center.

Default behavior:

Image enhancements will be enabled for all Performance Max users. For Landing Page Images, the setting will be enabled on PMax only if the account level Dynamic Image setting is active. Note that enabling the account-level Dynamic Image setting requires manual opt-in through the UI.

Key Information for API Users:

At this time these new UI features for Performance Max campaigns can only be managed with the Google Ads user interface. API control of these settings will become available in version 21.

  • These features will not be viewable through the Google Ads API.
  • At this time, you will not be able to opt-in or opt-out of these new settings (Landing Page Images and Image Enhancements) using the Google Ads API. To change the status of these settings you must use the Google Ads UI.

API Integration Impact:

Your existing API integrations will continue to function for the features and settings currently supported by the API. However, these new additional Performance Max settings will need to be managed by your users directly in the Google Ads interface.

We encourage you to familiarize yourselves with the details provided in the Google Ads Help Center to understand the scope of these UI changes for Performance Max campaigns. This will enable you to effectively support your users and clarify what can and cannot be controlled via the API.

We are committed to keeping our developer community informed. Stay tuned to this blog for further updates on control of these image optimization settings in the Google Ads API.

Starting on May 1, 2025, we will begin to automatically enable brand guidelines for Performance Max campaigns that use the same brand assets (BUSINESS_NAME, LOGO, and LANDSCAPE_LOGO) across all asset groups.

Please note the rollout timelines:
  • For Google Ads UI users: The process will begin on May 1, 2025 for customer IDs that exclusively manage their campaigns using the UI.
  • For API users: This process will begin on June 1, 2025.
The overall process across all campaigns is expected to be complete by July 31, 2025.

Important Notes:
  • Only campaigns using consistent business names and logo assets across all asset groups will be automatically migrated. Campaigns with variations in these assets will not be migrated.
  • All eligible Performance Max campaigns under a customer ID will be migrated simultaneously.
  • After migration, each migrated campaign will have its own set of brand assets stored at the campaign level using CampaignAsset.
  • You can tell if a campaign has been migrated by checking its Campaign.brand_guidelines_enabled field.
Actions Required
If your application creates asset groups, update your code to check the campaign’s Campaign.brand_guidelines_enabled field. This will tell you whether to include brand assets in the new asset group.

If your application modifies brand assets, update your code to check the campaign’s Campaign.brand_guidelines_enabled field. This will tell you where to save the brand asset; either on a campaign using a CampaignAsset or on an asset group using an AssetGroupAsset.

To avoid extra steps later, we strongly recommend migrating all of your campaigns now using CampaignService.EnablePMaxBrandGuidelines. If you migrate your campaigns manually, each CampaignService.EnablePMaxBrandGuidelines request can only include 10 EnableOperations.

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

Starting on January 20, 2025, new Performance Max (PMax) campaigns created with the UI will have brand guidelines enabled and require business name and logo brand assets to be linked at the campaign level rather than the asset group level. Brand guidelines is a new feature that allows you to control how your brand is represented in your Performance Max campaign automated assets or formats.

What this means for API users

New PMax campaigns created in the UI with brand guidelines enabled will automatically link BUSINESS_NAME, LOGO, and LANDSCAPE_LOGO via the CampaignAsset resource rather than by using the AssetGroupAsset resource, which may impact integrations that attempt to report on or update these assets. You can check if brand guidelines are enabled for a PMax campaign by referencing the Campaign.brand_guidelines_enabled field.

As of v18 of the Google Ads API, it is not possible to create brand guidelines-enabled PMax campaigns via the API, which means new campaigns must link BUSINESS_NAME, LOGO, and LANDSCAPE_LOGO assets using the AssetGroupAsset resource. In a future release, you will be able to create and fully manage PMax campaigns with brand guidelines enabled.

It is important to note that the same asset requirements will continue to apply to all PMax campaigns regardless of whether or not brand guidelines are enabled. However, BUSINESS_NAME, LOGO, and LANDSCAPE_LOGO asset requirements will be evaluated at the campaign level for campaigns with brand guidelines enabled and the asset group level for campaigns without brand guidelines enabled. You can reference the relevant section of our Performance Max optimization and troubleshooting guide for more information, and as always, contact our team if you need support.

The detail_placement_view can be used to query metrics aggregated by ad group and URL or YouTube video in the Google Ads API. The detail_placement_view is not intended to be used for campaigns with an advertising_channel_type of PERFORMANCE_MAX, as this view is only intended to be used with campaigns containing ad groups, and Performance Max campaigns are constructed with asset groups rather than ad groups. However, this view is currently returning impression data for Performance Max campaigns. The impression metrics returned from the ​​detail_placement_view may not be accurate and should not be relied upon for campaigns with advertising_channel_type of PERFORMANCE_MAX.

In the next release of the Google Ads API, v18, we will be adding a new resource called performance_max_placement_view, which can be used to query placement impression data for Performance Max campaigns, and in a subsequent release, we will stop returning impression data from the ​​detail_placement_view for campaigns with advertising_channel_type of PERFORMANCE_MAX. Once performance_max_placement_view is released, use the data returned from that view for Performance Max campaigns rather than the data returned from the detail_placement_view.

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

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.

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!

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!

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!


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.

Today we are pleased to announce the release of a dedicated Performance Max developer guide. With this release, we’ve moved Performance Max content to its own tab in the main navigation of our developer documentation with a dedicated landing page and updated navigation to help you more easily find the information you need to build Performance Max integrations.

Other notable improvements include:

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

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.

Today, we are pleased to announce several guide enhancements to improve the experience of creating, managing and reporting on Performance Max campaigns with the Google Ads API.

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

What’s New

The recently announced search themes beta feature for Performance Max campaigns lets you provide Google AI with valuable inputs about your customers and business to further optimize Performance Max campaign serving and placement. Beginning in Google Ads API v15, you can create search themes for Performance Max campaigns with the API.

How It Works

  • Search themes beta lets you indicate queries that you know your customers are looking for. They are optional and are additive to what queries Performance Max would match by using your URLs, assets, and more.
  • You can add up to 25 search themes per asset group.
  • Search themes will respect brand exclusions in Performance Max and account-level negative keywords. You can configure brand exclusions through campaign criteria using the BRAND criterion type. Similarly, account-level negative keywords are configured at a customer level using CustomerNegativeCriterionService and the NegativeKeywordList criteria.
  • Results driven from search themes will bring your customers to the landing pages you’ve indicated with your Final URL expansion, page feeds, or URL settings. Final URL expansions can be enabled or disabled with url_expansion_opt_out.
  • Search themes will have the same prioritization as your phrase match and broad match keywords in your Search campaigns.
  • You’ll be able to see the search categories that your ads matched to, and associated conversion performance, in your search terms insights at both the campaign and account levels with the campaign_search_term_insight and customer_search_term_insight reports. You can also view search term insights for custom date ranges, download your data, and access it using the API.

Implementation Details

In the Google Ads API, a search theme is a type of AssetGroupSignal, which can be attached to Performance Max campaigns at the asset group level. You can add a search theme to an asset group by creating an AssetGroupSignal and populating the

AssetGroupSignal.search_theme with a SearchThemeInfo criterion containing a text string representing your search theme, for example, "activities for children". In addition, you must populate the AssetGroupSignal.asset_group with the resource name of an existing asset group you are targeting.

Here is a Java example for creating a search theme asset group signal:

// Creates a search theme asset group signal.
AssetGroupSignal assetGroupSignal =
    AssetGroupSignal.newBuilder()
        .setAssetGroup(assetGroupResourceName)
        .setSearchTheme(
            SearchThemeInfo.newBuilder().setText("activities for children").build())
        .build();

You can add multiple asset group signals to a single asset group by creating multiple AssetGroupSignal objects targeting the same asset group. However, each AssetGroupSignal object can only represent a single search theme or audience signal.

Reporting

You can use the asset_group_signal resource to get the search themes present in a Google Ads account. While performance metrics are currently available at the asset group level, they are not available at the asset group signal level.

Here is a GAQL example to retrieve search theme texts for a specific asset group:

SELECT
  asset_group_signal.search_theme.text
FROM asset_group_signal
WHERE
  asset_group.id = <Asset Group ID>

Policy Exemptions

In v15 of the Google Ads API, we also introduced two new fields to provide additional information about search_theme approval: asset_group_signal.approval_status and asset_group_signal.disapproval_reasons. Search theme text must be approved by Google. The asset_group_signal.approval_status field provides information about the approval status, and if the search theme text is not approved, the asset_group_signal.disapproval_reasons field lists the reasons why.

Here is a GAQL example to retrieve search theme texts with policy review information for a specific asset group:

SELECT
  asset_group_signal.search_theme.text, 
  asset_group_signal.approval_status, 
  asset_group_signal.disapproval_reasons 
FROM asset_group_signal 
WHERE 
  asset_group.id = <Asset Group ID>

If your search theme text is not approved, and you believe the usage adheres to Google’s policies, you can submit a policy exemption request for the search theme that triggered the policy violation.

For example, if your search theme contains medical terms, and you believe the usage of the terms adheres to Google Ads policies and warrants further review, you can use the AssetGroupSignalOperation.exempt_policy_violation_keys[] field to request a policy exemption.

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

If you are new to Performance Max Campaigns, you can learn more with our getting started guide. Check out our asset groups and asset group signals guides to learn more.

What’s New

Starting on October 4, 2023, AssetGroupListingGroupFilters can be created asynchronously using batch processing with the Google Ads API. If you use BatchJobService to create AssetGroupListingGroupFilter entities and other Performance Max resources in a single request, errors in the listing group tree creation will not block the creation of the remaining entities. However, the operations to create a listing group tree will still be atomic. This means that if any operation related to the creation of a listing group tree returns an error, all operations related to that listing group tree will also fail, save a few caveats, which are detailed in this Jobs & listing group filters guide.

This update does not change the behavior of any existing batch jobs that do not include operations that create listing group filters.

Previous Behavior

Prior to October 4, 2023, AssetGroupListingGroupFilters could only be created synchronously using the GoogleAdsService.Mutate or AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters method. Requests using the GoogleAdsService.Mutate method are always atomic when they contain AssetGroupListingGroupFilterOperation operations. This is because partial_failure is not supported for these operations, which means that an error in listing group tree creation would block all other operations in the request. If you tried creating AssetGroupListingGroupFilter entities prior to October 4, 2023 using batch processing, you would receive a MutateError.OPERATION_DOES_NOT_SUPPORT_PARTIAL_FAILURE error.

Change Rationale

Batch processing is a powerful feature in the Google Ads API that allows you to dispatch a set of operations, which may be interdependent, to multiple services without synchronously waiting for the operations to complete. We have made batch processing available for AssetGroupListingGroupFilters in response to your feedback to provide another option for creating listing group trees asynchronously and without blocking other operations in the same request.

Implementation Details

In order to add an AssetGroupListingGroupFilter using a batch job:

  1. Create a MutateOperation containing an AssetGroupListingGroupFilterOperation. This is no different than creating a MutateOperation using the GoogleAdsService.Mutate service.
  2. Add the MutateOperation to the batch job as you would with any other type of operation.

The example below demonstrates the process of adding a single AssetGroupListingGroupFilter to an existing batch job. See the Creating Shopping Listing Groups guide to learn more about creating product partition trees using AssetGroupListingGroupFilter entities.

// Constructs the AssetGroupListingGroupFilter.
AssetGroupListingGroupFilter listingGroupFilter =
     AssetGroupListingGroupFilter.newBuilder()
         .setAssetGroup(assetGroupResourceName)
         .setType(ListingGroupFilterType.UNIT_INCLUDED)
         .setVertical(ListingGroupFilterVertical.SHOPPING)
         .build();

// Constructs the operation to create the AssetGroupListingGroupFilter.
MutateOperation operation = MutateOperation.newBuilder()
     .setAssetGroupListingGroupFilterOperation(
           AssetGroupListingGroupFilterOperation
      .newBuilder()
      .setCreate(listingGroupFilter))
      .build();

// Sends a request to add the operation to the batch job.
AddBatchJobOperationsResponse response =
    batchJobServiceClient.addBatchJobOperations(
        AddBatchJobOperationsRequest.newBuilder()
            .setResourceName(batchJobResourceName)
            .addMutateOperations(operation)
            .build());

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.

Today, we’re announcing the publishing of a new pre-written Script for reporting on Performance Max campaign performance in Google Ads scripts. This script will report on your conversions and other performance related metrics for your campaigns. The only thing needed to get it running is to copy the source code into your account and schedule the script to run daily.

How can I get started?
Find the script here.

If you have any questions or need additional help, contact us via the forum.

Today, we’re proud to share Kueez’s success story of using the Google Ads API with Performance Max to grow ROAS for partners by 20%!

Here are the highlights:
  • Kueez leverages Google Ads to drive platform ad views from high-quality and engaged traffic across their portfolio of publisher partners, and owned and operated websites.
  • Using the power of Google Ads API, Kueez implemented Performance Max campaigns to broaden their reach, and attract additional audiences that exhibit similar or better conversion rates than they had before using Performance Max.
  • Within 45 days of activating Performance Max campaigns, Kueez achieved an increase of over 50% engaged visits at a similar CPA, and drove +20% ROAS.
Where can I learn more?
We're constantly looking to improve the Google Ads API developer experience. If you have feedback on using Performance Max in the Google Ads API, submit it through this form.

If you have any questions or need additional help, contact us via the forum.