[go: up one dir, main page]

Today, we’re announcing you can start adding Google Mobile Ads mediation adapters to your iOS projects using Swift Package Manager (SPM).

Swift Package Manager is Apple's first-party tool for managing project dependencies. By supporting SPM, we're making it easier for you to integrate and manage our mediation adapters, helping you streamline your development workflow and reduce setup complexity.

Which adapters are supported?

We're planning to roll out SPM support for all open source and versioned adapters. Each adapter will be in its own dedicated GitHub repository.

Adapters currently available:

Ad source Minimum version supported in SPM
AppLovin 13.3.1.0
DT Exchange 8.3.8.0
IronSource 8.10.0.0
Liftoff Monetize 7.5.3.0
i-mobile 2.3.4.2
inMobi 10.8.6.0
Meta 6.20.1.0
Mintegral 7.7.9.0
Pangle 7.4.1.1.0
Unity 4.16.0.0

Add a Swift Package to your project

To add a package dependency to your Xcode project, navigate to File > Add Package Dependencies… and search for the package using each adapter's corresponding GitHub URL:

Adapters coming soon

We're continuing to roll out Swift Package Manager support for more mediation adapters. Check the list of currently supported adapters by visiting our GitHub page.

If you have any questions or want to discuss this post, please reach out to us on our “Google Advertising and Measurement Community” Discord server.

Starting on November 17 2025, we are changing the account-default behavior of automatically created customer conversion goals.

Current behavior

Currently, when you create a new conversion action using the Google Ads API, customer conversion goals are created automatically, as needed. These newly created goals are automatically set as account-default, meaning this goal will automatically be biddable in any campaign that is optimizing to account-default goals. While convenient, this sometimes leads to bidding mechanisms targeting unnecessary goals, potentially resulting in suboptimal campaign performance. This change aims to optimize bidding performance by reducing the number of unnecessary goals included in the account-default set for a given account.

What’s changing?

With this change, a new automatically created goal will only be set as account-default if all other goals within the same category are also account-default goals. For example, if an account has an existing, non-account-default customer conversion goal associated with a conversion action with the category PURCHASE and a conversion origin of WEBSITE, then any new conversion actions with the category PURCHASE will result in goals that are also not account-default.

This approach helps us better infer user intent, and it ensures that the account-default set remains lean and effective.

Technical recommendation

After this change is introduced, newly created account goals will not be considered account-default automatically. If you want to set an account goal to account-default manually, set the CustomerConversionGoal.biddable field to true.

This update will enhance the efficiency and effectiveness of goal management within Google Ads. We encourage you to review your applications and client workflows in light of this upcoming change.

For any questions or concerns, feel free to refer to our support page. You can also discuss this post in our “Google Advertising and Measurement Community” Discord server.

Today in the Google Ads UI, you will see updated enhanced conversions for leads diagnostics that feature a number of improvements that offer better visibility into the state of your conversion import implementation. The goal of these changes is to help you identify common problems and address them quickly.

Here are some of the changes you’ll see:

  1. New "Importing limited user-provided data" Alert: A new, high-priority alert has been introduced to detect a common implementation error, where users fail to import incremental conversions that contain user-provided data (UPD) but not a GCLID. We recommend that you import all of your conversion data that has user-provided data, regardless of whether or not it has a GCLID. Doing so helps to find cross-device or Youtube EVC conversion touchpoints, driving performance uplift. You may not see these benefits if you omit UPD-only conversions.
  2. Improved Status for "Tagless" Implementations: A new "Good" status has been added to validate setups where advertisers import conversions with both a GCLID and user-provided data, but do not have the Google tag implemented on their website. Previously, this valid configuration could trigger confusing "Urgent" alerts. If you have not implemented the Google tag on your website, it’s important to include GCLIDs in your conversion imports whenever possible in order to get performance benefits.
  3. Reprioritized Alert Logic: Alert priorities have been updated to be more intelligent. For users sending GCLIDs with their offline data, import-related issues will be prioritized as more critical, while tag-related issues will be downgraded in severity.
  4. Complete Alert Visibility: The diagnostics interface has been updated to show all alerts at once, regardless of their severity tier. This allows developers to see a complete picture of all required and recommended actions upfront, rather than fixing one issue only to uncover another.
  5. Deprecation of CLICK_NOT_FOUND: The informational CLICK_NOT_FOUND error has been removed from the Diagnostics UI and API, and, correspondingly, the debug_mode parameter in the UploadClickConversions method that triggers it in API responses has also been removed. See this related blog post for reference.

Reach out to the Google Ads API support channel if you have any questions or need support. If you want to discuss this change with us, join our “Google Advertising and Measurement Community” Discord server.

We’re excited to announce a refresh of the Google Ads scripts documentation! Like the Google Ads API documentation changes announced in a previous blog post, we have focused on making the Google Ads scripts documentation more intuitive and useful. Here’s a sneak peek at what’s new:

