<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7815614485808579332</id><updated>2026-05-13T14:28:26.366-07:00</updated><category term="adwords_api"/><category term="google_ads_api"/><category term="sunset"/><category term="dfp_api"/><category term="release"/><category term="dv360_api"/><category term="mobile_ads_sdk"/><category term="adwords_scripts"/><category term="iOS"/><category term="android"/><category term="dfa_api"/><category term="ima_sdk"/><category term="deprecation"/><category term="content_api"/><category term="admob_sdk"/><category term="reporting"/><category term="admob"/><category term="google_ads_scripts"/><category term="mobile"/><category term="shopping"/><category term="ad_manager_api"/><category term="google_ads"/><category term="update"/><category term="reports"/><category term="adsense_api"/><category term="ad_exchange"/><category term="client_libraries"/><category term="dbm_api"/><category term="sdf"/><category term="oauth2"/><category term="ad_manager"/><category term="conversions"/><category term="bidding"/><category term="feeds"/><category term="conversion"/><category term="dfp_mobile"/><category term="performance_max"/><category term="targeting"/><category term="workshops"/><category term="adsense_management_api"/><category term="ad_exchange_rest"/><category term="ad_exchange_rtb"/><category term="html5"/><category term="unity"/><category term="adsense"/><category term="oauth"/><category term="ad_extensions"/><category term="offline_conversions"/><category term="query_language"/><category term="PMax"/><category term="admob_mediation"/><category term="adwords"/><category term="dfp_reports"/><category term="hangout"/><category term="ima_html5"/><category term="account_management"/><category term="adwords_api_workshops"/><category term="adwords_v201109"/><category term="data_manager_api"/><category term="docs"/><category term="geotargeting"/><category term="migration"/><category term="remarketing"/><category term="Performance Max"/><category term="ad_exchange_seller"/><category term="ad_exchange_soap"/><category term="ad_speed"/><category term="analytics"/><category term="authorized_buyers"/><category term="display_network"/><category term="optimization"/><category term="publisher_ads_audits"/><category term="upgraded_urls"/><category term="ads"/><category term="new_features"/><category term="php"/><category term="query_builder_blog_series"/><category term="survey"/><category term="video"/><category term="webinar"/><category term="admanager_api"/><category term="adwords_api_v201809"/><category term="adwords_v201209"/><category term="beta"/><category term="dfp"/><category term="expanded_text_ads"/><category term="ima_android"/><category term="limits"/><category term="native"/><category term="python"/><category term="DAI"/><category term="ad_exchange_optimization-series"/><category term="admob_api"/><category term="adwhirl"/><category term="adwords_api_v201406"/><category term="chart_tools"/><category term="content"/><category term="dfa_reporting_api"/><category term="dfa_v1.18"/><category term="display"/><category term="examples"/><category term="feedback"/><category term="gpt"/><category term="keywords"/><category term="mobile_ads_garage"/><category term="realtime_bidding"/><category term="responsive_ads"/><category term="text_ads"/><category term="workshop"/><category term="admob_api_v1"/><category term="adwords_CampaignService"/><category term="adwords_api_v201402"/><category term="adwords_api_v201506"/><category term="audiences"/><category term="authentication"/><category term="cm360"/><category term="dfp_v201111"/><category term="enhanced_campaigns"/><category term="flash"/><category term="ima_ios"/><category term="keyword_optimizer"/><category term="location_extensions"/><category term="mcc"/><category term="native_ads_express"/><category term="openrtb"/><category term="GMF"/><category term="PQL"/><category term="adsense_host_api"/><category term="adsense_management_api_v1"/><category term="adsense_management_api_v1.1"/><category term="adwords_api_v201302"/><category term="adwords_api_v201409"/><category term="adwords_api_v201509"/><category term="adwords_api_v201708"/><category term="analyticsapi"/><category term="app_engine"/><category term="aw_reporting"/><category term="awql"/><category term="budgets"/><category term="campaign"/><category term="case_study"/><category term="customer_match"/><category term="dfp_pql"/><category term="display_select"/><category term="gaql"/><category term="google_analytics_api"/><category term="sa360"/><category term="sitelinks"/><category term="swift"/><category term="test_network"/><category term="ad_customizers"/><category term="adsense_management_api_v1.3"/><category term="adwords_BatchJobService"/><category term="adwords_MutateJobService"/><category term="adwords_api_v201306"/><category term="adwords_api_v201603"/><category term="adwords_api_v201705"/><category term="adwords_api_v201710"/><category term="adwords_v201309"/><category term="announcement"/><category term="assets"/><category term="authorization"/><category term="best_practices"/><category term="bid_modifiers"/><category term="billing"/><category term="brand_guidelines"/><category term="creatives"/><category term="demand_gen"/><category term="dfa_v1.20"/><category term="dfp_appengine"/><category term="dfp_creatives"/><category term="dfp_v201201"/><category term="dfp_v201203"/><category term="dfp_v201204"/><category term="discord"/><category term="display_smart_campaign"/><category term="documentation"/><category term="dv360"/><category term="entity_read_files"/><category term="erf"/><category term="error handling"/><category term="firebase"/><category term="gmp"/><category term="google_ads_api_v0"/><category term="google_apps_script"/><category term="ima_flash"/><category term="io13"/><category term="manager_accounts"/><category term="performance_max_api_workshop"/><category term="podcast"/><category term="privacy_sandbox"/><category term="rate_sheet"/><category term="realtime_bidding_protocol"/><category term="recommendations"/><category term="rmf"/><category term="ruby"/><category term="smart"/><category term="template_ads"/><category term="tools"/><category term="AdWords Scripts"/><category term="CampaignCriterion"/><category term="ConversionTrackerService"/><category term="LocationExtensionOperand"/><category term="LocationGroups"/><category term="ad_clicks"/><category term="ad_exchange_buyer"/><category term="ad_inspector"/><category term="ad_manager_api_v201908"/><category term="ad_manager_api_v201911"/><category term="ad_manager_api_v202002"/><category term="ad_manager_api_v202005"/><category term="ad_manager_api_v202008"/><category term="ad_manager_api_v202102"/><category term="ad_manager_api_v202105"/><category term="ad_manager_api_v202202"/><category term="ad_manager_api_v202205"/><category term="admob_v4.3.1"/><category term="adsense_host_api_v3"/><category term="adsense_management_api_v1.2"/><category term="adsense_management_api_v1.4"/><category term="adwords_AdGroupCriterionService"/><category term="adwords_ManagedCustomerService"/><category term="adwords_api_v201309"/><category term="adwords_api_v201502"/><category term="adwords_api_v201601"/><category term="adwords_api_v201605"/><category term="adwords_api_v201607"/><category term="adwords_api_v201609"/><category term="adwords_api_v201702"/><category term="adwords_for_video"/><category term="adwords_v201206"/><category term="adwords_v201302"/><category term="adwords_v201306"/><category term="attribution_reporting_api"/><category term="bid_manager_api"/><category term="brand guidelines"/><category term="budget_order_service"/><category term="call_tracking"/><category term="campaign_management"/><category term="chromecast"/><category term="click"/><category term="click_tracking"/><category term="client_library"/><category term="code_examples"/><category term="common_questions"/><category term="dfa_v1.17"/><category term="dotnet"/><category term="dsa"/><category term="excluded_placement_lists"/><category term="flash_sdk"/><category term="gclid"/><category term="geo_targets"/><category term="google_ads_api_migration_workshop"/><category term="google_ads_api_v1_0"/><category term="google_ads_api_v6"/><category term="html5_ads"/><category term="https"/><category term="i18n"/><category term="iOS9"/><category term="impression_share"/><category term="interview"/><category term="java_dart_api"/><category term="labels"/><category term="marketplace"/><category term="merchant_api"/><category term="meridian"/><category term="mobile_ads"/><category term="mobile_targeting"/><category term="oath2"/><category term="placements"/><category term="privacy"/><category term="product_listing_ads"/><category term="quality_score"/><category term="quota"/><category term="realtime_bidding_api"/><category term="realtimebidding"/><category term="rest"/><category term="rewarded_video"/><category term="search"/><category term="search_audience"/><category term="selector"/><category term="service_accounts"/><category term="shared_negative_keywords"/><category term="snds"/><category term="success_stories"/><category term="terms"/><category term="test_accounts"/><category term="AdGroup"/><category term="AdGroupAd"/><category term="DoubleClick_Rich_Media"/><category term="MCP"/><category term="OfflineConversionFeedService"/><category term="PLA"/><category term="RateExceededError"/><category term="SGAI"/><category term="StepInsideAdWords"/><category term="ad_manager_api_v201805"/><category term="ad_manager_api_v201808"/><category term="ad_manager_api_v201811"/><category term="ad_manager_api_v201902"/><category term="ad_manager_api_v201905"/><category term="ad_manager_api_v202011"/><category term="ad_manager_api_v202108"/><category term="ad_manager_api_v202111"/><category term="ad_manager_api_v202208"/><category term="ad_manager_api_v202211"/><category term="ad_manager_api_v202302"/><category term="ad_manager_api_v202305"/><category term="ad_manager_api_v202308"/><category term="ad_manager_api_v202311"/><category term="ad_manager_api_v202402"/><category term="ad_manager_api_v202405"/><category term="ad_manager_api_v202408"/><category term="ad_manager_api_v202411"/><category term="ad_manager_api_v202502"/><category term="ad_manager_api_v202511"/><category term="ad_param"/><category term="adexchangebuyer"/><category term="admob_v5.0.5"/><category term="admob_v6.0.1"/><category term="advanced_apis"/><category term="adwhirl_v3.1.1"/><category term="adwords_CreateAccountService"/><category term="adwords_ReportDefinitionService"/><category term="adwords_api_v201802"/><category term="adwords_api_v201806"/><category term="adwords_v201601"/><category term="adwords_v201605"/><category term="adwords_v201607"/><category term="adwords_v201609"/><category term="adwords_v201702"/><category term="adwords_v201802"/><category term="adwords_v201806"/><category term="adwords_v201809"/><category term="ai"/><category term="ai_tools"/><category term="alerting"/><category term="amp"/><category term="android_layout"/><category term="animation"/><category term="annual developer survey"/><category term="api"/><category term="asset_group"/><category term="asset_group_listing_group_filter"/><category term="asset_group_signal"/><category term="authorized_buyer"/><category term="batch_processing"/><category term="beacon_api"/><category term="budget_floor"/><category term="builders"/><category term="bulk_upload"/><category term="c#"/><category term="caf_sdk"/><category term="call-only"/><category term="call_extensions"/><category term="call_metrics"/><category term="call_only"/><category term="callout_extensions"/><category term="campaign_manager_360"/><category term="cast"/><category term="certificates"/><category term="certification"/><category term="change_history"/><category term="chrome"/><category term="click-to-download"/><category term="click_type"/><category term="clicks"/><category term="conference"/><category term="converted_clicks"/><category term="creative_platforms"/><category term="custom_fields"/><category term="dart"/><category term="debugging"/><category term="decorators"/><category term="developer"/><category term="dfa_ad_service"/><category term="dfa_api_v118"/><category term="dfa_creative_service"/><category term="dfa_site_service"/><category term="dfa_v1.16"/><category term="dfa_v1.19"/><category term="dfp_inventory"/><category term="dfp_sales"/><category term="dfp_teams"/><category term="dfp_v201206"/><category term="dfp_v201208"/><category term="dfp_v201211"/><category term="dfp_v201302"/><category term="dfp_v201308"/><category term="dfp_v201608"/><category term="dfp_v201711"/><category term="doubleclick"/><category term="doubleclick_studio"/><category term="drafts"/><category term="dynamic_creative"/><category term="eta"/><category term="exoplayer"/><category term="experiment"/><category term="experiments"/><category term="faq"/><category term="floc"/><category term="flutter"/><category term="forecast_service"/><category term="gRPC"/><category term="games"/><category term="gdc"/><category term="gdl"/><category term="gma_next_gen_sdk"/><category term="gmail_ads"/><category term="gmail_image_ads"/><category term="gmail_multi_product_ads"/><category term="gmail_single_promotion_ads"/><category term="golang"/><category term="google_ads_api_v0_1"/><category term="google_ads_api_v0_3"/><category term="google_ads_api_v0_4"/><category term="google_ads_api_v0_5"/><category term="google_ads_api_v0_6"/><category term="google_ads_api_v0_7"/><category term="google_ads_api_v1_1"/><category term="google_ads_api_v1_2"/><category term="google_ads_api_v1_3"/><category term="google_ads_api_v2_1"/><category term="google_ads_api_v3_0"/><category term="google_ads_api_v3_1"/><category term="google_ads_api_v4"/><category term="google_ads_api_v5"/><category term="google_ads_solutions"/><category term="google_apis"/><category term="google_drive"/><category term="google_play_services"/><category term="google_plus"/><category term="guide"/><category term="guides"/><category term="hotel_ads"/><category term="hotel_campaigns"/><category term="ids"/><category term="ima_roku"/><category term="image"/><category term="image_ads"/><category term="image_optimization"/><category term="implementation"/><category term="interstitial"/><category term="java_app_engine"/><category term="jdbc"/><category term="kotlin"/><category term="line_item"/><category term="linq"/><category term="listing_groups"/><category term="location_feeds"/><category term="logging"/><category term="maps_api"/><category term="maximize"/><category term="media"/><category term="media_bundle"/><category term="mediation_test_suite"/><category term="mobile_sites"/><category term="mobile_speed"/><category term="mobile_ux"/><category term="monitoring"/><category term="open_source"/><category term="pal"/><category term="policy"/><category term="policy_violation"/><category term="price_extension"/><category term="proguard"/><category term="promotion_line"/><category term="qa"/><category term="rate_limiter"/><category term="referer"/><category term="sandbox"/><category term="scripts"/><category term="sdkless"/><category term="search audience"/><category term="search terms"/><category term="search_network"/><category term="search_theme"/><category term="sendbeacon"/><category term="simulations"/><category term="spend"/><category term="ssl"/><category term="suggested_ad_units"/><category term="swift_package_manager"/><category term="swiftui"/><category term="target"/><category term="target_cpa"/><category term="testing"/><category term="text_asset_automation"/><category term="trials"/><category term="turtledove"/><category term="ui"/><category term="unversioned_change"/><category term="updates"/><category term="upgrade"/><category term="v201509"/><category term="vast3"/><category term="vcpm"/><category term="viewable-cpm"/><category term="wp8"/><category term="xml"/><category term="youtube"/><title type='text'>Google Ads Developer Blog</title><subtitle type='html'>The official blog for information about the Google Ads, Google Ad Manager, Google Mobile Ads SDKs for AdMob and IMA SDKs, and other Google Advertising Platform developer tools.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ads-developers.googleblog.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/-/adwhirl'/><link rel='alternate' type='text/html' href='http://ads-developers.googleblog.com/search/label/adwhirl'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Anonymous</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/blank.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-7915554017802457712</id><published>2012-08-21T05:03:00.000-07:00</published><updated>2012-08-21T05:03:44.812-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ad_exchange"/><category scheme="http://www.blogger.com/atom/ns#" term="admob_sdk"/><category scheme="http://www.blogger.com/atom/ns#" term="adsense_api"/><category scheme="http://www.blogger.com/atom/ns#" term="adwhirl"/><category scheme="http://www.blogger.com/atom/ns#" term="adwords_api"/><category scheme="http://www.blogger.com/atom/ns#" term="adwords_scripts"/><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="google_plus"/><title type='text'>Introducing the new Ads Developers Google+ Page</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;p&gt;Today we are excited to introduce a new channel for communication - &lt;a href=&quot;https://plus.google.com/u/0/b/115658573333388777174/115658573333388777174/&quot;&gt;Ads Developers Google+ Page&lt;/a&gt;. It&#39;s a place to stay informed, engaged and connected on Ads products and developer tools.&lt;/p&gt;&lt;p&gt;Add our Google+ page to your circles for the latest product and feature announcements, best practices, case studies, as well as opportunities to interact with and learn from Google&#39;s Ads Developer Relations team and other members of the developer community.&lt;/p&gt;&lt;p&gt;We look forward to having one place to bring timely updates, concise announcements, and to share information in multimedia formats across all Ads products, as well as to listen and respond to your comments.&lt;/p&gt;&lt;br /&gt;
&lt;span class=&quot;post-author&quot;&gt;&lt;a href=&quot;https://plus.google.com/116761214452114671837?rel=author&quot;&gt;&lt;img height=&quot;20&quot; src=&quot;https://lh5.googleusercontent.com/-Hq6rboNwMwM/AAAAAAAAAAI/AAAAAAAAAB8/h6qaLWk4PzE/photo.jpg?sz=20&quot; style=&quot;border: none; vertical-align: middle;&quot; width=&quot;20&quot; /&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href=&quot;https://plus.google.com/116761214452114671837?rel=author&quot; rel=&quot;author&quot;&gt;Danial Klimkin&lt;/a&gt;, Ads Developer Relations Team.&lt;/span&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/7915554017802457712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/7915554017802457712'/><link rel='alternate' type='text/html' href='http://ads-developers.googleblog.com/2012/08/introducing-new-ads-developers-google.html' title='Introducing the new Ads Developers Google+ Page'/><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='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh5.googleusercontent.com/-Hq6rboNwMwM/AAAAAAAAAAI/AAAAAAAAAB8/h6qaLWk4PzE/s72-c/photo.jpg?sz=20" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-6666222899467549944</id><published>2012-05-11T13:00:00.000-07:00</published><updated>2012-06-27T21:28:17.768-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="adwhirl"/><title type='text'>Announcing the AdWhirl to AdMob Ad Network Mediation Import Pipeline</title><content type='html'>&lt;p&gt;We&#39;re very pleased to announce the availability of the AdWhirl to AdMob Ad Network Mediation Import Pipeline.  This functionality--accessible from &lt;a href=&quot;mediation.admob.com&quot;&gt;mediation.admob.com&lt;/a&gt;--will enable you to import all of your relevant configuration data from AdWhirl in just a few clicks!&lt;p&gt;

