Posted:
Starting today, we are deprecating the use of the Products.get and Products.list methods for retrieving all product attributes. These methods still work as expected today, but they may change in the future to return only partial information about products. If you want to retrieve all product attributes, you should use the Productstatuses.get and Productstatuses.list methods instead, which now optionally provide product attributes in addition to product issues and approval statuses.

Note that the Productstatuses.get and Productstatuses.list methods still do not return product attributes by default. To request product attributes be included, we have added an optional includeAttributes argument to these methods. When set, the resources returned by Productstatuses.get and Productstatuses.list will contain an additional product field that contains the attribute information.

If you have any questions or feedback about the changes to retrieving products or other questions about the Content API for Shopping, please let us know on the forum.

Posted:

Over the past few months, a couple new projects designed to streamline AdMob and DFP mediation have launched: mediation groups, open source adapters, and network-specific guides.

Open Source Mediation Adapters on GitHub

In partnership with some of our mediation partners, we've open-sourced many of the most popular adapters used with DFP and AdMob mediation. You can see for yourself at our GitHub repos for iOS and Android:

In addition to adapter source, there's also a project containing example adapter and custom event implementations, plus a test app.

Import Mediation Adapters with CocoaPods and Gradle

In addition to open-sourcing the adapters, we've also made importing compiled adapters into your projects simpler by uploading them to Bintray and making them available via jCenter and CocoaPods. Rather than downloading and manually including libraries, publishers can get the correct adapter simply by updating their Podfile with a line like this:

    pod 'GoogleMobileAdsMediationMoPub'

...or their build.gradle file with a line like this:

    compile 'com.google.ads.mediation:mopub:11.10.1.0'

With many ad networks choosing to distribute their SDKs in the same manner, it's frequently possible to bring a new mediation network into an app with nothing more that a Podfile or build.gradle tweak. For instructions on which gradle artifacts and CocoaPods to use, check the AdMob Mediation Overview (iOS, Android) and look for networks in the "Open source and versioned" section.

Network-specific guides

Each mediated network is a little bit different. They have their own front-end, their own reporting systems, and their own vocabulary including things like "placement," "location," or "zone." Once you start trying to add a second or third network to your mediation waterfall, things can get confusing in a hurry.

To help publishers navigate through these details, we've created network-specific guides for the mediation partners who have joined our open source repositories. Each one includes step-by-step instructions (with screenshots) that guide a publisher all the way from configuring their account in the mediated network's web site to setting up their mediation stack and importing the right adapter.

For more details, there's no better place to go than the guides themselves. You can find them in the AdMob Mediation Overview (iOS, Android).

Questions?

If you've got questions about our open source adapters or the best ways to get up and running with mediation, stop by our support forum.

Posted:

Register now for the AdWords scripts workshops!

We’re pleased to announce a new set of workshops for AdWords scripts in 2017. The workshops will be held at the following locations:

  • Hamburg, Germany: 10 August 2017
  • London, UK: 15 August 2017
  • Singapore: 15 August 2017
  • Sydney, Australia: 18 August 2017
  • São Paulo, Brazil: 20 September 2017
  • Buenos Aires, Argentina: 22 September 2017

This round of workshops will cater to both novice and experienced scripters. We'll have code labs where you’ll build your own scripts from scratch with help from the scripts team. Bring your laptop and some scripting ideas, and we’ll turn them into reality!

Whether you’re an advertiser who wants to learn how to use scripts to automate your account management tasks, a developer who wants to polish your skills, or you'd just like to bounce around some ideas, you can find it all in these workshops.

Availability is limited, so be sure to visit our website early to check out the full agenda and sign up.

If you have any questions about the workshops, you can post them on our forum.

Posted:

On Thursday, August 31st, 2017, in accordance with the deprecation schedule, v201608 of the DFP API will be sunset. At that time, any requests made to this version will return errors.

If you’re still using this version, now’s the time to upgrade to the latest release and take advantage of new features like support for creating ImageOverlayCreatives, Partner companies, new team actions, and the change history table. To do so, check the release notes to identify any breaking changes, grab the latest version of your client library, and update your code.

Significant changes include:

This is not an exhaustive list, so as always, don't hesitate to reach out to us with any questions. To be notified of future deprecations and sunsets, join the DFP API Sunset Announcements group and adjust your notification settings.

Posted:
Over the years, many developers have let us know they'd like to see more real-world AdWords API examples to help them drive their own success. To deliver on this, we've worked closely with our partners to share their innovative strategies for using the AdWords API to boost their business.

