Tag Archives: feeds

Asset-based Extensions: Updated Availability and new ValueTrack Parameter

As previously announced, all ad extensions are migrating to the new Asset-based extension paradigm. You must update extensions support in your implementation and migrate existing Feed-based extensions to Asset-based extensions. See the migration schedule for important sunset dates.

What has changed

The following Asset-based extension types are now available to all accounts:
Though originally scheduled for release later this year, Asset-based Image extensions will not be available in the Google Ads API until 2022. When available, we will publish an updated sunset timeline for Feed-based Image extensions to this blog and in our extension migration documentation.

Lastly, the new {extensionid} ValueTrack parameter will be available beginning June 24, 2021. You can use this parameter to track clicks on your Asset-based extensions. The {extensionid} parameter for Asset-based extensions mirrors the behavior of the existing {feeditemid} parameter for Feed-based extensions.

What you need to do

Migrate Callout, Promotion, Sitelink, and Structured Snippet extensions in your accounts to Asset-based extensions using the Google Ads API. We encourage you to do so as soon as possible so as to continue to be able to modify your extensions; Callout, Promotion, Sitelink, and Structured Snippet Feed-based extensions will automatically migrate to Asset-based extensions on October 20, 2021. You will soon be able to opt individual Google Ads client accounts out of this auto migration; the opt out process will be announced on this blog when available. Please see our extension migration guide for the most up-to-date and relevant information. Note that Asset-based extensions are not supported in the AdWords API.

You can now use the {extensionid} ValueTrack parameter to track clicks on any Asset-based extensions that you have created. The {feeditemid} parameter does not apply to any clicks on Asset-based extensions, and {extensionid} does not apply to clicks on Feed-based extensions. To continue attributing clicks correctly, you should update any URLs that currently use the {feeditemid} ValueTrack parameter to also include the new {extensionid} ValueTrack parameter. You should therefore set both {feeditemid} and {extensionid} in the same URL, though only one will be populated depending on the source of the click.

If you have any questions or need additional help, contact us via the forum or at [email protected].

Feed-based Extensions Sunset in Google Ads APIs

Google Ads has recently introduced Asset-based extensions. This new paradigm reduces the complexity of managing extensions when compared to the existing Feed-based extensions. Asset-based extensions will only be supported in Google Ads API.

Asset-based extensions will replace the current Feed-based extensions. All existing Feed-based extensions will automatically migrate in two batches. Other services that use Feeds, such as Location extensions, Dynamic Ads, and Page Feeds, will be discussed in future announcements.

Available to
Available to
Lead Form Google Ads API v6 Google Ads API v6 October 20, 2021 February 15, 2022
Promotion Google Ads API v7 Google Ads API v7 October 20, 2021 February 15, 2022
Structured Snippet
Google Ads API v7 Google Ads API v8
October 20, 2021 February 15, 2022
Hotel Callout
Google Ads API v9
Google Ads API v9
February 15, 2022 April 8, 2022

What do I need to do?
You should migrate any Feed-based extensions and related code that you intend to continue to use to Asset-based extensions as soon as is feasible. You should remove Feed-based extensions after migrating; for a given extension type, any Asset-based extensions will serve instead of Feed-based extensions. See our extensions migration guide for details. Consider developing and testing your Asset-based extension implementation using a test account so as to access all the currently available Asset types.

After the automatic migration dates, you will no longer be able to create or mutate Feed-based extensions in the AdWords API or the Google Ads API. Feed-based extensions will no longer generate new data. You will still be able to issue Feed-related report queries until August 2022; thereafter all Feed-based extension data will be removed and report queries will return errors.

What if the October date is too soon?
You can request to opt individual accounts out of the October auto migration; the process for doing so will be announced in a subsequent blog post. Note that the Feed-based extensions in the first batch will still become unavailable for all accounts in February 2022.

If you have any questions, concerns, or feedback, please contact us via our forum.

Configure Account-level Call Reporting

In October 2018, we introduced the ability to configure account-level call reporting in the Google Ads UI. If a user has set account-level call reporting in their Google Ads account: If your values are being ignored in the API, then your user may have decided to go to the Google Ads UI to enable account-level call reporting.

