tag:blogger.com,1999:blog-78156144858085793322024-03-15T18:11:19.941-07:00Google Ads Developer BlogThe official blog for information about the Google Ads, Google Ad Manager, Google Mobile Ads SDKs for AdMob and IMA SDKs, and other Google Advertising Platform developer tools.Stan Grinberghttp://www.blogger.com/profile/13815957415507388389noreply@blogger.comBlogger1307125tag:blogger.com,1999:blog-7815614485808579332.post-69768491600300463912024-03-15T08:47:00.000-07:002024-03-15T08:47:34.577-07:00Announcing Android Google Mobile Ads SDK Version 23.0.0<p>
Version 23.0.0 of the Android Google Mobile Ads SDK is now available. We recommend upgrading as soon as possible to get our latest features and performance improvements.
</p>
<h3>The minimum Android API level is 21</h3>
<p>
Starting in version 23.0.0, the Google Mobile Ads SDK requires all apps to be on a minimum Android API level 21 to run. To adjust the API level, change the value of <code>minSdk</code> in your app-level <code>build.gradle</code> file to 21 or higher.
</p>
<h3>Ad Manager builder methods can now be chained</h3>
<p>
In version 23.0.0, <a href="https://developers.google.com/android/reference/com/google/android/gms/ads/admanager/AdManagerAdRequest.Builder">AdManagerAdRequest.Builder</a> methods inherited from its parent can be chained together to build an <a href="https://developers.google.com/android/reference/com/google/android/gms/ads/admanager/AdManagerAdRequest">AdManagerAdRequest</a> using a single call:
</p>
<pre class="prettyprint">var newRequest = AdManagerAdRequest.Builder()
.addCustomTargeting("age", "25") // AdManagerAdRequest.Builder method.
.setContentUrl("https://www.example.com") // Method inherited from parent.
.build() // Builds an AdManagerAdRequest.</pre>
<p>
A side effect of this change is <code>AdManagerAdRequest.Builder</code> no longer inherits from <a href="https://developers.google.com/android/reference/com/google/android/gms/ads/AdRequest.Builder">AdRequest.Builder</a>.
</p>
<h3>SDK deprecation and sunset timelines activated </h3>
<p>
With this Android major version 23 launch and the <a href="https://ads-developers.googleblog.com/2024/02/announcing-ios-google-mobile-ads-sdk.html">iOS major version 11 launch </a> last month, we are announcing new deprecation and sunset dates for older major releases. Specifically:
</p><ul>
<li>Android Google Mobile Ads SDK versions 21.x.x are officially deprecated, and will sunset in Q2 2025.
<li><strong>Android versions 20.x.x and iOS versions 8.x.x will <a href="https://developers.google.com/admob/android/deprecation#differences">sunset</a> on June 30, 2024</strong>. <ul>
<li>While there are currently no plans to disable ad serving on Android versions 20.x.x and iOS versions 8.x.x, we strongly recommend updating to a supported SDK version to avoid being impacted in the future.</li> </ul>
</li> </ul>
<p>
For the full list of changes in v23.0.0, check the <a href="https://developers.google.com/admob/android/rel-notes">release notes</a>. Check our <a href="https://developers.google.com/admob/android/migration">migration guide</a> to ensure your mobile apps are ready to upgrade. As always, if you have any questions or need additional help, contact us via the <a href="https://groups.google.com/group/google-admob-ads-sdk">developer forum</a>.
</p>
<p><span class="byline-author"><img width="40" height="40" src="https://lh3.googleusercontent.com/a/ACg8ocL5K1gwgo5Yng334LFkt_SM4fMqjvEyCXTG-cYDduruqA=s212-p" style="vertical-align:middle; border:none;"> - Jill Song, Mobile Ads Developer Relations</span></p>Google Ads Developer Advisorhttp://www.blogger.com/profile/16700526826531306391noreply@blogger.comtag:blogger.com,1999:blog-7815614485808579332.post-63418796123639405282024-03-14T08:25:00.000-07:002024-03-14T08:25:05.737-07:00Removing support for .NET 5.0 in the Google Ads API client library for .NET
<p>
Starting with version 19.0.0, the Google Ads API client library for .NET requires .NET version 6.0 or higher. Support for <a href="https://dotnet.microsoft.com/en-us/learn/dotnet/what-is-dotnet-framework">.NET Framework</a> remains unchanged and the minimum required version remains 4.7.2.
</p>
<p>
Version 18.1.0 of the Google Ads API client library for .NET, which adds support for the <a href="https://developers.google.com/google-ads/api/docs/release-notes">Google Ads API v16</a>, will be the <em>last version</em> that supports .NET version 5.0. We will still fix security issues for this client library version until the Google Ads API v16 is sunset <a href="https://developers.google.com/google-ads/api/docs/sunset-dates">in January 2025</a>, but no new features will be added.
</p>
<p>
.NET version 5.0 reached its end of life in <a href="https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core">May 2022</a>. Microsoft no longer provides security fixes for this version, so we strongly recommend migrating to newer versions as soon as possible.
</p>
<p>
The Google Ads API client library for .NET already supports newer LTS versions like .NET 6.0 and 8.0, and we plan to support forthcoming LTS versions as well.
</p>
<p>
Here are some useful resources to help with the .NET upgrade:
</p><ul>
<li><a href="https://dotnet.microsoft.com/en-us/platform/support/policy">.NET support policy</a>
<li><a href="https://github.com/dotnet/upgrade-assistant">.NET upgrade assistant</a></li></ul>
<span class='byline-author'><img width="40" height="40" src="https://lh3.googleusercontent.com/a/AAcHTteMf_IXDYsJGIPAdLCefNLvUvK73hQtgnAZCJciyzpbfg=s83-c-mo" style="vertical-align:middle; border:none;"> - Mattia Tommasone, Google Ads API Team</span>Google Ads Developer Advisorhttp://www.blogger.com/profile/16700526826531306391noreply@blogger.comtag:blogger.com,1999:blog-7815614485808579332.post-55644157516175557222024-03-05T10:29:00.000-08:002024-03-05T10:29:05.020-08:00Deprecation of Full Path and Path Attribution reports in Bid Manager API
<p>
Starting <strong>May 1, 2024</strong>, requests to retrieve, create, or run Full Path and Path Attribution reports through the <a href="https://developers.google.com/bid-manager/guides/getting-started-api">Bid Manager API</a> will return an error. We deprecated both report types in February 2024. We announced this deprecation <a href="https://support.google.com/campaignmanager/answer/14190111">last November</a>.
</p>
<p>
After deprecation, running a query using the <code><a href="https://developers.google.com/bid-manager/reference/rest/v2/Parameters#ReportType">ReportType</a></code> <code>FULL_PATH</code> or <code>PATH_ATTRIBUTION</code> generates an empty report. Existing <code><a href="https://developers.google.com/bid-manager/reference/rest/v2/queries#Query">Query</a></code> and <code><a href="https://developers.google.com/bid-manager/reference/rest/v2/queries.reports#Report">Report</a></code> resources of these types are still retrievable, and report files generated previously will still be available.
<p>
Starting on May 1, 2024, <code><a href="https://developers.google.com/bid-manager/reference/rest/v2/Parameters#ReportType">ReportType</a></code> values <code>FULL_PATH</code> or <code>PATH_ATTRIBUTION</code> and the <code><a href="https://developers.google.com/bid-manager/reference/rest/v2/Parameters#Options.FIELDS.path_query_options">pathQueryOptions</a></code> field will sunset. As a result:
<ul>
<li><code><a href="https://developers.google.com/bid-manager/reference/rest/v2/queries/create">queries.create</a></code> requests using these values or fields will return an <code>INVALID_ARGUMENT</code> error,
<li><code><a href="https://developers.google.com/bid-manager/reference/rest/v2/queries/get">queries.get</a></code>, <code><a href="https://developers.google.com/bid-manager/reference/rest/v2/queries/delete">queries.delete</a></code>, and <code><a href="https://developers.google.com/bid-manager/reference/rest/v2/queries.reports/get">queries.reports.get</a></code> requests retrieving resources using these types will return a <code>NOT_FOUND</code> error,
<li>and <code><a href="https://developers.google.com/bid-manager/reference/rest/v2/queries/list">queries.list</a></code> and <code><a href="https://developers.google.com/bid-manager/reference/rest/v2/queries.reports/list">queries.reports.list</a></code> responses will not include resources using these types.</li></ul>
<p>
We’ve added these details to our <a href="https://developers.google.com/bid-manager/change-log#2024-05-01">change log</a>. To avoid an interruption of service, we recommend that you stop creating, retrieving, or running any reports using these values before the applicable sunset date.
</p>
<p>
If you have questions regarding these changes, please contact us using our <a href="https://support.google.com/displayvideo/contact/nghelp_contact_form">support contact form</a>.
</p>
<span class="byline-author"><img height="40" src="https://lh7-us.googleusercontent.com/hO-Azjoudtcsd8tuH9II5w9-foNYaUm5GxpVcKXiVt8dBx9vKmyGE0HvnhTLKDpzlFtDCZlTs9J4jVODoI3bsaP79Ei6DWj3ipds6n4tK6TIylaHqP-qa9frGM4FeUa2RA4vQzLaGaTyjZG_vsBvb7g4rHBsK80pv72YUznZdyHmpP9ttSOimkv-0XS-ADQ" style="border: none; vertical-align: middle;" width="40" /> - Trevor Mulchay, Bid Manager API Team</span>Google Ads Developer Advisorhttp://www.blogger.com/profile/16700526826531306391noreply@blogger.comtag:blogger.com,1999:blog-7815614485808579332.post-5016682521236811092024-03-04T06:55:00.000-08:002024-03-04T06:55:46.029-08:00Introducing "Solutions": A New Way to Automate Management of your Google Ads Account
<p>
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.
</p>
<p>
Solutions is available for free in Google Ads under <strong>Tools</strong> and includes a number of features that make it easy to customize your reports, including the ability to:
</p><ul>
<li>Filter your data by campaign, ad group, keyword, or other dimensions
<li>Set flexible budgets
<li>Manage negative keyword lists throughout your account
<li>Sort your data by any metric
<li>Export your reports to a variety of formats, including CSV and XLSX</li></ul>
<p>
To learn more about Solutions, visit the the <a href="https://support.google.com/google-ads/answer/14200428?hl=en">Google Ads Help Center</a>.
</p>
<p>
<strong>Benefits of Using Solutions</strong>
</p>
<p>
Solutions offers a number of benefits, including:
</p><ul>
<li><strong>It's easy to use.</strong> Solutions is a simple and straightforward script that can be used by anyone, regardless of their technical expertise.
<li><strong>It's customizable.</strong> Solutions can be customized to meet your specific automation needs.
<li><strong>It's efficient.</strong> Solutions can generate reports quickly and easily, saving you time and effort.
<li><strong>It's accurate.</strong> Solutions uses the <a href="https://developers.google.com/google-ads/scripts/docs/features/reports">Google Ads API</a> to pull data directly from your Google Ads account, ensuring that your reports are accurate and up-to-date.</li></ul>
<p>
<strong>Developers Site Solution Library</strong>
</p>
<p>
In order to try to provide the best possible experience and to avoid duplication of efforts, we will also be sunsetting our <a href="https://developers.google.com/google-ads/scripts/docs/solutions/account-summary">manual solutions library</a> in the coming months.
</p>
<p>
<strong>Get Started with Solutions Today!</strong>
</p>
<p>
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.
</p>
<span class='byline-author'><img height="40" width="40" src="https://lh7-us.googleusercontent.com/lZj4jeZp49SOLQXFgf5HTGHFXLmMVIB4H_mM4gXfiJgv0PCP3ZQBqaHrfax51I__VLZek48-i1wVB7-UlGRa53DFh_wo98AfzalR7liQpOjNFksdt39OGMZ5HYOh1bbKME0JH9ejZk7dPHwpbriPdrsM81zYx-nEAvqWx_XSTywC0ddZubu1RGMT4TOW8Tb9f-_QvA1BPtegfQo9f751OYpSKpHPv-TsIepvuA" style="vertical-align: middle; border:none;"/> - David Stevens, Google Ads API Product Manager</span>Google Ads Developer Advisorhttp://www.blogger.com/profile/16700526826531306391noreply@blogger.comtag:blogger.com,1999:blog-7815614485808579332.post-50306497190788666702024-02-29T11:52:00.000-08:002024-03-11T10:00:44.109-07:00Google Ads Ad Groups Start Pausing March 11 due to Low Activity <p>
Starting <strong>March 11, 2024</strong> we are rolling out a permanent change that automatically pauses search campaign ad groups that were created at least 13 months ago and have not had impressions in the past 13 months. The rollout is expected to be complete for all production Google Ads accounts by <strong>April 30, 2024</strong>. This is being done to improve Google Ads experience for advertisers.
</p>
<p>
Advertisers who are affected by this change will be able to unpause ad groups if they still need them. However, we recommend that advertisers review their ad groups and only unpause the ones you expect to get impressions in the coming weeks. Unpaused ad groups will be automatically paused again if they don’t receive any impressions over the next 3 months.
</p>
<p>
<strong>What do I need to change?</strong>
</p>
<p>
No code changes are necessary, but <a href="https://developers.google.com/google-ads/api/docs/start">Google Ads API</a> developers can make changes to improve the transparency to their advertisers as to why the <code><a href="https://developers.google.com/google-ads/api/fields/latest/ad_group#ad_group.status">ad_group.status</a></code> is set to <code>PAUSED</code>.<code> </code>If you keep local copies of Google Ads information in your database, you can keep them in sync by querying change history.
<p>
You can query the <a href="https://developers.google.com/google-ads/api/docs/change-event">change event</a> to see if the ad group status has changed with the following query for all API versions. If the <code>change_event.changed_fields</code> contains <code>status</code>, then this is an ad group that Google paused. Make sure to replace <code>INSERT_YYYY-MMM-DD</code> with your own date range.
</p>
<pre class="prettyprint">SELECT ad_group.status, ad_group.resource_name, ad_group.name,
ad_group.id, change_event.change_date_time,
change_event.new_resource, change_event.old_resource,
change_event.changed_fields, change_event.change_resource_type,
change_event.user_email, change_event.ad_group
FROM change_event
WHERE change_event.user_email = 'Low activity system bulk change'
AND change_event.change_resource_type = 'AD_GROUP'
AND ad_group.status = 'PAUSED'
AND change_event.change_date_time >= 'INSERT_YYYY-MMM-DD'
AND change_event.change_date_time <= 'INSERT_YYYY-MMM-DD'
ORDER BY change_event.change_date_time DESC LIMIT 50</pre>
<p>
An example of a change event where the ad group has been paused by Google would look similar to:
</p>
<pre class="prettyprint">{
"adGroup": {
"resourceName": "customers/1234567890/adGroups/5432154321",
"status": "PAUSED",
"id": "5432154321",
"name": "Your ad group name"
},
"changeEvent": {
"resourceName": "customers/1234567890/changeEvents/1708648783892610~5~0",
"changeDateTime": "2024-02-22 16:39:43.89261",
"changeResourceType": "AD_GROUP",
"userEmail": "Low activity system bulk change",
"oldResource": {
"adGroup": {
"status": "ENABLED"
}
},
"newResource": {
"adGroup": {
"status": "PAUSED"
}
},
"changedFields": "status",
"adGroup": "customers/1234567890/adGroups/5432154321"
}
}
</pre>
<p>
Starting with v16, the API returns the reason as to why the ad group was paused with new fields. You can adjust the change history query to include these fields.
</p>
<table style="border-collapse: collapse; border: none; width: 100%;">
<tr style="background-color: #6199df; border-bottom: solid #4d90fe 1px; border-left: solid #4d90fe 1px; border-right: solid #4d90fe 1px; border-top: solid #4d90fe 1px; height: 0px; vertical-align: top;">
<td style="width:20%; border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;">API Version
</td>
<td style="border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;">Query Ad Group Changes
</td>
</tr>
<tr style="border-bottom: solid #4d90fe 1px; border-left: solid #4d90fe 1px; border-right: solid #4d90fe 1px; border-top: solid #4d90fe 1px; height: 0px; vertical-align: top;">
<td style="border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;">v16.1+
</td>
<td style="border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;">Starting in v16.1, the <code>ad_group.primary_status_reasons</code> will contain <code>AD_GROUP_PAUSED_DUE_TO_LOW_ACTIVITY</code> if <code>ad_group.primary_status</code> is set to <code>PAUSED</code> by Google.
</td>
</tr>
<tr style="border-bottom: solid #4d90fe 1px; border-left: solid #4d90fe 1px; border-right: solid #4d90fe 1px; border-top: solid #4d90fe 1px; height: 0px; vertical-align: top;">
<td style="border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;">v16
</td>
<td style="border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;">Starting in v16, the <code>ad_group.primary_status_reasons</code> will contain <code>AD_GROUP_PAUSED</code> if <code>ad_group.primary_status</code> is set to <code>PAUSED</code> by Google.
</td>
</tr>
</table>
<p>
You will still be able to update your ad groups and make changes while they are in a paused state.
</p>
<p>
<strong>Where can I get support?</strong>
</p>
<p>
If you have questions, please reach out to us on the <a href="https://developers.google.com/google-ads/api/support/contact">support form</a> or at <a href="mailto:googleadsapi-support@google.com">googleadsapi-support@google.com</a>.
</p>
<span class='byline-author'><img height="40" width="40" src="https://lh6.googleusercontent.com/xc1BstqIO3rHCZTBaUVL-76euEtxewSqrhSqAgDA5IhL4CaYVYQywU1xeL3l7lwbL640tKrUIT2YsdYA9jAenuipiWbDPFpGKAL7XDRMhVDKRnF5aedoRE2NHFTHZkHtoLYNA1QdM-mLDo1mGNMB_8vduNcODY1_DE-9ER1JFov8HRQhoc8j6gWrx3A7mwM0bMhfi3LN3HcuKf1fwgVoWcSqjyq0WZVkwpjz" style="vertical-align: middle; border:none;"/> Nadine Wang, Google Ads API Team</span>
Google Ads Developer Advisorhttp://www.blogger.com/profile/16700526826531306391noreply@blogger.comtag:blogger.com,1999:blog-7815614485808579332.post-39437407684415383832024-02-28T08:38:00.000-08:002024-02-28T08:38:10.734-08:00February 2024 update to Display & Video 360 API
<p>
Today we’re announcing the February 2024 update to the <a href="https://developers.google.com/display-video/api">Display & Video 360 API</a>. This update includes the following features:
</p><ul>
<li>Added functionality to the <code><a href="https://developers.google.com/display-video/api/reference/rest/v3/firstAndThirdPartyAudiences/editCustomerMatchMembers">firstAndThirdPartyAudiences.editCustomerMatchMembers</a></code> method to allow for the explicit removal of audience members.
<li>Support for new <a href="https://developers.google.com/display-video/api/reference/rest/v3/Exchange">exchanges</a>.</li></ul>
<p>
More details about this update can be found in the Display & Video 360 API <a href="https://developers.google.com/display-video/api/release-notes#february_28_2024">release notes</a>. Before using these new features, make sure to update your <a href="https://developers.google.com/display-video/api/guides/getting-started/libraries">client library to the latest version</a>.
</p>
<p>
If you need help with these new features, please contact us using our <a href="https://support.google.com/displayvideo/contact/nghelp_contact_form">support contact form</a>.
</p>
<span class="byline-author"><img height="40" src="https://lh7-us.googleusercontent.com/hO-Azjoudtcsd8tuH9II5w9-foNYaUm5GxpVcKXiVt8dBx9vKmyGE0HvnhTLKDpzlFtDCZlTs9J4jVODoI3bsaP79Ei6DWj3ipds6n4tK6TIylaHqP-qa9frGM4FeUa2RA4vQzLaGaTyjZG_vsBvb7g4rHBsK80pv72YUznZdyHmpP9ttSOimkv-0XS-ADQ" style="border: none; vertical-align: middle;" width="40" /> - Trevor Mulchay, Display & Video 360 API Team</span>Google Ads Developer Advisorhttp://www.blogger.com/profile/16700526826531306391noreply@blogger.comtag:blogger.com,1999:blog-7815614485808579332.post-77816612130055311272024-02-23T06:14:00.000-08:002024-02-23T06:14:46.251-08:00Updates: Errors when linking Merchant Center accounts with Google Ads API
<p>
<strong>What happened?</strong>
</p>
<p>
For developers linking <a href="http://merchants.google.com">Merchant Center</a> accounts to Google Ads using <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/overview">Google Ads API v14</a>, there was an issue from <strong>04:00 PST Monday, Feb 19 </strong>to<strong> 08:00 PST Tuesday, Feb 20</strong> that caused some requests to the <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/MerchantCenterLinkService#mutatemerchantcenterlink">MutateMerchantCenterLink</a> method of <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/MerchantCenterLinkService">MerchantCenterLinkService</a> to return <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/MutateErrorEnum.MutateError#resource_not_found">MutateError.RESOURCE_NOT_FOUND</a>. Also calls to <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/MerchantCenterLinkService#listmerchantcenterlinks">ListMerchantCenterLinks</a> may not have returned some <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/MerchantCenterLink">MerchantCenterLinks</a> with link status <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/MerchantCenterLinkStatusEnum.MerchantCenterLinkStatus">PENDING</a>.
</p>
<p>
<strong>What should I do?</strong>
</p>
<p>
If you use <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/overview">Google Ads API v14</a> to link Merchant Center accounts to Google Ads accounts using <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/MerchantCenterLinkService">MerchantCenterLinkService</a>, you should check to see if you have accounts that have pending link requests during the period of time described above. <strong>This issue has now been resolved and you may retry the failed calls</strong> to complete the linking of Merchant Center accounts. Also check <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/MerchantCenterLinkService#listmerchantcenterlinks">ListMerchantCenterLinks</a> for accounts with link status <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/MerchantCenterLinkStatusEnum.MerchantCenterLinkStatus">PENDING</a>. Some of these link requests may not have previously been returned during that time period.
</p>
<p>
<strong>How to get help</strong>
</p>
<p>
If you have any questions or need help, check out the Google Ads API <a href="https://developers.google.com/google-ads/api/support">support page</a> for options.
</p>
<span class='byline-author'><img height="40" width="40" src="https://lh5.googleusercontent.com/DDE180jto6tcgXfgP8OUY-mE6P57Zpll9sZ8d1WDzi98Yfa0ZIsMFtg4RI-XDuwszxfcd58rPtmss-jzzFkdLdTS6cKlMX0mZi5SFUe8uYi2c0x4VTSEpFNO8fcd6b6WBVpGxbC6rA" style="vertical-align: middle; border:none;"/> Ian Ballantyne, Google Ads API Team</span>Google Ads Developer Advisorhttp://www.blogger.com/profile/16700526826531306391noreply@blogger.comtag:blogger.com,1999:blog-7815614485808579332.post-2985524943705847972024-02-22T08:03:00.000-08:002024-02-22T08:03:37.788-08:00Google Ads scripts updates for v15In April 2024, we are releasing a new version of <a href="https://developers.google.com/google-ads/scripts/docs/start">Google Ads scripts</a> that is updated to use <a href="https://developers.google.com/google-ads/api/docs/release-notes#v15">Google Ads API v15</a>.<br /><br />
Note: Our generic <a href="https://developers.google.com/google-ads/scripts/docs/features/reports">search</a> and <a href="https://developers.google.com/google-ads/scripts/docs/features/mutate">mutate</a> methods allow for new API features as soon as they become available, and have been supporting <a href="https://developers.google.com/google-ads/api/docs/release-notes#v15">Google Ads API v15</a> since its release.<br /><br />
As a result of this change, several features that were removed from v15 of the Google Ads API will no longer be available in Google Ads scripts:
<ul>
<li><code>AdsApp.adMedia()</code> will throw a sunset error. Media is no longer supported. <a href="https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_adassets">Assets</a> are used instead.</li>
<li><code>ResponsiveDisplayAd</code> would previously return a Media when fetching its marketing image or logo image. Instead, this will now return null.</li>
<li><code>ImageAd.getImage()</code> previously returned a Media. It will now return an Asset instead. This will be a breaking change if you depend on this method.</li>
</ul>
In addition to these changes, we will be increasing the default reporting version to v15 if you don't manually specify a version.<br />If you have any questions or concerns, you can reach out to us on our <a href="https://groups.google.com/g/adwords-scripts">forum</a>.<br />
<span class="byline-author"> - Mike Cloonan, Google Ads Scripts Team</span>Google Ads Developer Advisorhttp://www.blogger.com/profile/16700526826531306391noreply@blogger.comtag:blogger.com,1999:blog-7815614485808579332.post-37188318218171683062024-02-21T11:00:00.000-08:002024-02-21T11:00:08.385-08:00Announcing v16 of the Google Ads APIToday, we’re announcing the v16 release of the <a href="https://developers.google.com/google-ads/api">Google Ads API</a>. To use some of the v16 features, you will need to upgrade your <a href="https://developers.google.com/google-ads/api/docs/client-libs">client libraries</a> and client code. The updated client libraries and code examples will be published next week.<br />
<iframe width="560" height="315" src="https://www.youtube.com/embed/Vn5_DBvpABA" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
Here are the highlights:
<ul>
<li>Added the following recommendation types: <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/RecommendationTypeEnum.RecommendationType#maximize_conversion_value_opt_in"><code>MAXIMIZE_CONVERSION_VALUE_OPT_IN</code></a>, <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/RecommendationTypeEnum.RecommendationType#improve_google_tag_coverage"><code>IMPROVE_GOOGLE_TAG_COVERAGE</code></a>, <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/RecommendationTypeEnum.RecommendationType#performance_max_final_url_opt_in"><code>PERFORMANCE_MAX_FINAL_URL_OPT_IN</code></a>, <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/RecommendationTypeEnum.RecommendationType#refresh_customer_match_list"><code>REFRESH_CUSTOMER_MATCH_LIST</code></a>, <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/RecommendationTypeEnum.RecommendationType#custom_audience_opt_in"><code>CUSTOM_AUDIENCE_OPT_IN</code></a>, <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/RecommendationTypeEnum.RecommendationType#lead_form_asset"><code>LEAD_FORM_ASSET</code></a>, <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/RecommendationTypeEnum.RecommendationType#improve_demand_gen_ad_strength"><code>IMPROVE_DEMAND_GEN_AD_STRENGTH</code></a></li>
<li>Added <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/RecommendationService#generaterecommendations"><code>RecommendationService.GenerateRecommendations()</code></a> which returns recommendations based on your specified settings, such as recommendation types or advertising channel types. This could be helpful when creating a campaign.</li>
<li>Added support for time-related segments, such as <a href="https://developers.google.com/google-ads/api/fields/latest/segments#segments.year"><code>segments.year</code></a> and <a href="https://developers.google.com/google-ads/api/fields/latest/segments#segments.month)%7B:.external%7D"><code>segments.month</code></a>, to <a href="https://developers.google.com/google-ads/api/fields/latest/asset_group"><code>asset_group</code></a>.</li>
<li>Migrated <code>advertising_partner</code> from <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AccountLink"><code>AccountLink</code></a> to <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/ProductLink#advertising_partner"><code>ProductLink</code></a> and <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/ProductLinkInvitation#advertising_partner"><code>ProductLinkInvitation</code></a>, and also removed support for <code>data_partner</code> and <code>google_ads</code> from <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AccountLink"><code>AccountLink</code></a>.</li>
<li>Added <code>primary_status</code> and <code>primary_status_reasons</code> to <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AdGroup"><code>AdGroup</code></a> and <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AdGroupAd"><code>AdGroupAd</code></a>, respectively, to provide insight into why an ad group or an ad group ad is serving or not serving.</li>
<li>Added support for <a href="https://support.google.com/adspolicy/answer/9870201">advertiser verification</a> by adding <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/IdentityVerificationService"><code>IdentityVerificationService</code></a> to allow for programmatically starting a verification session using the provided <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/StartIdentityVerificationRequest#verification_program"><code>verification_program</code></a> and for retrieving all identity verifications.</li>
<li>Added support for setting <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Campaign#shopping_setting"><code>Campaign.shopping_setting</code></a> to an existing Demand Gen campaign. The following new fields are added specifically for Demand Gen campaigns:
<ul>
<li><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Campaign.ShoppingSetting#disable_product_feed"><code>ShoppingSetting.disable_product_feed</code></a> to disable the optional product feed.</li>
<li><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Ad#demand_gen_product_ad"><code>Ad.demand_gen_product_ad</code></a> containing information about the Demand Gen product ad, such as the business name and headline.</li>
</ul></li>
<li>Added <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Experiment#sync_enabled"><code>Experiment.sync_enabled</code></a> to let you apply changes made to the original campaign to the experiment campaign, while the experiment is running. This saves time from manually applying changes to the experiment campaign.</li>
<li>Recommended keywords with unset keyword match type will now have <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Recommendation.KeywordMatchTypeRecommendation#recommended_match_type"><code>recommended_match_type</code></a> set to <code>UNSPECIFIED</code> instead of <code>UNKNOWN</code>.</li>
<li>Updated the operation types for customer life cycle goals and campaign life cycle goals to make them consistent with other operation types.</li>
<li>Added support for tracking the progress of the business registration verification process of Local Services using <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/LocalServicesVerificationArtifact#business_registration_check_verification_artifact"><code>LocalServicesVerificationArtifact.business_registration_check_verification_artifact</code></a>.</li>
<li>Added a new report <a href="https://developers.google.com/google-ads/api/fields/latest/local_services_employee"><code>local_services_employee</code></a> that lets you retrieve the employee information you've added.</li>
</ul>
<strong>Where can I learn more?</strong><br />
The following resources can help you get started:
<ul>
<li><a href="https://developers.google.com/google-ads/api/docs/release-notes">Release notes</a></li>
<li><a href="https://developers.google.com/google-ads/api/docs">Guides</a></li>
<li><a href="https://developers.google.com/google-ads/api/reference/rpc/">Reference</a></li>
<li><a href="https://developers.google.com/google-ads/api/docs/diff">Diff between v15 and v16</a></li>
</ul>
If you have any questions or need additional help, contact us via the <a href="https://groups.google.com/forum/#!forum/adwords-api">forum</a>.<br />
<span class='byline-author'><img width="40" height="40" src="https://lh3.googleusercontent.com/-uGJ74K4l6os/AAAAAAAAAAI/AAAAAAAAADY/-NAP6xAT8Fk/s120-c/photo.jpg" style="vertical-align:middle; border:none;"> - Thanet Knack Praneenararat, on behalf of the Google Ads API Team</span>Google Ads Developer Advisorhttp://www.blogger.com/profile/16700526826531306391noreply@blogger.comtag:blogger.com,1999:blog-7815614485808579332.post-21641106001258712792024-02-16T11:40:00.000-08:002024-02-16T11:40:20.468-08:00Important information for Performance Max campaigns using page feeds with text asset automation opted out
<p>
<strong>Note: You can ignore this if you are not using Google Ads Performance Max with page feeds and text asset automation</strong>
</p>
<h4>What’s happened?</h4>
<p>
In October 2023, as part of <a href="https://developers.google.com/google-ads/api/docs/release-notes#assets">Google Ads API v15</a>, we launched the ability to configure your campaign to <a href="https://support.google.com/google-ads/answer/10724897#automatically_created_assets">automatically generate text assets</a>. Assets such as dynamic headlines or descriptions that match your landing page content can be configured by setting the <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/Campaign.AssetAutomationSetting">Campaign.AssetAutomationSetting</a></code> of <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/AssetAutomationTypeEnum.AssetAutomationType#text_asset_automation">TEXT_ASSET_AUTOMATION</a></code> to be opted-in or opted-out. We also launched the <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/ListingGroupFilterDimension#webage">ListingGroupFilterDimension.Webpage</a></code> dimension to allow Performance Max campaigns to filter URLs from a page feed specified by a <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/CampaignAssetSet">CampaignAssetSet</a></code> linking the campaign to an <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/AssetSet">AssetSet</a></code> of type <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/AssetSetTypeEnum.AssetSetType">PAGE_FEED</a></code>.
<p>
For this feature to work correctly, developers need to <strong>provide BOTH the page feed configuration AND set text asset automation to <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/AssetAutomationStatusEnum.AssetAutomationStatus">OPTED_IN</a></code> (which is the default behavior, if you do not specify a <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/Campaign.AssetAutomationSetting">Campaign.AssetAutomationSetting</a></code> of type <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/AssetAutomationTypeEnum.AssetAutomationType">TEXT_ASSET_AUTOMATION</a></code>).</strong> 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 <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/AssetAutomationStatusEnum.AssetAutomationStatus">OPTED_OUT</a></code>. Unfortunately this combination will not correctly utilize the page feed for Performance Max campaigns as might be expected.
<h4>What is happening today?</h4>
<p>
Starting <strong>Feb 15, 2024, </strong>we will begin throwing <a href="https://developers.google.com/google-ads/api/reference/rpc/v15/ContextErrorEnum.ContextError#operation_not_permitted_for_context">OPERATION_NOT_PERMITTED_FOR_CONTEXT</a> errors if a Performance Max campaign is created or updated such that it contains the follow incompatible state:
</p>
<table style="border-collapse: collapse; border: none; width: 100%;">
<tr style="background-color: #6199df; border-bottom: solid #4d90fe 1px; border-left: solid #4d90fe 1px; border-right: solid #4d90fe 1px; border-top: solid #4d90fe 1px; height: 0px; vertical-align: top;">
<td colspan="3" style="border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;"><strong>Incompatible state for a Performance Max campaign with a page feed and text asset automation</strong>
</td>
</tr>
<tr style="border-bottom: solid #4d90fe 1px; border-left: solid #4d90fe 1px; border-right: solid #4d90fe 1px; border-top: solid #4d90fe 1px; height: 0px; vertical-align: top;">
<td rowspan="3" style="border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;"><code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/Campaign.AssetAutomationSetting">Campaign.AssetAutomationSetting</a></code> of type <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/AssetAutomationTypeEnum.AssetAutomationType">TEXT_ASSET_AUTOMATION</a><strong> </strong></code>is set to<strong> <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/AssetAutomationStatusEnum.AssetAutomationStatus">OPTED_OUT</a></code></strong>
</td>
<td rowspan="3" style="background-color: #efefef;border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;"><strong>AND</strong>
</td>
<td style="border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;">A <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/CampaignAssetSet">CampaignAssetSet</a></code> linking the campaign to an <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/AssetSet">AssetSet</a></code> of type <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/AssetSetTypeEnum.AssetSetType">PAGE_FEED</a></code>
</td>
</tr>
<tr style="border-bottom: solid #4d90fe 1px; border-left: solid #4d90fe 1px; border-right: solid #4d90fe 1px; border-top: solid #4d90fe 1px; height: 0px; vertical-align: top;">
<td style="border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;"><strong>OR</strong>
</td>
</tr>
<tr>
<td style="border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;">An <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/AssetGroupListingGroupFilter">AssetGroupListingGroupFilter</a></code> with <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/ListingGroupFilterDimension">ListingGroupFilterDimension</a></code> set to <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/ListingGroupFilterDimension.Webpage">Webpage</a></code>.
</td>
</tr>
</table>
<p>
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.
</p>
<h4>What happens next?</h4>
<p>
For those developers who have campaigns in this incompatible state, starting <strong>April 15, 2024,</strong> we will automatically fix the compatibility by removing <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/CampaignAssetSet">CampaignAssetSet</a></code> resources linking a campaign to an <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/AssetSet">AssetSet</a></code> of type <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/AssetSetTypeEnum.AssetSetType">PAGE_FEED</a></code> and removing <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/AssetGroupListingGroupFilter">AssetGroupListingGroupFilter</a></code> resources with <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/ListingGroupFilterDimension">ListingGroupFilterDimension</a></code> set to <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/ListingGroupFilterDimension.Webpage">Webpage</a></code> <strong>only if </strong>the <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/Campaign.AssetAutomationSetting">Campaign.AssetAutomationSetting</a></code> of type <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/AssetAutomationTypeEnum.AssetAutomationType">TEXT_ASSET_AUTOMATION</a></code> is set to <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/AssetAutomationStatusEnum.AssetAutomationStatus">OPTED_OUT</a></code>. <strong>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</strong>. If you would like to utilize the landing page content, then you will need to opt-in to text asset automation.
<h4>What do I need to do?</h4>
<p>
First, confirm that you are using <strong>text asset automation and page feed assets or asset group listing filters with webpage dimensions in your Performance Max campaigns</strong>. Otherwise, you are not impacted by this change.
</p>
<p>
To check if your Performance Max campaign is in an incompatible state for page feeds, run the following GAQL queries:
</p>
<p>
<strong>1) Check for page feeds linked to campaigns that have text asset automation opted-out:</strong>
</p>
<pre class="prettyprint lang-java">
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'
</pre>
<p>
You may be impacted if any of the <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/CampaignAssetSet">CampaignAssetSet</a></code> resources, linking a campaign to an <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/AssetSet">AssetSet</a></code> of type <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/AssetSetTypeEnum.AssetSetType">PAGE_FEED</a></code>, have a <code>campaign_asset_set.status</code> that is set to <code>ENABLED</code> <strong>and </strong>an item in <code>campaign.asset_automation_settings</code> with <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/AssetAutomationTypeEnum.AssetAutomationType">TEXT_ASSET_AUTOMATION</a></code> set to <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/AssetAutomationStatusEnum.AssetAutomationStatus">OPTED_OUT</a></code>.
<p>
<strong>2) Check for asset group listing group filters with dimension webpage for campaigns that have text asset automation opted-out:</strong>
</p>
<pre class="prettyprint lang-java">
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'
</pre>
<p>
You may be impacted if any of the <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/AssetGroupListingGroupFilter">AssetGroupListingGroupFilter</a></code> resources have a <code>case_value</code> that is a <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/ListingGroupFilterDimension.Webpage">Webpage</a></code> <strong>and</strong> an item in <code>campaign.asset_automation_settings</code> with <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/AssetAutomationTypeEnum.AssetAutomationType">TEXT_ASSET_AUTOMATION</a></code> set to <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/AssetAutomationStatusEnum.AssetAutomationStatus">OPTED_OUT</a></code>.
<p>
<strong>Manually fix the inconsistent state of the campaign</strong>
</p>
<p>
If you would like to manually configure the campaign yourself ahead of the automatic fix, we suggest one of the two options:
</p>
<table style="border-collapse: collapse; border: none; width: 100%;">
<tr style="background-color: #6199df; border-bottom: solid #4d90fe 1px; border-left: solid #4d90fe 1px; border-right: solid #4d90fe 1px; border-top: solid #4d90fe 1px; height: 0px; vertical-align: top;">
<td colspan="3" style="border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;"><strong>Options to manually fix the inconsistent state of a Performance Max campaign</strong>
</td>
</tr>
<tr>
<td colspan="3" style=" background-color: #efefef; border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;"><strong>OPTION A) Turn on text asset automation</strong>
</td>
</tr>
<tr>
<td colspan="3" style="border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;">Set <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/Campaign.AssetAutomationSetting">Campaign.AssetAutomationSetting</a></code> of type <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/AssetAutomationTypeEnum.AssetAutomationType">TEXT_ASSET_AUTOMATION</a></code> to <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/AssetAutomationStatusEnum.AssetAutomationStatus">OPTED_IN</a></code>
</td>
</tr>
<tr>
<td colspan="3" style="background-color: #efefef; border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;"><strong>OPTION B) Remove associated page feed references</strong>
</td>
</tr>
<tr>
<td colspan="3" style="border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;">Remove <strong>BOTH:</strong>
</td>
</tr>
<tr>
<td style="border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;">The <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/CampaignAssetSet">CampaignAssetSet</a></code> linking the campaign to an <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/AssetSet">AssetSet</a></code> of type <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/AssetSetTypeEnum.AssetSetType">PAGE_FEED</a></code>
</td>
<td style="border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><strong>AND</strong>
</td>
<td style="border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;">The <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/AssetGroupListingGroupFilter">AssetGroupListingGroupFilter</a></code> with <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/ListingGroupFilterDimension">ListingGroupFilterDimension</a> </code>set to <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/ListingGroupFilterDimension.Webpage">Webpage</a></code>.
</td>
</tr>
</table>
<p>
You will be able to make this change <strong>until April 15, 2024, after which option B will be automatically applied to fix the Performance Max campaign</strong>. Note that after the automatic fix is applied, the serving state of the campaign won't change from how it is serving today.
</p>
<h4>How do I get support?</h4>
<p>
For more details on how to correctly use <a href="https://support.google.com/google-ads/answer/10724897#automatically_created_assets">automatically generated text assets</a> with landing pages, see the <a href="https://developers.google.com/google-ads/api/docs/performance-max/assets#automatically_created_assets">automatically created assets</a> section of the Performance Max guide. If you require further support, please reach out to our team via one of our <a href="https://developers.google.com/google-ads/api/support">support channels</a>.
</p>
<span class='byline-author'><img height="40" width="40" src="https://lh5.googleusercontent.com/DDE180jto6tcgXfgP8OUY-mE6P57Zpll9sZ8d1WDzi98Yfa0ZIsMFtg4RI-XDuwszxfcd58rPtmss-jzzFkdLdTS6cKlMX0mZi5SFUe8uYi2c0x4VTSEpFNO8fcd6b6WBVpGxbC6rA" style="vertical-align: middle; border:none;"/> Ian Ballantyne, Google Ads API Team</span>Google Ads Developer Advisorhttp://www.blogger.com/profile/16700526826531306391noreply@blogger.comtag:blogger.com,1999:blog-7815614485808579332.post-62352308551924160242024-02-15T13:22:00.000-08:002024-02-15T13:22:48.827-08:00Deprecation of Display & Video 360 API v2
<p>
Today we are deprecating <a href="https://developers.google.com/display-video/api/reference/rest/v2">Display & Video 360 API v2</a> and will sunset v2 on <strong>September 3, 2024</strong>. Migrate to <a href="https://developers.google.com/display-video/api/reference/rest/v3">Display & Video 360 API v3</a> before the sunset date to avoid an interruption of service.
</p>
<p>
You can read our <a href="https://developers.google.com/display-video/api/release-notes">release notes</a> for more information on updates made to the API in v3, such as the addition of proximity location list management and updates to resource and field names. Follow the steps in our <a href="https://developers.google.com/display-video/api/v3-migration-guide">v3 migration guide</a> to help you migrate from v2 to v3.
</p>
<p>
If you run into issues or need help with your migration, please contact us using our <a href="https://support.google.com/displayvideo/contact/nghelp_contact_form">support contact form</a>.
</p>
<span class="byline-author"><img height="40" src="https://lh7-us.googleusercontent.com/hO-Azjoudtcsd8tuH9II5w9-foNYaUm5GxpVcKXiVt8dBx9vKmyGE0HvnhTLKDpzlFtDCZlTs9J4jVODoI3bsaP79Ei6DWj3ipds6n4tK6TIylaHqP-qa9frGM4FeUa2RA4vQzLaGaTyjZG_vsBvb7g4rHBsK80pv72YUznZdyHmpP9ttSOimkv-0XS-ADQ" style="border: none; vertical-align: middle;" width="40" /> - Trevor Mulchay, Display & Video 360 API Team</span>Google Ads Developer Advisorhttp://www.blogger.com/profile/16700526826531306391noreply@blogger.comtag:blogger.com,1999:blog-7815614485808579332.post-38529255249467905682024-02-14T10:14:00.000-08:002024-02-14T10:14:41.324-08:00Announcing v202402 of the Google Ad Manager API<p>
We're pleased to announce that <a href="https://developers.google.com/ad-manager/api/rel_notes#v202402">v202402</a> of the Google Ad Manager API is available starting today, February 13, 2024. This release brings support for <a href="https://developers.google.com//ad-manager/api/reference/v202402/ReportService.Column#AD_SERVER_CPM_AND_CPC_REVENUE_GROSS">gross revenue metrics</a> in reporting as well as new <a href="https://developers.google.com/ad-manager/api/reference/v202402/LineItemService.ReservationDetailsError.Reason#CPA_DEPRECATED">error messages</a> to support the <a href="https://support.google.com/admanager/answer/2476900">Spotlight deprecation</a>.
</p>
<p>
For the full list of changes, check the <a href="https://developers.google.com/ad-manager/api/rel_notes">release notes</a>. Feel free to contact us on the <a href="https://groups.google.com/forum/#!forum/google-doubleclick-for-publishers-api">Ad Manager API forum</a> with any API-related questions.
</p>
<span class="byline-author"><img height="40" src="https://lh7-us.googleusercontent.com/RlR0Enq4JZNBVo9-d4DTpAhCFysGNmVLQYpOfYTX0okgPglHXHnJQXpMnnPOpN8UhsGy3clH20w6iJcMat7syGegusZ2fraTdlgzO5EFlIZmqmqWVM9Dn5pw_OjaOQtzaQeztacac63_9eAzFLxHxsJfyPmT3-TkS3rhEOz5akMg08W5BJn3Lm0PJ84s1nI" style="border: none; vertical-align: middle;" width="40" /> - Chris Seeley, Ad Manager API Team</span>
Google Ads Developer Advisorhttp://www.blogger.com/profile/16700526826531306391noreply@blogger.comtag:blogger.com,1999:blog-7815614485808579332.post-30725645561063251942024-02-07T05:19:00.000-08:002024-02-07T05:19:00.996-08:00Deprecating Commissions Bidding Strategy
<p>
On April 30, 2024, the creation of hotel campaigns with <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/BiddingStrategyTypeEnum.BiddingStrategyType#commission">COMMISSION</a></code> bidding strategy will sunset. This bidding strategy was available only to travel advertisers. Requests to create new hotel campaigns or apply this bidding strategy to existing campaigns after April 30th will result in a <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/BiddingStrategyErrorEnum.BiddingStrategyError#bidding_strategy_not_supported">BiddingStrategyError.BIDDING_STRATEGY_NOT_SUPPORTED</a></code> error. Existing campaigns with the <code><a href="https://developers.google.com/google-ads/api/reference/rpc/v15/BiddingStrategyTypeEnum.BiddingStrategyType#commission">COMMISSION</a></code> bidding strategy will continue to run until October 31, 2024. After this day campaigns will stop serving until their bidding strategy is updated. A notification will be displayed in the Google Ads UI, guiding users on how to update the affected campaigns.
<p>
We suggest that travel advertisers with Hotel campaigns and Things to do Ads migrate to the <a href="https://developers.google.com/google-ads/api/reference/rpc/v15/BiddingStrategyTypeEnum.BiddingStrategyType#target_roas">Target ROAS (TARGET_ROAS)</a> auto bidding strategy. You can find more information about the tROAS in our <a href="https://support.google.com/google-ads/answer/6268637">Help Center article.</a>
</p>
<p>
If you have any questions or concerns, please don't hesitate to contact us in the <a href="https://groups.google.com/g/google-content-api-for-shopping">forum</a>.
</p>
<p><span class="byline-author">Daniel Rodriguez, the Google Ads API Team</span></p>Google Ads Developer Advisorhttp://www.blogger.com/profile/16700526826531306391noreply@blogger.comtag:blogger.com,1999:blog-7815614485808579332.post-43550020742471541022024-02-06T14:09:00.000-08:002024-02-06T14:09:23.056-08:00Announcing iOS Google Mobile Ads SDK Version 11.0.0<p>
Today, we are announcing that version 11.0.0 of the Google Mobile Ads SDK is now available. We recommend upgrading as soon as possible to get our latest features and performance improvements.
</p>
<h3>Simplified SwiftUI development</h3>
<p>
Version 11.0.0 no longer requires publishers to declare a view controller to present full-screen ads. As a result, SwiftUI Publishers can now present full-screen ads without the need for UIKit or <code>UIViewControllerRepresentable</code> workarounds. See our <a href="https://developers.google.com/admob/ios/swiftui">SwiftUI guide</a> for more information.
</p>
<pre class="prettyprint">struct ContentView: View {
private let adCoordinator = AdCoordinator()
var body: some View {
...
Button("Watch an ad") {
adCoordinator.showAd()
}
}
}
private class InterstitialAdCoordinator: NSObject, GADFullScreenContentDelegate {
private var interstitial: GADInterstitialAd?
...
func showAd() {
guard let interstitial = interstitial else {
return print("Ad wasn't ready")
}
// The SDK uses the app's main window to look up view controllers
// automatically when one is not provided.
interstitial.present(fromRootViewController: nil)
}
}</pre>
<h3>Continue collecting user metrics in AdMob</h3>
<p>
The Google Mobile Ads SDK dependency on <a href="https://github.com/google/GoogleAppMeasurement">GoogleAppMeasurement</a> has been removed. This dependency that powered the user metrics toggle in AdMob will be <a href="https://support.google.com/admob/answer/13973847">discontinued</a> in early 2024. To continue collecting user metrics in AdMob, <a href="https://support.google.com/admob/answer/6383165">link your AdMob app to Firebase</a> and integrate the <a href="https://firebase.google.com/docs/analytics">Google Analytics for Firebase</a> SDK into your app.
</p>
<h3>Changes to minimum OS and Xcode requirements</h3>
<ul>
<li>The minimum OS version to load ads has been bumped from 12 to 13. Applications can still be built for iOS 12, but the SDK will only load ads on iOS 13 and higher.
<li>The minimum supported Xcode version has been bumped to 15.1.</li></ul>
<p>
For the full list of changes, check the <a href="https://developers.google.com/admob/ios/rel-notes">release notes</a>. Check our <a href="https://developers.google.com/admob/ios/migration">migration guide</a> to ensure your mobile apps are ready to upgrade.
</p>
<h3>SDK Deprecation Reminder</h3>
<p>
Per the <a href="https://developers.google.com/admob/ios/deprecation">deprecation schedule</a>, the release of version 11.0.0 means that:
</p><ul>
<li>iOS Google Mobile Ads SDK versions 9.x.x are officially deprecated, and will sunset in Q2 2025.
<li><strong>Versions 8.x.x and below will <a href="https://developers.google.com/admob/ios/deprecation#differences">sunset</a> in Q2 2024</strong>, approximately 60 days following the release of Android Google Mobile Ads SDK major version 23.0.0. <ul>
<li>While there are currently no plans to disable ad serving on version 8.x.x, we strongly recommend updating to a supported SDK version to avoid being impacted in the future.</li> </ul>
</li> </ul>
<p>
As always, if you have any questions or need additional help, contact us via the <a href="https://groups.google.com/group/google-admob-ads-sdk">developer forum</a>.
</p>
<p><span class="byline-author"><img width="40" height="40" src="https://lh3.googleusercontent.com/a-/AOh14GjtsQZdIExmcjrR581d0QKQR_WB3m0ETlK1hUK5=s88-w88-h88-c-k?sz=40" style="vertical-align:middle; border:none;"> - Justin Malandruccolo, Mobile Ads Developer Relations</span></p>Google Ads Developer Advisorhttp://www.blogger.com/profile/16700526826531306391noreply@blogger.comtag:blogger.com,1999:blog-7815614485808579332.post-56293247002306096692024-02-06T07:55:00.000-08:002024-02-06T07:55:06.555-08:00Announcing the “Getting started with the Java Client Library” video series
<p>
Today, we are pleased to announce a new <a href="https://www.youtube.com/playlist?list=PLKByxjzUC-N9gWKMqpi5S0WIVc4o_Ukdj">video series</a> just published on our YouTube channel, titled “Getting started with the Java Client Library”.
</p>
<p>
The seven episodes guide you through all the steps required to create a Google Ads campaign with the Java client library from scratch; the only prerequisites are a working Java development environment and a Google Ads <a href="https://ads.google.com/home/tools/manager-accounts/">manager account</a>.
</p>
<p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/videoseries?si=WYA5FpzzBMaN3Fxx&list=PLKByxjzUC-N9gWKMqpi5S0WIVc4o_Ukdj" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
</p>
<p>
The videos walk you through the setup of an empty Java project and the import of the Google Ads client library for Java, then describe the process to obtain all required credentials and how to configure them in your Java project.
</p>
<p>
The last video in the series puts everything together and shows how to execute a basic call to the Google Ads API by running the <a href="https://github.com/googleads/google-ads-java/blob/main/google-ads-examples/src/main/java/com/google/ads/googleads/examples/basicoperations/AddCampaigns.java">AddCampaigns</a> code example.
</p>
<p>
We hope the video series will help you understand all the required steps to get started developing a Java application on top of the Google Ads API. Meanwhile, even if you’re not using Java, we still recommend subscribing to the <a href="https://www.youtube.com/@GoogleAdsDevelopers">Google Ads Developers</a> channel on YouTube to always be up to date with our video content.
</p>
<span class='byline-author'><img width="40" height="40" src="https://lh3.googleusercontent.com/a/AAcHTteMf_IXDYsJGIPAdLCefNLvUvK73hQtgnAZCJciyzpbfg=s83-c-mo" style="vertical-align:middle; border:none;"> - Mattia Tommasone, Google Ads API Team</span>Google Ads Developer Advisorhttp://www.blogger.com/profile/16700526826531306391noreply@blogger.comtag:blogger.com,1999:blog-7815614485808579332.post-54010687065553106332024-01-31T10:29:00.000-08:002024-01-31T10:29:42.451-08:00Sunsetting Display & Video 360 Entity Read Files on October 31, 2024
<p>
On <strong>October 31, 2024</strong>, Display & Video 360 <a href="https://developers.google.com/bid-manager/guides/entity-read/format-v2">Entity Read Files</a> (ERFs) will sunset. Public and private ERFs won’t be generated after this date. Migrate to the <a href="https://developers.google.com/display-video/api/guides/getting-started/overview">Display & Video 360 API</a> to continue programmatically retrieving Display & Video 360 resource configurations.
</p>
<p>
ERFs were <a href="https://ads-developers.googleblog.com/2021/06/deprecation-of-entity-read-files.html">deprecated in June 2021</a>. Since then, we’ve made updates to help you migrate from ERFs:
</p><ul>
<li>You can retrieve <a href="https://developers.google.com/display-video/api/reference/rest/v3/floodlightGroups.floodlightActivities">Floodlight Activities</a> and YouTube & Partners resources (<a href="https://developers.google.com/display-video/api/reference/rest/v3/advertisers.lineItems">line items</a>, <a href="https://developers.google.com/display-video/api/reference/rest/v3/advertisers.adGroups">ad groups</a>, and <a href="https://developers.google.com/display-video/api/reference/rest/v3/advertisers.adGroupAds">ads</a>) using the Display & Video 360 API.
<li>Starting with <a href="https://developers.google.com/display-video/api/structured-data-file/v7-migration-guide">Structured Data Files v7</a>, you can use IDs retrieved through the Display & Video 360 API in place of ERFs.</li></ul>
<p>
See our <a href="https://developers.google.com/display-video/api/guides/how-tos/erf-migration">migration guide</a> for more information on migrating from ERFs to the Display & Video 360 API.
</p>
<p>
If you have questions regarding these changes, please contact us using our <a href="https://support.google.com/displayvideo/contact/nghelp_contact_form">support contact form</a>.
</p>
<span class="byline-author"><img height="40" src="https://lh7-us.googleusercontent.com/hO-Azjoudtcsd8tuH9II5w9-foNYaUm5GxpVcKXiVt8dBx9vKmyGE0HvnhTLKDpzlFtDCZlTs9J4jVODoI3bsaP79Ei6DWj3ipds6n4tK6TIylaHqP-qa9frGM4FeUa2RA4vQzLaGaTyjZG_vsBvb7g4rHBsK80pv72YUznZdyHmpP9ttSOimkv-0XS-ADQ" style="border: none; vertical-align: middle;" width="40" /> - Trevor Mulchay, Display & Video 360 API Team</span>Google Ads Developer Advisorhttp://www.blogger.com/profile/16700526826531306391noreply@blogger.comtag:blogger.com,1999:blog-7815614485808579332.post-83867742328612378112024-01-29T08:46:00.000-08:002024-01-29T08:46:21.623-08:00January 2024 update to Display & Video 360 API<p>
Today we’re announcing the January 2024 update to the <a href="https://developers.google.com/display-video/api">Display & Video 360 API</a>. This update includes the following features:
</p><ul>
<li>A new <code><a href="https://developers.google.com/display-video/api/reference/rest/v3/floodlightGroups.floodlightActivities#methods">floodlightGroups.floodlightActivities</a></code> service that enables the programmatic retrieval of <code><a href="https://developers.google.com/display-video/api/reference/rest/v3/floodlightGroups.floodlightActivities#FloodlightActivity">FloodlightActivity</a></code> resources. This was previously only possible using <a href="https://developers.google.com/display-video/api/guides/how-tos/erf-migration">Entity Read Files</a>.
<li>Support of a <a href="https://developers.google.com/display-video/api/reference/rest/v3/advertisers.lineItems#YoutubeAndPartnersInventorySourceConfig.FIELDS.include_google_tv">new inventory source configuration field</a> for YouTube & Partners Line Items.</li></ul>
<p>
More detailed information about this update can be found in the Display & Video 360 API <a href="https://developers.google.com/display-video/api/release-notes#january_29_2024">release notes</a>. Before using these new features, make sure to update your <a href="https://developers.google.com/display-video/api/guides/getting-started/libraries">client library to the latest version</a>.
</p>
<p>
If you need help with these new features, please contact us using our <a href="https://support.google.com/displayvideo/contact/nghelp_contact_form">support contact form</a>.
</p>
<span class="byline-author"><img height="40" src="https://lh7-us.googleusercontent.com/hO-Azjoudtcsd8tuH9II5w9-foNYaUm5GxpVcKXiVt8dBx9vKmyGE0HvnhTLKDpzlFtDCZlTs9J4jVODoI3bsaP79Ei6DWj3ipds6n4tK6TIylaHqP-qa9frGM4FeUa2RA4vQzLaGaTyjZG_vsBvb7g4rHBsK80pv72YUznZdyHmpP9ttSOimkv-0XS-ADQ" style="border: none; vertical-align: middle;" width="40" /> - Trevor Mulchay, Display & Video 360 API Team</span>Google Ads Developer Advisorhttp://www.blogger.com/profile/16700526826531306391noreply@blogger.comtag:blogger.com,1999:blog-7815614485808579332.post-88099519415425053492024-01-24T09:53:00.000-08:002024-01-24T10:49:26.644-08:00Update to Display & Video 360 API Terms of Service to ensure Online Behavior Advertising compliance
<p>
On <strong>February 9, 2024,</strong> we will update the <a href="https://developers.google.com/display-video/api/terms">Display & Video 360 API Terms of Service</a> to add new language that supports <a href="https://support.google.com/displayvideo/answer/14315795">announced changes</a> to promote advertiser transparency and content reporting in Display & Video 360.
</p>
<p>
The new language specifies that, by setting the <code><a href="https://developers.google.com/display-video/api/reference/rest/v3/advertisers#Advertiser">Advertiser</a></code> resource field <code><a href="https://developers.google.com/display-video/api/reference/rest/v3/advertisers#AdvertiserCreativeConfig.FIELDS.oba_compliance_disabled">obaComplianceDisabled</a></code> to <code>true</code>, you are attesting to using an alternative ad badging, transparency, and reporting solution for ads served in the European Economic Area (EEA) such that the following requirements are met:
<ul>
<li>The alternative solution includes any required transparency information and a mechanism for reporting illegal content.
<li>You notify Google of any illegal content reports using <a href="https://support.google.com/legal/troubleshooter/1114905?sjid=6787484030557261960-EU#ts=2981967%2C2982031%2C12980091">this form</a>.</li></ul>
<p>
The <code><a href="https://developers.google.com/display-video/api/reference/rest/v3/advertisers#AdvertiserCreativeConfig.FIELDS.oba_compliance_disabled">obaComplianceDisabled</a></code> field description will also be updated to reflect this change.
<p>
If you have questions regarding these changes, please contact us using our <a href="https://support.google.com/displayvideo/contact/nghelp_contact_form">support contact form</a>.
</p>
<span class="byline-author"><img height="40" src="https://lh7-us.googleusercontent.com/hO-Azjoudtcsd8tuH9II5w9-foNYaUm5GxpVcKXiVt8dBx9vKmyGE0HvnhTLKDpzlFtDCZlTs9J4jVODoI3bsaP79Ei6DWj3ipds6n4tK6TIylaHqP-qa9frGM4FeUa2RA4vQzLaGaTyjZG_vsBvb7g4rHBsK80pv72YUznZdyHmpP9ttSOimkv-0XS-ADQ" style="border: none; vertical-align: middle;" width="40" /> - Trevor Mulchay, Display & Video 360 API Team</span>Google Ads Developer Advisorhttp://www.blogger.com/profile/16700526826531306391noreply@blogger.comtag:blogger.com,1999:blog-7815614485808579332.post-50061740253344672192024-01-18T12:21:00.000-08:002024-01-18T12:21:38.606-08:00Performance Max Guide Enhancements
<p>
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.
</p><ul>
<li>New Getting Started guide that outlines the steps to create <ul>
<li><a href="https://developers.google.com/google-ads/api/docs/performance-max/getting-started?type=standard">Standard Performance Max campaigns</a>
<li><a href="https://developers.google.com/google-ads/api/docs/performance-max/getting-started?type=retail">Performance Max campaigns for retail</a>
<li><a href="https://developers.google.com/google-ads/api/docs/performance-max/getting-started?type=travel-goals">Performance Max campaigns for travel goals</a></ul>
<li>Reorganized guide structure to better reflect entity relationships in Performance Max campaigns
<li>Clarified <a href="https://developers.google.com/google-ads/api/docs/performance-max/asset-requirements">asset requirements</a>
<li>Revamped <a href="https://developers.google.com/google-ads/api/docs/performance-max/reporting">Performance Max reporting guide</a>
<li>Better surfaced features such as <a href="https://developers.google.com/google-ads/api/docs/performance-max/conversion-goals">campaign-level conversion goals</a> and <a href="https://developers.google.com/google-ads/api/docs/performance-max/asset-group-signals">asset group signals</a>
<li>Additional <a href="https://developers.google.com/google-ads/api/docs/performance-max/troubleshooting">troubleshooting</a> content</li>
</li></ul>
<p>
<strong>Improving Performance Max integrations Blog Series</strong>
</p>
<p>
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 <a href="http://ads-developers.googleblog.com/">developer blog</a>, continue providing <a href="https://developers.google.com/google-ads/api/docs/performance-max/feedback">feedback on Performance Max</a> integrations with the Google Ads API, and as always, <a href="https://developers.google.com/google-ads/api/support">contact our team</a> if you need support.
</p>
<span class="byline-author"><img height="40" src="https://lh3.googleusercontent.com/a-/AOh14GiOcLXyMYphwRh10nyuK_-RpxNBRiDcaag6Z73p=s600-p-rwa" style="border: none; vertical-align: middle;" width="40" /> - Devin Chasanoff, on behalf of the Google Ads API Team</span>Google Ads Developer Advisorhttp://www.blogger.com/profile/16700526826531306391noreply@blogger.comtag:blogger.com,1999:blog-7815614485808579332.post-56016646885918864932024-01-17T11:42:00.000-08:002024-01-17T11:42:51.101-08:00Deprecation of cross-device conversion metric values in the Bid Manager API
<p>
Today we’re deprecating cross-device conversion <a href="https://developers.google.com/bid-manager/reference/rest/v2/filters-metrics">metric values</a> in <a href="https://developers.google.com/bid-manager/guides/getting-started-api">Bid Manager API</a>. The following values will sunset on <strong>February 28, 2024</strong>:
</p><ul>
<li><code>METRIC_CM360_POST_CLICK_REVENUE_CROSS_ENVIRONMENT</code>
<li><code>METRIC_CM360_POST_VIEW_REVENUE_CROSS_ENVIRONMENT</code>
<li><code>METRIC_POST_CLICK_CONVERSIONS_CROSS_ENVIRONMENT</code>
<li><code>METRIC_POST_VIEW_CONVERSIONS_CROSS_ENVIRONMENT</code>
<li><code>METRIC_TOTAL_CONVERSIONS_CROSS_ENVIRONMENT</code></li></ul>
<p>
Upon sunset, <code><a href="https://developers.google.com/bid-manager/reference/rest/v2/queries/create">queries.create</a></code> requests using these values will return an <code>INVALID_ARGUMENT</code> error, and these values will be removed from existing <code><a href="https://developers.google.com/bid-manager/reference/rest/v2/queries#Query">Query</a></code> resources.
<p>
We’ve added the upcoming sunset to our <a href="https://developers.google.com/bid-manager/change-log#2023-02-28">change log</a>. To avoid an interruption of service, we recommend that you stop creating any reports using these values before the applicable sunset date.
</p>
<p>
If you have questions regarding these changes, please contact us using our <a href="https://support.google.com/displayvideo/contact/nghelp_contact_form">support contact form</a>.
</p>
<span class="byline-author"><img height="40" src="https://lh7-us.googleusercontent.com/hO-Azjoudtcsd8tuH9II5w9-foNYaUm5GxpVcKXiVt8dBx9vKmyGE0HvnhTLKDpzlFtDCZlTs9J4jVODoI3bsaP79Ei6DWj3ipds6n4tK6TIylaHqP-qa9frGM4FeUa2RA4vQzLaGaTyjZG_vsBvb7g4rHBsK80pv72YUznZdyHmpP9ttSOimkv-0XS-ADQ" style="border: none; vertical-align: middle;" width="40" /> - Trevor Mulchay, Bid Manager API Team</span>Google Ads Developer Advisorhttp://www.blogger.com/profile/16700526826531306391noreply@blogger.comtag:blogger.com,1999:blog-7815614485808579332.post-73898666167261045132024-01-08T12:25:00.000-08:002024-01-08T12:25:20.482-08:00Google Ads API v13 sunset reminderGoogle Ads API v13 will <a href="https://developers.google.com/google-ads/api/docs/sunset-dates">sunset</a> on January 31, 2024. <strong>After this date, all v13 API requests will begin to fail.</strong> Please migrate to a <a href="https://developers.google.com/google-ads/api/docs/release-notes">newer version</a> prior to January 31, 2024 to ensure your API access is unaffected.<br /><br />
We've prepared various resources to help you with the migration:
<ul>
<li><a href="https://developers.google.com/google-ads/api/docs/version-migration">Upgrading to the newest version</a></li>
<li><a href="https://developers.google.com/google-ads/api/docs/release-notes">Release notes</a></li>
</ul>
In addition, using the <a href="http://console.cloud.google.com">Google Cloud Console</a>, you can view the list of methods and services to which your project recently submitted requests:
<ol>
<li>Open the <strong>Dashboard</strong> page (found under <strong>APIs & Services</strong>) in the Google Cloud Console.</li>
<li>Click on <strong>Google Ads API</strong> in the table.</li>
<li>On the <strong>METRICS</strong> subtab, you should see your recent requests plotted on each graph. At the bottom of the page, you’ll see the <strong>Methods</strong> table, where you can see which methods you’ve sent requests to. The method name includes a Google Ads API version, a service, and a method name, e.g., <code>google.ads.googleads.v13.services.GoogleAdsService.Mutate</code>. In this way, you can see all versions that you’ve used recently.</li>
<li>(Optional) Click on the time frame at the top right of the page if you need to change it.</li>
</ol>
If you have questions while you’re upgrading, please reach out to us on the <a href="https://groups.google.com/forum/#!forum/adwords-api">forum</a> or at <a href="mailto:googleadsapi-support@google.com">googleadsapi-support@google.com</a>.<br />
<span class='byline-author'><img width="40" height="40" src="https://lh3.googleusercontent.com/-uGJ74K4l6os/AAAAAAAAAAI/AAAAAAAAADY/-NAP6xAT8Fk/s120-c/photo.jpg" style="vertical-align:middle; border:none;"> - Thanet Knack Praneenararat, Google Ads API Team</span>Google Ads Developer Advisorhttp://www.blogger.com/profile/16700526826531306391noreply@blogger.comtag:blogger.com,1999:blog-7815614485808579332.post-88386562741772447312023-12-13T11:24:00.000-08:002024-01-31T10:23:40.320-08:00Deprecating Content API Easy Onboarding In Merchant Center<p>
The Content API for Shopping easy onboarding authentication method and tab, which create a service account for you, will not be available in <a href="https://support.google.com/merchants/answer/13863814">Merchant Center Next</a>. Easy onboarding is still available in Merchant Center Classic.
</p>
<p>
You can still use existing service accounts that you created using Merchant Center Classic. To set up a service account without using easy onboarding in Merchant Center Classic, follow these steps:
</p><ol>
<li>Ensure you have an existing cloud project or create a new one in the <a href="https://console.cloud.google.com/apis/library">Google Cloud Console</a>.
<li>Generate or access your service account credentials.
<li>Download the <a href="https://developers.google.com/workspace/guides/create-credentials#create_credentials_for_a_service_account">JSON private key</a> from Google API Console. This JSON private key can be used in the same way as the one downloaded from Merchant Center previously.
<li>Add the new service account as a user to your Merchant Center account. <strong>If you’re a third-party developer (and don’t have access to the Merchant Center UI for the account), your client will need to complete this step for you.</strong> </li></ol>
<p>
For more details, see the <a href="https://developers.google.com/shopping-content/guides/how-tos/service-accounts#steps">API documentation</a>.
</p>
<p>
If you have any questions or concerns, please don't hesitate to contact us via the <a href="https://groups.google.com/g/google-content-api-for-shopping">forum</a>.
</p>
<span class='byline-author'><img height="40" width="40" src="https://lh6.googleusercontent.com/3UR5v4kdd7GrfXL7qxf9q5dUhvFCuGpErSk9b_VLFBrxtt2a8nNB4ka6wnxAjf_cESedQlAsF96iW-aNPGDANC2e0PMddceUlVVty7QfxD9qtapM1fRdGnU3qhDOEEQgXuJoQ3qaGumt7JfWD4wEcLsY" style="vertical-align: middle; border:none;"/> Benji Rothman, Content API for Shopping Team</span>Google Ads Developer Advisorhttp://www.blogger.com/profile/16700526826531306391noreply@blogger.comtag:blogger.com,1999:blog-7815614485808579332.post-33297884150192469212023-12-07T12:58:00.000-08:002023-12-13T10:33:48.176-08:00Optimally configure the Attribution Reporting API for ad measurement<h1>Background</h1>
<p>
Ad-tech providers have historically used third-party cookies for conversion measurement, and for attributing conversions to ad interactions. Conversion measurement is critical for evaluating the performance of ad campaigns and automated bidding strategies. Now, with technology changes and privacy regulations on the rise, traditional ad-measurement systems must change in order to remain effective while protecting user privacy.
</p>
<p>
Chrome’s <a href="https://developer.chrome.com/docs/privacy-sandbox/attribution-reporting/#what-is-the-attribution-reporting-api">Attribution Reporting API</a> (ARA), part of the <a href="https://privacysandbox.com/">Privacy Sandbox</a> initiative, offers a new path to conversion measurement after Chrome’s planned third-party cookie deprecation <a href="https://privacysandbox.com/open-web/">in the second half of 2024</a>, subject to addressing any remaining competition concerns of the UK’s Competition and Markets Authority (CMA). Google's ads teams plan to use the ARA for measurement, including on Google-owned inventory such as Search and YouTube, as well on third-party inventory available via our advertising technology products. We have made significant investments in learning to use the ARA more effectively for both, to help advertisers achieve more accurate measurement.
</p>
<p>
In a previous <a href="https://ads-developers.googleblog.com/2023/07/effectively-use-the-attribution-reporting-api-for-ad-measurement.html">post</a>, we provided a high-level overview of the approach Google’s ads teams are taking to effectively <strong>blend</strong> the ARA <a href="https://github.com/WICG/attribution-reporting-api/blob/main/EVENT.md">event-level</a> and <a href="https://github.com/WICG/attribution-reporting-api/blob/main/AGGREGATE.md">aggregate summary</a> reports to maximize accuracy. A key point is that your configuration determines what data you query, and how you query it. It’s crucial for ad-tech providers to effectively configure the ARA for their use cases. Google’s ads teams have found that configuring specific ARA settings can lead to notable accuracy improvements. We encourage other ad-tech providers to integrate with the ARA to retrieve the conversion data they need, and process the ARA's output to help maintain accurate measurement in a post-third-party-cookie world.
</p>
<p>
The ARA is flexible to support various use cases. Google’s ads teams use this flexibility to configure unique ARA settings for each advertiser. This way, ARA-based measurement adapts to each advertiser’s specific needs. For example, we’ve noticed that when advertisers differ in conversion volume, it’s better to have advertiser-specific configurations related to the granularity of aggregation keys and the maximum observable conversions per ad interaction.
</p>
<h1>Google’s ads teams’ approach</h1>
<p>
Here's how Google's ads teams use the ARA to ensure the raw data we receive is as useful as possible for downstream blending. We configure ARA settings as explicit mathematical optimizations by defining objective functions to represent data quality, then choosing settings to optimize those functions. Ad-tech providers can choose their own approach. Google’s ads teams plan to continue sharing insights we learn from our own optimizations with the ad-tech community.
</p>
<p>
Please see our <a href="https://github.com/google/ads-privacy/blob/master/optimizing_configuration_of_the_attribution_reporting_api.md">detailed technical explainer</a> for more information about our approach to ARA configuration.
</p>
<span class="byline-author"><img height="40" src="https://lh7-us.googleusercontent.com/B_u7Xt0bf7LK-Sbjrk2TVe5csLuB8_dhMesghk_biGehLK8009BA86qc6nL4RxGozQywAYImBJkgOfWqrgPB2tfQKufgjIY5RT7q9m_6__OvfoSXqW_lTCacNRxe7RO_wAuitLRbf9abZijeVcCgaDKoBCu00mK7b1kjVIyhT4WEO6B7tFR1G-vWCOAI8_s" style="border: none; vertical-align: middle;" width="40" /> - Harikesh Nair, Senior Director, Data Science, Ads Measurement</span>Google Ads Developer Advisorhttp://www.blogger.com/profile/16700526826531306391noreply@blogger.comtag:blogger.com,1999:blog-7815614485808579332.post-46351760667897009162023-12-05T07:38:00.000-08:002023-12-05T07:38:10.406-08:00Python Version Support in the Google Ads API Client LibraryIn June 2023, <a href="https://ads-developers.googleblog.com/2023/05/deprecating-python-37-support-in-google.html">support for Python 3.7 was deprecated</a> in the <a href="https://github.com/googleads/google-ads-python">Google Ads API Client Library for Python</a>. In Q1 2024, a major version of the library will be released that makes it incompatible with Python 3.7. Library changes related to compatibility with Python 3.7 will be limited to critical security or stability patches.<br /><br />
Google Ads API users who depend on Python 3.7 can continue using version <a href="https://github.com/googleads/google-ads-python/releases/tag/22.1.0">22.1.0 of the library</a>, which includes <a href="https://developers.google.com/google-ads/api/docs/release-notes#v15">API v15</a> support, until v15 of the is <a href="https://developers.google.com/google-ads/api/docs/sunset-dates">sunset</a> in September 2024. All Python users should upgrade to Python 3.8 or higher as soon as possible.<br /><br />
In the future, Python users should expect that the library will become incompatible with <a href="https://devguide.python.org/versions/#unsupported-versions">unsupported</a> versions of Python as soon as they reach end-of-life status. When Python 3.8 becomes unsupported in October 2024, a major version of the library will be released that is incompatible with Python 3.8. At least two months before a Python version deprecation, we will publish a blog post to help remind users of the change.<br /><br />
The below resources are available to help users plan ahead for future language support removal:
<ul>
<li>The <a href="https://devguide.python.org/versions/#status-of-python-versions">Python Developer’s Guide</a> shows the end-of-life date for all currently supported Python versions.</li>
<li>The <a href="https://developers.google.com/google-ads/api/docs/client-libs">supported API versions table</a> documents which versions of our client libraries are compatible with currently supported Google Ads API versions.</li>
<li>The <a href="https://developers.google.com/google-ads/api/docs/client-libs/python/dependencies">Python dependencies</a> table documents the library’s compatibility with individual dependency versions.</li>
<li>The <a href="https://developers.google.com/google-ads/api/docs/sunset-dates#timetable">deprecation and sunset timetable</a> shows the sunset date for all currently supported Google Ads API versions.</li>
</ul>
If you have any questions about this change, please file an <a href="https://github.com/googleads/google-ads-python/issues">issue</a> on the client library <a href="https://github.com/googleads/google-ads-python">repository on GitHub</a>.<br />
<span class="byline-author"><img height="40" src="https://lh3.googleusercontent.com/a-/AOh14GhFLgYJAFpYHUS1kBcLzMIT2gKkUyYcjWCuOWM3=s600-p" style="border: none; vertical-align: middle;" width="40" /> - Ben Karl, on behalf of the Google Ads API Team</span>Google Ads Developer Advisorhttp://www.blogger.com/profile/16700526826531306391noreply@blogger.comtag:blogger.com,1999:blog-7815614485808579332.post-81723489680399770812023-11-29T08:59:00.000-08:002023-11-29T08:59:58.273-08:00Google Ads API 2024 release and sunset scheduleWe’re announcing our tentative 2024 release and sunset schedule for upcoming versions of the <a href="https://developers.google.com/google-ads/api/docs/start">Google Ads API</a> to bring greater clarity to your planning cycle. 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.<br />
<table style="border-collapse: collapse; border: none; width=100%;">
<tbody>
<tr style="background-color: #6199df; border-bottom: solid #4d90fe 1px; border-left: solid #4d90fe 1px; border-right: solid #4d90fe 1px; border-top: solid #4d90fe 1px; height: 0px; vertical-align: top;">
<th style="border-bottom: solid #4d90fe 1px; border-left: solid #4d90fe 1px; border-right: solid #4d90fe 1px; border-top: solid #4d90fe 1px; padding: 7px 7px 7px 7px;"><span style="color: white;">Version</span>
</th>
<th style="border-bottom: solid #4d90fe 1px; border-left: solid #4d90fe 1px; border-right: solid #4d90fe 1px; border-top: solid #4d90fe 1px; padding: 7px 7px 7px 7px;"><span style="color: white;">Planned Release<br />Type*</span>
</th>
<th style="border-bottom: solid #4d90fe 1px; border-left: solid #4d90fe 1px; border-right: solid #4d90fe 1px; border-top: solid #4d90fe 1px; padding: 7px 7px 7px 7px;"><span style="color: white;">Projected launch*</span>
</th>
<th style="border-bottom: solid #4d90fe 1px; border-left: solid #4d90fe 1px; border-right: solid #4d90fe 1px; border-top: solid #4d90fe 1px; padding: 7px 7px 7px 7px;"><span style="color: white;">Projected sunset*</span>
</th>
</tr>
<tr>
<td style="border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;">V16</td>
<td style="border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;">Major</td>
<td style="border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;">January/February 2024</td>
<td style="border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;">January 2025</td>
</tr>
<tr>
<td style="border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;">V16.1</td>
<td style="border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;">Minor</td>
<td style="border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;">April/May 2024</td>
<td style="border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;">January 2025</td>
</tr>
<tr>
<td style="border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;">V17</td>
<td style="border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;">Major</td>
<td style="border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;">May/June 2024</td>
<td style="border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;">May 2025</td>
</tr>
<tr>
<td style="border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;">V17.1</td>
<td style="border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;">Minor</td>
<td style="border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;">July/August 2024</td>
<td style="border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;">May 2025</td>
</tr>
<tr>
<td style="border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;">V18</td>
<td style="border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;">Major</td>
<td style="border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;">September/October 2024</td>
<td style="border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;">September 2025</td>
</tr>
</tbody>
</table><br />
*Estimated and subject to change<br /><br />
<strong>Where can I learn more?</strong>
<ul>
<li><a href="https://developers.google.com/google-ads/api/docs/release-notes">Release Notes</a></li>
<li><a href="https://developers.google.com/google-ads/api/docs/sunset-dates">Deprecation Schedule</a></li>
</ul>
Check back for any updates as <a href="http://ads-developers.googleblog.com">the blog</a> is the best place to stay informed about developments in this space.<br /><br />
If you have any questions or need additional help, contact us via the <a href="https://groups.google.com/forum/#!forum/adwords-api">forum</a>.<br />
<span class='byline-author'><img height="40" width="40" src="https://lh7-us.googleusercontent.com/lZj4jeZp49SOLQXFgf5HTGHFXLmMVIB4H_mM4gXfiJgv0PCP3ZQBqaHrfax51I__VLZek48-i1wVB7-UlGRa53DFh_wo98AfzalR7liQpOjNFksdt39OGMZ5HYOh1bbKME0JH9ejZk7dPHwpbriPdrsM81zYx-nEAvqWx_XSTywC0ddZubu1RGMT4TOW8Tb9f-_QvA1BPtegfQo9f751OYpSKpHPv-TsIepvuA" style="vertical-align: middle; border:none;"/> - David Stevens, Google Ads API Product Manager</span>Google Ads Developer Advisorhttp://www.blogger.com/profile/16700526826531306391noreply@blogger.com