You can now find these case studies on the developer website. We plan to post more in the future, so check back for fresh insights from digital marketers on making the most of the AdWords API.

If you have any questions or feedback regarding these partner stories, please let us know on the forum.

Posted:

Starting with iOS 10, Safari on iPhone and iPod supports inline video playback. This opens up some new rendering options for your video player and the IMA SDK, but also introduces some caveats.

So what changed?

Previously, Safari on iPhone played all video in a fullscreen player. With iOS 10, Safari now supports the playsinline parameter on a video element to play that content inline.

Fullscreen playback on iPhone Mobile Safari. The default with iOS 10+ and the only option for iOS <= 10

Inline playback on iPhone Mobile Safari. A new option in iOS 10+

How will the IMA SDK work with inline video playback on mobile Safari?

On iPhone Safari, the IMA SDK re-uses your content player to play ads. We call this "custom playback." So if you add the playsinline parameter to your content video tag, IMA ads will also play inline - it's as easy as that.

Inline video playback also opens the door for the IMA SDK to play skippable ads on iPhone Mobile Safari. Previously these ads were dropped by the SDK because we could not render a skip button on top of the fullscreen player. If your player is inline, however, we can render that skip button, but there's a catch.

So what's the catch?

IMA SDK skippable ads are not supported with the "custom playback" method. To use skippable ads, you'll need to use our new API, ImaSdkSettings.setDisableCustomPlaybackForIOS10Plus(). This will cause the IMA SDK to render the ad in its own inline player on top of your content player. That player does support skippable ads. Disabling "custom playback", however, will break your fullscreen implementation for iPhone web.

Why do I need custom playback on iOS?

The need for "custom playback" on iOS boils down to one thing - fullscreen support. Mobile Safari only supports fullscreen via videoPlayer.webkitEnterFullscreen(). In this mode, the SDK cannot render anything on top of your content player. Therefore, to support fullscreen ad playback we must use "custom playback".

What if I want skippable ads and fullscreen support?

Unfortunately, this is not possible on mobile Safari today - you must choose between support for skippable ads and support for fullscreen.

What's the deal with iOS <10?

Prior versions of iOS (<10) do not have support for playsinline, so pages in those environments will always use "custom playback" mode, with support for fullscreen but no support for skippable ads.

I'm still confused.

That's OK! This is a complicated change with a lot of moving parts. Below is a support matrix outlining what is and is not supported based on your content player's playsinline mode and the "custom playback" mode you've set for the IMA SDK. Remember, this matrix only applies to iOS 10 and above - anything running version iOS 9 or below falls into the top left quadrant of the matrix, as this is the only option.

Posted:

To help developers integrate with the IMA SDK, we're always looking for ways to provide both basic and advanced examples of features supported by the SDK. Toward this end, we're pleased to release a sample JavaScript VPAID creative and sample ad tag to aid in troubleshooting JavaScript VPAID 2.0 creatives. You can check out the new sample on GitHub, and find the new ad tag in our list of IMA sample tags as 'Sample VPAID 2.0 Linear'.

The VPAID sample plays a linear video ad and demonstrates the use of the video player proxy element required to run a VPAID ad in a secure iframe.

If you have any questions, feel free to contact us via the IMA SDK developer forum.

Posted:

We've recently released some improvements to the DFP Python Library alongside support for v201705. Our goal was to reduce the boilerplate required to construct entities and DFP statements—keep reading to see what's new.

Improved statement creation utility

Previously you had to construct filtering statements manually out of strings, and write a lot of code to bind variables into statements. Here's what the code commonly looked like:

values = [{
    'key': 'startDateTime',
    'value': {
        'xsi_type': 'DateTimeValue',
        'value': {
            'date': {
                'year': start_date.year,
                'month': start_date.month,
                'day': start_date.day
            }
        }
    }
},{
    'key': 'orderName',
    'value': {
        'xsi_type': 'TextValue',
        'value': 'My Order%'
    }
}]
statement = dfp.FilterStatement('WHERE startDateTime > :startDateTime AND '
                                'orderName LIKE :orderName', values)

Dealing directly with strings opens up many potential errors, and we decided that the above was way too much typing just to bind variables. To make things easier, we've introduced a new utility called StatementBuilder. Now you can write code as simple as:

statement = (dfp.StatementBuilder()
             .Where('startDateTime > :startDateTime AND orderName LIKE :orderName')
             .WithBindVariable('startDateTime', start_date)
             .WithBindVariable('orderName', 'My Order%'))