&lt;p&gt;Getting started is simple!  Here are the steps you&#39;ll want to follow to import a configuration:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Navigate to &lt;a href=&quot;mediation.admob.com&quot;&gt;mediation.admob.com&lt;/a&gt; and click the &lt;i&gt;Import Placement from AdWhirl&lt;/i&gt; link.  Read through the notes.&lt;/li&gt;
  &lt;li&gt;Click &lt;i&gt;Log in to AdWhirl&lt;/i&gt;.  You&#39;ll be redirected to an AdWhirl authorization page where you should enter your AdWhirl account&#39;s email address and password.&lt;/li&gt;
  &lt;li&gt;Click &lt;i&gt;Submit&lt;/i&gt;.  Assuming your info is correct, you&#39;ll be redirected back to AdMob&#39;s &lt;b&gt;Import Placement from AdWhirl&lt;/b&gt; workflow, where you can choose a particular placement to pull over.&lt;/li&gt;
  &lt;li&gt;Mouse over a placement and click the &lt;i&gt;Select to Import&lt;/i&gt; button.  After confirming things are correct on the &lt;b&gt;Review &amp; Import&lt;/b&gt; screen, go ahead and click the final &lt;i&gt;Import&lt;/i&gt; button.&lt;/li&gt;
  &lt;li&gt;Put your feet up, grab a brew; you&#39;re done!  Take a moment to bask in the warm glow of your accomplishment.  The placement will now appear in your &lt;b&gt;AdMob Ad Network Mediation Placements&lt;/b&gt; interface.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The &lt;a href=&quot;https://developers.google.com/mobile-ads-sdk/&quot;&gt;AdMob Ad Network Mediation&lt;/a&gt; product offers many improvements over AdWhirl, including enhanced stability, support for tablet sizes, revenue optimizations by country, and improved reporting.  We hope you give it a look!  As always, if you have questions or concerns, you can get a hold of us on our &lt;a href=&quot;https://groups.google.com/forum/?fromgroups#!forum/google-admob-ads-sdk&quot;&gt;forum&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;post-author&quot;&gt;&lt;a href=&quot;https://plus.google.com/u/0/100951976559465900344&quot;&gt;&lt;img width=&quot;20&quot; height=&quot;20&quot; src=&quot;https://lh4.googleusercontent.com/-JJsLfLVCckY/AAAAAAAAAAI/AAAAAAABVog/oL3K4YTTcJA/photo.jpg?sz=20&quot; style=&quot;vertical-align:middle; border:none;&quot;&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href=&quot;https://plus.google.com/u/0/100951976559465900344&quot; rel=&quot;author&quot;&gt;Wes Goodman&lt;/a&gt;, AdMob Team&lt;/span&gt;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/6666222899467549944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/6666222899467549944'/><link rel='alternate' type='text/html' href='http://ads-developers.googleblog.com/2012/05/announcing-adwhirl-to-admob-ad-network.html' title='Announcing the AdWhirl to AdMob Ad Network Mediation Import Pipeline'/><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='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh4.googleusercontent.com/-JJsLfLVCckY/AAAAAAAAAAI/AAAAAAABVog/oL3K4YTTcJA/s72-c/photo.jpg?sz=20" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-2610071070006212265</id><published>2012-05-10T12:33:00.000-07:00</published><updated>2012-06-27T21:27:48.387-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="adwhirl"/><title type='text'>AdWhirl v3.2 Released!</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;p&gt;We&#39;re very happy to announce the release of AdWhirl v3.2!  This version brings us support for the latest and greatest from several ad networks.  In particular:&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Android:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Support for AdMob v6.0.1&lt;/li&gt;
