<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7815614485808579332</id><updated>2026-04-22T14:24:25.249-07:00</updated><category term="adwords_api"/><category term="google_ads_api"/><category term="sunset"/><category term="dfp_api"/><category term="release"/><category term="mobile_ads_sdk"/><category term="dv360_api"/><category term="adwords_scripts"/><category term="iOS"/><category term="android"/><category term="dfa_api"/><category term="ima_sdk"/><category term="deprecation"/><category term="content_api"/><category term="admob_sdk"/><category term="admob"/><category term="reporting"/><category term="google_ads_scripts"/><category term="mobile"/><category term="shopping"/><category term="ad_manager_api"/><category term="update"/><category term="google_ads"/><category term="reports"/><category term="adsense_api"/><category term="ad_exchange"/><category term="client_libraries"/><category term="dbm_api"/><category term="sdf"/><category term="oauth2"/><category term="ad_manager"/><category term="conversions"/><category term="bidding"/><category term="feeds"/><category term="conversion"/><category term="dfp_mobile"/><category term="performance_max"/><category term="workshops"/><category term="adsense_management_api"/><category term="targeting"/><category term="ad_exchange_rest"/><category term="ad_exchange_rtb"/><category term="html5"/><category term="unity"/><category term="adsense"/><category term="oauth"/><category term="ad_extensions"/><category term="offline_conversions"/><category term="query_language"/><category term="PMax"/><category term="admob_mediation"/><category term="adwords"/><category term="dfp_reports"/><category term="hangout"/><category term="ima_html5"/><category term="account_management"/><category term="adwords_api_workshops"/><category term="adwords_v201109"/><category term="docs"/><category term="geotargeting"/><category term="migration"/><category term="remarketing"/><category term="Performance Max"/><category term="ad_exchange_seller"/><category term="ad_exchange_soap"/><category term="ad_speed"/><category term="authorized_buyers"/><category term="display_network"/><category term="optimization"/><category term="publisher_ads_audits"/><category term="upgraded_urls"/><category term="ads"/><category term="analytics"/><category term="data_manager_api"/><category term="new_features"/><category term="php"/><category term="query_builder_blog_series"/><category term="survey"/><category term="video"/><category term="webinar"/><category term="admanager_api"/><category term="adwords_api_v201809"/><category term="adwords_v201209"/><category term="beta"/><category term="dfp"/><category term="expanded_text_ads"/><category term="ima_android"/><category term="limits"/><category term="native"/><category term="python"/><category term="DAI"/><category term="ad_exchange_optimization-series"/><category term="admob_api"/><category term="adwhirl"/><category term="adwords_api_v201406"/><category term="chart_tools"/><category term="content"/><category term="dfa_reporting_api"/><category term="dfa_v1.18"/><category term="display"/><category term="examples"/><category term="feedback"/><category term="gpt"/><category term="mobile_ads_garage"/><category term="realtime_bidding"/><category term="responsive_ads"/><category term="text_ads"/><category term="workshop"/><category term="admob_api_v1"/><category term="adwords_CampaignService"/><category term="adwords_api_v201402"/><category term="adwords_api_v201506"/><category term="audiences"/><category term="authentication"/><category term="cm360"/><category term="dfp_v201111"/><category term="enhanced_campaigns"/><category term="flash"/><category term="ima_ios"/><category term="keywords"/><category term="location_extensions"/><category term="mcc"/><category term="native_ads_express"/><category term="openrtb"/><category term="GMF"/><category term="PQL"/><category term="adsense_host_api"/><category term="adsense_management_api_v1"/><category term="adsense_management_api_v1.1"/><category term="adwords_api_v201302"/><category term="adwords_api_v201409"/><category term="adwords_api_v201509"/><category term="adwords_api_v201708"/><category term="analyticsapi"/><category term="app_engine"/><category term="aw_reporting"/><category term="awql"/><category term="budgets"/><category term="campaign"/><category term="case_study"/><category term="customer_match"/><category term="dfp_pql"/><category term="display_select"/><category term="gaql"/><category term="keyword_optimizer"/><category term="sa360"/><category term="sitelinks"/><category term="swift"/><category term="test_network"/><category term="ad_customizers"/><category term="adsense_management_api_v1.3"/><category term="adwords_BatchJobService"/><category term="adwords_MutateJobService"/><category term="adwords_api_v201306"/><category term="adwords_api_v201603"/><category term="adwords_api_v201705"/><category term="adwords_api_v201710"/><category term="adwords_v201309"/><category term="announcement"/><category term="assets"/><category term="authorization"/><category term="bid_modifiers"/><category term="billing"/><category term="brand_guidelines"/><category term="creatives"/><category term="demand_gen"/><category term="dfa_v1.20"/><category term="dfp_appengine"/><category term="dfp_creatives"/><category term="dfp_v201201"/><category term="dfp_v201203"/><category term="dfp_v201204"/><category term="discord"/><category term="display_smart_campaign"/><category term="documentation"/><category term="dv360"/><category term="entity_read_files"/><category term="erf"/><category term="error handling"/><category term="firebase"/><category term="gmp"/><category term="google_ads_api_v0"/><category term="google_apps_script"/><category term="ima_flash"/><category term="io13"/><category term="manager_accounts"/><category term="performance_max_api_workshop"/><category term="privacy_sandbox"/><category term="rate_sheet"/><category term="realtime_bidding_protocol"/><category term="recommendations"/><category term="rmf"/><category term="ruby"/><category term="smart"/><category term="template_ads"/><category term="tools"/><category term="AdWords Scripts"/><category term="CampaignCriterion"/><category term="ConversionTrackerService"/><category term="LocationExtensionOperand"/><category term="LocationGroups"/><category term="ad_clicks"/><category term="ad_exchange_buyer"/><category term="ad_inspector"/><category term="ad_manager_api_v201908"/><category term="ad_manager_api_v201911"/><category term="ad_manager_api_v202002"/><category term="ad_manager_api_v202005"/><category term="ad_manager_api_v202008"/><category term="ad_manager_api_v202102"/><category term="ad_manager_api_v202105"/><category term="ad_manager_api_v202202"/><category term="ad_manager_api_v202205"/><category term="admob_v4.3.1"/><category term="adsense_host_api_v3"/><category term="adsense_management_api_v1.2"/><category term="adsense_management_api_v1.4"/><category term="adwords_AdGroupCriterionService"/><category term="adwords_ManagedCustomerService"/><category term="adwords_api_v201309"/><category term="adwords_api_v201502"/><category term="adwords_api_v201601"/><category term="adwords_api_v201605"/><category term="adwords_api_v201607"/><category term="adwords_api_v201609"/><category term="adwords_api_v201702"/><category term="adwords_for_video"/><category term="adwords_v201206"/><category term="adwords_v201302"/><category term="adwords_v201306"/><category term="attribution_reporting_api"/><category term="best_practices"/><category term="bid_manager_api"/><category term="brand guidelines"/><category term="budget_order_service"/><category term="call_tracking"/><category term="campaign_management"/><category term="chromecast"/><category term="click"/><category term="click_tracking"/><category term="client_library"/><category term="code_examples"/><category term="common_questions"/><category term="dfa_v1.17"/><category term="dotnet"/><category term="dsa"/><category term="excluded_placement_lists"/><category term="flash_sdk"/><category term="gclid"/><category term="geo_targets"/><category term="google_ads_api_migration_workshop"/><category term="google_ads_api_v1_0"/><category term="google_ads_api_v6"/><category term="google_analytics_api"/><category term="html5_ads"/><category term="https"/><category term="i18n"/><category term="iOS9"/><category term="impression_share"/><category term="interview"/><category term="java_dart_api"/><category term="labels"/><category term="marketplace"/><category term="merchant_api"/><category term="meridian"/><category term="mobile_ads"/><category term="mobile_targeting"/><category term="oath2"/><category term="placements"/><category term="podcast"/><category term="privacy"/><category term="product_listing_ads"/><category term="quality_score"/><category term="quota"/><category term="realtime_bidding_api"/><category term="realtimebidding"/><category term="rest"/><category term="rewarded_video"/><category term="search"/><category term="search_audience"/><category term="selector"/><category term="service_accounts"/><category term="shared_negative_keywords"/><category term="snds"/><category term="success_stories"/><category term="terms"/><category term="test_accounts"/><category term="AdGroup"/><category term="AdGroupAd"/><category term="DoubleClick_Rich_Media"/><category term="MCP"/><category term="OfflineConversionFeedService"/><category term="PLA"/><category term="RateExceededError"/><category term="SGAI"/><category term="StepInsideAdWords"/><category term="ad_manager_api_v201805"/><category term="ad_manager_api_v201808"/><category term="ad_manager_api_v201811"/><category term="ad_manager_api_v201902"/><category term="ad_manager_api_v201905"/><category term="ad_manager_api_v202011"/><category term="ad_manager_api_v202108"/><category term="ad_manager_api_v202111"/><category term="ad_manager_api_v202208"/><category term="ad_manager_api_v202211"/><category term="ad_manager_api_v202302"/><category term="ad_manager_api_v202305"/><category term="ad_manager_api_v202308"/><category term="ad_manager_api_v202311"/><category term="ad_manager_api_v202402"/><category term="ad_manager_api_v202405"/><category term="ad_manager_api_v202408"/><category term="ad_manager_api_v202411"/><category term="ad_manager_api_v202502"/><category term="ad_manager_api_v202511"/><category term="ad_param"/><category term="adexchangebuyer"/><category term="admob_v5.0.5"/><category term="admob_v6.0.1"/><category term="advanced_apis"/><category term="adwhirl_v3.1.1"/><category term="adwords_CreateAccountService"/><category term="adwords_ReportDefinitionService"/><category term="adwords_api_v201802"/><category term="adwords_api_v201806"/><category term="adwords_v201601"/><category term="adwords_v201605"/><category term="adwords_v201607"/><category term="adwords_v201609"/><category term="adwords_v201702"/><category term="adwords_v201802"/><category term="adwords_v201806"/><category term="adwords_v201809"/><category term="ai"/><category term="ai_tools"/><category term="alerting"/><category term="amp"/><category term="android_layout"/><category term="animation"/><category term="annual developer survey"/><category term="api"/><category term="asset_group"/><category term="asset_group_listing_group_filter"/><category term="asset_group_signal"/><category term="authorized_buyer"/><category term="batch_processing"/><category term="beacon_api"/><category term="budget_floor"/><category term="builders"/><category term="bulk_upload"/><category term="c#"/><category term="caf_sdk"/><category term="call-only"/><category term="call_extensions"/><category term="call_metrics"/><category term="call_only"/><category term="callout_extensions"/><category term="campaign_manager_360"/><category term="cast"/><category term="certificates"/><category term="certification"/><category term="change_history"/><category term="chrome"/><category term="click-to-download"/><category term="click_type"/><category term="clicks"/><category term="conference"/><category term="converted_clicks"/><category term="creative_platforms"/><category term="custom_fields"/><category term="dart"/><category term="debugging"/><category term="decorators"/><category term="developer"/><category term="dfa_ad_service"/><category term="dfa_api_v118"/><category term="dfa_creative_service"/><category term="dfa_site_service"/><category term="dfa_v1.16"/><category term="dfa_v1.19"/><category term="dfp_inventory"/><category term="dfp_sales"/><category term="dfp_teams"/><category term="dfp_v201206"/><category term="dfp_v201208"/><category term="dfp_v201211"/><category term="dfp_v201302"/><category term="dfp_v201308"/><category term="dfp_v201608"/><category term="dfp_v201711"/><category term="doubleclick"/><category term="doubleclick_studio"/><category term="drafts"/><category term="dynamic_creative"/><category term="eta"/><category term="exoplayer"/><category term="experiment"/><category term="experiments"/><category term="faq"/><category term="floc"/><category term="flutter"/><category term="forecast_service"/><category term="gRPC"/><category term="games"/><category term="gdc"/><category term="gdl"/><category term="gma_next_gen_sdk"/><category term="gmail_ads"/><category term="gmail_image_ads"/><category term="gmail_multi_product_ads"/><category term="gmail_single_promotion_ads"/><category term="golang"/><category term="google_ads_api_v0_1"/><category term="google_ads_api_v0_3"/><category term="google_ads_api_v0_4"/><category term="google_ads_api_v0_5"/><category term="google_ads_api_v0_6"/><category term="google_ads_api_v0_7"/><category term="google_ads_api_v1_1"/><category term="google_ads_api_v1_2"/><category term="google_ads_api_v1_3"/><category term="google_ads_api_v2_1"/><category term="google_ads_api_v3_0"/><category term="google_ads_api_v3_1"/><category term="google_ads_api_v4"/><category term="google_ads_api_v5"/><category term="google_ads_solutions"/><category term="google_apis"/><category term="google_drive"/><category term="google_play_services"/><category term="google_plus"/><category term="guide"/><category term="guides"/><category term="hotel_ads"/><category term="hotel_campaigns"/><category term="ids"/><category term="ima_roku"/><category term="image"/><category term="image_ads"/><category term="image_optimization"/><category term="implementation"/><category term="interstitial"/><category term="java_app_engine"/><category term="jdbc"/><category term="kotlin"/><category term="line_item"/><category term="linq"/><category term="listing_groups"/><category term="location_feeds"/><category term="logging"/><category term="maps_api"/><category term="maximize"/><category term="media"/><category term="media_bundle"/><category term="mediation_test_suite"/><category term="mobile_sites"/><category term="mobile_speed"/><category term="mobile_ux"/><category term="monitoring"/><category term="open_source"/><category term="pal"/><category term="policy"/><category term="policy_violation"/><category term="price_extension"/><category term="proguard"/><category term="promotion_line"/><category term="qa"/><category term="rate_limiter"/><category term="referer"/><category term="sandbox"/><category term="scripts"/><category term="sdkless"/><category term="search audience"/><category term="search terms"/><category term="search_network"/><category term="search_theme"/><category term="sendbeacon"/><category term="simulations"/><category term="spend"/><category term="ssl"/><category term="suggested_ad_units"/><category term="swift_package_manager"/><category term="swiftui"/><category term="target"/><category term="target_cpa"/><category term="testing"/><category term="text_asset_automation"/><category term="trials"/><category term="turtledove"/><category term="ui"/><category term="unversioned_change"/><category term="updates"/><category term="upgrade"/><category term="v201509"/><category term="vast3"/><category term="vcpm"/><category term="viewable-cpm"/><category term="wp8"/><category term="xml"/><category term="youtube"/><title type='text'>Google Ads Developer Blog</title><subtitle type='html'>The official blog for information about the Google Ads, Google Ad Manager, Google Mobile Ads SDKs for AdMob and IMA SDKs, and other Google Advertising Platform developer tools.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ads-developers.googleblog.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/-/ima_sdk'/><link rel='alternate' type='text/html' href='http://ads-developers.googleblog.com/search/label/ima_sdk'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/-/ima_sdk/-/ima_sdk?start-index=26&amp;max-results=25'/><author><name>Anonymous</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/blank.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>74</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-8853389789934273759</id><published>2026-04-06T13:57:00.000-07:00</published><updated>2026-04-06T13:57:58.319-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="admanager_api"/><category scheme="http://www.blogger.com/atom/ns#" term="admob"/><category scheme="http://www.blogger.com/atom/ns#" term="admob_api"/><category scheme="http://www.blogger.com/atom/ns#" term="adsense_api"/><category scheme="http://www.blogger.com/atom/ns#" term="analytics"/><category scheme="http://www.blogger.com/atom/ns#" term="analyticsapi"/><category scheme="http://www.blogger.com/atom/ns#" term="cm360"/><category scheme="http://www.blogger.com/atom/ns#" term="DAI"/><category scheme="http://www.blogger.com/atom/ns#" term="data_manager_api"/><category scheme="http://www.blogger.com/atom/ns#" term="dv360_api"/><category scheme="http://www.blogger.com/atom/ns#" term="google_ads_api"/><category scheme="http://www.blogger.com/atom/ns#" term="google_ads_scripts"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_sdk"/><category scheme="http://www.blogger.com/atom/ns#" term="meridian"/><category scheme="http://www.blogger.com/atom/ns#" term="mobile_ads_sdk"/><category scheme="http://www.blogger.com/atom/ns#" term="realtime_bidding_api"/><title type='text'>Introducing the Google Advertising and Measurement Developers Hub!</title><content type='html'>&lt;p&gt;
We&#39;re excited to announce the launch of the new &lt;strong&gt;&lt;a href=&quot;https://developers.google.com/ads?utm_source=discord-am&amp;utm_medium=content&amp;utm_campaign=adr-devsitelaunch-apr2026&amp;utm_content=readmore-hub&quot; target=&quot;_blank&quot;&gt;Google Advertising and Measurement Developers Hub&lt;/a&gt;&lt;/strong&gt;!
&lt;/p&gt;