StatementBuilder will automatically infer your variable types and construct the values object. You can then pass this to an API request in the same way that you did with FilterStatement:

response = creative_service.getCreativesByStatement(statement.ToStatement())

Automatic datetime unwrapping

Previously, you had to break out dates and datetimes into our format when constructing entity dictionaries:

line_item = {
    'orderName': 'Awesome New Order',
    'startDateTime': {
        'date': {
            'year': start_date.year,
            'month': start_date.month,
            'day': start_date.day
        },
        'hour': start_date.hour,
        'minute': start_date.minute,
        'second': start_date.second,
        'timezoneid': start_date.tzinfo.zone,
    },
    # ...
}

Starting in this version, you can simply pass a native Python date or timezone-aware datetime object directly:

start_date = datetime.datetime(2017, 6, 1, 9, 0, 0,
                               tzinfo=pytz.timezone('America/New_York'))
line_item = {
    'orderName': 'Awesome New Order',
    'startDateTime': start_date
    # ...
}

Our library will unwrap the datetime object into our format automatically. We're continuing to support passing the full dictionary, so there's no requirement to migrate your code.

We hope these changes will make building DFP integrations in Python easier. As always, please feel free to get in touch on the forum with any questions.

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

Posted:

AdWords API v201607 will be sunset on June 27th, 2017, after which all v201607 API requests will begin to fail. This version was deprecated on February 28th, 2017. If you are still on v201607, we recommend that you skip v201609 and v201702 and migrate directly to v201705. Please be sure to migrate prior to the sunset to ensure your API access is unaffected.

We've prepared various resources to help you with the migration:

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

Posted:

Starting today, you can use the Accounts.claimwebsite method to claim the configured website for Merchant Center accounts. This means that you are no longer required to manually claim the website using the Merchant Center, but you can instead automate this part of account creation as well. As before, the website that you are attempting to claim must first be verified, either manually or using the Google Site Verification API.

If the call is successful, then you will receive an empty response with HTTP status code 200. If it is not, then you will receive an error response explaining why the claim attempt failed.

Note: If another Merchant Center has already claimed the website you are attempting to claim, you cannot use the API to overwrite their claim with your own. Instead, please follow the manual process instead.

In addition, there is a new websiteClaimed field in the resource representation returned by Accountstatuses. This field contains true if the associated account has successfully claimed its website.

If you have any questions or feedback about using the Content API to claim websites or any other questions about the Content API for Shopping, please let us know on the forum.

Posted:

Today we're announcing the release of AdWords API v201705. Here are the highlights:

If you're using v201607 of the AdWords API, please note that it will be sunset on June 27, 2017. We encourage you to skip v201609 and v201702 and migrate straight to v201705. If you're using v201609, be aware it's now marked deprecated and will be sunset on October 2, 2017.

As with every new version of the AdWords API, please carefully review all changes in the release notes and the v201705 migration guide. The updated client libraries and code examples will be published within the next 48 hours.

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

Posted:
Update: Clarified AdGroupType values introduced in v201705.
Update 06/22/2017: Clarified information in last paragraph.

Starting this week, users of the new AdWords interface will be able to create dynamic search ads (DSA) through the new dynamic ad group type in Search campaigns with Dynamic Search Ad settings. This has some consequences in the AdWords API as described below.

How does this impact the AdWords API?
If your managed accounts are eligible for the new AdWords interface, be aware that if users create dynamic ad groups in the interface, AdGroupType values for the dynamic ad groups will be returned as SEARCH_DYNAMIC_ADS in v201705 and UNKNOWN for earlier API versions. Here are the rules applied to the dynamic ad group type: As described in this guide, to create dynamic search ads in the AdWords API, some settings and criteria are required, such as WebPage and DynamicSearchAdsSetting. These settings can still be added and modified in the dynamic ad group type.

What should you do?
If your application manages accounts that have access to the new AdWords interface, or if you have ad groups with type SEARCH_DYNAMIC_ADS for v201705 and UNKNOWN for earlier versions, ensure that you properly handle these cases by: In addition, for v201705, you cannot add features related to Dynamic Search Ads to ad groups with AdGroupType of SEARCH_STANDARD. Examples of Dynamic Search Ad features include the Webpage criterion and ExpandedDynamicSearchAds. However, for the earlier versions, ad groups with AdGroupType of SEARCH_STANDARD are not affected by this change. You can still continue adding expanded text ads, dynamic search ads, call ads, and various criterion types to them.