&lt;li&gt;Support for Millennial v4.5.1&lt;/li&gt;
&lt;li&gt;Support for InMobi v350&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;iOS:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Support for AdMob v6.0.4&lt;/li&gt;
&lt;li&gt;Support for Millennial v4.5.5&lt;/li&gt;
&lt;li&gt;Support for InMobi v350&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As always, you can find the latest SDKs available on our &lt;a href=&quot;http://code.google.com/p/adwhirl/downloads/list&quot;&gt;download page&lt;/a&gt;.  Or, feel free to snag the source: (&lt;a href=&quot;http://code.google.com/p/adwhirl/source/checkout?repo=sdk-android&quot;&gt;Android&lt;/a&gt; | &lt;a href=&quot;http://code.google.com/p/adwhirl/source/checkout?repo=sdk-iphone&quot;&gt;iOS&lt;/a&gt;).  If you encounter any issues, don&#39;t hesitate to contact us on our &lt;a href=&quot;https://groups.google.com/forum/?fromgroups#!forum/adwhirl-users&quot;&gt;forum&lt;/a&gt; or during Office Hours--times to be announced on our &lt;a href=&quot;http://googleadsdeveloper.blogspot.com/&quot;&gt;blog&lt;/a&gt;.&lt;/p&gt;

&lt;br&gt;

