<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0"><id>tag:blogger.com,1999:blog-7815614485808579332</id><updated>2012-05-29T11:46:08.686-07:00</updated><category term="mobile" /><category term="adwhirl_v3.1.1" /><category term="suggested_ad_units" /><category term="dfp_appengine" /><category term="deprecation" /><category term="adwords_AdGroupCriterionService" /><category term="mobile_targeting" /><category term="dfp_v201111" /><category term="ad_exchange" /><category term="analytics" /><category term="dfp_mobile" /><category term="test_network" /><category term="geotargeting" /><category term="best_practices" /><category term="dfa_api" /><category term="dfa_site_service" /><category term="adsense_management_api_v1.1" /><category term="PQL" /><category term="custom_fields" /><category term="dfp_v201203" /><category term="animation" /><category term="ad_exchange_soap" /><category term="limits" /><category term="common_questions" /><category term="adsense_host_api_v3" /><category term="adwords_CreateAccountService" /><category term="oauth" /><category term="admob_v4.3.1" /><category term="ad_exchange_rest" /><category term="android_layout" /><category term="iOS" /><category term="adwords_CampaignService" /><category term="adsense_management_api" /><category term="dfa_ad_service" /><category term="dfa_v1.16" /><category term="reporting" /><category term="adwords_v201109" /><category term="xml" /><category term="i18n" /><category term="adsense_api" /><category term="certificates" /><category term="docs" /><category term="reports" /><category term="admob_v5.0.5" /><category term="php" /><category term="forecast_service" /><category term="client_libraries" /><category term="app_engine" /><category term="dfp_v201204" /><category term="impression_share" /><category term="creatives" /><category term="faq" /><category term="dfp_api" /><category term="adwhirl" /><category term="dfa_v1.17" /><category term="google_apps_script" /><category term="hangout" /><category term="admob_sdk" /><category term="adwords_MutateJobService" /><category term="interview" /><category term="adwords_ReportDefinitionService" /><category term="android" /><category term="chart_tools" /><category term="adsense_management_api_v1" /><category term="terms" /><category term="ssl" /><category term="dfp_v201201" /><category term="adwords_api" /><category term="dfa_v1.18" /><category term="ad_exchange_rtb" /><category term="examples" /><title type="text">Google Ads Developer Blog</title><subtitle type="html">The official blog for information about the AdWords, AdSense, DoubleClick and AdMob APIs and SDKs.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://googleadsdeveloper.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/search/label/dfp_api" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/-/dfp_api/-/dfp_api?start-index=26&amp;max-results=25" /><author><name>Rachel Durfee</name><uri>http://www.blogger.com/profile/16428609225474396121</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>26</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/blogspot/BgIHu" /><feedburner:info uri="blogspot/bgihu" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:browserFriendly></feedburner:browserFriendly><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-5306512672344301077</id><published>2012-05-21T14:01:00.000-07:00</published><updated>2012-05-21T14:01:11.961-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="client_libraries" /><category scheme="http://www.blogger.com/atom/ns#" term="dfa_api" /><category scheme="http://www.blogger.com/atom/ns#" term="dfp_api" /><category scheme="http://www.blogger.com/atom/ns#" term="adwords_api" /><title type="text">Announcing a from-scratch rewrite of the Java Client Library</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;The Java Client libraries for Ads APIs are some of the most popular, used by thousands of developers each day to manage their AdWords, DFA and DFP accounts.  Since they were initially written years ago, we’ve gotten a lot of feedback from developers using the libraries.  We’ve tried to incorporate as many suggestions as possible, but due to the legacy architecture, certain changes were not feasible.&lt;br /&gt;&lt;br /&gt;Today we’re pleased to announce that we are officially supporting a new from-scratch rewrite of the &lt;a href="http://code.google.com/p/google-api-ads-java/"&gt;Java Library&lt;/a&gt;!  It is now production-ready and is no longer &lt;a href="https://groups.google.com/d/msg/adwords-api/XjOiVGTVJpo/t1M7EPoHVI0J"&gt;experimental&lt;/a&gt;.  Read on for some reasons why you’ll want to take the new library for a spin right away.&lt;br /&gt;&lt;h2 style="text-align: left;"&gt;      New Features&lt;/h2&gt;&lt;div&gt;New features in the rewritten library include:&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Product level support for AdWords, DFA and DFP with shared common layer code.&lt;/li&gt;&lt;li&gt;Library is now hosted on Maven.&lt;/li&gt;&lt;li&gt;OAuth1.0a and OAuth2.0 support.&lt;/li&gt;&lt;li&gt;Uses the &lt;a href="http://slf4j.org/"&gt;SLF4J&lt;/a&gt; logging facade.&lt;/li&gt;&lt;li&gt;More control over building your session, providing authentication and more.&lt;/li&gt;&lt;li&gt;Experimental AppEngine support via JAX-WS.&lt;/li&gt;&lt;/ul&gt;&lt;h2 style="text-align: left;"&gt;      Migrating&lt;/h2&gt;&lt;/div&gt;&lt;div&gt;The two biggest changes involve how to configure your session and how to obtain Service objects.&lt;br /&gt;&lt;br /&gt;Here’s how you configure an AdWordsSession:&lt;br /&gt;&lt;pre class="prettyprint"&gt;AdWordsSession session = new AdWordsSession.Builder()&lt;br /&gt;    .fromFile()&lt;br /&gt;    .withClientLoginToken(clientLoginToken)&lt;br /&gt;    .build();&lt;br /&gt;&lt;/pre&gt;Here’s how you obtain a reference to a service:&lt;br /&gt;&lt;pre class="prettyprint"&gt;AdWordsServices adWordsServices = new AdWordsServices();&lt;br /&gt;CampaignServiceInterface campaignService =&lt;br /&gt;    adWordsServices.get(session, CampaignServiceInterface.class);&lt;/pre&gt;Check out the &lt;a href="http://code.google.com/p/google-api-ads-java/wiki/MigrationGuide"&gt;migration guide&lt;/a&gt; we have recently published on the new project page wiki.  You’ll find these procedures described in depth, along with best practices for using these classes.&lt;br /&gt;&lt;br /&gt;The new library will be the primary focus of development moving forward.  The existing &lt;a href="http://code.google.com/p/google-api-adwords-java/"&gt;AdWords&lt;/a&gt; and &lt;a href="http://code.google.com/p/google-api-dfp-java/"&gt;DFP&lt;/a&gt; java libraries are now in maintenance mode and we will continue to add support for new AdWords and DFP API releases for the near future.&lt;br /&gt;&lt;br /&gt;If you find any bugs, have a patch to contribute or just a feature request, please feel free to file an issue on our &lt;a href="http://code.google.com/p/google-api-ads-java/issues/list"&gt;issue tracker&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class="post-author"&gt;&lt;a href="https://plus.google.com/u/0/110892224480992063622/posts"&gt;&lt;img height="20" src="https://lh6.googleusercontent.com/-Bm_0uFwE20M/AAAAAAAAAAI/AAAAAAAAALY/hflk83UJtt4/s200-c-k/photo.jpg?sz=20" style="border: none; vertical-align: middle;" width="20" /&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href="https://plus.google.com/u/0/110892224480992063622/posts" rel="author"&gt;Kevin Winter&lt;/a&gt;, AdWords API Team&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-5306512672344301077?l=googleadsdeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/5306512672344301077" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/5306512672344301077" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2012/05/announcing-from-scratch-rewrite-of-java.html" title="Announcing a from-scratch rewrite of the Java Client Library" /><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-4913627195657579573</id><published>2012-05-11T11:37:00.001-07:00</published><updated>2012-05-11T11:37:42.258-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dfp_v201204" /><category scheme="http://www.blogger.com/atom/ns#" term="dfp_api" /><category scheme="http://www.blogger.com/atom/ns#" term="custom_fields" /><title type="text">Make it your own with Custom Fields in DFP API</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;New to v201204 of DFP API are &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201204/CustomFieldService.CustomField.html"&gt;custom fields&lt;/a&gt;, which can be applied to &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201204/OrderService.Order#customFieldValues"&gt;orders&lt;/a&gt;, &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201204/LineItemService.LineItem#customFieldValues"&gt;line items&lt;/a&gt;, and &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201204/CreativeService.Creative#customFieldValues"&gt;creatives&lt;/a&gt;.  This new feature gives you the ability to include additional information on DFP entities without having to implement data persistence in your own system.  They are saved when the entities are saved on the DFP servers which ensures data consistency and removes the need for syncing.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Data Types&lt;/b&gt;&lt;br /&gt;The following are the supported &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201204/CustomFieldService.CustomFieldDataType"&gt;data types&lt;/a&gt; of a custom field:&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;String&lt;/li&gt;&lt;li&gt;Number&lt;/li&gt;&lt;li&gt;Toggle (true/ false)&lt;/li&gt;&lt;li&gt;Drop-down (selection from user-defined values)&lt;/li&gt;&lt;/ul&gt;These data types should cover some of the most common use cases for custom fields such as comments (string), metrics (number), and internal system status (toggle/drop-down). &lt;br /&gt;&lt;br /&gt;&lt;b&gt;How-To&lt;/b&gt;&lt;br /&gt;You can create and manage your custom fields and &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201204/CustomFieldService.CustomFieldOption"&gt;custom field options&lt;/a&gt; (for drop-down custom fields) with the new &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201204/CustomFieldService"&gt;CustomFieldService&lt;/a&gt;. Please make sure you have the feature enabled for your network before you try to set up custom fields. We are also working on bringing custom fields to the user interface, so be on the lookout for them!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Walk-Through&lt;/b&gt;&lt;br /&gt;The following Java sample shows how you can add a string and drop-down custom field value to your line item.  This assumes that you have already created the custom fields and custom field options. You can check out how to create them using the &lt;a href="http://code.google.com/p/google-api-dfp-java/source/browse/trunk/examples/v201204/customfieldservice/CreateCustomFields.java"&gt;CreateCustomFields&lt;/a&gt;  and &lt;a href="http://code.google.com/p/google-api-dfp-java/source/browse/trunk/examples/v201204/customfieldservice/CreateCustomFieldOptions.java"&gt;CreateCustomFieldOptions&lt;/a&gt; examples in the &lt;a href="https://developers.google.com/doubleclick-publishers/docs/clients"&gt;client libraries&lt;/a&gt;. &lt;br /&gt;&lt;pre class="”prettyprint”"&gt;Long customFieldId = Long.parseLong("INSERT_STRING_CUSTOM_FIELD_ID_HERE");&lt;br /&gt;Long dropDownCustomFieldId = &lt;br /&gt;    Long.parseLong("INSERT_DROP_DOWN_CUSTOM_FIELD_ID_HERE");&lt;br /&gt;Long customFieldOptionId = &lt;br /&gt;    Long.parseLong("INSERT_CUSTOM_FIELD_OPTION_ID_HERE");&lt;br /&gt;Long lineItemId = Long.parseLong("INSERT_LINE_ITEM_ID_HERE");&lt;br /&gt;&lt;br /&gt;// Get the line item.&lt;br /&gt;LineItem lineItem = lineItemService.getLineItem(lineItemId);&lt;br /&gt;&lt;br /&gt;// Create custom field values.&lt;br /&gt;List&lt;basecustomfieldvalue&gt; customFieldValues = new ArrayList&lt;basecustomfieldvalue&gt;();&lt;br /&gt;&lt;br /&gt;// Create the String custom field value.&lt;br /&gt;TextValue textValue = new TextValue();&lt;br /&gt;textValue.setValue("Custom field value");&lt;br /&gt;CustomFieldValue customFieldValue = new CustomFieldValue();&lt;br /&gt;customFieldValue.setCustomFieldId(customFieldId);&lt;br /&gt;customFieldValue.setValue(textValue);&lt;br /&gt;customFieldValues.add(customFieldValue);&lt;br /&gt;&lt;br /&gt;// Create the drop-down custom field value.&lt;br /&gt;DropDownCustomFieldValue dropDownCustomFieldValue =&lt;br /&gt;    new DropDownCustomFieldValue();&lt;br /&gt;dropDownCustomFieldValue.setCustomFieldId(dropDownCustomFieldId);&lt;br /&gt;dropDownCustomFieldValue.setCustomFieldOptionId(customFieldOptionId);&lt;br /&gt;customFieldValues.add(dropDownCustomFieldValue);&lt;br /&gt;&lt;br /&gt;// The line item can contain custom field values for the field you are&lt;br /&gt;// trying to set or an unrelated one.  The following checks that you only &lt;br /&gt;// add existing custom field values for custom fields different from the &lt;br /&gt;// ones you are setting.&lt;br /&gt;if (lineItem.getCustomFieldValues() != null) {&lt;br /&gt;  for (BaseCustomFieldValue oldCustomFieldValue : &lt;br /&gt;      lineItem.getCustomFieldValues()) {&lt;br /&gt;    if (!oldCustomFieldValue.getCustomFieldId().equals(customFieldId)&lt;br /&gt;        &amp;amp;&amp;amp; !oldCustomFieldValue.getCustomFieldId().equals(&lt;br /&gt;        dropDownCustomFieldId)) {&lt;br /&gt;      customFieldValues.add(oldCustomFieldValue);&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// Set the custom field values on the line item.&lt;br /&gt;lineItem.setCustomFieldValues(customFieldValues.toArray(&lt;br /&gt;    new BaseCustomFieldValue[]{}));&lt;br /&gt;&lt;br /&gt;// Update the line item on the server.&lt;br /&gt;LineItem[] lineItems = lineItemService.updateLineItems(&lt;br /&gt;    new LineItem[] {lineItem});&lt;br /&gt;&lt;/basecustomfieldvalue&gt;&lt;/basecustomfieldvalue&gt;&lt;/pre&gt;And that’s it! For the full Java code example, you can refer to the &lt;a href="http://code.google.com/p/google-api-dfp-java/source/browse/trunk/examples/v201204/customfieldservice/SetLineItemCustomFieldValue.java"&gt;SetLineItemCustomFieldValue&lt;/a&gt; in the client library.&lt;br /&gt;&lt;br /&gt;With this new feature, we aim to help you create stronger integrations with DFP through the API.  If there are any features you would like us to demonstrate, please don’t hesitate to let us know with a &lt;a href="https://groups.google.com/forum/?fromgroups#!forum/google-doubleclick-for-publishers-api"&gt;forum&lt;/a&gt; post or at a &lt;a href="http://googleadsdeveloper.blogspot.com/search/label/dfp_api"&gt;Office Hour Hangout&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class="post-author"&gt;&lt;a href="https://plus.google.com/u/0/115474229489284556707"&gt;&lt;img height="20" src="https://lh3.googleusercontent.com/-pDdv2kTjyNw/AAAAAAAAAAI/AAAAAAAAAnE/q_kK4BYy-mM/photo.jpg?sz=20" style="border: none; vertical-align: middle;" width="20" /&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href="https://plus.google.com/u/0/115474229489284556707" rel="author"&gt;Jeffrey Sham&lt;/a&gt;, DFP API Team&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-4913627195657579573?l=googleadsdeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/4913627195657579573" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/4913627195657579573" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2012/05/make-it-your-own-with-custom-fields-in.html" title="Make it your own with Custom Fields in DFP API" /><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh3.googleusercontent.com/-pDdv2kTjyNw/AAAAAAAAAAI/AAAAAAAAAnE/q_kK4BYy-mM/s72-c/photo.jpg?sz=20" height="72" width="72" /></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-2405551126511610766</id><published>2012-05-07T10:00:00.000-07:00</published><updated>2012-05-07T10:01:55.174-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dfp_v201204" /><category scheme="http://www.blogger.com/atom/ns#" term="dfp_api" /><title type="text">Announcing v201204 of the DFP API</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;v201204 of the DFP API has launched and is ready for you to explore. In this version, we’ve added &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201204/CustomFieldService"&gt;custom fields&lt;/a&gt;, &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201204/UserTeamAssociationService"&gt;expanded team and user functionality&lt;/a&gt;, and updated the &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201204/ReportService.Column#CONVERSIONS_PER_CLICK"&gt;conversion reports columns&lt;/a&gt;. A full list of features can be found on our &lt;a href="https://developers.google.com/doubleclick-publishers/docs/rel_notes"&gt;release notes page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Custom fields&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Custom fields is a new feature to the API that lets you add attributes to entities, such as orders and line items. For example, you can add your own &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201204/CustomFieldService.CustomField"&gt;field&lt;/a&gt;&amp;nbsp;to a &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201204/CustomFieldService.CustomFieldEntityType#LINE_ITEM"&gt;line item&lt;/a&gt;&amp;nbsp;that would let salespeople add comments as a &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201204/CustomFieldService.CustomFieldDataType#STRING"&gt;string&lt;/a&gt;. Those comments would then be placed into &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201204/LineItemService.CustomFieldValue"&gt;custom field values&lt;/a&gt;&amp;nbsp;that are &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201204/LineItemService.LineItem#customFieldValues"&gt;added&lt;/a&gt;&amp;nbsp;to each line item.  Support for custom fields will be coming or the DFP UI soon, but if you have this feature enabled on your network now, you’ll be able to start working with them right away.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Teams changes&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The way in which users are added to teams has changed starting in v201204. In previous versions, users were added to &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201203/TeamService.Team#userIds"&gt;team objects&lt;/a&gt;&amp;nbsp;directly. Now, you can &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201204/UserTeamAssociationService"&gt;associate users and teams&lt;/a&gt;, much like &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201204/LineItemCreativeAssociationService"&gt;line items and creatives&lt;/a&gt;. The new associations will also let you define &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201204/UserTeamAssociationService.UserTeamAssociation#overriddenTeamAccessType"&gt;per user permissions&lt;/a&gt;,&amp;nbsp;such as only letting some users have &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201204/UserTeamAssociationService.TeamAccessType#READ_ONLY"&gt;read-only access&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Version deprecation reminder&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;As a &lt;a href="http://googleadsdeveloper.blogspot.com/2012/02/retiring-support-for-v201103-v201104.html"&gt;reminder&lt;/a&gt;, we are retiring support for v201103, v201104, and v201107 on &lt;b&gt;May 11th&lt;/b&gt;. If you haven’t upgraded yet, now would be a great time.&lt;br /&gt;&lt;br /&gt;Our next hangout is &lt;a href="https://developers.google.com/events/ahNzfmdvb2dsZS1kZXZlbG9wZXJzcg0LEgVFdmVudBj5yC4M/"&gt;May 9th&lt;/a&gt; and we’d love to see you there. As always, let us know if you have any questions on our &lt;a href="https://groups.google.com/forum/?fromgroups#!forum/google-doubleclick-for-publishers-api"&gt;forum&lt;/a&gt;.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="https://plus.google.com/100742954389084668497" style="text-align: left;"&gt;&lt;img alt="" border="0" height="20" id="BLOGGER_PHOTO_ID_5677875414712016498" src="https://lh4.googleusercontent.com/-tcqfAdWqCFc/AAAAAAAAAAI/AAAAAAABT3Y/JU6vWx64NbU/photo.jpg?sz=20" style="border: none; vertical-align: middle;" width="20" /&gt;&lt;/a&gt;&lt;span style="text-align: left;"&gt;&amp;nbsp;-&amp;nbsp;&lt;/span&gt;&lt;a href="https://plus.google.com/100742954389084668497" rel="author" style="text-align: left;"&gt;Adam Rogal&lt;/a&gt;&lt;span style="text-align: left;"&gt;, DFP API Team&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-2405551126511610766?l=googleadsdeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/2405551126511610766" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/2405551126511610766" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2012/05/announcing-v201204-of-dfp-api.html" title="Announcing v201204 of the DFP API" /><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh4.googleusercontent.com/-tcqfAdWqCFc/AAAAAAAAAAI/AAAAAAABT3Y/JU6vWx64NbU/s72-c/photo.jpg?sz=20" height="72" width="72" /></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-3775161742630241976</id><published>2012-04-24T15:00:00.000-07:00</published><updated>2012-04-24T14:01:11.286-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dfp_api" /><category scheme="http://www.blogger.com/atom/ns#" term="dfp_v201203" /><title type="text">DFP API Test Network Update and Sandbox Shutdown</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div&gt;We &lt;a href="http://googleadsdeveloper.blogspot.com/2012/03/new-way-to-test-dfp-api.html"&gt;announced&lt;/a&gt; in a previous post an easier way to test with the DFP API. We've iterated quickly and improved on that solution and we are also setting a date for the shutdown of the sandbox.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Test Accounts&lt;/b&gt;&lt;br /&gt;When we initially launched the new test networks, you had to create a &lt;a href="http://www.google.com/accounts/newaccount"&gt;new Google account&lt;/a&gt; if you had any type of DFP network associated with the account. We've lifted this restriction. Now each Google account is always allowed to create a single test network using &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201203/NetworkService#makeTestNetwork"&gt;NetworkService.makeTestNetwork()&lt;/a&gt;. This means you can use the same google account for production and test networks.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Sandbox Shutdown&lt;/b&gt;&lt;br /&gt;Now that we've given you a bit of time to switch off of the sandbox environment, we're announcing that we are shutting it down on May 24th, 2012. This allows for another month of testing, but we hope you will migrate to the new test networks as soon as possible.&lt;br /&gt;&lt;br /&gt;Happy testing and stay tuned for more DFP API blog posts. Don't forget to join us on our next &lt;a href="https://developers.google.com/events/ahNzfmdvb2dsZS1kZXZlbG9wZXJzcg0LEgVFdmVudBj5yC4M/"&gt;Hangout&lt;/a&gt; and, as always, let us know if you want to see any new features or blog posts on our &lt;a href="https://groups.google.com/forum/?fromgroups#!forum/google-doubleclick-for-publishers-api"&gt;forum&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="post-author"&gt;&lt;a href="https://plus.google.com/104679465567407024302/"&gt;&lt;img height="20" src="https://lh5.googleusercontent.com/oQZTvGY1RNICm4p-kpeNseyIOgEfFdRDfMNyaMs0hrBVvzjZQODeEnRRPbHA0SoebObwNhQnL7bEDImdE16tYXjwViv-90GTbywThxtii7XS7MO3RzE?sz=20" style="border: none; vertical-align: middle;" width="20" /&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href="https://plus.google.com/104679465567407024302/" rel="author"&gt;Paul Rashidi&lt;/a&gt;, DFP API Team&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-3775161742630241976?l=googleadsdeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/3775161742630241976" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/3775161742630241976" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2012/04/dfp-api-test-network-update-and-sandbox.html" title="DFP API Test Network Update and Sandbox Shutdown" /><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-2884144321394953973</id><published>2012-04-19T04:36:00.003-07:00</published><updated>2012-04-19T04:36:55.309-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mobile" /><category scheme="http://www.blogger.com/atom/ns#" term="adsense_api" /><category scheme="http://www.blogger.com/atom/ns#" term="ad_exchange" /><category scheme="http://www.blogger.com/atom/ns#" term="dfa_api" /><category scheme="http://www.blogger.com/atom/ns#" term="admob_sdk" /><category scheme="http://www.blogger.com/atom/ns#" term="dfp_api" /><category scheme="http://www.blogger.com/atom/ns#" term="adwords_api" /><title type="text">The Docs are Dead. Long Live the Docs!</title><content type="html">&lt;p&gt;Recent visitors to any of the Ads API documentation pages will have noticed their shiny new appearance and a message to let you know the docs have moved to a new platform:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://1.bp.blogspot.com/-V9ZAR3_Hlgg/T4_1nLsHvrI/AAAAAAAAAJI/w_FK4NBChUw/s1600/image00.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="34" src="http://1.bp.blogspot.com/-V9ZAR3_Hlgg/T4_1nLsHvrI/AAAAAAAAAJI/w_FK4NBChUw/s320/image00.png" width="320" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;This move is much more than a skin-deep makeover. As we’ve blogged before, the new Google Developers platform is so named to reflect our focus on you, and not just on the tools we provide.&lt;/p&gt;   &lt;p&gt;Follow the links below to take a look at the full range of Ads API docs on Google Developers:&lt;/p&gt;&lt;ul&gt;  &lt;li&gt;&lt;a href="https://developers.google.com/mobile-ads-sdk/"&gt;Google AdMob Ads SDK&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="https://developers.google.com/adsense/host/overview"&gt;AdSense Host API&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="https://developers.google.com/adsense/management/overview"&gt;AdSense Management API&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="https://developers.google.com/adwords/api"&gt;AdWords API&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="https://developers.google.com/ad-exchange/"&gt;DoubleClick Ad Exchange API&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="https://developers.google.com/doubleclick-advertisers/"&gt;DoubleClick for Advertisers API&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="https://developers.google.com/doubleclick-publishers/"&gt;DoubleClick for Publishers API&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="https://developers.google.com/interactive-media-ads/"&gt;Interactive Media Ads SDK&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;We’ll continue to try to improve the Ads API docs on Google Developers while, over time, &lt;a href="http://code.google.com/"&gt;Google Code&lt;/a&gt; returns to its original purpose as an open source project hosting service. Visits to the old Google Code docs will be redirected to the corresponding Google Developers docs throughout 2012, so be sure to update your bookmarks soon.&lt;/p&gt;&lt;p&gt;If you have any questions about these changes please reach out to us through any of the Ads API forums or office hours.&lt;/p&gt;&lt;p&gt;Lesley Burr, Ads Developer Relations Team&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-2884144321394953973?l=googleadsdeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/2884144321394953973" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/2884144321394953973" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2012/04/docs-are-dead-long-live-docs.html" title="The Docs are Dead. Long Live the Docs!" /><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-V9ZAR3_Hlgg/T4_1nLsHvrI/AAAAAAAAAJI/w_FK4NBChUw/s72-c/image00.png" height="72" width="72" /></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-3083429026857088845</id><published>2012-03-30T12:28:00.000-07:00</published><updated>2012-03-30T12:28:38.035-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="test_network" /><category scheme="http://www.blogger.com/atom/ns#" term="dfp_api" /><category scheme="http://www.blogger.com/atom/ns#" term="forecast_service" /><title type="text">Brushing up on DFP API Forecasting</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;With the addition of the new &lt;a href="http://googleadsdeveloper.blogspot.com/2012/03/new-way-to-test-dfp-api.html"&gt;test networks&lt;/a&gt; to replace the sandbox environment networks, we’d like to do a review of how to test your &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201203/ForecastService"&gt;forecasting&lt;/a&gt; on test networks.  Since the test networks don’t serve ads, you have no traffic history to provide forecasting data.  Instead, the API returns predictable results in the &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201203/ForecastService.Forecast"&gt;Forecast&lt;/a&gt; object so you can effectively test your application.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Forecast Service with Test Networks&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The forecast service can be used by calling &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201203/ForecastService#getForecast"&gt;getForecast&lt;/a&gt; with a new line item or &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201203/ForecastService#getForecastById"&gt;getForecastById&lt;/a&gt; with the ID of an existing line item.  In production, these calls will tell you whether you can expect the line item to deliver the booked clicks/impressions based on how your network’s done in the past.  In the test network, the only two parameters that affect the forecast results are the &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201203/ForecastService.LineItem#lineItemType"&gt;lineItemType&lt;/a&gt; and &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201203/ForecastService.LineItem#unitsBought"&gt;unitsBought&lt;/a&gt; fields on the line item.  The expected responses are summarized below and in our &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201203/ForecastService"&gt;documentation&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;&lt;style&gt;  table {     border-collapse: collapse;     width: 100%   }   table td, table th {     border: 1px solid black;     padding: 5px;   }   table th {     background-color: #eee;     font-weight: bold;   } &lt;/style&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th colspan=2&gt;Input (Line Item Field) &lt;/th&gt;&lt;th colspan=3&gt;Output (Forecast Field) &lt;/th&gt;&lt;/th&gt;&lt;tr&gt;&lt;th&gt;&lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201203/ForecastService.LineItem.html#lineItemType"&gt;lineItemType&lt;/a&gt;&lt;/th&gt;&lt;th&gt;&lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201203/ForecastService.LineItem.html#unitsBought"&gt;unitsBought&lt;/a&gt;&lt;/th&gt;&lt;th&gt;&lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201203/ForecastService.Forecast.html#availableUnits"&gt;availableUnits&lt;/a&gt;&lt;/th&gt;&lt;th&gt;&lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201203/ForecastService.Forecast.html#forecastUnits"&gt;forecastUnits&lt;br/&gt;(matchedUnits)&lt;/a&gt;&lt;/th&gt;&lt;th&gt;&lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201203/ForecastService.Forecast.html#deliveredUnits"&gt;deliveredUnits&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;Sponsorship&lt;/td&gt;&lt;td&gt;50&lt;/td&gt;&lt;td&gt;1,200,000&lt;/td&gt;&lt;td&gt;6,000,000&lt;/td&gt;&lt;td&gt;600,000&lt;br/&gt;prospective: 0&lt;/td&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;Sponsorship&lt;/td&gt;&lt;td&gt;!= 20 and != 50&lt;/td&gt;&lt;td&gt;1,200,000&lt;/td&gt;&lt;td&gt;1,200,000&lt;/td&gt;&lt;td&gt;600,000&lt;br/&gt;prospective: 0&lt;/td&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;Not Sponsorship&lt;/td&gt;&lt;td&gt;&lt;= 1,000,000&lt;/td&gt;&lt;td&gt;unitsBought * 2&lt;/td&gt;&lt;td&gt;availableUnits * 3&lt;/td&gt;&lt;td&gt;600,000&lt;br/&gt;prospective: 0&lt;/td&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;Not Sponsorship&lt;/td&gt;&lt;td&gt;&gt; 1,000,000&lt;/td&gt;&lt;td&gt;unitsBought * 2&lt;/td&gt;&lt;td&gt;availableUnits * 3&lt;/td&gt;&lt;td&gt;600,000&lt;br/&gt;prospective: 0&lt;/td&gt;&lt;/td&gt;&lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;It is a good idea to include a test case where the forecasting service throws an exception so your application can handle error conditions correctly.  You can trigger the service to throw a &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201203/ForecastService.ForecastError.Reason.html#SERVER_NOT_AVAILABLE"&gt;SERVER_NOT_AVAILABLE&lt;/a&gt; error by setting the line item type to sponsorship and the units bought to exactly 20.  &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Dealing with Production Quota&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;In addition, please be mindful that in production (as opposed to test networks), forecasting is a resource intensive process on the server and too many back-to-back requests may cause the API to throw an &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201203/ForecastService#QuotaError"&gt;EXCEEDED_QUOTA&lt;/a&gt; error.  When this occurs, we recommend backing off briefly before retrying to bring the requests per second down.  Recall that the quotas are based on the number of requests per second rather than an absolute number of requests. You are less likely to get rate limited by the API with a steady stream of requests rather than with short bursts of many requests.&lt;br /&gt;&lt;br /&gt;We appreciate any feedback from you regarding features you’d like us to highlight or about the API in general.  Please don’t hesitate to leave us a suggestion on our &lt;a href="https://developers.google.com/doubleclick-publishers/community"&gt;forum&lt;/a&gt; or come chat with us at one of our &lt;a href="http://googleadsdeveloper.blogspot.com/search/label/dfp_api"&gt;DFP API Office Hours Hangouts&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class="post-author"&gt;&lt;a href="https://plus.google.com/u/0/115474229489284556707"&gt;&lt;img height="20" src="https://lh3.googleusercontent.com/-pDdv2kTjyNw/AAAAAAAAAAI/AAAAAAAAAnE/q_kK4BYy-mM/photo.jpg?sz=20" style="border: none; vertical-align: middle;" width="20"&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href="https://plus.google.com/u/0/115474229489284556707" rel="author"&gt;Jeffrey Sham&lt;/a&gt;, DFP API Team&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-3083429026857088845?l=googleadsdeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/3083429026857088845" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/3083429026857088845" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2012/03/brushing-up-on-dfp-api-forecasting.html" title="Brushing up on DFP API Forecasting" /><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh3.googleusercontent.com/-pDdv2kTjyNw/AAAAAAAAAAI/AAAAAAAAAnE/q_kK4BYy-mM/s72-c/photo.jpg?sz=20" height="72" width="72" /></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-6118136142426183112</id><published>2012-03-28T15:57:00.000-07:00</published><updated>2012-03-28T15:57:41.954-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dfp_api" /><category scheme="http://www.blogger.com/atom/ns#" term="dfp_v201203" /><title type="text">A New Way to Test the DFP API</title><content type="html">&lt;div&gt;We are pleased to announce a better way to develop and test your code with the DFP API. In &lt;a href="https://developers.google.com/doubleclick-publishers/docs/rel_notes"&gt;v201203&lt;/a&gt; you now have the ability to &lt;a href="https://developers.google.com/doubleclick-publishers/docs/environments"&gt;create a test network&lt;/a&gt; through a few easy steps. As an added bonus, you can now access the new test and production networks via the &lt;a href="https://www.google.com/dfp/main"&gt;normal login screen&lt;/a&gt;. Read below for more information on the new self-service way of creating a development test environment for the API.&lt;br /&gt;&lt;br /&gt; &lt;b&gt;Create a Google Account&lt;/b&gt;&lt;br /&gt;You'll first need a &lt;a href="http://www.google.com/accounts/newaccount"&gt;new Google account&lt;/a&gt; since you are only allowed one test network per email address. You'll use this account to authenticate with the API when creating the test network. There is no need to worry about your other DFP accounts and whether they have been linked, you only need a valid Google account.&lt;br /&gt;&lt;br /&gt; &lt;b&gt;Setup Your Client Library&lt;/b&gt;&lt;br /&gt;As stated earlier, this feature is only available in the API so you'll need to set up your preferred &lt;a href="https://developers.google.com/doubleclick-publishers/docs/clients"&gt;client library&lt;/a&gt; in your development environment.&lt;br /&gt;&lt;br /&gt; &lt;b&gt;Execute the Example Code&lt;/b&gt;&lt;br /&gt;Each of the client libraries has an &lt;a href="http://code.google.com/p/google-api-dfp-java/source/browse/trunk/examples/v201203/networkservice/MakeTestNetworkExample.java"&gt;example&lt;/a&gt; that you can run with your Google account credentials. This sample code executes the &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201203/NetworkService#makeTestNetwork"&gt;NetworkService.makeTestNetwork()&lt;/a&gt; service to create the network. After running this, your network will be ready to use and you will get a printout similar to the message below.&lt;br /&gt;&lt;img src="https://lh6.googleusercontent.com/HeuBd1-ReuPr7rIQ3epp2Jb0r8D2jmphjs7erxa-uGHsxz13lfhaRxoeilPIJS3q6R_axOcQbxYYcbPV76Sx2lZYn4bgzHRZwcJEDWdbVvltIPoXOY4" width="550" /&gt;&lt;br /&gt; If you instead receive an error with the message &lt;br /&gt;&lt;span style="color: #cc0000;"&gt;AuthenticationError.GOOGLE_ACCOUNT_ALREADY_ASSOCIATED_WITH_NETWORK &lt;/span&gt;&lt;br /&gt;you will need to create a new Google account and try again.&lt;br /&gt;&lt;br /&gt; &lt;b&gt;Differences for the Test Network&lt;/b&gt;&lt;br /&gt;A test network differs from a production network; in particular, a test network does not serve ads and can not be used in conjunction with any ad tags. As a result, the &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201203/ForecastService"&gt;ForecastService &lt;/a&gt;provides mock forecasting information as specified in the &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201203/ForecastService"&gt;documentation&lt;/a&gt;. Lastly, a test network offers only small business account features. If you need access to DFP Premium features contact your account manager for assistance.&lt;br /&gt;&lt;br /&gt; &lt;b&gt;Client Libraries&lt;/b&gt;&lt;br /&gt;Once you've made the transition to a new test network you will no longer need to use the sandbox options in the &lt;a href="https://developers.google.com/doubleclick-publishers/docs/clients"&gt;client libraries&lt;/a&gt;. The new test networks utilize the same API endpoint as your production network so you only have to change your credentials and network code when preparing your code for a production release.&lt;br /&gt;&lt;br /&gt; &lt;b&gt;Sandbox Deprecation&lt;/b&gt;&lt;br /&gt;In the coming months we will be phasing out support for the sandbox networks. Please take the time to migrate to a test network to ensure your testing is not interrupted.&lt;br /&gt;&lt;br /&gt; Stay tuned for more DFP API blog posts including one discussing forecasting in the test networks. As always, let us know if you want to see any new features or blog posts on our &lt;a href="https://groups.google.com/forum/?fromgroups#!forum/google-doubleclick-for-publishers-api"&gt;forum&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;span class="post-author"&gt;&lt;a href="https://plus.google.com/104679465567407024302/"&gt;&lt;img height="20" src="https://lh5.googleusercontent.com/oQZTvGY1RNICm4p-kpeNseyIOgEfFdRDfMNyaMs0hrBVvzjZQODeEnRRPbHA0SoebObwNhQnL7bEDImdE16tYXjwViv-90GTbywThxtii7XS7MO3RzE?sz=20" style="border: none; vertical-align: middle;" width="20" /&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href="https://plus.google.com/104679465567407024302/" rel="author"&gt;Paul Rashidi&lt;/a&gt;, DFP API Team&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-6118136142426183112?l=googleadsdeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/6118136142426183112" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/6118136142426183112" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2012/03/new-way-to-test-dfp-api.html" title="A New Way to Test the DFP API" /><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-3505241535916729559</id><published>2012-03-26T13:30:00.000-07:00</published><updated>2012-03-26T13:39:12.953-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dfp_api" /><category scheme="http://www.blogger.com/atom/ns#" term="dfp_v201203" /><title type="text">Announcing v201203 of the DFP API</title><content type="html">&lt;div&gt;The newest version of the API, v201203, is at your service. It includes a brand new &lt;a href="https://developers.google.com/doubleclick-publishers/docs/signup"&gt;testing environment&lt;/a&gt;, read-only access to video creatives, team level filtering, and more. A full list of features can be found on our &lt;a href="https://developers.google.com/doubleclick-publishers/docs/rel_notes"&gt;release notes page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Test networks&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Starting in v201203, you’ll be able to create &lt;a href="https://developers.google.com/doubleclick-publishers/docs/environments"&gt;test networks&lt;/a&gt;, which offer a wider range of functionality than the existing sandbox networks. To create test networks, you'll need a &lt;a href="http://www.google.com/accounts/newaccount"&gt;new Google account&lt;/a&gt;. Once you’ve called &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/latest/NetworkService#makeTestNetwork"&gt;NetworkService.makeTestNetwork()&lt;/a&gt; with that account, you’ll sign in to test networks the &lt;a href="https://www.google.com/accounts/ServiceLogin?service=gam&amp;amp;continue=https://www.google.com/dfp/submitLoginInfo&amp;amp;hl=en"&gt;same way&lt;/a&gt; as production, without having to sign up for a DFP account. Additionally, all SOAP requests can now be sent to https://www.google.com instead of https://sandbox.google.com; moving from test networks to production now will only require you to change your network code. Stay tuned for an upcoming blog post in which we will detail how to use these new networks and our plans for the legacy sandbox environment.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Network codes&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;In the previous versions, &lt;a href="https://developers.google.com/doubleclick-publishers/docs/soap_xml"&gt;network codes&lt;/a&gt; were only required if you belonged to more than one network. Beginning in v201203, network codes will now be required for all requests except &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/latest/NetworkService#getAllNetworks"&gt;NetworkService.getAllNetworks()&lt;/a&gt; and &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/latest/NetworkService#makeTestNetwork"&gt;NetworkService.makeTestNetwork()&lt;/a&gt;. This change will reduce latency for some requests and will make it easier for you to keep track of which requests are going to which networks, especially now that test and production networks have the same domain for requests.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Video creatives&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Video creatives are now read-only accessible through the CreativeService. We plan to expose more functionality going forward, but we understand the current need of publishers and 3rd parties to report on and analyze what creatives exist in their network. Look out for more work coming in this area.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Teams&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;v201201 introduced teams and, &lt;a href="http://googleadsdeveloper.blogspot.com/2012/02/announcing-v201201-of-dfp-api.html"&gt;as we mentioned&lt;/a&gt;, promised future functionality of filtering objects by those teams. In v201203, you’ll be able to set team IDs on &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201203/InventoryService.AdUnit#appliedTeamIds"&gt;inventory&lt;/a&gt;, &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201203/OrderService.Order#appliedTeamIds"&gt;orders&lt;/a&gt;, and &lt;a href="https://developers.google.com/doubleclick-publishers/docs/reference/v201203/CompanyService.Company#appliedTeamIds"&gt;company&lt;/a&gt;. Then, when calls are made with that user, only objects that belong to their team will be returned. You will also receive an error if you attempt to update an object that you don’t have access to.&lt;br /&gt;&lt;br /&gt;Stay tuned for upcoming blog posts on the new test networks and network service best practices. As always, let us know if you want to see any new features or blog posts on our &lt;a href="https://groups.google.com/forum/?fromgroups#!forum/google-doubleclick-for-publishers-api"&gt;forum&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://plus.google.com/100742954389084668497"&gt;&lt;img alt="" border="0" height="20" id="BLOGGER_PHOTO_ID_5677875414712016498" src="https://lh4.googleusercontent.com/-tcqfAdWqCFc/AAAAAAAAAAI/AAAAAAABT3Y/JU6vWx64NbU/photo.jpg?sz=20" style="border: none; vertical-align: middle;" width="20" /&gt;&lt;/a&gt; - &lt;a href="https://plus.google.com/100742954389084668497" rel="author"&gt;Adam Rogal&lt;/a&gt;, DFP API Team &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-3505241535916729559?l=googleadsdeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/3505241535916729559" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/3505241535916729559" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2012/03/announcing-v201203-of-dfp-api.html" title="Announcing v201203 of the DFP API" /><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh4.googleusercontent.com/-tcqfAdWqCFc/AAAAAAAAAAI/AAAAAAABT3Y/JU6vWx64NbU/s72-c/photo.jpg?sz=20" height="72" width="72" /></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-8989970738560053009</id><published>2012-03-13T09:00:00.000-07:00</published><updated>2012-03-13T09:00:08.213-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="adsense_api" /><category scheme="http://www.blogger.com/atom/ns#" term="admob_sdk" /><category scheme="http://www.blogger.com/atom/ns#" term="dfp_api" /><category scheme="http://www.blogger.com/atom/ns#" term="adwords_api" /><category scheme="http://www.blogger.com/atom/ns#" term="hangout" /><title type="text">Spring 2012 Office Hours</title><content type="html">Google+ Office Hour Hangouts continue to be a hit across all of the Ads products so we're announcing that we've scheduled new events for the spring season. You can view the newly scheduled hangouts on the &lt;a href="https://developers.google.com/events/"&gt;Google Developers events page&lt;/a&gt;. Please RSVP by clicking the “I’ll be there” button if you plan on attending.  You can also continue to follow our schedule by subscribing to the &lt;a href="https://www.google.com/calendar/b/0/embed?showNav=0&amp;amp;showDate=0&amp;amp;showPrint=0&amp;amp;showTabs=0&amp;amp;showCalendars=0&amp;amp;mode=AGENDA&amp;amp;height=300&amp;amp;wkst=1&amp;amp;bgcolor=%23FFFFFF&amp;amp;src=7brqg62i0mbinu226iblpcnmoo%40group.calendar.google.com&amp;amp;color=%232F6309&amp;amp;ctz=Etc%2FGMT"&gt;Google Ads Developer Office Hours calendar&lt;/a&gt; which is also linked on the sidebar to the right of this blog entry.&lt;br/&gt; &lt;div style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-UTyRffWHVT8/TwX_iNxfpFI/AAAAAAAAAGE/o7FJnnjKS4c/s1600/hangout.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="220" src="http://3.bp.blogspot.com/-UTyRffWHVT8/TwX_iNxfpFI/AAAAAAAAAGE/o7FJnnjKS4c/s320/hangout.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;In case you haven’t joined us before, you will need 3 things to join the hangout:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;A Google+ account (&lt;a href="https://plus.google.com/"&gt;sign up here&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;The &lt;a href="http://www.google.com/tools/dlpage/res/talkvideo/hangouts/"&gt;Google voice and video plugin&lt;/a&gt; installed on your computer&lt;/li&gt;&lt;li&gt;A quiet place to hangout so we can hear you&lt;/li&gt;&lt;/ul&gt;These hangouts are informal and conversational, which make them a great place to ask questions or give us feedback.  If you have questions about our office hours program, reach out to us on the forums.&lt;br /&gt; &lt;span class="post-author"&gt;&lt;a href="https://plus.google.com/104679465567407024302/"&gt;&lt;img height="20" src="https://lh5.googleusercontent.com/oQZTvGY1RNICm4p-kpeNseyIOgEfFdRDfMNyaMs0hrBVvzjZQODeEnRRPbHA0SoebObwNhQnL7bEDImdE16tYXjwViv-90GTbywThxtii7XS7MO3RzE?sz=20" style="border: none; vertical-align: middle;" width="20" /&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href="https://plus.google.com/104679465567407024302/" rel="author"&gt;Paul Rashidi&lt;/a&gt;, DFP API Team&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-8989970738560053009?l=googleadsdeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/8989970738560053009" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/8989970738560053009" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2012/03/spring-2012-office-hours.html" title="Spring 2012 Office Hours" /><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-UTyRffWHVT8/TwX_iNxfpFI/AAAAAAAAAGE/o7FJnnjKS4c/s72-c/hangout.png" height="72" width="72" /></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-2183826051204268000</id><published>2012-03-06T11:00:00.000-08:00</published><updated>2012-03-06T11:00:02.122-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dfp_v201201" /><category scheme="http://www.blogger.com/atom/ns#" term="PQL" /><category scheme="http://www.blogger.com/atom/ns#" term="dfp_api" /><title type="text">Discover DFP API v201201: Syncing Up</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;In the newest version of the API, &lt;a href="http://googleadsdeveloper.blogspot.com/2012/02/announcing-v201201-of-dfp-api.html"&gt;v201201&lt;/a&gt;, we’ve added a feature to streamline the syncing of information in your DFP network to another system. Previously, this was possible but required repeatedly downloading the same objects to see if they had been modified. Now, a new PQL field exists, &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201201/LineItemService.LineItem.html#lastModifiedDateTime"&gt;lastModifiedDateTime&lt;/a&gt;, which can be used to return objects based on their modification dates. Below is a PHP example that uses the &lt;a href="http://code.google.com/p/google-api-dfp-php/downloads/list"&gt;latest client library&lt;/a&gt; to display all line items modified in the past 30 days. &lt;br /&gt;&lt;pre class="prettyprint"&gt;// Get the LineItemService.&lt;br /&gt;$lineItemService = $user-&amp;gt;GetService('LineItemService', 'v201201');&lt;br /&gt;&lt;br /&gt;// Calculate time from thirty days ago.&lt;br /&gt;$thirtyDaysAgo = date(DateTimeUtils::$DFP_DATE_TIME_STRING_FORMAT,&lt;br /&gt;    strtotime('-30 day'));&lt;br /&gt;&lt;br /&gt;// Create bind variables.&lt;br /&gt;$vars = MapUtils::GetMapEntries(array(&lt;br /&gt;    'thirtyDaysAgo' =&gt; new TextValue($thirtyDaysAgo)));&lt;br /&gt;&lt;br /&gt;// Create statement object to only select line items that&lt;br /&gt;// have been modified in the last 30 days.&lt;br /&gt;$filterStatement = new Statement(&lt;br /&gt;    "WHERE lastModifiedDateTime &gt;= :thirtyDaysAgo "&lt;br /&gt;    . "LIMIT 500", $vars);&lt;br /&gt;&lt;br /&gt;// Get line items by statement.&lt;br /&gt;$page = $lineItemService-&gt;getLineItemsByStatement($filterStatement);&lt;br /&gt;&lt;/pre&gt;You will notice that we utilized a constant, DFP_DATE_TIME_STRING_FORMAT ('Y-m-d\TH:i:s'),  from the library to easily format the date/time string. Also, keep in mind that the date and time specified should be in terms of the time zone that is configured for the network and any timezone specified in the string will be ignored by the server. &lt;br /&gt;&lt;br /&gt;We hope you'll use this new feature to help save bandwidth and processing time. You can check out a full working example in &lt;a href="http://code.google.com/p/google-api-dfp-php/source/browse/trunk/examples/v201201/LineItemService/GetRecentlyUpdatedLineItems.php"&gt;PHP&lt;/a&gt; or other languages in our &lt;a href="http://code.google.com/apis/dfp/docs/clients.html"&gt;client libraries&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Feel free to leave us a comment on the &lt;a href="https://groups.google.com/forum/?fromgroups#!forum/google-doubleclick-for-publishers-api"&gt;forum&lt;/a&gt; with any feedback you have for the API or topics you would like to see in the discover series.&lt;br /&gt;&lt;br /&gt;&lt;span class="post-author"&gt;&lt;a href="https://plus.google.com/104679465567407024302/"&gt;&lt;img height="20" src="https://lh5.googleusercontent.com/oQZTvGY1RNICm4p-kpeNseyIOgEfFdRDfMNyaMs0hrBVvzjZQODeEnRRPbHA0SoebObwNhQnL7bEDImdE16tYXjwViv-90GTbywThxtii7XS7MO3RzE?sz=20" style="border: none; vertical-align: middle;" width="20" /&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href="https://plus.google.com/104679465567407024302/" rel="author"&gt;Paul Rashidi&lt;/a&gt;, DFP API Team&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-2183826051204268000?l=googleadsdeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/2183826051204268000" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/2183826051204268000" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2012/03/discover-dfp-api-v201201-syncing-up.html" title="Discover DFP API v201201: Syncing Up" /><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-3484298121776496579</id><published>2012-02-24T11:20:00.000-08:00</published><updated>2012-02-24T13:07:07.173-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dfp_v201201" /><category scheme="http://www.blogger.com/atom/ns#" term="PQL" /><category scheme="http://www.blogger.com/atom/ns#" term="dfp_api" /><category scheme="http://www.blogger.com/atom/ns#" term="reports" /><title type="text">Discover DFP API v201201: PQL Report Filtering</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;In the &lt;a href="http://googleadsdeveloper.blogspot.com/2012/02/announcing-v201201-of-dfp-api.html"&gt;v201201 version&lt;/a&gt; of the API, we’ve added the ability to perform &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201201/ReportService.ReportQuery.html#statement"&gt;PQL filtering&lt;/a&gt; in reports.  As an example of what you can do with this feature, you can now limit the report to only orders and line items you want to see. This will help shorten the report job processing time and reduces the size of the report generated.  The following Java code snippet creates a report job to pull all the line items belonging to an order in your network:&lt;br /&gt;&lt;pre class="prettyprint"&gt;Long orderId = Long.parseLong("INSERT_ORDER_ID_HERE");&lt;br /&gt;// Create statement to filter for an order.&lt;br /&gt;Statement filterStatement = new StatementBuilder(&lt;br /&gt;    "WHERE ORDER_ID = :id").putValue("id", orderId).toStatement();&lt;br /&gt;&lt;br /&gt;// Create report job.&lt;br /&gt;ReportJob reportJob = new ReportJob();&lt;br /&gt;&lt;br /&gt;// Create report query.&lt;br /&gt;ReportQuery reportQuery = new ReportQuery();&lt;br /&gt;reportQuery.setStatement(filterStatement);&lt;br /&gt;reportQuery.setDateRangeType(DateRangeType.LAST_MONTH);&lt;br /&gt;reportQuery.setDimensions(new Dimension[] {Dimension.LINE_ITEM});&lt;br /&gt;reportQuery.setDimensionAttributes(new DimensionAttribute[] {&lt;br /&gt;DimensionAttribute.ORDER_TRAFFICKER});&lt;br /&gt;reportQuery.setColumns(&lt;br /&gt;    new Column[] {Column.AD_SERVER_IMPRESSIONS, Column.AD_SERVER_REVENUE});&lt;br /&gt;reportJob.setReportQuery(reportQuery);&lt;br /&gt;&lt;/pre&gt;The ‘ORDER_ID’ field in the WHERE clause is a &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201201/ReportService.ReportQuery.html#dimensions"&gt;dimension&lt;/a&gt; enumeration name. A full breakdown of the supported filter enumerations can be found in the &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201201/ReportService.Dimension.html"&gt;documentation&lt;/a&gt;.  We encourage the use of &lt;a href="http://code.google.com/apis/dfp/docs/bestpractices.html#UseBindParameter"&gt;bind variables&lt;/a&gt; to build reusable filter statements, much like other services in the API where PQL is used.  Whenever possible, try to filter on IDs rather than names (i.e. use CITY_CRITERIA_ID over CITY_NAME) since matching by name is case sensitive.  &lt;br /&gt;&lt;br /&gt;If you also specify the &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201201/ReportService.ReportQuery.html#dateRangeType"&gt;dateRangeType&lt;/a&gt; and &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201201/ReportService.ReportQuery.html#dimensionFilters"&gt;dimensionFilters&lt;/a&gt; fields on the &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201201/ReportService.ReportQuery.html"&gt;ReportQuery&lt;/a&gt; object, the filter statement will be applied in conjunction (in a logical AND) so that each entry in the report will match all of the filter criteria.  You can check out a full working example in &lt;a href="http://code.google.com/p/google-api-dfp-java/source/browse/trunk/examples/v201201/reportservice/RunDeliveryReportExample.java"&gt;Java&lt;/a&gt; or language equivalent in our &lt;a href="http://code.google.com/apis/dfp/docs/clients.html"&gt;client libraries&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This is the first post in the &lt;a href="http://googleadsdeveloper.blogspot.com/search/label/dfp_v201201"&gt;Discover DFP API in v201201 series&lt;/a&gt;; our next post will cover syncing objects with the new &lt;a href="http://code.google.com/apis/dfp/docs/reference/latest/LineItemService.LineItem.html#lastModifiedDateTime"&gt;lastModifiedDateTime&lt;/a&gt; field.  Leave us a comment on the &lt;a href="https://groups.google.com/forum/?fromgroups#!forum/google-doubleclick-for-publishers-api"&gt;forum&lt;/a&gt; with any feedback you have for the API or topics you would like to see in the discover series.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class="post-author"&gt;&lt;a href="https://plus.google.com/u/0/115474229489284556707"&gt;&lt;img height="20" src="https://lh3.googleusercontent.com/-pDdv2kTjyNw/AAAAAAAAAAI/AAAAAAAAAnE/q_kK4BYy-mM/photo.jpg?sz=20" style="border: none; vertical-align: middle;" width="20" /&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href="https://plus.google.com/u/0/115474229489284556707" rel="author"&gt;Jeffrey Sham&lt;/a&gt;, DFP API Team&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-3484298121776496579?l=googleadsdeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/3484298121776496579" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/3484298121776496579" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2012/02/discover-dfp-api-in-v201201-pql-report.html" title="Discover DFP API v201201: PQL Report Filtering" /><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh3.googleusercontent.com/-pDdv2kTjyNw/AAAAAAAAAAI/AAAAAAAAAnE/q_kK4BYy-mM/s72-c/photo.jpg?sz=20" height="72" width="72" /></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-200783030784804679</id><published>2012-02-10T12:30:00.000-08:00</published><updated>2012-02-10T12:41:16.882-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dfp_api" /><category scheme="http://www.blogger.com/atom/ns#" term="deprecation" /><title type="text">Retiring support for v201103, v201104, and v201107 of the DFP API</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Today, we are announcing the deprecation of versions &lt;b&gt;v201103&lt;/b&gt;, &lt;b&gt;v201104&lt;/b&gt;, and &lt;b&gt;v201107&lt;/b&gt; of the DFP API. In 3 months, on &lt;b&gt;May 11th&lt;/b&gt;, these versions will be turned off. We are turning off older versions to make sure that everyone can benefit from the improvements in more recent releases and so that we can focus on releasing new features.&lt;br /&gt;&lt;br /&gt;As mentioned in previous deprecation announcements, we will always give at least 3 months notice before turning off a version. Our &lt;a href="http://code.google.com/apis/dfp/docs/rel_notes.html"&gt;release notes page&lt;/a&gt; also contains changelogs for each version, which will help you migrate to a newer version.  If you aren’t using one of our &lt;a href="http://code.google.com/apis/dfp/docs/clients.html"&gt;client libraries&lt;/a&gt;, now would be a great time to start as well.  If you have any feedback or comments about this deprecation, or the API in general, please feel free to leave them on our&lt;a href="http://code.google.com/apis/dfp/forum/discussions.html"&gt; forum&lt;/a&gt; or join us in &lt;a href="https://www.google.com/calendar/b/0/render?eid=dWNkNXF0OTFqbm5mMTlsa2U4NGYwNmNsanMgN2JycWc2MmkwbWJpbnUyMjZpYmxwY25tb29AZw&amp;amp;pli=1&amp;amp;sf=true&amp;amp;output=xml"&gt;a future hangout&lt;/a&gt;&amp;nbsp;on Feb 28th.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="https://plus.google.com/100742954389084668497" style="text-align: left;"&gt;&lt;img alt="" border="0" height="20" id="BLOGGER_PHOTO_ID_5677875414712016498" src="https://lh4.googleusercontent.com/-tcqfAdWqCFc/AAAAAAAAAAI/AAAAAAABT3Y/JU6vWx64NbU/photo.jpg?sz=20" style="border-bottom-style: none; border-color: initial; border-image: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; vertical-align: middle;" width="20" /&gt;&lt;/a&gt;&lt;span style="text-align: left;"&gt;&amp;nbsp;-&amp;nbsp;&lt;/span&gt;&lt;a href="https://plus.google.com/100742954389084668497" rel="author" style="text-align: left;"&gt;Adam Rogal&lt;/a&gt;&lt;span style="text-align: left;"&gt;, DFP API Team&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-200783030784804679?l=googleadsdeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/200783030784804679" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/200783030784804679" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2012/02/retiring-support-for-v201103-v201104.html" title="Retiring support for v201103, v201104, and v201107 of the DFP API" /><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh4.googleusercontent.com/-tcqfAdWqCFc/AAAAAAAAAAI/AAAAAAABT3Y/JU6vWx64NbU/s72-c/photo.jpg?sz=20" height="72" width="72" /></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-5173830637488605564</id><published>2012-02-07T10:00:00.000-08:00</published><updated>2012-02-07T10:24:06.757-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dfp_api" /><title type="text">isocket and Shiny Ads deliver new innovations using the DFP API</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;i&gt;Editor’s note: We’d like to share with you this &lt;a href="http://doubleclickpublishers.blogspot.com/2012/02/isocket-and-shiny-ads-deliver-new.html"&gt;post&lt;/a&gt; from John Park about the growing DFP API  ecosystem and a few success stories from our&amp;nbsp;&lt;a href="http://support.google.com/dfp_premium/bin/topic.py?hl=en&amp;amp;topic=2456651"&gt;partner directory&lt;/a&gt;. -- Adam Rogal, Ads Developer Relations Team&lt;/i&gt;&lt;br /&gt;&lt;div style="background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: small; line-height: 20px;"&gt;&lt;span style="font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: small; line-height: 20px;"&gt;&lt;span id="internal-source-marker_0.36028193356469274"&gt;&lt;span style="font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;With thousands of publishers using the DFP and DFP Small Business ad serving platforms, we know first-hand that no two publishers are identical. Publishers may use in-house billing systems, have unique approval workflows, or use third-party tools to handle their ad operations.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;To give publishers the flexibility to easily integrate their unique processes and systems with their ad server, DFP offers publishers an open &lt;/span&gt;&lt;a href="http://code.google.com/apis/dfp/" style="font-weight: bold;"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 13px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;API&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt; to easily &lt;/span&gt;&lt;span style="background-color: white; font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;create tools that complement their ad operations. &lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white; font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br class="kix-line-break" /&gt;We’ve seen hundreds of developers build new ad serving innovations using the API, including applications to manage inventory, create orders, pull reports, and more. The API has created a new ecosystem of partner innovations, giving publishers access to new ad serving tools and applications. Two such applications come from &lt;/span&gt;&lt;a href="https://www.isocket.com/" style="font-weight: bold;"&gt;&lt;span style="background-color: white; color: #1155cc; font-family: Arial; font-size: 13px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;isocket&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: white; font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt; and &lt;/span&gt;&lt;a href="http://shinyads.com/" style="font-weight: bold;"&gt;&lt;span style="background-color: white; color: #1155cc; font-family: Arial; font-size: 13px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Shiny Ads&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: white; font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt; who have used the DFP API to build applications that help publishers manage and sell their ad space.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 13px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;isocket uses the API to create tools that streamlines sales&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;Seeing the need to streamline the manual steps involved with buying and selling inventory, isocket engineered a direct and self-service ad sales tool to simplify sales workflows. By leveraging the DFP API, isocket was able to build an application to automate sales processes and save money. “We were interested in using the API because it allowed us to eliminate the hassle of manually coordinating campaigns, while still keeping the important parts like publisher control and approval. Integrating with the DFP API has allowed us to make things a lot simpler for publishers,” said Ben Trenda, VP of Sales at isocket.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.google.com/doubleclick/pdfs/DFP-API-iSocket.pdf" style="font-weight: bold;"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 13px; font-style: italic; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Read more&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 13px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; about how isocket integrated with the DFP API. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 13px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 13px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;Shiny Ads builds application to help publishers save time&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;To help facilitate publishers’ direct ad campaign management, Shiny Ads began using&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;the DFP API to integrate its self-serve advertising platform with DFP in order to help publishers streamline their sales processes. This integration has helped save publishers time since they no longer need to manually book sales orders. “Our solution needs to support DFP - our customers demand it” &amp;nbsp;said CEO and founder Roy Pereira. “The API made integrating with DFP easy for us, and most importantly, easy for our clients. Without the DFP API, Shiny Ads would not have the fully functional solution we have today.” &amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.google.com/doubleclick/pdfs/DFP-API-ShinyAds.pdf" style="font-weight: bold;"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 13px; font-style: italic; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Read more&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 13px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt; about how Shiny Ads integrated with the DFP API. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 13px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 13px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;b id="internal-source-marker_0.36028193356469274" style="background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: small; line-height: 20px;"&gt;&lt;span style="font-family: Arial; font-size: 13px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;Over the coming months, we’ll share more stories on how our partners are using the DFP API to deliver exciting ad serving innovations. For a complete list of partners who have built applications using the DFP API, please visit our &lt;/span&gt;&lt;a href="http://support.google.com/dfp_premium/bin/topic.py?hl=en&amp;amp;topic=2456651"&gt;&lt;span style="color: #1155cc; font-family: Arial; font-size: 13px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;partner directory&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 13px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span class="post-author" style="background-color: white; color: #666666; display: block; font-family: Arial, sans-serif; font-size: x-small; line-height: 20px; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="post-author" style="background-color: white; color: #666666; display: block; font-family: Arial, sans-serif; font-size: x-small; line-height: 20px; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Posted by John Park, Partner Programs Manager, and Adam Rogal, Developer Relations&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-5173830637488605564?l=googleadsdeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/5173830637488605564" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/5173830637488605564" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2012/02/editors-note-wed-like-to-share-with-you.html" title="isocket and Shiny Ads deliver new innovations using the DFP API" /><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-1126164877319273523</id><published>2012-02-06T15:00:00.000-08:00</published><updated>2012-02-06T15:19:57.685-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dfp_v201201" /><category scheme="http://www.blogger.com/atom/ns#" term="dfp_api" /><title type="text">Announcing v201201 of the DFP API</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;The newest version of the API, v201201, brings some frequently requested features including using date time strings in PQL statements, filtering objects based on last modified date and times, including a PQL statement to limit a report (such as just running a report for one order), and more. A full list of features can be found on our &lt;a href="http://code.google.com/apis/dfp/docs/rel_notes.html"&gt;release notes page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Filtering&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;In v201201, we’ve focused on improving filtering with PQL statements across the entire API. We’ve introduced a better way to do &lt;a href="http://code.google.com/apis/dfp/docs/pqlreference.html#syntax"&gt;date time filtering&lt;/a&gt;, a new &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201201/LineItemService.LineItem.html#lastModifiedDateTime"&gt;lastModifiedDateTime&lt;/a&gt;&amp;nbsp;field to search on, and the ability to &lt;a href="http://code.google.com/apis/dfp/docs/reference/latest/ReportService.ReportQuery.html#statement"&gt;filter&lt;/a&gt; from within a report.&lt;br /&gt;&lt;br /&gt;With the ability to filter by date and time fields directly in the PQL statement, you’ll now be able to limit the objects on the server, rather than fetch all line items and checking their &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201201/LineItemService.LineItem.html#startDateTime"&gt;startDateTime&lt;/a&gt; property one at a time. For example, if you want to retrieve all line items that started so far in January, include &lt;pre style="border: none; display: inline; margin: 0px; padding: 0px;"&gt;startDateTime&lt;/pre&gt;as a predicate of your filter with a date and time string, e.g. &lt;br /&gt;&lt;pre style="border: none; display: inline; margin: 0px; padding: 0px;"&gt;WHERE startDateTime &amp;gt;= ‘2012-01-01T00:00:00’&lt;/pre&gt;. Note here that the date and time are in ISO 8061 format, i.e. &lt;pre style="border: none; display: inline; margin: 0px; padding: 0px;"&gt;YYYY-MM-DDThh:mm:ss&lt;/pre&gt;, and the time zone is assumed to be that of the network’s. You can also bind a DateTime object instead of using a string, i.e. &lt;br /&gt;&lt;pre style="border: none; display: inline; margin: 0px; padding: 0px;"&gt;WHERE startDateTime &amp;gt; :dateTime&lt;/pre&gt;, where &lt;pre style="border: none; display: inline; margin: 0px; padding: 0px;"&gt;:dateTime&lt;/pre&gt;is bound to a &lt;a href="http://code.google.com/apis/dfp/docs/reference/latest/LineItemService.DateTimeValue.html"&gt;DateTimeValue&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;We’ve also added the new &lt;a href="http://code.google.com/apis/dfp/docs/reference/latest/LineItemService.LineItem.html#lastModifiedDateTime"&gt;lastModifiedDateTime&lt;/a&gt; field to companies, creatives, ad units, line item creative associations, line items, orders, and placements. Using this field, you can now query for objects that have changed recently. Combined with the new date and time filtering feature mentioned above, you will be able to pull all objects changed so far this year, e.g. &lt;br /&gt;&lt;pre style="border: none; display: inline; margin: 0px; padding: 0px;"&gt;WHERE lastModifiedDateTime &amp;gt;= ‘2012-01-01T00:00:00’&lt;/pre&gt;. If you are a developing an application that has to keep in sync with changes made through the UI, only pulling down objects that have changed since your last fetch time will speed up your calls and decrease processing time.&lt;br /&gt;&lt;br /&gt;Finally, one of the largest requests from our developers was to limit what data is returned from within a report. We’ve add the ability to define a &lt;a href="http://code.google.com/apis/dfp/docs/reference/latest/ReportService.ReportQuery.html#statement"&gt;PQL statement&lt;/a&gt;&amp;nbsp;in a report definition to do just that. Now when you create a report, you’ll be able to supply statements to limit it to just one order, e.g.&lt;br&gt;&lt;pre style="border: none; display: inline; margin: 0px; padding: 0px;"&gt;WHERE orderId = :orderId&lt;/pre&gt;, or with only one salesperson as well, e.g. &lt;br&gt;&lt;pre style="border: none; display: inline; margin: 0px; padding: 0px;"&gt;WHERE orderId = :orderId AND salespersonId = :salespersonId&lt;/pre&gt;.&lt;br&gt;&lt;br /&gt;&lt;b&gt;Creatives&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;In v201102, we’ve added three new creative types that are only available to small business networks:&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;a href="http://code.google.com/apis/dfp/docs/reference/latest/CreativeService.FlashExpandableCreative.html"&gt;FlashExpandableCreative&lt;/a&gt; - an expandable creative where the collapsed size is a Flash SWF file and the expanded size is another Flash SWF file.&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/apis/dfp/docs/reference/latest/CreativeService.FlashPushdownCreative.html"&gt;FlashPushdownCreative&lt;/a&gt; - a creative that pushes page content down when the creative expands.&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/apis/dfp/docs/reference/latest/CreativeService.TextAdCreative.html"&gt;TextAdCreative&lt;/a&gt; - a text-based creative.&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Teams&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;We’ve introduced a new service with this version, &lt;a href="http://code.google.com/apis/dfp/docs/reference/latest/TeamService.html"&gt;TeamService&lt;/a&gt;, which lets you group users into teams. Although currently not editable via the API, teams will be used to limit access to entities such as companies, inventory, and orders.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Coming soon&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Over the next few weeks, you’ll learn about all of the features a bit more in the &lt;i&gt;Discover v201201&lt;/i&gt; series starting first with a discussion of filtering and syncing best practices. Let us know if you want to see anything else on our &lt;a href="https://groups.google.com/forum/?fromgroups#!forum/google-doubleclick-for-publishers-api"&gt;forum&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://plus.google.com/100742954389084668497"&gt;&lt;img alt="" border="0" height="20" id="BLOGGER_PHOTO_ID_5677875414712016498" src="https://lh4.googleusercontent.com/-tcqfAdWqCFc/AAAAAAAAAAI/AAAAAAABT3Y/JU6vWx64NbU/photo.jpg?sz=20" style="border: none; vertical-align: middle;" width="20" /&gt;&lt;/a&gt; - &lt;a href="https://plus.google.com/100742954389084668497" rel="author"&gt;Adam Rogal&lt;/a&gt;, DFP API Team &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-1126164877319273523?l=googleadsdeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/1126164877319273523" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/1126164877319273523" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2012/02/announcing-v201201-of-dfp-api.html" title="Announcing v201201 of the DFP API" /><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh4.googleusercontent.com/-tcqfAdWqCFc/AAAAAAAAAAI/AAAAAAABT3Y/JU6vWx64NbU/s72-c/photo.jpg?sz=20" height="72" width="72" /></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-643332180493763528</id><published>2012-01-26T11:00:00.000-08:00</published><updated>2012-01-26T11:33:50.692-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dfp_api" /><category scheme="http://www.blogger.com/atom/ns#" term="php" /><title type="text">Getting Started With the PHP Client Library</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Recently, we released our first &lt;a href="http://code.google.com/apis/dfp/docs/videos.html"&gt;client library walkthrough video&lt;/a&gt; for the DoubleClick for Publishers API. This five-minute video guide shows you how to get up and running with the &lt;a href="http://code.google.com/p/google-api-dfp-php/"&gt;PHP client library&lt;/a&gt; from downloading the code to running one of the examples. All you need to get started is a &lt;a href="http://code.google.com/apis/dfp/docs/prod_signup.html"&gt;DFP account&lt;/a&gt; (production or sandbox) and a machine with PHP 5.2.x and the &lt;a href="http://us3.php.net/manual/en/book.soap.php"&gt;SoapClient&lt;/a&gt;, &lt;a href="http://php.net/manual/en/book.openssl.php"&gt;OpenSSL&lt;/a&gt;, and &lt;a href="http://php.net/manual/en/book.curl.php"&gt;cURL&lt;/a&gt; extensions. For new users to the API, it’s a great way to get acquainted with the documentation pages, project site, and client library features.&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen="" frameborder="0" height="360" src="http://www.youtube.com/embed/eNwxMyHVmwY" width="480"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;The video takes you through an explanation of how the &lt;a href="http://code.google.com/p/google-api-dfp-php/source/browse/trunk/examples/v201111/CreativeService/GetCreativesByStatementExample.php"&gt;getCreativesByStatement&lt;/a&gt; example makes an API call and highlights common usage patterns and best practices for the client library.  We also show you what happens when a call returns an error and how you can configure logging to get more information and troubleshoot an issue. &lt;br /&gt;&lt;br /&gt;Please let us know about any topics you would like us to cover in a video guide or blog by leaving a comment on our &lt;a href="http://code.google.com/apis/dfp/forum/discussions.html"&gt;forum&lt;/a&gt;.  You can also chat with us live at one of our &lt;a href="http://googleadsdeveloper.blogspot.com/search/label/dfp_api"&gt;DFP API Office Hours Hangouts&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="c2"&gt;&lt;/div&gt;&lt;div class="c2"&gt;&lt;/div&gt;&lt;span class="post-author"&gt;&lt;a href="https://plus.google.com/u/0/115474229489284556707"&gt;&lt;img height="20" src="https://lh3.googleusercontent.com/-pDdv2kTjyNw/AAAAAAAAAAI/AAAAAAAAAnE/q_kK4BYy-mM/photo.jpg?sz=20" style="border: none; vertical-align: middle;" width="20" /&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href="https://plus.google.com/u/0/115474229489284556707" rel="author"&gt;Jeffrey Sham&lt;/a&gt;, DFP API Team&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-643332180493763528?l=googleadsdeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/643332180493763528" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/643332180493763528" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2012/01/getting-started-with-php-client-library.html" title="Getting Started With the PHP Client Library" /><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/eNwxMyHVmwY/default.jpg" height="72" width="72" /></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-3599141476902750789</id><published>2012-01-12T10:41:00.000-08:00</published><updated>2012-01-12T10:41:59.462-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="client_libraries" /><category scheme="http://www.blogger.com/atom/ns#" term="dfa_api" /><category scheme="http://www.blogger.com/atom/ns#" term="dfp_api" /><category scheme="http://www.blogger.com/atom/ns#" term="adwords_api" /><title type="text">AdWords, DFA and DFP Client Library Updates</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;We’re constantly making improvements to our AdWords, DoubleClick for Advertisers (DFA) and DoubleClick for Publishers (DFP) client libraries across all supported languages.  Recently, we added the following features.  Read the ChangeLogs and READMEs for details on these changes:&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;GZIP compression used when sending and receiving API calls and reports. (Perl and Java do not have this for AdWords API Report Downloads).&lt;/li&gt;&lt;li&gt;SSL certificate verification.&lt;/li&gt;&lt;li&gt;AdWords only - Examples and support for the new &lt;a href="http://code.google.com/apis/adwords/docs/reference/latest/CreateAccountService.html"&gt;CreateAccountService&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;Please see below for a summary of other changes for each library.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;DotNet&lt;/b&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;No other updates.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;Java&lt;/b&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;A &lt;a href="http://code.google.com/p/google-api-ads-java/"&gt;preview version&lt;/a&gt; of the rewritten Java client library is now available for AdWords, DFA and DFP APIs.  Please consider this alpha-quality code; please file any bugs or feature requests on the &lt;a href="http://code.google.com/p/google-api-ads-java/issues/list"&gt;issue tracker&lt;/a&gt;.  The new library currently supports Maven2, SLF4J, OAuth and we have plans to support other environments and platforms.&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;div&gt;&lt;b&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/b&gt;&lt;/div&gt;&lt;b&gt;Ruby&lt;/b&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Improved parameters validation and error reporting on missing / mistyped fields.&lt;/li&gt;&lt;li&gt;HTTP headers are now logged on DEBUG level.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;Perl&lt;/b&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Fixes to OAuth logic to better handle misconfigurations.&lt;/li&gt;&lt;li&gt;Several bug fixes.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;PHP&lt;/b&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;AdWords only - Added example to get the clientCustomerId for a clientEmail.&lt;/li&gt;&lt;li&gt;AdWords only - Fixed issue with GetAccountHeirarchy example when used in the sandbox.&lt;/li&gt;&lt;li&gt;Fixed issue with lingering "id" attribute after reference replacement. Added tests for SoapXmlFixer.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;Python&lt;/b&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Validation and error handling has been improved to make it easier to use OAuth and Google AppEngine.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;You can download updated versions of our client libraries from their respective sites, or see a list of all client libraries: &lt;a href="http://code.google.com/apis/adwords/docs/clientlibraries.html"&gt;AdWords&lt;/a&gt;, &lt;a href="http://code.google.com/apis/dfa/docs/clients.html"&gt;DFA&lt;/a&gt; and &lt;a href="http://code.google.com/apis/dfp/docs/clients.html"&gt;DFP&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you have any questions or would like to discuss these changes, please post on our forums: &lt;a href="https://groups.google.com/forum/#!forum/adwords-api"&gt;AdWords&lt;/a&gt;, &lt;a href="https://groups.google.com/forum/#!forum/google-doubleclick-for-advertisers-api"&gt;DFA&lt;/a&gt;, &lt;a href="https://groups.google.com/forum/#!forum/google-doubleclick-for-publishers-api"&gt;DFP&lt;/a&gt;.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="post-author"&gt;&lt;a href="https://plus.google.com/u/0/110892224480992063622/posts"&gt;&lt;img height="20" src="https://lh6.googleusercontent.com/-Bm_0uFwE20M/AAAAAAAAAAI/AAAAAAAAALY/hflk83UJtt4/s200-c-k/photo.jpg?sz=20" style="border: none; vertical-align: middle;" width="20" /&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href="https://plus.google.com/u/0/110892224480992063622/posts" rel="author"&gt;Kevin Winter&lt;/a&gt;, AdWords API Team&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-3599141476902750789?l=googleadsdeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/3599141476902750789" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/3599141476902750789" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2012/01/adwords-dfa-and-dfp-client-library.html" title="AdWords, DFA and DFP Client Library Updates" /><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-4164295492119141470</id><published>2012-01-05T11:56:00.000-08:00</published><updated>2012-01-19T14:40:22.711-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="adsense_api" /><category scheme="http://www.blogger.com/atom/ns#" term="admob_sdk" /><category scheme="http://www.blogger.com/atom/ns#" term="dfp_api" /><category scheme="http://www.blogger.com/atom/ns#" term="adwords_api" /><category scheme="http://www.blogger.com/atom/ns#" term="hangout" /><title type="text">More Office Hours in 2012</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Last year we hosted our first office hours for the Google Ads Developer products using Google+ hangouts, and the feedback was overwhelmingly positive. We plan to host more of them in 2012, and sessions for January and February have already been scheduled.  Our upcoming hangouts are listed on the &lt;a href="https://developers.google.com/events/"&gt;Google Developers events page&lt;/a&gt;, and we encourage you to click the "I'll be there" button if you plan on attending.  You can also follow our schedule by subscribing to the &lt;a href="https://www.google.com/calendar/b/0/embed?showNav=0&amp;amp;showDate=0&amp;amp;showPrint=0&amp;amp;showTabs=0&amp;amp;showCalendars=0&amp;amp;mode=AGENDA&amp;amp;height=300&amp;amp;wkst=1&amp;amp;bgcolor=%23FFFFFF&amp;amp;src=7brqg62i0mbinu226iblpcnmoo%40group.calendar.google.com&amp;amp;color=%232F6309&amp;amp;ctz=Etc%2FGMT"&gt;Google Ads Developer Office Hours calendar&lt;/a&gt; or by glancing at the sidebar to the right of this blog entry.&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-UTyRffWHVT8/TwX_iNxfpFI/AAAAAAAAAGE/o7FJnnjKS4c/s1600/hangout.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="220" src="http://3.bp.blogspot.com/-UTyRffWHVT8/TwX_iNxfpFI/AAAAAAAAAGE/o7FJnnjKS4c/s320/hangout.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;In case you haven’t joined us before, you will need 3 things to join the hangout:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;A Google+ account (&lt;a href="https://plus.google.com/"&gt;sign up here&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;The &lt;a href="http://www.google.com/tools/dlpage/res/talkvideo/hangouts/"&gt;Google voice and video plugin&lt;/a&gt; installed on your computer&lt;/li&gt;&lt;li&gt;A quiet place to hangout so we can hear you&lt;/li&gt;&lt;/ul&gt;These hangouts are informal and conversational, which make them a great place to ask questions or give us feedback.  If you have questions about our office hours program, reach out to us on the forums.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update:&lt;/b&gt;&amp;nbsp;DFP January Office hours have been moved to January 31st.&lt;br /&gt;&lt;br /&gt;&lt;span class="post-author"&gt;&lt;a href="https://plus.google.com/u/0/103231502413952116096"&gt;&lt;img height="20" src="https://lh4.googleusercontent.com/-qbaZRXjidts/AAAAAAAAAAI/AAAAAAAAABo/HfCK2T4S-14/s200-c-k/photo.jpg?sz=20" style="border: none; vertical-align: middle;" width="20" /&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href="https://plus.google.com/u/0/103231502413952116096" rel="author"&gt;Eric Koleda&lt;/a&gt;, Google Ads Developer Team&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-4164295492119141470?l=googleadsdeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/4164295492119141470" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/4164295492119141470" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2012/01/more-office-hours-in-2012.html" title="More Office Hours in 2012" /><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-UTyRffWHVT8/TwX_iNxfpFI/AAAAAAAAAGE/o7FJnnjKS4c/s72-c/hangout.png" height="72" width="72" /></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-1294202733461947118</id><published>2011-12-22T10:41:00.000-08:00</published><updated>2011-12-22T10:41:44.080-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="app_engine" /><category scheme="http://www.blogger.com/atom/ns#" term="dfp_appengine" /><category scheme="http://www.blogger.com/atom/ns#" term="dfp_api" /><title type="text">Google App Engine for Java meet DFP API, Part 1: Hello World</title><content type="html">&lt;p&gt;We are excited to start discussing how to use the &lt;a href="http://code.google.com/apis/dfp/"&gt;DFP API&lt;/a&gt; from within the &lt;a href="http://code.google.com/appengine/"&gt;Google App Engine&lt;/a&gt; (Java) environment. This first blog post in the series focuses on setting up your environment and understanding how to use the API from App Engine. Future posts in this series will build upon the same project to create a sample application. Ultimately, you will be able to make DFP information more accessible within your organization, while also leveraging the ease of scale and deployability that comes with creating applications on Google App Engine.&lt;/p&gt; &lt;p&gt;&lt;b&gt;Setting up your environment&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;For simplicity sake we will focus on utilizing Eclipse and the Google App Engine Plugin available for Eclipse. Information about setting them up can be found &lt;a href="http://code.google.com/appengine/docs/java/tools/eclipse.html"&gt;here&lt;/a&gt;. If you prefer a different environment setup, you can always view the &lt;a href="http://code.google.com/appengine/docs/java/gettingstarted/"&gt;Getting Started Guide for App Engine&lt;/a&gt; for more information.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Create an App Engine project&lt;/b&gt;&lt;br /&gt;&lt;br/&gt;You’ll need a place to do your coding so create an App Engine project in a similar manner to the screenshots below.&lt;/p&gt;&lt;br&gt;&lt;a href="https://lh5.googleusercontent.com/7QOduFQYuZMbWv8dUFsygi6mHQciCDfQvXOrC4FdrE90LGnWvIXTxtAL7EJPNfDSjv8h54-9qvJurrxx1mJ8fvFRzYS2KbQRLEtDd-lD4PNR9pHQsB8"&gt;&lt;img width="250" src="https://lh5.googleusercontent.com/7QOduFQYuZMbWv8dUFsygi6mHQciCDfQvXOrC4FdrE90LGnWvIXTxtAL7EJPNfDSjv8h54-9qvJurrxx1mJ8fvFRzYS2KbQRLEtDd-lD4PNR9pHQsB8" /&gt;&lt;/a&gt;&lt;a href="https://lh6.googleusercontent.com/Lso2PT0dpPham3cSGiYc9BVK6vO6UassXzazokh6zF1WLs8x9QL1uOWbIVDYRHJijmljVpGvRKQbUFuec5qcuVfhJyvIi_3dCtnpX-5YEaJyTAmE0gQ"&gt;&lt;img width="250" src="https://lh6.googleusercontent.com/Lso2PT0dpPham3cSGiYc9BVK6vO6UassXzazokh6zF1WLs8x9QL1uOWbIVDYRHJijmljVpGvRKQbUFuec5qcuVfhJyvIi_3dCtnpX-5YEaJyTAmE0gQ" /&gt;&lt;/a&gt; &lt;p&gt;Note: If you would like to download all of the source code in this blog post to follow along you can do so as a &lt;a href="http://code.google.com/p/google-api-dfp-java/downloads/detail?name=dfp-appenginesample.tar.gz&amp;amp;can=2&amp;amp;q="&gt;tarball&lt;/a&gt; or you can browse the code base from our &lt;a href="http://code.google.com/p/google-api-dfp-java/source/browse/#svn%2Fapps%2Fdfponappengine"&gt;svn repository&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;b&gt;Dependencies&lt;/b&gt;&lt;br /&gt;&lt;br/&gt;The App Engine Java environment requires JAX-WS when dealing with SOAP interfaces like DFP API so you won’t be able to use the normal Java &lt;a href="http://code.google.com/p/google-api-dfp-java/"&gt;client library&lt;/a&gt;. You’ll need to download &lt;a href="http://code.google.com/p/google-api-dfp-java/source/browse/apps/dfponappengine/src/com/google/api/ads/dfp/samples/appengine/ClientLoginAuth.java"&gt;this client login auth file&lt;/a&gt; to help with authentication. Place this file in your project’s src directory. Next, you’ll need a &lt;a href="http://code.google.com/p/google-api-dfp-java/source/browse/apps/dfponappengine/war/WEB-INF/lib/dfp-api-jax-ws-20111220.jar"&gt;jar&lt;/a&gt; and a &lt;a href="http://code.google.com/p/google-api-dfp-java/source/browse/apps/dfponappengine/war/WEB-INF/CombinedWsdl.wsdl"&gt;wsdl&lt;/a&gt; file that we’ve compiled with JAX-WS; place them in the WEB-INF/lib and WEB-INF directory, respectively. See the files highlighted in their respective locations below.&lt;/p&gt;&lt;br&gt;&lt;a href="https://lh4.googleusercontent.com/Wu8AAUApedNt367zp5LSQU-wTNnOPNRhwGEcfrLvA1nRglQW21aUMwL3T-Y6CuA-G2dQ2nRc2ZCMJ7N_TjVV2nDXNyVnP4DjW1uZ2j7vs4CI9g83kKE"&gt;&lt;img width="500" src="https://lh4.googleusercontent.com/Wu8AAUApedNt367zp5LSQU-wTNnOPNRhwGEcfrLvA1nRglQW21aUMwL3T-Y6CuA-G2dQ2nRc2ZCMJ7N_TjVV2nDXNyVnP4DjW1uZ2j7vs4CI9g83kKE" /&gt;&lt;/a&gt; &lt;p&gt;&lt;b&gt;Write some code&lt;/b&gt;&lt;br /&gt;&lt;br/&gt;Now that you’re set up, it’s time to write some code that uses the DFP API. This first snippet of code performs some setup for your App Engine Servlet.&lt;/p&gt;&lt;pre class="prettyprint"&gt;&lt;br /&gt;  /**&lt;br /&gt;   * Perform initialization of servlet and cached resources used to&lt;br /&gt;   * access DFP API.&lt;br /&gt;   */&lt;br /&gt;  @Override&lt;br /&gt;  public void init(ServletConfig config) throws ServletException {&lt;br /&gt;    super.init(config);&lt;br /&gt;&lt;br /&gt;    // Generate an authToken.&lt;br /&gt;    try {&lt;br /&gt;      authToken = regenerateAuthToken();&lt;br /&gt;    } catch (Exception exception) {&lt;br /&gt;      throw new ServletException("Could not generate an Auth Token.",&lt;br /&gt;          exception);&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  /**&lt;br /&gt;   * Regenerate the client login auth token that the servlet uses.&lt;br /&gt;   * &lt;br /&gt;   * @throws Exception&lt;br /&gt;   */&lt;br /&gt;  public synchronized String regenerateAuthToken() throws Exception {&lt;br /&gt;    ClientLoginAuth clientLoginAuth = new ClientLoginAuth(EMAIL_ADDRESS, &lt;br /&gt;        EMAIL_ADDRESS_PASSWORD);&lt;br /&gt;    return clientLoginAuth.getAuthToken();&lt;br /&gt;  }&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;This next snippet of code handles the actual web browser requests.&lt;/p&gt;&lt;pre class="prettyprint"&gt;&lt;br /&gt;  @Override&lt;br /&gt;  public void doGet(HttpServletRequest req, HttpServletResponse resp) &lt;br /&gt;      throws ServletException {&lt;br /&gt;    try {&lt;br /&gt;      // Retrieve an object handle to our network service.&lt;br /&gt;      NetworkService networkService = new NetworkService();&lt;br /&gt;      NetworkServiceInterface networkServiceInterface =&lt;br /&gt;          networkService.getNetworkServiceInterfacePort();&lt;br /&gt;&lt;br /&gt;      // Prepare header object to make server call&lt;br /&gt;      SoapRequestHeader requestHeader = new SoapRequestHeader();&lt;br /&gt;      requestHeader.setApplicationName("Hello World");&lt;br /&gt;      ClientLogin clientLogin = new ClientLogin();&lt;br /&gt;      clientLogin.setToken(authToken);&lt;br /&gt;      requestHeader.setAuthentication(clientLogin);&lt;br /&gt;&lt;br /&gt;      // Make protected call to the server.&lt;br /&gt;      String rootAdUnitId = "";&lt;br /&gt;      Network currentNetwork = networkServiceInterface.getCurrentNetwork(&lt;br /&gt;          requestHeader, null);&lt;br /&gt;      // Extract data from object returned from server.&lt;br /&gt;      rootAdUnitId = currentNetwork.getEffectiveRootAdUnitId();&lt;br /&gt;&lt;br /&gt;      resp.setContentType("text/plain");&lt;br /&gt;      resp.getWriter().println("Hello, world. Your root ad unit id is: "&lt;br /&gt;          + rootAdUnitId);&lt;br /&gt;    } catch (Exception e) {&lt;br /&gt;      // Perform exception handling.&lt;br /&gt;      e.printStackTrace();&lt;br /&gt;      throw new ServletException("Error occurred. Check logs for specific "&lt;br /&gt;          " details about the error.");&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;This particular code snippet retrieves the root ad unit for our network whenever someone accesses the application. You can view the full sample servlet code &lt;a href="http://code.google.com/p/google-api-dfp-java/source/browse/apps/dfponappengine/src/com/google/api/ads/dfp/samples/appengine/DfpAppEngineServlet.java"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Testing&lt;/b&gt;&lt;br /&gt;&lt;br/&gt;To make sure your code works, let’s deploy the project locally. Right-click on your project and then choose “Run” and select the “Web Application” option from the submenu. This will deploy your code to a locally running App Engine server. The console will display the URL to access the application (usually &lt;a href="http://localhost:8888/"&gt;http://localhost:8888/&lt;/a&gt;). Clicking on this link and then the subsequent servlet link should return a page similar to this.&lt;/p&gt;&lt;br&gt;&lt;a href="https://lh6.googleusercontent.com/xLkcrweB0ZC-PlfKrgNPBHQHCF2hg-XDtAYJuHLlyy1YrHFHiAkCeEsubIum3fBRvMISNl-4Uq3AhkEJiNeGvfc7IeIF4-Y0igY8Afo2EB6sSvMUHXY"&gt;&lt;img width="500" src="https://lh6.googleusercontent.com/xLkcrweB0ZC-PlfKrgNPBHQHCF2hg-XDtAYJuHLlyy1YrHFHiAkCeEsubIum3fBRvMISNl-4Uq3AhkEJiNeGvfc7IeIF4-Y0igY8Afo2EB6sSvMUHXY" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://lh3.googleusercontent.com/qMMOCzICbIUipTiiUWjXPo_qnZ2EoBbzBdd4-2EFm72dPflhSntqoDMrJFMCNVDUZ9n5_6qOCHrWreL-qg7p1GXdjUWbWtfQprjBFZB9_rCfxQ3Q5kI"&gt;&lt;img width="500" src="https://lh3.googleusercontent.com/qMMOCzICbIUipTiiUWjXPo_qnZ2EoBbzBdd4-2EFm72dPflhSntqoDMrJFMCNVDUZ9n5_6qOCHrWreL-qg7p1GXdjUWbWtfQprjBFZB9_rCfxQ3Q5kI" /&gt;&lt;/a&gt; &lt;p&gt;&lt;b&gt;Next Time&lt;/b&gt;&lt;br /&gt;&lt;br/&gt;Next time, we’ll extend the project to do some background processing and start using some other services from the DFP API.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Troubleshooting&lt;/b&gt;&lt;br /&gt;&lt;br/&gt;We really hope you didn’t have an issue, but if you did there is a troubleshooting README file included in the &lt;a href="http://code.google.com/p/google-api-dfp-java/source/browse/apps/dfponappengine/README"&gt;sample code&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;a href="http://code.google.com/apis/dfp/forum/discussions.html"&gt;Let us know&lt;/a&gt; if you have any questions, and happy holidays!&lt;/p&gt; &lt;br /&gt; &lt;span class="post-author"&gt;&lt;a href="https://plus.google.com/104679465567407024302/"&gt;&lt;img width="20" height="20" src="https://lh5.googleusercontent.com/oQZTvGY1RNICm4p-kpeNseyIOgEfFdRDfMNyaMs0hrBVvzjZQODeEnRRPbHA0SoebObwNhQnL7bEDImdE16tYXjwViv-90GTbywThxtii7XS7MO3RzE?sz=20" style="vertical-align:middle; border:none;"&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href="https://plus.google.com/104679465567407024302/" rel="author"&gt;Paul Rashidi&lt;/a&gt;, DFP API Team&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-1294202733461947118?l=googleadsdeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/1294202733461947118" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/1294202733461947118" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2011/12/google-app-engine-for-java-meet-dfp-api.html" title="Google App Engine for Java meet DFP API, Part 1: Hello World" /><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-6197712991551892135</id><published>2011-12-20T18:40:00.000-08:00</published><updated>2011-12-21T11:09:39.305-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mobile" /><category scheme="http://www.blogger.com/atom/ns#" term="dfa_api" /><category scheme="http://www.blogger.com/atom/ns#" term="admob_sdk" /><category scheme="http://www.blogger.com/atom/ns#" term="dfp_api" /><category scheme="http://www.blogger.com/atom/ns#" term="adwords_api" /><title type="text">A look back at mobile in 2011</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;i&gt;Editor’s note: As many of you are planning your 2012 advertisement strategy, we’d like to share with you this &lt;a href="http://googlemobileads.blogspot.com/2011/12/look-back-at-2011.html"&gt;post&lt;/a&gt; from Karim Temsamani. It’s a look back on 2011 and provides a great perspective on how &lt;a href="http://googleadsdeveloper.blogspot.com/search/label/mobile"&gt;mobile&lt;/a&gt; really took a step forward in the advertising ecosystem. -- Stan Grinberg, Ads Developer Relations Team&lt;/i&gt; &lt;p&gt;Mobile turned a corner this year. As smartphones and tablets became a part of our everyday lives, business owners’ conversations shifted from 'Why should I advertise on mobile or build a mobile website?' to 'How do I get started?’.&lt;br /&gt;&lt;br /&gt; Five major industry trends emerged in 2011 that will carry us into 2012, and beyond. &lt;/p&gt; &lt;p&gt;&lt;b&gt;1 - Everyone goes mobile&lt;/b&gt;&lt;br /&gt;Smartphones and tablets proved that they weren’t just for the geekiest - er, ‘tech savviest’ - among us.  These devices are &lt;a href="http://blog.nielsen.com/nielsenwire/online_mobile/report-the-rise-of-smartphones-apps-and-the-mobile-web/"&gt;increasingly becoming the norm&lt;/a&gt; and they continue to change how people connect with each other, and with businesses, everywhere.  According to our &lt;a href="http://googlemobileads.blogspot.com/2011/04/smartphone-user-study-shows-mobile.html"&gt;research with IPSOS&lt;/a&gt; earlier this year: &lt;ul&gt;&lt;li&gt;79% of smartphone consumers use their phones to help with shopping, from comparing prices, to finding more product info, to locating a retailer.&lt;/li&gt;&lt;li&gt;70% use their smartphones while in a store.&lt;/li&gt;&lt;li&gt;77% have contacted a business via mobile, with 61% calling and 59% visiting the local business.&lt;/li&gt;&lt;/ul&gt; It’s not just that more people are using smartphones and tablets (though the numbers are skyrocketing at an accelerating pace)—it’s that a huge, and fast-growing base of smartphone users, now expect to engage with businesses on mobile. The mainstream consumer got mobilized in 2011. &lt;/p&gt; &lt;p&gt;&lt;b&gt;2 - Mobile search transforms shopping, forever&lt;/b&gt;   &lt;br /&gt;Analyzing mobile search trends helped the industry better understand how people were using their mobile devices in 2011.  For starters, we learned a lot about the ‘timing’ of mobile and tablets.  These devices enable us to be constantly connected to the internet, as &lt;a href="http://googlemobileads.blogspot.com/2011/09/new-search-data-reveal-that-when-sun.html"&gt;mobile usage has proven to be complementary to the desktop&lt;/a&gt;.  We got a clearer picture of how search is changing the ways we shop and connect with businesses.  More people are looking for deals both en route to stores and within them on mobile - in the retail category, “Black Friday” related mobile queries were over 200% higher this year than in 2010.  Users have also developed some mobile-specific shopping habits - for example, &lt;a href="http://googlemobileads.blogspot.com/2011/09/holiday-retail-mobile-insights.html"&gt;44% of all searches for last minute gifts and store locator terms&lt;/a&gt; are projected to come from mobile devices this holiday season.  For procrastinators, mobile has come to the rescue!&lt;br /&gt;&lt;br /&gt; In October, we looked at some of the newest ways marketers can build their businesses via &lt;a href="http://googleblog.blogspot.com/2011/10/mo-mentum-whats-new-with-mobile-search.html"&gt;mobile search&lt;/a&gt;.  But, this is only the beginning - whether people are trying to find or call a business, compare prices in a store, or visit a site or app directly from their phones, search and search ads will be the tools that shape a new shopping experience, enabling us connect with businesses, research and buy products on or offline, all via mobile. &lt;/p&gt; &lt;p&gt;&lt;b&gt;3 - Progress with the mobile advertising pipes&lt;/b&gt;&lt;br /&gt;As an industry, we came a long way in terms of improving the ‘pipes’ - the systems, products and technologies that advertisers use to build, serve, and measure mobile ads.  It’s still early days, but the progress with standards like &lt;a href="http://googlemobileads.blogspot.com/2011/09/industry-standards-coming-to-mobile.html"&gt;MRAID&lt;/a&gt; and the momentum behind HTML5, are helping to rally the mobile community and make it easier for marketers and customers to connect on the platform.  Getting existing tools to ‘speak mobile’ has been another key to helping mobile advertising grow-up as quickly users and businesses want it to.  Across &lt;a href="http://googlemobileads.blogspot.com/2011/09/mobile-website-optimization-now-factors.html"&gt;search&lt;/a&gt; and &lt;a href="http://googlemobileads.blogspot.com/2011/05/delivering-mobile-branding-at-scale.html"&gt;display&lt;/a&gt;, the tools the industry is already familiar with are getting mobilized.  There’s plenty of work still to do, but significant progress is being made - watch this space in 2012. &lt;/p&gt; &lt;p&gt;&lt;b&gt;4 - Tablets join the mobile party&lt;/b&gt;&lt;br /&gt;Tablets made quite a splash this year.  Usage trends sharpened - we’re seeing that people people use these devices &lt;a href="http://googlemobileads.blogspot.com/2011/11/consumers-on-tablet-devices-having-fun.html"&gt;to shop, consume media, have fun&lt;/a&gt;, and they do so most frequently &lt;a href="http://googlemobileads.blogspot.com/2011/09/new-search-data-reveal-that-when-sun.html"&gt;in the evenings&lt;/a&gt;.  Tablets are a third screen to be reckoned with for marketers - we saw a 440% growth in traffic from tablets in November 2011 compared to December 2010 on the AdMob network.  The business potential is tremendous: not only are users more inclined to shop and make purchases on tablets, but because campaigns can be more effective running across several screens instead of one, tablets offer an incremental opportunity for marketers.  Our research with Nielsen showed that campaigns on several screens can be ‘Better Together’ - indeed, in cases like &lt;a href="http://googlemobileads.blogspot.com/2011/09/better-together-new-insights-on-display.html"&gt;Adidas’&lt;/a&gt;, that proved to be true. &lt;/p&gt; &lt;p&gt;&lt;b&gt;5 - Businesses start (actually) thinking mobile first&lt;/b&gt;&lt;br /&gt;Smartphones and tablets aren’t small desktop computers - they’re new devices being used in entirely new ways. This year, businesses began to embrace this at scale and many saw good things happen when they built &lt;a href="http://googlemobileads.blogspot.com/2011/02/mobile-best-practice-separate-out.html"&gt;ad campaigns&lt;/a&gt; and &lt;a href="http://googlemobileads.blogspot.com/2011/11/gomo-ten-mobile-site-best-practices.html"&gt;websites&lt;/a&gt; specifically for mobile.  &lt;a href="http://googlemobileads.blogspot.com/2011/11/gomo-ticketsnow-sees-100-spike-in.html"&gt;Ticketsnow’s success&lt;/a&gt; with a mobile optimized site - increased site traffic, and more ticket sales - is just one example of the benefits of building for mobile.  Initiatives like &lt;a href="http://googlemobileads.blogspot.com/2011/11/gomo-helping-businesses-create-mobile.html"&gt;GoMo&lt;/a&gt; and &lt;a href="http://googlemobileads.blogspot.com/2011/12/engaging-consumers-on-tablets-new-ad.html"&gt;platform-specific ad features&lt;/a&gt; will help businesses better connect with mobile customers in the coming months, and beyond.&lt;br /&gt;&lt;br /&gt; It’s hard to believe, but as far as the industry has come in 2011, we’re still in the earliest chapters of mobile’s story.  The ways people connect to businesses on their mobile devices and the tools they’re using to connect from them progressed by leaps and bounds this year and soon, we’ll see the mainstream shift that changes the way mobile connects people with brick-and-mortar storefronts as well.  Mobile will be moving full speed ahead in 2012 so keep those sleeves rolled-up and those seatbelts fastened - we’ll see you then.&lt;br/&gt;&lt;br/&gt;&lt;/p&gt;Posted by: Karim Temsamani, VP Mobile Ads&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-6197712991551892135?l=googleadsdeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/6197712991551892135" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/6197712991551892135" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2011/12/look-back-at-mobile-in-2011.html" title="A look back at mobile in 2011" /><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-7315562871821695385</id><published>2011-12-20T09:15:00.000-08:00</published><updated>2011-12-20T09:15:15.281-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dfp_v201111" /><category scheme="http://www.blogger.com/atom/ns#" term="dfp_api" /><category scheme="http://www.blogger.com/atom/ns#" term="reports" /><title type="text">Discover DFP API v201111: More Power in Reporting</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;In this installment of the &lt;a href="http://googleadsdeveloper.blogspot.com/search/label/dfp_v201111"&gt;Discover DFP API v201111 series&lt;/a&gt;, we present new features we’ve added to reports in the API.  In addition to &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/ReportService.Column.html#MERGED_AD_SERVER_IMPRESSIONS"&gt;merged ad server columns&lt;/a&gt;, which helps upgraded publishers reports on both DART and DFP ad servers, you can now use &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/ReportService.DimensionAttribute.html"&gt;dimension attributes&lt;/a&gt; for greater control in reporting.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Dimension Attributes&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Dimension attributes let you break down your report by additional fields associated with the &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/ReportService.Dimension.html"&gt;dimension&lt;/a&gt;. For example, you can now add the &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/ReportService.DimensionAttribute.html#ORDER_TRAFFICKER"&gt;trafficker&lt;/a&gt;, &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/ReportService.DimensionAttribute.html#ORDER_EXTERNAL_ID"&gt;external ID&lt;/a&gt;, and &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/ReportService.DimensionAttribute.html#ORDER_START_DATE_TIME"&gt;order start date&lt;/a&gt; as dimension attributes associated to your order dimension in a delivery report. This is useful if you would like to see how each of your orders is doing &lt;i&gt;and&lt;/i&gt; which trafficker was responsible for that order.&lt;br /&gt;&lt;br /&gt;In the past, you would get this information by running a report for orders and then looking up the orders with &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/OrderService.html"&gt;Order Service&lt;/a&gt; to inspect the attributes.  Now, it’s as simple as adding values to the &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/ReportService.ReportQuery.html#dimensionAttributes"&gt;dimensionAttributes&lt;/a&gt; field on your &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/ReportService.ReportQuery.html"&gt;ReportQuery&lt;/a&gt; object and the corresponding fields will be integrated into the report. The following code snippet shows you how to create a &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/ReportService.ReportJob.html"&gt;report job&lt;/a&gt; with dimension attributes: &lt;br /&gt;&lt;pre class="prettyprint"&gt;// Create report job.&lt;br /&gt;ReportJob reportJob = new ReportJob();&lt;br /&gt;&lt;br /&gt;// Create report query.&lt;br /&gt;ReportQuery reportQuery = new ReportQuery();&lt;br /&gt;reportQuery.setDateRangeType(DateRangeType.LAST_MONTH);&lt;br /&gt;reportQuery.setDimensions(new Dimension[] {Dimension.ORDER});&lt;br /&gt;&lt;br /&gt;// Set dimension attributes for order dimension.&lt;br /&gt;reportQuery.setDimensionAttributes(new DimensionAttribute[] {&lt;br /&gt;    DimensionAttribute.ORDER_TRAFFICKER,&lt;br /&gt;    DimensionAttribute.ORDER_START_DATE_TIME,&lt;br /&gt;    DimensionAttribute.ORDER_END_DATE_TIME});&lt;br /&gt;&lt;br /&gt;// Set columns to report on.&lt;br /&gt;reportQuery.setColumns(new Column[] {&lt;br /&gt;    Column.AD_SERVER_IMPRESSIONS,&lt;br /&gt;    Column.AD_SERVER_CLICKS});&lt;br /&gt;&lt;br /&gt;reportJob.setReportQuery(reportQuery);&lt;br /&gt;&lt;/pre&gt;You can check out the full example in the &lt;a href="http://code.google.com/p/google-api-dfp-java/source/browse/trunk/examples/v201111/reportservice/RunDeliveryReportExample.java"&gt;RunDeliveryReportExample&lt;/a&gt; in the Java client library. Notice that you can only add dimension attributes for dimensions that you have in the report.  For example, if you tried to add &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/ReportService.DimensionAttribute.html#LINE_ITEM_EXTERNAL_ID"&gt;LINE_ITEM_EXTERNAL_ID&lt;/a&gt;, and you only have order (but not line item) as a dimension, you will get the following error:&lt;br /&gt;&lt;br /&gt;ReportError.ATTRIBUTES_NOT_SUPPORTED_FOR_REQUEST&lt;br /&gt;&lt;br /&gt;Be sure to check out our updated reporting examples in the &lt;a href="http://code.google.com/apis/dfp/docs/clients.html"&gt;client libraries&lt;/a&gt; and take a look at our &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/ReportService.DimensionAttribute.html"&gt;documentation&lt;/a&gt; for a full mapping of supported dimension attributes and the fields they represent.&lt;br /&gt;&lt;br /&gt;We are always looking for ways to improve the API and we’d love to get your feedback.  Let us know what you’d like to see in the API or discussed in a blog post by posting on our &lt;a href="http://code.google.com/apis/dfp/forum/discussions.html"&gt;forum&lt;/a&gt;.  We’re also more than happy to chat during one of our &lt;a href="http://googleadsdeveloper.blogspot.com/search/label/dfp_api"&gt;office hours&lt;/a&gt; hangouts.&lt;/div&gt;&lt;br /&gt;&lt;span class="post-author"&gt;&lt;a href="https://plus.google.com/u/0/115474229489284556707"&gt;&lt;img height="20" src="https://lh3.googleusercontent.com/-pDdv2kTjyNw/AAAAAAAAAAI/AAAAAAAAAnE/q_kK4BYy-mM/photo.jpg?sz=20" style="border: none; vertical-align: middle;" width="20" /&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href="https://plus.google.com/u/0/115474229489284556707" rel="author"&gt;Jeffrey Sham&lt;/a&gt;, DFP API Team&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-7315562871821695385?l=googleadsdeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/7315562871821695385" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/7315562871821695385" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2011/12/discover-dfp-api-v201111-more-power-in.html" title="Discover DFP API v201111: More Power in Reporting" /><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh3.googleusercontent.com/-pDdv2kTjyNw/AAAAAAAAAAI/AAAAAAAAAnE/q_kK4BYy-mM/s72-c/photo.jpg?sz=20" height="72" width="72" /></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-9051322889334922217</id><published>2011-12-16T10:00:00.000-08:00</published><updated>2011-12-16T10:07:34.087-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dfp_v201111" /><category scheme="http://www.blogger.com/atom/ns#" term="creatives" /><category scheme="http://www.blogger.com/atom/ns#" term="dfp_api" /><title type="text">Discover DFP API v201111: Creative Creatives</title><content type="html">Last month, we &lt;a href="http://googleadsdeveloper.blogspot.com/2011/11/announcing-version-v201111-of-dfp-api.html"&gt;announced&lt;/a&gt; the ability to create both &lt;a href="http://code.google.com/apis/dfp/docs/reference/latest/CreativeService.CustomCreative.html"&gt;custom&lt;/a&gt; and &lt;a href="http://code.google.com/apis/dfp/docs/reference/latest/CreativeService.TemplateCreative.html"&gt;template creatives&lt;/a&gt;&amp;nbsp;using the DFP API. Today we’ll show you can use these premium-only features to create richer creatives with custom HTML.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Custom or template&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The difference between custom and template creatives is that custom creatives have their &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/CreativeService.CustomCreative.html#htmlSnippet"&gt;HTML snippet&lt;/a&gt; set within them, while template creatives are instantiated from system or user defined HTML snippets. Deciding which one to use depends on your network’s needs. If your network deals primarily with traffickers using the DFP UI, it may be beneficial for them to use creative templates in their workflow. The API could be used to retrieve these templates and report on them, but your traffickers would most likely want to create the creatives from templates in the UI.&lt;br /&gt;&lt;br /&gt;However, if you are developing a platform in which traffickers spend most of their day, it may scale better to template the HTML yourself within your content management system (CMS) and use custom creatives for the advertisements. You could store custom HTML snippets and prompt the user for assets to insert. In essence, you would be creating your own templates, but without the overhead of template creatives.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Creating custom creatives&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;To create a custom creative, you first have to define your HTML snippet:&lt;br /&gt; &lt;pre class="prettyprint"&gt;  String htmlSnippet = "&amp;lt;a href='%%CLICK_URL_UNESC%%%%DEST_URL%%'&amp;gt;"&lt;br /&gt;      + "&amp;lt;img src='%%FILE:IMAGE_ASSET%%'/&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;br&amp;gt;Click for great deals!");&lt;br /&gt;  CustomCreative customCreative = new CustomCreative();&lt;br /&gt;      customCreative.setHtmlSnippet(htmlSnippet);&lt;br /&gt;&lt;/pre&gt; Notice here that the CLICK_URL_UNESC, DEST_URL, and FILE macros are used to customize the creative at serving time. CLICK_URL_UNESC will insert the clickthrough URL while DEST_URL inserts the URL that the ad points to. The FILE macro will reference any attached assets to the creative, in this case one named IMAGE_ASSET. &lt;br /&gt; &lt;pre class="prettyprint"&gt;  // Set the custom creative image asset.&lt;br /&gt;  CustomCreativeAsset customCreativeAsset = new CustomCreativeAsset();&lt;br /&gt;  customCreativeAsset.setMacroName("IMAGE_ASSET");&lt;br /&gt;  customCreativeAsset.setAssetByteArray(/* Byte array from image. */);&lt;br /&gt;  customCreativeAsset.setFileName(&lt;br /&gt;      String.format("image%s.jpg", System.currentTimeMillis()));&lt;br /&gt;  customCreative.setCustomCreativeAssets(&lt;br /&gt;      new CustomCreativeAsset[] {customCreativeAsset});&lt;br /&gt;&lt;/pre&gt; You would then call &lt;a href="http://code.google.com/apis/dfp/docs/reference/latest/CreativeService.html#createCreative"&gt;CreativeService.createCreative&lt;/a&gt; on customCreative to instantiate on the server. After creating the creative, you can then review it using the creative’s &lt;a href="http://code.google.com/apis/dfp/docs/reference/latest/CreativeService.CustomCreative.html#previewUrl"&gt;previewUrl&lt;/a&gt; attribute or the newly added &lt;a href="http://code.google.com/apis/dfp/docs/reference/latest/LineItemCreativeAssociationService.html#getPreviewUrl"&gt;getPreviewUrl&lt;/a&gt; method. When updating custom creatives, you don’t need to pass the asset byte array each time. Instead, you can leave it null with &lt;a href="http://code.google.com/apis/dfp/docs/reference/latest/CreativeService.CustomCreativeAsset.html#assetId"&gt;assetId&lt;/a&gt; set to what it was assigned to when created. The &lt;a href="http://code.google.com/p/google-api-dfp-java/source/browse/trunk/examples/v201111/creativeservice/CreateCustomCreativeExample.java"&gt;full example&lt;/a&gt; can be found on the Java client library page, as well as in our &lt;a href="http://code.google.com/apis/dfp/docs/clients.html"&gt;other libraries&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;As a final note, custom creatives can be used for many other purposes beyond the simple image ad above. Including a SWF file as an asset, for example, is a common way of creating flash banner ads. You can even include a &lt;a href="http://www.google.com/webmasters/+1/button/#customize-snippet"&gt;Google+ +1 button&lt;/a&gt; and customize the +1’s destination URL with the DEST_URL macro.&lt;br /&gt;&lt;br /&gt;We have a few more posts lined up for the &lt;a href="http://googleadsdeveloper.blogspot.com/search/label/dfp_v201111"&gt;Discover DFP API v201111 series&lt;/a&gt;, but if there’s any other topics you’d like to see, please let us know on the &lt;a href="http://code.google.com/apis/dfp/forum/discussions.html"&gt;forum&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://plus.google.com/100742954389084668497"&gt;&lt;img alt="" border="0" height="20" id="BLOGGER_PHOTO_ID_5677875414712016498" src="https://lh4.googleusercontent.com/-tcqfAdWqCFc/AAAAAAAAAAI/AAAAAAABT3Y/JU6vWx64NbU/photo.jpg?sz=20" style="border: none; vertical-align: middle;" width="20" /&gt;&lt;/a&gt; - &lt;a href="https://plus.google.com/100742954389084668497" rel="author"&gt;Adam Rogal&lt;/a&gt;, DFP API Team&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-9051322889334922217?l=googleadsdeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/9051322889334922217" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/9051322889334922217" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2011/12/discover-dfp-api-v201111-creative.html" title="Discover DFP API v201111: Creative Creatives" /><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh4.googleusercontent.com/-tcqfAdWqCFc/AAAAAAAAAAI/AAAAAAABT3Y/JU6vWx64NbU/s72-c/photo.jpg?sz=20" height="72" width="72" /></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-6935749618247800926</id><published>2011-12-09T20:54:00.000-08:00</published><updated>2011-12-09T11:44:32.695-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dfp_v201111" /><category scheme="http://www.blogger.com/atom/ns#" term="suggested_ad_units" /><category scheme="http://www.blogger.com/atom/ns#" term="dfp_api" /><title type="text">Discover DFP API v201111: Suggested Ad Units</title><content type="html">The &lt;a href="http://googleadsdeveloper.blogspot.com/2011/11/announcing-version-v201111-of-dfp-api.html"&gt;v201111 version&lt;/a&gt;&amp;nbsp;of the DoubleClick for Publishers (DFP)&amp;nbsp;API introduces &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/SuggestedAdUnitService.html"&gt;SuggestedAdUnitService&lt;/a&gt;&amp;nbsp;which&amp;nbsp;lets you get and approve those ad units that have tags on your web pages, but no corresponding ad units in DFP.&amp;nbsp; By default, only ad tags that have 10 or more requests will be returned as &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/SuggestedAdUnitService.SuggestedAdUnit.html"&gt;suggested ad units&lt;/a&gt;. They can be approved using &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/SuggestedAdUnitService.html#performSuggestedAdUnitAction"&gt;performSuggestedAdUnitAction&lt;/a&gt;,&amp;nbsp;after which they become ad units and you can manipulate them using &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/InventoryService.html"&gt;InventoryService&lt;/a&gt;. &amp;nbsp;To use this service, please make sure you have a &lt;a href="http://code.google.com/apis/dfp/docs/account_types.html"&gt;premium account&lt;/a&gt;&amp;nbsp;and that you have enabled the feature in the User Interface.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Why Use Suggested Ad Units?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;A simple use case for suggested ad units is for new publishers or blog owners to create new tags for articles and posts on their site and approve suggested ad units based on the number of impressions they generate. This gives you the chance to see how well your content does before targeting line items to your ad units. The &lt;a href="http://code.google.com/p/google-api-dfp-java/source/browse/trunk/examples/v201111/suggestedadunitservice/ApproveSuggestedAdUnitsExample.java"&gt;ApproveSuggestedAdUnitsExample&lt;/a&gt;&amp;nbsp;from the &lt;a href="http://code.google.com/apis/dfp/docs/clients.html"&gt;client libraries&lt;/a&gt;&amp;nbsp;will show you how to do this.&lt;br /&gt;&lt;br /&gt;A more involved use case for publishing platforms is to tag all the pages generated by the users and perform some operations on content that generates a sizable number of impressions. &amp;nbsp;These operations can include:&lt;br /&gt;&lt;ol start="1"&gt;&lt;li&gt;Approving the suggested ad unit and targeting line items to it&lt;/li&gt;&lt;li&gt;Promoting the page as featured content&lt;/li&gt;&lt;li&gt;Recognize the user for quality content and auto-approve their pages&lt;/li&gt;&lt;/ol&gt;Here's a Java code sample of how you would do this:&lt;br /&gt;&lt;pre class="prettyprint"&gt;// Set the number of requests to 50 or more.&lt;br /&gt;Long NUMBER_OF_REQUESTS = 50L;&lt;br /&gt;&lt;br /&gt;// Statement to fetch suggested ad units in descending order by number of &lt;br /&gt;// requests.&lt;br /&gt;String statementText = "ORDER BY numRequests DESC LIMIT 500";&lt;br /&gt;Statement filterStatement = &lt;br /&gt;    new StatementBuilder(statementText).toStatement();&lt;br /&gt;SuggestedAdUnitPage page = new SuggestedAdUnitPage();&lt;br /&gt;&lt;br /&gt;// List of suggested ad unit ids to approve.&lt;br /&gt;List&amp;lt;String&amp;gt; suggestedAdUnitIds = new ArrayList&amp;lt;String&amp;gt;();&lt;br /&gt;page = suggestedAdUnitService.getSuggestedAdUnitsByStatement(&lt;br /&gt;    filterStatement);&lt;br /&gt;&lt;br /&gt;if (page.getResults() != null) {&lt;br /&gt;&amp;nbsp; for (SuggestedAdUnit suggestedAdUnit : page.getResults()) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; if (suggestedAdUnit.getNumRequests() &amp;gt;= NUMBER_OF_REQUESTS) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; // Add it to the ID list to be approved.&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; suggestedAdUnitIds.add(suggestedAdUnit.getId());&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; /*&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* Promoting the page as a featured content.&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* Recognize the user for quality content and auto-approve their &lt;br /&gt;       * pages.&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/&lt;br /&gt;&amp;nbsp; &amp;nbsp; }&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;if (suggestedAdUnitIds.size() &amp;gt; 0) {&lt;br /&gt;&amp;nbsp; // Modify statement to select suggested ad units from the list.&lt;br /&gt;&amp;nbsp; filterStatement.setQuery(&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; "WHERE id IN (" + StringUtils.join(suggestedAdUnitIds, ",") + ")");&lt;br /&gt;&amp;nbsp; // Create action to approve suggested ad units.&lt;br /&gt;&amp;nbsp; ApproveSuggestedAdUnit action = new ApproveSuggestedAdUnit();&lt;br /&gt;&amp;nbsp; // Perform the action.&lt;br /&gt;&amp;nbsp; UpdateResult result = suggestedAdUnitService.performSuggestedAdUnitAction(&lt;br /&gt;      action, filterStatement);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;These are just some of the things we think suggested ad units can be used for; we'd love to hear your ideas on our &lt;a href="http://code.google.com/apis/dfp/forum/discussions.html"&gt;&lt;/a&gt;&lt;a href="http://code.google.com/apis/dfp/forum/discussions.html"&gt;forum&lt;/a&gt;&amp;nbsp;or at an Office Hours&amp;nbsp;Hangout. &lt;br /&gt;&lt;br /&gt;&lt;span class="post-author"&gt;&lt;a href="https://plus.google.com/u/0/115474229489284556707"&gt;&lt;img height="20" src="https://lh3.googleusercontent.com/-pDdv2kTjyNw/AAAAAAAAAAI/AAAAAAAAAnE/q_kK4BYy-mM/photo.jpg?sz=20" style="border: none; vertical-align: middle;" width="20" /&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href="https://plus.google.com/u/0/115474229489284556707" rel="author"&gt;Jeffrey Sham&lt;/a&gt;, DFP API Team&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-6935749618247800926?l=googleadsdeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/6935749618247800926" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/6935749618247800926" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2011/12/discover-dfp-api-v201111-suggested-ad.html" title="Discover DFP API v201111: Suggested Ad Units" /><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh3.googleusercontent.com/-pDdv2kTjyNw/AAAAAAAAAAI/AAAAAAAAAnE/q_kK4BYy-mM/s72-c/photo.jpg?sz=20" height="72" width="72" /></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-7423035692527418498</id><published>2011-12-02T11:45:00.000-08:00</published><updated>2011-12-08T14:47:14.568-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dfp_v201111" /><category scheme="http://www.blogger.com/atom/ns#" term="mobile" /><category scheme="http://www.blogger.com/atom/ns#" term="dfp_api" /><category scheme="http://www.blogger.com/atom/ns#" term="mobile_targeting" /><title type="text">Discover DFP API v201111: Mobile Targeting</title><content type="html">In the &lt;a href="http://googleadsdeveloper.blogspot.com/2011/11/announcing-version-v201111-of-dfp-api.html"&gt;v201111 release&lt;/a&gt;&amp;nbsp;of the DoubleClick for Publishers (DFP)&amp;nbsp;API, we're bringing you the ability to target your&amp;nbsp;ad units and line items specifically for the mobile platform. The following walk-through based on the &lt;a href="http://code.google.com/p/google-api-dfp-java/source/browse/trunk/examples/v201111/lineitemservice/CreateMobileLineItemExample.java"&gt;CreateMobileLineItem example&lt;/a&gt;&amp;nbsp;of the &lt;a href="http://code.google.com/apis/dfp/docs/clients.html"&gt;client libraries&lt;/a&gt;&amp;nbsp;describes how to create mobile-targeted line items.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Set your Target Platform&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The first step is to set the new attribute&amp;nbsp;&lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/LineItemService.LineItem.html#targetPlatform"&gt;targetPlatform&lt;/a&gt;&amp;nbsp;to MOBILE to specify that the line item is targeted towards mobile platforms rather than the default web browser platform.&amp;nbsp; Please note that the target platform attribute has also been added to ad units and that &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/InventoryService.AdUnit.html#targetPlatform"&gt;attribute&lt;/a&gt;&amp;nbsp;needs to be set to MOBILE as well for the targeting to work.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Set your Targeting&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;We've introduced four mobile targeting options to enable you to target the right platform: &lt;br /&gt;&lt;ol start="1"&gt;&lt;li&gt;&lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/LineItemService.TechnologyTargeting.html#deviceManufacturerTargeting"&gt;device manufacturer&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/LineItemService.TechnologyTargeting.html#mobileCarrierTargeting"&gt;mobile carrier&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/LineItemService.TechnologyTargeting.html#mobileDeviceTargeting"&gt;mobile device&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/LineItemService.TechnologyTargeting.html#mobileDeviceSubmodelTargeting"&gt;mobile device submodel&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Here is how you set up your&amp;nbsp;targeting to target just Google&amp;nbsp;devices:&lt;br /&gt;&lt;pre class="prettyprint"&gt;Technology manufacturer = new Technology();&lt;br /&gt;// The ID for the Google device manufacturer was fetched from the &lt;br /&gt;// Device_Manufacturer PQL table.&lt;br /&gt;manufacturer.setId(40100L); &lt;br /&gt;&lt;br /&gt;DeviceManufacturerTargeting manufacturerTargeting = &lt;br /&gt;    new DeviceManufacturerTargeting();&lt;br /&gt;manufacturerTargeting.setDeviceManufacturers(&lt;br /&gt;    new Technology[] {manufacturer});&lt;br /&gt;manufacturerTargeting.setIsTargeted(true);&lt;br /&gt;&lt;br /&gt;TechnologyTargeting technologyTargeting = new TechnologyTargeting();&lt;br /&gt;technologyTargeting.setDeviceManufacturerTargeting(&lt;br /&gt;    manufacturerTargeting);&lt;br /&gt;&lt;br /&gt;Targeting targeting = new Targeting();&lt;br /&gt;targeting.setTechnologyTargeting(technologyTargeting);&lt;br /&gt;&lt;br /&gt;LineItem lineItem = new LineItem();&lt;br /&gt;lineItem.setTargeting(targeting);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;That's it! Your line item is now set to target just Google devices.&lt;br /&gt;&lt;br /&gt;For &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/LineItemService.MobileDeviceTargeting.html"&gt;mobile device targeting&lt;/a&gt;, you can specify two lists of devices: one that is targeted and one that is excluded. &amp;nbsp;This allows you to target&amp;nbsp;a device manufacturer but exclude certain devices within that family. &amp;nbsp;However, if a device is part of a device targeting inclusion list, another device from the same manufacturer cannot be in the exclusion list. &amp;nbsp;For example, putting the Nexus S in the inclusion list and the Nexus One in the exclusion list will result in the following targeting error: &lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/LineItemService.GenericTargetingError.Reason.html"&gt;GenericTargetingError.CONFLICTING_INCLUSION_OR_EXCLUSION_OF_SIBLINGS @ targeting.deviceFamilyTargeting&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Instead, we recommend targeting the Google device manufacturer and excluding the Nexus One with the device exclusion list.&lt;br /&gt;&lt;br /&gt;As always,&amp;nbsp;we value your feedback,&amp;nbsp;so feel free to leave your questions or comments on our &lt;a href="http://code.google.com/apis/dfp/forum/discussions.html"&gt;forum&lt;/a&gt;&amp;nbsp;or join us at one of our upcoming developer Hangouts.&lt;br /&gt;&lt;br /&gt;&lt;span class="post-author"&gt;&lt;a href="https://plus.google.com/u/0/115474229489284556707"&gt;&lt;img height="20" src="https://lh3.googleusercontent.com/-pDdv2kTjyNw/AAAAAAAAAAI/AAAAAAAAAnE/q_kK4BYy-mM/photo.jpg?sz=20" style="border: none; vertical-align: middle;" width="20" /&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href="https://plus.google.com/u/0/115474229489284556707" rel="author"&gt;Jeffrey Sham&lt;/a&gt;, DFP API Team&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-7423035692527418498?l=googleadsdeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/7423035692527418498" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/7423035692527418498" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2011/12/discover-dfp-api-v201111-mobile.html" title="Discover DFP API v201111: Mobile Targeting" /><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh3.googleusercontent.com/-pDdv2kTjyNw/AAAAAAAAAAI/AAAAAAAAAnE/q_kK4BYy-mM/s72-c/photo.jpg?sz=20" height="72" width="72" /></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-2741811768408046683</id><published>2011-11-30T10:30:00.000-08:00</published><updated>2011-12-20T18:42:41.630-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dfp_v201111" /><category scheme="http://www.blogger.com/atom/ns#" term="mobile" /><category scheme="http://www.blogger.com/atom/ns#" term="dfp_api" /><title type="text">Announcing version v201111 of the DFP API</title><content type="html">&lt;p&gt;Today we’d like to introduce you to the v201111 version of the DoubleClick for Publishers API. v201111 is one of our largest versions yet; it includes some highly-requested features such as full support for mobile ad serving, new creative types including templates, video player environment targeting, reporting updates, and suggested ad units. A full list of features can be found on our &lt;a href="http://code.google.com/apis/dfp/docs/rel_notes.html"&gt;release notes page&lt;/a&gt;. &lt;/p&gt;&lt;br&gt;&lt;b&gt;Mobile&lt;/b&gt;&lt;p&gt;As part of our &lt;a href="http://doubleclickpublishers.blogspot.com/2011/11/capture-mobile-opportunity-with-dfp.html"&gt;ongoing effort to expand our publishers’ networks to mobile platforms&lt;/a&gt;, we’ve made it easier than ever to create and target mobile inventory in the API. Starting in v201111, you’ll find the &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/InventoryService.AdUnit.html#targetPlatform"&gt;targetPlatform&lt;/a&gt; field on the &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/InventoryService.AdUnit.html"&gt;AdUnit&lt;/a&gt; and &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/LineItemService.LineItem.html#targetPlatform"&gt;LineItem&lt;/a&gt; objects. This field allows you to specify that an ad unit represents a piece of mobile inventory, or that a line item is only meant to serve to mobile ad units. If a line item is marked as mobile, you can also specify &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/LineItemService.TechnologyTargeting.html#deviceManufacturerTargeting"&gt;manufacturer&lt;/a&gt;, &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/LineItemService.TechnologyTargeting.html#mobileCarrierTargeting"&gt;carrier&lt;/a&gt;, and &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/LineItemService.TechnologyTargeting.html#mobileDeviceTargeting"&gt;device targeting&lt;/a&gt;. New examples for how to create mobile ad units and line items will be made available next to their web counterparts in the &lt;a href="http://code.google.com/apis/dfp/docs/clients.html"&gt;client library examples&lt;/a&gt; shortly. &lt;/p&gt;&lt;br&gt;&lt;b&gt;Creatives&lt;/b&gt;&lt;p&gt;In v201111, we’ve added a few new creative types, most importantly &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/CreativeService.TemplateCreative.html"&gt;template creatives&lt;/a&gt; and &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/CreativeService.CustomCreative.html"&gt;custom creatives&lt;/a&gt;. Although both allow you to create richer advertisements, they differ in how you will want to use them in your solution. While custom creatives allow you to specify an arbitrary &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/CreativeService.CustomCreative.html#htmlSnippet"&gt;htmlSnippet&lt;/a&gt; with accompanying &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/CreativeService.CustomCreative.html#customCreativeAssets"&gt;assets&lt;/a&gt;, &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/CreativeTemplateService.CreativeTemplate.html"&gt;creative templates&lt;/a&gt; allow you to reuse creative formats that will appear on the DFP user interface. Using creative templates, you can then create template creatives in which you can set &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/CreativeService.TemplateCreative.html#creativeTemplateVariableValues"&gt;variables&lt;/a&gt; to an already defined html snippet by the template.  &lt;/p&gt;&lt;p&gt;We’ve also added the ability to view creatives as they would be served. To do this, pass the web page’s URL containing the appropriate ad tags, creative ID, and line item ID to the new &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/LineItemCreativeAssociationService.html#getPreviewUrl"&gt;LineItemCreativeAssociationService.getPreviewUrl()&lt;/a&gt; method. &lt;/p&gt;&lt;br&gt;&lt;b&gt;Video&lt;/b&gt;&lt;p&gt;Along with the new mobile support in the API, we’ve expanded our video capabilities. In &lt;a href="http://code.google.com/apis/dfp/docs/rel_notes.html"&gt;v201108&lt;/a&gt;, we added the ability to specify that a line item will serve to a &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201108/LineItemService.EnvironmentType.html#VIDEO_PLAYER"&gt;video player environment&lt;/a&gt;. By enabling this setting, you can associate &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/InventoryService.AdUnitSize.html#companions"&gt;companion ads&lt;/a&gt; to run alongside the video. In v201111,  as a DFP video publisher with a content feed, you can &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/LineItemService.Targeting.html#contentTargeting"&gt;target individual videos within your content management source&lt;/a&gt; as well as &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/LineItemService.Targeting.html#videoPositionTargeting"&gt;positions within those videos&lt;/a&gt;.  &lt;/p&gt;&lt;br&gt;&lt;b&gt;Inventory&lt;/b&gt;&lt;p&gt;We’ve also added the &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/SuggestedAdUnitService.html"&gt;SuggestedAdUnit service&lt;/a&gt;. This premium-only service enables you to add a new ad unit to an ad tag before defining it in DFP. This allows you to run forecasts for it before traffickers can start targeting line items to it; this functionality is similar to auto-created zones in DART for Publishers. If the ad server receives at least 10 requests for an undefined ad unit, the &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/SuggestedAdUnitService.html#getSuggestedAdUnitsByStatement"&gt;SuggestedAdUnitService.getSuggestedAdUnitsByStatement&lt;/a&gt; method will return that suggested ad unit. The suggested ad units can then be approved using the &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/SuggestedAdUnitService.ApproveSuggestedAdUnit.html"&gt;ApproveSuggestedAdUnits&lt;/a&gt; action. You can find an example of how to do this in our client libraries. Please also make sure that you are a premium user and that you have enabled this feature in your account through the User Interface. For more information, see the premium inventory help page.  &lt;/p&gt;&lt;br&gt;&lt;b&gt;Reporting&lt;/b&gt;&lt;p&gt;For v201111, we’ve added &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/ReportService.Column.html"&gt;new columns&lt;/a&gt; and the feature to break down reports by &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/ReportService.ReportQuery.html#dimensionAttributes"&gt;dimension attributes&lt;/a&gt;. Whereas in the past you would have to manually correlate reports with objects fetched from services, this new feature allows you to include information such as a &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/ReportService.DimensionAttribute.html#LINE_ITEM_START_DATE_TIME"&gt;line item’s start time&lt;/a&gt;, an &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/ReportService.DimensionAttribute.html#ORDER_TRAFFICKER"&gt;order’s trafficker&lt;/a&gt;, or an &lt;a href="http://code.google.com/apis/dfp/docs/reference/v201111/ReportService.DimensionAttribute.html#ORDER_EXTERNAL_ID"&gt;order’s external ID&lt;/a&gt; directly in the report to better integrate DFP reports with your system. &lt;/p&gt;&lt;br&gt;&lt;b&gt;Follow-up posts in the discover series&lt;/b&gt;&lt;p&gt;Over the next few weeks, you’ll have the chance to get to know all of the features a bit more in the &lt;i&gt;Discover DFP v201111&lt;/i&gt; series starting first with the updated features for the mobile platform. And as a final note, if you haven’t &lt;a href="http://googleadsdeveloper.blogspot.com/2011/11/kickback-and-hangout-doubleclick-for.html"&gt;signed up for our first ever hangout&lt;/a&gt; yet, we’d love to see you there! &lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;a href="https://plus.google.com/100742954389084668497"&gt;&lt;img height="20" width="20" style="vertical-align: middle; border:none;" src="https://lh4.googleusercontent.com/-tcqfAdWqCFc/AAAAAAAAAAI/AAAAAAABT3Y/JU6vWx64NbU/photo.jpg?sz=20" border="0" alt=""id="BLOGGER_PHOTO_ID_5677875414712016498" /&gt;&lt;/a&gt; - &lt;a href="https://plus.google.com/100742954389084668497" rel="author"&gt;Adam Rogal&lt;/a&gt;, DFP API Team&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-2741811768408046683?l=googleadsdeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/2741811768408046683" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/2741811768408046683" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2011/11/announcing-version-v201111-of-dfp-api.html" title="Announcing version v201111 of the DFP API" /><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh4.googleusercontent.com/-tcqfAdWqCFc/AAAAAAAAAAI/AAAAAAABT3Y/JU6vWx64NbU/s72-c/photo.jpg?sz=20" height="72" width="72" /></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-5257487270508846620</id><published>2011-11-22T09:31:00.000-08:00</published><updated>2011-12-10T16:26:31.305-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dfp_api" /><category scheme="http://www.blogger.com/atom/ns#" term="hangout" /><title type="text">Kickback and Hangout: DoubleClick for Publishers API Office Hours</title><content type="html">The DoubleClick for Publishers API team is excited to announce our first Google+ Hangout Office Hours session on December 7th at 2pm Eastern (11am Pacific). Across the Google Developer Relations team we have seen tremendous positive feedback regarding these Hangouts and we are looking forward to opening a new channel for our developers to converse and ask questions about the API. Specifically, the DFP API team is interested in understanding how you, our developers, use the API so we can continue to improve it.&lt;br/&gt;&lt;br /&gt;&lt;center&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-Re-Cq1C56Pc/TsvjilGVwOI/AAAAAAAAAAo/rhfE-PvcutQ/s1600/GroupHangoutPhoto.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 144px;" src="http://1.bp.blogspot.com/-Re-Cq1C56Pc/TsvjilGVwOI/AAAAAAAAAAo/rhfE-PvcutQ/s200/GroupHangoutPhoto.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5677881938444402914" /&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;The Office Hours will be run in a question-and-answer format so please bring your questions about the DFP API and the DFP Upgrade. Let us know you’re planning to attend by clicking the “I’ll be there” button on the &lt;a href="https://developers.google.com/events/ahNzfmdvb2dsZS1kZXZlbG9wZXJzcg0LEgVFdmVudBjp2g4M/"&gt;developers.google.com&lt;/a&gt; page for this event.&lt;br /&gt;&lt;br /&gt;Just a few housekeeping items to remember:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;If you have a particularly complicated question we ask that you send it to us ahead of time by adding it to &lt;a href="https://groups.google.com/forum/#!topic/google-doubleclick-for-publishers-api/hs5HMbuKFd4"&gt;this forum post&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;To join the hangout you’ll need to have a Google+ account (&lt;a href="http://www.google.com/url?q=https%3A%2F%2Fplus.google.com%2F"&gt;sign up here&lt;/a&gt;) and the Google voice and video plugin installed (&lt;a href="http://www.google.com/url?q=http%3A%2F%2Fwww.google.com%2Ftools%2Fdlpage%2Fres%2Ftalkvideo%2Fhangouts%2F"&gt;download available&lt;/a&gt; for Windows, Mac, and Linux).&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Hangouts are currently limited to ten people at a time, so if you aren’t able to join right away please try again later in the hour as a slot may have opened up.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Additional information about Hangouts is available in the &lt;a href="http://www.google.com/url?q=http%3A%2F%2Fwww.google.com%2Fsupport%2Fplus%2Fbin%2Fstatic.py%3Fpage%3Dguide.cs%26guide%3D1257349"&gt;Google+ Help Center&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://plus.google.com/u/0/104679465567407024302/"&gt;&lt;img height="20" width="20" style="vertical-align: middle; border:none;" src="http://2.bp.blogspot.com/-qz8sNFAWBnI/Tsvdm2TVXnI/AAAAAAAAAAc/b9g-4d8POds/s200/blogimage.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5677875414712016498" /&gt;&lt;/a&gt; - &lt;a href="https://plus.google.com/u/0/104679465567407024302/" rel="author"&gt;Paul Rashidi&lt;/a&gt;, DFP API Team&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-5257487270508846620?l=googleadsdeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/5257487270508846620" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/5257487270508846620" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2011/11/kickback-and-hangout-doubleclick-for.html" title="Kickback and Hangout: DoubleClick for Publishers API Office Hours" /><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-Re-Cq1C56Pc/TsvjilGVwOI/AAAAAAAAAAo/rhfE-PvcutQ/s72-c/GroupHangoutPhoto.png" height="72" width="72" /></entry></feed>