As always, if you have any questions, please post on the forum.

Posted:
Mobile has fundamentally changed how we live our lives. With our devices never more than an arm’s length away, people can find, watch or buy anything at anytime. That’s why earlier this year we shared that we’re developing a new, cloud-based measurement solution for YouTube, designed for a mobile world. Today, we’re announcing the beta for this solution, Ads Data Hub, to help advertisers get more detailed insights from their campaigns across screens while also protecting user privacy.

We are also announcing that Ads Data Hub is a solution not just for YouTube, but a tool that offers access to more data and helps unlock actionable insights across Google ad platforms, including the Google Display Network and DoubleClick. And with Ads Data Hub now in beta, we’re expanding who can use it.

Built on infrastructure from Google Cloud, including BigQuery, Ads Data Hub gives advertisers or their preferred measurement partners access to detailed, impression-level data about their media campaigns across devices in a secure, privacy-safe environment. Data from other sources, such as a CRM system or marketing database, can be incorporated as well. With this full view, advertisers or their partners can analyze the data and draw out insights specific to their business.

For example, if an e-commerce retailer wants to understand what the path to conversion looks like, they can bring additional online data about their customers into BigQuery, and Ads Data Hub will enable them to combine that data with their ads data so they can see what a typical journey is from first encountering a user until conversion.

Consistent with our commitment to privacy, no user-level data can be removed from the secure Cloud environment. Impression-level data is only accessible for the purposes of analysis and generating insights. In the future, advertisers will be able to act on the insights they get from Ads Data Hub and buy media with greater precision.

As an early alpha partner, Omnicom Media Group helped to define the solution and has seen significant value from both the amount of data available through Ads Data Hub and the broad set of analyses and custom queries that are possible.

"With the complexity of today's consumer journeys, we are seeing that marketers are looking to solve harder business challenges than ever before. Through our partnership with Google and our use of Ads Data Hub, we will be able to answer a broader range of questions and expand our analytical services." - Slavi Samardzija, Global CEO, Annalect, An Omnicom Media Group Company

With the shift to mobile, consumer behavior has changed for good. Marketers need tools to help them make sense of this new world, and Ads Data Hub is a key step forward.

Posted:
Today we’re pleased to announce the v201705 release of the DFP API. This release updates the ReportService to be at parity with the Ad Exchange Seller REST API.

Additionally, v201705 adds support for creating ImageOverlayCreatives and new Partner companies.

For a full list of API changes in v201705, see the release notes.

With each new release comes a new deprecation. If you're using v201608 or earlier, it's time to look into upgrading. Also remember that v201605 will be sunset at the end of May 2017.

As always, if you have any questions, feel free to drop us a line on the DFP API forums or the Ads Developer Google+ page.

Posted:
I/O is a magical time at Google. Every year, thousands of developers gather in Google's backyard to share new product ideas and learn about our latest innovations in computing.

We're meeting at an exciting time for the developer community. It's a time when consumers have more choices than ever before—like where to shop, what to watch, which games to play and how to communicate with friends and family. Your product needs to stand out. You need tools to help your business grow. And you need to make sure your users are happy.

We think we can help.

This afternoon, my team and I will share 3 new innovations for developers to make it easy for users to pay for your services, build profitable businesses and grow your user base. Check out our live stream here.
Enabling users to pay with Google

Starting today, our suite of payment solutions will be expanding. The Google Payment API enables merchants and developers to turbocharge checkout conversion by offering your users an easy way to pay with credit and debit cards saved to their Google Account. Users will have multiple Google payment options at their fingertips, like a credit or a debit card previously saved via Android Pay, a payment card used to transact on the Play Store or a form of payment stored via Chrome. And they'll be able to use these saved payment options in third-party apps and mobile sites, as well as on Google Assistant when they are on-the-go.
Paying with Google for Panera Bread on Google Assistant

For users, this means faster checkout. Now they'll never miss a deal because they're stuck on a bus and don't want to pull out their credit card in front of strangers. They'll no longer experience the pain of stumbling on a sale that ends at midnight when they're tucked in bed with their credit card out of reach. Users can save time and headache by using credit and debit cards they've already saved to their Google Account whenever they see the option to pay with Google on supported apps or sites.