&lt;span class=&quot;post-author&quot;&gt;&lt;a href=&quot;https://plus.google.com/u/0/100951976559465900344&quot;&gt;&lt;img height=&quot;20&quot; src=&quot;https://lh4.googleusercontent.com/-JJsLfLVCckY/AAAAAAAAAAI/AAAAAAABVog/oL3K4YTTcJA/photo.jpg?sz=20&quot; style=&quot;border: none; vertical-align: middle;&quot; width=&quot;20&quot; /&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href=&quot;https://plus.google.com/u/0/100951976559465900344&quot; rel=&quot;author&quot;&gt;Wes Goodman&lt;/a&gt;, AdMob Team&lt;/span&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/2610071070006212265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/2610071070006212265'/><link rel='alternate' type='text/html' href='http://ads-developers.googleblog.com/2012/05/adwhirl-v32-released.html' title='AdWhirl v3.2 Released!'/><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='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh4.googleusercontent.com/-JJsLfLVCckY/AAAAAAAAAAI/AAAAAAABVog/oL3K4YTTcJA/s72-c/photo.jpg?sz=20" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-1308037589979305090</id><published>2012-03-01T16:00:00.000-08:00</published><updated>2012-03-01T16:02:38.852-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="adwhirl"/><title type='text'>Effect of Configuring a New Ad Network to an Existing AdWhirl Application</title><content type='html'>&lt;p&gt;We’ve received questions asking us what happens new ad networks are added to an existing AdWhirl application.  In this post we’ll explain how older versions of your apps will handle a new ad network configuration.&lt;/p&gt;

