<?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/mobile" /><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>25</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/VhQUB" /><feedburner:info uri="blogspot/vhqub" /><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-6461735651064538806</id><published>2012-05-10T10:06:00.000-07:00</published><updated>2012-05-10T10:06:47.995-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mobile" /><category scheme="http://www.blogger.com/atom/ns#" term="admob_sdk" /><category scheme="http://www.blogger.com/atom/ns#" term="iOS" /><category scheme="http://www.blogger.com/atom/ns#" term="android" /><title type="text">Updates to our AdMob SDK</title><content type="html">&lt;p&gt;&lt;i&gt;Editor’s note: We’d like to share this &lt;a href="http://googlemobileads.blogspot.com/2012/05/updates-to-our-admob-sdk.html"&gt;post&lt;/a&gt; from Chrix Finne which announces updates to the Google AdMob Ads SDK. -- Eric Leichtenschlag, Ads Developer Relations Team&lt;/i&gt;&lt;/p&gt; &lt;p&gt;Today we are posting an update to the AdMob SDKs for iOS and Android. This SDK update features several minor bug fixes and improvements.&lt;/p&gt; &lt;p&gt;We are also releasing an optional version of our SDK for iOS that includes the UDID parameter, which is used to improve ad performance and relevance. Apps utilizing this version must obtain appropriate user consent for sending device identifier information in compliance with relevant iOS policies.&lt;/p&gt; &lt;p&gt;Posted by Chrix Finne, Product Manager&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-6461735651064538806?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/6461735651064538806" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/6461735651064538806" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2012/05/updates-to-our-admob-sdk.html" title="Updates to our AdMob SDK" /><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-4999849607369222651</id><published>2012-05-03T10:29:00.000-07:00</published><updated>2012-05-03T11:31:52.674-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mobile" /><category scheme="http://www.blogger.com/atom/ns#" term="admob_sdk" /><title type="text">Placing ads to prevent accidental clicks in your mobile app</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;In this blog post, we will help you understand how you can monetize your mobile applications while following our ad placement guidelines to ensure a good experience for your users.&lt;br /&gt;&lt;br /&gt;As you may know, Google takes issues regarding program policy compliance very seriously. We have our AdSense &lt;a href="https://www.google.com/adsense/support/bin/answer.py?answer=48182"&gt;program policies&lt;/a&gt; and AdMob &lt;a href="http://support.google.com/admob/bin/answer.py?hl=en&amp;amp;answer=1307237"&gt;program policies&lt;/a&gt; to help ensure a positive experience for our publishers, our users, and our advertisers. As such, we ask that our publishers/developers comply with these policies.&lt;br /&gt;&lt;br /&gt;One of the most common policy violations is placing ads in a way which can trigger accidental clicks. Your ads’ proximity to the other elements within your application can influence whether or not users click on ads by accident.&lt;br /&gt;&lt;br /&gt;Here are some tips to decrease the chances of accidental clicks: &lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Ads should not be right next to interactive buttons, such as a “next” button, or on a game play screen where users are interacting continuously with the application. We have seen that when a user is clicking or tapping repeatedly within an application and there is an ad near or within the interaction area, there is a much higher rate of invalid activity. &lt;/li&gt;&lt;li&gt;If the space within your application is limited, it helps to then delineate the ad from the application content by creating a thick border between the ad and the application’s interactive portion.&lt;/li&gt;&lt;/ol&gt;An example of a placement to avoid:&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;img border="0" height="400" width="266" src="http://1.bp.blogspot.com/-E1o5EkEqqLA/T6LOv6X56sI/AAAAAAAAAJs/BibRlpVNkhk/s400/Screen%2Bshot%2B2012-05-03%2Bat%2B11.29.52%2BAM.png" /&gt; &lt;/center&gt; &lt;br /&gt;A recommended ad placement in this scenario:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;img border="0" height="400" width="266" src="http://4.bp.blogspot.com/-0BO8overr-I/T6LOkcSumsI/AAAAAAAAAJg/BxrETl5c9tg/s400/Screen%2Bshot%2B2012-05-03%2Bat%2B11.28.54%2BAM.png" /&gt; &lt;/center&gt;  &lt;br /&gt;Please double check your ads’ implementation with the tips above. With the right implementation, you’ll be able to monetize your application properly without accidental clicks.&lt;br /&gt;&lt;br /&gt; &lt;span class="post-author"&gt;- Maiko Fujita, AdMob 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-4999849607369222651?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/4999849607369222651" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/4999849607369222651" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2012/05/placing-ads-to-prevent-accidental.html" title="Placing ads to prevent accidental clicks in your mobile app" /><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/-E1o5EkEqqLA/T6LOv6X56sI/AAAAAAAAAJs/BibRlpVNkhk/s72-c/Screen%2Bshot%2B2012-05-03%2Bat%2B11.29.52%2BAM.png" height="72" width="72" /></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-3090329526525372194</id><published>2012-04-27T14:14:00.000-07:00</published><updated>2012-04-27T14:14:15.449-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mobile" /><category scheme="http://www.blogger.com/atom/ns#" term="admob_sdk" /><title type="text">Know Your AdMob IDs: Publisher vs Mediation</title><content type="html">&lt;p&gt;Last week we announced the &lt;a href="http://googleadsdeveloper.blogspot.com/2012/04/build-flexible-app-business-with-latest.html"&gt;release of Google AdMob SDK 6.0&lt;/a&gt; with Ad Network Mediation.  We’ve noticed some confusion on how to use a mediation ID instead of a publisher ID, so we’d like to explain the difference between the two.&lt;/p&gt; &lt;p&gt;A publisher ID is generated after adding a site/app and is used to request ads from the AdMob network.  A publisher ID can request banners as well as interstitials, giving you the ability to use the same ID throughout your application to get AdMob ads.  However, for better reporting, we still recommend that you use a different publisher ID for each ad placement.&lt;/p&gt; &lt;p&gt;A mediation ID is generated after creating a mediation placement.  A mediation ID is used to retrieve the mediation configuration from the server so the AdMob SDK can make ad requests to other ad networks on your behalf.  Unlike a site/app, a mediation placement requires you to define an ad format, for example a 320x50 banner.  Trying to request an interstitial ad with a 320x50 banner mediation placement (and vice versa) will result in the following error:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;b&gt;iOS&lt;/b&gt; - &lt;i&gt;Failed to fetch interstitial ad: Unable to request an interstitial when server configuration was for kGADAdSizeBanner.&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Android&lt;/b&gt; - &lt;i&gt;onFailedToReceiveAd(There was an internal error.)&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Therefore, you’ll need to create multiple mediation placements if you want to use banners and interstitials in the same application with mediation.&lt;/p&gt; &lt;p&gt;Feel free to post any questions regarding the AdMob SDK or ad network mediation to our &lt;a href="https://developers.google.com/mobile-ads-sdk/community/discussion"&gt;forum&lt;/a&gt;.  Even better, if you’d like real-time responses, join us at our upcoming &lt;a href="https://developers.google.com/events/ahNzfmdvb2dsZS1kZXZlbG9wZXJzcg0LEgVFdmVudBjShS0M/"&gt;office hours hangout&lt;/a&gt; session.&lt;/p&gt; &lt;p&gt;&lt;span class="post-author"&gt;&lt;a href="https://plus.google.com/112870803958713211515/"&gt;&lt;img width="20" height="20" src="https://lh4.googleusercontent.com/-VjOdMVF5_qc/AAAAAAAAAAI/AAAAAAAAAB8/aYikCy7pZmw/photo.jpg?sz=20" style="vertical-align:middle; border:none;"&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href="https://plus.google.com/112870803958713211515/" rel="author"&gt;Eric Leichtenschlag&lt;/a&gt;, AdMob Team&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-3090329526525372194?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/3090329526525372194" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/3090329526525372194" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2012/04/know-your-admob-ids-publisher-vs.html" title="Know Your AdMob IDs: Publisher vs Mediation" /><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/-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-2123190915249745155</id><published>2012-04-26T08:43:00.000-07:00</published><updated>2012-04-26T08:43:06.736-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mobile" /><category scheme="http://www.blogger.com/atom/ns#" term="admob_sdk" /><title type="text">AdMob Optimisation Essentials</title><content type="html">&lt;p&gt;Whether your ads are from AdMob or another source, the focus of your app should always be on delivering the best possible user experience. Ads should be an integral part of your design process, rather than an afterthought so you can ensure that ads complement rather than compete with your content.&lt;/p&gt;&lt;br/&gt; &lt;b&gt;Increase Coverage&lt;/b&gt;&lt;p&gt;When choosing where to place your ad units, remember only one ad can be visible on the screen anytime. If your application involves playing a game with the controls at the bottom of the page then it is advisable you place the ad at the top. If your application carries a lot of article pages make sure you implement an ad unit on each of the article pages, sometimes these pages can be forgotten once the main pages are being served. &lt;/p&gt;&lt;br/&gt; &lt;b&gt;Increase Fill Rate&lt;/b&gt;&lt;p&gt;Take advantage of the Google certified ad networks feature within your AdMob account. Opting in to AdSense Backfill could help your fill rate improve substantially and therefore positively impact your earnings. Once you have the latest AdMob SDK implemented, you can access additional ad inventory from the Google Ad Network. Remember: &lt;ul&gt;&lt;li&gt;The backfill feature is enabled per site ID&lt;/li&gt;&lt;li&gt;Ads served from the Google Ad Network will not respect the filter rules set by your site ID at this time.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;br/&gt; &lt;b&gt;Increase Competition&lt;/b&gt;&lt;p&gt;Increase competition by keeping your filter list small. Filtering decreases the number of ads that can appear, thereby decreasing your potential earnings as well. Blocking ad groups may have a negative revenue impact because blocked ads won't compete in the auction on your site, and therefore won't drive up potential earnings for that ad space. &lt;/p&gt;&lt;br/&gt; &lt;b&gt;Optimize your refresh rate to improve your click-through-rate&lt;/b&gt;&lt;p&gt;It is important to keep in mind that users need time to interact with your content and the ad within your application. An ad that refreshes too often can adversely affect your CTR, by not giving users a chance to view the ad and decide if they are interested in clicking it. We would recommend setting your refresh rate between 45s - 60s and this can be managed within the AdMob interface.&lt;/p&gt;&lt;br/&gt; &lt;b&gt;Increase Traffic&lt;/b&gt;&lt;p&gt;If your app doesn't immediately make the top 50 rankings on an app marketplace, you have plenty of promotional options.  &lt;ul&gt;&lt;li&gt;Advertising can drive downloads and place your app in the top 50 of an app store, where you'll likely enjoy even more downloads from people browsing the store. Read more about Google's solution to help you get discovered through &lt;a href="http://www.google.com/ads/admob/ "&gt;advertising&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Get featured: App marketplaces, ranking and review sites tend to highlight the most interesting and advanced app offerings. Try to make your app unique, see more on &lt;a href="http://developer.android.com/design/index.html"&gt;Android design&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Allow social sharing: When people reach a goal in the app (say, a game level) or find something interesting in the app, make it easy for them to share this information directly with their social networks. &lt;/li&gt;&lt;li&gt;Cross-promotion is another easy and often free way to drive more users to your app; this occurs when you target users of other apps or properties and promote your app. For more information on promotion check out the &lt;a href="http://guidetotheappgalaxy.com"&gt;guidetotheappgalaxy.com&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;br/&gt; &lt;p&gt;We hope these new resources help you make the most of AdMob.&lt;/p&gt;&lt;br/&gt; &lt;span class="post-author"&gt;- Dairine Kennedy, EMEA Mobile Specialist&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-2123190915249745155?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/2123190915249745155" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/2123190915249745155" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2012/04/admob-optimisation-essentials.html" title="AdMob Optimisation Essentials" /><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-6505121736356365237</id><published>2012-04-19T11:56:00.000-07:00</published><updated>2012-04-19T11:56:10.160-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mobile" /><category scheme="http://www.blogger.com/atom/ns#" term="admob_sdk" /><title type="text">Build a flexible app business with the latest AdMob SDK</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt; &lt;i&gt;Editor’s note: reposting from &lt;a href="http://googlemobileads.blogspot.com/2012/04/build-flexible-app-business-with-latest.html"&gt;Google Mobile Ads Blog&lt;/a&gt; post by Chrix Finne. -- Stan Grinberg, Ads Developer Relations Team&lt;/i&gt;&lt;br/&gt;&lt;br/&gt; Mobile applications are now big businesses, but the developers behind them are forced to spend more of their time dealing with increasing complexity. They need to develop for different devices with different screen sizes, choose from a myriad of advertising networks, and manage varying rich media ad creative formats.&lt;br /&gt;&lt;br /&gt; The new &lt;a href="https://developers.google.com/mobile-ads-sdk/download"&gt;Google AdMob SDK 6.0&lt;/a&gt; release for Android and iOS is designed to reduce the complexity that app devs are managing, freeing them up to focus on continuing to grow their great app into a &lt;a href="http://youtu.be/65fxsGZojtY"&gt;great app business&lt;/a&gt;. With AdMob SDK 6.0, app developers can:&lt;br /&gt;&lt;br /&gt; &lt;b&gt;Use multiple ad networks&lt;/b&gt;&lt;br /&gt;We recognize that many app devs work with several ad networks to maximize fill rates, and ultimately, revenue. AdMob SDK 6.0 makes it easier to do this with our free AdMob Ad Network Mediation solution which allows app developers to allocate inventory across many top &lt;a href="https://developers.google.com/mobile-ads-sdk/download#adnetworks"&gt;3rd party ad networks&lt;/a&gt; on a country-by-country basis. App devs will retain full control and choice over the ad networks they use with a single UI that features the best-in-class AdMob reporting. For more information on AdMob Ad Network mediation, visit the &lt;a href="https://support.google.com/admob/bin/answer.py?hl=en&amp;amp;answer=2413211&amp;amp;topic=2403413&amp;amp;parent=1307209&amp;amp;rd=1"&gt;AdMob Help Center&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt; &lt;div style="text-align: center;"&gt;&lt;img height="185px;" src="https://lh3.googleusercontent.com/ANc1wQmKjltPt9KON2MwhTwyoeXMCq1N2Utx-vsJ_EcPQeoYdHDIF1_O6nFgi1Lc8cOUkxlk6p0j87h99yUZ11_CkNB6erdekV_v9gCoZ_LY-Ec8OJg" width="333px;" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt; &lt;b&gt;Get banner ads to be smart, regardless of screen size&lt;/b&gt;&lt;br /&gt;New mobile device screen sizes pop up every day, but app developers shouldn’t have to worry about how banner ads will appear on different devices. AdMob SDK 6.0 eliminates this issue with the introduction of new banner ad formats that automatically expand to the full width of any smartphone screen, even in landscape mode. To learn how to implement these new banners, visit the &lt;a href="https://developers.google.com/mobile-ads-sdk/docs/smartbanners"&gt;AdMob Developer Site&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt; &lt;div style="text-align: center;"&gt;&lt;img height="140px;" src="https://lh3.googleusercontent.com/qFnqN_Pp-XB0YoBFAiX-_P2BrX-UkbnFeDKtBH83kqNlElsvvVAnVI13Aoe62-WHbXmBSaMVHY7ccbtMpQUUxuk46jrDn1A9pQ9YQ25CeP0GtqoQDV0" width="500px;" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt; &lt;b&gt;Serve more rich media ads&lt;/b&gt;&lt;br /&gt;The lack of industry standards for mobile rich media ads has been a barrier for advertisers and made it challenging to app devs to run more of these engaging ads in their apps. The new AdMob SDK 6.0 is compliant with &lt;a href="http://www.iab.net/mraid"&gt;Mobile Rich Media Ad Interface Definitions (MRAID)&lt;/a&gt;, a common API for mobile rich media ads running in mobile apps. This is a &lt;a href="http://googlemobileads.blogspot.com/2011/09/industry-standards-coming-to-mobile.html"&gt;big step&lt;/a&gt; forward in reducing complexity as it establishes a standardized set of commands for developers creating rich media ads. It also means that advertisers will be able to build mobile rich media ads that can be served across networks regardless of device platform, application or technology used to display the media.&lt;br /&gt;&lt;br /&gt; &lt;div style="text-align: center;"&gt;&lt;img height="96px;" src="https://lh3.googleusercontent.com/TkPNxC0hA9ms_py1lZKiY32Vvm_zjEu08WTzdfTM1bawer-5r8czfGNZDnP6itXLQMdaYajTO_x7LrqoBIrZj1Nkhn4Udx_bzJ_LPn--gsDFTkXQpFo" width="123px;" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt; As we announced &lt;a href="http://googlemobileads.blogspot.com/2012/03/announcing-google-admob-ads-sdk-508.html"&gt;several weeks ago&lt;/a&gt;, the iOS version of the Google AdMob SDK no longer uses the universal device identifier (UDID). We are working toward a long-term solution that will benefit users, app developers and advertisers.&lt;br /&gt;&lt;br /&gt; To learn more about how app devs can work with AdMob to build a great app business through monetization and promotion of their app, visit our new &lt;a href="http://www.google.com/ads/admob?utm_source=madblog&amp;amp;utm_medium=blog&amp;amp;utm_campaign=sdk6"&gt;AdMob website&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt; &lt;span class='post-author'&gt;Posted by: Chrix Finne, Product Manager, Mobile Ads&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-6505121736356365237?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/6505121736356365237" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/6505121736356365237" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2012/04/build-flexible-app-business-with-latest.html" title="Build a flexible app business with the latest AdMob SDK" /><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-8619494000224887870</id><published>2012-04-03T16:12:00.001-07:00</published><updated>2012-04-03T16:12:55.531-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mobile" /><category scheme="http://www.blogger.com/atom/ns#" term="admob_sdk" /><category scheme="http://www.blogger.com/atom/ns#" term="iOS" /><title type="text">Creating A GADBannerView Singleton in AdMob Applications</title><content type="html">&lt;p&gt;View controllers in iOS such as &lt;a href="https://developer.apple.com/library/ios/#documentation/uikit/reference/UITabBarController_Class/Reference/Reference.html"&gt;UITabBarController&lt;/a&gt; and &lt;a href="https://developer.apple.com/library/ios/#documentation/uikit/reference/UINavigationController_Class/Reference/Reference.html"&gt;UINavigationController&lt;/a&gt; allow users to navigate between screens quickly. Developers using these controllers often hesitate to create new GADBannerViews for each screen because the user may not spend enough time on each screen to see the ad, thus diluting their click-through rate (CTR). A nice alternative here is to use a &lt;a href="http://en.wikipedia.org/wiki/Singleton_pattern"&gt;singleton&lt;/a&gt; GADBannerView across the entire application. This blog post will outline the steps to get this up and running.&lt;/p&gt; &lt;br/&gt;&lt;b&gt;Initialization&lt;/b&gt;&lt;br/&gt;&lt;p&gt;Create a class that wraps around GADBannerView to add some minimal functionality. We’ll call this class GADMasterViewController in our example. Define your header file to have properties similar to what’s below:&lt;/p&gt; &lt;pre class="prettyprint"&gt;&lt;br /&gt;@interface GADMasterViewController : UIViewController&lt;GADBannerViewDelegate&gt; {&lt;br /&gt;  GADBannerView *adBanner_;&lt;br /&gt;  BOOL didCloseWebsiteView_;&lt;br /&gt;  BOOL isLoaded_;&lt;br /&gt;  id&lt;GADBannerViewDelegate&gt; currentDelegate_;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;You need to provide a static accessor method in your GADMasterViewController class:&lt;/p&gt; &lt;pre class="prettyprint"&gt;&lt;br /&gt;+(GADMasterViewController *)singleton {&lt;br /&gt;  static dispatch_once_t pred;&lt;br /&gt;  static GADMasterViewController *shared;&lt;br /&gt;  // Will only be run once, the first time this is called&lt;br /&gt;  dispatch_once(&amp;pred, ^{&lt;br /&gt;    shared = [[GADMasterViewController alloc] init];&lt;br /&gt;  });&lt;br /&gt;  return shared;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;  &lt;p&gt;You also need an &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;init:&lt;/span&gt; method in GADMasterViewController. You can now initialize the GADBannerView normally. Presume the initialization gets called only once:&lt;/p&gt; &lt;pre class="prettyprint"&gt;&lt;br /&gt;-(id)init {&lt;br /&gt;  if (self = [super init]) {&lt;br /&gt;   adBanner_ = [[GADBannerView alloc]&lt;br /&gt;                     initWithFrame:CGRectMake(0.0,&lt;br /&gt;                                              0.0,&lt;br /&gt;                                              GAD_SIZE_320x50.width,&lt;br /&gt;                                              GAD_SIZE_320x50.height)];&lt;br /&gt;    // Has an ad request already been made&lt;br /&gt;    isLoaded_ = NO;&lt;br /&gt;  }&lt;br /&gt;  return self;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;  &lt;b&gt;Placing the Ad&lt;/b&gt;&lt;br/&gt;&lt;p&gt;Write a method which takes a new view controller and places the GADBannerView into that view controller’s view hierarchy. Again, this code will go into GADMasterViewController. This will be called every time you want to display an ad inside a different view controller:&lt;/p&gt; &lt;pre class="prettyprint"&gt;&lt;br /&gt;-(void)resetAdView:(UIViewController&lt;GADBannerViewDelegate&gt; *)rootViewController {&lt;br /&gt;  // Always keep track of currentDelegate for notification forwarding&lt;br /&gt;  currentDelegate_ = rootViewController;&lt;br /&gt;&lt;br /&gt;  // Ad already requested, simply add it into the view&lt;br /&gt;  if (isLoaded_) {&lt;br /&gt;    [rootViewController.view addSubview:adBanner_];&lt;br /&gt;  } else {&lt;br /&gt;&lt;br /&gt;    adBanner_.delegate = self;&lt;br /&gt;    adBanner_.rootViewController = rootViewController;&lt;br /&gt;    adBanner_.adUnitID = kSampleAdUnitID;&lt;br /&gt;&lt;br /&gt;    GADRequest *request = [GADRequest request];&lt;br /&gt;    [adBanner_ loadRequest:request];&lt;br /&gt;    [rootViewController.view addSubview:adBanner_];&lt;br /&gt;    isLoaded_ = YES;&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;At this point, putting an ad into a view that’s not the GADMasterViewController becomes extremely easy. The code can go into any view controller’s &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;viewWillAppear:&lt;/span&gt; method (assuming the view conforms to the GADBannerViewDelegate protocol):&lt;/p&gt; &lt;pre class="prettyprint"&gt;&lt;br /&gt;- (void)viewWillAppear:(BOOL)animated {&lt;br /&gt;    [super viewWillAppear:animated];&lt;br /&gt;    shared = [GADMasterViewController singleton];&lt;br /&gt;    [shared resetAdView:self];&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt; &lt;b&gt;Forwarding Delegate Notifications&lt;/b&gt;&lt;br/&gt;&lt;p&gt;An important note is that the AdMob SDK doesn’t let you change delegates after a request has been made. This means that if you switch view controllers after making an ad request, all GADBannerViewDelegate notifications will continue to be sent to the initial delegate (first view controller). A workaround for this is to make GADMasterViewController conform to the GADBannerViewDelegate protocol, then forward any notifications it receives to the correct view controller. This is the reasoning behind always setting &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;currentDelegate_&lt;/span&gt;  in &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;resetAdView:&lt;/span&gt;. Forwarding the notification takes minimal code. Here is an example of forwarding the &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;adViewDidReceiveAd:&lt;/span&gt; notification:&lt;/p&gt; &lt;pre class="prettyprint"&gt;&lt;br /&gt;- (void)adViewDidReceiveAd:(GADBannerView *)view {&lt;br /&gt;  // Make sure that the delegate actually responds to this notification&lt;br /&gt;  if  ) {&lt;br /&gt;    [currentDelegate_ adViewDidReceiveAd:view];&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;With these easy steps, your application is set up to use a singleton GADBannerView. If you have any questions about this topic or the SDK in general, feel free to post them in our &lt;a href="https://groups.google.com/forum/#!forum/google-admob-ads-sdk"&gt;forum&lt;/a&gt; or come join us in our upcoming &lt;a href="https://developers.google.com/events/ahNzfmdvb2dsZS1kZXZlbG9wZXJzcg0LEgVFdmVudBix3S8M/"&gt;office hours&lt;/a&gt;.&lt;/p&gt; &lt;br/&gt;&lt;span class="post-author"&gt;&lt;a href="https://plus.google.com/102708799507737837368"&gt;&lt;img width="20" height="20" src="https://lh3.googleusercontent.com/-RonljIAjNbg/AAAAAAAAAAI/AAAAAAAAAps/nM93tw3iYSk/s200-c-k/photo.jpg?sz=20" style="vertical-align:middle; border:none;"&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href="https://plus.google.com/102708799507737837368" rel="author"&gt;Raj Parameswaran&lt;/a&gt;, AdMob Team&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-8619494000224887870?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/8619494000224887870" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/8619494000224887870" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2012/04/creating-gadbannerview-singleton-in.html" title="Creating A GADBannerView Singleton in AdMob Applications" /><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-4453772998281141336</id><published>2012-03-13T15:59:00.000-07:00</published><updated>2012-03-13T15:59:48.900-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mobile" /><category scheme="http://www.blogger.com/atom/ns#" term="admob_sdk" /><category scheme="http://www.blogger.com/atom/ns#" term="android" /><title type="text">Embedding AdMob Ads Within A ListView on Android</title><content type="html">&lt;p&gt;We’ve already &lt;a href="http://googleadsdeveloper.blogspot.com/2011/12/incorporating-android-admob-ads-into.html"&gt;shared&lt;/a&gt; how you can get ads up and running along the bottom or top of your app using the ListView layout in Android applications. This post will show you how to embed AdMob ads within the &lt;a href="http://developer.android.com/reference/android/widget/ListView.html"&gt;ListView&lt;/a&gt; as list items.&lt;/p&gt;&lt;br /&gt; &lt;p&gt;For this scenario, let’s assume that we want ads to occur every &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;k&lt;/span&gt; items within the list.&lt;/p&gt;&lt;br /&gt; &lt;center&gt;&lt;img height="258px;" src="https://lh6.googleusercontent.com/znjoAwDLMAci_vmvnpU81sF17q_UihtezYgNw4L6pe2FWR8kNjG1aCcZyW8bGnlR7GZ_UZ6aCIm-3nNxC3AmNcYxAQ_4e8a-uu3_Xd6AzedSlHux_Ug" width="162px;" /&gt;&lt;/center&gt; &lt;br/&gt;&lt;p&gt;Embedding ads within a ListView requires writing a custom adapter that extends &lt;a href="http://developer.android.com/reference/android/widget/BaseAdapter.html"&gt;BaseAdapter&lt;/a&gt;. This adapter will add functionality to allow ads to behave as list items within a ListView. Your class declaration will look something like:&lt;/p&gt; &lt;pre class="prettyprint"&gt;&lt;br /&gt;public class ListViewExampleListAdapter extends BaseAdapter &lt;br /&gt;    implements AdListener{&lt;br /&gt;&lt;br /&gt;  // Constructor takes in a BaseAdapter also&lt;br /&gt;  public ListViewExampleListAdapter(Activity activity, BaseAdapter delegate) {&lt;br /&gt; …&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;Notice how we use the &lt;a href="http://en.wikipedia.org/wiki/Decorator_pattern"&gt;decorator&lt;/a&gt; pattern by passing in a BaseAdapter into the constructor of the custom adapter class. Using this pattern, we can accept any type of adapter (including a custom adapter) instead of having to hard-code the types of acceptable list items. We only have to implement functionality relevant to AdMob ads within our list adapter, and defer to the underlying adapter class for functionality related to any other list items.&lt;/p&gt; &lt;p&gt;The most important step is to override &lt;a href="http://developer.android.com/reference/android/widget/Adapter.html#getView(int,%20android.view.View,%20android.view.ViewGroup)"&gt;getView()&lt;/a&gt; to return ads for every &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;k&lt;/span&gt; items. We can use &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;delegate.getView()&lt;/span&gt; to return the view for any items that aren’t ads. The code for this looks like:&lt;/p&gt; &lt;pre class="prettyprint"&gt;&lt;br /&gt;  @Override&lt;br /&gt;  public View getView(int position, View convertView, ViewGroup parent) {&lt;br /&gt;    if ((position % k) == 0) {&lt;br /&gt;      if (convertView instanceof AdView) {&lt;br /&gt;        // Don’t instantiate new AdView, reuse old one&lt;br /&gt;        return convertView;&lt;br /&gt;      } else {&lt;br /&gt;        // Create a new AdView&lt;br /&gt;        AdView adView = new AdView(activity, AdSize.BANNER,&lt;br /&gt;                                   INSERT_ADMOB_ID_HERE);&lt;br /&gt;&lt;br /&gt;        // Convert the default layout parameters so that they play nice with&lt;br /&gt;        // ListView.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;        float density = activity.getResources().getDisplayMetrics().density;&lt;br /&gt;        int height = Math.round(AdSize.BANNER.getHeight() * density);&lt;br /&gt;        AbsListView.LayoutParams params = new AbsListView.LayoutParams(&lt;br /&gt;            AbsListView.LayoutParams.FILL_PARENT,&lt;br /&gt;            height);&lt;br /&gt;        adView.setLayoutParams(params);&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;        adView.loadAd(new AdRequest());&lt;br /&gt;        return adView;&lt;br /&gt;      }&lt;br /&gt;    } else {&lt;br /&gt;      // Offload displaying other items to the delegate&lt;br /&gt;      return delegate.getView(position - (int) Math.ceil(position / k) - 1,&lt;br /&gt;          convertView, parent);&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;The bolded code makes sure that the &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;adView&lt;/span&gt; list item is large enough to fit the ad.&lt;/p&gt; &lt;p&gt;The other methods that we need to override are pretty trivial. They require adding information specific to our ad implementation and deferring to the &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;delegate&lt;/span&gt; for everything else. These methods are:  &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;a href="http://developer.android.com/reference/android/widget/BaseAdapter.html#getViewTypeCount()"&gt;getViewTypeCount()&lt;/a&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;a href="http://developer.android.com/reference/android/widget/Adapter.html#getItemViewType(int)"&gt;getItemViewType()&lt;/a&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;a href="http://developer.android.com/reference/android/widget/Adapter.html#getCount()"&gt;getCount()&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;a href="http://developer.android.com/reference/android/widget/Adapter.html#getItem(int) "&gt;getItem()&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;a href="http://developer.android.com/reference/android/widget/Adapter.html#getItemId(int) "&gt;getItemId()&lt;/a&gt;&lt;/span&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;If you have any questions about embedding ads within a ListView, or even any questions about the SDK in general, feel free to post them in our &lt;a href="https://groups.google.com/forum/#!forum/google-admob-ads-sdk"&gt;forum&lt;/a&gt; come join us in our upcoming &lt;a href="https://developers.google.com/events/ahNzfmdvb2dsZS1kZXZlbG9wZXJzcg0LEgVFdmVudBix3S8M/"&gt;developer hangout&lt;/a&gt;. Take a look at &lt;a href="http://code.google.com/p/google-mobile-dev/"&gt;AdCatalog v2&lt;/a&gt; for Android for a working example of everything demonstrated here.&lt;/p&gt; &lt;br/&gt;&lt;span class="post-author"&gt;&lt;a href="https://plus.google.com/102708799507737837368"&gt;&lt;img width="20" height="20" src="https://lh3.googleusercontent.com/-RonljIAjNbg/AAAAAAAAAAI/AAAAAAAAAps/nM93tw3iYSk/s200-c-k/photo.jpg?sz=20" style="vertical-align:middle; border:none;"&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href="https://plus.google.com/102708799507737837368/" rel="author"&gt;Raj Parameswaran&lt;/a&gt;, AdMob Team&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-4453772998281141336?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/4453772998281141336" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/4453772998281141336" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2012/03/embedding-admob-ads-within-listview-on.html" title="Embedding AdMob Ads Within A ListView on Android" /><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-5497469821580469518</id><published>2012-03-09T15:00:00.000-08:00</published><updated>2012-03-09T15:00:27.907-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mobile" /><category scheme="http://www.blogger.com/atom/ns#" term="dfp_mobile" /><category scheme="http://www.blogger.com/atom/ns#" term="admob_sdk" /><category scheme="http://www.blogger.com/atom/ns#" term="iOS" /><category scheme="http://www.blogger.com/atom/ns#" term="android" /><title type="text">Announcing Release of DFP Showcase and Ad Catalog v2</title><content type="html">&lt;p&gt;We would like to announce the release of the &lt;a href="http://code.google.com/p/google-mobile-dev/"&gt;DFP Showcase&lt;/a&gt; application for iOS and Android, as well as v2 of the &lt;a href="http://code.google.com/p/google-mobile-dev/"&gt;Ad Catalog&lt;/a&gt; project for Android.  &lt;h2&gt;DFP Showcase&lt;/h2&gt; &lt;p&gt;DFP Showcase is a sample project that features the various creative types you can display in mobile applications with &lt;a href="http://www.google.com/doubleclick/publishers/mobile.html"&gt;DoubleClick for Publishers&lt;/a&gt; (DFP) Mobile.  DFP Mobile provides publishers the ability to set up campaigns with different ad types, and uses the &lt;a href="https://developers.google.com/mobile-ads-sdk/"&gt;Google AdMob Ads SDK&lt;/a&gt; to display the ads in mobile applications.&lt;/p&gt; &lt;p&gt;The DFP Showcase application features expandable ads, image animation, click to map, and more!&lt;/p&gt; &lt;br/&gt;&lt;center&gt;&lt;a href="http://3.bp.blogspot.com/-U7jPj5VYKFo/T1qIBTmZICI/AAAAAAAAAIY/DshnoggeM6I/s1600/dfpshowcase_android.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="320" width="194" src="http://3.bp.blogspot.com/-U7jPj5VYKFo/T1qIBTmZICI/AAAAAAAAAIY/DshnoggeM6I/s320/dfpshowcase_android.png" /&gt;&lt;/a&gt;&lt;/center&gt; &lt;p&gt;You can &lt;a href="http://code.google.com/p/google-mobile-dev/downloads/list"&gt;download&lt;/a&gt; DFP Showcase directly or clone the source code from the &lt;a href="http://code.google.com/p/google-mobile-dev/source/checkout?repo=dfpshowcase-android"&gt;dfpshowcase-android&lt;/a&gt; or &lt;a href="http://code.google.com/p/google-mobile-dev/source/checkout?repo=dfpshowcase-ios"&gt;dfpshowcase-ios&lt;/a&gt; repositories.  &lt;h2&gt;Ad Catalog v2&lt;/h2&gt; &lt;p&gt;We are pleased to announce the release of &lt;a href="http://code.google.com/p/google-mobile-dev/"&gt;Ad Catalog&lt;/a&gt; v2 for Android.  This new version shows examples of best practices for ad placement in four different types of layouts - &lt;a href="http://developer.android.com/reference/android/app/TabActivity.html"&gt;TabView&lt;/a&gt;, &lt;a href="http://developer.android.com/reference/android/widget/ListView.html"&gt;ListView&lt;/a&gt;, &lt;a href="http://developer.android.com/reference/android/opengl/GLSurfaceView.html"&gt;OpenGLView&lt;/a&gt;, and &lt;a href="http://developer.android.com/reference/android/widget/ScrollView.html"&gt;ScrollView&lt;/a&gt;.&lt;/p&gt;  &lt;br/&gt;&lt;center&gt;&lt;a href="http://2.bp.blogspot.com/-C10b1GMR9i4/T1qI4-QySnI/AAAAAAAAAIk/EDiSKJJFprQ/s1600/AdCatalogv2.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="320" width="194" src="http://2.bp.blogspot.com/-C10b1GMR9i4/T1qI4-QySnI/AAAAAAAAAIk/EDiSKJJFprQ/s320/AdCatalogv2.png" /&gt;&lt;/a&gt;&lt;/center&gt; &lt;p&gt;Here are some details about the implementation of these examples: &lt;ul&gt;&lt;li&gt;The &lt;a href="http://code.google.com/p/google-mobile-dev/source/browse/adcatalog/src/com/google/ad/catalog/layouts/TabbedViewExample.java?repo=ad-catalog-android"&gt;TabView example&lt;/a&gt; makes use of Android’s &lt;a href="http://developer.android.com/sdk/compatibility-library.html"&gt;v4 support library&lt;/a&gt; to implement &lt;a href="http://developer.android.com/guide/topics/fundamentals/fragments.html"&gt;fragments&lt;/a&gt; for tabs while maintaining support for Android 1.5 and higher.&lt;/li&gt;&lt;li&gt;The ListView &lt;a href="http://code.google.com/p/google-mobile-dev/source/browse/adcatalog/src/com/google/ad/catalog/layouts/ListViewExampleListAdapter.java?repo=ad-catalog-android"&gt;example adapter&lt;/a&gt; was written to accept any type of list items, and will embed ads every k&lt;sup&gt;th&lt;/sup&gt; item in the list provided.&lt;/li&gt;&lt;li&gt;The &lt;a href="http://code.google.com/p/google-mobile-dev/source/browse/adcatalog/src/com/google/ad/catalog/layouts/OpenGLViewExample.java?repo=ad-catalog-android"&gt;OpenGLView&lt;/a&gt; and &lt;a href="http://code.google.com/p/google-mobile-dev/source/browse/adcatalog/src/com/google/ad/catalog/layouts/ScrollViewExample.java?repo=ad-catalog-android"&gt;ScrollView&lt;/a&gt; examples show how to dock an ad to the top or bottom, but outside the content on the screen.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt; &lt;p&gt;You can get v2 of the Ad Catalog by downloading a zip file from the &lt;a href="http://code.google.com/p/google-mobile-dev/"&gt;google-mobile-dev&lt;/a&gt; download page or by &lt;a href="http://code.google.com/p/google-mobile-dev/source/checkout?repo=ad-catalog-android"&gt;cloning&lt;/a&gt; the source code.&lt;/p&gt; &lt;p&gt;Have any questions, comments, or feature requests for the DFP Showcase or Ad Catalog projects?  Let us know on the &lt;a href="https://groups.google.com/group/google-admob-ads-sdk"&gt;forum&lt;/a&gt;, or join us during &lt;a href="https://developers.google.com/events/"&gt;office hours&lt;/a&gt;!  Also, stay tuned for the release of Ad Catalog v2 for iOS.&lt;/p&gt; &lt;p&gt;&lt;span class="post-author"&gt;&lt;a href="https://plus.google.com/112870803958713211515/"&gt;&lt;img width="20" height="20" src="https://lh4.googleusercontent.com/-VjOdMVF5_qc/AAAAAAAAAAI/AAAAAAAAAB8/aYikCy7pZmw/photo.jpg?sz=20" style="vertical-align:middle; border:none;"&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href="https://plus.google.com/112870803958713211515/" rel="author"&gt;Eric Leichtenschlag&lt;/a&gt;, AdMob Team&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-5497469821580469518?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/5497469821580469518" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/5497469821580469518" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2012/03/announcing-release-of-dfp-showcase-and.html" title="Announcing Release of DFP Showcase and Ad Catalog v2" /><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/-U7jPj5VYKFo/T1qIBTmZICI/AAAAAAAAAIY/DshnoggeM6I/s72-c/dfpshowcase_android.png" height="72" width="72" /></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-1610131341742643022</id><published>2012-03-06T13:55:00.000-08:00</published><updated>2012-03-06T13:55:43.947-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mobile" /><category scheme="http://www.blogger.com/atom/ns#" term="admob_sdk" /><category scheme="http://www.blogger.com/atom/ns#" term="iOS" /><title type="text">Embedding Google AdMob Ads Within A UITableView</title><content type="html">&lt;p&gt;We previously talked about &lt;a href="http://googleadsdeveloper.blogspot.com/2011/12/incorporating-google-admob-ads-into.html"&gt;docking AdMob ads to the bottom or top of a UITableView&lt;/a&gt;. In response to that post, we’ve had a lot of developers asking us about embedding AdMob ads within the UITableView cells, so we wanted to share how this can be best achieved.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Challenge&lt;/b&gt;&lt;br /&gt;&lt;p&gt;Placing ads within a &lt;a href="http://developer.apple.com/library/IOS/#documentation/UIKit/Reference/UITableView_Class/Reference/Reference.html"&gt;Table View&lt;/a&gt; in iOS as list items can bring up a number of issues:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Inflated impression numbers because tables in iOS refresh when the user scrolls.&lt;/li&gt;&lt;li&gt;The one-to-one mapping between data in the Table View and the application’s model will usually be lost.&lt;/li&gt;&lt;/ul&gt; &lt;center&gt;&lt;img height="251px;" src="https://lh3.googleusercontent.com/U7vBVizAJ1ivfe0TTgTKrB3MGKKJRI9M-IrdaUGWrgjLQUcam4GQLcKH7VXb52rjXd4gjlHG4N2b-OpnG97uS_1aLoGoew07Kkgrcln88wHzaWqI90w" width="134px;" /&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Choosing A Solution&lt;/b&gt;&lt;p&gt;Table Views in iOS are populated by implementing the &lt;a href="http://developer.apple.com/library/ios/#documentation/uikit/reference/UITableViewDataSource_Protocol/Reference/Reference.html "&gt;tableView:cellForRowAtIndexPath:&lt;/a&gt; method. Cell objects are often reused so that new ones aren’t instantiated each time the Table View is refreshed (by a scroll for example). There are two ways that ads can be implemented within Table View cells:&lt;/p&gt; &lt;ol&gt;&lt;li&gt;Only use one  GADBannerView throughout the table. This would mean that the same ad is displayed in different cells in the table (preferred).&lt;/li&gt;&lt;li&gt;Leverage &lt;a href="https://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UITableView_Class/Reference/Reference.html"&gt;dequeueReusableCellWithIdentifier:&lt;/a&gt; so that GADBannerViews are created only when new cells are created.&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Using one GADBannerView throughout the table does decrease ad diversity but generally increases the CTR for the ads that are shown because the user will more likely see the ads that are displayed. The example below will show how to implement this approach as it is the better practice.&lt;/p&gt;&lt;br/&gt; &lt;br/&gt;&lt;b&gt;Solution - Single GADBannerView Method&lt;/b&gt;&lt;br/&gt;&lt;p&gt;For the purposes of this example, let’s assume that every 10th element in the list is going to be an ad. This means &lt;a href="http://developer.apple.com/library/ios/#documentation/uikit/reference/UITableViewDataSource_Protocol/Reference/Reference.html"&gt;tableView:cellForRowAtIndexPath:&lt;/a&gt; will be set up with a conditional that modifies the placement of the GADBannerView for every tenth cell:&lt;/p&gt;&lt;br/&gt; &lt;pre class="prettyprint"&gt;&lt;br /&gt;- (UITableViewCell *)tableView:(UITableView *)tableView&lt;br /&gt;         cellForRowAtIndexPath:(NSIndexPath *)indexPath {&lt;br /&gt;  int row = [indexPath row];&lt;br /&gt;&lt;br /&gt;  // Assume that kFrequencyAdsInCells is 10 so every 10th row is an ad&lt;br /&gt;  // Don't want first item to be an ad so use 10-1=9 instead of 0&lt;br /&gt;  if ((row % kFrequencyAdsInCells) == (kFrequencyAdsInCells)) {&lt;br /&gt;    cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];&lt;br /&gt;  &lt;br /&gt;    //Need to create a new cell object&lt;br /&gt;    if (cell == nil) {&lt;br /&gt;        cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero&lt;br /&gt;                                       reuseIdentifier:CellIdentifier]&lt;br /&gt;                autorelease];&lt;br /&gt;    }&lt;br /&gt;    // If bannerView_ has a superview, then it has been added to a cell&lt;br /&gt;    if (!bannerView_.superview) {&lt;br /&gt;      // First ad request made, make the ad request and add it to this cell&lt;br /&gt;      [self requestAd];     &lt;br /&gt;    }&lt;br /&gt;    // The banner will be removed from the other cell and put into here&lt;br /&gt;    [cell.contentView addSubview:bannerView_];&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;…&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;Since ads are being inserted into the Table View now, any previous mapping to data in the model will be lost. Some quick math is necessary here to figure out how the rows in the Table View line up.&lt;/p&gt; &lt;pre class="prettyprint"&gt;&lt;br /&gt;  // Complete in cellForRowAtIndexPath: if not ad&lt;br /&gt;  &lt;br /&gt;  // Make sure we get all of the items from our model&lt;br /&gt;  row = row - floor((float)row/kFrequencyAdsInCells);&lt;br /&gt;  &lt;br /&gt;  cell.textLabel.text = [dataController_ objectInListAtIndex:row];&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;The methods &lt;a href="http://developer.apple.com/library/ios/#documentation/uikit/reference/UITableViewDataSource_Protocol/Reference/Reference.html "&gt;tableView:NumberOfRowsInSection:&lt;/a&gt; and &lt;a href="http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UITableViewDelegate_Protocol/Reference/Reference.html "&gt;tableView:heightForRowAtIndexPath:&lt;/a&gt; will need to be modified as well. The method tableView:NumberOfRowsInSection: would now return the number of elements (including ads in that number) and  tableView:heightForRowAtIndexPath: would return the height of an ad for every tenth cell, respectively.&lt;/p&gt; &lt;p&gt;If you have any questions about embedding ads within a UITableView, or even any questions about the SDK in general, feel free to post them in our &lt;a href="https://groups.google.com/forum/#!forum/google-admob-ads-sdk"&gt;forum&lt;/a&gt;. Keep an eye out for AdCatalog v2 for all kinds of advanced layouts options integrated in the project.&lt;/p&gt;  &lt;span class="post-author"&gt;&lt;a href="https://plus.google.com/102708799507737837368"&gt;&lt;img width="20" height="20" src="https://lh3.googleusercontent.com/-RonljIAjNbg/AAAAAAAAAAI/AAAAAAAAAps/nM93tw3iYSk/s200-c-k/photo.jpg?sz=20" style="vertical-align:middle; border:none;"&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href="https://plus.google.com/102708799507737837368" rel="author"&gt;Raj Parameswaran&lt;/a&gt;, AdMob Team&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-1610131341742643022?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/1610131341742643022" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/1610131341742643022" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2012/03/embedding-google-admob-ads-within.html" title="Embedding Google AdMob Ads Within A UITableView" /><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-2479021491273786424</id><published>2012-01-27T16:36:00.000-08:00</published><updated>2012-01-27T16:36:44.620-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mobile" /><category scheme="http://www.blogger.com/atom/ns#" term="admob_sdk" /><category scheme="http://www.blogger.com/atom/ns#" term="iOS" /><title type="text">Announcing AdCatalog v1 for iOS</title><content type="html">&lt;p&gt;We’re very pleased to announce the release of &lt;a href="http://code.google.com/p/google-mobile-dev/"&gt;AdCatalog&lt;/a&gt; v1 for the iOS platform.  AdCatalog is a sample project that demonstrates how to incorporate banner and interstitial ad units into your application.  In particular, AdCatalog showcases implementations for two standard banner ad sizes&amp;mdash;320x50 and 300x250&amp;mdash;and several use cases for interstitial ad units: basic, app launch splash screen, in-between game levels, and before playing a stored video.&lt;/p&gt; &lt;p&gt;AdCatalog can be downloaded as a zip from our &lt;a href="http://code.google.com/p/google-mobile-dev/downloads/list"&gt;google-mobile-dev&lt;/a&gt; project.  Additionally, feel free to clone the repository or examine the source from the &lt;a href="http://code.google.com/p/google-mobile-dev/source/checkout?repo=adcatalog-ios"&gt;checkout page&lt;/a&gt;.  In version 2, we’ll be looking to add even more advanced layout options to our banner scenario, so be sure to stay tuned.  As usual, if you have any questions, comments, concerns, or feature requests, we appreciate hearing the feedback on our &lt;a href="http://groups.google.com/group/google-admob-ads-sdk"&gt;developer forum&lt;/a&gt;.&lt;/p&gt;&lt;br&gt;&lt;span class="post-author"&gt;&lt;a href="https://plus.google.com/u/0/100951976559465900344" rel="author"&gt;&lt;img width="20" height="20" src="https://lh4.googleusercontent.com/-JJsLfLVCckY/AAAAAAAAAAI/AAAAAAABVog/oL3K4YTTcJA/photo.jpg?sz=20" style="vertical-align:middle; border:none;"&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href="https://plus.google.com/u/0/100951976559465900344" rel="author"&gt;Wes Goodman&lt;/a&gt;, AdMob Team&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-2479021491273786424?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/2479021491273786424" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/2479021491273786424" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2012/01/announcing-adcatalog-v1-for-ios.html" title="Announcing AdCatalog v1 for iOS" /><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/-JJsLfLVCckY/AAAAAAAAAAI/AAAAAAABVog/oL3K4YTTcJA/s72-c/photo.jpg?sz=20" height="72" width="72" /></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-2281589571084775261</id><published>2012-01-11T14:11:00.000-08:00</published><updated>2012-01-11T14:11:40.223-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mobile" /><category scheme="http://www.blogger.com/atom/ns#" term="admob_sdk" /><category scheme="http://www.blogger.com/atom/ns#" term="android" /><title type="text">Get Started with Ad Catalog for Android</title><content type="html">&lt;p&gt;Last quarter we &lt;a href="https://groups.google.com/forum/#!searchin/google-admob-ads-sdk/Ad$20catalog/google-admob-ads-sdk/tbnVEP6LoLU/fMXyzHzvFXIJ"&gt;announced&lt;/a&gt; the release of &lt;a href="http://code.google.com/p/google-mobile-dev/"&gt;Ad Catalog&lt;/a&gt; for Android, a sample project that demonstrates how to incorporate ads into your application using the &lt;a href="http://code.google.com/mobile/ads/"&gt;Google AdMob SDK&lt;/a&gt;.  Today, we are excited to announce the release of a &lt;a href="http://www.youtube.com/watch?v=-2x3uzpj9b8"&gt;walkthrough video&lt;/a&gt; to help you get started with Ad Catalog in five minutes!  This video will guide you through the entire setup process, from downloading the source code to running it on an emulator.  The only preconditions are that you have Eclipse installed as well as an Android SDK version 3.2 or higher.&lt;/p&gt; &lt;br/&gt;&lt;iframe width="560" height="315" src="http://www.youtube.com/embed/-2x3uzpj9b8" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br/&gt; &lt;p&gt;Ad Catalog shows you two implementations for standard banner ads.  You can select the size of the ad that is displayed on the Banners screen by selecting either the 320x50 standard banner ad or the 300x250 medium rectangle ad.&lt;/p&gt; &lt;p&gt;In addition to display ads, Ad Catalog demonstrates various use cases for interstitial ads.  Ad Catalog provides examples on how to include interstitial ads in between game levels, before loading a YouTube video, and in between a screen swipe.  There is also an option to receive a splash screen interstitial ad.  If enabled, the app will load and display an interstitial ad the next time it starts up.&lt;/p&gt; &lt;p&gt;The first version of the Android Ad Catalog source code can be downloaded from the &lt;a href="http://code.google.com/p/google-mobile-dev/downloads/list"&gt;google-mobile-dev&lt;/a&gt; project.  In the next version, we plan to add examples of banner ads in various advanced layouts.  The iOS implementation of Ad Catalog is almost complete, so stay tuned for another release announcement.  We appreciate your feedback, so please post any questions or feature requests you may have to our &lt;a href="https://groups.google.com/forum/#!forum/google-admob-ads-sdk"&gt;forum&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;span class="post-author"&gt;&lt;a href="https://plus.google.com/112870803958713211515/"&gt;&lt;img width="20" height="20" src="https://lh4.googleusercontent.com/-VjOdMVF5_qc/AAAAAAAAAAI/AAAAAAAAAB8/aYikCy7pZmw/photo.jpg?sz=20" style="vertical-align:middle; border:none;"&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href="https://plus.google.com/112870803958713211515/" rel="author"&gt;Eric Leichtenschlag&lt;/a&gt;, AdMob Team&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-2281589571084775261?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/2281589571084775261" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/2281589571084775261" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2012/01/get-started-with-ad-catalog-for-android.html" title="Get Started with Ad Catalog for Android" /><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/-2x3uzpj9b8/default.jpg" 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="adwhirl" /><category scheme="http://www.blogger.com/atom/ns#" term="mobile" /><category scheme="http://www.blogger.com/atom/ns#" term="admob_sdk" /><title type="text">AdMob and AdWhirl Refresh Rates - A Subtle but Important Difference</title><content type="html">&lt;p&gt;The &lt;a href="http://code.google.com/p/adwhirl/"&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's time to refresh, grabs a new ad on it'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="https://groups.google.com/forum/#!forum/adwhirl-users"&gt;forum&lt;/a&gt; for any questions regarding refresh rates.  You’re also welcome to attend one of our &lt;a href="http://googleadsdeveloper.blogspot.com/search/label/admob_sdk"&gt;office hours&lt;/a&gt; hangouts.&lt;/p&gt; &lt;p&gt;&lt;span class="post-author"&gt;&lt;a href="https://plus.google.com/112870803958713211515/"&gt;&lt;img width="20" height="20" src="https://lh4.googleusercontent.com/-VjOdMVF5_qc/AAAAAAAAAAI/AAAAAAAAAB8/aYikCy7pZmw/photo.jpg?sz=20" style="vertical-align:middle; border:none;"&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href="https://plus.google.com/112870803958713211515/" rel="author"&gt;Eric Leichtenschlag&lt;/a&gt;, AdMob Team&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-3750809328016180875?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/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://googleadsdeveloper.blogspot.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="http://img2.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-3934115252016169996</id><published>2011-12-22T12:07:00.000-08:00</published><updated>2011-12-22T13:20:03.293-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mobile" /><category scheme="http://www.blogger.com/atom/ns#" term="admob_sdk" /><category scheme="http://www.blogger.com/atom/ns#" term="iOS" /><title type="text">Incorporating Google AdMob ads into a Table View in iOS</title><content type="html">&lt;p&gt;Perfecting the look of your application is challenging, and incorporating ads into your application requires careful thinking. When using the AdMob SDK with &lt;a href="http://developer.apple.com/library/IOS/#documentation/UIKit/Reference/UITableView_Class/Reference/Reference.html"&gt;Table Views&lt;/a&gt; in iOS, a typical challenge is that ads do not stay docked properly to a certain position on the screen. This blog post outlines a simple solution to this common problem.&lt;/p&gt; &lt;br/&gt;&lt;b&gt;Challenge&lt;/b&gt; &lt;p&gt;Consider a simple application in which a &lt;a href="http://developer.apple.com/library/IOS/#documentation/UIKit/Reference/UITableViewController_Class/Reference/Reference.html "&gt;UITableViewController&lt;/a&gt; is used to handle a list mechanism. If this is the main top level view in the application, getting the ad to remain docked to the bottom or top of the view while the content scrolls is problematic. This is usually because the ad has been placed inside the &lt;a href="http://developer.apple.com/library/IOS/#documentation/UIKit/Reference/UITableView_Class/Reference/Reference.html "&gt;Table View&lt;/a&gt;.&lt;/p&gt; &lt;br/&gt;&lt;center&gt;&lt;a href="http://2.bp.blogspot.com/-7HPnl9Tp_CI/TvONU8892AI/AAAAAAAAAFg/cDSZpqRgy3E/s1600/Screen%2Bshot%2B2011-12-22%2Bat%2B12.03.43%2BPM.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="191" width="320" src="http://2.bp.blogspot.com/-7HPnl9Tp_CI/TvONU8892AI/AAAAAAAAAFg/cDSZpqRgy3E/s320/Screen%2Bshot%2B2011-12-22%2Bat%2B12.03.43%2BPM.png" /&gt;&lt;/a&gt;&lt;/center&gt;   &lt;br/&gt;&lt;b&gt;Solution&lt;/b&gt; &lt;p&gt;One way to dock the ad is to encompass the &lt;a href="http://developer.apple.com/library/IOS/#documentation/UIKit/Reference/UITableView_Class/Reference/Reference.html "&gt;Table View&lt;/a&gt; into a container view (e.g.  a &lt;a href="http://developer.apple.com/library/ios/#documentation/uikit/reference/UIView_Class/UIView/UIView.html "&gt;UIView&lt;/a&gt;). This way, instead of inserting the ad into the &lt;a href="http://developer.apple.com/library/IOS/#documentation/UIKit/Reference/UITableView_Class/Reference/Reference.html "&gt;Table View&lt;/a&gt; as a subview, it’s inserted into the encompassing container view (as a sibling of the &lt;a href="http://developer.apple.com/library/IOS/#documentation/UIKit/Reference/UITableView_Class/Reference/Reference.html "&gt;Table View&lt;/a&gt;). Here is an example of the code snippet in the header file:&lt;/p&gt; &lt;pre class="prettyprint"&gt;&lt;br /&gt;@interface AdsOutOfTableView : UIViewController&lt;GADBannerViewDelegate&gt;  {&lt;br /&gt;@private&lt;br /&gt; UITableView *tableView_;&lt;br /&gt; //Other private variables here&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;@property(nonatomic,retain) IBOutlet UITableView *tableView;&lt;br /&gt;@end&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;As shown in this &lt;a href="http://code.google.com/mobile/ads/docs/ios/fundamentals.html#addbannerview "&gt;example&lt;/a&gt;, the GADBannerView is initialized with a frame that has an origin at the bottom of the screen.&lt;/p&gt; &lt;p&gt;Now when the ad is received, it should be added into the container view, and the size of the &lt;a href="http://developer.apple.com/library/IOS/#documentation/UIKit/Reference/UITableView_Class/Reference/Reference.html"&gt;Table View&lt;/a&gt; should be modified accordingly. The height of the &lt;a href="http://developer.apple.com/library/IOS/#documentation/UIKit/Reference/UITableView_Class/Reference/Reference.html"&gt;Table View&lt;/a&gt;'s frame cannot be modified directly, but this can be done using an intermediate frame as shown below.&lt;/p&gt; &lt;pre class="prettyprint"&gt;&lt;br /&gt;-(void)resizeTable&lt;br /&gt;{&lt;br /&gt; CGRect tableFrame = tableView_.frame;&lt;br /&gt; tableFrame.size.height = tableFrame.size.height -&lt;br /&gt;       bannerView_.frame.size.height;&lt;br /&gt;&lt;br /&gt; tableView_.frame = tableFrame;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;Now, no matter how much the &lt;a href="http://developer.apple.com/library/IOS/#documentation/UIKit/Reference/UITableView_Class/Reference/Reference.html "&gt;Table View&lt;/a&gt; is scrolled, the &lt;a href="http://code.google.com/mobile/ads/docs/ios/fundamentals.html#addbannerview "&gt;GADBannerView&lt;/a&gt; stays docked to the bottom of the screen.&lt;/p&gt; &lt;p&gt;Alternatively, keeping the ad docked to the top of the &lt;a href="http://developer.apple.com/library/IOS/#documentation/UIKit/Reference/UITableView_Class/Reference/Reference.html "&gt;Table View&lt;/a&gt; is very similar to the situation shown above. The only difference is that the &lt;a href="http://code.google.com/mobile/ads/docs/ios/fundamentals.html#addbannerview"&gt;GADBannerView&lt;/a&gt; must be created and drawn at the top of the screen. The resizeTable: method now also has to to shift itself down by the height of the ad:&lt;/p&gt; &lt;pre class="prettyprint"&gt;&lt;br /&gt; CGRect tableFrame = tableView_.frame;&lt;br /&gt;&lt;br /&gt; tableFrame.size.height = tableFrame.size.height -&lt;br /&gt;         bannerView_.frame.size.height;&lt;br /&gt; tableFrame.origin.y = bannerView_.frame.size.height;&lt;br /&gt; tableView_.frame = tableFrame;&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;With those minor tweaks, you will have ads set up correctly alongside your &lt;a href="http://developer.apple.com/library/IOS/#documentation/UIKit/Reference/UITableView_Class/Reference/Reference.html"&gt;Table View&lt;/a&gt;! If you have any questions about this or any other SDK topics, feel free to post them in our &lt;a href="https://groups.google.com/forum/#!forum/google-admob-ads-sdk"&gt;forum&lt;/a&gt;. &lt;/p&gt;&lt;br/&gt; &lt;span class="post-author"&gt;&lt;a href="https://plus.google.com/102708799507737837368"&gt;&lt;img width="20" height="20" src="https://lh3.googleusercontent.com/-RonljIAjNbg/AAAAAAAAAAI/AAAAAAAAAps/nM93tw3iYSk/s200-c-k/photo.jpg?sz=20" style="vertical-align:middle; border:none;"&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href="https://plus.google.com/102708799507737837368" rel="author"&gt;Raj Parameswaran&lt;/a&gt;, AdMob Team&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-3934115252016169996?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/3934115252016169996" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/3934115252016169996" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2011/12/incorporating-google-admob-ads-into.html" title="Incorporating Google AdMob ads into a Table View in iOS" /><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://2.bp.blogspot.com/-7HPnl9Tp_CI/TvONU8892AI/AAAAAAAAAFg/cDSZpqRgy3E/s72-c/Screen%2Bshot%2B2011-12-22%2Bat%2B12.03.43%2BPM.png" height="72" width="72" /></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-104120910099774031</id><published>2011-12-20T14:55:00.000-08:00</published><updated>2011-12-20T14:55:07.553-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mobile" /><category scheme="http://www.blogger.com/atom/ns#" term="animation" /><category scheme="http://www.blogger.com/atom/ns#" term="admob_sdk" /><category scheme="http://www.blogger.com/atom/ns#" term="iOS" /><title type="text">Animating Banner Ads in AdMob SDK for iOS</title><content type="html">&lt;p&gt;Adding animations to banner ads can provide a nice touch to how the ad transitions onto the screen. This blog post will show you how to animate an AdMob banner on iOS.&lt;/p&gt; &lt;p&gt;We will specifically focus on &lt;a href="http://developer.apple.com/library/ios/#documentation/uikit/reference/uiview_class/uiview/uiview.html "&gt;block-based animation methods&lt;/a&gt; which were introduced in iOS 4. If you’re using an older version of iOS, you can achieve the same effect using the &lt;a href="http://developer.apple.com/library/ios/#documentation/uikit/reference/UIView_Class/UIView/UIView.html"&gt;beginAnimations:context:&lt;/a&gt; and &lt;a href="http://developer.apple.com/library/ios/#documentation/uikit/reference/UIView_Class/UIView/UIView.html"&gt;commitAnimations:&lt;/a&gt; class methods in &lt;a href="tp://developer.apple.com/library/ios/#documentation/uikit/reference/UIView_Class/UIView/UIView.html "&gt;UIView&lt;/a&gt;.&lt;/p&gt; &lt;br/&gt;&lt;b&gt;Sliding a banner up onto the screen&lt;/b&gt; &lt;p&gt;The key to animating banners is changing one of the animatable properties in &lt;a href="http://developer.apple.com/library/ios/#documentation/uikit/reference/UIView_Class/UIView/UIView.html "&gt;UIView&lt;/a&gt; across a certain period of time. iOS will then choose how to animate the AdMob banner across this specified time using its internal logic along with any options that have been specified. Let’s look at how to animate a banner to slide up onto the application’s screen. &lt;/p&gt; &lt;p&gt;First, the AdMob banner is initialized with a frame outside of the bounds of the screen (specifically underneath the bottom of the screen). Once the ad is received, it can be animated upwards through its height. Since the banner is sliding up and onto the screen, only the y-coordinate will change during animation. The code for initializing the banner is shown below.&lt;/p&gt; &lt;pre class="prettyprint"&gt;&lt;br /&gt;// Initialize the banner off of the screen&lt;br /&gt;self.adBanner = [[[GADBannerView alloc]    &lt;br /&gt;  initWithFrame:CGRectMake(0.0, &lt;br /&gt;                           self.view.frame.size.height,    &lt;br /&gt;                           GAD_SIZE_320x50.width,&lt;br /&gt;                           GAD_SIZE_320x50.height)] autorelease];&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;The next step is to implement &lt;a href="http://code.google.com/mobile/ads/docs/ios/intermediate.html "&gt;adViewDidReceiveAd:&lt;/a&gt; to set the final frame for the AdMob banner and tell iOS to animate across the two values using the &lt;a href="http://developer.apple.com/library/ios/#documentation/uikit/reference/uiview_class/uiview/uiview.html"&gt;animateWithDuration:animations:&lt;/a&gt; method. &lt;/p&gt; &lt;pre class="prettyprint"&gt;&lt;br /&gt;- (void)adViewDidReceiveAd:(GADBannerView *)adView {&lt;br /&gt;&lt;br /&gt;  [UIView animateWithDuration:1.0 animations:^ {&lt;br /&gt;    // Final frame of ad should be docked to bottom of screen&lt;br /&gt;    adView.frame = CGRectMake(0.0,&lt;br /&gt;                              self.view.frame.size.height -&lt;br /&gt;                              adView.frame.size.height,&lt;br /&gt;                              adView.frame.size.width,&lt;br /&gt;                              adView.frame.size.height);&lt;br /&gt;  &lt;br /&gt;  }];&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;It’s as easy as that! Now, instead of instantly appearing on the screen, the banner ad gracefully slides up in the application using animation.&lt;/p&gt; &lt;br/&gt;&lt;center&gt;&lt;a href="http://2.bp.blogspot.com/-23YwcQCTuDk/TvEP53kzv4I/AAAAAAAAAFU/dIN9DY-ufm8/s1600/Screen%2Bshot%2B2011-12-20%2Bat%2B2.43.51%2BPM.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="194" width="320" src="http://2.bp.blogspot.com/-23YwcQCTuDk/TvEP53kzv4I/AAAAAAAAAFU/dIN9DY-ufm8/s320/Screen%2Bshot%2B2011-12-20%2Bat%2B2.43.51%2BPM.png" /&gt;&lt;/a&gt;&lt;/center&gt;  &lt;br/&gt;&lt;b&gt;Customized animations&lt;/b&gt; &lt;p&gt;You can experiment with other animatable properties of &lt;a href="http://developer.apple.com/library/ios/#documentation/uikit/reference/UIView_Class/UIView/UIView.html"&gt;UIView&lt;/a&gt; as well. For example, try sliding the banner onto the screen from left to right by changing the initial frame to the left of the screen instead of beneath it. If you want to get even more creative, try experimenting with the &lt;a href="http://developer.apple.com/library/ios/#documentation/uikit/reference/UIView_Class/UIView/UIView.html"&gt;Core Animation&lt;/a&gt; classes. These classes give you powerful animation functionality and allow you to  customize keyframe and timing functions. &lt;/p&gt; &lt;p&gt;Pro tip: Be thoughtful about where and how you’re going to use animations. It’s easy to go overboard.&lt;/p&gt; &lt;p&gt;If you have any questions about animations on iOS or about the AdMob SDK in general, feel free to post them in our &lt;a href="https://groups.google.com/forum/#!forum/google-admob-ads-sdk"&gt;forum&lt;/a&gt;. Have fun animating!&lt;/p&gt; &lt;br/&gt;&lt;span class="post-author"&gt;&lt;a href="https://plus.google.com/102708799507737837368/"&gt;&lt;img width="20" height="20" src="https://lh3.googleusercontent.com/-RonljIAjNbg/AAAAAAAAAAI/AAAAAAAAAps/nM93tw3iYSk/photo.jpg?sz=20" style="vertical-align:middle; border:none;"&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href="https://plus.google.com/102708799507737837368/" rel="author"&gt;Raj Parameswaran&lt;/a&gt;, AdMob Team&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-104120910099774031?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/104120910099774031" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/104120910099774031" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2011/12/animating-banner-ads-in-admob-sdk-for.html" title="Animating Banner Ads in AdMob SDK for iOS" /><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://2.bp.blogspot.com/-23YwcQCTuDk/TvEP53kzv4I/AAAAAAAAAFU/dIN9DY-ufm8/s72-c/Screen%2Bshot%2B2011-12-20%2Bat%2B2.43.51%2BPM.png" height="72" width="72" /></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-3735202540609016306</id><published>2011-12-15T11:15:00.001-08:00</published><updated>2011-12-15T11:31:32.217-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mobile" /><category scheme="http://www.blogger.com/atom/ns#" term="iOS" /><category scheme="http://www.blogger.com/atom/ns#" term="analytics" /><category scheme="http://www.blogger.com/atom/ns#" term="android" /><title type="text">Google Analytics Enhancements for Mobile Apps</title><content type="html">&lt;p&gt;Yesterday, the Google Analytics team &lt;a href="http://analytics.blogspot.com/2011/12/google-analytics-enhancements-for.html"&gt;posted&lt;/a&gt; some exciting new enhancements to the Google Analytics SDK: &lt;ul&gt;&lt;li&gt;&lt;b&gt;EasyTracking Library&lt;/b&gt; - EasyTracker libraries for both iOS and Android enable tracking of your application down to the Activity (or UIViewController for iOS) level with almost no coding required on your part.  Additionally, improved integration with the Google Analytics SDK means better responsiveness on iOS as well as automatic session management on both platforms.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Updated Google Analytics SDK&lt;/b&gt; - Newly released iOS version 1.4 and Android version 1.4.2 contain several bug fixes, including more reliable methods for sending hits on iOS and a fix for the Android Market referral issue.&lt;/li&gt;&lt;li&gt;&lt;b&gt;More samples&lt;/b&gt; - New open source application aimed to help reduce the ramp-up time for new developers who want to track their apps. This application exercises all the Google Analytics APIs that are available to mobile application developers.  You can find them at &lt;a href="http://code.google.com/p/analytics-api-samples/source/browse/#svn%2Ftrunk%2Fsrc%2Ftracking%2Fmobile "&gt;trunk/src/tracking/mobile&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt; &lt;p&gt;To read more, check out the &lt;a href="http://analytics.blogspot.com/2011/12/google-analytics-enhancements-for.html"&gt;full post&lt;/a&gt; on the &lt;a href="http://analytics.blogspot.com/ "&gt;Google Analytics Blog&lt;/a&gt;.&lt;/p&gt; &lt;br /&gt;&lt;span class="post-author"&gt;&amp;nbsp;-&amp;nbsp;Jim Cotugno, Mobile Application Tracking Rockstar&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-3735202540609016306?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/3735202540609016306" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/3735202540609016306" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2011/12/google-analytics-enhancements-for.html" title="Google Analytics Enhancements for Mobile Apps" /><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-3078253445712191571</id><published>2011-12-07T17:11:00.001-08:00</published><updated>2011-12-08T14:54:18.723-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mobile" /><category scheme="http://www.blogger.com/atom/ns#" term="android_layout" /><category scheme="http://www.blogger.com/atom/ns#" term="admob_v4.3.1" /><category scheme="http://www.blogger.com/atom/ns#" term="admob_sdk" /><category scheme="http://www.blogger.com/atom/ns#" term="android" /><title type="text">Incorporating Android AdMob Ads Into A Scrollable View</title><content type="html">&lt;p&gt;The &lt;a href="http://code.google.com/mobile/ads/"&gt;Google AdMob SDK&lt;/a&gt; makes it easy to serve AdMob ads and monetize your mobile applications.  If your app contains a &lt;a href="http://developer.android.com/reference/android/widget/ScrollView.html"&gt;ScrollView&lt;/a&gt;, the placement of the ad in your layout can be tricky.  In this post, we will discuss the best practice for adding AdMob ads to scrollable content.&lt;/p&gt; &lt;p&gt;Consider the following XML snippet (XML attributes omitted for brevity):&lt;/p&gt;&lt;pre class="prettyprint"&gt;&lt;br /&gt;&amp;lt;ScrollView&amp;gt;&lt;br /&gt;   &amp;lt;LinearLayout&amp;gt;&lt;br /&gt;    &amp;lt;TextView android:text="Place very long string here..."/&amp;gt;&lt;br /&gt;      &amp;lt;/LinearLayout&amp;gt;&lt;br /&gt;&amp;lt;/ScrollView&amp;gt;&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;Let’s say we want to place an ad in this layout.  Defining an &lt;a href="http://code.google.com/mobile/ads/docs/android/banner_xml.html"&gt;AdView in XML&lt;/a&gt; is pretty straightforward with the Google AdMob SDK:&lt;/p&gt; &lt;pre class="prettyprint"&gt;&lt;br /&gt;&amp;lt;com.google.ads.AdView&lt;br /&gt;    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"&lt;br /&gt;    android:id="@+id/adView"&lt;br /&gt;    android:layout_width="wrap_content"&lt;br /&gt;    android:layout_height="wrap_content"&lt;br /&gt;    ads:adUnitId="INSERT_YOUR_AD_UNIT_ID_HERE"&lt;br /&gt;    ads:adSize="BANNER"&lt;br /&gt;    ads:testDevices="TEST_EMULATOR"&lt;br /&gt;    ads:loadAdOnCreate="true"/&amp;gt;&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;Now we have to determine where to insert the &lt;code&gt;AdView&lt;/code&gt; in the layout.  If we were to insert the &lt;code&gt;AdView&lt;/code&gt; inside the &lt;a href="http://developer.android.com/reference/android/widget/LinearLayout.html"&gt;LinearLayout&lt;/a&gt; after the &lt;a href="http://developer.android.com/reference/android/widget/TextView.html"&gt;TextView&lt;/a&gt;, the ad would be displayed at the bottom of the &lt;code&gt;ScrollView&lt;/code&gt;.&lt;/p&gt;&lt;br&gt; &lt;center&gt;&lt;a href="http://3.bp.blogspot.com/-yuI8-3mMuOI/TuAUxEnQaWI/AAAAAAAAAD0/k8CKAznwHLU/s1600/AdsInsideScrollView.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="303" width="400" src="http://3.bp.blogspot.com/-yuI8-3mMuOI/TuAUxEnQaWI/AAAAAAAAAD0/k8CKAznwHLU/s400/AdsInsideScrollView.png" /&gt;&lt;/a&gt;&lt;/center&gt; &lt;p&gt;This is a poor ad placement from the user's perspective.  Depending on the length of the app content, the ad either sits awkwardly somewhere in the middle of the screen or is hidden at the bottom of the &lt;code&gt;ScrollView&lt;/code&gt;.&lt;/p&gt; &lt;p&gt;To improve the user experience, we can move the ad outside the &lt;code&gt;ScrollView&lt;/code&gt; and use a &lt;a href="http://developer.android.com/reference/android/widget/RelativeLayout.html"&gt;RelativeLayout&lt;/a&gt; to pin the ad to the bottom of the screen.  This is the needed XML markup:&lt;/p&gt; &lt;pre class="prettyprint"&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;br /&gt;&amp;lt;&lt;b&gt;RelativeLayout&lt;/b&gt;&lt;br /&gt;    xmlns:android="http://schemas.android.com/apk/res/android"&lt;br /&gt;    android:orientation="vertical"&lt;br /&gt;    android:layout_width="fill_parent"&lt;br /&gt;    android:layout_height="fill_parent"&amp;gt;&lt;br /&gt;    &amp;lt;ScrollView android:id="@+id/scrollLayout"&lt;br /&gt;        android:layout_height="fill_parent"&lt;br /&gt;        android:layout_width="fill_parent"&lt;br /&gt;        &lt;b&gt;android:layout_above="@+id/adView"&lt;/b&gt;&amp;gt;&lt;br /&gt;        &amp;lt;LinearLayout android:layout_height="fill_parent"&lt;br /&gt;            android:layout_width="fill_parent"&amp;gt;&lt;br /&gt;            &amp;lt;TextView android:layout_height="wrap_content"&lt;br /&gt;                android:layout_width="wrap_content"&lt;br /&gt;                android:text="Place very long string here..."/&amp;gt;&lt;br /&gt;        &amp;lt;/LinearLayout&amp;gt;&lt;br /&gt;    &amp;lt;/ScrollView&amp;gt;&lt;br /&gt;    &amp;lt;com.google.ads.AdView&lt;br /&gt;        xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"&lt;br /&gt;        android:id="@id/adView"&lt;br /&gt;        android:layout_width="wrap_content"&lt;br /&gt;        android:layout_height="wrap_content"&lt;br /&gt;        &lt;b&gt;android:layout_alignParentBottom="true"&lt;/b&gt;&lt;br /&gt;        ads:adUnitId="INSERT_YOUR_AD_UNIT_ID_HERE"&lt;br /&gt;        ads:adSize="BANNER"&lt;br /&gt;        ads:testDevices="TEST_EMULATOR"&lt;br /&gt;        ads:loadAdOnCreate="true"/&amp;gt;&lt;br /&gt;&amp;lt;/RelativeLayout&amp;gt;&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;The &lt;code&gt;layout_alignParentBottom&lt;/code&gt; attribute pins the &lt;code&gt;AdView&lt;/code&gt; to the bottom of the screen and the &lt;code&gt;android:layout_above&lt;/code&gt; attribute sets the &lt;code&gt;ScrollView&lt;/code&gt; above the &lt;code&gt;AdView&lt;/code&gt;.  If the &lt;code&gt;ScrollView&lt;/code&gt; is not explicitly set to sit above the &lt;code&gt;AdView&lt;/code&gt;, the ad will overlay the bottom of the &lt;code&gt;ScrollView&lt;/code&gt;.  Let’s see what the final result looks like.&lt;/p&gt;&lt;br&gt; &lt;center&gt;&lt;a href="http://2.bp.blogspot.com/-JhSeZI0Wy1w/TuAW-6bEtNI/AAAAAAAAAEA/SsVGJXJhQ2s/s1600/AdsOutsideScrollView.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="303" width="400" src="http://2.bp.blogspot.com/-JhSeZI0Wy1w/TuAW-6bEtNI/AAAAAAAAAEA/SsVGJXJhQ2s/s400/AdsOutsideScrollView.png" /&gt;&lt;/a&gt;&lt;/center&gt; &lt;p&gt;This layout looks much cleaner! The ad is displayed at the bottom of the screen and will stay locked to the bottom as we scroll through the app content, providing a more natural user experience.&lt;/p&gt; &lt;p&gt;If you have questions about this post or about the AdMob SDK, feel free to ask us in the &lt;a href="https://groups.google.com/forum/#!forum/google-admob-ads-sdk"&gt;forum&lt;/a&gt; or join us at our upcoming &lt;a href="https://developers.google.com/events/ahNzfmdvb2dsZS1kZXZlbG9wZXJzcg0LEgVFdmVudBicyA8M/"&gt;office hours Hangout&lt;/a&gt; session. Start monetizing your mobile applications today!&lt;/p&gt;&lt;br&gt; &lt;span class="post-author"&gt;&lt;a href="https://plus.google.com/112870803958713211515/"&gt;&lt;img width="20" height="20" src="https://lh4.googleusercontent.com/-VjOdMVF5_qc/AAAAAAAAAAI/AAAAAAAAAB8/aYikCy7pZmw/photo.jpg?sz=20" style="vertical-align:middle; border:none;"&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href="https://plus.google.com/112870803958713211515/" rel="author"&gt;Eric Leichtenschlag&lt;/a&gt;, AdMob Team&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-3078253445712191571?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/3078253445712191571" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/3078253445712191571" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2011/12/incorporating-android-admob-ads-into.html" title="Incorporating Android AdMob Ads Into A Scrollable View" /><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/-yuI8-3mMuOI/TuAUxEnQaWI/AAAAAAAAAD0/k8CKAznwHLU/s72-c/AdsInsideScrollView.png" height="72" width="72" /></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-7651666165521857984</id><published>2011-12-06T16:37:00.001-08:00</published><updated>2011-12-06T17:22:57.480-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mobile" /><category scheme="http://www.blogger.com/atom/ns#" term="admob_sdk" /><category scheme="http://www.blogger.com/atom/ns#" term="hangout" /><title type="text">Come Hangout With The AdMob SDK Team</title><content type="html">&lt;p&gt;Mobile developers--let’s Hangout!  We have been answering your questions on the AdMob &lt;a href="https://groups.google.com/forum/#!forum/google-admob-ads-sdk"&gt;forum&lt;/a&gt;, but we want to take support to another level. That’s why we are excited to announce our first &lt;a href="http://www.google.com/support/plus/bin/static.py?page=guide.cs&amp;amp;guide=1257349"&gt;Google+ Hangout&lt;/a&gt; Office hours on &lt;a href="https://developers.google.com/events/ahNzfmdvb2dsZS1kZXZlbG9wZXJzcg0LEgVFdmVudBicyA8M/"&gt;December 14th at 5pm Eastern (2pm Pacific)&lt;/a&gt;. We are looking forward to leveraging this technology to connect with you in a way we haven’t been able to before.&lt;/p&gt;&lt;br/&gt; &lt;center&gt;&lt;a href="http://3.bp.blogspot.com/-vtIpLMQYpbs/Tt66j5mzVoI/AAAAAAAAADE/k-_pUWIEFls/s1600/AdMobOfficeHours_ScreenShotPng3.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="224" width="320" src="http://3.bp.blogspot.com/-vtIpLMQYpbs/Tt66j5mzVoI/AAAAAAAAADE/k-_pUWIEFls/s320/AdMobOfficeHours_ScreenShotPng3.png" /&gt;&lt;/a&gt;&lt;/center&gt; &lt;p&gt;With the recent upgrade to both the Android and iOS SDKs, there should be plenty to discuss. We’ll be on hand to answer any technical questions you may have or take in your feedback. If you’ve got a brain teaser of a question, please add it to this &lt;a href="https://groups.google.com/forum/#!topic/google-admob-ads-sdk/aelYHtVvPpo"&gt;forum post&lt;/a&gt; ahead of time so we can make sure to get you an answer.&lt;/p&gt; &lt;p&gt;You will need 3 things to Hangout with us: &lt;ol&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;/ol&gt;&lt;/p&gt; &lt;p&gt;Please let us know if you’re planning on attending by clicking the “I’ll be there” button on our &lt;a href="https://developers.google.com/events/ahNzfmdvb2dsZS1kZXZlbG9wZXJzcg0LEgVFdmVudBicyA8M/"&gt;event page&lt;/a&gt;. Hangouts are limited to 10 people at a time, so if you can’t get in right away please try again later in the hour. For more information about Hangouts, visit the &lt;a href="http://www.google.com/support/plus/bin/static.py?page=guide.cs&amp;amp;guide=1257349"&gt;Google+ Help Center&lt;/a&gt;. We look forward to seeing you soon, but until then feel free to post any questions you may have in our &lt;a href="https://groups.google.com/forum/#!forum/google-admob-ads-sdk"&gt;forum&lt;/a&gt;.&lt;/p&gt;&lt;br/&gt; &lt;span class="post-author"&gt;&lt;a href="https://plus.google.com/102708799507737837368/"&gt;&lt;img height="20" src="https://lh3.googleusercontent.com/-RonljIAjNbg/AAAAAAAAAAI/AAAAAAAAAps/nM93tw3iYSk/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/102708799507737837368/" rel="author"&gt;Raj Parameswaran&lt;/a&gt;, AdMob Team&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-7651666165521857984?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/7651666165521857984" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/7651666165521857984" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2011/12/come-hangout-with-admob-sdk-team.html" title="Come Hangout With The AdMob SDK Team" /><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/-vtIpLMQYpbs/Tt66j5mzVoI/AAAAAAAAADE/k-_pUWIEFls/s72-c/AdMobOfficeHours_ScreenShotPng3.png" 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_v3.1.1" /><category scheme="http://www.blogger.com/atom/ns#" term="adwhirl" /><category scheme="http://www.blogger.com/atom/ns#" term="mobile" /><category scheme="http://www.blogger.com/atom/ns#" term="iOS" /><category scheme="http://www.blogger.com/atom/ns#" term="android" /><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="http://www.adwhirl.com/"&gt;AdWhirl&lt;/a&gt; v3.1.1 for both Android and iOS platforms.  This update heralds support for the &lt;a href="http://www.nexage.com/"&gt;Nexage&lt;/a&gt; ad network and includes refreshed adapters for &lt;a href="http://www.millennialmedia.com/"&gt;Millennial Media&lt;/a&gt;, &lt;a href="http://www.inmobi.com/"&gt;InMobi&lt;/a&gt;, and &lt;a href="http://www.admob.com/"&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="http://code.google.com/p/adwhirl/issues/detail?id=118"&gt;Issue 118&lt;/a&gt;]&lt;/li&gt;&lt;li&gt;(iOS) Null dereference error [&lt;a href="http://code.google.com/p/adwhirl/issues/detail?id=179"&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="http://code.google.com/p/adwhirl/issues/detail?id=221"&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="http://code.google.com/p/adwhirl/downloads/list"&gt;downloads&lt;/a&gt; page.  As always, holler at us on the &lt;a href="http://groups.google.com/group/adwhirl-users/"&gt;forum&lt;/a&gt; if you encounter any issues.&lt;/p&gt;&lt;br /&gt;&lt;span class="post-author"&gt;&lt;a href="https://plus.google.com/u/0/100951976559465900344"&gt;&lt;img width="20" height="20" src="https://lh4.googleusercontent.com/-JJsLfLVCckY/AAAAAAAAAAI/AAAAAAABVog/oL3K4YTTcJA/photo.jpg?sz=20" style="vertical-align:middle; border:none;"&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href="https://plus.google.com/u/0/100951976559465900344" rel="author"&gt;Wes Goodman&lt;/a&gt;, AdMob Team&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-2718060154747491266?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/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://googleadsdeveloper.blogspot.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="http://img2.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-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-3094450225478737176</id><published>2011-11-30T17:28:00.000-08:00</published><updated>2011-11-30T20:16:07.617-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mobile" /><category scheme="http://www.blogger.com/atom/ns#" term="admob_sdk" /><category scheme="http://www.blogger.com/atom/ns#" term="iOS" /><category scheme="http://www.blogger.com/atom/ns#" term="admob_v5.0.5" /><title type="text">AdMob iOS SDK v5.0.5 Released: Taking Interstitials To The Next Level</title><content type="html">&lt;p&gt;Today, we are releasing AdMob iOS SDK v5.0.5 (&lt;a href="http://code.google.com/mobile/ads/download.html "&gt;download here&lt;/a&gt;). This SDK contains some &lt;a href="http://code.google.com/mobile/ads/docs/rel-notes.html"&gt;important improvements&lt;/a&gt; to how the AdMob SDK supports interstitial ads.&lt;/p&gt;&lt;p&gt;In this release, we have added support for additional Rich Media interstitial ad formats for the iPhone and iPad. This update will be forward-compatible with all future interstitial formats. Be sure to get this update if your app relies on interstitial ads because after March 1, 2012, interstitial ads will not be supported on older versions of the SDK.&lt;/p&gt;&lt;p&gt;In addition to improved support for interstitial ads, this release contains two other noteworthy improvements. First, we have increased the accuracy of impression tracking for interstitial ads. Secondly, you’ll now receive the error message &lt;code&gt;didFailToReceiveWithError:&lt;/code&gt; if you make any additional requests (after the initial request) from a single &lt;a href="http://code.google.com/mobile/ads/docs/ios/advanced.html"&gt;GADInterstitial&lt;/a&gt; object.&lt;/p&gt;&lt;p&gt;If you have any questions please post them in our &lt;a href="https://groups.google.com/forum/#!forum/google-admob-ads-sdk"&gt;forum&lt;/a&gt;.  Otherwise, check out &lt;a href="http://code.google.com/mobile/ads/download.html"&gt;AdMob iOS SDK v5.0.5&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;span class="post-author"&gt;&lt;a href="https://plus.google.com/102708799507737837368"&gt;&lt;img width="20" height="20" src="https://lh3.googleusercontent.com/-RonljIAjNbg/AAAAAAAAAAI/AAAAAAAAAps/nM93tw3iYSk/photo.jpg?sz=20" style="vertical-align:middle; border:none;"&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href="https://plus.google.com/102708799507737837368" rel="author"&gt;Raj Parameswaran&lt;/a&gt;, AdMob Team&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-3094450225478737176?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/3094450225478737176" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/3094450225478737176" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2011/11/admob-ios-sdk-v505-released-taking.html" title="AdMob iOS SDK v5.0.5 Released: Taking Interstitials To The Next Level" /><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/-RonljIAjNbg/AAAAAAAAAAI/AAAAAAAAAps/nM93tw3iYSk/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-8233606637671327091</id><published>2011-11-22T10:28:00.000-08:00</published><updated>2011-11-23T10:28:00.197-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mobile" /><category scheme="http://www.blogger.com/atom/ns#" term="admob_v4.3.1" /><category scheme="http://www.blogger.com/atom/ns#" term="admob_sdk" /><category scheme="http://www.blogger.com/atom/ns#" term="android" /><title type="text">Migrating to v4.3.1 of AdMob SDK for Android</title><content type="html">&lt;p&gt;We’ve seen a lot of forum activity about how to migrate from v4.1.1 to v4.3.1 of the Google AdMob Ads SDK for Android, so we’d like to share three easy steps to get you up and running with the latest version.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;The first step to migrating is &lt;a href="http://code.google.com/mobile/ads/download.html"&gt;downloading the AdMob SDK&lt;/a&gt; and adding it to your build path.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;You will need to have an &lt;a href="http://developer.android.com/sdk/index.html"&gt;Android SDK&lt;/a&gt; of 3.2 or higher.  Once you have a compatible version, set &lt;code&gt;target=android-13&lt;/code&gt; or higher in your &lt;code&gt;project.properties&lt;/code&gt; file of your application to compile against the version you just downloaded.&lt;br /&gt;&lt;p&gt;Don’t worry, you can still build your apps on all Android devices down to Android 1.5!  Just set &lt;code&gt;&amp;lt;uses-sdk android:minSdkVersion="3"/&amp;gt;&lt;/code&gt; in your &lt;code&gt;AndroidManifest.xml&lt;/code&gt; file.  You can read more about the &lt;a href="http://developer.android.com/guide/topics/manifest/uses-sdk-element.html"&gt;uses-sdk element&lt;/a&gt; to help you configure the appropriate devices for your app.&lt;/p&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Finally, replace the old &lt;code&gt;com.google.ads.AdActivity&lt;/code&gt; element in your manifest with this new definition:&lt;br /&gt;&lt;pre class="prettyprint"&gt;&amp;lt;activity android:name="com.google.ads.AdActivity"&lt;br /&gt;android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/&amp;gt;&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;That’s it!  You should now be able to run your application using the latest SDK without any errors.  Please post to our &lt;a href="https://groups.google.com/forum/#!forum/google-admob-ads-sdk"&gt;forum&lt;/a&gt; if you have any questions about the migration.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="post-author"&gt;&lt;a href="https://plus.google.com/112870803958713211515/"&gt;&lt;img width="20" height="20" src="https://lh4.googleusercontent.com/-VjOdMVF5_qc/AAAAAAAAAAI/AAAAAAAAAB8/aYikCy7pZmw/photo.jpg?sz=20" style="vertical-align: middle; border: none;"&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href="https://plus.google.com/112870803958713211515/" rel="author"&gt;Eric Leichtenschlag&lt;/a&gt;, Mobile Ads Developer Relations Team&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-8233606637671327091?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/8233606637671327091" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/8233606637671327091" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2011/11/migrating-to-v431-of-admob-sdk-for.html" title="Migrating to v4.3.1 of AdMob SDK for Android" /><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/-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-7372934172445993697</id><published>2011-11-21T05:27:00.001-08:00</published><updated>2011-11-21T07:54:45.843-08: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="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">Welcome to the new Google Ads Developer blog!</title><content type="html">Welcome to the new Google Ads Developer blog, your one-stop shop for all ads developer related news, tips, and tricks. We've combined several blogs to create this central hub, so you can find information on AdWords, AdSense, DoubleClick and AdMob APIs and SDKs.&lt;br&gt;&lt;br&gt; If you prefer to subscribe to a particular label, you can do so by clicking on the following feeds: &lt;a href="http://feeds.feedburner.com/blogspot/lQlzL"&gt;adwords_api&lt;/a&gt;, &lt;a href="http://feeds.feedburner.com/blogspot/IZsQp"&gt;adsense_api&lt;/a&gt;, &lt;a href="http://feeds.feedburner.com/blogspot/BgIHu"&gt;dfp_api&lt;/a&gt;, &lt;a href="http://feeds.feedburner.com/blogspot/JnFNG"&gt;dfa_api&lt;/a&gt;, &lt;a href="http://feeds.feedburner.com/blogspot/LTiVe"&gt;admob_sdk&lt;/a&gt;, and &lt;a href="http://feeds.feedburner.com/blogspot/VhQUB"&gt;mobile&lt;/a&gt;. Thanks for stopping by, and please check back frequently for all ads developer news.&lt;br&gt;&lt;br&gt; &lt;span class='post-author'&gt;--&lt;a href="https://plus.google.com/u/0/103334611312899628087"&gt;&lt;img height="20" width="20" src="https://lh6.googleusercontent.com/-d0Rf14Uia3c/AAAAAAAAAAI/AAAAAAAABiw/TV_B-hVQOj8/photo.jpg?sz=20" style="vertical-align: middle; border:none;"/&gt;&lt;/a&gt; &lt;a rel="author" href="https://plus.google.com/u/0/103334611312899628087"&gt;Stan Grinberg&lt;/a&gt;, Ads Developer Relations Team&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7815614485808579332-7372934172445993697?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/7372934172445993697" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7815614485808579332/posts/default/7372934172445993697" /><link rel="alternate" type="text/html" href="http://googleadsdeveloper.blogspot.com/2011/11/welcome-to-new-google-ads-developer.html" title="Welcome to the new Google Ads Developer blog!" /><author><name>Stan Grinberg</name><uri>http://www.blogger.com/profile/13815957415507388389</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://lh6.googleusercontent.com/-d0Rf14Uia3c/AAAAAAAAAAI/AAAAAAAABiw/TV_B-hVQOj8/s72-c/photo.jpg?sz=20" height="72" width="72" /></entry></feed>