For developers, this API is a significant innovation that can enable faster checkout, drive more conversions, increase sales and reduce abandoned carts—all with a simple integration. Learn more about our Google Payment API here.
Earn more from your apps with the brand new AdMob
People turn to their mobile devices throughout the day to shop, communicate and stay entertained. For developers, in-app purchases are one way to monetize. Ads are another way.
AdMob was built to support the app ecosystem. With over 1 million apps across iOS and Android, AdMob has paid over $3.5 billion dollars in ads revenue to developers. But there's more we can do to help you succeed.

Today, we're introducing a completely redesigned AdMob. Rebuilt from the ground up, AdMob is now simpler to use and delivers richer insights about your users' in-app experiences.

Simpler to use: We've applied Material Design to all aspects of the AdMob look and feel to deliver an easy-to-use and intuitive experience across the entire platform—on mobile and desktop. You'll get more done in less time. Below you can see how easy it is to pick an app that you're monitoring, check out its key metrics and then quickly take action to fine-tune its performance.

Redesigned AdMob experience

Deeper insights:
We've also integrated Google Analytics for Firebase into the core of the redesigned AdMob so you have quick access to the metrics that matter most for your business. Once you link your AdMob and Firebase accounts, you'll have access to detailed ad revenue data and user insights like time spent in the app and in-app purchases—all in one place.

Google Analytics for Firebase dashboard in AdMob
Know your user, find your user with Universal App Campaigns
Earning money from your app is one piece of the puzzle. You also need to think about how to grow your user base.

Google's app innovations have delivered over 5 billion installs from ads and we are now helping developers drive over 3 billion in-app events per quarter—like users adding something to their cart or reaching level 3 of a game. Developers have gravitated toward Universal App Campaigns (UAC) as the "one stop shop" campaign type that scales your reach and maximizes app installs across Google's largest properties: Google Play, Search, YouTube, Gmail and the Display Network. UAC uses Google's machine learning technology to evaluate numerous signals in real time, refining each ad to help you reach your most engaged users. We're continuing to double down on UAC, with all new innovations being built into UAC to make app promotion even more effective.
Engage users in key moments of discovery with new UAC placements in Google Play 
Android reaches more than 2 billion active devices every month, with Google Play available in 190+ countries around the world. It's the place users come to discover new apps and games. Beyond searching for apps to try, users are increasingly browsing the Play store and finding recommendations for new apps. 
To help those users discover more of your apps, we are introducing new ad placements on the home and app listing pages in the Google Play Store. These new placements, available exclusively through UAC, help you reach users in "discovery mode" as they swipe, tap and scroll in search of their next favorite app. 
New ad placements reach users browsing in Google Play

Discover more of your best users with new bidding options in UAC 
Some users are more valuable to your business than others, like the players who level-up in your game or the loyal travelers who book several flights a month. That's why we're expanding Smart Bidding strategies in UAC to help you acquire more of these high-value users. Using Smart Bidding, you can tailor bids for your unique business goals - target cost per acquisition (tCPA) or target return on ad spend (tROAS). UAC delivers the right users based on your objectives: installs, events and, coming soon, value. This update starts rolling out to iOS and Android developers and advertisers in the coming months. 
Introducing App Attribution Partners, a new measurement program 
Many developers rely on third-party measurement providers to measure the impact of ads and gain valuable insights about how users engage with your app. To help you take action on these insights in a faster and more seamless way, we are introducing App Attribution Partners, a new program designed to integrate data from 7 global companies right into AdWords.

Welcome to adjust, Adways, AppsFlyer, Apsalar, CyberZ, Kochava and TUNE... we're thrilled to have them onboard!

AdWords' integration with these partners ensures that you have consistent, reliable and more granular data where you review app metrics. Now you can take action with confidence and stay on top of your business performance.
As consumers live more of their lives online, it's increasingly important for developers to build user-centric experiences in everything that you do—from the apps you design, to the experiences you deliver, to the ways you help people transact. We know it's not always easy, so Google is here to help.

We look forward to continuing on this journey with you.

Posted:
Update: this change will go live in June 2017.

In June 2017, AdWords will begin gradually altering the specifics of the Enhanced CPC bidding strategy. If you're not familiar with the Enhanced CPC (ECPC) bidding strategy, it works by adjusting the bids for clicks that seem more likely to lead to a conversion. Clicks that seem unlikely to convert will get lower bids, while those more likely to convert will have the bid increased.

Currently, the strategy does not increase bids by more than 30% after bid modifiers are applied. Starting in June, this bid cap will be eliminated over time in order to get more clicks that are likely to convert. On Search and Display, the goal of the strategy will be to help you get more conversions while maintaining the same cost-per-acquisition (CPA) as you get with manual bidding. On Shopping, the goal of the strategy remains to help you get more conversions while maintaining the same cost as you get with manual bidding. The strategy will still respect your manual bids by trying to keep the average CPC below the max you set, which is done in the CpcBid.