&lt;center&gt;
&lt;a href=&quot;https://developers.google.com/ads?utm_source=discord-am&amp;utm_medium=content&amp;utm_campaign=adr-devsitelaunch-apr2026&amp;utm_content=seeit-hub&quot; style=&quot;display: inline-block;background-color: #4285f4;color: white;padding: 10px 30px;border-radius: 50px;text-decoration: none;font-family: Arial, sans-serif;font-size: 23px;font-weight: bold;box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);line-height: 1;white-space: nowrap;text-align: center;&quot; target=&quot;”_blank”&quot;&gt; Come see the new site! &lt;/a&gt;
&lt;/center&gt;
  
&lt;p&gt;
Whether you&#39;re looking to automate campaigns, analyze performance, manage tags, or monetize your apps, the new hub is designed to make it easier to find the right tools and information.
&lt;/p&gt;
&lt;p&gt;
We&#39;ve launched a new technical-user focused site to make it easier than ever for you to find the tools, resources, and support you need to build and innovate with Google&#39;s advertising and measurement products.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;What&#39;s New?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
We have created a one-stop shop where you can easily find the resources you need, connect with our team and the community, and get support. Here are some key features:
&lt;/p&gt;&lt;ul&gt;

&lt;li&gt;&lt;strong&gt;At-a-glance homepage:&lt;/strong&gt; A clear starting point highlighting how we can help, with quick links to our blog, Discord, and information about our team.
&lt;li&gt;&lt;strong&gt;Meet the team:&lt;/strong&gt; Learn more about the Developer Relations team dedicated to supporting your success.
&lt;li&gt;&lt;strong&gt;Products:&lt;/strong&gt; A comprehensive directory of the developer products we cover, from the Google Ads API and Google Analytics APIs to Publisher Tools like AdMob and Ad Manager, linking directly to their official documentation. You can browse by categories like Advertising Platforms, Tagging, Measurement &amp; Analytics, and Publisher Tools.
&lt;li&gt;&lt;strong&gt;Connect with us:&lt;/strong&gt; A streamlined page to help you find the best way to engage: &lt;ul&gt;

 &lt;li&gt;Join our vibrant &lt;a href=&quot;https://discord.com/invite/KjeRuMJSsX&quot; target=&quot;_blank&quot;&gt;Discord&lt;/a&gt; community.
 &lt;li&gt;Find links to product or technical support.
 &lt;li&gt;Download open source projects on GitHub.
&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Media and podcast:&lt;/strong&gt; A new home for our multimedia content, including the &lt;em&gt;&lt;a href=&quot;https://www.youtube.com/playlist?list=PLKByxjzUC-N8t_n0JnP6PTETY6b7yg2q4&quot;  target=&quot;_blank&quot;&gt;Ads DevCast&lt;/a&gt;&lt;/em&gt; playlist embedded directly on the page.&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;
We&#39;re excited to make this &lt;em&gt;the&lt;/em&gt; place for you to learn, build, and connect.
&lt;/p&gt;
&lt;p&gt;
Please explore the new site and use the &lt;strong&gt;Send Feedback&lt;/strong&gt; button located at the bottom of each page to share your thoughts!
&lt;/p&gt;
&lt;p&gt;
If you have any questions about this announcement or want to discuss it with our team and the community, please reach out to us on our&lt;a href=&quot;https://goo.gle/google-ads-discord&quot; target=&quot;_blank&quot;&gt; &quot;Google Advertising and Measurement Community&quot; Discord server&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Happy Building!
&lt;/p&gt;


&lt;span class=&quot;byline-author&quot;&gt;&lt;img height=&quot;40&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgGD29rjK09jXwR45TSO8b6YG5OcppqiupjPewe1sWjTCjdjnDUnnivyy_WV7YBOJalPln-jxXdnu31x-ueYdhuGw0FyuQepiy4RXnrFsFmlWFZBcd9Fue1B-aR9gvWjyVe9PwEbuPeRaK8soOkprJfedUFO9uvnLv58ETUxPqCpws9SU8YmmmkUMQqrbs&quot; style=&quot;border: none; vertical-align: middle;&quot; width=&quot;40&quot; /&gt; - Aalap Shastri, Google Ads API Team&lt;/span&gt;
</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/8853389789934273759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/8853389789934273759'/><link rel='alternate' type='text/html' href='http://ads-developers.googleblog.com/2026/04/introducing-google-advertising-and.html' title='Introducing the Google Advertising and Measurement Developers Hub!'/><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-2611124866747221624</id><published>2025-12-10T14:19:00.000-08:00</published><updated>2025-12-10T14:19:13.055-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ima_sdk"/><category scheme="http://www.blogger.com/atom/ns#" term="pal"/><title type='text'>Update your PAL integration for new limited ads behavior</title><content type='html'>&lt;p&gt;The Programmatic Access Library (PAL) is updating user privacy and data usage settings, and requires implementation updates as these changes go live. This update introduces the following changes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PAL reads Transparency &amp; Consent Framework (TCF) data from the device to determine user consent for local storage.&lt;/li&gt;
&lt;li&gt;Adds an optional &lt;code&gt;forceLimitedAds&lt;/code&gt; property to manually enable &lt;a href=&quot;https://support.google.com/admanager/answer/9882911&quot;&gt;limited ads&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Removes the functionality of the existing &lt;code&gt;allowStorage&lt;/code&gt; property.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The following diagram shows the new behavior:&lt;/p&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8qBs4ksT3hXMhFLmf5Y0hTF7mLA4m18WHFW_W3UfohB7r71KtVgpNL2r5Rhr_F0hYyuhyNIQXArJJaJn3JplkTxUdc-xRM3LY80xQq8a0F2eCYPZgbq8_g2ZcGXW4rogtkLxsqbTiX5xVvPxYJ7G3RGwrq45uEogq_KM4tE_OtzznTADcNHhXZE4drHc/s1130/pal-phase-1.png&quot; style=&quot;display: block; padding: 1em 0; text-align: center; &quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; width=&quot;600&quot; data-original-height=&quot;1022&quot; data-original-width=&quot;1130&quot; style=&quot;margin: 0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8qBs4ksT3hXMhFLmf5Y0hTF7mLA4m18WHFW_W3UfohB7r71KtVgpNL2r5Rhr_F0hYyuhyNIQXArJJaJn3JplkTxUdc-xRM3LY80xQq8a0F2eCYPZgbq8_g2ZcGXW4rogtkLxsqbTiX5xVvPxYJ7G3RGwrq45uEogq_KM4tE_OtzznTADcNHhXZE4drHc/s600/pal-phase-1.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;PAL is changing to this behavior in the following releases:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTML5 v1.90.0, behavior change targeting &lt;strong&gt;March 10th, 2026&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Android v23.0.0&lt;/li&gt;
&lt;li&gt;iOS v3.0.0&lt;/li&gt;
&lt;li&gt;tvOS v3.0.0&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Starting in these versions, PAL uses Transparency &amp; Consent Framework (TCF) data from the device to determine user consent for local storage. If the automatic TCF based determination is insufficient, your app can directly set the &lt;code&gt;forceLimitedAds&lt;/code&gt; property. Setting the &lt;code&gt;forceLimitedAds&lt;/code&gt; property to a &lt;code&gt;true&lt;/code&gt; value enables limited ads.&lt;/p&gt;

&lt;p&gt;To keep the current behavior in your app, you might need to update your implementation. For details about the code changes, see the Limited ads and first party identifier settings guide for &lt;a href=&quot;https://developers.google.com/ad-manager/pal/html5/limited-ads-first-party-identifier-settings&quot;&gt;HTML5&lt;/a&gt;, &lt;a href=&quot;https://developers.google.com/ad-manager/pal/android/limited-ads-first-party-identifier-settings&quot;&gt;Android&lt;/a&gt;, &lt;a href=&quot;https://developers.google.com/ad-manager/pal/ios/limited-ads-first-party-identifier-settings&quot;&gt;iOS&lt;/a&gt;, or &lt;a href=&quot;https://developers.google.com/ad-manager/pal/tvos/limited-ads-first-party-identifier-settings&quot;&gt;tvOS&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Follow the PAL HTML5 migration plan&lt;/h3&gt;
&lt;p&gt;To prevent runtime errors, the HTML5 PAL SDK keeps the &lt;code&gt;allowStorage&lt;/code&gt; property. The &lt;code&gt;allowStorage&lt;/code&gt; property will be supported until &lt;strong&gt;March 10th, 2026&lt;/strong&gt;. The PAL HTML5 SDK observes the following behavior:&lt;/p&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilf8Ak2KsjXP60OC-vYFhgl5eAL-B9duXfvMI-AhxU_SrGXtCGx6wPcyQffZOK_mWiQiFwc4aZey8zO5kexJX6onIlJq48LNQ6hG12V-5o1TfWZWFmxVUnfQvIdWig19W8EDdq1uhkr7s0D-IeS8fdDcD_xURZcdp03b6isCkpfNbgOLSkuvoFLgaweJI/s1570/pal-limitedads-march10.png&quot; style=&quot;display: block; padding: 1em 0; text-align: center; &quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; width=&quot;600&quot; data-original-height=&quot;1222&quot; data-original-width=&quot;1570&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilf8Ak2KsjXP60OC-vYFhgl5eAL-B9duXfvMI-AhxU_SrGXtCGx6wPcyQffZOK_mWiQiFwc4aZey8zO5kexJX6onIlJq48LNQ6hG12V-5o1TfWZWFmxVUnfQvIdWig19W8EDdq1uhkr7s0D-IeS8fdDcD_xURZcdp03b6isCkpfNbgOLSkuvoFLgaweJI/s600/pal-limitedads-march10.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;

&lt;b&gt;What is changing?&lt;/b&gt;
&lt;p&gt;On &lt;strong&gt;March 10th, 2026&lt;/strong&gt;, PAL SDK ignores the &lt;code&gt;allowStorage&lt;/code&gt; property, and its value no longer influences limited ads behavior.&lt;/p&gt;

&lt;p&gt;To avoid breaking changes, do the following before &lt;strong&gt;March 10th, 2026&lt;/strong&gt;: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Always &lt;/strong&gt;set the &lt;code&gt;allowStorage&lt;/code&gt; property to a &lt;code&gt;true&lt;/code&gt; value.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Optionally&lt;/strong&gt;, you can force limited ads regardless of the TCF determination by setting the &lt;code&gt;forceLimitedAds&lt;/code&gt; property to a &lt;code&gt;true&lt;/code&gt; value.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For more details about the code changes you need to make for PAL HTML5, see &lt;a href=&quot;https://developers.google.com/ad-manager/pal/html5/limited-ads-first-party-identifier-settings&quot;&gt;Limited ads and first party identifier settings&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Give us your feedback&lt;/h3&gt;
&lt;p&gt;We intend these changes to provide transparency on user consent and privacy preferences. If you have questions about this update, please reach out to us via the &lt;a href=&quot;https://discord.gg/yjMeQd46gF&quot;&gt;Google Advertising and Measurement Community Discord Server&lt;/a&gt; in the &lt;strong&gt;#developers&lt;/strong&gt; channel under &lt;strong&gt;Google Ad Manager&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;byline-author&quot;&gt;&lt;img width=&quot;40&quot; height=&quot;40&quot; src=&quot;https://lh3.googleusercontent.com/a-/AAuE7mCuOE0ipL96v9WF_TDUZ-jVGrtltQwnw7C4-TyT=s120-p-rw-no?sz=40&quot; style=&quot;vertical-align:middle; border:none;&quot;&gt;&amp;nbsp;-&amp;nbsp;Jackson Sui, Interactive Media Ads Developer Relations&lt;/span&gt;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/2611124866747221624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/2611124866747221624'/><link rel='alternate' type='text/html' href='http://ads-developers.googleblog.com/2025/12/update-your-pal-integration-for-new.html' title='Update your PAL integration for new limited ads behavior'/><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8qBs4ksT3hXMhFLmf5Y0hTF7mLA4m18WHFW_W3UfohB7r71KtVgpNL2r5Rhr_F0hYyuhyNIQXArJJaJn3JplkTxUdc-xRM3LY80xQq8a0F2eCYPZgbq8_g2ZcGXW4rogtkLxsqbTiX5xVvPxYJ7G3RGwrq45uEogq_KM4tE_OtzznTADcNHhXZE4drHc/s72-c/pal-phase-1.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-3447279272792027691</id><published>2025-07-08T13:20:00.000-07:00</published><updated>2025-07-08T13:20:56.682-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ad_manager"/><category scheme="http://www.blogger.com/atom/ns#" term="ad_manager_api"/><category scheme="http://www.blogger.com/atom/ns#" term="admob"/><category scheme="http://www.blogger.com/atom/ns#" term="DAI"/><category scheme="http://www.blogger.com/atom/ns#" term="discord"/><category scheme="http://www.blogger.com/atom/ns#" term="google_ads"/><category scheme="http://www.blogger.com/atom/ns#" term="google_ads_api"/><category scheme="http://www.blogger.com/atom/ns#" term="google_ads_scripts"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_sdk"/><category scheme="http://www.blogger.com/atom/ns#" term="mobile_ads_sdk"/><title type='text'>Join our “Google Advertising and Measurement Community” Discord Server</title><content type='html'>&lt;p&gt;
We’re launching our new “Google Advertising and Measurement Community” Discord server!  To join, just click &lt;a href=&quot;http://goo.gle/ads-and-measurement-discord&quot;&gt;this invite link&lt;/a&gt; and follow the onboarding guide.
&lt;/p&gt;
&lt;p&gt;
The current products available on this server are Analytics, Google Ads, Google AdMob, and Google Ad Manager.
&lt;/p&gt;
&lt;p&gt;
The Ads Developer Relations team will be on this server regularly to discuss your feedback or questions using Google’s Advertising and Analytics APIs/SDKs, as well as to let you know what’s new with our products.
&lt;/p&gt;
&lt;p&gt;
We’ll be hosting a “Meet the Team” in August, where we’ll go over who we are, and how you can expect to engage with us in Discord.  Stay tuned as we add other events, and more channels.
&lt;/p&gt;
&lt;p&gt;
Looking forward to chatting with you on Discord!
&lt;/p&gt;

&lt;span class=&quot;byline-author&quot;&gt;&lt;img height=&quot;40&quot; src=&quot;https://lh3.googleusercontent.com/a-/AN66SAzPW9gtIDxKGgbRWCyVWTJjciMUxMUJDdSI-lmdBw=s600-p&quot; style=&quot;border: none; vertical-align: middle;&quot; width=&quot;40&quot; /&gt; - Cory Liseno, on behalf of the Ads Developer Relations Team&lt;/span&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/3447279272792027691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/3447279272792027691'/><link rel='alternate' type='text/html' href='http://ads-developers.googleblog.com/2025/07/join-our-google-advertising-and.html' title='Join our “Google Advertising and Measurement Community” Discord Server'/><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh3.googleusercontent.com/a-/AN66SAzPW9gtIDxKGgbRWCyVWTJjciMUxMUJDdSI-lmdBw=s72-c-p" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-430204982910672601</id><published>2025-05-05T09:05:00.000-07:00</published><updated>2025-05-05T09:05:18.979-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="DAI"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_android"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_sdk"/><title type='text'>Optimize IMA Android monetization with faster loading</title><content type='html'>&lt;p&gt;
IMA Android version 3.35.1 adds the &lt;code&gt;&lt;a href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/ImaSdkFactory#public-void-initialize-context-context,-imasdksettings-settings&quot;&gt;ImaSdkFactory.initialize()&lt;/a&gt;&lt;/code&gt; method. This call begins loading necessary SDK resources before the first ad request, leading to faster load times. These changes can limit ad buffering, and help maximize ad impressions and monetization. Depending on the device, the loading process can take several seconds to complete.

&lt;p&gt;
We strongly recommend making the &lt;code&gt;initialize()&lt;/code&gt; call as soon as possible after the app starts. This approach shortens the time to first frame for pre-roll ads, thus limiting the time users are waiting and increasing monetization potential.
&lt;/p&gt;
&lt;p&gt;
For applications that implement these load time improvements, the following benefits show:
&lt;/p&gt;&lt;ul&gt;