1. Logically grouped guides

We’ve reorganized our guides into clear categories. Whether you're a beginner starting out with core concepts or an expert exploring all the different campaign types supported by scripts, you'll find what you need faster. These changes will help you write scripts more efficiently by smoothly navigating between related topics, building on previous guides and highlighting unique scripts features.

2. Dedicated reference tab

You now have a dedicated reference tab to quickly explore all the scripts objects available to you. This creates a direct path to the resources you need and aligns our documentation more closely with the Google Ads API documentation, providing a more seamless experience across our products.

3. Combined solutions and examples

We've merged the solutions and examples tabs into a single, comprehensive resource. Now you can find all our sample code in one place. This is a great launchpad for discovering what’s possible with scripts and for modifying examples to create your own powerful solutions.

We have more exciting updates on the way, and we'll be incorporating more of the fantastic feedback from our Google Ads scripts community. If you have any questions, suggestions, or want to discuss this post, please reach out to us on our “Google Advertising and Measurement Community” Discord server, where we have a dedicated #ads-scripts channel.

We are excited to announce the release of the google-ads-bom for the Google Ads API client library for Java, now available with v40.0.0 of the google-ads client library. This new Bill of Materials (BOM) is designed to significantly simplify your dependency management and enhance the stability of your Google Ads API integrations.

What is a BOM?

A BOM is a build-time tool that provides a centralized, authoritative "rulebook" for managing dependency versions. By importing our BOM, you ensure your project uses the exact set of compatible dependency versions that the Google Ads client was built and tested against. This significantly helps avoid dependency conflicts with libraries like Guava and GAX, which are also used by many other frameworks.

How to incorporate the google-ads-bom into your code

To leverage the benefits of the google-ads-bom, import it into the section of your build file (e.g., pom.xml for Maven or build.gradle for Gradle). You should then omit the version specification from the google-ads dependency in the section.

How to include the BOM in your Maven project:

<!-- Import the Bill of Materials (BOM) -->
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.google.api-ads</groupId>
            <artifactId>google-ads-bom</artifactId>
            <version>40.0.0</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<!-- Add the google-ads dependency without a version -->
<dependencies>
    <dependency>
        <groupId>com.google.api-ads</groupId>
        <artifactId>google-ads</artifactId>
    </dependency>
</dependencies>

How to include the BOM in your Gradle project:

// Import the Bill of Materials (BOM).
implementation platform('com.google.api-ads:google-ads-bom:40.0.0')

// Add the google-ads dependency, without a version. The version is managed by the BOM.
implementation 'com.google.api-ads:google-ads'

Declaring dependencies covered by the google-ads-bom

The BOM automatically manages the versions for several common libraries–such as Guava, Protobuf, GAX, and gRPC–to make them compatible. To avoid potential dependency conflicts, you should not specify a version when declaring these dependencies. For example, if you are using Guava, you would declare it without a version:

In Maven:

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
</dependency>

Or in Gradle:

implementation 'com.google.guava:guava' // NO VERSION SPECIFIED.

To retrieve a list of constrained dependencies that can be imported using the BOM without a declared version, use the listAllDependencyConstraints gradle task.

To learn more about this new google-ads-bom offering and how to configure your Java client, check out our getting started guide.

Today we’re announcing the general availability of Structured Data Files v9.1. All users can now use SDF v9.1 to upload and download SDFs in the Display & Video 360 UI.

SDF v9.1 makes a number of small changes to files supporting Insertion Order, Line Item, and Ad Group resources:

  • Added the ability to configure whether certain targeting is set at the Line Item or Ad Group resource-level for Demand Gen Line Items.
  • Added a Combined Audience Targeting column to Ad Group files.
  • Made the Io Objective column required in Insertion Order files.
  • Updated the options available in the Bid Strategy Unit and TrueView Video Ad Formats columns in Line Item files.
  • Removed the Bid Multipliers column from Line Item files and the Measure DAR and Measure DAR Channel columns from Insertion Order files.

Full details on the changes between v9 and v9.1 can be found in the Structured Data Files release notes.

SDF v7 is deprecated and scheduled for sunset on November 4, 2025. SDF v7.1, v8, and v8.1 are deprecated and scheduled for sunset on March 3, 2026. If you are still using a deprecated SDF version, follow the instructions in our v9 migration guide to update your integration to use v9 or greater.

If you run into issues or need help with this new version, please follow the instructions in our support guide, or contact us using our contact form.

We’ve heard your requests for faster API access to Ads features available in the Google Ads UI. We will accelerate our launch timeline to have Google Ads API monthly releases, except for during the end of year holiday period.

We will increase the number of major releases from 3 per year to 4 per year. The remaining releases will be minor releases, only adding incremental new non-breaking features. We have also adjusted the sunset schedules to avoid extra version migrations that will burden the API developers. Each major release will now be available for one year after the release.