This change will allow our system more flexibility to improve performance, and we will be monitoring the effects closely to make adjustments as necessary to continue to fine tune ECPC.

If you are an API user, there is no action required on your part for this change to take effect. The setup in the API works the same as before, so you can use your existing version to make any changes you may want to your account as a result of this change in functionality.

If you have any questions about this change or other API features, please post on the forum.

Posted:
Today we're releasing v2.8 of the DCM/DFA Reporting and Trafficking API. Highlights of this release include: Details of these and all other changes are covered in our release notes.

Deprecation and sunset reminder

In accordance with our deprecation schedule, this release marks the beginning of the deprecation period for v2.7, which will sunset on November 30th, 2017. After this date, any requests made against v2.7 will begin returning errors.

As a final reminder, API version 2.6 will be sunset on May 31st, 2017. To avoid an interruption in service, all users are required to migrate to a newer version before the sunset date.

Learn More

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

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

Posted:
We're excited to announce support for additional extension types in AdWords scripts starting today. The newly supported extension types are:
  • Message extensions, supported at the campaign and ad group level. These allow mobile users to send a text to your business directly from the ad.
  • Structured snippet extensions, supported at the campaign and ad group level. These allow you to highlight specific aspects of your products.
In addition, we're adding support for account level sitelink extensions, which were already supported at the campaign and ad group levels.

You can see all the technical details for how to implement these over on our AdWordsApp.Extensions documentation, or you can check out some example code using these extension types on our examples page.

If you have any questions about these changes or AdWords scripts in general, you can post them on our developer forum.

Posted:
Starting on May 15, 2017, we will enforce new queries-per-second (QPS) limits on calls to the Content API for Shopping. This change will help with maintaining stability and uninterrupted access to all users of the API. Currently, almost all existing users already conform to the new QPS limits we will enforce, so unless you are directly contacted by us, you should not see any changes.

The new QPS limits will be in addition to the existing per-minute and per-day quotas on method calls. However, these limits will be enforced per Google API Console project, unlike the method call quotas which are enforced on individual Merchant Center accounts. Another difference is that the QPS limit will be for individual HTTP requests, not for individual method calls, so a single HTTP request to the custombatch method will count as a single call against the QPS limit. This is an additional reason to use custombatch methods if you plan on making many calls to a single service within a short time period. Once these limits are in force, they will be documented along with the other published limits for the Content API for Shopping.

If you have any questions or feedback about the QPS limits or other questions about the Content API for Shopping, please let us know on the forum.

Posted:

We are excited to announce support for two new features in AdWords Scripts: BudgetOrders and UserLists.

BudgetOrders: We are introducing read-only support for BudgetOrders. You can now access your BudgetOrders to retrieve information like account-level spending limit and credits from Google (note that your account must be on consolidated billing to use these features).

UserLists: You now have the opportunity to read and write some of the fields associated with the UserLists in your shared library. You can retrieve member counts, update membership lifespan, and open or close your user lists to new members.

When you're ready to try it out or learn more, check out the BudgetOrder and UserList sections of the left navigation bar under our AdWordsApp documentation. If you have any questions about this new feature or AdWords scripts in general, you can post them on our developer forum.

Posted:

With the advent of video players that support streaming media formats such as HLS and DASH, publishers can now easily support these formats with the IMA SDK for Android. Here is a list of steps to make this work:

  • Use a video player that can play streaming video, such as ExoPlayer.
  • Inform the SDK of your video player's capabilities.

The latter is done via the SDK's AdsRenderingSettings API. Create a new instance of AdsRenderingSettings and then create a list of MIME types you plan to support:

AdsRenderingSettings adsRenderingSettings = 
    ImaSdkFactory.getInstance().createAdsRenderingSettings();
ArrayList arrayList = new ArrayList();
arrayList.add("application/x-mpegURL"); //HLS
arrayList.add("application/dash+xml"); //DASH
adsRenderingSettings.setMimeTypes(arrayList);

Then initialize the AdsManager using these AdsRenderingSettings:

adsManager.init(adsRenderingSettings);

This will allow the SDK to choose streaming ad media to play in your video player. Make sure to add any additional MIME types you plan to support, such as MP4, as this approach assumes that any MIME types not passed in are not supported.

FAQ