&lt;li&gt;An average decrease of 0.25 to 0.5 seconds in time to first frame.
&lt;li&gt;With larger decreases for TV implementations, up to a five second improvement. &lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;
The following diagram shows an app using the &lt;code&gt;initialize()&lt;/code&gt; method call to load system resources before a user selects a video:
&lt;/p&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCUIWuGDXrqjIG6k5TaE9wQNC341JgDhvhWDWleo4TqhpVxE6nNn7MTgieH4TGlH8Ek5GiRzfyM-sndr0ofBQqtKmTScx6R95Vt1yDq6lB_HmYSAWk5DgCgh93kxp9KJVZCPT9np6acAWvZcE8c8f7l7bU9R5PcrhiBM-7SpRPxgIqt_H2eu9w6_aXlvE/s1600/ima_latency2.png&quot; style=&quot;display: block; padding: 1em 0; text-align: center; &quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; data-original-height=&quot;436&quot; data-original-width=&quot;659&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCUIWuGDXrqjIG6k5TaE9wQNC341JgDhvhWDWleo4TqhpVxE6nNn7MTgieH4TGlH8Ek5GiRzfyM-sndr0ofBQqtKmTScx6R95Vt1yDq6lB_HmYSAWk5DgCgh93kxp9KJVZCPT9np6acAWvZcE8c8f7l7bU9R5PcrhiBM-7SpRPxgIqt_H2eu9w6_aXlvE/s1600/ima_latency2.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;
The &lt;code&gt;ImaSdkFactory.initialize()&lt;/code&gt; call accepts an &lt;code&gt;ImaSdkSettings&lt;/code&gt; instance. Use the same settings values that are used to create any &lt;code&gt;AdsLoader&lt;/code&gt; instances in the app. For &lt;a href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/load-time&quot;&gt;client-side&lt;/a&gt; and &lt;a href=&quot;https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/android/load-time&quot;&gt;DAI&lt;/a&gt; for more information, see optimize IMA load time . If you have any questions, feel free to reach out using the &lt;a href=&quot;https://groups.google.com/g/ima-sdk&quot;&gt;IMA technical forum&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;byline-author&quot;&gt;&lt;img width=&quot;40&quot; height=&quot;40&quot; src=&quot;https://lh3.googleusercontent.com/a-/AAuE7mCuOE0ipL96v9WF_TDUZ-jVGrtltQwnw7C4-TyT=s120-p-rw-no?sz=40&quot; style=&quot;vertical-align:middle; border:none;&quot;&gt;&amp;nbsp;-&amp;nbsp;Jackson Sui, Interactive Media Ads Developer Relations&lt;/span&gt;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/430204982910672601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/430204982910672601'/><link rel='alternate' type='text/html' href='http://ads-developers.googleblog.com/2025/05/optimize-ima-android-monetization-with.html' title='Optimize IMA Android monetization with faster loading'/><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCUIWuGDXrqjIG6k5TaE9wQNC341JgDhvhWDWleo4TqhpVxE6nNn7MTgieH4TGlH8Ek5GiRzfyM-sndr0ofBQqtKmTScx6R95Vt1yDq6lB_HmYSAWk5DgCgh93kxp9KJVZCPT9np6acAWvZcE8c8f7l7bU9R5PcrhiBM-7SpRPxgIqt_H2eu9w6_aXlvE/s72-c/ima_latency2.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-7481424286119025444</id><published>2025-04-07T10:07:00.000-07:00</published><updated>2025-04-07T10:07:22.680-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="DAI"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_sdk"/><category scheme="http://www.blogger.com/atom/ns#" term="SGAI"/><title type='text'>Unlock Premium Ad Experiences for livestreams with Server-Guided Ad Insertion (SGAI)</title><content type='html'>&lt;p&gt;
We&#39;re excited to introduce Google&#39;s approach to &lt;strong&gt;Server Guided Ad Insertion (SGAI)&lt;/strong&gt;,&lt;strong&gt; designed to unlock key benefits:&lt;/strong&gt;
&lt;/p&gt;&lt;ul&gt;

&lt;li&gt;&lt;strong&gt;Flexibility&lt;/strong&gt;: Support for new innovative ad formats to meet publisher’s diverse needs
&lt;li&gt;&lt;strong&gt;Control&lt;/strong&gt;: Greater control over ad break scheduling
&lt;li&gt;&lt;strong&gt;Efficiency&lt;/strong&gt;: Resource savings and operational simplification&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;
SGAI is an ad insertion method where an ad server instructs the video player on how to manage ad transitions dynamically within the content stream. This technique blends the advantages of two common methods: it offers the seamless ad integration seen in server-side insertion (SSAI) and the implementation ease found in client-side insertion (CSAI). SGAI’s ability to support non-intrusive ad experiences, such as squeezebacks and L-banners, where advertisements appear alongside the continuously playing content, creates prominent branding opportunities and experiences alongside content.
&lt;/p&gt;
&lt;p&gt;
In this post, we&#39;ll address the key questions on the core concepts and benefits of this exciting new technology.
&lt;/p&gt;
&lt;h2&gt;What is the &quot;server-guided&quot; part in SGAI?&lt;/h2&gt;
&lt;p&gt;
SGAI uses Google Dynamic Ad Insertion (DAI) to perform ad selection, transcoding, and return the ad pod manifest for the entire ad break, ready for the video player to load and play just like a content stream.
&lt;/p&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQ9gg8AYVANP5fE6FccMI-q4soq0TCM1YxHy5xmdbODV7DyygKiDOgNcXF1AgEinFWcOoihzHiXJIewaAGfDF-THHEaguwO504dHNt335ui0iOBoegl729_GiwYqa_eXAGPCz3L7LfuOilrZQzsaFTP7pVT9J28N-7xsTsz51qFinwgiRaF5wCWtjy8yc/s823/image2.png&quot; style=&quot;display: block; padding: 1em 0; text-align: center; &quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; width=&quot;600&quot; data-original-height=&quot;328&quot; data-original-width=&quot;823&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQ9gg8AYVANP5fE6FccMI-q4soq0TCM1YxHy5xmdbODV7DyygKiDOgNcXF1AgEinFWcOoihzHiXJIewaAGfDF-THHEaguwO504dHNt335ui0iOBoegl729_GiwYqa_eXAGPCz3L7LfuOilrZQzsaFTP7pVT9J28N-7xsTsz51qFinwgiRaF5wCWtjy8yc/s600/image2.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;
The &lt;em&gt;server-guided&lt;/em&gt; aspect highlights the collaborative nature of ad delivery in SGAI. While Google DAI servers do the heavy lifting of building and delivering the ad break, the client app and video player takes control of the ad break timing and insertion.
&lt;/p&gt;
&lt;h2&gt;Control over ad break scheduling&lt;/h2&gt;
&lt;p&gt;
To control the ad break timing, you can use your own infrastructure, such as a packager, an encoder, a manifest manipulator or a direct notification to the client app. Ahead of the ad breaks, you can use the Ad Manager’s &lt;a href=&quot;https://developers.google.com/ad-manager/video/Early.ad.break.notification&quot;&gt;Early Ad Break Notification API&lt;/a&gt; to create and schedule upcoming ad breaks, optimizing ad fill rate for high concurrency livestream events.
&lt;/p&gt;
&lt;p&gt;
Using these tools, you define the &lt;strong&gt;expected start time, duration, and metadata&lt;/strong&gt; of the ad break and signal Google Ad Manager, your client app and the video player to prepare and play the ad break.
&lt;/p&gt;
&lt;h2&gt;How flexible is SGAI?&lt;/h2&gt;
&lt;p&gt;
There are two different methods of using server guided ad insertion to meet diverse publisher needs:
&lt;/p&gt;&lt;ul&gt;

&lt;li&gt;&lt;strong&gt;Client-side ad stitching: &lt;/strong&gt;the client app listens to the video player&#39;s timed metadata for upcoming ad break events or follows a preset ad schedule. The client app proactively loads the ad break manifest.&lt;br&gt;At ad break start, the client app can switch between content and ad, or arrange both content and ads simultaneous playbacks to implement &lt;strong&gt;innovative ad formats&lt;/strong&gt;, such as squeezeback, L-banner, side-by-side windows.
&lt;li&gt;&lt;strong&gt;Server-side ad stitching: &lt;/strong&gt;the packager, or encoder, inserts an ad marker pointing to the ad manifest into the content manifest. The video player reactively loads the ad break manifest and switches between content and ad in due time.&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;
We design our SGAI to work with standards, such as HLS interstitials and the upcoming DASH specification. This allows for easy interoperability across different players, client platforms and streaming tech stacks.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;How does SGAI client-side ad stitching work?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
This section covers an SGAI client-side example in which the video player parses SCTE-35 markers in the content manifest and schedules an ad break. This approach offers server resource savings and operational simplification.
&lt;/p&gt;
&lt;p&gt;
The livestream flow has the following key steps:
&lt;/p&gt;&lt;ol&gt;

&lt;li&gt;The client app &lt;a href=&quot;https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/html5/get-started?service=pod#load_the_ima_dai_sdk_2&quot;&gt;loads the IMA SDK&lt;/a&gt; to create DAI pod serving stream sessions and process ad events.
&lt;li&gt;The client app uses a video player for playback, and constructs the &lt;a href=&quot;https://developers.google.com/ad-manager/dynamic-ad-insertion/api/pod-serving/reference/live#method_hls_pod_manifest&quot;&gt;HLS&lt;/a&gt; or &lt;a href=&quot;https://developers.google.com/ad-manager/dynamic-ad-insertion/api/pod-serving/reference/live#method_hls_pod_manifest&quot;&gt;DASH&lt;/a&gt; ad pod manifest URLs, incorporating SCTE-35 data as needed.
&lt;li&gt;A few seconds before the expected ad break time, the video player loads the ad pod manifest. At the beginning of the ad break, the client app switches from the content to the ad playback.&lt;/li&gt;&lt;/ol&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgESQi8OminbB187AL43Jqxn3bEiTdjFerWJuVob4h9ihMt67zfNphtqQThhdTgyNOQMnGmQI36eu2bNNU0QjbKmki0HIj57gIbZxnxnLfo2Rk4sdUG6YGPxbOEYKQJ8HiJ2L930Q-pYlYjDUYYh2w8LJU_rEoNy-QdqpUJ-XQ2Go6n7tcG323yVjhqFo0/s1189/image3.png&quot; style=&quot;display: block; padding: 1em 0; text-align: center; &quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; width=&quot;600&quot; data-original-height=&quot;816&quot; data-original-width=&quot;1189&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgESQi8OminbB187AL43Jqxn3bEiTdjFerWJuVob4h9ihMt67zfNphtqQThhdTgyNOQMnGmQI36eu2bNNU0QjbKmki0HIj57gIbZxnxnLfo2Rk4sdUG6YGPxbOEYKQJ8HiJ2L930Q-pYlYjDUYYh2w8LJU_rEoNy-QdqpUJ-XQ2Go6n7tcG323yVjhqFo0/s600/image3.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;

&lt;h2&gt;How does SGAI server-side ad stitching work?&lt;/h2&gt;
&lt;p&gt;
Livestream workflows with SGAI server-side ad stitching follow similar steps above, but a packager inserts ad markers pointing to ad pod manifest URLs shortly before each ad break.
&lt;/p&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCYibC2qBFY52EdUCkNbJG63CUTOyyvykRYl04Fa6_kZ5x_zjZkxOXTpfqZb8PB5FhE8Wf5EdgByKqsXq24j9CzS4-r6ZUWGhPAUaczsi2ytm_Bba1U1M9AlpJGoaZCtsKJ76UVX644lLFfrZnymp0q2Ok41hsYMiRhc66Okze2wHFPh_ft9uJpCUfCxw/s1019/image1.png&quot; style=&quot;display: block; padding: 1em 0; text-align: center; &quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; width=&quot;600&quot; data-original-height=&quot;787&quot; data-original-width=&quot;1019&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCYibC2qBFY52EdUCkNbJG63CUTOyyvykRYl04Fa6_kZ5x_zjZkxOXTpfqZb8PB5FhE8Wf5EdgByKqsXq24j9CzS4-r6ZUWGhPAUaczsi2ytm_Bba1U1M9AlpJGoaZCtsKJ76UVX644lLFfrZnymp0q2Ok41hsYMiRhc66Okze2wHFPh_ft9uJpCUfCxw/s600/image1.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;

&lt;h2&gt;Next Steps&lt;/h2&gt;
&lt;p&gt;
We encourage you to explore &lt;a href=&quot;https://developers.google.com/ad-manager/dynamic-ad-insertion/server-guided&quot;&gt;SGAI documentation&lt;/a&gt; to create premium ad experiences with efficiency and adaptability. To get started on using SGAI, contact your Google account manager.
&lt;/p&gt;
&lt;p&gt;
 - Thang Duong, Ads Developer Relations and Sourya Roy, Senior Product Manager, Google Ad Manager
&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/7481424286119025444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/7481424286119025444'/><link rel='alternate' type='text/html' href='http://ads-developers.googleblog.com/2025/04/unlock-premium-ad-experiences-for.html' title='Unlock Premium Ad Experiences for livestreams with Server-Guided Ad Insertion (SGAI)'/><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQ9gg8AYVANP5fE6FccMI-q4soq0TCM1YxHy5xmdbODV7DyygKiDOgNcXF1AgEinFWcOoihzHiXJIewaAGfDF-THHEaguwO504dHNt335ui0iOBoegl729_GiwYqa_eXAGPCz3L7LfuOilrZQzsaFTP7pVT9J28N-7xsTsz51qFinwgiRaF5wCWtjy8yc/s72-c/image2.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-5356834380953417069</id><published>2025-01-27T08:57:00.000-08:00</published><updated>2025-01-27T08:57:20.716-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="chromecast"/><category scheme="http://www.blogger.com/atom/ns#" term="DAI"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_android"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_html5"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_ios"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_roku"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_sdk"/><title type='text'>Control ads identifier usage with IMA DAI SDK by setting your network code</title><content type='html'>&lt;p&gt;
The IMA DAI SDK now supports passing the network code parameter when creating a full-service stream request. This change is specifically for IMA DAI integrations using either &lt;a href=&quot;https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/html5/reference/js/LiveStreamRequest&quot;&gt;LiveStreamRequest&lt;/a&gt; or &lt;a href=&quot;https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/html5/reference/js/VODStreamRequest&quot;&gt;VODStreamRequest&lt;/a&gt; classes. Adding the network code is a one-time change that enables IMA DAI to respect your Ad Manager settings.
&lt;/p&gt;
&lt;p&gt;
We recommend you provide the network code for IMA to apply your Ad Manager settings to the stream request. For example, if you &lt;a href=&quot;https://support.google.com/admanager/answer/9882911#programmatic&quot;&gt;turn off programmatic limited ads&lt;/a&gt; in Ad Manager, use the Google Ad Manager network code parameter to ensure local storage is also disabled for limited ads in DAI on your app.
&lt;/p&gt;
&lt;p&gt;
The following example constructs an IMA DAI HTML5 &lt;a href=&quot;https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/html5/reference/js/LiveStreamRequest&quot;&gt;LiveStreamRequest&lt;/a&gt; class with the network code in the request to Ad Manager:
&lt;/p&gt;



&lt;pre class=&quot;prettyprint&quot;&gt;function requestLiveStream(assetKey, apiKey, networkCode) {
  var streamRequest = new google.ima.dai.api.LiveStreamRequest();
  streamRequest.assetKey = assetKey;
  streamRequest.apiKey = apiKey;
  streamRequest.networkCode = networkCode;
  streamManager.requestStream(streamRequest);
}&lt;/pre&gt;


&lt;p&gt;
You can pass the network code using the IMA DAI SDK for &lt;a href=&quot;https://developers.google.com/ad-manager/dynamic-ad-insertion/full-service&quot;&gt;full-service DAI&lt;/a&gt; on all of the platforms:
&lt;/p&gt;&lt;ul&gt;

&lt;li&gt;&lt;a href=&quot;https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/html5?service=full&quot;&gt;HTML5&lt;/a&gt;
&lt;li&gt;&lt;a href=&quot;https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/android?service=full&quot;&gt;Android&lt;/a&gt;
&lt;li&gt;&lt;a href=&quot;https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/ios?service=full&quot;&gt;iOS&lt;/a&gt;
&lt;li&gt;&lt;a href=&quot;https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/tvos?service=full&quot;&gt;tvOS&lt;/a&gt;
&lt;li&gt;&lt;a href=&quot;https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/cast?service=full&quot;&gt;Chromecast&lt;/a&gt;
&lt;li&gt;&lt;a href=&quot;https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/roku?service=full&quot;&gt;Roku&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;
For more information, see the &lt;a href=&quot;https://support.google.com/admanager/answer/9882911&quot;&gt;programmatic limited ads Ad Manager article&lt;/a&gt;. Additionally, follow &lt;a href=&quot;https://support.google.com/admanager/answer/7674889&quot;&gt;Find your Ad Manager network code&lt;/a&gt;. If you have any questions, feel free to reach out using the &lt;a href=&quot;https://groups.google.com/g/ima-sdk&quot;&gt;IMA technical forum&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;byline-author&quot;&gt;&lt;img width=&quot;40&quot; height=&quot;40&quot; src=&quot;https://lh3.googleusercontent.com/a-/AAuE7mCuOE0ipL96v9WF_TDUZ-jVGrtltQwnw7C4-TyT=s120-p-rw-no?sz=40&quot; style=&quot;vertical-align:middle; border:none;&quot;&gt;&amp;nbsp;-&amp;nbsp;Jackson Sui, Interactive Media Ads Developer Relations&lt;/span&gt;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/5356834380953417069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/5356834380953417069'/><link rel='alternate' type='text/html' href='http://ads-developers.googleblog.com/2025/01/control-ads-identifier-usage-with-ima.html' title='Control ads identifier usage with IMA DAI SDK by setting your network code'/><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh3.googleusercontent.com/a-/AAuE7mCuOE0ipL96v9WF_TDUZ-jVGrtltQwnw7C4-TyT=s72-c-p-rw-no?sz=40" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-2445788034932103171</id><published>2024-09-19T07:06:00.000-07:00</published><updated>2024-09-19T07:06:18.992-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ad_manager_api"/><category scheme="http://www.blogger.com/atom/ns#" term="authorized_buyers"/><category scheme="http://www.blogger.com/atom/ns#" term="dbm_api"/><category scheme="http://www.blogger.com/atom/ns#" term="dv360_api"/><category scheme="http://www.blogger.com/atom/ns#" term="google_ads_api"/><category scheme="http://www.blogger.com/atom/ns#" term="google_ads_scripts"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_sdk"/><category scheme="http://www.blogger.com/atom/ns#" term="sdf"/><title type='text'>Subscribe to the blog</title><content type='html'>If you want all new blog posts sent directly to your inbox, we have good news. The blog includes a customizable &lt;a href=&quot;https://www.blogger.com/feeds/7815614485808579332/posts/default&quot;&gt;RSS feed&lt;/a&gt; that you can subscribe to with your favorite RSS service. Just paste the URL above into your RSS service and get the blog contents delivered in whatever way you prefer. If you&#39;re new to RSS, check out this &lt;a href=&quot;https://github.com/AboutRSS/ALL-about-RSS&quot;&gt;community resource on GitHub&lt;/a&gt; describing how it works and providing a list of well-supported services.&lt;br /&gt;&lt;br /&gt;