If you have questions, please reach out to us on the forum.

More AdWords structured snippet header translations!

We’ve enhanced structured snippets to now have even more header translations, increasing from 12 to all AdWords languages. Structured snippets are extensions that highlight products and services in your ads. Existing structured snippets will not change, so no AdWords API code changes are necessary, but consider adding structured snippets to any campaigns targeting the newly available languages.
Here are some resources to get you started with structured snippets:

As always, if you have any questions, please contact us via the forum.

Nadine Sundquist, AdWords API Team

Automatic removal of invalid location extension filters

AdWords offers several different strategies for configuring filters for your Google My Business locations. However, users sometimes choose filters that do not match any locations, which results in no location extensions appearing with ads.

What's changing?
Starting on February 14, 2017, AdWords will perform a daily check to determine if the following location extension feed item filters are not matching any Google My Business locations: If any such invalid filters are found, they will be automatically cleared as outlined in the updated Location Extensions guide.

Please keep the following details in mind:
  • The periodic check will only clear matchingFunction filters on a CampaignFeed or AdGroupFeed for location extensions (placeholderType = 7). It will not clear filters on those objects for location targeting (criterionType = 77).
  • The periodic check will not clear matching functions of the form IDENTITY(false), since these indicate that you want to disable location extensions for a campaign or ad group.
What you should do
  1. To minimize the impact of the periodic check, regularly review your application's location feed setup and ensure that you are choosing filtering options on your PlacesLocationFeedData and matching functions that actually match locations in your Google My Business account.
  2. Make sure that your application will be able to handle the filter changes made by the periodic check.
If you have any questions, please post on the AdWords API Forum.

Customize AdWords ads with ad customizer default values or text ad IF functions

Over the next month, AdWords is rolling out to all accounts two new ways to customize your ads.
  • Default values in Ad Customizers give you an option of providing a default value when referencing a custom value from a feed. This means that you will no longer be required to provide a static ad in your ad group when using ad customizers. Woohoo!
  • IF functions let you insert a customized message in your ad based on who’s searching and what device they’re searching on, all without using a feed.
Default values in Ad Customizers
  • What’s changing? The existing syntax for inserting a custom value from a feed is {=FeedName.AttributeName}. The new syntax allows for an optional default value {=FeedName.AttributeName:default value}, but you can still use the existing syntax if you don’t want to specify a default value. Check out the Customizing text ads guide to learn more about setting up an ad with ad customizers.
  • How does this affect me? If you have colons in your Feed.name or in your FeedAttribute.name, then add a backslash before the colon to escape the colon. Having a colon without a backslash causes anything after it to be interpreted as a default value when used in an ad customizer. If you no longer want to have a static ad in your ad group, then start adding default values to your ad customizers and delete the static ad.
IF functions
  • What’s changing? The new IF function allows text to be specified in a text ad based on device or audience, with the default text being optional. If default text is not specified, then a static ad is required in the ad group. The syntax is:
    • {=IF(device=mobile,text to insert):optional default text}
    • {=IF(audience IN(<userlist1>,<userlist2>),text to insert):optional default text}
  • How does this affect me? If you want to add customized text to your ad based on device or audience, start adding the IF functions to your text ads. For examples, check out the Customizing text ads guide.
Questions? Visit us on the AdWords API Forum or our Google+ page.

Support for internationalization in price extensions for AdWords API

Earlier this year, we added support for managing price extensions to the AdWords API. This included the addition of PriceFeedItem to extension setting services in v201607, and placeholder type ID 35 to feed services in all versions of the AdWords API. At that time, both supported only English price extension type, price qualifiers and price units.

Starting today, we are rolling out support for additional languages in price extension types, price qualifiers and price units. Price extensions’ headers and descriptions will be reviewed in the context of the specified language, and those written in languages other than the specified one will be disapproved.

How to use this feature Note: All PriceTableRow entries must have the same currencyCode or you will get the ExtensionSettingError.INCONSISTENT_CURRENCY_CODES error.

If you have any questions, please post on the forum or the Ads Developers Plus Page.

Support for account-level sitelinks in AdWords API