How do I play HLS ads using the IMA SDK for iOS?

The default video player used by the iOS IMA SDK supports HLS, so it is not necessary to set that in AdsRenderingSettings.

Will this work with the SDK-owned player?

No, currently you must use custom playback by implementing the VideoAdPlayer interface. For an example of how to do this, check out our guide on custom playback or AdvancedExample.

If you have any questions, feel free to contact us via the support forum.

Posted:
On Wednesday, May 31, 2017, in accordance with the deprecation schedule, v201605 of the DFP API will be sunset. At that time, any requests made to this version will return errors.

If you're still using this version, now's the time to upgrade to the latest release and take advantage of new features like native ad styling, additional DAI fields, and the change history table. To do so, check the release notes to identify any breaking changes, grab the latest version of your client library, and update your code.

Significant changes include:

This is not an exhaustive list, so as always, don't hesitate to reach out to us with any questions. To be notified of future deprecations and sunsets, join the DFP API Sunset Announcements group and adjust your notification settings.

Posted:
Hello PHP developers! In December 2016, we announced the stable release of the new ads PHP library and the deprecation of the old one. This is a reminder to upgrade to the new library by July 31, 2017.

The new PHP library has many improvements such as support of namespaces and Composer installation. It is currently available as the master branch on GitHub. We also provide an upgrading guide to help you during this upgrade.

The old library has been moved to the deprecated branch with reduced support and will reach end of life (EOL) on July 31, 2017. We recommend you complete your upgrade before that date. Past this date, the deprecated branch can still be used until all of the AdWords / DFP API versions it supports are sunset, but we will not add support and examples for new API versions, nor fix any bugs.

If you have questions about upgrading or need help, as always, feel free to ask on the GitHub issues page. If you have questions regarding AdWords or DFP API, please drop us a line on the AdWords or DFP API forums.

Posted:


Mobile now accounts for over half of all web traffic1, making performance on small screens more important than ever.

Despite this increase, a recent study by Google found that the average time it takes to load a mobile landing page is 22 seconds. When you consider that 53% of mobile site visitors will leave a site if it takes more than three seconds to load, it’s clear why conversion rates are consistently lower on mobile than desktop.

Website visitors now expect their mobile experience to be as flawless as desktop, and the majority of online businesses are failing to deliver.

With this in mind, we’re introducing the new Google Mobile Sites certification. Passing the Mobile Sites exam signals that you have a demonstrated ability to build and optimize high-quality sites, and allows you to promote yourself as a Google accredited mobile site developer.

Through codifying best practice in mobile site development, we hope to improve the general standard of mobile design and speed, and make it easier to find the best talent.

What the exam covers
To pass the exam, you’ll need to show proficiency across mobile site design, mobile UX best practice, mobile site speed optimization, and advanced web technologies. We’ve put together a study guide that covers everything you’ll need to know.

What are the benefits?
We know that a lot of web developers are doing great work on mobile sites - this certification is a way of promoting them to a wider audience. Being certified means being recognized by Google as an expert in mobile site optimization, which will make you more accessible and attractive to potential clients looking for a good match for those services.

The certification will display on your Partners profile, helping you stand out to businesses looking for mobile site development, and can also be shared across social media.

How to sign up
Check out our study guide to get started. Then, to take the exam, please click on the Mobile Sites certification link and log in to your Google Partners account. If you’re not signed up yet, you can create a Partners user profile by registering here.

The exam is open to all web developers globally in English and, once completed, the certification will remain valid for 12 months.

1 Google Analytics data, U.S., Q1 2016 from Find Out How You Stack Up to Industry Benchmarks for Mobile Page Speed

Posted:
When making any AdWords API call, you should always remember to handle the possibility of a rate limit error properly. Do you feel this is a bit troublesome and want to solve it in one go?

We’ve just released a new Java client library extension named “RateLimiter”, which automatically adds rate limit error handling logic (wait-and-retry) across all threads in a single JVM, so you can focus on implementing core business logic. More excitingly, you just need to change a few lines of code to use it! Check out this open-source extension on GitHub, and follow the instructions to give it a try.

As always, feel free to ask questions or give us feedback via the forum or the project’s issue tracker.

Posted:

We're pleased to announce that we'll be holding a series of Display Ads API Workshops in April 2017. These workshops are a half-day of tech talks, group discussions, networking activities, and one-on-one time with Googlers geared toward developers who use the DoubleClick for Publishers API, Interactive Media Ads SDK, or Mobile Ads SDKs.