&lt;p&gt;Say you published an application using &lt;a href=&quot;https://www.adwhirl.com/&quot;&gt;AdWhirl&lt;/a&gt;, configured to use two ad networks.  Now it’s time to release the next version, and you’d like to add a third ad network while you’re at it.  But how will that affect the ad network request distribution for users running an older version of your application, which doesn’t have the new ad network SDK bundled?  Older versions will request the updated configuration for both iOS and Android, but the two SDKs will process the configuration differently.&lt;/p&gt;

&lt;h2&gt;How the iOS SDK Distributes Ad Network Requests&lt;/h2&gt;

&lt;p&gt;When the iOS SDK &lt;a href=&quot;http://code.google.com/p/adwhirl/source/browse/iphone/AdWhirl/internal/AdWhirlConfig.m?repo=sdk-iphone#460&quot;&gt;parses&lt;/a&gt; the new configuration, it will only consider an ad network valid if it meets certain conditions, including &lt;a href=&quot;http://code.google.com/p/adwhirl/source/browse/iphone/AdWhirl/internal/AdWhirlAdNetworkConfig.m?repo=sdk-iphone#121&quot;&gt;having the corresponding network adapter&lt;/a&gt;.  If the adapter doesn’t exist, then &lt;b&gt;that network will be ignored&lt;/b&gt;.  Your ad network percentages will then be &lt;b&gt;normalized&lt;/b&gt; based on the total valid percentage of allocations.&lt;/p&gt;