If you want to filter to specific products that interest you, that&#39;s possible too. Here are some quick links to the RSS feeds for the products supported by this blog:
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.blogger.com/feeds/7815614485808579332/posts/default?category=google_ads_api&amp;amp;orderby=published&quot;&gt;Google Ads API&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.blogger.com/feeds/7815614485808579332/posts/default?category=google_ads_scripts&amp;amp;orderby=published&quot;&gt;Google Ads scripts&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.blogger.com/feeds/7815614485808579332/posts/default?category=ad_manager_api&amp;amp;orderby=published&quot;&gt;Ad Manager API&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.blogger.com/feeds/7815614485808579332/posts/default?category=authorized_buyers&amp;amp;orderby=published&quot;&gt;Authorized Buyers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.blogger.com/feeds/7815614485808579332/posts/default?category=dbm_api&amp;amp;orderby=published&quot;&gt;Bid Manager API&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.blogger.com/feeds/7815614485808579332/posts/default?category=dv360_api&amp;amp;orderby=published&quot;&gt;DV360 API&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.blogger.com/feeds/7815614485808579332/posts/default?category=sdf&amp;amp;orderby=published&quot;&gt;Structured Data Files&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.blogger.com/feeds/7815614485808579332/posts/default?category=ima_sdk&amp;amp;orderby=published&quot;&gt;IMA SDK&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.blogger.com/feeds/7815614485808579332/posts/default?category=mobile_ads_sdk&amp;amp;orderby=published&quot;&gt;Mobile Ads SDK&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;span class=&quot;byline-author&quot;&gt; - Mike Cloonan, Ads DevRel Team&lt;/span&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/2445788034932103171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/2445788034932103171'/><link rel='alternate' type='text/html' href='http://ads-developers.googleblog.com/2024/09/subscribe-to-blog.html' title='Subscribe to the blog'/><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-1957974842587218553</id><published>2022-06-21T11:21:00.003-07:00</published><updated>2022-06-21T11:21:51.102-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="DAI"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_html5"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_sdk"/><title type='text'>The Video.js-IMA plugin adds DAI support for HLS streams</title><content type='html'>&lt;p&gt;
The &lt;a href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/html5/dai&quot;&gt;IMA Dynamic Ad Insertion (DAI) SDK&lt;/a&gt; lets apps make stream requests for ad and content video streams, either VOD or live content. The SDK then enables a video player to play the combined stream so you don&#39;t have to manage switching between ad and content video within your apps.
&lt;/p&gt;
&lt;p&gt;
To improve support for HTML5 publishers, we have expanded the features provided by the &lt;a href=&quot;https://github.com/googleads/videojs-ima&quot;&gt;Video.js-IMA plugin&lt;/a&gt; to include DAI for HLS streams. With the latest version of the plugin, you can enable a Video.js player to request ads and content in a single HLS stream. Check out the new &lt;a href=&quot;https://googleads.github.io/videojs-ima/examples/dai/&quot;&gt;DAI sample app&lt;/a&gt; and the &lt;a href=&quot;https://github.com/googleads/videojs-ima/blob/main/README-DAI.md&quot;&gt;DAI README file&lt;/a&gt; for implementation details on how the Video.js-IMA plugin can simplify your IMA DAI integration. 
&lt;/p&gt;
&lt;p&gt;
For more information on IMA DAI, please see the &lt;a href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/html5/dai&quot;&gt;IMA HTML5 DAI getting started guide&lt;/a&gt;. If you have any questions or feedback about using DAI with the Video.js-IMA plugin,&lt;a href=&quot;https://github.com/googleads/videojs-ima/issues&quot;&gt; please&lt;/a&gt; &lt;a href=&quot;https://github.com/googleads/videojs-ima/issues&quot;&gt;raise an issue&lt;/a&gt; on GitHub.
&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;byline-author&quot;&gt;&lt;img width=&quot;40&quot; height=&quot;40&quot; src=&quot;https://lh3.googleusercontent.com/a-/AAuE7mCuOE0ipL96v9WF_TDUZ-jVGrtltQwnw7C4-TyT=s120-p-rw-no?sz=40&quot; style=&quot;vertical-align:middle; border:none;&quot;&gt;&amp;nbsp;-&amp;nbsp;Jackson Sui, Interactive Media Ads Developer Relations&lt;/span&gt;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/1957974842587218553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/1957974842587218553'/><link rel='alternate' type='text/html' href='http://ads-developers.googleblog.com/2022/06/the-videojs-ima-plugin-adds-dai-support.html' title='The Video.js-IMA plugin adds DAI support for HLS streams'/><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh3.googleusercontent.com/a-/AAuE7mCuOE0ipL96v9WF_TDUZ-jVGrtltQwnw7C4-TyT=s72-c-p-rw-no?sz=40" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-5149953402799052474</id><published>2021-12-14T10:02:00.000-08:00</published><updated>2021-12-14T10:02:56.209-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="caf_sdk"/><category scheme="http://www.blogger.com/atom/ns#" term="chromecast"/><category scheme="http://www.blogger.com/atom/ns#" term="deprecation"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_sdk"/><category scheme="http://www.blogger.com/atom/ns#" term="release"/><title type='text'>Updates to Chromecast integrations with Interactive Media Ads</title><content type='html'>&lt;br /&gt;&lt;br /&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;CAF DAI SDK Released&lt;/h2&gt;The &lt;a href=&quot;https://developers.google.com/interactive-media-ads&quot;&gt;Interactive Media Ads&lt;/a&gt; team is excited to announce that we’ve teamed up with the &lt;a href=&quot;https://developers.google.com/cast&quot;&gt;Cast Application Framework&lt;/a&gt; team to bring you the &lt;a href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/caf-dai&quot;&gt;CAF DAI SDK&lt;/a&gt;, a fully supported solution for casting DAI video streams to Chromecast devices. This project is a complete rewrite of our original &lt;a href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/cast/dai&quot;&gt;IMA SDK for Cast&lt;/a&gt;, significantly reducing the amount of code publishers need to write and streamlining the integration between the two SDKs.&lt;br /&gt;&lt;br /&gt;The &lt;a href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/caf-dai&quot;&gt;CAF DAI SDK&lt;/a&gt; provides a deep integration with &lt;a href=&quot;https://developers.google.com/cast/docs/web_receiver/ad_breaks#server-side_ad_stitching&quot;&gt;Chromecast Application Framework&#39;s native Ad Breaks&lt;/a&gt;, meaning that adding around 30 lines of code to an existing CAF receiver can enable:&lt;br /&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;DAI support for both Live and VOD streams&lt;/li&gt;&lt;li&gt;Media queue management&lt;/li&gt;&lt;li&gt;Sender and receiver UI, including ad break markers&lt;/li&gt;&lt;li&gt;Bidirectional communications between sender and receiver&lt;/li&gt;&lt;li&gt;Skippable ad support on VOD streams&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;With the previous SDK, all of these functions required manual implementation. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;img src=&quot;https://lh5.googleusercontent.com/nVcx_h9zrGFLiEWLNaXw6U8HKxvyrpOF1IaolRyXbzmPgPhXVcQD0UBk0qX7UOZIidf1ohcsr5YRMIirXTUlBmHbKp8VYSZNoPupcnCOmleq5y61pxCXq47lDXzvRp9mdO6g2qsbBTYCEBpbGves7tIeBugsrOEybnDlNHOUOivETHrk&quot;style=&quot;width: 100%;&quot; /&gt;
&lt;i&gt;A fully-featured CAF DAI integration&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;IMA SDK for Cast deprecated&lt;/h2&gt;As of December 13, 2021, both the &lt;a href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/cast/client-side&quot;&gt;client-side&lt;/a&gt; and &lt;a href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/cast/dai&quot;&gt;DAI&lt;/a&gt; versions of the IMA SDK for cast are now deprecated. Publishers who are currently using the IMA SDK for cast to implement client-side advertisements are encouraged to migrate to using &lt;a href=&quot;https://developers.google.com/cast/docs/web_receiver/ad_breaks&quot;&gt;CAF native ad breaks&lt;/a&gt;. Publishers who are currently using the IMA SDK for cast to implement DAI advertisements are encouraged to migrate to the new &lt;a href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/caf-dai&quot;&gt;CAF DAI SDK&lt;/a&gt;.  These new implementation options offer publishers significantly simpler integrations with better stability and tighter integration with the entire cast ecosystem.&lt;br /&gt;

&lt;table style=&quot;border-collapse: collapse; border: none; width: 100%;&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;background-color: #6199df; border-bottom: solid #4d90fe 1px; border-left: solid #4d90fe 1px; border-right: solid #4d90fe 1px; border-top: solid #4d90fe 1px; height: 0px; vertical-align: top;&quot;&gt;
  &lt;th style=&quot;border-bottom: solid #4d90fe 1px; border-left: solid #4d90fe 1px; border-right: solid #4d90fe 1px; border-top: solid #4d90fe 1px; padding: 7px 7px 7px 7px;&quot;&gt;&lt;span style=&quot;color: white;&quot;&gt;Advertisement Type&lt;/span&gt;
  &lt;/th&gt;
  &lt;th style=&quot;border-bottom: solid #4d90fe 1px; border-left: solid #4d90fe 1px; border-right: solid #4d90fe 1px; border-top: solid #4d90fe 1px; padding: 7px 7px 7px 7px;&quot;&gt;&lt;span style=&quot;color: white;&quot;&gt;Deprecated Solution&lt;/span&gt;
  &lt;/th&gt;
    &lt;th style=&quot;border-bottom: solid #4d90fe 1px; border-left: solid #4d90fe 1px; border-right: solid #4d90fe 1px; border-top: solid #4d90fe 1px; padding: 7px 7px 7px 7px;&quot;&gt;&lt;span style=&quot;color: white;&quot;&gt;Recommended Solution&lt;/span&gt;
  &lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;&quot;&gt;Client Side&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;&quot;&gt;&lt;a href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/cast/client-side&quot;&gt;IMA SDK for Cast&lt;/a&gt;&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;&quot;&gt;&lt;a href=&quot;https://developers.google.com/cast/docs/web_receiver/ad_breaks&quot;&gt;CAF native ad breaks&lt;/a&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;&quot;&gt;DAI&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;&quot;&gt;&lt;a href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/cast/dai&quot;&gt;IMA SDK for Cast&lt;/a&gt; &lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #bbbbbb 1px; border-left: solid #bbbbbb 1px; border-right: solid #bbbbbb 1px; border-top: solid #bbbbbb 1px; padding: 7px 7px 7px 7px; vertical-align: middle;&quot;&gt;&lt;a href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/caf-dai&quot;&gt;CAF DAI SDK&lt;/a&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;br /&gt;The &lt;a href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/cast/dai&quot;&gt;Client side&lt;/a&gt; and &lt;a href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/cast/dai&quot;&gt;DAI&lt;/a&gt; versions of the IMA SDK for Cast will continue to function for the foreseeable future but support and new development will be focused on the CAF DAI SDK moving forward. The IMA SDK team will continue to offer best attempt support for the deprecated SDKs through December of 2022, however, some limitations of the older platform may only be resolved by migrating to the new workflows described above.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We highly recommend that publishers who are currently using the older IMA SDK for Cast begin migrating to these new workflows for improved stability, simplified integration, and a much more polished developer experience.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;—&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For more information about these changes, check out the &lt;a href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/caf-dai&quot;&gt;developer documentation&lt;/a&gt;. If you have any issues migrating your integration from the IMA SDK for Cast to the CAF DAI SDK, feel free to reach out via our &lt;a href=&quot;https://groups.google.com/g/ima-sdk&quot;&gt;developer forums&lt;/a&gt;.&lt;br /&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/5149953402799052474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/5149953402799052474'/><link rel='alternate' type='text/html' href='http://ads-developers.googleblog.com/2021/12/updates-to-chromecast-integrations-with.html' title='Updates to Chromecast integrations with Interactive Media Ads'/><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh5.googleusercontent.com/nVcx_h9zrGFLiEWLNaXw6U8HKxvyrpOF1IaolRyXbzmPgPhXVcQD0UBk0qX7UOZIidf1ohcsr5YRMIirXTUlBmHbKp8VYSZNoPupcnCOmleq5y61pxCXq47lDXzvRp9mdO6g2qsbBTYCEBpbGves7tIeBugsrOEybnDlNHOUOivETHrk=s72-c" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-601948736013243427</id><published>2020-09-18T14:40:00.004-07:00</published><updated>2021-03-16T11:21:01.380-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ima_android"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_html5"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_ios"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_sdk"/><title type='text'>Changes to pause behavior in the Interactive Media Ads (IMA) SDK</title><content type='html'>&lt;p&gt;
&lt;strong style=&quot;color: red&quot;&gt;Updated (3/16/2021):&lt;/strong&gt; We have launched the new “pause” behavior on 25% of IMA traffic. This feature will be enabled on 100% of IMA traffic by April 16, 2021. Publishers looking to temporarily disable the new pause behavior may do so using the &lt;a href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/html5/client-side/reference/js/google.ima.ImaSdkSettings#setFeatureFlags&quot;&gt;ImaSdkSettings.setFeatureFlags()&lt;/a&gt; API:
&lt;/p&gt;