These workshops offer you the following:

  • A great way for you to meet with the display ads API team to ask questions in person and give feedback directly to us.
  • A great opportunity to meet and exchange ideas with fellow developers in the community.
  • Previews of API and SDK roadmaps and select upcoming features.
  • For the first time, one-on-one office hours with ads API Googlers. Sign-ups will be available on-site on the day of the workshops.

The workshops will be held in the following cities:

For more information on the agenda and a preview of our talks, please see our workshop page.

As always, if you have any questions, feel free to drop us a line on the DFP API forums, IMA SDK forums, Mobile Ads SDK forums, or the Ads Developer Google+ page.

Posted:
We have added support for AdWords API v201702 reports in AdWords scripts. The major changes in this release are:
  • New conversion fields to help when changing attribution models: CostPerCurrentModelAttributedConversion, CurrentModelAttributedConversions, CurrentModelAttributedConversionValue, and ValuePerCurrentModelAttributedConversion
  • Fields of type Double that don't represent percentages now return without a thousands separator and with two decimal places.
  • The AdGroupName and AdGroupStatus fields of the Audience Performance Report now behave as segments
  • All fields in the Call Metrics Call Details Report now behave as attributes
See the AdWords API release notes for more details.

v201609 will remain the default version for reports until the week of April 24, 2017. This gives you enough time to verify your scripts and make sure they work with the latest report version.

If you use API versioning in your reports, you need to modify your code to use v201702:
var report = AdWordsApp.report(query {
  apiVersion: 'v201702'
});
If you don't use API versioning, no code changes are required. Your reports will continue using v201609 for now, and switch to v201702 when we make v201702 the default version the week of April 24, 2017.

If you have any questions about these changes or AdWords scripts in general, you can post them on our developer forum.

Posted:
Are you tired of reading? Do you prefer to learn by watching? Then the latest series of AdWords API Workshop videos is for you! Visit the Ads Developers YouTube channel to discover more.

Recorded as part of the AdWords API Workshops - Fall 2016 events that toured 7 countries around the world, these short and easy-to-digest videos were presented by the experts from the AdWords API team. They cover the content presented in the technical workshop sessions on the following topics: The videos have subtitles available in English, Chinese (Simplified), and Japanese as well as auto-generated options for other languages.

Now you can watch all the Fall 2016 videos at your convenience. Also make sure to look at the associated slide decks that accompany these presentations.

Interested in attending similar workshops? Follow this blog for future workshop announcements.

Have questions? Feel free to visit us on the AdWords API Forum.

Posted:
Starting this week BudgetOrderService get requests are available for all users, regardless of API version.

Previously, usage of this service was allowed on a whitelist-only basis. Now, you can retrieve your budget orders without being added to the whitelist. This enables you to view the account-level spending limit.

You still need to be whitelisted to modify your budget orders via the API; this new access applies only to viewing existing budget orders. Keep in mind that BudgetOrderService will only work on accounts that have been set up for consolidated billing; otherwise you will get an error.

To get started, check out the BudgetOrderService guide. If you have any questions about this change or other API features, please post on the forum.

Posted:

We recently launched v3.3.0 of the Google Mobile Ads Unity Plugin with support for ad position offsets and Unity 5.6 compatibility. The updated v3.3.0 Unity package is available for download from the Google Mobile Ads Unity Plugin GitHub repository.

Ad positions offsets

Version 3.3.0 of Google Mobile Ads Unity Plugin adds the ability to specify an x and y position for both BannerView and NativeExpressAdView objects. To position ad views outside of the existing AdPosition values, provide x and y offsets instead of an AdPosition when instantiating an ad view, as shown below.

BannerView bannerView = new BannerView(adUnitId, AdSize.SmartBanner, 50, 50);

The code snippet above creates a BannerView offset from the top-left corner of the screen by 50 density independent pixels in the x and y axis. NativeExpressAdView positions can be offset in the same manner, as shown below.

NativeExpressAdView nativeExpressAdView = new NativeExpressAdView(
        adUnitId, new AdSize(320, 150), 50, 50);

Support for Unity 5.6

Although Unity 5.6 is still in beta, the latest version of the Google Mobile Ads Unity plugin includes changes to be fully compatible with the upcoming release.

In addition to the new features outlined above, it is recommended to update to the latest version of the Google Mobile Ads plugin to take advantage of stability and bug fixes. The source code and a sample app for the plugin are available in our GitHub repo, as is the full changelog for this release. If you have any questions about Unity integration, you can reach us on our developer forum.