&lt;br/&gt;
&lt;br/&gt;
&lt;center&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghlfawoatb75CMr5b5EYjf9LEkaWeVpD2uTd8N8e_09woT7B7jp2BZ52qY6-FD1f86nDTXU4NkyI0j1sc7METTuD0vPJ0Q5LhYiT6Ni1ssC5-Dn-p8jZo4w7QMigvbqTrVBeubd53wWu8/s1600/AdWhirliOSConfigurations3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;209&quot; width=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghlfawoatb75CMr5b5EYjf9LEkaWeVpD2uTd8N8e_09woT7B7jp2BZ52qY6-FD1f86nDTXU4NkyI0j1sc7METTuD0vPJ0Q5LhYiT6Ni1ssC5-Dn-p8jZo4w7QMigvbqTrVBeubd53wWu8/s400/AdWhirliOSConfigurations3.png&quot; /&gt;&lt;/a&gt;
&lt;/center&gt;
&lt;br/&gt;

&lt;p&gt;Let’s demonstrate this with the above example.  Say your original app had two ad networks, Network 1 and Network 2; now you’re adding Network 3 to the next version of your app.  If your new ad network configuration sends 30% of requests to Network 1, 10% to Network 2, and 60% to Network 3, users running an app version without Network 3 will send 75% of the total ad requests to Network 1 and 25% of requests to Network 2.  Backfill priority will be the same as specified on the server, but it will not include network 3.&lt;/p&gt;

&lt;h2&gt;How the Android SDK Distributes Ad Network Requests&lt;/h2&gt;

&lt;p&gt;When the Android SDK &lt;a href=&quot;http://code.google.com/p/adwhirl/source/browse/src/com/adwhirl/AdWhirlManager.java?repo=sdk-android#339&quot;&gt;parses&lt;/a&gt; the new configuration, it will blindly add all networks as valid choices.  When it tries to make a request to an ad network whose SDK is not available, the request will fail gracefully.  However, AdWhirl will then &lt;b&gt;rollover to your backfill priority&lt;/b&gt;.  What does this mean for the ad network percentage distribution?&lt;/p&gt;

&lt;br/&gt;
&lt;br/&gt;
&lt;center&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhw8h9nYjSeUdsgnaWLRWCIHTvLMenbVubgXfaz_RL9aRf-L2nIwYCvlrErrmRUW0bL9opwZXTkhhPT29UKgdQLbWIXh_tjEngAAxn-tkUHN21nT6F-tzhaWQyo0yYbNGJ3qYYbOhRXgSk/s1600/AdWhirlAndroidConfigurations3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;209&quot; width=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhw8h9nYjSeUdsgnaWLRWCIHTvLMenbVubgXfaz_RL9aRf-L2nIwYCvlrErrmRUW0bL9opwZXTkhhPT29UKgdQLbWIXh_tjEngAAxn-tkUHN21nT6F-tzhaWQyo0yYbNGJ3qYYbOhRXgSk/s400/AdWhirlAndroidConfigurations3.png&quot; /&gt;&lt;/a&gt;
&lt;/center&gt;
&lt;br/&gt;

&lt;p&gt;Using the same example configuration, the 60% of requests to Network 3 will fail for users with an older version, and AdWhirl will rollover to your top backfill option.  If your top backfill option is Network 2, then Network 2 will consume the Network 3 traffic - you will have 30% of all requests going to Network 1, and &lt;b&gt;70%&lt;/b&gt; to Network 2.  This is likely not what you would expect, so be careful when adding new networks to an existing Android application.&lt;/p&gt;