Sitelinks in ads let you show additional links to specific pages on your website and are an effective way to drive traffic to your business. Account level sitelinks started rolling out recently in the AdWords user interface.

The AdWords API already supports sitelinks at the account level across all versions without any changes. You can use the CustomerExtensionSettingService to read and mutate the existing extension type SitelinkFeedItem, or associate sitelinks via Feed services.

If you have any questions, please let us know on the forum.

Announcing v201502 of the AdWords API

Today we're announcing the release of AdWords API v201502. Here are the highlights:
  • Ad extension services. We heard your feedback about Feed Services being overly complex for many cases. To help simplify ad extension management, we've added new ExtensionSetting services. Existing Feed Services are still supported so you can continue using them. Should you decide to migrate to the new services, we've prepared a migration guide.
  • Account labels. We've expanded support for labels to MCC manager accounts. Now you can tag your accounts with text labels programmatically.
  • In-place URL upgrade for ads. The AdGroupAdService now supports upgradeUrl method which simplifies the Upgraded URLs migration.
  • Updates to reporting. Two new reports have been added: UserAdDistance performance and Label. Reporting now supports skipColumnHeader HTTP header which removes column headers from the produced report. We've also added several new columns across reports, see the release notes for the full list.
  • Shared sets. These are now available to all AdWords API users. Check out this feature if you often need to attach large sets of negative keywords or placements to many campaigns.
  • Support for application deep links. You can now create ads linking to specific activities in your application using AppUrlList.
  • Additional controls on Local Inventory Ads. You can now enable local inventory as well as set product channel / channel exclusivity.
  • Cross-account as well as system-defined conversion trackers are now easy to identify. Look at the conversionTypeOwnerCustomerId in ConversionTracker. Accounts using cross-account conversion tracking can be identified using the effectiveConversionTrackingId.
  • Account-level remarketing tags can now be retrieved using CustomerService RemarketingSettings.
  • The new TargetOutrankShare bidding strategy is now supported.

If you're still using v201406 of the AdWords API, please note that it's being sunset on April 6th, 2015. We encourage you to skip v201409 and migrate straight to v201502. If you're using v201409, be aware it's now marked deprecated and will be sunset on July 14th, 2015.

As with every new version of the AdWords API, we encourage you to carefully review all changes in the release notes and the v201502 migration guide. The updated client libraries and code examples will be published shortly. With this release, we've also updated the Required Minimum Functionality document to include some of the newly added features. If you have any questions or need help with migration, please post on the forum or the Ads Developers Plus Page.

New CallOnly creative type in AdWords API

Call-only ads in AdWords allow you to show mobile-ready ads that feature a click-to-call button and descriptive text, so your customers can call you directly from mobile search results. The AdWords API v201409 release introduced support for call-only ads through a new creative type: CallOnlyAd.

These new CallOnlyAds are set up just the same way as TextAds, with the addition of a few fields useful for the new type. In Ruby, for example, you would set up a new CallOnlyAd with a hash like this:

:xsi_type => 'CallOnlyAd',
:description1 => 'Visit the Red Planet in style.',
:description2 => 'Low-gravity fun for everyone!',
:display_url => 'www.example.com',
:phone_number => '(555) 555-5555',
:business_name => 'Universal Cruises',
:call_tracked => true,
:phone_number_verification_url => 'www.example.com/landing_page'
You can also set the conversionTypeId if you want to measure calls in a specific conversion type. Otherwise, tracked calls will use a default conversion type.

The phoneNumberVerificationUrl is a new field for CallOnlyAds. If included, we will crawl the page you specify to look for the phone number for verification; this can speed up the approval process. Otherwise, we will have to crawl your entire website.

Previously, call-only ads were set up using feeds, specifically with the ONLY field (placeholder ID 4) within the Call placeholder type (placeholder type ID 2). The ONLY field will sunset in June 2015, so you should finish migrating all your existing call-only ads to the new CallOnlyAd creative type before that time. It is recommended that you create new campaigns to house your CallOnlyAds separately from other ad types.

As always, if you have any questions about this change, please contact us on the forum or via our Google+ page.