&lt;pre class=&quot;prettyprint&quot;&gt;adsLoader.getSettings().setFeatureFlags({&#39;disableClickAdPause&#39;: true});&lt;/pre&gt;

&lt;p&gt;
This feature flag will be available to publishers to disable the new pause behavior until June 1, 2021 to give publishers more time to make the recommended changes outlined below. After June 1, 2021, this feature flag will no longer function and will become a no-op.
&lt;/p&gt;

&lt;p&gt;&lt;strike&gt;
&lt;strong style=&quot;color: red&quot;&gt;Update (1/14/2021):&lt;/strong&gt; The new target date for the changes to pause behavior to begin to launch is &lt;strong&gt;February 14th, 2021&lt;/strong&gt;. Initially these changes will only affect a low percentage of requests in order to allow publishers time to make any adjustments without affecting their entire inventory. These changes will ramp up to 100% of IMA impressions on &lt;strong&gt;March 2nd, 2021&lt;/strong&gt;.
&lt;/strike&gt;&lt;/p&gt;

&lt;p&gt;&lt;strike&gt;
&lt;strong style=&quot;color: red&quot;&gt;Update (11/13/2020):&lt;/strong&gt; The November 9th launch got rolled back due to the release negatively impacting some publishers. These changes are now being delayed until Q1 2021, with a more specific date to follow. The new date has now been updated in the below text.
  &lt;/strike&gt;&lt;/p&gt;

&lt;p&gt;&lt;strike&gt;
&lt;strong style=&quot;color: red&quot;&gt;Update (10/27/2020):&lt;/strong&gt; The targeted date for the changes to pause behavior is now set for &lt;strong&gt;November 9th, 2020&lt;/strong&gt;. This has been updated in the below text, instead of the original date of October 13th, 2020.
&lt;/strike&gt;&lt;/p&gt;

&lt;p&gt;
The IMA SDK is preparing to release changes to pause behavior when user clicks cause navigation away from the page or app. When this happens, the ad will be paused automatically by the SDK. These changes will launch on &lt;strong&gt;February 14th, 2021&lt;/strong&gt; for a low percentage of IMA requests. By &lt;strong&gt;April 16th, 2021&lt;/strong&gt; the changes to pause behavior will ramp up to affect 100% of IMA requests.
&lt;/p&gt;
&lt;p&gt;
The IMA client-side SDKs already pause ad playback for ad click-throughs, but these changes add automatic pausing to many other user actions. The IMA DAI SDKs currently do not pause for any click events.  For either implementation, if your code does not already provide a way for users to resume ad playback when ads are paused, we recommend adding a way to resume ad playback following ad pause events.
&lt;/p&gt;
&lt;p&gt;
When the SDK automatically pauses the ad, the &lt;a href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/html5/client-side/reference/js/google.ima.AdEvent#.Type&quot;&gt;&lt;code&gt;PAUSED&lt;/code&gt;&lt;/a&gt; event will be fired. We recommend that publishers listen for this event, and update the UI to allow the viewer to resume the ad. &lt;strong&gt;If this UI is not shown, the player may be permanently paused on the ad without a way for the user to resume ad or content playback&lt;/strong&gt;.
&lt;/p&gt;
&lt;h3&gt;Client-side changes&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;On Desktop web, the SDK will automatically pause when the user clicks on an ad which results in navigation away from the page.
  &lt;ul&gt;
    &lt;li&gt;This behavior already exists for mobile web and mobile apps.&lt;/li&gt;
  &lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;On all platforms, the SDK will attempt to automatically pause if the user clicks on the:
  &lt;ul&gt;
    &lt;li&gt;Learn more button
    &lt;li&gt;Ad click (desktop)
    &lt;li&gt;Non-linear ad
    &lt;li&gt;Icon click
    &lt;li&gt;AdChoices icon&lt;/li&gt;
  &lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Dynamic Ad Insertion (DAI) changes&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;On all platforms for DAI, the SDK will attempt to automatically pause if the user clicks on the: &lt;ul&gt;
 &lt;li&gt;Learn more button
 &lt;li&gt;Ad click (desktop)
 &lt;li&gt;Icon click
 &lt;li&gt;AdChoices icon&lt;/li&gt; &lt;/ul&gt;
&lt;/li&gt; &lt;/ul&gt;

&lt;h3&gt;Pause events&lt;/h3&gt;

&lt;p&gt;The table below shows which API is called when a pause event occurs:&lt;/p&gt;

&lt;table border=1&gt;
  &lt;tr&gt;
   &lt;th&gt;&lt;strong&gt;IMA platform&lt;/strong&gt;
   &lt;/th&gt;
   &lt;th&gt;&lt;strong&gt;SDK version&lt;/strong&gt;
   &lt;/th&gt;
   &lt;th&gt;&lt;strong&gt;Pause event for client-side SDK&lt;/strong&gt;
   &lt;/th&gt;
   &lt;th&gt;&lt;strong&gt;Pause event for DAI SDK&lt;/strong&gt;
   &lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td&gt;HTML5
   &lt;/td&gt;
   &lt;td&gt;The current evergreen version.
   &lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/html5/client-side/reference/js/google.ima.AdEvent#.Type&quot;&gt;google.ima.AdEvent.Type.PAUSED&lt;/a&gt;
   &lt;/td&gt;
   &lt;td&gt;The video player’s &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/pause_event&quot;&gt;pause event&lt;/a&gt;.
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td&gt;Android
   &lt;/td&gt;
   &lt;td&gt;V3.20.0 and later.
   &lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/android/dai/api/reference/com/google/ads/interactivemedia/v3/api/player/VideoAdPlayer.html#public-abstract-void-pausead-admediainfo-admediainfo&quot;&gt;videoAdPlayer.pauseAd()&lt;/a&gt;
   &lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/android/dai/api/reference/com/google/ads/interactivemedia/v3/api/player/VideoStreamPlayer.html#pause()&quot;&gt;videoStreamPlayer.pause()&lt;/a&gt;
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td&gt;iOS/tvOS
   &lt;/td&gt;
   &lt;td&gt;All versions
   &lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/ios/dai/reference/Enums/IMAAdEventType#kimaadevent_pause&quot;&gt;kIMAAdEvent_PAUSE&lt;/a&gt; 
   &lt;/td&gt;
   &lt;td&gt;&lt;a href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/ios/dai/reference/Enums/IMAAdEventType#kimaadevent_pause&quot;&gt;kIMAAdEvent_PAUSE&lt;/a&gt; 
   &lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;


&lt;p&gt;
&lt;em&gt;Note: For Android, the onPause event is only available on v3.20.0 and later. For previous versions the IMA SDK will not automatically pause ads, and developers will not have to implement these changes.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
Please see the following code snippet as an example of setting up a listener for the PAUSED event for a client-side HTML5 IMA SDK implementation:
&lt;/p&gt;



&lt;pre class=&quot;prettyprint&quot;&gt;adsManager.addEventListener(google.ima.AdEvent.Type.PAUSED, function() {
    showAdResumeUI();
});

function showAdResumeUI() {
  // TODO: Add a play button that resumes playback.
}&lt;/pre&gt;


&lt;p&gt;
Please review your IMA SDK integrations and make any necessary adjustments to handle the pause event so that you’re prepared for when the changes go live on &lt;strong&gt;February 14th, 2021&lt;/strong&gt;. Please look for announcements about pause behavior changes in the IMA HTML5 SDK &lt;a href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/html5/client-side/history&quot;&gt;release notes&lt;/a&gt;. If you have questions about making these changes for your own IMA SDK integrations, feel free to reach out to us on the &lt;a href=&quot;https://groups.google.com/group/ima-sdk&quot;&gt;IMA SDK forum&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;byline-author&quot;&gt;&lt;img width=&quot;40&quot; height=&quot;40&quot; src=&quot;https://lh3.googleusercontent.com/a-/AAuE7mCuOE0ipL96v9WF_TDUZ-jVGrtltQwnw7C4-TyT=s120-p-rw-no?sz=40&quot; style=&quot;vertical-align:middle; border:none;&quot;&gt;&amp;nbsp;-&amp;nbsp;Jackson Sui, Interactive Media Ads Developer Relations&lt;/span&gt;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/601948736013243427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/601948736013243427'/><link rel='alternate' type='text/html' href='http://ads-developers.googleblog.com/2020/09/changes-to-pause-behavior-in.html' title='Changes to pause behavior in the Interactive Media Ads (IMA) 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='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh3.googleusercontent.com/a-/AAuE7mCuOE0ipL96v9WF_TDUZ-jVGrtltQwnw7C4-TyT=s72-c-p-rw-no?sz=40" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-5540847172556233626</id><published>2020-05-27T11:06:00.000-07:00</published><updated>2020-05-27T11:06:46.203-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ima_android"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_html5"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_ios"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_sdk"/><title type='text'>SIMID support in the Interactive Media Ads SDK</title><content type='html'>&lt;p&gt;
The &lt;a href=&quot;https://iabtechlab.com/simid/&quot;&gt;Secure Interactive Media Interface Definition&lt;/a&gt; (SIMID) is a new ad format for interactive video ads. It was designed to be the successor of the Video Player Ad-Serving Interface Definition (VPAID) according to the Interactive Advertising Bureau. SIMID addresses many of the issues with VPAID, including slow loading times, security limitations, and being difficult to debug with only a single error code (901).
&lt;/p&gt;
&lt;p&gt;
SIMID support is available in the HTML5, Android, and iOS IMA SDKs for client-side ads starting with the following releases:
&lt;/p&gt;&lt;ul&gt;

&lt;li&gt;&lt;a href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/html5/v3/history&quot;&gt;Version 3.383.0 for HTML5&lt;/a&gt;
&lt;li&gt;&lt;a href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/android/v3/history&quot;&gt;Version 3.18.1 for Android&lt;/a&gt;
&lt;li&gt;&lt;a href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/ios/v3/history&quot;&gt;Version 3.11.4 for iOS&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h3&gt;Improvements in the SIMID API Model over VPAID&lt;/h3&gt;


&lt;p&gt;
Unlike VPAID, the code for SIMID ad creatives runs in a secure sandbox so that it cannot access other resources on the page. With SIMID, the player maintains control while the creative sends messages to the player about which actions are needed to perform its functions. This is demonstrated in the diagram below:
&lt;/p&gt;
&lt;p&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpakH61xE19YrFt79cvOOtSV89qhSRUZAIzpZ5AOL2fzYQ4Y6-kzHdIPQlTFYs_QqW-mK-nR8T21ggxdBu3XXtOlsjbqe_2F6YaR-gBuchFx-bazDWpHYZwCoXGBRVNyWbrj5R8-dOzFQ/s1600/vpaid.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpakH61xE19YrFt79cvOOtSV89qhSRUZAIzpZ5AOL2fzYQ4Y6-kzHdIPQlTFYs_QqW-mK-nR8T21ggxdBu3XXtOlsjbqe_2F6YaR-gBuchFx-bazDWpHYZwCoXGBRVNyWbrj5R8-dOzFQ/s640/vpaid.png&quot; width=&quot;640&quot; height=&quot;272&quot; data-original-width=&quot;800&quot; data-original-height=&quot;340&quot; /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;
As a result, SIMID offers the following advantages over VPAID: 
&lt;/p&gt;&lt;ul&gt;

&lt;li&gt;Improved security by sandboxing the ad from the publishers page
&lt;li&gt;Improved asset transparency by including the media file in the VAST response
&lt;li&gt;Support for pre-caching
&lt;li&gt;Faster load times
&lt;li&gt;Improved error reporting from more granular &lt;a href=&quot;https://interactiveadvertisingbureau.github.io/SIMID/#error-codes&quot;&gt;error codes&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h3&gt;Using SIMID with the IMA SDK&lt;/h3&gt;


&lt;p&gt;
SIMID creatives are ready to be used within VAST ad-tags. To get started, see the &lt;a href=&quot;https://github.com/InteractiveAdvertisingBureau/SIMID&quot;&gt;IAB’s example on GitHub&lt;/a&gt; or test it yourself using this &lt;a href=&quot;https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/simid&amp;description_url=https%3A%2F%2Fdevelopers.google.com%2Finteractive-media-ads&amp;tfcd=0&amp;npa=0&amp;sz=640x480&amp;gdfp_req=1&amp;output=vast&amp;unviewed_position_start=1&amp;env=vp&amp;impl=s&amp;correlator=&quot;&gt;SIMID ad tag&lt;/a&gt;. If you have questions about the IMA SDK, see the &lt;a href=&quot;https://developers.google.com/interactive-media-ads&quot;&gt;SDK documentation&lt;/a&gt; or reach out to us on the &lt;a href=&quot;https://groups.google.com/group/ima-sdk&quot;&gt;IMA SDK forum&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;byline-author&quot;&gt;&lt;img width=&quot;40&quot; height=&quot;40&quot; src=&quot;https://lh3.googleusercontent.com/a-/AAuE7mCuOE0ipL96v9WF_TDUZ-jVGrtltQwnw7C4-TyT=s120-p-rw-no?sz=40&quot; style=&quot;vertical-align:middle; border:none;&quot;&gt;&amp;nbsp;-&amp;nbsp;Jackson Sui, Interactive Media Ads Developer Relations&lt;/span&gt;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/5540847172556233626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/5540847172556233626'/><link rel='alternate' type='text/html' href='http://ads-developers.googleblog.com/2020/05/simid-support-in-interactive-media-ads.html' title='SIMID support in the Interactive Media Ads 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='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpakH61xE19YrFt79cvOOtSV89qhSRUZAIzpZ5AOL2fzYQ4Y6-kzHdIPQlTFYs_QqW-mK-nR8T21ggxdBu3XXtOlsjbqe_2F6YaR-gBuchFx-bazDWpHYZwCoXGBRVNyWbrj5R8-dOzFQ/s72-c/vpaid.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-1666188470173216183</id><published>2019-12-17T12:23:00.000-08:00</published><updated>2019-12-17T12:23:34.879-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="android"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_sdk"/><title type='text'>The Interactive Media Ads (IMA) SDK for Android moves to Google&#39;s Maven repository</title><content type='html'>&lt;p&gt;
With the release of version 3.16.0 of the Interactive Media Ads SDK (IMA SDK) for Android, the location where we host the SDK has changed to &lt;a href=&quot;https://maven.google.com/web/index.html&quot;&gt;Google&#39;s Maven Repository&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
As a result of this change, your Android project should include a reference to the &lt;code&gt;google()&lt;/code&gt; repository (Google&#39;s Maven Repository) as a dependency. Previously, the SDK was hosted on &lt;a href=&quot;https://bintray.com/bintray/jcenter&quot;&gt;JCenter&lt;/a&gt;.  You can now remove the &lt;code&gt;jcenter()&lt;/code&gt; reference from your Android project’s &lt;code&gt;build.gradle&lt;/code&gt; file, as long as none of your other dependencies are hosted there.
&lt;/p&gt;
&lt;p&gt;
The &lt;code&gt;google()&lt;/code&gt; repository should be referenced in the project-level &lt;code&gt;build.gradle&lt;/code&gt; file of your project. You should then import the IMA SDK in the &lt;code&gt;app/build.gradle&lt;/code&gt; file. See an example in the following code snippet from the &lt;a href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/android#adding-the-ima-android-sdk-to-the-player-app&quot;&gt;Adding the IMA Android SDK to the player app&lt;/a&gt; section of the Android IMA SDK getting started guide.
&lt;/p&gt;



&lt;pre class=&quot;prettyprint&quot;&gt;repositories {
    google()
}

dependencies {
    implementation &#39;androidx.appcompat:appcompat:1.1.0&#39;
    implementation &#39;com.google.ads.interactivemedia.v3:interactivemedia:3.16.0&#39;
}&lt;/pre&gt;


&lt;p&gt;
Another change that comes from this update is that the &lt;code&gt;com.google.android.gms:play-services-ads-identifier&lt;/code&gt; target is now included as a dependency of the IMA SDK and is no longer required to be explicitly included in the &lt;code&gt;app/build.gradle&lt;/code&gt; file.
&lt;/p&gt;
&lt;p&gt;
If you have questions about the IMA SDK for Android, please see the &lt;a href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/android&quot;&gt;SDK documentation&lt;/a&gt;, or reach out to us on the &lt;a href=&quot;https://groups.google.com/group/ima-sdk&quot;&gt;IMA SDK forum&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;byline-author&quot;&gt;&lt;img width=&quot;40&quot; height=&quot;40&quot; src=&quot;https://lh3.googleusercontent.com/a-/AAuE7mCuOE0ipL96v9WF_TDUZ-jVGrtltQwnw7C4-TyT=s120-p-rw-no?sz=40&quot; style=&quot;vertical-align:middle; border:none;&quot;&gt;&amp;nbsp;-&amp;nbsp;Jackson Sui, Interactive Media Ads Developer Relations&lt;/span&gt;&lt;/p&gt;
</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/1666188470173216183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/1666188470173216183'/><link rel='alternate' type='text/html' href='http://ads-developers.googleblog.com/2019/12/the-interactive-media-ads-ima-sdk-for.html' title='The Interactive Media Ads (IMA) SDK for Android moves to Google&#39;s Maven repository'/><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh3.googleusercontent.com/a-/AAuE7mCuOE0ipL96v9WF_TDUZ-jVGrtltQwnw7C4-TyT=s72-c-p-rw-no?sz=40" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-8543997752173672505</id><published>2019-02-08T09:31:00.000-08:00</published><updated>2019-02-08T09:31:55.960-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ad_manager_api"/><category scheme="http://www.blogger.com/atom/ns#" term="adwords_api"/><category scheme="http://www.blogger.com/atom/ns#" term="adwords_scripts"/><category scheme="http://www.blogger.com/atom/ns#" term="content_api"/><category scheme="http://www.blogger.com/atom/ns#" term="dfa_api"/><category scheme="http://www.blogger.com/atom/ns#" term="dfp_api"/><category scheme="http://www.blogger.com/atom/ns#" term="google_ads_api"/><category scheme="http://www.blogger.com/atom/ns#" term="google_ads_scripts"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_sdk"/><category scheme="http://www.blogger.com/atom/ns#" term="mobile_ads"/><title type='text'>Subscribe to our RSS feed to get blog posts via email</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;em&gt;(If you want to continue getting email updates about our blog posts, read on. If you don&#39;t want email updates from this blog, you can skip this post.)&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;

For some products, the Google Ads Developer team has used Google groups as a way to allow API users to subscribe and get new relevant blog posts delivered to their email address. Starting now, &lt;strong&gt;the way you can get email updates about blog posts is changing&lt;/strong&gt;. We will no longer send an email to the Google group for each new blog post. We will continue to use the Google groups for other important updates, however.&lt;br /&gt;&lt;br /&gt;

For users who still want email updates, we&#39;ve introduced new FeedBurner links on the right-hand panel of our &lt;a href=&quot;https://ads-developers.googleblog.com/&quot;&gt;blog homepage&lt;/a&gt;. You can subscribe to the RSS feed by clicking on the link for the product you&#39;re interested in, or subscribe by email by clicking on the [+] link to the right of the product name.&lt;br /&gt;&lt;br /&gt;

If you use any of the APIs that we discuss on this blog, make sure you subscribe to the feed to keep up with the latest news and updates:

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/blogspot/hecyUu&quot;&gt;Google Ads API&lt;/a&gt; [&lt;a href=&quot;https://feedburner.google.com/fb/a/mailverify?uri=blogspot/hecyUu&quot;&gt;+&lt;/a&gt;]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/blogspot/lQlzL&quot;&gt;AdWords API&lt;/a&gt; [&lt;a href=&quot;https://feedburner.google.com/fb/a/mailverify?uri=blogspot/hecyUu&quot;&gt;+&lt;/a&gt;]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/blogspot/dfkTr&quot;&gt;Google Ads scripts&lt;/a&gt; [&lt;a href=&quot;https://feedburner.google.com/fb/a/mailverify?uri=blogspot/dfkTr&quot;&gt;+&lt;/a&gt;]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/blogspot/QNXjHS&quot;&gt;Content API for Shopping&lt;/a&gt; [&lt;a href=&quot;https://feedburner.google.com/fb/a/mailverify?uri=blogspot/QNXjHS&quot;&gt;+&lt;/a&gt;]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/blogspot/BgIHu&quot;&gt;Google Ad Manager API&lt;/a&gt; [&lt;a href=&quot;https://feedburner.google.com/fb/a/mailverify?uri=blogspot/BgIHu&quot;&gt;+&lt;/a&gt;]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/blogspot/JnFNG&quot;&gt;DCM API&lt;/a&gt; [&lt;a href=&quot;https://feedburner.google.com/fb/a/mailverify?uri=blogspot/JnFNG&quot;&gt;+&lt;/a&gt;]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/blogspot/VhQUB&quot;&gt;Mobile Ads&lt;/a&gt; [&lt;a href=&quot;https://feedburner.google.com/fb/a/mailverify?uri=blogspot/VhQUB&quot;&gt;+&lt;/a&gt;]&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/blogspot/zyFEWx&quot;&gt;IMA SDK&lt;/a&gt; [&lt;a href=&quot;https://feedburner.google.com/fb/a/mailverify?uri=blogspot/zyFEWx&quot;&gt;+&lt;/a&gt;]&lt;/li&gt;
&lt;/ul&gt;

&lt;span class=&quot;byline-author&quot;&gt;&lt;img height=&quot;40&quot; width=&quot;40&quot; src=&quot;https://lh3.googleusercontent.com/aMB3q9V2ZUFicMmSHmO5WM-EP16dXhruPUl1oVSCsPgd8m5PP8UVHpDlWilzM2CBVM_oWhUf3g=w1920-h1200-rw-no&quot; style=&quot;vertical-align: middle; border:none;&quot;&gt; - Mike Cloonan, Ads Developer Relations Team&lt;/span&gt;
&lt;/div&gt;
</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/8543997752173672505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/8543997752173672505'/><link rel='alternate' type='text/html' href='http://ads-developers.googleblog.com/2019/02/subscribe-to-our-rss-feed-to-get-blog.html' title='Subscribe to our RSS feed to get blog posts via email'/><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh3.googleusercontent.com/aMB3q9V2ZUFicMmSHmO5WM-EP16dXhruPUl1oVSCsPgd8m5PP8UVHpDlWilzM2CBVM_oWhUf3g=s72-w1920-h1200-c-rw-no" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-2556106618697195571</id><published>2018-04-24T12:26:00.000-07:00</published><updated>2018-04-24T12:26:30.846-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ima_flash"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_html5"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_sdk"/><category scheme="http://www.blogger.com/atom/ns#" term="sunset"/><title type='text'>Sunsetting Flash in the IMA SDKs</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;b&gt;On May 15, 2018, Google will be sunsetting Flash in the IMA SDKs.&lt;/b&gt; This change will affect all users of the Flash IMA SDK, and a very small number of users of the HTML5 IMA SDK.&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Changes to the Flash SDK&lt;/h3&gt;
As of May 15, 2018, attempts to load the Flash IMA SDK will fire an AdErrorEvent.AD_ERROR from the AdsLoader. This is a change to the portion of the Flash SDK that is loaded at run time, and therefore will affect all Flash SDK implementations in production. If you&#39;ve followed our &lt;a href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/flash/quickstart&quot;&gt;implementation best practices&lt;/a&gt;, your handler for this error will play your content video:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
private function initAdsLoader():void {&lt;br /&gt;&amp;nbsp; ...&lt;br /&gt;&amp;nbsp; adsLoader.addEventListener(AdErrorEvent.AD_ERROR, adsLoadErrorHandler);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;private function adsLoadErrorHandler(event:AdErrorEvent):void {&lt;br /&gt;&amp;nbsp; trace(&quot;warning&quot;, &quot;Ads load error: &quot; + event.error.errorMessage);&lt;br /&gt;&amp;nbsp; videoPlayer.play();&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;We strongly encourage all publishers still using the Flash SDK to migrate to the &lt;a href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/html5/&quot;&gt;HTML5 SDK&lt;/a&gt;. As part of this sunset, we will also be removing the Flash SDK documentation from developers.google.com and removing the Flash samples from GitHub.&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Changes to the HTML5 SDK&lt;/h3&gt;
As of May 15, 2018, the HTML5 IMA SDK will stop supporting all Flash ads. This includes linear, non-linear, and companion ads. If your VAST response includes only Flash media files, the IMA SDK will throw error &lt;a href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/html5/v3/apis#ima.AdError.ErrorCode.VAST_LINEAR_ASSET_MISMATCH&quot;&gt;403 - VAST_LINEAR_ASSET_MISMATCH&lt;/a&gt; for linear ads, and error &lt;a href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/html5/v3/apis#ima.AdError.ErrorCode.VAST_NONLINEAR_ASSET_MISMATCH&quot;&gt;503 - VAST_NONLINEAR_ASSET_MISMATCH&lt;/a&gt; for non-linear ads. Flash companion ads will fail silently. The HTML5 SDK stopped supporting Flash VPAID ads with the &lt;a href=&quot;https://ads-developers.googleblog.com/2017/01/deprecating-flash-in-ima-sdks.html&quot;&gt;deprecation of the Flash IMA SDK last June&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As always, if you have any questions, feel free to contact us via the &lt;a href=&quot;https://groups.google.com/forum/?fromgroups#!forum/ima-sdk&quot;&gt;support forum&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;span class=&quot;byline-author&quot;&gt;&lt;a href=&quot;https://plus.google.com/+ShawnBusolits/&quot;&gt;&lt;img height=&quot;20&quot; src=&quot;https://lh4.googleusercontent.com/-C7Z3JfzZb78/UZUDn8Yr34I/AAAAAAAAZQ4/YFq-aZ_rgNw/w640-h960-no/profile.jpg&quot; style=&quot;border: none; vertical-align: middle;&quot; width=&quot;20&quot; /&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href=&quot;https://plus.google.com/+ShawnBusolits/&quot; rel=&quot;author&quot;&gt;Shawn Busolits&lt;/a&gt;, IMA SDK Team&lt;/span&gt;&lt;/div&gt;
</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/2556106618697195571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/2556106618697195571'/><link rel='alternate' type='text/html' href='http://ads-developers.googleblog.com/2018/04/sunsetting-flash-in-ima-sdks.html' title='Sunsetting Flash in the IMA SDKs'/><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh4.googleusercontent.com/-C7Z3JfzZb78/UZUDn8Yr34I/AAAAAAAAZQ4/YFq-aZ_rgNw/s72-w640-h960-c-no/profile.jpg" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-2215965690294925341</id><published>2018-03-26T11:28:00.000-07:00</published><updated>2018-03-26T11:28:00.504-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="android"/><category scheme="http://www.blogger.com/atom/ns#" term="deprecation"/><category scheme="http://www.blogger.com/atom/ns#" term="GMF"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_android"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_sdk"/><title type='text'>Google Media Framework for Android is Deprecated</title><content type='html'>&lt;p&gt;As &lt;a href=&quot;http://googleadsdeveloper.blogspot.com/2017/12/deprecating-gmf-for-android.html&quot;&gt;previously announced&lt;/a&gt;, as of March 15th, 2018, the Google Media Framework (GMF) for Android is &lt;b&gt;deprecated&lt;/b&gt; in favor of the &lt;a href=&quot;https://github.com/google/ExoPlayer/tree/release-v2/extensions/ima&quot;&gt;IMA ExoPlayer plugin&lt;/a&gt;. All development and support for GMF has been halted. If you are a GMF Android user, we recommend you migrate to the &lt;a href=&quot;https://github.com/google/ExoPlayer/tree/release-v2/extensions/ima&quot;&gt;IMA ExoPlayer plugin&lt;/a&gt; at your earliest convenience. Alternatively, to keep using GMF Android, you will have to fork and maintain it yourself.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Note: We are NOT deprecating &lt;a href=&quot;https://github.com/googleads/google-media-framework-ios&quot;&gt;GMF for iOS&lt;/a&gt;.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;If you have any questions, feel free to contact us via the &lt;a href=&quot;https://groups.google.com/forum/?hl=en_US&amp;fromgroups#!forum/ima-sdk&quot;&gt;IMA SDK developer forum&lt;/a&gt;.&lt;/p&gt;

&lt;span class=&#39;byline-author&#39;&gt;&lt;a href=&quot;https://plus.google.com/u/0/115192712137004592087&quot;&gt;&lt;img width=&quot;20&quot; height=&quot;20&quot; src=&quot;https://lh3.googleusercontent.com/-fBnDgmUOklY/AAAAAAAAAAI/AAAAAAAAABo/Y7fukcxel1w/s120-c/photo.jpg?sz=20&quot; style=&quot;vertical-align:middle; border:none;&quot;&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href=&quot;https://plus.google.com/u/0/115192712137004592087&quot; rel=&quot;author&quot;&gt;Yury Pavlotsky&lt;/a&gt;, IMA SDK Team&lt;/span&gt;
</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/2215965690294925341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/2215965690294925341'/><link rel='alternate' type='text/html' href='http://ads-developers.googleblog.com/2018/03/google-media-framework-for-android-is.html' title='Google Media Framework for Android is Deprecated'/><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh3.googleusercontent.com/-fBnDgmUOklY/AAAAAAAAAAI/AAAAAAAAABo/Y7fukcxel1w/s72-c/photo.jpg?sz=20" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-788615913249171181</id><published>2018-02-13T13:57:00.000-08:00</published><updated>2018-02-13T13:57:37.120-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="amp"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_html5"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_sdk"/><title type='text'>Announcing the IMA SDK AMP Extension</title><content type='html'>&lt;p&gt;We’re excited to announce that we’ve teamed up with the &lt;a href=&quot;https://www.ampproject.org/&quot;&gt;Accelerated Mobile Pages&lt;/a&gt; team to bring you &lt;a href=&quot;https://github.com/ampproject/amphtml/blob/master/extensions/amp-ima-video/amp-ima-video.md&quot;&gt;amp-ima-video&lt;/a&gt;, an IMA-SDK-enabled video player extension for AMP pages. This extension has been an AMP experiment for the past few months, but today we’re moving from experiment to public release.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;amp-ima-video&lt;/code&gt; provides an AMP-enabled video player with the IMA SDK pre-integrated, so you can easily play and monetize content on your AMP pages. Simply provide your content URL and an ad tag, and we’ll handle playing back the video and ad(s). The extension currently supports linear in-stream single ads and VMAP playlists. To see it in action, check out the &lt;a href=&quot;https://ampbyexample.com/components/amp-ima-video/&quot;&gt;AMP by Example page for the extension&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you have any questions or issues with the extension, please file them via the &lt;a href=&quot;https://github.com/ampproject/amphtml/issues&quot;&gt;AMP issue tracker&lt;/a&gt; on GitHub.&lt;/p&gt;

&lt;span class=&quot;byline-author&quot;&gt;&lt;a href=&quot;https://plus.google.com/+ShawnBusolits/&quot;&gt;&lt;img width=&quot;20&quot; height=&quot;20&quot; src=&quot;https://lh4.googleusercontent.com/-C7Z3JfzZb78/UZUDn8Yr34I/AAAAAAAAZQ4/YFq-aZ_rgNw/w640-h960-no/profile.jpg&quot; style=&quot;vertical-align:middle; border:none;&quot;&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href=&quot;https://plus.google.com/+ShawnBusolits/&quot; rel=&quot;author&quot;&gt;Shawn Busolits&lt;/a&gt;, IMA SDK Team&lt;/span&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/788615913249171181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/788615913249171181'/><link rel='alternate' type='text/html' href='http://ads-developers.googleblog.com/2018/02/announcing-ima-sdk-amp-extension.html' title='Announcing the IMA SDK AMP Extension'/><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh4.googleusercontent.com/-C7Z3JfzZb78/UZUDn8Yr34I/AAAAAAAAZQ4/YFq-aZ_rgNw/s72-w640-h960-c-no/profile.jpg" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-1222847893741066484</id><published>2018-02-12T11:05:00.000-08:00</published><updated>2018-02-12T11:05:46.954-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="deprecation"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_ios"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_sdk"/><title type='text'>Ending support for iOS 8 in the IMA SDK</title><content type='html'>&lt;p&gt;With the release of v3.7.0 of the IMA iOS SDK, we will stop providing forum support and bug fixes for iOS IMA SDK issues specifically related to iOS 8 and below.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;What does this mean if an app is currently targeting iOS 8?&lt;/b&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;There are no changes in v3.7.0  specifically designed to break compatibility, so the iOS IMA SDK will continue to work with iOS 8 in the short term. However, future releases are not guaranteed to continue to work with iOS 8.&lt;/li&gt;
  &lt;li&gt;Bugs that only affect iOS 8 will no longer be investigated.&lt;/li&gt;
  &lt;li&gt;If you are using our &lt;a href=&quot;https://cocoapods.org/pods/GoogleAds-IMA-iOS-SDK&quot;&gt;GoogleAds-IMA-iOS-SDK&lt;/a&gt; CocoaPod and want to update to v3.7.0, you&#39;ll need to start targeting iOS 9+.&lt;/li&gt;
&lt;/ul&gt;

&lt;b&gt;&lt;p&gt;What about other iOS versions?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;We periodically stop supporting older iOS versions when adoption levels fall below a certain level. Whenever we end support for a major iOS release, we make announcements on our blog and release notes page.&lt;/p&gt;

&lt;p&gt;As always, if you have any questions, feel free to reach out to us on our &lt;a href=&quot;https://groups.google.com/group/ima-sdk&quot;&gt;support forum&lt;/a&gt;.&lt;/p&gt;


&lt;span class=&quot;byline-author&quot;&gt;&lt;a title=”+ShawnBusolits” href=&quot;https://plus.google.com/+ShawnBusolits/&quot;&gt;&lt;img width=&quot;20&quot; height=&quot;20&quot; src=&quot;https://lh4.googleusercontent.com/-C7Z3JfzZb78/UZUDn8Yr34I/AAAAAAAAZQ4/YFq-aZ_rgNw/w640-h960-no/profile.jpg&quot; style=&quot;vertical-align:middle; border:none;&quot;&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href=&quot;https://plus.google.com/+ShawnBusolits/&quot; rel=&quot;author&quot;&gt;Shawn Busolits&lt;/a&gt;, IMA SDK Team&lt;/span&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/1222847893741066484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/1222847893741066484'/><link rel='alternate' type='text/html' href='http://ads-developers.googleblog.com/2018/02/ending-support-for-ios-8-in-ima-sdk.html' title='Ending support for iOS 8 in the IMA 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='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh4.googleusercontent.com/-C7Z3JfzZb78/UZUDn8Yr34I/AAAAAAAAZQ4/YFq-aZ_rgNw/s72-w640-h960-c-no/profile.jpg" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-2750641561483103606</id><published>2017-12-13T12:46:00.000-08:00</published><updated>2017-12-13T12:46:31.577-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ima_html5"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_sdk"/><title type='text'>Changes to autoplay in Safari 11 for desktop</title><content type='html'>&lt;p&gt;
&lt;a href=&quot;https://www.apple.com/macos/high-sierra-preview/&quot;&gt;MacOS High Sierra&lt;/a&gt;
includes a new version of Safari, Safari 11. This new version by default will
remove support for auto-playing videos unless they are muted. If your desktop
site currently autoplays unmuted video with the IMA SDK, your users will see the
first frame of the ad, but the ad will not play. To resolve this, you can either
change your implementation to click-to-play, or attempt to autoplay and revert
to click-to-play if that fails. We&#39;ve also added a new error that will fire if
the SDK is asked to autoplay an ad but is prevented from doing so by the
browser. Continue reading for more info on these solutions.
&lt;/p&gt;
&lt;h2&gt;Click-to-play&lt;/h2&gt;
&lt;p&gt;
The simple, advanced, and playlist &lt;a href=&quot;https://github.com/googleads/googleads-ima-html5&quot;&gt;IMA SDK
samples&lt;/a&gt; use this click-to-play functionality.
In short, you add a play button to your UI, and render that play button on page
load. Your code should then delay calls to &lt;code&gt;&lt;a
href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/html5/v3/apis#ima.AdDisplayContainer.initialize&quot;&gt;adDisplayContainer.initialize()&lt;/a&gt;&lt;/code&gt;,
&lt;code&gt;&lt;a
href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/html5/v3/apis#ima.AdsManager.init&quot;&gt;adsManager.init()&lt;/a&gt;&lt;/code&gt;
and &lt;code&gt;&lt;a
href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/html5/v3/apis#ima.AdsManager.start&quot;&gt;adsManager.start()&lt;/a&gt;&lt;/code&gt;
until the user clicks that play button.

&lt;h2&gt;Attempt to autoplay&lt;/h2&gt;
&lt;p&gt;
We&#39;ve added a new sample to our GitHub repo, &lt;a
href=&quot;https://github.com/googleads/googleads-ima-html5/tree/master/attempt_to_autoplay&quot;&gt;Attempt
to Autoplay&lt;/a&gt;. This sample will autoplay ads if allowed, and if not, will
follow the above click-to-play workflow. The sample starts by attempting to
autoplay the content video. If autoplay succeeds, it pauses the content to play
a pre-roll. This happens in an instant, so the users will not see any content
actually play before the ads. If this autoplay attempt fails, the sample renders
a play button and waits for the user to click that button to initialize the ad
display container and play ads.
&lt;/p&gt;
&lt;h2&gt;New error for failed autoplay&lt;/h2&gt;
&lt;p&gt;
We&#39;ve added &lt;code&gt;AdError.ErrorCode.AUTOPLAY_DISALLOWED &lt;/code&gt;which the SDK
will fire if it is asked to autoplay an ad but is prevented from doing so by the
browser. You should not see this error if you&#39;ve properly implemented one of the
solutions above. This error is wrapped in a VIDEO_PLAY_ERROR; you can look for
it as follows:
&lt;/p&gt;


&lt;pre
class=&quot;prettyprint&quot;&gt;onAdError(adErrorEvent) {
  if (adErrorEvent.getError().getInnerError().getErrorCode() ==
      google.ima.AdError.ErrorCode.AUTOPLAY_DISALLOWED) {
    // The browser prevented the SDK from autoplaying an ad.
  }
}
&lt;/pre&gt;
&lt;p&gt;
If you have any questions, feel free to reach out to us on our &lt;a
href=&quot;https://groups.google.com/group/ima-sdk&quot;&gt;support forum&lt;/a&gt;.
&lt;/p&gt;

&lt;span class=&quot;byline-author&quot;&gt;&lt;a href=&quot;https://plus.google.com/+ShawnBusolits/&quot;&gt;&lt;img width=&quot;20&quot; height=&quot;20&quot; src=&quot;https://lh4.googleusercontent.com/-C7Z3JfzZb78/UZUDn8Yr34I/AAAAAAAAZQ4/YFq-aZ_rgNw/w640-h960-no/profile.jpg&quot; style=&quot;vertical-align:middle; border:none;&quot;&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href=&quot;https://plus.google.com/+ShawnBusolits/&quot; rel=&quot;author&quot;&gt;Shawn Busolits&lt;/a&gt;, IMA SDK Team&lt;/span&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/2750641561483103606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/2750641561483103606'/><link rel='alternate' type='text/html' href='http://ads-developers.googleblog.com/2017/12/changes-to-autoplay-in-safari-11-for.html' title='Changes to autoplay in Safari 11 for desktop'/><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh4.googleusercontent.com/-C7Z3JfzZb78/UZUDn8Yr34I/AAAAAAAAZQ4/YFq-aZ_rgNw/s72-w640-h960-c-no/profile.jpg" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-1121589604118869605</id><published>2017-12-08T09:41:00.000-08:00</published><updated>2017-12-08T09:41:44.025-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="android"/><category scheme="http://www.blogger.com/atom/ns#" term="deprecation"/><category scheme="http://www.blogger.com/atom/ns#" term="GMF"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_android"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_sdk"/><title type='text'>Deprecating GMF for Android</title><content type='html'>&lt;p&gt;
On March 15, 2018, we are stopping development and support for &lt;a href=&quot;https://github.com/googleads/google-media-framework-android&quot;&gt;Google Media
Framework (GMF) for Android&lt;/a&gt; in favor of the new &lt;a
href=&quot;https://github.com/google/ExoPlayer/tree/release-v2/extensions/ima&quot;&gt;ExoPlayer
IMA extension&lt;/a&gt;. GMF&#39;s technology and approach are based on an older version
of ExoPlayer.
&lt;/p&gt;
&lt;p&gt;
The new v2 version of ExoPlayer and the ExoPlayer IMA Extension make basic
integration simple enough that a layer between ExoPlayer and the IMA SDK is no
longer necessary. The new approach is cleaner, requires less code, and uses the
most up-to-date version of ExoPlayer.
&lt;/p&gt;
&lt;p&gt;
Support for GMF for Android will end on March 15, 2018, after which we will no
longer respond to issues or make any further releases of GMF for Android. The
repository will also be shut down at this time. If you want to access the code,
you can clone the repository before the March 15, 2018 shutdown date.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Note: We are NOT deprecating &lt;a
href=&quot;https://github.com/googleads/google-media-framework-ios&quot;&gt;GMF for
iOS&lt;/a&gt;.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
If you have any questions, feel free to contact us via the &lt;a
href=&quot;https://groups.google.com/forum/?hl=en_US&amp;fromgroups#!forum/ima-sdk&quot;&gt;IMA
SDK developer forum&lt;/a&gt;.
&lt;/p&gt;

&lt;span class=&#39;byline-author&#39;&gt;&lt;a href=&quot;https://plus.google.com/u/0/115192712137004592087&quot;&gt;&lt;img width=&quot;20&quot; height=&quot;20&quot; src=&quot;https://lh3.googleusercontent.com/-fBnDgmUOklY/AAAAAAAAAAI/AAAAAAAAABo/Y7fukcxel1w/s120-c/photo.jpg?sz=20&quot; style=&quot;vertical-align:middle; border:none;&quot;&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href=&quot;https://plus.google.com/u/0/115192712137004592087&quot; rel=&quot;author&quot;&gt;Yury Pavlotsky&lt;/a&gt;, IMA SDK Team&lt;/span&gt;
</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/1121589604118869605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/1121589604118869605'/><link rel='alternate' type='text/html' href='http://ads-developers.googleblog.com/2017/12/deprecating-gmf-for-android.html' title='Deprecating GMF 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='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh3.googleusercontent.com/-fBnDgmUOklY/AAAAAAAAAAI/AAAAAAAAABo/Y7fukcxel1w/s72-c/photo.jpg?sz=20" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-1847947303389225879</id><published>2017-09-27T09:49:00.000-07:00</published><updated>2017-09-27T09:49:59.381-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="android"/><category scheme="http://www.blogger.com/atom/ns#" term="exoplayer"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_sdk"/><title type='text'>ExoPlayer Releases IMA Extension</title><content type='html'>&lt;p&gt;
Users of ExoPlayer, an extensible, open-source media player for Android, can now
easily integrate with the IMA SDK using the new &lt;a href=&quot;https://github.com/google/ExoPlayer/tree/release-v2/extensions/ima&quot;&gt;ExoPlayer IMA extension&lt;/a&gt;. The IMA
extension, released alongside ExoPlayer 2.5, wraps the IMA SDK for Android and
provides seamless ad playback.
&lt;/p&gt;
&lt;p&gt;
The extension ensures that ads are integrated into ExoPlayer&#39;s video timeline,
and UI components are ad-aware. It also reduces buffering by eliminating the
need to swap out and rebuffer the video player&#39;s source when transitioning
between ads and content.
&lt;/p&gt;
&lt;p&gt;
You can find more details on the extension in &lt;a
href=&quot;https://medium.com/google-exoplayer/playing-ads-with-exoplayer-and-ima-868dfd767ea&quot;&gt;ExoPlayer&#39;s
blog post on Medium&lt;/a&gt;, and find the extension on &lt;a
href=&quot;https://github.com/google/ExoPlayer/tree/release-v2/extensions/ima&quot;&gt;GitHub&lt;/a&gt;.
If you have any questions or issues, please file them on &lt;a
href=&quot;https://github.com/google/ExoPlayer/issues&quot;&gt;ExoPlayer&#39;s issue tracker&lt;/a&gt;.
&lt;/p&gt;

&lt;span class=&#39;byline-author&#39;&gt;&lt;a href=&quot;https://plus.google.com/u/0/115192712137004592087&quot;&gt;&lt;img width=&quot;20&quot; height=&quot;20&quot; src=&quot;https://lh3.googleusercontent.com/-fBnDgmUOklY/AAAAAAAAAAI/AAAAAAAAABo/Y7fukcxel1w/s120-c/photo.jpg?sz=20&quot; style=&quot;vertical-align:middle; border:none;&quot;&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href=&quot;https://plus.google.com/u/0/115192712137004592087&quot; rel=&quot;author&quot;&gt;Yury Pavlotsky&lt;/a&gt;, IMA SDK Team&lt;/span&gt;
</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/1847947303389225879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/1847947303389225879'/><link rel='alternate' type='text/html' href='http://ads-developers.googleblog.com/2017/09/exoplayer-releases-ima-extension.html' title='ExoPlayer Releases IMA Extension'/><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh3.googleusercontent.com/-fBnDgmUOklY/AAAAAAAAAAI/AAAAAAAAABo/Y7fukcxel1w/s72-c/photo.jpg?sz=20" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-7651335601087803794</id><published>2017-06-27T08:54:00.000-07:00</published><updated>2017-06-27T08:54:18.111-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ima_html5"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_sdk"/><title type='text'>New Custom Playback APIs for IMA HTML5 and Mobile Safari</title><content type='html'>&lt;p&gt;
Starting with iOS 10, Safari on iPhone and iPod supports &lt;a
href=&quot;https://webkit.org/blog/6784/new-video-policies-for-ios/&quot;&gt;inline video
playback&lt;/a&gt;. This opens up some new rendering options for your video player and
the IMA SDK, but also introduces some caveats.
&lt;/p&gt;
&lt;h2&gt;So what changed?&lt;/h2&gt;
&lt;p&gt;
Previously, Safari on iPhone played all video in a fullscreen player. With iOS
10, Safari now supports the &lt;code&gt;playsinline&lt;/code&gt; parameter on a video
element to play that content inline.
&lt;/p&gt;

&lt;table width=&quot;100%&quot;&gt;
  &lt;tr&gt;
   &lt;td width=&quot;50%&quot;&gt;


&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQy1ubOdRDYGRja-DuTV0OCxcW0rcCVoK_K1QuZgo31IaMjIGBW4rclAmyq3vBGwWU3t9YG175B5HcFiwc5giQjRZIFgW3O9QEoyFKdxEj1yAs8Qbm5Tjs60OxmbNaXCNJ0U7XkC1o7hY/s1600/image1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQy1ubOdRDYGRja-DuTV0OCxcW0rcCVoK_K1QuZgo31IaMjIGBW4rclAmyq3vBGwWU3t9YG175B5HcFiwc5giQjRZIFgW3O9QEoyFKdxEj1yAs8Qbm5Tjs60OxmbNaXCNJ0U7XkC1o7hY/s400/image1.png&quot; width=&quot;225&quot; height=&quot;400&quot; data-original-width=&quot;621&quot; data-original-height=&quot;1104&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p style=&quot;padding-right: 5px&quot;&gt;
Fullscreen playback on iPhone Mobile Safari. The default with iOS 10+ and the
only option for iOS &amp;lt;= 10&lt;/p&gt;
   &lt;/td&gt;
   &lt;td width=&quot;50%&quot;&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbbbxcPPrBPHv_0I-wmmU6sZ8wwI8rl1OasI9ADnzFT_GF6GSgpzBCyoABhwNalzo_CDg01RV4lUIM9eYBoTwvLUhujjwTsOkb8LOE5gh2IIPI-IH3OQjTmwxy8FaJmj29LKLVXvZtE8U/s1600/image2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbbbxcPPrBPHv_0I-wmmU6sZ8wwI8rl1OasI9ADnzFT_GF6GSgpzBCyoABhwNalzo_CDg01RV4lUIM9eYBoTwvLUhujjwTsOkb8LOE5gh2IIPI-IH3OQjTmwxy8FaJmj29LKLVXvZtE8U/s400/image2.png&quot; width=&quot;225&quot; height=&quot;400&quot; data-original-width=&quot;640&quot; data-original-height=&quot;1136&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p style=&quot;padding-left: 20px&quot;&gt;
Inline playback on iPhone Mobile Safari. A new option in iOS 10+&lt;/p&gt;
   &lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;


&lt;h2&gt;How will the IMA SDK work with inline video playback on mobile Safari?&lt;/h2&gt;
&lt;p&gt;
On iPhone Safari, the IMA SDK re-uses your content player to play ads. We call
this &quot;custom playback.&quot; So if you add the &lt;code&gt;playsinline&lt;/code&gt; parameter to
your content video tag, IMA ads will also play inline - it&#39;s as easy as that.
&lt;/p&gt;
&lt;p&gt;
Inline video playback also opens the door for the IMA SDK to play skippable ads
on iPhone Mobile Safari. Previously these ads were dropped by the SDK because we
could not render a skip button on top of the fullscreen player. If your player
is inline, however, we &lt;em&gt;can&lt;/em&gt; render that skip button, &lt;strong&gt;but there&#39;s
a catch&lt;/strong&gt;.
&lt;/p&gt;
&lt;h2&gt;So what&#39;s the catch?&lt;/h2&gt;
&lt;p&gt;
IMA SDK skippable ads are not supported with the &quot;custom playback&quot; method. To
use skippable ads, you&#39;ll need to use our new API, &lt;code&gt;&lt;a
href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/html5/v3/apis#ima.ImaSdkSettings.setDisableCustomPlaybackForIOS10Plus&quot;&gt;ImaSdkSettings.setDisableCustomPlaybackForIOS10Plus()&lt;/a&gt;&lt;/code&gt;.
This will cause the IMA SDK to render the ad in its own inline player on top of
your content player. That player &lt;em&gt;does&lt;/em&gt; support skippable ads.
&lt;strong&gt;Disabling &quot;custom playback&quot;, however, will break your fullscreen
implementation for iPhone web.&lt;/strong&gt;

&lt;h2&gt;Why do I need custom playback on iOS?&lt;/h2&gt;
&lt;p&gt;
The need for &quot;custom playback&quot; on iOS boils down to one thing - fullscreen
support. Mobile Safari only supports fullscreen via &lt;code&gt;&lt;a
href=&quot;https://developer.apple.com/library/content/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/ControllingMediaWithJavaScript/ControllingMediaWithJavaScript.html#//apple_ref/doc/uid/TP40009523-CH3-SW13&quot;&gt;videoPlayer.webkitEnterFullscreen()&lt;/a&gt;&lt;/code&gt;.
In this mode, the SDK cannot render anything on top of your content player.
Therefore, to support fullscreen ad playback we must use &quot;custom playback&quot;.


&lt;h2&gt;What if I want skippable ads &lt;em&gt;and &lt;/em&gt;fullscreen support?&lt;/h2&gt;
&lt;p&gt;
Unfortunately, this is not possible on mobile Safari today - you must choose
between support for skippable ads and support for fullscreen.
&lt;/p&gt;
&lt;h2&gt;What&#39;s the deal with iOS &amp;lt;10?&lt;/h2&gt;
&lt;p&gt;
Prior versions of iOS (&amp;lt;10) do not have support for &lt;code&gt;playsinline&lt;/code&gt;, so
pages in those environments will always use &quot;custom playback&quot; mode, with support
for fullscreen but no support for skippable ads.
&lt;/p&gt;
&lt;h2&gt;I&#39;m still confused.&lt;/h2&gt;
&lt;p&gt;
That&#39;s OK! This is a complicated change with a lot of moving parts. Below is a
support matrix outlining what is and is not supported based on your content
player&#39;s &lt;code&gt;playsinline&lt;/code&gt; mode and the &quot;custom playback&quot; mode you&#39;ve set
for the IMA SDK. Remember, this matrix only applies to iOS 10 and above -
anything running version iOS 9 or below falls into the top left quadrant of the
matrix, as this is the only option.
&lt;/p&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMqmwXRIMSHDXj_bmlKGyb92xn8SuRKo4X1SnEijcCcgDxnuE0O3YRL3-mUIRlFpKM7Tp6EYQQmvIcMaxJkbBAVBibEvG9z8Chf2XSupcJ8G1ibytepH8t0W7nHChaKnN3yGYkptAomdA/s1600/inline_support2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMqmwXRIMSHDXj_bmlKGyb92xn8SuRKo4X1SnEijcCcgDxnuE0O3YRL3-mUIRlFpKM7Tp6EYQQmvIcMaxJkbBAVBibEvG9z8Chf2XSupcJ8G1ibytepH8t0W7nHChaKnN3yGYkptAomdA/s640/inline_support2.png&quot; width=&quot;640&quot; height=&quot;613&quot; data-original-width=&quot;1492&quot; data-original-height=&quot;1430&quot; /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;span class=&quot;byline-author&quot;&gt;&lt;a href=&quot;https://plus.google.com/+ShawnBusolits/&quot;&gt;&lt;img width=&quot;40&quot; height=&quot;40&quot; src=&quot;https://lh4.googleusercontent.com/-C7Z3JfzZb78/UZUDn8Yr34I/AAAAAAAAZQ4/YFq-aZ_rgNw/w640-h960-no/profile.jpg&quot; style=&quot;vertical-align:middle; border:none;&quot;&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href=&quot;https://plus.google.com/+ShawnBusolits/&quot; rel=&quot;author&quot;&gt;Shawn Busolits&lt;/a&gt;, IMA SDK Team&lt;/span&gt;

</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/7651335601087803794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/7651335601087803794'/><link rel='alternate' type='text/html' href='http://ads-developers.googleblog.com/2017/06/new-custom-playback-apis-for-ima-html5.html' title='New Custom Playback APIs for IMA HTML5 and Mobile Safari'/><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQy1ubOdRDYGRja-DuTV0OCxcW0rcCVoK_K1QuZgo31IaMjIGBW4rclAmyq3vBGwWU3t9YG175B5HcFiwc5giQjRZIFgW3O9QEoyFKdxEj1yAs8Qbm5Tjs60OxmbNaXCNJ0U7XkC1o7hY/s72-c/image1.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-4292132450673526004</id><published>2017-06-15T09:53:00.000-07:00</published><updated>2017-06-15T09:53:24.296-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ima_html5"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_sdk"/><title type='text'>New VPAID Sample for the IMA HTML5 SDK</title><content type='html'>&lt;p&gt;
To help developers integrate with the IMA SDK, we&#39;re always looking for ways to
provide both basic and advanced examples of features supported by the SDK.
Toward this end, we&#39;re pleased to release a sample JavaScript VPAID creative and
sample ad tag to aid in troubleshooting &lt;a
href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/html5/vpaid2js&quot;&gt;JavaScript
VPAID 2.0 creatives&lt;/a&gt;. You can check out the new sample on &lt;a
href=&quot;https://github.com/googleads/googleads-ima-html5&quot;&gt;GitHub&lt;/a&gt;, and find the
new ad tag in our list of &lt;a
href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/html5/tags&quot;&gt;IMA
sample tags&lt;/a&gt; as &#39;Sample VPAID 2.0 Linear&#39;.
&lt;/p&gt;
&lt;p&gt;
The VPAID sample plays a linear video ad and demonstrates the use of the video
player proxy element required to run a VPAID ad in a secure &lt;code&gt;iframe&lt;/code&gt;.
&lt;/p&gt;
&lt;p&gt;
If you have any questions, feel free to contact us via the &lt;a
href=&quot;https://groups.google.com/forum/?hl=en_US&amp;fromgroups#!forum/ima-sdk&quot;&gt;IMA
SDK developer forum&lt;/a&gt;.
&lt;/p&gt;

&lt;span class=&#39;byline-author&#39;&gt;&lt;a href=&quot;https://plus.google.com/u/0/115192712137004592087&quot;&gt;&lt;img width=&quot;20&quot; height=&quot;20&quot; src=&quot;https://lh3.googleusercontent.com/-fBnDgmUOklY/AAAAAAAAAAI/AAAAAAAAABo/Y7fukcxel1w/s120-c/photo.jpg?sz=20&quot; style=&quot;vertical-align:middle; border:none;&quot;&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href=&quot;https://plus.google.com/u/0/115192712137004592087&quot; rel=&quot;author&quot;&gt;Yury Pavlotsky&lt;/a&gt;, IMA SDK Team&lt;/span&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/4292132450673526004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/4292132450673526004'/><link rel='alternate' type='text/html' href='http://ads-developers.googleblog.com/2017/06/new-vpaid-sample-for-ima-html5-sdk.html' title='New VPAID Sample for the IMA HTML5 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='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh3.googleusercontent.com/-fBnDgmUOklY/AAAAAAAAAAI/AAAAAAAAABo/Y7fukcxel1w/s72-c/photo.jpg?sz=20" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-9216916585446330518</id><published>2017-04-06T14:04:00.000-07:00</published><updated>2017-04-06T14:04:21.994-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="android"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_sdk"/><title type='text'>Playing streaming ads with the IMA SDK for Android</title><content type='html'>&lt;p&gt;
With the advent of video players that support streaming media formats such as
HLS and DASH, publishers can now easily support these formats with the IMA SDK
for Android. Here is a list of steps to make this work:
&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Use a video player that can play streaming video, such as ExoPlayer.
&lt;li&gt;Inform the SDK of your video player&#39;s capabilities.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;
The latter is done via the SDK&#39;s &lt;a href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/android/v3/api/reference/com/google/ads/interactivemedia/v3/api/AdsRenderingSettings&quot;&gt;AdsRenderingSettings&lt;/a&gt; API. Create a
new instance of &lt;code&gt;AdsRenderingSettings&lt;/code&gt; and then create a list of MIME
types you plan to support:
&lt;/p&gt;
&lt;pre
class=&quot;prettyprint&quot;&gt;AdsRenderingSettings adsRenderingSettings = 
    ImaSdkFactory.getInstance().createAdsRenderingSettings();
ArrayList&lt;String&gt; arrayList = new ArrayList&lt;String&gt;();
arrayList.add(&quot;application/x-mpegURL&quot;); //HLS
arrayList.add(&quot;application/dash+xml&quot;); //DASH
adsRenderingSettings.setMimeTypes(arrayList);
&lt;/pre&gt;
&lt;p&gt;
Then initialize the AdsManager using these &lt;code&gt;AdsRenderingSettings&lt;/code&gt;:
&lt;/p&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;adsManager.init(adsRenderingSettings);
&lt;/pre&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
This will allow the SDK to choose streaming ad media to play in your video
player. Make sure to add any additional MIME types you plan to support, such as
MP4, as this approach assumes that any MIME types not passed in are not
supported.
&lt;/p&gt;
&lt;h1&gt;FAQ&lt;/h1&gt;
&lt;p&gt;
&lt;strong&gt;How do I play HLS ads using the IMA SDK for iOS?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
The default video player used by the iOS IMA SDK supports HLS, so it is not
necessary to set that in &lt;code&gt;AdsRenderingSettings&lt;/code&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Will this work with the SDK-owned player?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
No, currently you must use custom playback by implementing the &lt;code&gt;&lt;a
href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/android/v3/api/reference/com/google/ads/interactivemedia/v3/api/player/VideoAdPlayer&quot;&gt;VideoAdPlayer&lt;/a&gt;&lt;/code&gt;
interface. For an example of how to do this, check out our &lt;a
href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/android/custom_ad_playback&quot;&gt;guide
on custom playback&lt;/a&gt; or &lt;a
href=&quot;https://github.com/googleads/googleads-ima-android/releases&quot;&gt;AdvancedExample&lt;/a&gt;.

&lt;p&gt;
If you have any questions, feel free to contact us via the &lt;a
href=&quot;https://groups.google.com/forum/?hl=en_US&amp;fromgroups#!forum/ima-sdk&quot;&gt;support
forum&lt;/a&gt;.
&lt;/p&gt;

&lt;span class=&#39;byline-author&#39;&gt;&lt;a href=&quot;https://plus.google.com/u/0/115192712137004592087&quot;&gt;&lt;img width=&quot;20&quot; height=&quot;20&quot; src=&quot;https://lh3.googleusercontent.com/-fBnDgmUOklY/AAAAAAAAAAI/AAAAAAAAABo/Y7fukcxel1w/s120-c/photo.jpg?sz=20&quot; style=&quot;vertical-align:middle; border:none;&quot;&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href=&quot;https://plus.google.com/u/0/115192712137004592087&quot; rel=&quot;author&quot;&gt;Yury Pavlotsky&lt;/a&gt;, IMA SDK Team&lt;/span&gt;
</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/9216916585446330518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/9216916585446330518'/><link rel='alternate' type='text/html' href='http://ads-developers.googleblog.com/2017/04/playing-streaming-ads-with-ima-sdk-for.html' title='Playing streaming ads with the IMA 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='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh3.googleusercontent.com/-fBnDgmUOklY/AAAAAAAAAAI/AAAAAAAAABo/Y7fukcxel1w/s72-c/photo.jpg?sz=20" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-5631008253918371970</id><published>2017-03-29T09:13:00.000-07:00</published><updated>2017-03-29T09:13:43.260-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dfp_api"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_sdk"/><category scheme="http://www.blogger.com/atom/ns#" term="mobile_ads_sdk"/><category scheme="http://www.blogger.com/atom/ns#" term="workshops"/><title type='text'>Register now for the April 2017 Display Ads API Workshops</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjX0rsZrqY8L8VC5SrKy9zzz0AdvUBzVWynW_809EitZg6Pq4KffaOhLXz94ycaAgEuNc3PrzY-_yZ9Pxf_hgS53csa2-1MI5CpxyNI2s-IO3YOisz3T__GlgjcufNI1n96VF24TA7JIVo/s1600/google_ads_api_workshops.png&quot; /&gt;&lt;/div&gt;

&lt;p&gt;We&#39;re pleased to announce that we&#39;ll be holding a series of Display Ads API
Workshops in April 2017. These workshops are a half-day of tech talks, group
discussions, networking activities, and one-on-one time with &lt;a target=&quot;_blank&quot; href=&quot;https://events.withgoogle.com/display-ads-api-workshops/speakers/&quot;&gt;Googlers&lt;/a&gt;
geared toward developers who use the &lt;a target=&quot;_blank&quot; href=&quot;https://developers.google.com/doubleclick-publishers/&quot;&gt;DoubleClick for
Publishers API&lt;/a&gt;, &lt;a target=&quot;_blank&quot; href=&quot;https://developers.google.com/interactive-media-ads/&quot;&gt;Interactive Media Ads SDK&lt;/a&gt;, or &lt;a target=&quot;_blank&quot; href=&quot;https://developers.google.com/admob/&quot;&gt;Mobile Ads SDKs&lt;/a&gt;.

&lt;p&gt;These workshops offer you the following:

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

&lt;p&gt;The workshops will be held in the following cities:

&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;New York - April 20, 2017&lt;/strong&gt;&lt;br&gt;
    &lt;a target=&quot;_blank&quot; href=&quot;https://events.withgoogle.com/display-ads-api-workshops/registrations/new/&quot;&gt;Register here&lt;/a&gt;&lt;br&gt;
    Location: &lt;a target=&quot;_blank&quot; href=&quot;https://www.google.com/maps/place/75+9th+Ave,+New+York,+NY+10011/@40.7419674,-74.0071088,17z/data=!3m1!4b1!4m2!3m1!1s0x89c259bf3dfcdb35:0xdc22f40244e521d5&quot;&gt;Google New York (Chelsea Market)&lt;/a&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;San Francisco - April 25, 2017&lt;/strong&gt;&lt;br&gt;
    &lt;a target=&quot;_blank&quot; href=&quot;https://events.withgoogle.com/display-ads-api-workshops/registrations/new/&quot;&gt;Register here&lt;/a&gt;&lt;br&gt;
    Location: &lt;a target=&quot;_blank&quot; href=&quot;https://www.google.com/maps/place/345+Spear+St,+San+Francisco,+CA+94105/@37.7900506,-122.3927539,17z/data=!3m1!4b1!4m2!3m1!1s0x8085807aa6501fc9:0x1540ba8a3c14eafd&quot;&gt;Google San Francisco&lt;/a&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For more information on the agenda and a preview of our talks, please see our &lt;a target=&quot;_blank&quot; href=&quot;https://events.withgoogle.com/display-ads-api-workshops/&quot;&gt;workshop
page&lt;/a&gt;.

&lt;p&gt;As always, if you have any questions, feel free to drop us a line on the &lt;a target=&quot;_blank&quot; href=&quot;https://groups.google.com/forum/#!forum/google-doubleclick-for-publishers-api&quot;&gt;DFP API forums&lt;/a&gt;, &lt;a target=&quot;_blank&quot; href=&quot;https://groups.google.com/forum/#!forum/ima-sdk&quot;&gt;IMA SDK forums&lt;/a&gt;, &lt;a target=&quot;_blank&quot; href=&quot;https://groups.google.com/forum/#!forum/google-admob-ads-sdk&quot;&gt;Mobile Ads SDK forums&lt;/a&gt;, or the &lt;a target=&quot;_blank&quot; href=&quot;https://plus.google.com/+GoogleAdsDevelopers/posts&quot;&gt;Ads Developer Google+ page&lt;/a&gt;.

&lt;p&gt;&lt;span class=&#39;byline-author&#39;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://plus.google.com/u/0/+VincentTsao&quot;&gt;&lt;img width=&quot;40&quot; height=&quot;40&quot; src=&quot;https://lh3.googleusercontent.com/-I5VHr9twxlU/AAAAAAAAAAI/AAAAAAAABoc/XKIvgIIEw7I/s120-c/photo.jpg&quot; style=&quot;vertical-align:middle; border:none;&quot;&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a target=&quot;_blank&quot; href=&quot;https://plus.google.com/u/0/+VincentTsao&quot; rel=&quot;author&quot;&gt;Vincent Tsao&lt;/a&gt;, DFP API Team&lt;/span&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/5631008253918371970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/5631008253918371970'/><link rel='alternate' type='text/html' href='http://ads-developers.googleblog.com/2017/03/register-now-for-april-2017-display-ads.html' title='Register now for the April 2017 Display Ads API Workshops'/><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjX0rsZrqY8L8VC5SrKy9zzz0AdvUBzVWynW_809EitZg6Pq4KffaOhLXz94ycaAgEuNc3PrzY-_yZ9Pxf_hgS53csa2-1MI5CpxyNI2s-IO3YOisz3T__GlgjcufNI1n96VF24TA7JIVo/s72-c/google_ads_api_workshops.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-7815614485808579332.post-3681848638187419998</id><published>2017-02-09T10:35:00.000-08:00</published><updated>2017-02-09T10:35:36.784-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ima_android"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_flash"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_html5"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_ios"/><category scheme="http://www.blogger.com/atom/ns#" term="ima_sdk"/><title type='text'>Latency best practices in the IMA SDKs</title><content type='html'>&lt;p&gt;
One of the most important factors in keeping users on your page or in your app
is latency - the lower your latency, the more likely your users are to stick
around. With this in mind, we&#39;d like to remind you about our best practices for
reducing latency with the IMA SDKs. In general, you can reduce latency by doing
as much IMA set-up work as possible on page or app load, before your user tries
to play a video. The following can be done in all of the SDKs before the user
attempts to play a video:
&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Creating your ads loader.
&lt;li&gt;Creating your ads request.
&lt;li&gt;Requesting ads.
&lt;li&gt;Obtaining the ads manager.
&lt;li&gt;Registering ads manager event handlers.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;
You can find more information on optimizing latency in each of our SDKs at the
links below:
&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;a
href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/html5/ads#latency&quot;&gt;HTML5&lt;/a&gt;
&lt;li&gt;&lt;a
href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/android/ads#latency&quot;&gt;Android&lt;/a&gt;
&lt;li&gt;&lt;a
href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/ios/ads#latency&quot;&gt;iOS&lt;/a&gt;
&lt;li&gt;&lt;a
href=&quot;https://developers.google.com/interactive-media-ads/docs/sdks/flash/ads#latency&quot;&gt;Flash&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;
As always, if you have any questions, feel free to contact us via the &lt;a
href=&quot;https://groups.google.com/forum/?hl=en_US&amp;fromgroups#!forum/ima-sdk&quot;&gt;support
forum&lt;/a&gt;.
&lt;/p&gt;

&lt;span class=&quot;byline-author&quot;&gt;&lt;a href=&quot;https://plus.google.com/+ShawnBusolits/&quot;&gt;&lt;img width=&quot;20&quot; height=&quot;20&quot; src=&quot;https://lh4.googleusercontent.com/-C7Z3JfzZb78/UZUDn8Yr34I/AAAAAAAAZQ4/YFq-aZ_rgNw/w640-h960-no/profile.jpg&quot; style=&quot;vertical-align:middle; border:none;&quot;&gt;&lt;/a&gt;&amp;nbsp;-&amp;nbsp;&lt;a href=&quot;https://plus.google.com/+ShawnBusolits/&quot; rel=&quot;author&quot;&gt;Shawn Busolits&lt;/a&gt;, IMA SDK Team&lt;/span&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/3681848638187419998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7815614485808579332/posts/default/3681848638187419998'/><link rel='alternate' type='text/html' href='http://ads-developers.googleblog.com/2017/02/latency-best-practices-in-ima-sdks.html' title='Latency best practices in the IMA SDKs'/><author><name>Google Ads Developer Advisor</name><uri>http://www.blogger.com/profile/16700526826531306391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh4.googleusercontent.com/-C7Z3JfzZb78/UZUDn8Yr34I/AAAAAAAAZQ4/YFq-aZ_rgNw/s72-w640-h960-c-no/profile.jpg" height="72" width="72"/></entry></feed>