&lt;p&gt;In summary, the iOS SDK will respect the percentages given to the valid ad networks (expected), but the Android SDK will send the invalid ad network traffic to the top backfill option (unexpected).&lt;/p&gt;

&lt;p&gt;We value your feedback, so please post to our &lt;a href=&quot;http://groups.google.com/group/adwhirl-users&quot;&gt;developer forum&lt;/a&gt; if you have any questions about AdWhirl.&lt;/p&gt;


&lt;p&gt;&lt;span class=&quot;post-author&quot;&gt;&lt;a href=&quot;https://plus.google.com/112870803958713211515/&quot;&gt;&lt;img width=&quot;20&quot; height=&quot;20&quot; src=&quot;https://lh4.googleusercontent.com/-VjOdMVF5_qc/AAAAAAAAAAI/AAAAAAAAAB8/aYikCy7pZmw/photo.jpg?sz=20&quot; style=&quot;vertical-align:middle; border:none;&quot;&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href=&quot;https://plus.google.com/112870803958713211515/&quot; rel=&quot;author&quot;&gt;Eric Leichtenschlag&lt;/a&gt;, AdMob Team&lt;/span&gt;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/1308037589979305090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/1308037589979305090'/><link rel='alternate' type='text/html' href='http://ads-developers.googleblog.com/2012/03/effect-of-configuring-new-ad-network-to.html' title='Effect of Configuring a New Ad Network to an Existing AdWhirl Application'/><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='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghlfawoatb75CMr5b5EYjf9LEkaWeVpD2uTd8N8e_09woT7B7jp2BZ52qY6-FD1f86nDTXU4NkyI0j1sc7METTuD0vPJ0Q5LhYiT6Ni1ssC5-Dn-p8jZo4w7QMigvbqTrVBeubd53wWu8/s72-c/AdWhirliOSConfigurations3.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-3750809328016180875</id><published>2011-12-28T08:15:00.000-08:00</published><updated>2011-12-27T08:15:28.495-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="admob_sdk"/><category scheme="http://www.blogger.com/atom/ns#" term="adwhirl"/><category scheme="http://www.blogger.com/atom/ns#" term="mobile"/><title type='text'>AdMob and AdWhirl Refresh Rates - A Subtle but Important Difference</title><content type='html'>&lt;p&gt;The &lt;a href=&quot;http://code.google.com/p/adwhirl/&quot;&gt;AdWhirl SDK&lt;/a&gt; provides a framework that allows developers to display banner ads from different ad networks in their iOS and Android applications.  You simply tell AdWhirl what ad networks you want to use and the percentage of requests to allocate to each network, and AdWhirl handles the ad requests.  But how do you choose an acceptable refresh rate, and what settings should you use for both AdWhirl and your individual ad networks?&lt;/p&gt;

&lt;p&gt;AdWhirl has its own refresh rate; when it comes time to refresh, AdWhirl removes the current network’s ad view, chooses a new ad network, and creates a new ad view for that network.  So how is this different from the AdMob refresh rate?  Well, the AdMob refresh rate determines when its own ad view will request a new ad.&lt;/p&gt;

&lt;p&gt;AdWhirl does not know about the specific ad networks’ refresh rates.  Most networks expose the refresh rate on the client side; AdWhirl takes advantage of this by turning off refreshing for these networks.  AdMob, however, only supports configuring the refresh rate on the server side.  Therefore, AdWhirl must rely on you, the developer, to turn off the network refresh rate.  Forgetting to do so may result in unexpected refreshes.  This is best demonstrated with an example.&lt;/p&gt;

&lt;p&gt;Let’s say AdWhirl has selected the AdMob network for displaying an ad, and your AdMob refresh rate is 29 seconds while your AdWhirl refresh rate is 30 seconds.  AdWhirl will load up an AdMob view, and then the AdMob view will request and show an ad.  After 29 seconds, AdMob decides it&#39;s time to refresh, grabs a new ad on it&#39;s own, and displays a new ad.  AdWhirl has no idea that AdMob just refreshed.  One second later, AdWhirl decides it’s time to refresh (30 seconds have passed), and removes the AdMob view and picks a new ad network from which to show an ad.&lt;/p&gt;

&lt;p&gt;In the above example, AdMob displayed a new ad that was shown for only one second--it had virtually no chance of being clicked.  This results in extra impressions that reduce your click through rate and confuse your customers.  To avoid having AdMob refresh on its own, make sure to turn off automatic refreshing for the AdMob publisher ID you are mediating with!&lt;/p&gt;