Release schedule for 2026

With the new timeline, the tentative release schedule for 2026 will be as shown in the following table. Please keep in mind that these dates are only estimates and may be adjusted going forward. Additionally, releases may be added, removed, or switched between major and minor versions.

Version Planned Release Type* Projected launch* Projected sunset*
V23 Major January 2026 February 2027
V23_1 Minor February 2026 February 2027
V23_2 Minor March 25, 2026 February 2027
V24 Major April 2026 May 2027
V24_1 Minor May 2026 May 2027
V24_2 Minor June 2026 May 2027
V25 Major July 2026 August 2027
V25_1 Minor August 2026 August 2027
V25_2 Minor September 2026 August 2027
V26 Major October 2026 November 2027
V26_1 ** Minor November 2026 November 2027

* Estimated and subject to change.

** This is designated as an optional release due to overlap with the holiday season.

Sunset schedule for 2026

The following is the tentative sunset schedule for 2026. As with releases, these dates are only estimates and may be adjusted going forward.

Version Projected sunset*
V19 February 2026
V20 June 2026
V21 August 2026
V22 October 2026

* Estimated and subject to change.

How to get help

As always, you can find the details of individual releases at the following pages.

If you have any questions or want to discuss this post, please reach out to us on our “Google Advertising and Measurement Community” Discord server.

What’s changing?

As announced last year, Google will stop serving political advertising in the European Union ahead of new regulation in October 2025. Today, we’re releasing updates to the Campaign Manager 360 API v4 to support this change. We’re also announcing the release of v5.

For details on the changes related to euPoliticalAdsDeclaration, continue reading this post. For details on all other changes, and the v5 release, see the release notes.

v4 Deprecation and sunset reminder

In accordance with our deprecation schedule, the v5 release marks the beginning of the deprecation period for v4, which will sunset on Feb 26, 2026. After this date, any requests made against v4 will begin returning errors.

See the migration guide for details. In most cases, you will just need to upgrade to the latest version of your preferred client library. We recommend that you review the release notes to learn about important changes you might need to be aware of.

If you have questions about this or anything else Campaign Manager 360 API related, feel free to reach out to us on our support forum.

Background

Campaign Manager 360 will require self-declaration for EU political ads. You must declare whether or not a campaign contains EU political ads when creating it.

You can also make this declaration for the advertiser as a whole. This declaration will state whether any campaigns under the advertiser will contain EU political ads. We recommend that you make the declaration at the advertiser level using the Campaign Manager 360 API or under the advertiser Properties settings in the Campaign Manager 360 UI.

Campaign Manager 360 API v4 and v5 will support the ability to declare whether a campaign contains EU political ads.

Campaign Manager 360 API

Campaign Manager 360 will start requiring declarations for new campaigns and for existing campaigns when adding a new placement, ad, or creative.

Campaign Manager 360 API v5 will require the field euPoliticalAdsDeclaration for new campaign resources and for existing campaign resources when adding a new placement, ad, or creative.

The field euPoliticalAdsDeclaration will be added to the following API objects in v4 and v5 to surface self-declaration at different resource levels:

  • Campaign objects for getting and setting the declaration at the campaign level.
  • Advertiser for getting and setting the declaration at the advertiser level.

The following table lists the values that can be set for this field on Advertiser resources.

Value
ADVERTISER_PLANS_TO_SERVE_EU_POLITICAL_ADS
ADVERTISER_DOES_NOT_PLAN_TO_SERVE_EU_POLITICAL_ADS

The following table lists the values that can be set for this field on Campaign resources.

Value
CONTAINS_EU_POLITICAL_ADS
DOES_NOT_CONTAIN_EU_POLITICAL_ADS

If you set the euPoliticalAdsDeclaration field to ADVERTISER_DOES_NOT_PLAN_TO_SERVE_EU_POLITICAL_ADS for the parent advertiser, the field will be backfilled for existing campaigns to match and new campaigns will use that value if another is not set at creation.

What do I need to do?

We recommend that you make the declaration at the advertiser level. You can do this either by setting the euPoliticalAdsDeclaration field using the API when calling the advertisers.insert, advertisers.patch or advertisers.update methods, or in the Campaign Manager 360 UI under the advertiser Properties setting.

If you can’t declare at the advertiser level or have declared that EU political ads may be served under your advertiser, you will need to provide declarations at the campaign level by updating your use of the following API methods:

How will this affect my campaign serving?

Refer to the Campaign Manager 360 Help center article to learn more about how this declaration affects your ad serving.

Learn More

As with every new version of the Campaign Manager 360 API, we encourage you to carefully review all changes in the release notes. For those of you looking to get going right away, updated client libraries are now available. If you're just starting out, the Get Started guide is a great reference to help you get up and running quickly.

Give it a try and let us know if you have any questions!