ACTIVE_VIEW_NOT*
Column.TOTAL_ACTIVE_VIEW_NOT_VIEWABLE_IMPRESSIONS
ReportError.COLUMNS_NOT_SUPPORTED_FOR_REQUESTED_DIMENSIONS
// Retrieve your ad group.var adGroup = AdWordsApp.adGroups().get().next();// Create a keyword operation.var keywordOperation = adGroup.newKeywordBuilder(). .withCpc(1.2) .withText("shoes") .withDestinationUrl("http://www.example.com/shoes") .build();// Optional: examine the outcome. The call to isSuccessful()// will block until the operation completes.if (keywordOperation.isSuccessful()) { // Get the result. var keyword = keywordOperation.getResult();} else { // Handle the errors. var errors = keywordOperation.getErrors();}
addSitelink
addPhoneNumber
addMobileApp
Today we’re announcing the release of v6.5 of the Google Mobile Ads SDK! It’s listed as Google Play services 6.5 (Rev. 22) in the Android SDK manager, and is available for download right now. Those of you using Android Studio should download Google Repository (Rev. 14) to get the latest Gradle artifacts.
Under the hood improvements (greater stability, more efficient use of resources) make up most of the changes, but we’re pleased to note that this will be the first version of the SDK to support a split jar architecture. Previously, the SDK was compiled as a single, all-encompassing JAR file. Beginning with this release, however, it’s also built into separate JARs, each covering a specific domain of functionality. Interactive Media Ads (IMA) and Mobile Ads developers can now reference part of the Play Services SDK without needing to import the whole thing. This in turn reduces the APK size and memory footprint of your applications.
Taking advantage of the new architecture is easy -- you just need to change how you’re incorporating the SDK in your build process. Here’s an excerpt from a typical build.gradle file for an app that uses the SDK to display mobile ads:
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.google.android.gms:play-services:6.+'}
And here’s one that targets the ads library specifically, new in v6.5:
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.google.android.gms:play-services-ads:6.+'}
That’s it! Gradle will now incorporate the new, smaller JAR into your application. If your app consumes other services from the SDK, simply add the relevant JARs (play-services-games or play-services-location, for example) to your build file as well.
IMA developers can make this change now. If you’re a Mobile Ads developer, one important thing to note is that the new split jar architecture currently works only with projects that configure banner ads in Java code, and not in XML. We plan to support XML configurations in the future, but for now if you’re defining and configuring your AdViews in an XML layout file, you should continue to reference Play Services in the existing manner.
You can read the Google Play Services Announcement on the Android Developers Blog for a summary of what’s new with this release. For a full list of Mobile Ads SDK changes, check out our release notes. For technical questions, post them on our forum.
- Andrew Brogdon, Mobile Ads Developer Relations
A lot of our DFP API developers have been asking recently about how to filter report data by custom targeting key ID. Currently the DFP API allows you to filter report data by custom targeting value ID only. Until we have official support for filtering by custom targeting key ID in reports, you can use the CustomTargetingService and the ReportService together to achieve this goal.
WHERE customTargetingKeyId IN (17, 18, 19)
If you have a lot of keys and values in your network, a better approach is to store these in a local database and do nightly syncs. Use getCustomTargetingKeysByStatement to obtain all the keys in your network, and then iterate through them, calling getCustomTargetingValuesByStatement for each key to obtain their values. Our client libraries all have examples of this. For instance, the Java example can be found in our ads Java client library GitHub repository. This way, you can look up the values associated with a custom targeting key more quickly and not do an additional API call.
IN
WHERE CUSTOM_TARGETING_VALUE_ID IN (3211, 88990, 123456)
However, please be aware that if you have a lot of custom targeting value IDs to filter on, you should batch them by querying for no more than 500 IDs at a time in the PQL IN clause. For example, you will run your report filtering on the first 500 IDs you’ve collected and save that report. Then you will run the same report on the next page of 500 IDs you’ve collected and so on until you have no more IDs. You can then combine the reports locally so that you have all the data for those custom targeting IDs.
If you have any questions about this, feel free to drop us a line on the DFP API forums or Ads Developer Google+ page.
- Vincent Tsao, DFP API Team
Last week we released beta 10 of the IMA SDK for iOS. This release comes with a few new features including the following:
The most important thing to know about this release is that you will now need to include the WebKit framework as an optional framework in your implementation and build for 64-bit support. If you are a Cocoapods user, this will be done for you in the generated xcworkspace when you upgrade to beta 10 via pod install.
install
kIMAAdEvent_TAPPED
- (void)adsManager:(IMAAdsManager *)adsManager didReceiveAdEvent:(IMAAdEvent *)event { if (event.type == kIMAAdEvent_TAPPED) { // Handle TAPPED event } }
This event will be fired any time a user taps on a non-clickable part of an ad (taps on the "Learn more" or "Skip" buttons will not result in a TAPPED event).
As always, if you have any questions feel free to contact us via the support forum.
- Shawn Busolits, IMA SDK Team
PretargetingConfig
Budget
billingId
budgetAmount