&lt;p&gt;Please post to the &lt;a href=&quot;https://groups.google.com/forum/#!forum/adwhirl-users&quot;&gt;forum&lt;/a&gt; for any questions regarding refresh rates.  You’re also welcome to attend one of our &lt;a href=&quot;http://googleadsdeveloper.blogspot.com/search/label/admob_sdk&quot;&gt;office hours&lt;/a&gt; hangouts.&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;post-author&quot;&gt;&lt;a href=&quot;https://plus.google.com/112870803958713211515/&quot;&gt;&lt;img width=&quot;20&quot; height=&quot;20&quot; src=&quot;https://lh4.googleusercontent.com/-VjOdMVF5_qc/AAAAAAAAAAI/AAAAAAAAAB8/aYikCy7pZmw/photo.jpg?sz=20&quot; style=&quot;vertical-align:middle; border:none;&quot;&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href=&quot;https://plus.google.com/112870803958713211515/&quot; rel=&quot;author&quot;&gt;Eric Leichtenschlag&lt;/a&gt;, AdMob Team&lt;/span&gt;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/3750809328016180875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/3750809328016180875'/><link rel='alternate' type='text/html' href='http://ads-developers.googleblog.com/2011/12/admob-and-adwhirl-refresh-rates-subtle.html' title='AdMob and AdWhirl Refresh Rates - A Subtle but Important Difference'/><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='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh4.googleusercontent.com/-VjOdMVF5_qc/AAAAAAAAAAI/AAAAAAAAAB8/aYikCy7pZmw/s72-c/photo.jpg?sz=20" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-2718060154747491266</id><published>2011-12-06T11:52:00.000-08:00</published><updated>2011-12-06T11:52:18.105-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="adwhirl"/><category scheme="http://www.blogger.com/atom/ns#" term="adwhirl_v3.1.1"/><category scheme="http://www.blogger.com/atom/ns#" term="android"/><category scheme="http://www.blogger.com/atom/ns#" term="iOS"/><category scheme="http://www.blogger.com/atom/ns#" term="mobile"/><title type='text'>Announcing AdWhirl v3.1.1</title><content type='html'>&lt;p&gt;We’re very pleased to announce the release of &lt;a href=&quot;http://www.adwhirl.com/&quot;&gt;AdWhirl&lt;/a&gt; v3.1.1 for both Android and iOS platforms.  This update heralds support for the &lt;a href=&quot;http://www.nexage.com/&quot;&gt;Nexage&lt;/a&gt; ad network and includes refreshed adapters for &lt;a href=&quot;http://www.millennialmedia.com/&quot;&gt;Millennial Media&lt;/a&gt;, &lt;a href=&quot;http://www.inmobi.com/&quot;&gt;InMobi&lt;/a&gt;, and &lt;a href=&quot;http://www.admob.com/&quot;&gt;AdMob&lt;/a&gt;&amp;mdash;ensuring support for their latest SDK versions.&lt;/p&gt;&lt;p&gt;Additionally, we’ve taken the opportunity to fix several bugs, specifically:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;(iOS) Reachability NPE [&lt;a href=&quot;http://code.google.com/p/adwhirl/issues/detail?id=118&quot;&gt;Issue 118&lt;/a&gt;]&lt;/li&gt;
&lt;li&gt;(iOS) Null dereference error [&lt;a href=&quot;http://code.google.com/p/adwhirl/issues/detail?id=179&quot;&gt;Issue 179&lt;/a&gt;]&lt;/li&gt;
&lt;li&gt;(Android) Build rules for creating the AdWhirl jar&lt;/li&gt;
&lt;li&gt;(Android) Fixes for Android 1.5/1.6 crashes [&lt;a href=&quot;http://code.google.com/p/adwhirl/issues/detail?id=221&quot;&gt;Issue 221&lt;/a&gt;]&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Go ahead and kick the tires; you can find the zips listed on our &lt;a href=&quot;http://code.google.com/p/adwhirl/downloads/list&quot;&gt;downloads&lt;/a&gt; page.  As always, holler at us on the &lt;a href=&quot;http://groups.google.com/group/adwhirl-users/&quot;&gt;forum&lt;/a&gt; if you encounter any issues.&lt;/p&gt;&lt;br /&gt;
&lt;span class=&quot;post-author&quot;&gt;&lt;a href=&quot;https://plus.google.com/u/0/100951976559465900344&quot;&gt;&lt;img width=&quot;20&quot; height=&quot;20&quot; src=&quot;https://lh4.googleusercontent.com/-JJsLfLVCckY/AAAAAAAAAAI/AAAAAAABVog/oL3K4YTTcJA/photo.jpg?sz=20&quot; style=&quot;vertical-align:middle; border:none;&quot;&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href=&quot;https://plus.google.com/u/0/100951976559465900344&quot; rel=&quot;author&quot;&gt;Wes Goodman&lt;/a&gt;, AdMob Team&lt;/span&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/2718060154747491266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/2718060154747491266'/><link rel='alternate' type='text/html' href='http://ads-developers.googleblog.com/2011/12/announcing-adwhirl-v311.html' title='Announcing AdWhirl v3.1.1'/><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='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh4.googleusercontent.com/-JJsLfLVCckY/AAAAAAAAAAI/AAAAAAABVog/oL3K4YTTcJA/s72-c/photo.jpg?sz=20" height="72" width="72"/></entry></feed>