CINXE.COM
Google Ads Developer Blog: release
<!DOCTYPE html> <html class='v2 list-page' dir='ltr' itemscope='' itemtype='http://schema.org/Blog' lang='en' xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr'> <head> <link href='https://www.blogger.com/static/v1/widgets/3566091532-css_bundle_v2.css' rel='stylesheet' type='text/css'/> <title> Google Ads Developer Blog: release </title> <meta content='width=device-width, height=device-height, minimum-scale=1.0, initial-scale=1.0, user-scalable=0' name='viewport'/> <meta content='IE=Edge' http-equiv='X-UA-Compatible'/> <meta content='Google Ads Developer Blog' property='og:title'/> <meta content='en_US' property='og:locale'/> <meta content='http://ads-developers.googleblog.com/search/label/release' property='og:url'/> <meta content='Google Ads Developer Blog' property='og:site_name'/> <!-- Twitter Card properties --> <meta content='Google Ads Developer Blog' property='og:title'/> <meta content='summary' name='twitter:card'/> <meta content='@google' name='twitter:creator'/> <link href='https://fonts.googleapis.com/css?family=Roboto:400italic,400,500,500italic,700,700italic' rel='stylesheet' type='text/css'/> <link href='https://fonts.googleapis.com/icon?family=Material+Icons' rel='stylesheet'/> <script src='https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js' type='text/javascript'></script> <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-82055326-1', 'auto'); ga('send', 'pageview'); </script> <!-- End --> <style id='page-skin-1' type='text/css'><!-- /* <Group description="Header Color" selector="header"> <Variable name="header.background.color" description="Header Background" type="color" default="#ffffff"/> </Group> */ .header-outer { border-bottom: 1px solid #e0e0e0; background: #ffffff; } html, .Label h2, #sidebar .rss a, .BlogArchive h2, .FollowByEmail h2.title, .widget .post h2 { font-family: Roboto, sans-serif; } .plusfollowers h2.title, .post h2.title, .widget h2.title { font-family: Roboto, sans-serif; } .widget-item-control { height: 100%; } .widget.Header, #header { position: relative; height: 100%; width: 100%; } } .widget.Header .header-logo1 { float: left; margin-right: 15px; padding-right: 15px; border-right: 1px solid #ddd; } .header-title h2 { color: rgba(0,0,0,.54); display: inline-block; font-size: 40px; font-family: Roboto, sans-serif; font-weight: normal; line-height: 48px; vertical-align: top; } .header-inner { background-repeat: no-repeat; background-position: right 0px; } .post-author, .byline-author { font-size: 14px; font-weight: normal; color: #757575; color: rgba(0,0,0,.54); } .post-content .img-border { border: 1px solid rgb(235, 235, 235); padding: 4px; } .header-title a { text-decoration: none !important; } pre { border: 1px solid #bbbbbb; margin-top: 1em 0 0 0; padding: 0.99em; overflow-x: auto; overflow-y: auto; } pre, code { font-size: 9pt; background-color: #fafafa; line-height: 125%; font-family: monospace; } pre, code { color: #060; font: 13px/1.54 "courier new",courier,monospace; } .header-left .header-logo1 { width: 128px !important; } .header-desc { line-height: 20px; margin-top: 8px; } .fb-custom img, .twitter-custom img, .gplus-share img { cursor: pointer; opacity: 0.54; } .fb-custom img:hover, .twitter-custom img:hover, .gplus-share img:hover { opacity: 0.87; } .fb-like { width: 80px; } .post .share { float: right; } #twitter-share{ border: #CCC solid 1px; border-radius: 3px; background-image: -webkit-linear-gradient(top,#ffffff,#dedede); } .twitter-follow { background: url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVVfowXWI6SI8HNCGPfnKyNRe-wyiGsM28Jazt5og63q6Ula3__QjfJ0krie-XTOtpO6IlDOtulriyGWBdin3XU7HN6VY_J5mT7lWez8I8QjoqsXHq5qmxyqePXRBJ_G-NZfaqplhFFBfg/s1600/twitter-bird.png) no-repeat left center; padding-left: 18px; font: normal normal normal 11px/18px 'Helvetica Neue',Arial,sans-serif; font-weight: bold; text-shadow: 0 1px 0 rgba(255,255,255,.5); cursor: pointer; margin-bottom: 10px; } .twitter-fb { padding-top: 2px; } .fb-follow-button { background: -webkit-linear-gradient(#4c69ba, #3b55a0); background: -moz-linear-gradient(#4c69ba, #3b55a0); background: linear-gradient(#4c69ba, #3b55a0); border-radius: 2px; height: 18px; padding: 4px 0 0 3px; width: 57px; border: #4c69ba solid 1px; } .fb-follow-button a { text-decoration: none !important; text-shadow: 0 -1px 0 #354c8c; text-align: center; white-space: nowrap; font-size: 11px; color: white; vertical-align: top; } .fb-follow-button a:visited { color: white; } .fb-follow { padding: 0px 5px 3px 0px; width: 14px; vertical-align: bottom; } .gplus-wrapper { margin-top: 3px; display: inline-block; vertical-align: top; } .twitter-custom, .gplus-share { margin-right: 12px; } .fb-follow-button{ margin: 10px auto; } --></style> <style id='template-skin-1' type='text/css'><!-- .header-outer { clear: both; } .header-inner { margin: auto; padding: 0px; } .footer-outer { background: #f5f5f5; clear: both; margin: 0; } .footer-inner { margin: auto; padding: 0px; } .footer-inner-2 { /* Account for right hand column elasticity. */ max-width: calc(100% - 248px); } .google-footer-outer { clear: both; } .cols-wrapper, .google-footer-outer, .footer-inner, .header-inner { max-width: 978px; margin-left: auto; margin-right: auto; } .cols-wrapper { margin: auto; clear: both; margin-top: 60px; margin-bottom: 60px; overflow: hidden; } .col-main-wrapper { float: left; width: 100%; } .col-main { margin-right: 278px; max-width: 660px; } .col-right { float: right; width: 248px; margin-left: -278px; } /* Tweaks for layout mode. */ body#layout .google-footer-outer { display: none; } body#layout .header-outer, body#layout .footer-outer { background: none; } body#layout .header-inner { height: initial; } body#layout .cols-wrapper { margin-top: initial; margin-bottom: initial; } --></style> <!-- start all head --> <meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/> <meta content='blogger' name='generator'/> <link href="//ads-developers.googleblog.com/favicon.ico" rel="icon" type="image/x-icon"> <link href='http://ads-developers.googleblog.com/search/label/release' rel='canonical'/> <link rel="alternate" type="application/atom+xml" title="Google Ads Developer Blog - Atom" href="http://ads-developers.googleblog.com/feeds/posts/default" /> <link rel="alternate" type="application/rss+xml" title="Google Ads Developer Blog - RSS" href="http://ads-developers.googleblog.com/feeds/posts/default?alt=rss" /> <link rel="service.post" type="application/atom+xml" title="Google Ads Developer Blog - Atom" href="https://www.blogger.com/feeds/7815614485808579332/posts/default" /> <!--Can't find substitution for tag [blog.ieCssRetrofitLinks]--> <meta content='http://ads-developers.googleblog.com/search/label/release' property='og:url'/> <meta content='Google Ads Developer Blog' property='og:title'/> <meta content='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.' property='og:description'/> <!-- end all head --> <base target='_self'/> <style> html { font-family: Roboto, sans-serif; -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; } body { padding: 0; /* This ensures that the scroll bar is always present, which is needed */ /* because content render happens after page load; otherwise the header */ /* would "bounce" in-between states. */ min-height: 150%; } h2 { font-size: 16px; } h1, h2, h3, h4, h5 { line-height: 2em; } html, h4, h5, h6 { font-size: 14px; } a, a:visited { color: #4184F3; text-decoration: none; } a:focus, a:hover, a:active { text-decoration: none; } .Header { margin-top: 15px; } .Header h1 { font-size: 32px; font-weight: 300; line-height: 32px; height: 42px; } .header-inner .Header .titlewrapper { padding: 0; margin-top: 30px; } .header-inner .Header .descriptionwrapper { padding: 0; margin: 0; } .cols-wrapper { margin-top: 56px; } .header-outer, .cols-wrapper, .footer-outer, .google-footer-outer { padding: 0 60px; } .header-inner { height: 256px; position: relative; } html, .header-inner a { color: #212121; color: rgba(0,0,0,.87); } .header-inner .google-logo { display: inline-block; background-size: contain; z-index: 1; height: 46px; overflow: hidden; margin-top: 4px; margin-right: 8px; } .header-left { position: absolute; top: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%); margin-top: 12px; width: 100%; } .google-logo { margin-left: -4px; } #google-footer { position: relative; font-size: 13px; list-style: none; text-align: right; } #google-footer a { color: #444; } #google-footer ul { margin: 0; padding: 0; height: 144px; line-height: 144px; } #google-footer ul li { display: inline; } #google-footer ul li:before { color: #999; content: "\00b7"; font-weight: bold; margin: 5px; } #google-footer ul li:first-child:before { content: ''; } #google-footer .google-logo-dark { left: 0; margin-top: -16px; position: absolute; top: 50%; } /** Sitemap links. **/ .footer-inner-2 { font-size: 14px; padding-top: 42px; padding-bottom: 74px; } .footer-inner-2 .HTML h2 { color: #212121; color: rgba(0,0,0,.87); font-size: 14px; font-weight: 500; padding-left: 0; margin: 10px 0; } .footer-inner-2 .HTML ul { font-weight: normal; list-style: none; padding-left: 0; } .footer-inner-2 .HTML li { line-height: 24px; padding: 0; } .footer-inner-2 li a { color: rgba(65,132,243,.87); } /** Archive widget. **/ .BlogArchive { font-size: 13px; font-weight: normal; } .BlogArchive .widget-content { display: none; } .BlogArchive h2, .Label h2 { color: #4184F3; text-decoration: none; } .BlogArchive .hierarchy li { display: inline-block; } /* Specificity needed here to override widget CSS defaults. */ .BlogArchive #ArchiveList ul li, .BlogArchive #ArchiveList ul ul li { margin: 0; padding-left: 0; text-indent: 0; } .BlogArchive .intervalToggle { cursor: pointer; } .BlogArchive .expanded .intervalToggle .new-toggle { -ms-transform: rotate(180deg); transform: rotate(180deg); } .BlogArchive .new-toggle { float: right; padding-top: 3px; opacity: 0.87; } #ArchiveList { text-transform: uppercase; } #ArchiveList .expanded > ul:last-child { margin-bottom: 16px; } #ArchiveList .archivedate { width: 100%; } /* Months */ .BlogArchive .items { max-width: 150px; margin-left: -4px; } .BlogArchive .expanded .items { margin-bottom: 10px; overflow: hidden; } .BlogArchive .items > ul { float: left; height: 32px; } .BlogArchive .items a { padding: 0 4px; } .Label { font-size: 13px; font-weight: normal; } .sidebar-icon { display: inline-block; width: 24px; height: 24px; vertical-align: middle; margin-right: 12px; margin-top: -1px } .Label a { margin-right: 4px; } .Label .widget-content { display: none; } .FollowByEmail { font-size: 13px; font-weight: normal; } .FollowByEmail h2 { background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAALCAYAAACZIGYHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAUBJREFUeNrMkSGLAlEUhb+ZB4JFi8mx2cz+ApvhRUGTcUCrNqNJDYIi+DO0GUwmQXDK2DSIoGgZcSaIjDrzwrK4ssvChj1w0733O+fdp+m6PozH4yQSCfb7Pa7r8pOi0SjJZBLP8zgej4gAIMvlMuPxmADIYrHger1+C6lUKmo+NJ/NZojb7SZDWiwWo1qtks1msW2bw+HwZdkwDHq9HvV6nel0SqvVYrvdIh6Ph3Qch+VyqRYLhQJSSjRNw7IsfN9XgGKxSLfbJZfL0e/3aTabrFYr7vc7IujLcOh8PqunrNdr0uk0pVKJVCpFJBJRgEajweVyod1uMxgM2O12BAGUgRbU8DV2JpOhVquRz+cRQii3+XxOp9NRN3jVR5LPOp1OjEYjlSL8hclkgmmabDabt4d+m+S30vkD/R/IU4ABAPTZgnZdmG/PAAAAAElFTkSuQmCC"); background-repeat: no-repeat; background-position: 0 50%; text-indent: 30px; } .FollowByEmail .widget-content { display: none; } .searchBox input { border: 1px solid #eee; color: #212121; color: rgba(0,0,0,.87); font-size: 14px; padding: 8px 8px 8px 40px; width: 164px; font-family: Roboto, sans-serif; background: url("https://www.gstatic.com/images/icons/material/system/1x/search_grey600_24dp.png") 8px center no-repeat; } .searchBox ::-webkit-input-placeholder { /* WebKit, Blink, Edge */ color: rgba(0,0,0,.54); } .searchBox :-moz-placeholder { /* Mozilla Firefox 4 to 18 */ color: #000; opacity: 0.54; } .searchBox ::-moz-placeholder { /* Mozilla Firefox 19+ */ color: #000; opacity: 0.54; } .searchBox :-ms-input-placeholder { /* Internet Explorer 10-11 */ color: #757575; } .widget-item-control { margin-top: 0px; } .section { margin: 0; padding: 0; } #sidebar-top { border: 1px solid #eee; } #sidebar-top > div { margin: 16px 0; } .widget ul { line-height: 1.6; } /*main post*/ .post { margin-bottom:30px; } #main .post .title { margin: 0; } #main .post .title a { color: #212121; color: rgba(0,0,0,.87); font-weight: normal; font-size: 24px; } #main .post .title a:hover { text-decoration:none; color:#4184F3; } .message, #main .post .post-header { margin: 0; padding: 0; } #main .post .post-header .caption, #main .post .post-header .labels-caption, #main .post .post-footer .caption, #main .post .post-footer .labels-caption { color: #444; font-weight: 500; } #main .tr-caption-container td { text-align: left; } #main .post .tr-caption { color: #757575; color: rgba(0,0,0,.54); display: block; max-width: 560px; padding-bottom: 20px; } #main .post .tr-caption-container { line-height: 24px; margin: -1px 0 0 0 !important; padding: 4px 0; text-align: left; } #main .post .post-header .published{ font-size:11px; font-weight:bold; } .post-header .publishdate { font-size: 17px; font-weight:normal; color: #757575; color: rgba(0,0,0,.54); } #main .post .post-footer{ font-size:12px; padding-bottom: 21px; } .label-footer { margin-bottom: 12px; margin-top: 12px; } .comment-img { margin-right: 16px; opacity: 0.54; vertical-align: middle; } #main .post .post-header .published { margin-bottom: 40px; margin-top: -2px; } .post .post-content { color: #212121; color: rgba(0,0,0,.87); font-size: 17px; margin: 25px 0 36px 0; line-height: 32px; } .post-body .post-content ul, .post-body .post-content ol { margin: 16px 0; padding: 0 48px; } .post-summary { display: none; } /* Another old-style caption. */ .post-content div i, .post-content div + i { font-size: 14px; font-style: normal; color: #757575; color: rgba(0,0,0,.54); display: block; line-height: 24px; margin-bottom: 16px; text-align: left; } /* Another old-style caption (with link) */ .post-content a > i { color: #4184F3 !important; } /* Old-style captions for images. */ .post-content .separator + div:not(.separator) { margin-top: -16px; } /* Capture section headers. */ .post-content br + br + b, .post-content .space + .space + b, .post-content .separator + b { display: inline-block; margin-bottom: 8px; margin-top: 24px; } .post-content li { line-height: 32px; } /* Override all post images/videos to left align. */ .post-content .separator, .post-content > div { text-align: left; } .post-content .separator > a, .post-content .separator > span { margin-left: 0 !important; } /*.post-content img { max-width: 100%; height: auto; width: auto; }*/ .post-content .tr-caption-container img { margin-bottom: 12px; } .post-content iframe, .post-content embed { max-width: 100%; } .post-content .carousel-container { margin-bottom: 48px; } #main .post-content b { font-weight: 500; } /* These are the main paragraph spacing tweaks. */ #main .post-content br { content: ' '; display: block; padding: 4px; } .post-content .space { display: block; height: 8px; } .post-content iframe + .space, .post-content iframe + br { padding: 0 !important; } #main .post .jump-link { margin-bottom:10px; } .post-content img, .post-content iframe { margin: 30px 0 20px 0; } .post-content > img:first-child, .post-content > iframe:first-child { margin-top: 0; } .col-right .section { padding: 0 16px; } #aside { background:#fff; border:1px solid #eee; border-top: 0; } #aside .widget { margin:0; } #aside .widget h2, #ArchiveList .toggle + a.post-count-link { color: #212121; color: rgba(0,0,0,.87); font-weight: 400 !important; margin: 0; } #ArchiveList .toggle { float: right; } #ArchiveList .toggle .material-icons { padding-top: 4px; } #sidebar .tab { cursor: pointer; } #sidebar .tab .arrow { display: inline-block; float: right; } #sidebar .tab .icon { display: inline-block; vertical-align: top; height: 24px; width: 24px; margin-right: 13px; margin-left: -1px; margin-top: 1px; color: #757575; color: rgba(0,0,0,.54); } #sidebar .widget-content > :first-child { padding-top: 8px; } #sidebar .active .tab .arrow { -ms-transform: rotate(180deg); transform: rotate(180deg); } #sidebar .arrow { color: #757575; color: rgba(0,0,0,.54); } #sidebar .widget h2 { font-size: 14px; font-weight: normal; } #sidebar .Label h2, #sidebar .BlogArchive h2 { display: inline-block; } .HTML .feed-title { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAX5JREFUeNqsVDGSgkAQHL2rIiIikohIc/EBRkbwAIwuwgfwAXiAD9AHSI7kEkECRCb6AIyINDLx7K0aa6kT7uq0q7YYtnZ7umdnt7darXbr9Zpegeu61DNNc0dvwCcH4/GYJpMJnc9nOhwOVJbl/4hAAokMECZJQtvt9k+kH7qufyEYDAakqqqYxFdRFBqNRmTbNg2HQ0rTlK7XayvR0xqBdDqdkuM4dE/0ULhYLOh4PHYrknG5XGi/31MYhuL/nkwonM1mlGUZ1XXdrsiyLGEDhY7juJEZ1u5tIixDGdYhmYw+B7CAzPP5nDabjdgIAgCksMX1832/3drtdqPT6SQWapomiGEFNkDEdpDMMAzK81ys/7XYy+XyoQgq2WoURSIJ2iIIgp/WZCCTvFm2wgeAU31aI3Q2GhIDMeB53qPYPIcm5VrxXIOIOxsDMStjVawAc1VViRgN22lNBiuQN3GR+SY07hpOoStmFQAKXRRFY93bnpG+fONfedi+BRgAbkS8Fxp7QQIAAAAASUVORK5CYII="); background-repeat: no-repeat; background-position: 0 50%; text-indent: 30px; } #sidebar .widget .BlogArchive { padding-bottom: 8px; } #sidebar .widget { border-bottom: 1px solid #eee; box-shadow: 0px 1px 0 white; margin-bottom: 0; padding: 14px 0; min-height: 20px; } #sidebar .widget:last-child { border-bottom: none; box-shadow: none; margin-bottom: 0; } #sidebar ul { margin: 0; padding: 0; } #sidebar ul li { list-style:none; padding:0; } #sidebar ul li a { line-height: 32px; } #sidebar .archive { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAYCAYAAADzoH0MAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAE1JREFUeNpiNDY23s9AAWBioBCwYBM8c+YMVsUmJibEGYBNMS5DaeMFfDYSZQA2v9I3FrB5AZeriI4FmnrBccCT8mhmGs1MwyAzAQQYAKEWG9zm9QFEAAAAAElFTkSuQmCC"); height: 24px; line-height: 24px; padding-left: 30px; } #sidebar .labels { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAYAAAA7bUf6AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAUxJREFUeNpiNDY23s9AAMycOfM7UF05kHkZmzwTMkdSUhKrIcXFxZy3bt3qBjIN8RrS09PDsHnzZjCNDr58+cKQlpbGDjSoHcg1w2oIyAUODg5gARCNzUVIBrUCuVYYhjx//pzhwIEDYAEQDeJjA1CDWIAGNQK59jBxRuSABbkAlwHIgIeHh2HWrFn/1NTU2oDcvSgBS4wBSC5iArqoCsj1YGIgEyAZVMoEchqlBjEB/cZAiUHg2AEGznpKDAImxOeM////B4VLKtBvEUCngZ1ILKivr3/u6+ubBzJAGZQ9gC5aQoqLgAY8BhkAZL4BuQQkxgXE34A4BuiiZEIuAhrwEGhAEZD5DpzYoIaA2UAM4kQADUrHZRDUgAIg8wO2XAwzbQXQa5OweQ1owB10AyA6gS7BgX1u3ry5397eHow3bdo0EyjGi00tQIABANPgyAH1q1eaAAAAAElFTkSuQmCC"); height: 20px; line-height: 20px; padding-left: 30px; } #sidebar .rss a { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAX5JREFUeNqsVDGSgkAQHL2rIiIikohIc/EBRkbwAIwuwgfwAXiAD9AHSI7kEkECRCb6AIyINDLx7K0aa6kT7uq0q7YYtnZ7umdnt7darXbr9Zpegeu61DNNc0dvwCcH4/GYJpMJnc9nOhwOVJbl/4hAAokMECZJQtvt9k+kH7qufyEYDAakqqqYxFdRFBqNRmTbNg2HQ0rTlK7XayvR0xqBdDqdkuM4dE/0ULhYLOh4PHYrknG5XGi/31MYhuL/nkwonM1mlGUZ1XXdrsiyLGEDhY7juJEZ1u5tIixDGdYhmYw+B7CAzPP5nDabjdgIAgCksMX1832/3drtdqPT6SQWapomiGEFNkDEdpDMMAzK81ys/7XYy+XyoQgq2WoURSIJ2iIIgp/WZCCTvFm2wgeAU31aI3Q2GhIDMeB53qPYPIcm5VrxXIOIOxsDMStjVawAc1VViRgN22lNBiuQN3GR+SY07hpOoStmFQAKXRRFY93bnpG+fONfedi+BRgAbkS8Fxp7QQIAAAAASUVORK5CYII="); } #sidebar .subscription a { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAALCAYAAACZIGYHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAUBJREFUeNrMkSGLAlEUhb+ZB4JFi8mx2cz+ApvhRUGTcUCrNqNJDYIi+DO0GUwmQXDK2DSIoGgZcSaIjDrzwrK4ssvChj1w0733O+fdp+m6PozH4yQSCfb7Pa7r8pOi0SjJZBLP8zgej4gAIMvlMuPxmADIYrHger1+C6lUKmo+NJ/NZojb7SZDWiwWo1qtks1msW2bw+HwZdkwDHq9HvV6nel0SqvVYrvdIh6Ph3Qch+VyqRYLhQJSSjRNw7IsfN9XgGKxSLfbJZfL0e/3aTabrFYr7vc7IujLcOh8PqunrNdr0uk0pVKJVCpFJBJRgEajweVyod1uMxgM2O12BAGUgRbU8DV2JpOhVquRz+cRQii3+XxOp9NRN3jVR5LPOp1OjEYjlSL8hclkgmmabDabt4d+m+S30vkD/R/IU4ABAPTZgnZdmG/PAAAAAElFTkSuQmCC"); } #sidebar-bottom { background: #f5f5f5; border-top:1px solid #eee; } #sidebar-bottom .widget { border-bottom: 1px solid #e0e0e0; padding: 15px 0; /*text-align: center;*/ } #sidebar-bottom > div:last-child { border-bottom: 0; } #sidebar-bottom .text { line-height: 20px; } /* Home, forward, and backward pagination. */ .blog-pager { border-top : 1px #e0e0e0 solid; padding-top: 10px; margin-top: 15px; text-align: right !important; } #blog-pager { margin-botom: 0; margin-top: -14px; padding: 16px 0 0 0; } #blog-pager a { display: inline-block; } .blog-pager i.disabled { opacity: 0.2 !important; } .blog-pager i { color: black; margin-left: 16px; opacity: 0.54; } .blog-pager i:hover, .blog-pager i:active { opacity: 0.87; } #blog-pager-older-link, #blog-pager-newer-link { float: none; } .gplus-profile { background-color: #fafafa; border: 1px solid #eee; overflow: hidden; width: 212px; } .gplus-profile-inner { margin-left: -1px; margin-top: -1px; } /* Sidebar follow buttons. */ .followgooglewrapper { padding: 12px 0 0 0; } .loading { visibility: hidden; } .detail-page .post-footer .cmt_iframe_holder { padding-top: 40px !important; } /** Desktop **/ @media (max-width: 900px) { .col-right { display: none; } .col-main { margin-right: 0; min-width: initial; } .footer-outer { display: none; } .cols-wrapper { min-width: initial; } .google-footer-outer { background-color: #f5f5f5; } } /** Tablet **/ @media (max-width: 712px) { .header-outer, .cols-wrapper, .footer-outer, .google-footer-outer { padding: 0 40px; } } /* An extra breakpoint accommodating for long blog titles. */ @media (max-width: 600px) { .header-left { height: 100%; top: inherit; margin-top: 0; -webkit-transform: initial; transform: initial; } .header-title { margin-top: 18px; } .header-inner .google-logo { height: 40px; margin-top: 3px; } .header-inner .google-logo img { height: 42px; } .header-title h2 { font-size: 32px; line-height: 40px; } .header-desc { bottom: 24px; position: absolute; } } /** Mobile/small desktop window; also landscape. **/ @media (max-width: 480px), (max-height: 480px) { .header-outer, .cols-wrapper, .footer-outer, .google-footer-outer { padding: 0 16px; } .cols-wrapper { margin-top: 0; } .post-header .publishdate, .post .post-content { font-size: 16px; } .post .post-content { line-height: 28px; margin-bottom: 30px; } .post { margin-top: 30px; } .byline-author { display: block; font-size: 12px; line-height: 24px; margin-top: 6px; } #main .post .title a { font-weight: 500; color: #4c4c4c; color: rgba(0,0,0,.70); } #main .post .post-header { padding-bottom: 12px; } #main .post .post-header .published { margin-bottom: -8px; margin-top: 3px; } .post .read-more { display: block; margin-top: 14px; } .post .tr-caption { font-size: 12px; } #main .post .title a { font-size: 20px; line-height: 30px; } .post-content iframe { /* iframe won't keep aspect ratio when scaled down. */ max-height: 240px; } .post-content .separator img, .post-content .tr-caption-container img, .post-content iframe { margin-left: -16px; max-width: inherit; width: calc(100% + 32px); } .post-content table, .post-content td { width: 100%; } #blog-pager { margin: 0; padding: 16px 0; } /** List page tweaks. **/ .list-page .post-original { display: none; } .list-page .post-summary { display: block; } .list-page .comment-container { display: none; } .list-page #blog-pager { padding-top: 0; border: 0; margin-top: -8px; } .list-page .label-footer { display: none; } .list-page #main .post .post-footer { border-bottom: 1px solid #eee; margin: -16px 0 0 0; padding: 0 0 20px 0; } .list-page .post .share { display: none; } /** Detail page tweaks. **/ .detail-page .post-footer .cmt_iframe_holder { padding-top: 32px !important; } .detail-page .label-footer { margin-bottom: 0; } .detail-page #main .post .post-footer { padding-bottom: 0; } .detail-page #comments { display: none; } } [data-about-pullquote], [data-is-preview], [data-about-syndication] { display: none; } </style> <noscript> <style> .loading { visibility: visible }</style> </noscript> <!-- Google tag (gtag.js) --> <script async='true' src='https://www.googletagmanager.com/gtag/js?id=G-E4MSGF2SF9'></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-E4MSGF2SF9'); </script> <link href='https://www.blogger.com/dyn-css/authorization.css?targetBlogID=7815614485808579332&zx=9069ca84-be54-4ec1-91e8-db3279f51ab9' media='none' onload='if(media!='all')media='all'' rel='stylesheet'/><noscript><link href='https://www.blogger.com/dyn-css/authorization.css?targetBlogID=7815614485808579332&zx=9069ca84-be54-4ec1-91e8-db3279f51ab9' rel='stylesheet'/></noscript> <meta name='google-adsense-platform-account' content='ca-host-pub-1556223355139109'/> <meta name='google-adsense-platform-domain' content='blogspot.com'/> </head> <body> <script type='text/javascript'> //<![CDATA[ var axel = Math.random() + ""; var a = axel * 10000000000000; document.write('<iframe src="https://2542116.fls.doubleclick.net/activityi;src=2542116;type=gblog;cat=googl0;ord=ord=' + a + '?" width="1" height="1" frameborder="0" style="display:none"></iframe>'); //]]> </script> <noscript> <img alt='' height='1' src='https://ad.doubleclick.net/ddm/activity/src=2542116;type=gblog;cat=googl0;ord=1?' width='1'/> </noscript> <!-- Header --> <div class='header-outer'> <div class='header-inner'> <div class='section' id='header'><div class='widget Header' data-version='1' id='Header1'> <div class='header-left'> <div class='header-title'> <a class='google-logo' href='http://ads-developers.googleblog.com/'> <img height='50' src='https://www.gstatic.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png'/> </a> <a href='/.'> <h2> Ads Developer Blog </h2> </a> </div> <div class='header-desc'> 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. </div> </div> </div></div> </div> </div> <!-- all content wrapper start --> <div class='cols-wrapper loading'> <div class='col-main-wrapper'> <div class='col-main'> <div class='section' id='main'><div class='widget Blog' data-version='1' id='Blog1'> <div class='post' data-id='4928418430640226955' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2025/02/announcing-beta-launch-of-display-video.html' itemprop='url' title='Announcing beta launch of Display & Video 360 API v4 and new v3 features'> Announcing beta launch of Display & Video 360 API v4 and new v3 features </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Thursday, February 13, 2025 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <p> We’re pleased to announce that <a href="https://developers.google.com/display-video/api/reference/rest/v4">Display & Video 360 API v4</a> is available in public beta starting today. We’ve also launched an update to the v3, adding new features. </p> <p> Here is a subset of changes introduced in v4: </p><ul> <li>The <code><a href="https://developers.google.com/display-video/api/reference/rest/v4/advertisers.insertionOrders#InsertionOrder.FIELDS.optimization_objective">optimizationObjective</a></code> field in <code><a href="https://developers.google.com/display-video/api/reference/rest/v4/advertisers.insertionOrders#InsertionOrder">InsertionOrder</a></code> resources is now required and must be set when creating new insertion orders. <li>You can no longer retrieve and manage <code>Campaign</code> and <code>InsertionOrder</code> resource targeting. <li>The <code>FirstAndThirdPartyAudience</code> resource was renamed to <code><a href="https://developers.google.com/display-video/api/reference/rest/v4/firstPartyAndPartnerAudiences#FirstPartyAndPartnerAudience">FirstPartyAndPartnerAudience</a></code>.</li></ul> <p> In addition, we've released an update that adds the following features in both v3 and v4: </p><ul> <li>Support for asset-based creatives through the addition of a new <code><a href="https://developers.google.com/display-video/api/reference/rest/v3/CreativeType">CreativeType</a></code> value and multiple <code><a href="https://developers.google.com/display-video/api/reference/rest/v3/advertisers.creatives#AssetRole">AssetRole</a></code> values. <li>Support for <a href="https://support.google.com/displayvideo/answer/3297897">Integral Ad Science</a> quality sync custom segments in <a href="https://developers.google.com/display-video/api/reference/rest/v4/advertisers.adGroups.targetingTypes.assignedTargetingOptions#AssignedTargetingOption.ThirdPartyVerifierAssignedTargetingOptionDetails">third party verifier targeting</a>. <li>New <code><a href="https://developers.google.com/display-video/api/reference/rest/v3/GeoRegionType">GeoRegionType</a></code> values used to identify geographic region targeting options.</li></ul> <p> More detailed information about this release can be found in our <a href="https://developers.google.com/display-video/api/release-notes#february_13_2025">release notes</a>. Follow the steps in our <a href="https://developers.google.com/display-video/api/v4-migration-guide">migration guide</a> to migrate from v3 to v4. Be aware that breaking changes may be made to v4 while in beta, and any such changes will be listed in the <a href="https://developers.google.com/display-video/api/release-notes">Display & Video 360 API release notes</a>. </p> <p> Before using new v3 features, make sure to update your <a href="https://developers.google.com/display-video/api/guides/getting-started/libraries">client library to the latest version</a>. </p> <p> If you run into issues or need help with these new features or samples, please contact us using our <a href="https://support.google.com/displayvideo/contact/nghelp_contact_form">support contact form</a>. </p> <span class="byline-author"><img height="40" src="https://lh7-us.googleusercontent.com/hO-Azjoudtcsd8tuH9II5w9-foNYaUm5GxpVcKXiVt8dBx9vKmyGE0HvnhTLKDpzlFtDCZlTs9J4jVODoI3bsaP79Ei6DWj3ipds6n4tK6TIylaHqP-qa9frGM4FeUa2RA4vQzLaGaTyjZG_vsBvb7g4rHBsK80pv72YUznZdyHmpP9ttSOimkv-0XS-ADQ" style="border: none; vertical-align: middle;" width="40" /> - Trevor Mulchay, Display & Video 360 API Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> <p> We’re pleased to announce that <a href="https://developers.google.com/display-video/api/reference/rest/v4">Display & Video 360 API v4</a> is available in public beta starting today. We’ve also launched an update to the v3, adding new features. </p> <p> Here is a subset of changes introduced in v4: </p><ul> <li>The <code><a href="https://developers.google.com/display-video/api/reference/rest/v4/advertisers.insertionOrders#InsertionOrder.FIELDS.optimization_objective">optimizationObjective</a></code> field in <code><a href="https://developers.google.com/display-video/api/reference/rest/v4/advertisers.insertionOrders#InsertionOrder">InsertionOrder</a></code> resources is now required and must be set when creating new insertion orders. <li>You can no longer retrieve and manage <code>Campaign</code> and <code>InsertionOrder</code> resource targeting. <li>The <code>FirstAndThirdPartyAudience</code> resource was renamed to <code><a href="https://developers.google.com/display-video/api/reference/rest/v4/firstPartyAndPartnerAudiences#FirstPartyAndPartnerAudience">FirstPartyAndPartnerAudience</a></code>.</li></ul> <p> In addition, we've released an update that adds the following features in both v3 and v4: </p><ul> <li>Support for asset-based creatives through the addition of a new <code><a href="https://developers.google.com/display-video/api/reference/rest/v3/CreativeType">CreativeType</a></code> value and multiple <code><a href="https://developers.google.com/display-video/api/reference/rest/v3/advertisers.creatives#AssetRole">AssetRole</a></code> values. <li>Support for <a href="https://support.google.com/displayvideo/answer/3297897">Integral Ad Science</a> quality sync custom segments in <a href="https://developers.google.com/display-video/api/reference/rest/v4/advertisers.adGroups.targetingTypes.assignedTargetingOptions#AssignedTargetingOption.ThirdPartyVerifierAssignedTargetingOptionDetails">third party verifier targeting</a>. <li>New <code><a href="https://developers.google.com/display-video/api/reference/rest/v3/GeoRegionType">GeoRegionType</a></code> values used to identify geographic region targeting options.</li></ul> <p> More detailed information about this release can be found in our <a href="https://developers.google.com/display-video/api/release-notes#february_13_2025">release notes</a>. Follow the steps in our <a href="https://developers.google.com/display-video/api/v4-migration-guide">migration guide</a> to migrate from v3 to v4. Be aware that breaking changes may be made to v4 while in beta, and any such changes will be listed in the <a href="https://developers.google.com/display-video/api/release-notes">Display & Video 360 API release notes</a>. </p> <p> Before using new v3 features, make sure to update your <a href="https://developers.google.com/display-video/api/guides/getting-started/libraries">client library to the latest version</a>. </p> <p> If you run into issues or need help with these new features or samples, please contact us using our <a href="https://support.google.com/displayvideo/contact/nghelp_contact_form">support contact form</a>. </p> <span class="byline-author"><img height="40" src="https://lh7-us.googleusercontent.com/hO-Azjoudtcsd8tuH9II5w9-foNYaUm5GxpVcKXiVt8dBx9vKmyGE0HvnhTLKDpzlFtDCZlTs9J4jVODoI3bsaP79Ei6DWj3ipds6n4tK6TIylaHqP-qa9frGM4FeUa2RA4vQzLaGaTyjZG_vsBvb7g4rHBsK80pv72YUznZdyHmpP9ttSOimkv-0XS-ADQ" style="border: none; vertical-align: middle;" width="40" /> - Trevor Mulchay, Display & Video 360 API Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Google Ads Developer Blog:Announcing beta launch of Display & Video 360 API v4 and new v3 features&url=http://ads-developers.googleblog.com/2025/02/announcing-beta-launch-of-display-video.html&via=google'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=http://ads-developers.googleblog.com/2025/02/announcing-beta-launch-of-display-video.html'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='http://ads-developers.googleblog.com/2025/02/announcing-beta-launch-of-display-video.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='http://ads-developers.googleblog.com/search/label/beta' rel='tag'> beta </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/dv360_api' rel='tag'> dv360_api </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/release' rel='tag'> release </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/update' rel='tag'> update </a> </span> </div> </div> </div> <div class='post' data-id='6932387779722649852' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2025/02/announcing-ios-google-mobile-ads-sdk.html' itemprop='url' title='Announcing iOS Google Mobile Ads SDK Version 12.0.0'> Announcing iOS Google Mobile Ads SDK Version 12.0.0 </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Friday, February 7, 2025 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <p> Version 12.0.0 of the Google Mobile Ads SDK is now available. We recommend upgrading as soon as possible to get our latest features and performance improvements. </p> <h3>Updated Swift APIs</h3> <p> We’ve updated the Google Mobile Ads SDK to define an <code>NS_SWIFT_NAME</code> for every API to follow the naming conventions from Apple’s Swift <a href="https://www.swift.org/documentation/api-design-guidelines/">API Design Guidelines</a>. For example, we have: </p><ul> <li>Removed the <code>GAD</code> prefix across names for all types. <li>Renamed the <code>GAM</code> prefix to <code>AdManager</code>. <li>Renamed the <code>GADM</code> prefix to <code>Mediation</code>.</li></ul> <p> For the full list of Swift API name changes, see <a href="https://developers.google.com/admob/ios/migration#swift_naming_support">Swift naming support</a>. </p> <h3>Swift 6 Concurrency</h3> <p> <a href="https://developer.apple.com/documentation/swift/adoptingswift6">Swift 6 concurrency</a> support is being rolled out incrementally, starting this release with added support for our ad format delegate methods. Future SDK versions will include further improvements. </p> <h3>Changes to Xcode requirements</h3> <p> The minimum supported Xcode version has been bumped to 16.0. </p> <p> For the full list of changes, check the <a href="https://developers.google.com/admob/ios/rel-notes">release notes</a>. Check our <a href="https://developers.google.com/admob/ios/migration">migration guide</a> to ensure your mobile apps are ready to upgrade. </p> <h3>SDK Deprecation Reminder</h3> <p> Per the <a href="https://developers.google.com/admob/ios/deprecation">deprecation schedule</a>, the release of version 12.0.0 means that: </p><ul> <li>iOS Google Mobile Ads SDK versions 10.x.x are officially deprecated, and will sunset in Q2 2026. <li><strong>Versions 9.x.x and below will <a href="https://developers.google.com/admob/ios/deprecation#differences">sunset</a> on June 30, 2025</strong>. <ul> <li>While there are currently no plans to disable ad serving on version 9.x.x, we strongly recommend updating to a supported SDK version to avoid being impacted in the future.</li> </ul> </li> </ul> <p> As always, if you have any questions or need additional help, contact us via the <a href="https://groups.google.com/group/google-admob-ads-sdk">developer forum</a>. </p> <p><span class="byline-author"><img height="40" src="https://lh3.googleusercontent.com/a-/AOh14GjtsQZdIExmcjrR581d0QKQR_WB3m0ETlK1hUK5=s88-w88-h88-c-k?sz=40" style="vertical-align:middle; border:none;" width="40"> - Justin Malandruccolo, Mobile Ads Developer Relations</span></p> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> <p> Version 12.0.0 of the Google Mobile Ads SDK is now available. We recommend upgrading as soon as possible to get our latest features and performance improvements. </p> <h3>Updated Swift APIs</h3> <p> We’ve updated the Google Mobile Ads SDK to define an <code>NS_SWIFT_NAME</code> for every API to follow the naming conventions from Apple’s Swift <a href="https://www.swift.org/documentation/api-design-guidelines/">API Design Guidelines</a>. For example, we have: </p><ul> <li>Removed the <code>GAD</code> prefix across names for all types. <li>Renamed the <code>GAM</code> prefix to <code>AdManager</code>. <li>Renamed the <code>GADM</code> prefix to <code>Mediation</code>.</li></ul> <p> For the full list of Swift API name changes, see <a href="https://developers.google.com/admob/ios/migration#swift_naming_support">Swift naming support</a>. </p> <h3>Swift 6 Concurrency</h3> <p> <a href="https://developer.apple.com/documentation/swift/adoptingswift6">Swift 6 concurrency</a> support is being rolled out incrementally, starting this release with added support for our ad format delegate methods. Future SDK versions will include further improvements. </p> <h3>Changes to Xcode requirements</h3> <p> The minimum supported Xcode version has been bumped to 16.0. </p> <p> For the full list of changes, check the <a href="https://developers.google.com/admob/ios/rel-notes">release notes</a>. Check our <a href="https://developers.google.com/admob/ios/migration">migration guide</a> to ensure your mobile apps are ready to upgrade. </p> <h3>SDK Deprecation Reminder</h3> <p> Per the <a href="https://developers.google.com/admob/ios/deprecation">deprecation schedule</a>, the release of version 12.0.0 means that: </p><ul> <li>iOS Google Mobile Ads SDK versions 10.x.x are officially deprecated, and will sunset in Q2 2026. <li><strong>Versions 9.x.x and below will <a href="https://developers.google.com/admob/ios/deprecation#differences">sunset</a> on June 30, 2025</strong>. <ul> <li>While there are currently no plans to disable ad serving on version 9.x.x, we strongly recommend updating to a supported SDK version to avoid being impacted in the future.</li> </ul> </li> </ul> <p> As always, if you have any questions or need additional help, contact us via the <a href="https://groups.google.com/group/google-admob-ads-sdk">developer forum</a>. </p> <p><span class="byline-author"><img height="40" src="https://lh3.googleusercontent.com/a-/AOh14GjtsQZdIExmcjrR581d0QKQR_WB3m0ETlK1hUK5=s88-w88-h88-c-k?sz=40" style="vertical-align:middle; border:none;" width="40"> - Justin Malandruccolo, Mobile Ads Developer Relations</span></p> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Google Ads Developer Blog:Announcing iOS Google Mobile Ads SDK Version 12.0.0&url=http://ads-developers.googleblog.com/2025/02/announcing-ios-google-mobile-ads-sdk.html&via=google'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=http://ads-developers.googleblog.com/2025/02/announcing-ios-google-mobile-ads-sdk.html'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='http://ads-developers.googleblog.com/2025/02/announcing-ios-google-mobile-ads-sdk.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='http://ads-developers.googleblog.com/search/label/ad_manager' rel='tag'> ad_manager </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/admob' rel='tag'> admob </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/iOS' rel='tag'> iOS </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/mobile_ads_sdk' rel='tag'> mobile_ads_sdk </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/release' rel='tag'> release </a> </span> </div> </div> </div> <div class='post' data-id='1232576082206414239' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2024/11/announcing-v202411-of-google-ad-manager.html' itemprop='url' title='Announcing v202411 of the Google Ad Manager API'> Announcing v202411 of the Google Ad Manager API </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Thursday, November 21, 2024 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <p> We're pleased to announce that <a href="https://developers.google.com/ad-manager/api/rel_notes#v202411">v202411</a> of the Google Ad Manager API is available starting today, November 21, 2024. This release brings support for <code><a href="https://developers.google.com/ad-manager/api/reference/v202408/ReportService.Dimension#INVENTORY_FORMAT">INVENTORY_FORMAT</a></code> reporting dimensions and removes <code>GOOGLE</code> as a <code><a href="https://developers.google.com/ad-manager/api/reference/v202411/LineItemService.GrpProvider">GrpProvider</a></code>. <p> In the PublisherQueryLanguageService <code><a href="https://developers.google.com/ad-manager/api/reference/v202411/PublisherQueryLanguageService#Line_Item">Line_Item</a></code> table, the field <code>EndDateTime</code> has been renamed to <code>ServingEndTime</code>. In both v202411 and earlier versions, the value is inclusive of any <a href="https://support.google.com/admanager/answer/1387903">grace period</a>. The new name differentiates the PQL field from the <code><a href="https://developers.google.com/ad-manager/api/reference/v202408/LineItemService.LineItem#endDateTime">LineItem.endDateTime</a></code> field which is exclusive of any grace period. <table border=1> <tr> <td width="12%">Version </td> <td width="40%">Service </td> <td>End time <strong>including</strong> grace period </td> <td>End time <strong>excluding</strong> grace period </td> </tr> <tr> <td rowspan="2">v202411 </td> <td>PublisherQueryLanguageService </td> <td><code><a href="https://developers.google.com/ad-manager/api/reference/v202411/PublisherQueryLanguageService#Line_Item">ServingEndTime</a></code> </td> <td>Not available </td> </tr> <tr> <td>LineItemService </td> <td><code><a href="https://developers.google.com/ad-manager/api/reference/v202411/LineItemService.LineItem#endDateTime">endDateTime</a></code> + <code><a href="https://developers.google.com/ad-manager/api/reference/v202411/LineItemService.LineItem#autoExtensionDays">autoExtensionDays</a></code> </td> <td><code><a href="https://developers.google.com/ad-manager/api/reference/v202411/LineItemService.LineItem#endDateTime">endDateTime</a></code> </td> </tr> <tr> <td rowspan="2">v202408 </td> <td>PublisherQueryLanguageService </td> <td><code><a href="https://developers.google.com/ad-manager/api/reference/v202408/PublisherQueryLanguageService#Line_Item">EndDateTime</a></code> </td> <td>Not available </td> </tr> <tr> <td>LineItemService </td> <td><code><a href="https://developers.google.com/ad-manager/api/reference/v202408/LineItemService.LineItem#endDateTime">endDateTime</a></code> + <code><a href="https://developers.google.com/ad-manager/api/reference/v202408/LineItemService.LineItem#autoExtensionDays">autoExtensionDays</a></code> </td> <td><code><a href="https://developers.google.com/ad-manager/api/reference/v202408/LineItemService.LineItem#endDateTime">endDateTime</a></code> </td> </tr> </table> <p> For the full list of changes, check the <a href="https://developers.google.com/ad-manager/api/rel_notes">release notes</a>. Contact us on the <a href="https://groups.google.com/forum/#!forum/google-doubleclick-for-publishers-api">Ad Manager API forum</a> with any API-related questions. </p> <span class="byline-author"><img height="40" src="https://lh7-us.googleusercontent.com/RlR0Enq4JZNBVo9-d4DTpAhCFysGNmVLQYpOfYTX0okgPglHXHnJQXpMnnPOpN8UhsGy3clH20w6iJcMat7syGegusZ2fraTdlgzO5EFlIZmqmqWVM9Dn5pw_OjaOQtzaQeztacac63_9eAzFLxHxsJfyPmT3-TkS3rhEOz5akMg08W5BJn3Lm0PJ84s1nI" style="border: none; vertical-align: middle;" width="40" /> - Chris Seeley, Ad Manager API Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> <p> We're pleased to announce that <a href="https://developers.google.com/ad-manager/api/rel_notes#v202411">v202411</a> of the Google Ad Manager API is available starting today, November 21, 2024. This release brings support for <code><a href="https://developers.google.com/ad-manager/api/reference/v202408/ReportService.Dimension#INVENTORY_FORMAT">INVENTORY_FORMAT</a></code> reporting dimensions and removes <code>GOOGLE</code> as a <code><a href="https://developers.google.com/ad-manager/api/reference/v202411/LineItemService.GrpProvider">GrpProvider</a></code>. <p> In the PublisherQueryLanguageService <code><a href="https://developers.google.com/ad-manager/api/reference/v202411/PublisherQueryLanguageService#Line_Item">Line_Item</a></code> table, the field <code>EndDateTime</code> has been renamed to <code>ServingEndTime</code>. In both v202411 and earlier versions, the value is inclusive of any <a href="https://support.google.com/admanager/answer/1387903">grace period</a>. The new name differentiates the PQL field from the <code><a href="https://developers.google.com/ad-manager/api/reference/v202408/LineItemService.LineItem#endDateTime">LineItem.endDateTime</a></code> field which is exclusive of any grace period. <table border=1> <tr> <td width="12%">Version </td> <td width="40%">Service </td> <td>End time <strong>including</strong> grace period </td> <td>End time <strong>excluding</strong> grace period </td> </tr> <tr> <td rowspan="2">v202411 </td> <td>PublisherQueryLanguageService </td> <td><code><a href="https://developers.google.com/ad-manager/api/reference/v202411/PublisherQueryLanguageService#Line_Item">ServingEndTime</a></code> </td> <td>Not available </td> </tr> <tr> <td>LineItemService </td> <td><code><a href="https://developers.google.com/ad-manager/api/reference/v202411/LineItemService.LineItem#endDateTime">endDateTime</a></code> + <code><a href="https://developers.google.com/ad-manager/api/reference/v202411/LineItemService.LineItem#autoExtensionDays">autoExtensionDays</a></code> </td> <td><code><a href="https://developers.google.com/ad-manager/api/reference/v202411/LineItemService.LineItem#endDateTime">endDateTime</a></code> </td> </tr> <tr> <td rowspan="2">v202408 </td> <td>PublisherQueryLanguageService </td> <td><code><a href="https://developers.google.com/ad-manager/api/reference/v202408/PublisherQueryLanguageService#Line_Item">EndDateTime</a></code> </td> <td>Not available </td> </tr> <tr> <td>LineItemService </td> <td><code><a href="https://developers.google.com/ad-manager/api/reference/v202408/LineItemService.LineItem#endDateTime">endDateTime</a></code> + <code><a href="https://developers.google.com/ad-manager/api/reference/v202408/LineItemService.LineItem#autoExtensionDays">autoExtensionDays</a></code> </td> <td><code><a href="https://developers.google.com/ad-manager/api/reference/v202408/LineItemService.LineItem#endDateTime">endDateTime</a></code> </td> </tr> </table> <p> For the full list of changes, check the <a href="https://developers.google.com/ad-manager/api/rel_notes">release notes</a>. Contact us on the <a href="https://groups.google.com/forum/#!forum/google-doubleclick-for-publishers-api">Ad Manager API forum</a> with any API-related questions. </p> <span class="byline-author"><img height="40" src="https://lh7-us.googleusercontent.com/RlR0Enq4JZNBVo9-d4DTpAhCFysGNmVLQYpOfYTX0okgPglHXHnJQXpMnnPOpN8UhsGy3clH20w6iJcMat7syGegusZ2fraTdlgzO5EFlIZmqmqWVM9Dn5pw_OjaOQtzaQeztacac63_9eAzFLxHxsJfyPmT3-TkS3rhEOz5akMg08W5BJn3Lm0PJ84s1nI" style="border: none; vertical-align: middle;" width="40" /> - Chris Seeley, Ad Manager API Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Google Ads Developer Blog:Announcing v202411 of the Google Ad Manager API&url=http://ads-developers.googleblog.com/2024/11/announcing-v202411-of-google-ad-manager.html&via=google'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=http://ads-developers.googleblog.com/2024/11/announcing-v202411-of-google-ad-manager.html'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='http://ads-developers.googleblog.com/2024/11/announcing-v202411-of-google-ad-manager.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='http://ads-developers.googleblog.com/search/label/ad_manager_api' rel='tag'> ad_manager_api </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/ad_manager_api_v202411' rel='tag'> ad_manager_api_v202411 </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/release' rel='tag'> release </a> </span> </div> </div> </div> <div class='post' data-id='4285767527627150035' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2024/11/google-ads-api-2025-release-and-sunset.html' itemprop='url' title='Google Ads API 2025 release and sunset schedule'> Google Ads API 2025 release and sunset schedule </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Wednesday, November 20, 2024 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> We’re announcing our tentative 2025 release and sunset schedule for upcoming versions of the <a href="https://developers.google.com/google-ads/api/docs/start">Google Ads API</a> to bring greater clarity to your planning cycle. Please keep in mind that these dates are only estimates and may be adjusted going forward. Additionally, releases may be added, removed, or switched between major and minor versions.<br /> <table style="border-collapse: collapse; border: none; width=100%;"> <tbody> <tr style="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;"> <th style="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;"><span style="color: white;">Version</span> </th> <th style="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;"><span style="color: white;">Planned Release<br />Type*</span> </th> <th style="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;"><span style="color: white;">Projected launch*</span> </th> <th style="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;"><span style="color: white;">Projected sunset*</span> </th> </tr> <tr> <td style="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;">V19</td> <td style="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;">Major</td> <td style="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;">February/March 2025</td> <td style="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;">February 2026</td> </tr> <tr> <td style="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;">V19_1</td> <td style="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;">Minor</td> <td style="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;">April/May 2025</td> <td style="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;">February 2026</td> </tr> <tr> <td style="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;">V20</td> <td style="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;">Major</td> <td style="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;">June/July 2025</td> <td style="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;">June 2026</td> </tr> <tr> <td style="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;">V20_1</td> <td style="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;">Minor</td> <td style="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;">August/September 2025</td> <td style="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;">June 2026</td> </tr> <tr> <td style="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;">V21</td> <td style="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;">Major</td> <td style="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;">October/November 2025</td> <td style="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;">October 2026</td> </tr> </tbody> </table> <br />*Estimated and subject to change<br /><br /> <strong>Where can I learn more?</strong><br /> <ul> <li><a href="https://developers.google.com/google-ads/api/docs/release-notes">Release Notes</a><br /></li> <li><a href="https://developers.google.com/google-ads/api/docs/sunset-dates">Deprecation Schedule</a></li> </ul> Check back for any updates as <a href="http://ads-developers.googleblog.com">the blog</a> is the best place to stay informed about developments in this space.<br /><br /> If you have any questions or need additional help, contact us via the <a href="https://groups.google.com/forum/#!forum/adwords-api">forum</a>.<br /> <span class='byline-author'><img height="40" src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXedlowZ9LZmYZKkv_qZkR44j1z0gTfEU6fM8G6PT5jsBf5w3fOMLd2nURJqHLcrba4B0ZVtiXcuBQEOv5c-NoMBIMy0zqvOtrjpGkwEqn7WE64VxakF6OgTmeJ3ZZv3_5zm7C2GZ0eHuqz1A7IIuxlVcAOj-nKzFoujMVYsJjXnJnhOZ9oOa_kAi7_663NejbU?key=IBzi_Vh4XbWambvsPGFlKvaK" style="vertical-align: middle; border:none;" width="40"/> - David Stevens, Google Ads API Product Manager</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> We’re announcing our tentative 2025 release and sunset schedule for upcoming versions of the <a href="https://developers.google.com/google-ads/api/docs/start">Google Ads API</a> to bring greater clarity to your planning cycle. Please keep in mind that these dates are only estimates and may be adjusted going forward. Additionally, releases may be added, removed, or switched between major and minor versions.<br /> <table style="border-collapse: collapse; border: none; width=100%;"> <tbody> <tr style="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;"> <th style="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;"><span style="color: white;">Version</span> </th> <th style="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;"><span style="color: white;">Planned Release<br />Type*</span> </th> <th style="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;"><span style="color: white;">Projected launch*</span> </th> <th style="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;"><span style="color: white;">Projected sunset*</span> </th> </tr> <tr> <td style="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;">V19</td> <td style="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;">Major</td> <td style="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;">February/March 2025</td> <td style="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;">February 2026</td> </tr> <tr> <td style="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;">V19_1</td> <td style="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;">Minor</td> <td style="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;">April/May 2025</td> <td style="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;">February 2026</td> </tr> <tr> <td style="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;">V20</td> <td style="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;">Major</td> <td style="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;">June/July 2025</td> <td style="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;">June 2026</td> </tr> <tr> <td style="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;">V20_1</td> <td style="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;">Minor</td> <td style="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;">August/September 2025</td> <td style="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;">June 2026</td> </tr> <tr> <td style="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;">V21</td> <td style="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;">Major</td> <td style="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;">October/November 2025</td> <td style="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;">October 2026</td> </tr> </tbody> </table> <br />*Estimated and subject to change<br /><br /> <strong>Where can I learn more?</strong><br /> <ul> <li><a href="https://developers.google.com/google-ads/api/docs/release-notes">Release Notes</a><br /></li> <li><a href="https://developers.google.com/google-ads/api/docs/sunset-dates">Deprecation Schedule</a></li> </ul> Check back for any updates as <a href="http://ads-developers.googleblog.com">the blog</a> is the best place to stay informed about developments in this space.<br /><br /> If you have any questions or need additional help, contact us via the <a href="https://groups.google.com/forum/#!forum/adwords-api">forum</a>.<br /> <span class='byline-author'><img height="40" src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXedlowZ9LZmYZKkv_qZkR44j1z0gTfEU6fM8G6PT5jsBf5w3fOMLd2nURJqHLcrba4B0ZVtiXcuBQEOv5c-NoMBIMy0zqvOtrjpGkwEqn7WE64VxakF6OgTmeJ3ZZv3_5zm7C2GZ0eHuqz1A7IIuxlVcAOj-nKzFoujMVYsJjXnJnhOZ9oOa_kAi7_663NejbU?key=IBzi_Vh4XbWambvsPGFlKvaK" style="vertical-align: middle; border:none;" width="40"/> - David Stevens, Google Ads API Product Manager</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Google Ads Developer Blog:Google Ads API 2025 release and sunset schedule&url=http://ads-developers.googleblog.com/2024/11/google-ads-api-2025-release-and-sunset.html&via=google'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=http://ads-developers.googleblog.com/2024/11/google-ads-api-2025-release-and-sunset.html'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='http://ads-developers.googleblog.com/2024/11/google-ads-api-2025-release-and-sunset.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='http://ads-developers.googleblog.com/search/label/google_ads_api' rel='tag'> google_ads_api </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/release' rel='tag'> release </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/sunset' rel='tag'> sunset </a> </span> </div> </div> </div> <div class='post' data-id='7029611502627003665' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2024/10/announcing-v18-of-google-ads-api.html' itemprop='url' title='Announcing v18 of the Google Ads API'> Announcing v18 of the Google Ads API </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Wednesday, October 16, 2024 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> Today, we’re announcing the v18 release of the <a href="https://developers.google.com/google-ads/api">Google Ads API</a>. To use the v18 features, you will need to upgrade your <a href="https://developers.google.com/google-ads/api/docs/client-libs">client libraries</a> and client code. The updated client libraries and code examples will be published next week.<br /> <iframe width="560" height="315" src="https://www.youtube.com/embed/RZt_hrvUvk4" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe><br /> Here are the highlights: <ul> <li>You can now use <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/RecommendationService#generaterecommendations"><code>GenerateRecommendations</code></a> during campaign construction to retrieve optimized budget suggestions for Performance Max and Search campaigns.</li> <li>A new <a href="https://developers.google.com/google-ads/api/fields/latest/performance_max_placement_view"><code>performance_max_placement_view</code></a> report allows developers to query performance data for a given placement where Performance Max ads served.</li> <li>Replaced the <code>summary_row_setting</code> and <code>return_total_results_count</code> fields of <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/SearchGoogleAdsRequest"><code>SearchGoogleAdsRequest</code></a> with the <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/SearchGoogleAdsRequest#search_settings"><code>search_settings</code></a> field, which allow developers to freely specify if <code>summary_row</code>, <code>total_results_count</code> and <code>results</code> will be returned with <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/SearchGoogleAdsResponse"><code>SearchGoogleAdsResponse</code></a>.</li> <li>Added new segments for <a href="https://developers.google.com/google-ads/api/fields/latest/campaign"><code>campaign</code></a> and <a href="https://developers.google.com/google-ads/api/fields/latest/ad_group"><code>ad_group</code></a> reports to allow for segmenting performance data based on a specific destination, such as a city or a country, for Hotel and Search campaigns.</li> <li>Added support for <a href="https://support.google.com/google-ads/answer/15265488">Travel Feeds in Search Ads</a> with a new click type (<a href="https://developers.google.com/google-ads/api/reference/rpc/latest/ClickTypeEnum.ClickType#travel_assets"><code>ClickType.TRAVEL_ASSETS</code></a>) and a new asset type (<a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AssetSetTypeEnum.AssetSetType#travel_feed"><code>AssetSetType.TRAVEL_FEED</code></a>).</li> <li>Added <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/DataLinkService#createdatalink"><code>DataLinkService.CreateDataLink</code></a>, which allows customers to link their Google Ads account to creator videos and enables running partnership ads.</li> <li>Added <a href="https://developers.google.com/google-ads/api/fields/latest/content_criterion_view"><code>content_criterion_view</code></a> which returns performance metrics of <a href="https://support.google.com/google-ads/answer/1704368#Content-Targeting">targeted contents</a>, such as keywords, placements and topics, for Display, Demand Gen and Video campaigns.</li> <li><code>Renamed AssetType.DISCOVERY_CAROUSEL_CARD</code> to <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AssetTypeEnum.AssetType#demand_gen_carousel_card"><code>AssetType.DEMAND_GEN_CAROUSEL_CARD</code></a>.</li> <li>Added <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AdGroup#exclude_demographic_expansion"><code>AdGroup.exclude_demographic_expansion</code></a> which allows excluding demographics from being expanded when <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AdGroup#exclude_demographic_expansion"><code>optimized_targeting_enabled</code></a> is true, a feature that was previously only supported for Demand Gen.</li> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/v17/PhoneCallDetails#call_recording_url"><code>PhoneCallDetails.call_recording_url</code></a> will be empty instead of providing an invalid URL if the call recording doesn’t exist for the given Local Services lead conversation.</li> <li>Added new metrics related to invalid clicks which can be queried with the <a href="https://developers.google.com/google-ads/api/fields/latest/campaign"><code>campaign</code></a> report.</li> </ul> <strong>Where can I learn more?</strong><br /> The following resources can help you get started: <ul> <li><a href="https://developers.google.com/google-ads/api/docs/release-notes">Release Notes</a></li> <li><a href="https://developers.google.com/google-ads/api/docs">Guides</a></li> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/">Reference</a></li> <li><a href="https://developers.google.com/google-ads/api/docs/diff">Diff between v17 and v18</a></li> </ul> If you have any questions or need additional help, contact us via the <a href="https://groups.google.com/forum/#!forum/adwords-api">forum</a>.<br /> <span class='byline-author'><img height="40" src="https://lh3.googleusercontent.com/-uGJ74K4l6os/AAAAAAAAAAI/AAAAAAAAADY/-NAP6xAT8Fk/s120-c/photo.jpg" style="vertical-align:middle; border:none;" width="40"> - Thanet Knack Praneenararat, on behalf of the Google Ads API Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> Today, we’re announcing the v18 release of the <a href="https://developers.google.com/google-ads/api">Google Ads API</a>. To use the v18 features, you will need to upgrade your <a href="https://developers.google.com/google-ads/api/docs/client-libs">client libraries</a> and client code. The updated client libraries and code examples will be published next week.<br /> <iframe width="560" height="315" src="https://www.youtube.com/embed/RZt_hrvUvk4" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe><br /> Here are the highlights: <ul> <li>You can now use <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/RecommendationService#generaterecommendations"><code>GenerateRecommendations</code></a> during campaign construction to retrieve optimized budget suggestions for Performance Max and Search campaigns.</li> <li>A new <a href="https://developers.google.com/google-ads/api/fields/latest/performance_max_placement_view"><code>performance_max_placement_view</code></a> report allows developers to query performance data for a given placement where Performance Max ads served.</li> <li>Replaced the <code>summary_row_setting</code> and <code>return_total_results_count</code> fields of <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/SearchGoogleAdsRequest"><code>SearchGoogleAdsRequest</code></a> with the <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/SearchGoogleAdsRequest#search_settings"><code>search_settings</code></a> field, which allow developers to freely specify if <code>summary_row</code>, <code>total_results_count</code> and <code>results</code> will be returned with <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/SearchGoogleAdsResponse"><code>SearchGoogleAdsResponse</code></a>.</li> <li>Added new segments for <a href="https://developers.google.com/google-ads/api/fields/latest/campaign"><code>campaign</code></a> and <a href="https://developers.google.com/google-ads/api/fields/latest/ad_group"><code>ad_group</code></a> reports to allow for segmenting performance data based on a specific destination, such as a city or a country, for Hotel and Search campaigns.</li> <li>Added support for <a href="https://support.google.com/google-ads/answer/15265488">Travel Feeds in Search Ads</a> with a new click type (<a href="https://developers.google.com/google-ads/api/reference/rpc/latest/ClickTypeEnum.ClickType#travel_assets"><code>ClickType.TRAVEL_ASSETS</code></a>) and a new asset type (<a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AssetSetTypeEnum.AssetSetType#travel_feed"><code>AssetSetType.TRAVEL_FEED</code></a>).</li> <li>Added <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/DataLinkService#createdatalink"><code>DataLinkService.CreateDataLink</code></a>, which allows customers to link their Google Ads account to creator videos and enables running partnership ads.</li> <li>Added <a href="https://developers.google.com/google-ads/api/fields/latest/content_criterion_view"><code>content_criterion_view</code></a> which returns performance metrics of <a href="https://support.google.com/google-ads/answer/1704368#Content-Targeting">targeted contents</a>, such as keywords, placements and topics, for Display, Demand Gen and Video campaigns.</li> <li><code>Renamed AssetType.DISCOVERY_CAROUSEL_CARD</code> to <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AssetTypeEnum.AssetType#demand_gen_carousel_card"><code>AssetType.DEMAND_GEN_CAROUSEL_CARD</code></a>.</li> <li>Added <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AdGroup#exclude_demographic_expansion"><code>AdGroup.exclude_demographic_expansion</code></a> which allows excluding demographics from being expanded when <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AdGroup#exclude_demographic_expansion"><code>optimized_targeting_enabled</code></a> is true, a feature that was previously only supported for Demand Gen.</li> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/v17/PhoneCallDetails#call_recording_url"><code>PhoneCallDetails.call_recording_url</code></a> will be empty instead of providing an invalid URL if the call recording doesn’t exist for the given Local Services lead conversation.</li> <li>Added new metrics related to invalid clicks which can be queried with the <a href="https://developers.google.com/google-ads/api/fields/latest/campaign"><code>campaign</code></a> report.</li> </ul> <strong>Where can I learn more?</strong><br /> The following resources can help you get started: <ul> <li><a href="https://developers.google.com/google-ads/api/docs/release-notes">Release Notes</a></li> <li><a href="https://developers.google.com/google-ads/api/docs">Guides</a></li> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/">Reference</a></li> <li><a href="https://developers.google.com/google-ads/api/docs/diff">Diff between v17 and v18</a></li> </ul> If you have any questions or need additional help, contact us via the <a href="https://groups.google.com/forum/#!forum/adwords-api">forum</a>.<br /> <span class='byline-author'><img height="40" src="https://lh3.googleusercontent.com/-uGJ74K4l6os/AAAAAAAAAAI/AAAAAAAAADY/-NAP6xAT8Fk/s120-c/photo.jpg" style="vertical-align:middle; border:none;" width="40"> - Thanet Knack Praneenararat, on behalf of the Google Ads API Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Google Ads Developer Blog:Announcing v18 of the Google Ads API&url=http://ads-developers.googleblog.com/2024/10/announcing-v18-of-google-ads-api.html&via=google'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=http://ads-developers.googleblog.com/2024/10/announcing-v18-of-google-ads-api.html'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='http://ads-developers.googleblog.com/2024/10/announcing-v18-of-google-ads-api.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='http://ads-developers.googleblog.com/search/label/google_ads_api' rel='tag'> google_ads_api </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/release' rel='tag'> release </a> </span> </div> </div> </div> <div class='post' data-id='8574115432618234835' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2024/08/announcing-v202408-of-google-ad-manager.html' itemprop='url' title='Announcing v202408 of the Google Ad Manager API'> Announcing v202408 of the Google Ad Manager API </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Wednesday, August 21, 2024 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <p> We're pleased to announce that <a href="https://developers.google.com/ad-manager/api/rel_notes#v202408">v202408</a> of the Google Ad Manager API is available starting today, August 21, 2024. This release brings support for setting contextual targeting with <code><a href="https://developers.google.com/ad-manager/api/reference/v202408/LineItemService.ContentLabelTargeting">ContentLabelTargeting</a></code> and <code><a href="https://developers.google.com/ad-manager/api/reference/v202408/LineItemService.VerticalTargeting">VerticalTargeting</a></code>. It also adds <code><a href="https://developers.google.com/ad-manager/api/reference/v202408/AdsTxtService">AdsTxtService</a></code> for reading MCM supply chain diagnostics. <p> In reporting, the <code>VIDEO_PLACEMENT_NAME</code> dimension has been replaced by the <code><a href="https://developers.google.com/ad-manager/api/reference/v202408/ReportService.Dimension#VIDEO_PLCMT_NAME">VIDEO_PLCMT_NAME</a></code> dimension which reflects the <a href="https://iabtechlab.com/march-2023-update-to-openrtb-is-now-ready-for-implementation/">updated IAB definition</a>. <p> For the full list of changes, check the <a href="https://developers.google.com/ad-manager/api/rel_notes">release notes</a>. Contact us on the <a href="https://groups.google.com/forum/#!forum/google-doubleclick-for-publishers-api">Ad Manager API forum</a> with any API-related questions. </p> <span class="byline-author"><img height="40" src="https://lh7-us.googleusercontent.com/RlR0Enq4JZNBVo9-d4DTpAhCFysGNmVLQYpOfYTX0okgPglHXHnJQXpMnnPOpN8UhsGy3clH20w6iJcMat7syGegusZ2fraTdlgzO5EFlIZmqmqWVM9Dn5pw_OjaOQtzaQeztacac63_9eAzFLxHxsJfyPmT3-TkS3rhEOz5akMg08W5BJn3Lm0PJ84s1nI" style="border: none; vertical-align: middle;" width="40" /> - Chris Seeley, Ad Manager API Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> <p> We're pleased to announce that <a href="https://developers.google.com/ad-manager/api/rel_notes#v202408">v202408</a> of the Google Ad Manager API is available starting today, August 21, 2024. This release brings support for setting contextual targeting with <code><a href="https://developers.google.com/ad-manager/api/reference/v202408/LineItemService.ContentLabelTargeting">ContentLabelTargeting</a></code> and <code><a href="https://developers.google.com/ad-manager/api/reference/v202408/LineItemService.VerticalTargeting">VerticalTargeting</a></code>. It also adds <code><a href="https://developers.google.com/ad-manager/api/reference/v202408/AdsTxtService">AdsTxtService</a></code> for reading MCM supply chain diagnostics. <p> In reporting, the <code>VIDEO_PLACEMENT_NAME</code> dimension has been replaced by the <code><a href="https://developers.google.com/ad-manager/api/reference/v202408/ReportService.Dimension#VIDEO_PLCMT_NAME">VIDEO_PLCMT_NAME</a></code> dimension which reflects the <a href="https://iabtechlab.com/march-2023-update-to-openrtb-is-now-ready-for-implementation/">updated IAB definition</a>. <p> For the full list of changes, check the <a href="https://developers.google.com/ad-manager/api/rel_notes">release notes</a>. Contact us on the <a href="https://groups.google.com/forum/#!forum/google-doubleclick-for-publishers-api">Ad Manager API forum</a> with any API-related questions. </p> <span class="byline-author"><img height="40" src="https://lh7-us.googleusercontent.com/RlR0Enq4JZNBVo9-d4DTpAhCFysGNmVLQYpOfYTX0okgPglHXHnJQXpMnnPOpN8UhsGy3clH20w6iJcMat7syGegusZ2fraTdlgzO5EFlIZmqmqWVM9Dn5pw_OjaOQtzaQeztacac63_9eAzFLxHxsJfyPmT3-TkS3rhEOz5akMg08W5BJn3Lm0PJ84s1nI" style="border: none; vertical-align: middle;" width="40" /> - Chris Seeley, Ad Manager API Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Google Ads Developer Blog:Announcing v202408 of the Google Ad Manager API&url=http://ads-developers.googleblog.com/2024/08/announcing-v202408-of-google-ad-manager.html&via=google'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=http://ads-developers.googleblog.com/2024/08/announcing-v202408-of-google-ad-manager.html'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='http://ads-developers.googleblog.com/2024/08/announcing-v202408-of-google-ad-manager.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='http://ads-developers.googleblog.com/search/label/ad_manager_api' rel='tag'> ad_manager_api </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/ad_manager_api_v202408' rel='tag'> ad_manager_api_v202408 </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/release' rel='tag'> release </a> </span> </div> </div> </div> <div class='post' data-id='1491236346342241142' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2024/08/announcing-v171-of-google-ads-api.html' itemprop='url' title='Announcing v17_1 of the Google Ads API'> Announcing v17_1 of the Google Ads API </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Wednesday, August 7, 2024 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> Today, we’re announcing the v17_1 release of the <a href="https://developers.google.com/google-ads/api">Google Ads API</a>. To use some of the v17_1 features, you will need to upgrade your <a href="https://developers.google.com/google-ads/api/docs/client-libs">client libraries</a> and client code. The updated client libraries and code examples will be published next week. This version has no breaking changes.<br /><br /> Here are the highlights: <ul> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/ShareablePreviewService#generateshareablepreviews"><code>ShareablePreviewService.GenerateShareablePreviews()</code></a> generates the URLs for shareable ad previews for enabled and paused <a href="https://developers.google.com/google-ads/api/performance-max/asset-groups">asset groups</a>. The URLs are available for a limited amount of time and the expiration date is returned in the response.</li> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AdGroupAdService#removeautomaticallycreatedassets"><code>AdGroupAdService.RemoveAutomaticallyCreatedAssets()</code></a> allows you to remove specified <a href="https://developers.google.com/google-ads/api/docs/assets/overview#automatically_created_assets">automatically created assets</a> linked to <a href="https://developers.google.com/google-ads/api/docs/responsive-search-ads/overview">Responsive Search Ads</a>.</li> <li>Support for returning <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/ChangeStatusResourceTypeEnum.ChangeStatusResourceType#asset_group"><code>ASSET_GROUP</code></a> as a new <a href="https://developers.google.com/google-ads/api/docs/change-status">Change Status</a> resource type.</li> <li>New report for retrieving <a href="https://developers.google.com/google-ads/api/docs/conversions/upload-summaries">offline conversion diagnostics</a>, <a href="https://developers.google.com/google-ads/api/fields/latest/offline_conversion_upload_conversion_action_summary"><code>offline_conversion_upload_conversion_action_summary</code></a>. This supports returning information about the overall health of your conversion upload and adjustment processes <em>at the conversion action level</em>.</li> <li>Added metrics to the <a href="https://developers.google.com/google-ads/api/docs/conversions/upload-summaries">offline diagnostics reports</a> to convey the number of uploaded conversions that are still being processed. See <a href="https://developers.google.com/google-ads/api/docs/conversions/upload-summaries">Monitor offline data diagnostics</a> for updated information.</li> <li>Added <a href="https://developers.google.com/google-ads/api/fields/v17/segments#segments.sk_ad_network_version"><code>segments.sk_ad_network_version</code></a> which represents the version of the <a href="https://developer.apple.com/documentation/storekit/skadnetwork/">SKAdNetwork</a> API, such as 3.0, 4.0.</li> <li>Support for segmenting <a href="https://developers.google.com/google-ads/api/fields/latest/per_store_view"><code>per_store_view</code></a> based on <a href="https://developers.google.com/google-ads/api/fields/latest/per_store_view#segments.date"><code>segments.date</code></a>.</li> <li>Support for retrieving information related to <a href="https://developers.google.com/google-ads/api/docs/campaigns/bidding/assign-strategies#standard_bidding_strategies">standard bidding strategies</a> for video campaigns (Fixed CPM (cost per thousand impression) and Target CPV (cost per view)) using reports.</li> <li>Added <a href="https://developers.google.com/google-ads/api/fields/latest/segments#segments.ad_format_type"><code>segments.ad_format_type</code></a> to segment some compatible reports (such as <a href="https://developers.google.com/google-ads/api/fields/latest/ad_group"><code>ad_group</code></a> and <a href="https://developers.google.com/google-ads/api/fields/latest/campaign"><code>campaign</code></a> based on the video ad format type.</li> </ul> <strong>Where can I learn more?</strong><br /> The following resources can help you get started: <ul> <li><a href="https://developers.google.com/google-ads/api/docs/release-notes">Release Notes</a></li> <li><a href="https://developers.google.com/google-ads/api/docs">Guides</a></li> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/">Reference</a></li> </ul> If you have any questions or need additional help, contact us via the <a href="https://groups.google.com/forum/#!forum/adwords-api">forum</a>.<br /> <span class='byline-author'><img height="40" src="https://lh3.googleusercontent.com/-uGJ74K4l6os/AAAAAAAAAAI/AAAAAAAAADY/-NAP6xAT8Fk/s120-c/photo.jpg" style="vertical-align:middle; border:none;" width="40"> - Thanet Knack Praneenararat, on behalf of the Google Ads API Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> Today, we’re announcing the v17_1 release of the <a href="https://developers.google.com/google-ads/api">Google Ads API</a>. To use some of the v17_1 features, you will need to upgrade your <a href="https://developers.google.com/google-ads/api/docs/client-libs">client libraries</a> and client code. The updated client libraries and code examples will be published next week. This version has no breaking changes.<br /><br /> Here are the highlights: <ul> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/ShareablePreviewService#generateshareablepreviews"><code>ShareablePreviewService.GenerateShareablePreviews()</code></a> generates the URLs for shareable ad previews for enabled and paused <a href="https://developers.google.com/google-ads/api/performance-max/asset-groups">asset groups</a>. The URLs are available for a limited amount of time and the expiration date is returned in the response.</li> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AdGroupAdService#removeautomaticallycreatedassets"><code>AdGroupAdService.RemoveAutomaticallyCreatedAssets()</code></a> allows you to remove specified <a href="https://developers.google.com/google-ads/api/docs/assets/overview#automatically_created_assets">automatically created assets</a> linked to <a href="https://developers.google.com/google-ads/api/docs/responsive-search-ads/overview">Responsive Search Ads</a>.</li> <li>Support for returning <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/ChangeStatusResourceTypeEnum.ChangeStatusResourceType#asset_group"><code>ASSET_GROUP</code></a> as a new <a href="https://developers.google.com/google-ads/api/docs/change-status">Change Status</a> resource type.</li> <li>New report for retrieving <a href="https://developers.google.com/google-ads/api/docs/conversions/upload-summaries">offline conversion diagnostics</a>, <a href="https://developers.google.com/google-ads/api/fields/latest/offline_conversion_upload_conversion_action_summary"><code>offline_conversion_upload_conversion_action_summary</code></a>. This supports returning information about the overall health of your conversion upload and adjustment processes <em>at the conversion action level</em>.</li> <li>Added metrics to the <a href="https://developers.google.com/google-ads/api/docs/conversions/upload-summaries">offline diagnostics reports</a> to convey the number of uploaded conversions that are still being processed. See <a href="https://developers.google.com/google-ads/api/docs/conversions/upload-summaries">Monitor offline data diagnostics</a> for updated information.</li> <li>Added <a href="https://developers.google.com/google-ads/api/fields/v17/segments#segments.sk_ad_network_version"><code>segments.sk_ad_network_version</code></a> which represents the version of the <a href="https://developer.apple.com/documentation/storekit/skadnetwork/">SKAdNetwork</a> API, such as 3.0, 4.0.</li> <li>Support for segmenting <a href="https://developers.google.com/google-ads/api/fields/latest/per_store_view"><code>per_store_view</code></a> based on <a href="https://developers.google.com/google-ads/api/fields/latest/per_store_view#segments.date"><code>segments.date</code></a>.</li> <li>Support for retrieving information related to <a href="https://developers.google.com/google-ads/api/docs/campaigns/bidding/assign-strategies#standard_bidding_strategies">standard bidding strategies</a> for video campaigns (Fixed CPM (cost per thousand impression) and Target CPV (cost per view)) using reports.</li> <li>Added <a href="https://developers.google.com/google-ads/api/fields/latest/segments#segments.ad_format_type"><code>segments.ad_format_type</code></a> to segment some compatible reports (such as <a href="https://developers.google.com/google-ads/api/fields/latest/ad_group"><code>ad_group</code></a> and <a href="https://developers.google.com/google-ads/api/fields/latest/campaign"><code>campaign</code></a> based on the video ad format type.</li> </ul> <strong>Where can I learn more?</strong><br /> The following resources can help you get started: <ul> <li><a href="https://developers.google.com/google-ads/api/docs/release-notes">Release Notes</a></li> <li><a href="https://developers.google.com/google-ads/api/docs">Guides</a></li> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/">Reference</a></li> </ul> If you have any questions or need additional help, contact us via the <a href="https://groups.google.com/forum/#!forum/adwords-api">forum</a>.<br /> <span class='byline-author'><img height="40" src="https://lh3.googleusercontent.com/-uGJ74K4l6os/AAAAAAAAAAI/AAAAAAAAADY/-NAP6xAT8Fk/s120-c/photo.jpg" style="vertical-align:middle; border:none;" width="40"> - Thanet Knack Praneenararat, on behalf of the Google Ads API Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Google Ads Developer Blog:Announcing v17_1 of the Google Ads API&url=http://ads-developers.googleblog.com/2024/08/announcing-v171-of-google-ads-api.html&via=google'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=http://ads-developers.googleblog.com/2024/08/announcing-v171-of-google-ads-api.html'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='http://ads-developers.googleblog.com/2024/08/announcing-v171-of-google-ads-api.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='http://ads-developers.googleblog.com/search/label/google_ads_api' rel='tag'> google_ads_api </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/release' rel='tag'> release </a> </span> </div> </div> </div> <div class='post' data-id='2892988802070917781' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2024/06/announcing-v17-of-google-ads-api.html' itemprop='url' title='Announcing v17 of the Google Ads API'> Announcing v17 of the Google Ads API </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Wednesday, June 5, 2024 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> Today, we’re announcing the v17 release of the <a href="https://developers.google.com/google-ads/api">Google Ads API</a>. To use some of the v17 features, you will need to upgrade your <a href="https://developers.google.com/google-ads/api/docs/client-libs">client libraries</a> and client code. The updated client libraries and code examples will be published next week.<br /> <iframe width="560" height="315" src="https://www.youtube.com/embed/HnGlTkJxjrI" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe><br /> Here are the highlights: <ul> <li>To prepare for the <a href="https://ads-developers.googleblog.com/2024/05/google-ads-api-resource-usage-policy.html">resource usage policy change</a> that will happen on June 17, 2024, we added two new values to <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/QuotaErrorEnum.QuotaError"><code>QuotaError</code></a>, thrown for excessive resource consumption over a period of time by a query pattern for <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/GoogleAdsService#search"><code>GoogleAdsService.Search()</code></a> and <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/GoogleAdsService#searchstream"><code>GoogleAdsService.SearchStream()</code></a> requests.</li> <li>The <code>page_size</code> field is always set to 10,000, and you can no longer pass a <code>page_size</code> to <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/GoogleAdsService#search"><code>GoogleAdsService.Search</code></a>. Doing so will result in a <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/RequestErrorEnum.RequestError#page_size_not_supported"><code>RequestError.PAGE_SIZE_NOT_SUPPORTED</code></a> error.</li> <li>Added <a href="https://developers.google.com/google-ads/api/fields/latest/campaign_aggregate_asset_view"><code>campaign_aggregate_asset_view</code></a> and <a href="https://developers.google.com/google-ads/api/fields/latest/channel_aggregate_asset_view"><code>channel_aggregate_asset_view</code></a> for reporting more metrics of Performance Max and Search campaigns.</li> <li>Changes to <a href="https://developers.google.com/google-ads/api/docs/batch-processing/overview">batch processing</a>: <ul> <li>Added support for setting <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/MutateOperation#asset_group_operation"><code>MutateOperation.asset_group_operation</code></a> when using <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/BatchJobService"><code>BatchJobService</code></a>. This lets you use <a href="https://developers.google.com/google-ads/api/docs/batch-processing/overview">batch processing</a> to create and manage entire Performance Max campaigns.</li> <li>Added the <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/BatchJobErrorEnum.BatchJobError#request_too_large"><code>BatchJobError.REQUEST_TOO_LARGE</code></a> error for submitting a <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AddBatchJobOperationsRequest"><code>AddBatchJobOperationsRequest</code></a> that is larger than 10,484,504 bytes. You should divide the operations into smaller groups and send them as a separate request.</li> </ul></li> <li>Added <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Campaign#keyword_match_type"><code>Campaign.keyword_match_type</code></a> to allow setting a keyword match type for all keywords in a campaign.</li> <li>Removed <code>AdService.getAd</code> to align the service with others in the Google Ads API. For recommendations on how to fetch resources, see <a href="https://developers.google.com/google-ads/api/docs/concepts/retrieving-objects">Retrieving objects</a>.</li> <li>Added <code>primary_status</code> and <code>primary_status_reasons</code> to <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AdGroupCriterion"><code>AdGroupCriterion</code></a> to show whether the ad group criterion is serving, or the reasons why it's not serving.</li> <li>Added a new report <a href="https://developers.google.com/google-ads/api/fields/latest/shopping_product"><code>shopping_product</code></a>, which corresponds to the <strong>Products</strong> page of the Google Ads UI.</li> <li>Added more validations for <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/ImageAdInfo#image_asset"><code>ImageAdInfo.image_asset</code></a> regarding dimensions and format, which makes it more consistent with other image validations in the Google Ads API.</li> <li>Added <a href="https://developers.google.com/google-ads/api/fields/latest/segments#segments.sk_ad_network_redistributed_fine_conversion_value"><code>segments.sk_ad_network_redistributed_fine_conversion_value</code></a>, which redistributes <code>NULL</code> values to other values based on a machine learning model on recent <a href="https://developer.apple.com/documentation/storekit/skadnetwork/">SkAdNetwork</a> postback data.</li> <li>Renamed <strong>Discovery</strong> to <strong>Demand Gen</strong> in all fields, enums, errors of all resources across the Google Ads API.</li> <li>You can now select only fields related to <em>one</em> <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/ProductLink#linked_product">linked product</a> when querying <a href="https://developers.google.com/google-ads/api/fields/latest/product_link"><code>product_link</code></a>. Failing to do so will throw <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/QuotaErrorEnum.QuotaError#prohibited_field_combination_in_select_clause"><code>QueryError.PROHIBITED_FIELD_COMBINATION_IN_SELECT_CLAUSE</code></a>.</li> <li>Added <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/QueryErrorEnum.QueryError#prohibited_field_combination_in_select_clause"><code>UserListCustomerTypeService.MutateUserListCustomerTypes()</code></a> to configure <a href="https://support.google.com/google-ads/answer/14443483?hl=en">audience customer types</a>. This method replaces the use of <code>CustomerLifecycleGoal.lifecycle_goal_customer_definition_settings</code>.</li> <li>Added two expiration_date_time fields <a href="https://developers.google.com/google-ads/api/fields/latest/local_services_verification_artifact"><code>local_services_verification_artifact</code></a> to allow advertisers to better monitor when their artifacts expire.</li> </ul> <strong>Where can I learn more?</strong><br /> The following resources can help you get started: <ul> <li><a href="https://developers.google.com/google-ads/api/docs/release-notes">Release Notes</a></li> <li><a href="https://developers.google.com/google-ads/api/docs">Guides</a></li> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/">Reference</a></li> <li><a href="https://developers.google.com/google-ads/api/docs/diff">Diff between v16 and v17</a></li> </ul> If you have any questions or need additional help, contact us via the <a href="https://groups.google.com/forum/#!forum/adwords-api">forum</a>.<br /> <span class='byline-author'><img height="40" src="https://lh3.googleusercontent.com/-uGJ74K4l6os/AAAAAAAAAAI/AAAAAAAAADY/-NAP6xAT8Fk/s120-c/photo.jpg" style="vertical-align:middle; border:none;" width="40"> - Thanet Knack Praneenararat, on behalf of the Google Ads API Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> Today, we’re announcing the v17 release of the <a href="https://developers.google.com/google-ads/api">Google Ads API</a>. To use some of the v17 features, you will need to upgrade your <a href="https://developers.google.com/google-ads/api/docs/client-libs">client libraries</a> and client code. The updated client libraries and code examples will be published next week.<br /> <iframe width="560" height="315" src="https://www.youtube.com/embed/HnGlTkJxjrI" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe><br /> Here are the highlights: <ul> <li>To prepare for the <a href="https://ads-developers.googleblog.com/2024/05/google-ads-api-resource-usage-policy.html">resource usage policy change</a> that will happen on June 17, 2024, we added two new values to <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/QuotaErrorEnum.QuotaError"><code>QuotaError</code></a>, thrown for excessive resource consumption over a period of time by a query pattern for <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/GoogleAdsService#search"><code>GoogleAdsService.Search()</code></a> and <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/GoogleAdsService#searchstream"><code>GoogleAdsService.SearchStream()</code></a> requests.</li> <li>The <code>page_size</code> field is always set to 10,000, and you can no longer pass a <code>page_size</code> to <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/GoogleAdsService#search"><code>GoogleAdsService.Search</code></a>. Doing so will result in a <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/RequestErrorEnum.RequestError#page_size_not_supported"><code>RequestError.PAGE_SIZE_NOT_SUPPORTED</code></a> error.</li> <li>Added <a href="https://developers.google.com/google-ads/api/fields/latest/campaign_aggregate_asset_view"><code>campaign_aggregate_asset_view</code></a> and <a href="https://developers.google.com/google-ads/api/fields/latest/channel_aggregate_asset_view"><code>channel_aggregate_asset_view</code></a> for reporting more metrics of Performance Max and Search campaigns.</li> <li>Changes to <a href="https://developers.google.com/google-ads/api/docs/batch-processing/overview">batch processing</a>: <ul> <li>Added support for setting <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/MutateOperation#asset_group_operation"><code>MutateOperation.asset_group_operation</code></a> when using <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/BatchJobService"><code>BatchJobService</code></a>. This lets you use <a href="https://developers.google.com/google-ads/api/docs/batch-processing/overview">batch processing</a> to create and manage entire Performance Max campaigns.</li> <li>Added the <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/BatchJobErrorEnum.BatchJobError#request_too_large"><code>BatchJobError.REQUEST_TOO_LARGE</code></a> error for submitting a <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AddBatchJobOperationsRequest"><code>AddBatchJobOperationsRequest</code></a> that is larger than 10,484,504 bytes. You should divide the operations into smaller groups and send them as a separate request.</li> </ul></li> <li>Added <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Campaign#keyword_match_type"><code>Campaign.keyword_match_type</code></a> to allow setting a keyword match type for all keywords in a campaign.</li> <li>Removed <code>AdService.getAd</code> to align the service with others in the Google Ads API. For recommendations on how to fetch resources, see <a href="https://developers.google.com/google-ads/api/docs/concepts/retrieving-objects">Retrieving objects</a>.</li> <li>Added <code>primary_status</code> and <code>primary_status_reasons</code> to <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AdGroupCriterion"><code>AdGroupCriterion</code></a> to show whether the ad group criterion is serving, or the reasons why it's not serving.</li> <li>Added a new report <a href="https://developers.google.com/google-ads/api/fields/latest/shopping_product"><code>shopping_product</code></a>, which corresponds to the <strong>Products</strong> page of the Google Ads UI.</li> <li>Added more validations for <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/ImageAdInfo#image_asset"><code>ImageAdInfo.image_asset</code></a> regarding dimensions and format, which makes it more consistent with other image validations in the Google Ads API.</li> <li>Added <a href="https://developers.google.com/google-ads/api/fields/latest/segments#segments.sk_ad_network_redistributed_fine_conversion_value"><code>segments.sk_ad_network_redistributed_fine_conversion_value</code></a>, which redistributes <code>NULL</code> values to other values based on a machine learning model on recent <a href="https://developer.apple.com/documentation/storekit/skadnetwork/">SkAdNetwork</a> postback data.</li> <li>Renamed <strong>Discovery</strong> to <strong>Demand Gen</strong> in all fields, enums, errors of all resources across the Google Ads API.</li> <li>You can now select only fields related to <em>one</em> <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/ProductLink#linked_product">linked product</a> when querying <a href="https://developers.google.com/google-ads/api/fields/latest/product_link"><code>product_link</code></a>. Failing to do so will throw <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/QuotaErrorEnum.QuotaError#prohibited_field_combination_in_select_clause"><code>QueryError.PROHIBITED_FIELD_COMBINATION_IN_SELECT_CLAUSE</code></a>.</li> <li>Added <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/QueryErrorEnum.QueryError#prohibited_field_combination_in_select_clause"><code>UserListCustomerTypeService.MutateUserListCustomerTypes()</code></a> to configure <a href="https://support.google.com/google-ads/answer/14443483?hl=en">audience customer types</a>. This method replaces the use of <code>CustomerLifecycleGoal.lifecycle_goal_customer_definition_settings</code>.</li> <li>Added two expiration_date_time fields <a href="https://developers.google.com/google-ads/api/fields/latest/local_services_verification_artifact"><code>local_services_verification_artifact</code></a> to allow advertisers to better monitor when their artifacts expire.</li> </ul> <strong>Where can I learn more?</strong><br /> The following resources can help you get started: <ul> <li><a href="https://developers.google.com/google-ads/api/docs/release-notes">Release Notes</a></li> <li><a href="https://developers.google.com/google-ads/api/docs">Guides</a></li> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/">Reference</a></li> <li><a href="https://developers.google.com/google-ads/api/docs/diff">Diff between v16 and v17</a></li> </ul> If you have any questions or need additional help, contact us via the <a href="https://groups.google.com/forum/#!forum/adwords-api">forum</a>.<br /> <span class='byline-author'><img height="40" src="https://lh3.googleusercontent.com/-uGJ74K4l6os/AAAAAAAAAAI/AAAAAAAAADY/-NAP6xAT8Fk/s120-c/photo.jpg" style="vertical-align:middle; border:none;" width="40"> - Thanet Knack Praneenararat, on behalf of the Google Ads API Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Google Ads Developer Blog:Announcing v17 of the Google Ads API&url=http://ads-developers.googleblog.com/2024/06/announcing-v17-of-google-ads-api.html&via=google'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=http://ads-developers.googleblog.com/2024/06/announcing-v17-of-google-ads-api.html'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='http://ads-developers.googleblog.com/2024/06/announcing-v17-of-google-ads-api.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='http://ads-developers.googleblog.com/search/label/google_ads_api' rel='tag'> google_ads_api </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/release' rel='tag'> release </a> </span> </div> </div> </div> <div class='post' data-id='720276577307185068' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2024/05/announcing-v202405-of-google-ad-manager.html' itemprop='url' title='Announcing v202405 of the Google Ad Manager API'> Announcing v202405 of the Google Ad Manager API </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Friday, May 24, 2024 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <p> We're pleased to announce that <a href="https://developers.google.com/ad-manager/api/rel_notes#v202405">v202405</a> of the Google Ad Manager API is available today. This release brings <a href="https://developers.google.com/ad-manager/api/reference/v202405/PublisherQueryLanguageService#content_label">support</a> for <a href="https://support.google.com/admanager/answer/12451124">contextual targeting</a>. </p> <p> It also includes a number of deprecations, such as the removal of the <a href="https://developers.google.com/ad-manager/api/reference/v202402/ActivityService">ActivityService</a>, <a href="https://developers.google.com/ad-manager/api/reference/v202402/ActivityGroupService">ActivityGroupService</a>, and <code>ACTIVITY</code> reporting dimensions to support the <a href="https://support.google.com/admanager/answer/2476900">Spotlight deprecation</a>. <p> For the full list of changes, check the <a href="https://developers.google.com/ad-manager/api/rel_notes">release notes</a>. Feel free to contact us on the <a href="https://groups.google.com/forum/#!forum/google-doubleclick-for-publishers-api">Ad Manager API forum</a> with any API-related questions. </p> <span class="byline-author"><img height="40" src="https://lh7-us.googleusercontent.com/RlR0Enq4JZNBVo9-d4DTpAhCFysGNmVLQYpOfYTX0okgPglHXHnJQXpMnnPOpN8UhsGy3clH20w6iJcMat7syGegusZ2fraTdlgzO5EFlIZmqmqWVM9Dn5pw_OjaOQtzaQeztacac63_9eAzFLxHxsJfyPmT3-TkS3rhEOz5akMg08W5BJn3Lm0PJ84s1nI" style="border: none; vertical-align: middle;" width="40" /> - Chris Seeley, Ad Manager API Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> <p> We're pleased to announce that <a href="https://developers.google.com/ad-manager/api/rel_notes#v202405">v202405</a> of the Google Ad Manager API is available today. This release brings <a href="https://developers.google.com/ad-manager/api/reference/v202405/PublisherQueryLanguageService#content_label">support</a> for <a href="https://support.google.com/admanager/answer/12451124">contextual targeting</a>. </p> <p> It also includes a number of deprecations, such as the removal of the <a href="https://developers.google.com/ad-manager/api/reference/v202402/ActivityService">ActivityService</a>, <a href="https://developers.google.com/ad-manager/api/reference/v202402/ActivityGroupService">ActivityGroupService</a>, and <code>ACTIVITY</code> reporting dimensions to support the <a href="https://support.google.com/admanager/answer/2476900">Spotlight deprecation</a>. <p> For the full list of changes, check the <a href="https://developers.google.com/ad-manager/api/rel_notes">release notes</a>. Feel free to contact us on the <a href="https://groups.google.com/forum/#!forum/google-doubleclick-for-publishers-api">Ad Manager API forum</a> with any API-related questions. </p> <span class="byline-author"><img height="40" src="https://lh7-us.googleusercontent.com/RlR0Enq4JZNBVo9-d4DTpAhCFysGNmVLQYpOfYTX0okgPglHXHnJQXpMnnPOpN8UhsGy3clH20w6iJcMat7syGegusZ2fraTdlgzO5EFlIZmqmqWVM9Dn5pw_OjaOQtzaQeztacac63_9eAzFLxHxsJfyPmT3-TkS3rhEOz5akMg08W5BJn3Lm0PJ84s1nI" style="border: none; vertical-align: middle;" width="40" /> - Chris Seeley, Ad Manager API Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Google Ads Developer Blog:Announcing v202405 of the Google Ad Manager API&url=http://ads-developers.googleblog.com/2024/05/announcing-v202405-of-google-ad-manager.html&via=google'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=http://ads-developers.googleblog.com/2024/05/announcing-v202405-of-google-ad-manager.html'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='http://ads-developers.googleblog.com/2024/05/announcing-v202405-of-google-ad-manager.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='http://ads-developers.googleblog.com/search/label/ad_manager_api' rel='tag'> ad_manager_api </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/ad_manager_api_v202405' rel='tag'> ad_manager_api_v202405 </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/release' rel='tag'> release </a> </span> </div> </div> </div> <div class='post' data-id='6633902471507463004' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2024/04/announcing-v161-of-google-ads-api.html' itemprop='url' title='Announcing v16_1 of the Google Ads API '> Announcing v16_1 of the Google Ads API </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Wednesday, April 24, 2024 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <p> Today, we’re announcing the v16_1 release of the <a href="https://developers.google.com/google-ads/api">Google Ads API</a>. To use some of the v16_1 features, upgrade your <a href="https://developers.google.com/google-ads/api/docs/client-libs">client libraries</a> and client code. The updated client libraries and code examples will be published next week. This version has no breaking changes. </p> <p> Here are the highlights: </p><ul> <li>You can now query assets of <a href="https://developers.google.com/google-ads/api/docs/demand-gen/overview">Demand Gen</a> campaigns using <code><a href="https://developers.google.com/google-ads/api/fields/latest/ad_group_ad_asset_view">ad_group_ad_asset_view</a></code> and <code><a href="https://developers.google.com/google-ads/api/fields/latest/asset_field_type_view">asset_field_type_view</a></code>. <li>Added <code><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/CustomerSkAdNetworkConversionValueSchema.SkAdNetworkConversionValueSchema#postback_mappings[]">SkAdNetworkConversionValueSchema.postback_mappings</a></code> which supports <a href="https://developer.apple.com/documentation/storekit/skadnetwork/skadnetwork_release_notes/skadnetwork_4_release_notes">SKAdNetwork 4.0</a> features. <li>You can now retrieve <a href="https://developers.google.com/google-ads/api/docs/campaigns/bidding/strategy-types">Target ROAS</a> campaign bid simulations for <a href="https://developers.google.com/google-ads/api/docs/app-campaigns/overview">App campaigns</a> using the <code><a href="https://developers.google.com/google-ads/api/fields/latest/campaign_simulation">campaign_simulation</a></code> report. <li>Added <code><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/CustomerNegativeCriterion#ip_block">CustomerNegativeCriterion.ip_block</a></code> which supports adding an IP as a negative criterion at the customer level. <li>Added new fields to <code><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/BrandInfo">BrandInfo</a></code> to return more information such as the text representation of a brand, the status of a brand, etc. <li>Added <code><a href="https://developers.google.com/google-ads/api/fields/latest/customer#customer.video_brand_safety_suitability">customer.video_brand_safety_suitability</a></code> and <code><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/BrandSafetySuitabilityEnum.BrandSafetySuitability">BrandSafetySuitability</a></code> which support returning video brand safety suitability at the customer level. <li>Added support for warnings for <code><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/CustomerSkAdNetworkConversionValueSchemaService">CustomerSkAdNetworkConversionValueSchemaService</a></code> as <code><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/MutateCustomerSkAdNetworkConversionValueSchemaRequest#enable_warnings">MutateCustomerSkAdNetworkConversionValueSchemaRequest.enable_warnings</a></code>. When set to <code>true</code>, any non-blocking errors pertaining to operation failures will be returned as <code><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/MutateCustomerSkAdNetworkConversionValueSchemaResponse#warning">MutateCustomerSkAdNetworkConversionValueSchemaResponse.warning</a></code>. <li>Added support for retrieving more information regarding Local Services: <ul> <li><code><a href="https://developers.google.com/google-ads/api/fields/latest/local_services_lead#local_services_lead.credit_details">local_services_lead.credit_details</a></code> which returns the state of credit and the timestamp when the credit state was updated. <li><code><a href="https://developers.google.com/google-ads/api/fields/latest/local_services_lead_conversation#local_services_lead_conversation.message_details.attachment_urls">local_services_lead_conversation.message_details.attachment_urls</a></code> which returns the URLs that can be used to download the contents of the attachment.</li> </ul> </li> </ul> <p> <strong>Where can I learn more?</strong> </p> <p> The following resources can help you get started: </p><ul> <li><a href="https://developers.google.com/google-ads/api/docs/release-notes">Release Notes</a> <li><a href="https://developers.google.com/google-ads/api/docs">Guides</a> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/">Reference</a></li></ul> <p> If you have any questions or need additional help, contact us via the <a href="https://groups.google.com/forum/#!forum/adwords-api">forum</a>. </p> <span class='byline-author'><img height="40" src="https://lh3.googleusercontent.com/-uGJ74K4l6os/AAAAAAAAAAI/AAAAAAAAADY/-NAP6xAT8Fk/s120-c/photo.jpg" style="vertical-align:middle; border:none;" width="40"> - Thanet Knack Praneenararat, on behalf of the Google Ads API Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> <p> Today, we’re announcing the v16_1 release of the <a href="https://developers.google.com/google-ads/api">Google Ads API</a>. To use some of the v16_1 features, upgrade your <a href="https://developers.google.com/google-ads/api/docs/client-libs">client libraries</a> and client code. The updated client libraries and code examples will be published next week. This version has no breaking changes. </p> <p> Here are the highlights: </p><ul> <li>You can now query assets of <a href="https://developers.google.com/google-ads/api/docs/demand-gen/overview">Demand Gen</a> campaigns using <code><a href="https://developers.google.com/google-ads/api/fields/latest/ad_group_ad_asset_view">ad_group_ad_asset_view</a></code> and <code><a href="https://developers.google.com/google-ads/api/fields/latest/asset_field_type_view">asset_field_type_view</a></code>. <li>Added <code><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/CustomerSkAdNetworkConversionValueSchema.SkAdNetworkConversionValueSchema#postback_mappings[]">SkAdNetworkConversionValueSchema.postback_mappings</a></code> which supports <a href="https://developer.apple.com/documentation/storekit/skadnetwork/skadnetwork_release_notes/skadnetwork_4_release_notes">SKAdNetwork 4.0</a> features. <li>You can now retrieve <a href="https://developers.google.com/google-ads/api/docs/campaigns/bidding/strategy-types">Target ROAS</a> campaign bid simulations for <a href="https://developers.google.com/google-ads/api/docs/app-campaigns/overview">App campaigns</a> using the <code><a href="https://developers.google.com/google-ads/api/fields/latest/campaign_simulation">campaign_simulation</a></code> report. <li>Added <code><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/CustomerNegativeCriterion#ip_block">CustomerNegativeCriterion.ip_block</a></code> which supports adding an IP as a negative criterion at the customer level. <li>Added new fields to <code><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/BrandInfo">BrandInfo</a></code> to return more information such as the text representation of a brand, the status of a brand, etc. <li>Added <code><a href="https://developers.google.com/google-ads/api/fields/latest/customer#customer.video_brand_safety_suitability">customer.video_brand_safety_suitability</a></code> and <code><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/BrandSafetySuitabilityEnum.BrandSafetySuitability">BrandSafetySuitability</a></code> which support returning video brand safety suitability at the customer level. <li>Added support for warnings for <code><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/CustomerSkAdNetworkConversionValueSchemaService">CustomerSkAdNetworkConversionValueSchemaService</a></code> as <code><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/MutateCustomerSkAdNetworkConversionValueSchemaRequest#enable_warnings">MutateCustomerSkAdNetworkConversionValueSchemaRequest.enable_warnings</a></code>. When set to <code>true</code>, any non-blocking errors pertaining to operation failures will be returned as <code><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/MutateCustomerSkAdNetworkConversionValueSchemaResponse#warning">MutateCustomerSkAdNetworkConversionValueSchemaResponse.warning</a></code>. <li>Added support for retrieving more information regarding Local Services: <ul> <li><code><a href="https://developers.google.com/google-ads/api/fields/latest/local_services_lead#local_services_lead.credit_details">local_services_lead.credit_details</a></code> which returns the state of credit and the timestamp when the credit state was updated. <li><code><a href="https://developers.google.com/google-ads/api/fields/latest/local_services_lead_conversation#local_services_lead_conversation.message_details.attachment_urls">local_services_lead_conversation.message_details.attachment_urls</a></code> which returns the URLs that can be used to download the contents of the attachment.</li> </ul> </li> </ul> <p> <strong>Where can I learn more?</strong> </p> <p> The following resources can help you get started: </p><ul> <li><a href="https://developers.google.com/google-ads/api/docs/release-notes">Release Notes</a> <li><a href="https://developers.google.com/google-ads/api/docs">Guides</a> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/">Reference</a></li></ul> <p> If you have any questions or need additional help, contact us via the <a href="https://groups.google.com/forum/#!forum/adwords-api">forum</a>. </p> <span class='byline-author'><img height="40" src="https://lh3.googleusercontent.com/-uGJ74K4l6os/AAAAAAAAAAI/AAAAAAAAADY/-NAP6xAT8Fk/s120-c/photo.jpg" style="vertical-align:middle; border:none;" width="40"> - Thanet Knack Praneenararat, on behalf of the Google Ads API Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Google Ads Developer Blog:Announcing v16_1 of the Google Ads API &url=http://ads-developers.googleblog.com/2024/04/announcing-v161-of-google-ads-api.html&via=google'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=http://ads-developers.googleblog.com/2024/04/announcing-v161-of-google-ads-api.html'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='http://ads-developers.googleblog.com/2024/04/announcing-v161-of-google-ads-api.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='http://ads-developers.googleblog.com/search/label/google_ads_api' rel='tag'> google_ads_api </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/release' rel='tag'> release </a> </span> </div> </div> </div> <div class='post' data-id='6976849160030046391' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2024/03/announcing-android-google-mobile-ads.html' itemprop='url' title='Announcing Android Google Mobile Ads SDK Version 23.0.0'> Announcing Android Google Mobile Ads SDK Version 23.0.0 </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Friday, March 15, 2024 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <p> Version 23.0.0 of the Android Google Mobile Ads SDK is now available. We recommend upgrading as soon as possible to get our latest features and performance improvements. </p> <h3>The minimum Android API level is 21</h3> <p> Starting in version 23.0.0, the Google Mobile Ads SDK requires all apps to be on a minimum Android API level 21 to run. To adjust the API level, change the value of <code>minSdk</code> in your app-level <code>build.gradle</code> file to 21 or higher. </p> <h3>Ad Manager builder methods can now be chained</h3> <p> In version 23.0.0, <a href="https://developers.google.com/android/reference/com/google/android/gms/ads/admanager/AdManagerAdRequest.Builder">AdManagerAdRequest.Builder</a> methods inherited from its parent can be chained together to build an <a href="https://developers.google.com/android/reference/com/google/android/gms/ads/admanager/AdManagerAdRequest">AdManagerAdRequest</a> using a single call: </p> <pre class="prettyprint">var newRequest = AdManagerAdRequest.Builder() .addCustomTargeting("age", "25") // AdManagerAdRequest.Builder method. .setContentUrl("https://www.example.com") // Method inherited from parent. .build() // Builds an AdManagerAdRequest.</pre> <p> A side effect of this change is <code>AdManagerAdRequest.Builder</code> no longer inherits from <a href="https://developers.google.com/android/reference/com/google/android/gms/ads/AdRequest.Builder">AdRequest.Builder</a>. </p> <h3>SDK deprecation and sunset timelines activated </h3> <p> With this Android major version 23 launch and the <a href="https://ads-developers.googleblog.com/2024/02/announcing-ios-google-mobile-ads-sdk.html">iOS major version 11 launch </a> last month, we are announcing new deprecation and sunset dates for older major releases. Specifically: </p><ul> <li>Android Google Mobile Ads SDK versions 21.x.x are officially deprecated, and will sunset in Q2 2025. <li><strong>Android versions 20.x.x and iOS versions 8.x.x will <a href="https://developers.google.com/admob/android/deprecation#differences">sunset</a> on June 30, 2024</strong>. <ul> <li>While there are currently no plans to disable ad serving on Android versions 20.x.x and iOS versions 8.x.x, we strongly recommend updating to a supported SDK version to avoid being impacted in the future.</li> </ul> </li> </ul> <p> For the full list of changes in v23.0.0, check the <a href="https://developers.google.com/admob/android/rel-notes">release notes</a>. Check our <a href="https://developers.google.com/admob/android/migration">migration guide</a> to ensure your mobile apps are ready to upgrade. As always, if you have any questions or need additional help, contact us via the <a href="https://groups.google.com/group/google-admob-ads-sdk">developer forum</a>. </p> <p><span class="byline-author"><img height="40" src="https://lh3.googleusercontent.com/a/ACg8ocL5K1gwgo5Yng334LFkt_SM4fMqjvEyCXTG-cYDduruqA=s212-p" style="vertical-align:middle; border:none;" width="40"> - Jill Song, Mobile Ads Developer Relations</span></p> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> <p> Version 23.0.0 of the Android Google Mobile Ads SDK is now available. We recommend upgrading as soon as possible to get our latest features and performance improvements. </p> <h3>The minimum Android API level is 21</h3> <p> Starting in version 23.0.0, the Google Mobile Ads SDK requires all apps to be on a minimum Android API level 21 to run. To adjust the API level, change the value of <code>minSdk</code> in your app-level <code>build.gradle</code> file to 21 or higher. </p> <h3>Ad Manager builder methods can now be chained</h3> <p> In version 23.0.0, <a href="https://developers.google.com/android/reference/com/google/android/gms/ads/admanager/AdManagerAdRequest.Builder">AdManagerAdRequest.Builder</a> methods inherited from its parent can be chained together to build an <a href="https://developers.google.com/android/reference/com/google/android/gms/ads/admanager/AdManagerAdRequest">AdManagerAdRequest</a> using a single call: </p> <pre class="prettyprint">var newRequest = AdManagerAdRequest.Builder() .addCustomTargeting("age", "25") // AdManagerAdRequest.Builder method. .setContentUrl("https://www.example.com") // Method inherited from parent. .build() // Builds an AdManagerAdRequest.</pre> <p> A side effect of this change is <code>AdManagerAdRequest.Builder</code> no longer inherits from <a href="https://developers.google.com/android/reference/com/google/android/gms/ads/AdRequest.Builder">AdRequest.Builder</a>. </p> <h3>SDK deprecation and sunset timelines activated </h3> <p> With this Android major version 23 launch and the <a href="https://ads-developers.googleblog.com/2024/02/announcing-ios-google-mobile-ads-sdk.html">iOS major version 11 launch </a> last month, we are announcing new deprecation and sunset dates for older major releases. Specifically: </p><ul> <li>Android Google Mobile Ads SDK versions 21.x.x are officially deprecated, and will sunset in Q2 2025. <li><strong>Android versions 20.x.x and iOS versions 8.x.x will <a href="https://developers.google.com/admob/android/deprecation#differences">sunset</a> on June 30, 2024</strong>. <ul> <li>While there are currently no plans to disable ad serving on Android versions 20.x.x and iOS versions 8.x.x, we strongly recommend updating to a supported SDK version to avoid being impacted in the future.</li> </ul> </li> </ul> <p> For the full list of changes in v23.0.0, check the <a href="https://developers.google.com/admob/android/rel-notes">release notes</a>. Check our <a href="https://developers.google.com/admob/android/migration">migration guide</a> to ensure your mobile apps are ready to upgrade. As always, if you have any questions or need additional help, contact us via the <a href="https://groups.google.com/group/google-admob-ads-sdk">developer forum</a>. </p> <p><span class="byline-author"><img height="40" src="https://lh3.googleusercontent.com/a/ACg8ocL5K1gwgo5Yng334LFkt_SM4fMqjvEyCXTG-cYDduruqA=s212-p" style="vertical-align:middle; border:none;" width="40"> - Jill Song, Mobile Ads Developer Relations</span></p> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Google Ads Developer Blog:Announcing Android Google Mobile Ads SDK Version 23.0.0&url=http://ads-developers.googleblog.com/2024/03/announcing-android-google-mobile-ads.html&via=google'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=http://ads-developers.googleblog.com/2024/03/announcing-android-google-mobile-ads.html'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='http://ads-developers.googleblog.com/2024/03/announcing-android-google-mobile-ads.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='http://ads-developers.googleblog.com/search/label/ad_manager' rel='tag'> ad_manager </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/admob' rel='tag'> admob </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/android' rel='tag'> android </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/deprecation' rel='tag'> deprecation </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/iOS' rel='tag'> iOS </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/mobile_ads_sdk' rel='tag'> mobile_ads_sdk </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/release' rel='tag'> release </a> </span> </div> </div> </div> <div class='post' data-id='3718831821817168306' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2024/02/announcing-v16-of-google-ads-api.html' itemprop='url' title='Announcing v16 of the Google Ads API'> Announcing v16 of the Google Ads API </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Wednesday, February 21, 2024 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> Today, we’re announcing the v16 release of the <a href="https://developers.google.com/google-ads/api">Google Ads API</a>. To use some of the v16 features, you will need to upgrade your <a href="https://developers.google.com/google-ads/api/docs/client-libs">client libraries</a> and client code. The updated client libraries and code examples will be published next week.<br /> <iframe width="560" height="315" src="https://www.youtube.com/embed/Vn5_DBvpABA" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> Here are the highlights: <ul> <li>Added the following recommendation types: <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/RecommendationTypeEnum.RecommendationType#maximize_conversion_value_opt_in"><code>MAXIMIZE_CONVERSION_VALUE_OPT_IN</code></a>, <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/RecommendationTypeEnum.RecommendationType#improve_google_tag_coverage"><code>IMPROVE_GOOGLE_TAG_COVERAGE</code></a>, <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/RecommendationTypeEnum.RecommendationType#performance_max_final_url_opt_in"><code>PERFORMANCE_MAX_FINAL_URL_OPT_IN</code></a>, <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/RecommendationTypeEnum.RecommendationType#refresh_customer_match_list"><code>REFRESH_CUSTOMER_MATCH_LIST</code></a>, <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/RecommendationTypeEnum.RecommendationType#custom_audience_opt_in"><code>CUSTOM_AUDIENCE_OPT_IN</code></a>, <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/RecommendationTypeEnum.RecommendationType#lead_form_asset"><code>LEAD_FORM_ASSET</code></a>, <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/RecommendationTypeEnum.RecommendationType#improve_demand_gen_ad_strength"><code>IMPROVE_DEMAND_GEN_AD_STRENGTH</code></a></li> <li>Added <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/RecommendationService#generaterecommendations"><code>RecommendationService.GenerateRecommendations()</code></a> which returns recommendations based on your specified settings, such as recommendation types or advertising channel types. This could be helpful when creating a campaign.</li> <li>Added support for time-related segments, such as <a href="https://developers.google.com/google-ads/api/fields/latest/segments#segments.year"><code>segments.year</code></a> and <a href="https://developers.google.com/google-ads/api/fields/latest/segments#segments.month)%7B:.external%7D"><code>segments.month</code></a>, to <a href="https://developers.google.com/google-ads/api/fields/latest/asset_group"><code>asset_group</code></a>.</li> <li>Migrated <code>advertising_partner</code> from <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AccountLink"><code>AccountLink</code></a> to <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/ProductLink#advertising_partner"><code>ProductLink</code></a> and <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/ProductLinkInvitation#advertising_partner"><code>ProductLinkInvitation</code></a>, and also removed support for <code>data_partner</code> and <code>google_ads</code> from <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AccountLink"><code>AccountLink</code></a>.</li> <li>Added <code>primary_status</code> and <code>primary_status_reasons</code> to <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AdGroup"><code>AdGroup</code></a> and <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AdGroupAd"><code>AdGroupAd</code></a>, respectively, to provide insight into why an ad group or an ad group ad is serving or not serving.</li> <li>Added support for <a href="https://support.google.com/adspolicy/answer/9870201">advertiser verification</a> by adding <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/IdentityVerificationService"><code>IdentityVerificationService</code></a> to allow for programmatically starting a verification session using the provided <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/StartIdentityVerificationRequest#verification_program"><code>verification_program</code></a> and for retrieving all identity verifications.</li> <li>Added support for setting <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Campaign#shopping_setting"><code>Campaign.shopping_setting</code></a> to an existing Demand Gen campaign. The following new fields are added specifically for Demand Gen campaigns: <ul> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Campaign.ShoppingSetting#disable_product_feed"><code>ShoppingSetting.disable_product_feed</code></a> to disable the optional product feed.</li> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Ad#demand_gen_product_ad"><code>Ad.demand_gen_product_ad</code></a> containing information about the Demand Gen product ad, such as the business name and headline.</li> </ul></li> <li>Added <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Experiment#sync_enabled"><code>Experiment.sync_enabled</code></a> to let you apply changes made to the original campaign to the experiment campaign, while the experiment is running. This saves time from manually applying changes to the experiment campaign.</li> <li>Recommended keywords with unset keyword match type will now have <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Recommendation.KeywordMatchTypeRecommendation#recommended_match_type"><code>recommended_match_type</code></a> set to <code>UNSPECIFIED</code> instead of <code>UNKNOWN</code>.</li> <li>Updated the operation types for customer life cycle goals and campaign life cycle goals to make them consistent with other operation types.</li> <li>Added support for tracking the progress of the business registration verification process of Local Services using <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/LocalServicesVerificationArtifact#business_registration_check_verification_artifact"><code>LocalServicesVerificationArtifact.business_registration_check_verification_artifact</code></a>.</li> <li>Added a new report <a href="https://developers.google.com/google-ads/api/fields/latest/local_services_employee"><code>local_services_employee</code></a> that lets you retrieve the employee information you've added.</li> </ul> <strong>Where can I learn more?</strong><br /> The following resources can help you get started: <ul> <li><a href="https://developers.google.com/google-ads/api/docs/release-notes">Release notes</a></li> <li><a href="https://developers.google.com/google-ads/api/docs">Guides</a></li> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/">Reference</a></li> <li><a href="https://developers.google.com/google-ads/api/docs/diff">Diff between v15 and v16</a></li> </ul> If you have any questions or need additional help, contact us via the <a href="https://groups.google.com/forum/#!forum/adwords-api">forum</a>.<br /> <span class='byline-author'><img height="40" src="https://lh3.googleusercontent.com/-uGJ74K4l6os/AAAAAAAAAAI/AAAAAAAAADY/-NAP6xAT8Fk/s120-c/photo.jpg" style="vertical-align:middle; border:none;" width="40"> - Thanet Knack Praneenararat, on behalf of the Google Ads API Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> Today, we’re announcing the v16 release of the <a href="https://developers.google.com/google-ads/api">Google Ads API</a>. To use some of the v16 features, you will need to upgrade your <a href="https://developers.google.com/google-ads/api/docs/client-libs">client libraries</a> and client code. The updated client libraries and code examples will be published next week.<br /> <iframe width="560" height="315" src="https://www.youtube.com/embed/Vn5_DBvpABA" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> Here are the highlights: <ul> <li>Added the following recommendation types: <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/RecommendationTypeEnum.RecommendationType#maximize_conversion_value_opt_in"><code>MAXIMIZE_CONVERSION_VALUE_OPT_IN</code></a>, <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/RecommendationTypeEnum.RecommendationType#improve_google_tag_coverage"><code>IMPROVE_GOOGLE_TAG_COVERAGE</code></a>, <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/RecommendationTypeEnum.RecommendationType#performance_max_final_url_opt_in"><code>PERFORMANCE_MAX_FINAL_URL_OPT_IN</code></a>, <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/RecommendationTypeEnum.RecommendationType#refresh_customer_match_list"><code>REFRESH_CUSTOMER_MATCH_LIST</code></a>, <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/RecommendationTypeEnum.RecommendationType#custom_audience_opt_in"><code>CUSTOM_AUDIENCE_OPT_IN</code></a>, <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/RecommendationTypeEnum.RecommendationType#lead_form_asset"><code>LEAD_FORM_ASSET</code></a>, <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/RecommendationTypeEnum.RecommendationType#improve_demand_gen_ad_strength"><code>IMPROVE_DEMAND_GEN_AD_STRENGTH</code></a></li> <li>Added <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/RecommendationService#generaterecommendations"><code>RecommendationService.GenerateRecommendations()</code></a> which returns recommendations based on your specified settings, such as recommendation types or advertising channel types. This could be helpful when creating a campaign.</li> <li>Added support for time-related segments, such as <a href="https://developers.google.com/google-ads/api/fields/latest/segments#segments.year"><code>segments.year</code></a> and <a href="https://developers.google.com/google-ads/api/fields/latest/segments#segments.month)%7B:.external%7D"><code>segments.month</code></a>, to <a href="https://developers.google.com/google-ads/api/fields/latest/asset_group"><code>asset_group</code></a>.</li> <li>Migrated <code>advertising_partner</code> from <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AccountLink"><code>AccountLink</code></a> to <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/ProductLink#advertising_partner"><code>ProductLink</code></a> and <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/ProductLinkInvitation#advertising_partner"><code>ProductLinkInvitation</code></a>, and also removed support for <code>data_partner</code> and <code>google_ads</code> from <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AccountLink"><code>AccountLink</code></a>.</li> <li>Added <code>primary_status</code> and <code>primary_status_reasons</code> to <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AdGroup"><code>AdGroup</code></a> and <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AdGroupAd"><code>AdGroupAd</code></a>, respectively, to provide insight into why an ad group or an ad group ad is serving or not serving.</li> <li>Added support for <a href="https://support.google.com/adspolicy/answer/9870201">advertiser verification</a> by adding <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/IdentityVerificationService"><code>IdentityVerificationService</code></a> to allow for programmatically starting a verification session using the provided <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/StartIdentityVerificationRequest#verification_program"><code>verification_program</code></a> and for retrieving all identity verifications.</li> <li>Added support for setting <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Campaign#shopping_setting"><code>Campaign.shopping_setting</code></a> to an existing Demand Gen campaign. The following new fields are added specifically for Demand Gen campaigns: <ul> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Campaign.ShoppingSetting#disable_product_feed"><code>ShoppingSetting.disable_product_feed</code></a> to disable the optional product feed.</li> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Ad#demand_gen_product_ad"><code>Ad.demand_gen_product_ad</code></a> containing information about the Demand Gen product ad, such as the business name and headline.</li> </ul></li> <li>Added <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Experiment#sync_enabled"><code>Experiment.sync_enabled</code></a> to let you apply changes made to the original campaign to the experiment campaign, while the experiment is running. This saves time from manually applying changes to the experiment campaign.</li> <li>Recommended keywords with unset keyword match type will now have <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Recommendation.KeywordMatchTypeRecommendation#recommended_match_type"><code>recommended_match_type</code></a> set to <code>UNSPECIFIED</code> instead of <code>UNKNOWN</code>.</li> <li>Updated the operation types for customer life cycle goals and campaign life cycle goals to make them consistent with other operation types.</li> <li>Added support for tracking the progress of the business registration verification process of Local Services using <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/LocalServicesVerificationArtifact#business_registration_check_verification_artifact"><code>LocalServicesVerificationArtifact.business_registration_check_verification_artifact</code></a>.</li> <li>Added a new report <a href="https://developers.google.com/google-ads/api/fields/latest/local_services_employee"><code>local_services_employee</code></a> that lets you retrieve the employee information you've added.</li> </ul> <strong>Where can I learn more?</strong><br /> The following resources can help you get started: <ul> <li><a href="https://developers.google.com/google-ads/api/docs/release-notes">Release notes</a></li> <li><a href="https://developers.google.com/google-ads/api/docs">Guides</a></li> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/">Reference</a></li> <li><a href="https://developers.google.com/google-ads/api/docs/diff">Diff between v15 and v16</a></li> </ul> If you have any questions or need additional help, contact us via the <a href="https://groups.google.com/forum/#!forum/adwords-api">forum</a>.<br /> <span class='byline-author'><img height="40" src="https://lh3.googleusercontent.com/-uGJ74K4l6os/AAAAAAAAAAI/AAAAAAAAADY/-NAP6xAT8Fk/s120-c/photo.jpg" style="vertical-align:middle; border:none;" width="40"> - Thanet Knack Praneenararat, on behalf of the Google Ads API Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Google Ads Developer Blog:Announcing v16 of the Google Ads API&url=http://ads-developers.googleblog.com/2024/02/announcing-v16-of-google-ads-api.html&via=google'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=http://ads-developers.googleblog.com/2024/02/announcing-v16-of-google-ads-api.html'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='http://ads-developers.googleblog.com/2024/02/announcing-v16-of-google-ads-api.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='http://ads-developers.googleblog.com/search/label/google_ads_api' rel='tag'> google_ads_api </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/release' rel='tag'> release </a> </span> </div> </div> </div> <div class='post' data-id='3852925524946790568' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2024/02/announcing-v202402-of-google-ad-manager.html' itemprop='url' title='Announcing v202402 of the Google Ad Manager API'> Announcing v202402 of the Google Ad Manager API </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Wednesday, February 14, 2024 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <p> We're pleased to announce that <a href="https://developers.google.com/ad-manager/api/rel_notes#v202402">v202402</a> of the Google Ad Manager API is available starting today, February 13, 2024. This release brings support for <a href="https://developers.google.com//ad-manager/api/reference/v202402/ReportService.Column#AD_SERVER_CPM_AND_CPC_REVENUE_GROSS">gross revenue metrics</a> in reporting as well as new <a href="https://developers.google.com/ad-manager/api/reference/v202402/LineItemService.ReservationDetailsError.Reason#CPA_DEPRECATED">error messages</a> to support the <a href="https://support.google.com/admanager/answer/2476900">Spotlight deprecation</a>. </p> <p> For the full list of changes, check the <a href="https://developers.google.com/ad-manager/api/rel_notes">release notes</a>. Feel free to contact us on the <a href="https://groups.google.com/forum/#!forum/google-doubleclick-for-publishers-api">Ad Manager API forum</a> with any API-related questions. </p> <span class="byline-author"><img height="40" src="https://lh7-us.googleusercontent.com/RlR0Enq4JZNBVo9-d4DTpAhCFysGNmVLQYpOfYTX0okgPglHXHnJQXpMnnPOpN8UhsGy3clH20w6iJcMat7syGegusZ2fraTdlgzO5EFlIZmqmqWVM9Dn5pw_OjaOQtzaQeztacac63_9eAzFLxHxsJfyPmT3-TkS3rhEOz5akMg08W5BJn3Lm0PJ84s1nI" style="border: none; vertical-align: middle;" width="40" /> - Chris Seeley, Ad Manager API Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> <p> We're pleased to announce that <a href="https://developers.google.com/ad-manager/api/rel_notes#v202402">v202402</a> of the Google Ad Manager API is available starting today, February 13, 2024. This release brings support for <a href="https://developers.google.com//ad-manager/api/reference/v202402/ReportService.Column#AD_SERVER_CPM_AND_CPC_REVENUE_GROSS">gross revenue metrics</a> in reporting as well as new <a href="https://developers.google.com/ad-manager/api/reference/v202402/LineItemService.ReservationDetailsError.Reason#CPA_DEPRECATED">error messages</a> to support the <a href="https://support.google.com/admanager/answer/2476900">Spotlight deprecation</a>. </p> <p> For the full list of changes, check the <a href="https://developers.google.com/ad-manager/api/rel_notes">release notes</a>. Feel free to contact us on the <a href="https://groups.google.com/forum/#!forum/google-doubleclick-for-publishers-api">Ad Manager API forum</a> with any API-related questions. </p> <span class="byline-author"><img height="40" src="https://lh7-us.googleusercontent.com/RlR0Enq4JZNBVo9-d4DTpAhCFysGNmVLQYpOfYTX0okgPglHXHnJQXpMnnPOpN8UhsGy3clH20w6iJcMat7syGegusZ2fraTdlgzO5EFlIZmqmqWVM9Dn5pw_OjaOQtzaQeztacac63_9eAzFLxHxsJfyPmT3-TkS3rhEOz5akMg08W5BJn3Lm0PJ84s1nI" style="border: none; vertical-align: middle;" width="40" /> - Chris Seeley, Ad Manager API Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Google Ads Developer Blog:Announcing v202402 of the Google Ad Manager API&url=http://ads-developers.googleblog.com/2024/02/announcing-v202402-of-google-ad-manager.html&via=google'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=http://ads-developers.googleblog.com/2024/02/announcing-v202402-of-google-ad-manager.html'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='http://ads-developers.googleblog.com/2024/02/announcing-v202402-of-google-ad-manager.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='http://ads-developers.googleblog.com/search/label/ad_manager_api' rel='tag'> ad_manager_api </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/ad_manager_api_v202402' rel='tag'> ad_manager_api_v202402 </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/release' rel='tag'> release </a> </span> </div> </div> </div> <div class='post' data-id='4355002074247154102' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2024/02/announcing-ios-google-mobile-ads-sdk.html' itemprop='url' title='Announcing iOS Google Mobile Ads SDK Version 11.0.0'> Announcing iOS Google Mobile Ads SDK Version 11.0.0 </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Tuesday, February 6, 2024 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <p> Today, we are announcing that version 11.0.0 of the Google Mobile Ads SDK is now available. We recommend upgrading as soon as possible to get our latest features and performance improvements. </p> <h3>Simplified SwiftUI development</h3> <p> Version 11.0.0 no longer requires publishers to declare a view controller to present full-screen ads. As a result, SwiftUI Publishers can now present full-screen ads without the need for UIKit or <code>UIViewControllerRepresentable</code> workarounds. See our <a href="https://developers.google.com/admob/ios/swiftui">SwiftUI guide</a> for more information. </p> <pre class="prettyprint">struct ContentView: View { private let adCoordinator = AdCoordinator() var body: some View { ... Button("Watch an ad") { adCoordinator.showAd() } } } private class InterstitialAdCoordinator: NSObject, GADFullScreenContentDelegate { private var interstitial: GADInterstitialAd? ... func showAd() { guard let interstitial = interstitial else { return print("Ad wasn't ready") } // The SDK uses the app's main window to look up view controllers // automatically when one is not provided. interstitial.present(fromRootViewController: nil) } }</pre> <h3>Continue collecting user metrics in AdMob</h3> <p> The Google Mobile Ads SDK dependency on <a href="https://github.com/google/GoogleAppMeasurement">GoogleAppMeasurement</a> has been removed. This dependency that powered the user metrics toggle in AdMob will be <a href="https://support.google.com/admob/answer/13973847">discontinued</a> in early 2024. To continue collecting user metrics in AdMob, <a href="https://support.google.com/admob/answer/6383165">link your AdMob app to Firebase</a> and integrate the <a href="https://firebase.google.com/docs/analytics">Google Analytics for Firebase</a> SDK into your app. </p> <h3>Changes to minimum OS and Xcode requirements</h3> <ul> <li>The minimum OS version to load ads has been bumped from 12 to 13. Applications can still be built for iOS 12, but the SDK will only load ads on iOS 13 and higher. <li>The minimum supported Xcode version has been bumped to 15.1.</li></ul> <p> For the full list of changes, check the <a href="https://developers.google.com/admob/ios/rel-notes">release notes</a>. Check our <a href="https://developers.google.com/admob/ios/migration">migration guide</a> to ensure your mobile apps are ready to upgrade. </p> <h3>SDK Deprecation Reminder</h3> <p> Per the <a href="https://developers.google.com/admob/ios/deprecation">deprecation schedule</a>, the release of version 11.0.0 means that: </p><ul> <li>iOS Google Mobile Ads SDK versions 9.x.x are officially deprecated, and will sunset in Q2 2025. <li><strong>Versions 8.x.x and below will <a href="https://developers.google.com/admob/ios/deprecation#differences">sunset</a> in Q2 2024</strong>, approximately 60 days following the release of Android Google Mobile Ads SDK major version 23.0.0. <ul> <li>While there are currently no plans to disable ad serving on version 8.x.x, we strongly recommend updating to a supported SDK version to avoid being impacted in the future.</li> </ul> </li> </ul> <p> As always, if you have any questions or need additional help, contact us via the <a href="https://groups.google.com/group/google-admob-ads-sdk">developer forum</a>. </p> <p><span class="byline-author"><img height="40" src="https://lh3.googleusercontent.com/a-/AOh14GjtsQZdIExmcjrR581d0QKQR_WB3m0ETlK1hUK5=s88-w88-h88-c-k?sz=40" style="vertical-align:middle; border:none;" width="40"> - Justin Malandruccolo, Mobile Ads Developer Relations</span></p> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> <p> Today, we are announcing that version 11.0.0 of the Google Mobile Ads SDK is now available. We recommend upgrading as soon as possible to get our latest features and performance improvements. </p> <h3>Simplified SwiftUI development</h3> <p> Version 11.0.0 no longer requires publishers to declare a view controller to present full-screen ads. As a result, SwiftUI Publishers can now present full-screen ads without the need for UIKit or <code>UIViewControllerRepresentable</code> workarounds. See our <a href="https://developers.google.com/admob/ios/swiftui">SwiftUI guide</a> for more information. </p> <pre class="prettyprint">struct ContentView: View { private let adCoordinator = AdCoordinator() var body: some View { ... Button("Watch an ad") { adCoordinator.showAd() } } } private class InterstitialAdCoordinator: NSObject, GADFullScreenContentDelegate { private var interstitial: GADInterstitialAd? ... func showAd() { guard let interstitial = interstitial else { return print("Ad wasn't ready") } // The SDK uses the app's main window to look up view controllers // automatically when one is not provided. interstitial.present(fromRootViewController: nil) } }</pre> <h3>Continue collecting user metrics in AdMob</h3> <p> The Google Mobile Ads SDK dependency on <a href="https://github.com/google/GoogleAppMeasurement">GoogleAppMeasurement</a> has been removed. This dependency that powered the user metrics toggle in AdMob will be <a href="https://support.google.com/admob/answer/13973847">discontinued</a> in early 2024. To continue collecting user metrics in AdMob, <a href="https://support.google.com/admob/answer/6383165">link your AdMob app to Firebase</a> and integrate the <a href="https://firebase.google.com/docs/analytics">Google Analytics for Firebase</a> SDK into your app. </p> <h3>Changes to minimum OS and Xcode requirements</h3> <ul> <li>The minimum OS version to load ads has been bumped from 12 to 13. Applications can still be built for iOS 12, but the SDK will only load ads on iOS 13 and higher. <li>The minimum supported Xcode version has been bumped to 15.1.</li></ul> <p> For the full list of changes, check the <a href="https://developers.google.com/admob/ios/rel-notes">release notes</a>. Check our <a href="https://developers.google.com/admob/ios/migration">migration guide</a> to ensure your mobile apps are ready to upgrade. </p> <h3>SDK Deprecation Reminder</h3> <p> Per the <a href="https://developers.google.com/admob/ios/deprecation">deprecation schedule</a>, the release of version 11.0.0 means that: </p><ul> <li>iOS Google Mobile Ads SDK versions 9.x.x are officially deprecated, and will sunset in Q2 2025. <li><strong>Versions 8.x.x and below will <a href="https://developers.google.com/admob/ios/deprecation#differences">sunset</a> in Q2 2024</strong>, approximately 60 days following the release of Android Google Mobile Ads SDK major version 23.0.0. <ul> <li>While there are currently no plans to disable ad serving on version 8.x.x, we strongly recommend updating to a supported SDK version to avoid being impacted in the future.</li> </ul> </li> </ul> <p> As always, if you have any questions or need additional help, contact us via the <a href="https://groups.google.com/group/google-admob-ads-sdk">developer forum</a>. </p> <p><span class="byline-author"><img height="40" src="https://lh3.googleusercontent.com/a-/AOh14GjtsQZdIExmcjrR581d0QKQR_WB3m0ETlK1hUK5=s88-w88-h88-c-k?sz=40" style="vertical-align:middle; border:none;" width="40"> - Justin Malandruccolo, Mobile Ads Developer Relations</span></p> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Google Ads Developer Blog:Announcing iOS Google Mobile Ads SDK Version 11.0.0&url=http://ads-developers.googleblog.com/2024/02/announcing-ios-google-mobile-ads-sdk.html&via=google'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=http://ads-developers.googleblog.com/2024/02/announcing-ios-google-mobile-ads-sdk.html'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='http://ads-developers.googleblog.com/2024/02/announcing-ios-google-mobile-ads-sdk.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='http://ads-developers.googleblog.com/search/label/ad_manager' rel='tag'> ad_manager </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/admob' rel='tag'> admob </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/iOS' rel='tag'> iOS </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/mobile_ads_sdk' rel='tag'> mobile_ads_sdk </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/release' rel='tag'> release </a> </span> </div> </div> </div> <div class='post' data-id='8172348968039977081' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2023/11/google-ads-api-2024-release-and-sunset.html' itemprop='url' title='Google Ads API 2024 release and sunset schedule'> Google Ads API 2024 release and sunset schedule </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Wednesday, November 29, 2023 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> We’re announcing our tentative 2024 release and sunset schedule for upcoming versions of the <a href="https://developers.google.com/google-ads/api/docs/start">Google Ads API</a> to bring greater clarity to your planning cycle. Please keep in mind that these dates are only estimates and may be adjusted going forward. Additionally, releases may be added, removed, or switched between major and minor versions.<br /> <table style="border-collapse: collapse; border: none; width=100%;"> <tbody> <tr style="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;"> <th style="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;"><span style="color: white;">Version</span> </th> <th style="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;"><span style="color: white;">Planned Release<br />Type*</span> </th> <th style="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;"><span style="color: white;">Projected launch*</span> </th> <th style="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;"><span style="color: white;">Projected sunset*</span> </th> </tr> <tr> <td style="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;">V16</td> <td style="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;">Major</td> <td style="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;">January/February 2024</td> <td style="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;">January 2025</td> </tr> <tr> <td style="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;">V16.1</td> <td style="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;">Minor</td> <td style="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;">April/May 2024</td> <td style="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;">January 2025</td> </tr> <tr> <td style="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;">V17</td> <td style="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;">Major</td> <td style="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;">May/June 2024</td> <td style="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;">May 2025</td> </tr> <tr> <td style="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;">V17.1</td> <td style="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;">Minor</td> <td style="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;">July/August 2024</td> <td style="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;">May 2025</td> </tr> <tr> <td style="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;">V18</td> <td style="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;">Major</td> <td style="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;">September/October 2024</td> <td style="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;">September 2025</td> </tr> </tbody> </table><br /> *Estimated and subject to change<br /><br /> <strong>Where can I learn more?</strong> <ul> <li><a href="https://developers.google.com/google-ads/api/docs/release-notes">Release Notes</a></li> <li><a href="https://developers.google.com/google-ads/api/docs/sunset-dates">Deprecation Schedule</a></li> </ul> Check back for any updates as <a href="http://ads-developers.googleblog.com">the blog</a> is the best place to stay informed about developments in this space.<br /><br /> If you have any questions or need additional help, contact us via the <a href="https://groups.google.com/forum/#!forum/adwords-api">forum</a>.<br /> <span class='byline-author'><img height="40" src="https://lh7-us.googleusercontent.com/lZj4jeZp49SOLQXFgf5HTGHFXLmMVIB4H_mM4gXfiJgv0PCP3ZQBqaHrfax51I__VLZek48-i1wVB7-UlGRa53DFh_wo98AfzalR7liQpOjNFksdt39OGMZ5HYOh1bbKME0JH9ejZk7dPHwpbriPdrsM81zYx-nEAvqWx_XSTywC0ddZubu1RGMT4TOW8Tb9f-_QvA1BPtegfQo9f751OYpSKpHPv-TsIepvuA" style="vertical-align: middle; border:none;" width="40"/> - David Stevens, Google Ads API Product Manager</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> We’re announcing our tentative 2024 release and sunset schedule for upcoming versions of the <a href="https://developers.google.com/google-ads/api/docs/start">Google Ads API</a> to bring greater clarity to your planning cycle. Please keep in mind that these dates are only estimates and may be adjusted going forward. Additionally, releases may be added, removed, or switched between major and minor versions.<br /> <table style="border-collapse: collapse; border: none; width=100%;"> <tbody> <tr style="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;"> <th style="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;"><span style="color: white;">Version</span> </th> <th style="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;"><span style="color: white;">Planned Release<br />Type*</span> </th> <th style="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;"><span style="color: white;">Projected launch*</span> </th> <th style="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;"><span style="color: white;">Projected sunset*</span> </th> </tr> <tr> <td style="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;">V16</td> <td style="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;">Major</td> <td style="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;">January/February 2024</td> <td style="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;">January 2025</td> </tr> <tr> <td style="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;">V16.1</td> <td style="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;">Minor</td> <td style="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;">April/May 2024</td> <td style="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;">January 2025</td> </tr> <tr> <td style="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;">V17</td> <td style="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;">Major</td> <td style="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;">May/June 2024</td> <td style="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;">May 2025</td> </tr> <tr> <td style="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;">V17.1</td> <td style="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;">Minor</td> <td style="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;">July/August 2024</td> <td style="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;">May 2025</td> </tr> <tr> <td style="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;">V18</td> <td style="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;">Major</td> <td style="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;">September/October 2024</td> <td style="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;">September 2025</td> </tr> </tbody> </table><br /> *Estimated and subject to change<br /><br /> <strong>Where can I learn more?</strong> <ul> <li><a href="https://developers.google.com/google-ads/api/docs/release-notes">Release Notes</a></li> <li><a href="https://developers.google.com/google-ads/api/docs/sunset-dates">Deprecation Schedule</a></li> </ul> Check back for any updates as <a href="http://ads-developers.googleblog.com">the blog</a> is the best place to stay informed about developments in this space.<br /><br /> If you have any questions or need additional help, contact us via the <a href="https://groups.google.com/forum/#!forum/adwords-api">forum</a>.<br /> <span class='byline-author'><img height="40" src="https://lh7-us.googleusercontent.com/lZj4jeZp49SOLQXFgf5HTGHFXLmMVIB4H_mM4gXfiJgv0PCP3ZQBqaHrfax51I__VLZek48-i1wVB7-UlGRa53DFh_wo98AfzalR7liQpOjNFksdt39OGMZ5HYOh1bbKME0JH9ejZk7dPHwpbriPdrsM81zYx-nEAvqWx_XSTywC0ddZubu1RGMT4TOW8Tb9f-_QvA1BPtegfQo9f751OYpSKpHPv-TsIepvuA" style="vertical-align: middle; border:none;" width="40"/> - David Stevens, Google Ads API Product Manager</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Google Ads Developer Blog:Google Ads API 2024 release and sunset schedule&url=http://ads-developers.googleblog.com/2023/11/google-ads-api-2024-release-and-sunset.html&via=google'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=http://ads-developers.googleblog.com/2023/11/google-ads-api-2024-release-and-sunset.html'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='http://ads-developers.googleblog.com/2023/11/google-ads-api-2024-release-and-sunset.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='http://ads-developers.googleblog.com/search/label/google_ads_api' rel='tag'> google_ads_api </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/release' rel='tag'> release </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/sunset' rel='tag'> sunset </a> </span> </div> </div> </div> <div class='post' data-id='8199896092113416118' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2023/11/announcing-v202311-of-google-ad-manager.html' itemprop='url' title='Announcing v202311 of the Google Ad Manager API'> Announcing v202311 of the Google Ad Manager API </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Wednesday, November 8, 2023 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <p> We're pleased to announce that <a href="https://developers.google.com/ad-manager/api/rel_notes#v202311">v202311</a> of the Google Ad Manager API is available starting today, November 8, 2023. This release brings support for <a href="https://developers.google.com/ad-manager/api/reference/v202311/ProposalService.ProposalMarketplaceInfo#marketplaceid">marketplace ID</a> on Proposals and consolidates MCM Child Network information in the <a href="https://developers.google.com/ad-manager/api/reference/v202311/CompanyService.Company#childpublisher">Company</a> object, removing the <code><a href="https://developers.google.com/ad-manager/api/reference/v202308/NetworkService.Network#childpublishers">Network.childPublishers</a></code> field. <p> For the full list of changes, check the <a href="https://developers.google.com/ad-manager/api/rel_notes">release notes</a>. Feel free to contact us on the <a href="https://groups.google.com/forum/#!forum/google-doubleclick-for-publishers-api">Ad Manager API forum</a> with any API-related questions. </p> <span class="byline-author"><img height="40" src="https://lh5.googleusercontent.com/TIWw6NG6FYpTgLz7qyCFEm2x04f2J8u64SPf84cldsuj_IOc5v1gWy0Fe0vJYPEcVQ-paramnbvleWzIKC97YgGkYdnDr0JNgFv6_AHRVIcVsvwLncof3YgtjmmsPZqDil0nJSP6gQ" style="border: none; vertical-align: middle;" width="40" /> - Chris Seeley, Ad Manager API Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> <p> We're pleased to announce that <a href="https://developers.google.com/ad-manager/api/rel_notes#v202311">v202311</a> of the Google Ad Manager API is available starting today, November 8, 2023. This release brings support for <a href="https://developers.google.com/ad-manager/api/reference/v202311/ProposalService.ProposalMarketplaceInfo#marketplaceid">marketplace ID</a> on Proposals and consolidates MCM Child Network information in the <a href="https://developers.google.com/ad-manager/api/reference/v202311/CompanyService.Company#childpublisher">Company</a> object, removing the <code><a href="https://developers.google.com/ad-manager/api/reference/v202308/NetworkService.Network#childpublishers">Network.childPublishers</a></code> field. <p> For the full list of changes, check the <a href="https://developers.google.com/ad-manager/api/rel_notes">release notes</a>. Feel free to contact us on the <a href="https://groups.google.com/forum/#!forum/google-doubleclick-for-publishers-api">Ad Manager API forum</a> with any API-related questions. </p> <span class="byline-author"><img height="40" src="https://lh5.googleusercontent.com/TIWw6NG6FYpTgLz7qyCFEm2x04f2J8u64SPf84cldsuj_IOc5v1gWy0Fe0vJYPEcVQ-paramnbvleWzIKC97YgGkYdnDr0JNgFv6_AHRVIcVsvwLncof3YgtjmmsPZqDil0nJSP6gQ" style="border: none; vertical-align: middle;" width="40" /> - Chris Seeley, Ad Manager API Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Google Ads Developer Blog:Announcing v202311 of the Google Ad Manager API&url=http://ads-developers.googleblog.com/2023/11/announcing-v202311-of-google-ad-manager.html&via=google'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=http://ads-developers.googleblog.com/2023/11/announcing-v202311-of-google-ad-manager.html'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='http://ads-developers.googleblog.com/2023/11/announcing-v202311-of-google-ad-manager.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='http://ads-developers.googleblog.com/search/label/ad_manager_api' rel='tag'> ad_manager_api </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/ad_manager_api_v202311' rel='tag'> ad_manager_api_v202311 </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/release' rel='tag'> release </a> </span> </div> </div> </div> <div class='post' data-id='9210977595887962610' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2023/10/announcing-v15-of-google-ads-api.html' itemprop='url' title='Announcing v15 of the Google Ads API'> Announcing v15 of the Google Ads API </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Wednesday, October 18, 2023 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> Today, we’re announcing the v15 release of the <a href="https://developers.google.com/google-ads/api">Google Ads API</a>. To use some of the v15 features, you will need to upgrade your <a href="https://developers.google.com/google-ads/api/docs/client-libs">client libraries</a> and client code. The updated client libraries and code examples will be published next week.<br /> <iframe width="560" height="315" src="https://www.youtube.com/embed/5wqjEc6VLds" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe><br /> Here are the highlights: <ul> <li>Added <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/RecommendationSubscriptionService"><code>RecommendationSubscriptionService</code></a> which manages recommendation subscriptions and lets you automatically apply the recommendations.</li> <li>Added new recommendation types: <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/RecommendationTypeEnum.RecommendationType#forecasting_set_target_cpa"><code>FORECASTING_SET_TARGET_CPA</code></a>, <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/RecommendationTypeEnum.RecommendationType#set_target_cpa"><code>SET_TARGET_CPA</code></a>, <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/RecommendationTypeEnum.RecommendationType#set_target_roas"><code>SET_TARGET_ROAS</code></a>.</li> <li>Updates to Performance Max: <ul> <li>Added <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AssetGroupSignal#search_theme"><code>AssetGroupSignal.search_theme</code></a> which lets you attach a search theme to asset groups for enhanced targeting.</li> <li>Added a new <a href="https://developers.google.com/google-ads/api/fields/latest/asset_group_top_combination_view"><code>asset_group_top_combination_view</code></a> to report the top performing assets at the asset group level.</li> <li><a href="https://developers.google.com/google-ads/api/fields/latest/asset_group"><code>asset_group</code></a> can now be queried with metric fields to support retrieving the performance of an asset group of a Performance Max campaign.</li> </ul></li> <li>Added <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/UserList#lookalike_user_list"><code>UserList.lookalike_user_list</code></a> to support creating a <a href="https://support.google.com/google-ads/answer/13541369">Lookalike segment</a>, an audience created based on the provided existing seed audience. Lookalike segments can be used in a <a href="https://support.google.com/google-ads/answer/13695389">Demand Gen campaign</a> only.</li> <li>Added support of reporting for <a href="https://developer.apple.com/documentation/storekit/skadnetwork/skadnetwork_release_notes/skadnetwork_4_release_notes">Apple's SkAdNetwork 4</a> conversions, including web to app conversions on Google search. You can now segment by coarse conversion value, source domain, and postback sequence index.</li> <li>Improved offline conversion upload diagnostics in the <a href="https://developers.google.com/google-ads/api/fields/latest/offline_conversion_upload_client_summary"><code>offline_conversion_upload_client_summary</code></a> report, with more useful details of the conversion upload status such as successful events, success rate, error percentage.</li> <li>Added support of sales and profit metrics such as revenue, gross profit, gross profit margin, and units sold. These metrics are available to all advertisers who implement <a href="https://support.google.com/google-ads/answer/9028254">conversions with cart data</a> across Search, Shopping, and Performance Max campaigns.</li> <li>Added <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/LocalServicesSettings"><code>LocalServicesSettings</code></a> and its fields to the <a href="https://developers.google.com/google-ads/api/fields/latest/customer"><code>customer</code></a> report for returning a Local Services advertiser’s granular license and insurance statuses. We also added new reports for Local Services ads including <a href="https://developers.google.com/google-ads/api/fields/latest/local_services_lead"><code>local_services_lead</code></a>, <a href="https://developers.google.com/google-ads/api/fields/latest/local_services_lead_conversation"><code>local_services_lead_conversation</code></a>, and <a href="https://developers.google.com/google-ads/api/fields/latest/local_services_verification_artifact"><code>local_services_verification_artifact</code></a>.</li> <li>Changes to linking accounts: <ul> <li>Added support for adding and removing a link between a Google Ads account and a Merchant Center account using <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/ProductLink#merchant_center"><code>ProductLink.merchant_center</code></a> and removed <code>MerchantCenterLinkService</code>.</li> <li>Added <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/ProductLinkInvitationService"><code>ProductLinkInvitationService</code></a> to support updating a link invitation sent from other products, available for <a href="https://hotelcenter.google.com/">Hotel Center</a> and <a href="https://merchants.google.com/">Merchant Center</a> accounts. <ul><li>Removed <code>AccountLink.hotel_center</code> and support for updating link invitations from Hotel Center accounts via <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AccountLinkService"><code>AccountLinkService</code></a>.</li></ul></li> </ul></li> <li>Changes to Shopping campaigns: <ul> <li>Removed <code>ShoppingSetting.sales_country</code>, whose values are now returned as <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Campaign.ShoppingSetting#feed_label"><code>ShoppingSetting.feed_label</code></a>.</li> <li>Removed support for adding <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Campaign#shopping_setting"><code>Campaign.shopping_setting</code></a> to Search campaigns.</li> <li>Removed support for adding <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/CampaignCriterion#listing_scope"><code>CampaignCriterion.listing_scope</code></a> to Search campaigns.</li> </ul></li> <li>Added support for targeting Google TV and YouTube at the campaign level using <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Campaign.NetworkSettings"><code>NetworkSettings</code></a>.</li> <li>Added <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/CustomerLifecycleGoalService#configurecustomerlifecyclegoals"><code>CustomerLifecycleService.ConfigureCustomerLifecycleGoals</code></a> and <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/CampaignLifecycleGoalService#configurecampaignlifecyclegoals"><code>CampaignLifecycleService.ConfigureCampaignLifecycleGoals</code></a> for configuring <a href="https://support.google.com/google-ads/answer/12080169">customer acquisition goals</a> at the customer and campaign levels, respectively.</li> <li>Added <code>consent</code> to the below classes. No action is required at this time, but please follow <a href="https://ads-developers.googleblog.com/search/label/google_ads_api">our blog</a> for updates in the coming months. <ul> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/UserData#consent"><code>UserData</code></a></li> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/CustomerMatchUserListMetadata#consent"><code>CustomerMatchUserListMetadata</code></a></li> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/CallConversion#consent"><code>CallConversion</code></a></li> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/ClickConversion#consent"><code>ClickConversion</code></a></li> </ul></li> <li>Added <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/BrandSuggestionService"><code>BrandSuggestionService</code></a> which can suggest brands based on the provided brand prefix and the excluded list of brands. These brands can be used to create a <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/CriterionTypeEnum.CriterionType#BRAND"><code>BRAND</code></a> criterion, added to a <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/SharedSetTypeEnum.SharedSetType#brands"><code>BRANDS</code></a> shared set, and then attached to a campaign by creating a <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/CampaignCriterion"><code>CampaignCriterion</code></a> with <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/CampaignCriterion#brand_list"><code>brand_list</code></a> set to the shared set. These campaign criteria must have their <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/CampaignCriterion#negative"><code>negative</code></a> field set to <code>false</code> in Search campaigns and <code>true</code> in Performance Max campaigns.</li> </ul> <strong>Where can I learn more?</strong><br /> The following resources can help you get started: <ul> <li><a href="https://developers.google.com/google-ads/api/docs/release-notes">Release Notes</a></li> <li><a href="https://developers.google.com/google-ads/api/docs">Guides</a></li> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/">Reference</a></li> <li><a href="https://developers.google.com/google-ads/api/diff-tool/v15/versus-v14/diff">Diff between v14 and v15</a></li> </ul> If you have any questions or need additional help, contact us through the <a href="https://groups.google.com/forum/#!forum/adwords-api">forum</a>.<br /> <span class='byline-author'><img height="40" src="https://lh3.googleusercontent.com/-uGJ74K4l6os/AAAAAAAAAAI/AAAAAAAAADY/-NAP6xAT8Fk/s120-c/photo.jpg" style="vertical-align:middle; border:none;" width="40"> - Thanet Knack Praneenararat, on behalf of the Google Ads API Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> Today, we’re announcing the v15 release of the <a href="https://developers.google.com/google-ads/api">Google Ads API</a>. To use some of the v15 features, you will need to upgrade your <a href="https://developers.google.com/google-ads/api/docs/client-libs">client libraries</a> and client code. The updated client libraries and code examples will be published next week.<br /> <iframe width="560" height="315" src="https://www.youtube.com/embed/5wqjEc6VLds" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe><br /> Here are the highlights: <ul> <li>Added <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/RecommendationSubscriptionService"><code>RecommendationSubscriptionService</code></a> which manages recommendation subscriptions and lets you automatically apply the recommendations.</li> <li>Added new recommendation types: <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/RecommendationTypeEnum.RecommendationType#forecasting_set_target_cpa"><code>FORECASTING_SET_TARGET_CPA</code></a>, <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/RecommendationTypeEnum.RecommendationType#set_target_cpa"><code>SET_TARGET_CPA</code></a>, <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/RecommendationTypeEnum.RecommendationType#set_target_roas"><code>SET_TARGET_ROAS</code></a>.</li> <li>Updates to Performance Max: <ul> <li>Added <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AssetGroupSignal#search_theme"><code>AssetGroupSignal.search_theme</code></a> which lets you attach a search theme to asset groups for enhanced targeting.</li> <li>Added a new <a href="https://developers.google.com/google-ads/api/fields/latest/asset_group_top_combination_view"><code>asset_group_top_combination_view</code></a> to report the top performing assets at the asset group level.</li> <li><a href="https://developers.google.com/google-ads/api/fields/latest/asset_group"><code>asset_group</code></a> can now be queried with metric fields to support retrieving the performance of an asset group of a Performance Max campaign.</li> </ul></li> <li>Added <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/UserList#lookalike_user_list"><code>UserList.lookalike_user_list</code></a> to support creating a <a href="https://support.google.com/google-ads/answer/13541369">Lookalike segment</a>, an audience created based on the provided existing seed audience. Lookalike segments can be used in a <a href="https://support.google.com/google-ads/answer/13695389">Demand Gen campaign</a> only.</li> <li>Added support of reporting for <a href="https://developer.apple.com/documentation/storekit/skadnetwork/skadnetwork_release_notes/skadnetwork_4_release_notes">Apple's SkAdNetwork 4</a> conversions, including web to app conversions on Google search. You can now segment by coarse conversion value, source domain, and postback sequence index.</li> <li>Improved offline conversion upload diagnostics in the <a href="https://developers.google.com/google-ads/api/fields/latest/offline_conversion_upload_client_summary"><code>offline_conversion_upload_client_summary</code></a> report, with more useful details of the conversion upload status such as successful events, success rate, error percentage.</li> <li>Added support of sales and profit metrics such as revenue, gross profit, gross profit margin, and units sold. These metrics are available to all advertisers who implement <a href="https://support.google.com/google-ads/answer/9028254">conversions with cart data</a> across Search, Shopping, and Performance Max campaigns.</li> <li>Added <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/LocalServicesSettings"><code>LocalServicesSettings</code></a> and its fields to the <a href="https://developers.google.com/google-ads/api/fields/latest/customer"><code>customer</code></a> report for returning a Local Services advertiser’s granular license and insurance statuses. We also added new reports for Local Services ads including <a href="https://developers.google.com/google-ads/api/fields/latest/local_services_lead"><code>local_services_lead</code></a>, <a href="https://developers.google.com/google-ads/api/fields/latest/local_services_lead_conversation"><code>local_services_lead_conversation</code></a>, and <a href="https://developers.google.com/google-ads/api/fields/latest/local_services_verification_artifact"><code>local_services_verification_artifact</code></a>.</li> <li>Changes to linking accounts: <ul> <li>Added support for adding and removing a link between a Google Ads account and a Merchant Center account using <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/ProductLink#merchant_center"><code>ProductLink.merchant_center</code></a> and removed <code>MerchantCenterLinkService</code>.</li> <li>Added <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/ProductLinkInvitationService"><code>ProductLinkInvitationService</code></a> to support updating a link invitation sent from other products, available for <a href="https://hotelcenter.google.com/">Hotel Center</a> and <a href="https://merchants.google.com/">Merchant Center</a> accounts. <ul><li>Removed <code>AccountLink.hotel_center</code> and support for updating link invitations from Hotel Center accounts via <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AccountLinkService"><code>AccountLinkService</code></a>.</li></ul></li> </ul></li> <li>Changes to Shopping campaigns: <ul> <li>Removed <code>ShoppingSetting.sales_country</code>, whose values are now returned as <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Campaign.ShoppingSetting#feed_label"><code>ShoppingSetting.feed_label</code></a>.</li> <li>Removed support for adding <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Campaign#shopping_setting"><code>Campaign.shopping_setting</code></a> to Search campaigns.</li> <li>Removed support for adding <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/CampaignCriterion#listing_scope"><code>CampaignCriterion.listing_scope</code></a> to Search campaigns.</li> </ul></li> <li>Added support for targeting Google TV and YouTube at the campaign level using <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Campaign.NetworkSettings"><code>NetworkSettings</code></a>.</li> <li>Added <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/CustomerLifecycleGoalService#configurecustomerlifecyclegoals"><code>CustomerLifecycleService.ConfigureCustomerLifecycleGoals</code></a> and <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/CampaignLifecycleGoalService#configurecampaignlifecyclegoals"><code>CampaignLifecycleService.ConfigureCampaignLifecycleGoals</code></a> for configuring <a href="https://support.google.com/google-ads/answer/12080169">customer acquisition goals</a> at the customer and campaign levels, respectively.</li> <li>Added <code>consent</code> to the below classes. No action is required at this time, but please follow <a href="https://ads-developers.googleblog.com/search/label/google_ads_api">our blog</a> for updates in the coming months. <ul> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/UserData#consent"><code>UserData</code></a></li> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/CustomerMatchUserListMetadata#consent"><code>CustomerMatchUserListMetadata</code></a></li> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/CallConversion#consent"><code>CallConversion</code></a></li> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/ClickConversion#consent"><code>ClickConversion</code></a></li> </ul></li> <li>Added <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/BrandSuggestionService"><code>BrandSuggestionService</code></a> which can suggest brands based on the provided brand prefix and the excluded list of brands. These brands can be used to create a <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/CriterionTypeEnum.CriterionType#BRAND"><code>BRAND</code></a> criterion, added to a <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/SharedSetTypeEnum.SharedSetType#brands"><code>BRANDS</code></a> shared set, and then attached to a campaign by creating a <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/CampaignCriterion"><code>CampaignCriterion</code></a> with <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/CampaignCriterion#brand_list"><code>brand_list</code></a> set to the shared set. These campaign criteria must have their <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/CampaignCriterion#negative"><code>negative</code></a> field set to <code>false</code> in Search campaigns and <code>true</code> in Performance Max campaigns.</li> </ul> <strong>Where can I learn more?</strong><br /> The following resources can help you get started: <ul> <li><a href="https://developers.google.com/google-ads/api/docs/release-notes">Release Notes</a></li> <li><a href="https://developers.google.com/google-ads/api/docs">Guides</a></li> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/">Reference</a></li> <li><a href="https://developers.google.com/google-ads/api/diff-tool/v15/versus-v14/diff">Diff between v14 and v15</a></li> </ul> If you have any questions or need additional help, contact us through the <a href="https://groups.google.com/forum/#!forum/adwords-api">forum</a>.<br /> <span class='byline-author'><img height="40" src="https://lh3.googleusercontent.com/-uGJ74K4l6os/AAAAAAAAAAI/AAAAAAAAADY/-NAP6xAT8Fk/s120-c/photo.jpg" style="vertical-align:middle; border:none;" width="40"> - Thanet Knack Praneenararat, on behalf of the Google Ads API Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Google Ads Developer Blog:Announcing v15 of the Google Ads API&url=http://ads-developers.googleblog.com/2023/10/announcing-v15-of-google-ads-api.html&via=google'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=http://ads-developers.googleblog.com/2023/10/announcing-v15-of-google-ads-api.html'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='http://ads-developers.googleblog.com/2023/10/announcing-v15-of-google-ads-api.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='http://ads-developers.googleblog.com/search/label/google_ads_api' rel='tag'> google_ads_api </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/release' rel='tag'> release </a> </span> </div> </div> </div> <div class='post' data-id='6980860956315384917' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2023/10/announcing-beta-launch-of-display-video.html' itemprop='url' title='Announcing beta launch of Display & Video 360 API v3'> Announcing beta launch of Display & Video 360 API v3 </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Monday, October 2, 2023 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> We’re pleased to announce that <a href="https://developers.google.com/display-video/api/reference/rest/v3">Display & Video 360 API v3</a> is available in public beta starting today.<br /><br /> v3 includes a number of new features and breaking changes. Here are some of the changes introduced in v3: <ul> <li>You can now fully manage <a href="https://support.google.com/displayvideo/answer/2705812#lists">proximity location lists</a>, enabling you to use the <a href="https://developers.google.com/display-video/api/reference/rest/v3/advertisers.locationLists.assignedLocations#methods"><code>advertisers.locationLists.assignedLocations</code></a> service to create and delete locations assigned to <code>TARGETING_LOCATION_TYPE_PROXIMITY</code> <a href="https://developers.google.com/display-video/api/reference/rest/v3/advertisers.locationLists#LocationList"><code>LocationList</code></a> resources.</li> <li>You can now more easily enable optimized targeting for your line items using the new boolean <a href="https://developers.google.com/display-video/api/reference/rest/v3/TargetingExpansionConfig#FIELDS.enable_optimized_targeting"><code>enableOptimizedTargeting</code></a> field, which replaces the <code>targetingExpansionLevel</code> field in the <a href="https://developers.google.com/display-video/api/reference/rest/v3/TargetingExpansionConfig"><code>TargetingExpansionConfig</code></a> object.</li> <li>The <a href="https://developers.google.com/display-video/api/reference/rest/v3/advertisers#Advertiser.FIELDS.billing_config"><code>billingConfig</code></a> field is now required in the <a href="https://developers.google.com/display-video/api/reference/rest/v3/advertisers#Advertiser"><code>Advertiser</code></a> resource and must be included when making <a href="https://developers.google.com/display-video/api/reference/rest/v3/advertisers/create"><code>advertisers.create</code></a> requests. To help with this, a new <a href="https://developers.google.com/display-video/api/reference/rest/v3/partners#Partner.FIELDS.billing_config"><code>billingConfig</code></a> field has been added to the <a href="https://developers.google.com/display-video/api/reference/rest/v3/partners#Partner"><code>Partner</code></a> resource to surface the billing information for the parent partner.</li> <li><code>YoutubeAdGroup</code> and <code>YoutubeAdGroupAd</code> resources have been renamed to <a href="https://developers.google.com/display-video/api/reference/rest/v3/advertisers.adGroups#AdGroup"><code>AdGroup</code></a> and <a href="https://developers.google.com/display-video/api/reference/rest/v3/advertisers.adGroupAds#AdGroupAd"><code>AdGroupAd</code></a>.</li> </ul> More detailed information about this release can be found in our <a href="https://developers.google.com/display-video/api/release-notes#october_2_2023">release notes</a>. Follow the steps in our <a href="https://developers.google.com/display-video/api/v3-migration-guide">migration guide</a> to migrate from v2 to v3. Be aware that breaking changes may be made to v3 while in beta and will be listed in the <a href="https://developers.google.com/display-video/api/release-notes">Display & Video 360 API release notes</a>.<br /><br /> If you run into issues or need help with these new features or samples, please contact us using our <a href="https://support.google.com/displayvideo/contact/nghelp_contact_form">support contact form</a>.<br /> <span class="byline-author"><img height="40" src="https://lh5.googleusercontent.com/ul6Bu6os82XfScd3uPkxcr4wuYHeOjBXB0TsB7mFIO-63RW7I-ciH9SZVTiRUk0NOGUg_8oit2oD7cr9HTrH8gol_Y6p8mqEeEWTQB24GyiZTGwpB-BFvji9n9goOPHz19mSYqtr" style="border: none; vertical-align: middle;" width="40" /> - Trevor Mulchay, Display & Video 360 API Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> We’re pleased to announce that <a href="https://developers.google.com/display-video/api/reference/rest/v3">Display & Video 360 API v3</a> is available in public beta starting today.<br /><br /> v3 includes a number of new features and breaking changes. Here are some of the changes introduced in v3: <ul> <li>You can now fully manage <a href="https://support.google.com/displayvideo/answer/2705812#lists">proximity location lists</a>, enabling you to use the <a href="https://developers.google.com/display-video/api/reference/rest/v3/advertisers.locationLists.assignedLocations#methods"><code>advertisers.locationLists.assignedLocations</code></a> service to create and delete locations assigned to <code>TARGETING_LOCATION_TYPE_PROXIMITY</code> <a href="https://developers.google.com/display-video/api/reference/rest/v3/advertisers.locationLists#LocationList"><code>LocationList</code></a> resources.</li> <li>You can now more easily enable optimized targeting for your line items using the new boolean <a href="https://developers.google.com/display-video/api/reference/rest/v3/TargetingExpansionConfig#FIELDS.enable_optimized_targeting"><code>enableOptimizedTargeting</code></a> field, which replaces the <code>targetingExpansionLevel</code> field in the <a href="https://developers.google.com/display-video/api/reference/rest/v3/TargetingExpansionConfig"><code>TargetingExpansionConfig</code></a> object.</li> <li>The <a href="https://developers.google.com/display-video/api/reference/rest/v3/advertisers#Advertiser.FIELDS.billing_config"><code>billingConfig</code></a> field is now required in the <a href="https://developers.google.com/display-video/api/reference/rest/v3/advertisers#Advertiser"><code>Advertiser</code></a> resource and must be included when making <a href="https://developers.google.com/display-video/api/reference/rest/v3/advertisers/create"><code>advertisers.create</code></a> requests. To help with this, a new <a href="https://developers.google.com/display-video/api/reference/rest/v3/partners#Partner.FIELDS.billing_config"><code>billingConfig</code></a> field has been added to the <a href="https://developers.google.com/display-video/api/reference/rest/v3/partners#Partner"><code>Partner</code></a> resource to surface the billing information for the parent partner.</li> <li><code>YoutubeAdGroup</code> and <code>YoutubeAdGroupAd</code> resources have been renamed to <a href="https://developers.google.com/display-video/api/reference/rest/v3/advertisers.adGroups#AdGroup"><code>AdGroup</code></a> and <a href="https://developers.google.com/display-video/api/reference/rest/v3/advertisers.adGroupAds#AdGroupAd"><code>AdGroupAd</code></a>.</li> </ul> More detailed information about this release can be found in our <a href="https://developers.google.com/display-video/api/release-notes#october_2_2023">release notes</a>. Follow the steps in our <a href="https://developers.google.com/display-video/api/v3-migration-guide">migration guide</a> to migrate from v2 to v3. Be aware that breaking changes may be made to v3 while in beta and will be listed in the <a href="https://developers.google.com/display-video/api/release-notes">Display & Video 360 API release notes</a>.<br /><br /> If you run into issues or need help with these new features or samples, please contact us using our <a href="https://support.google.com/displayvideo/contact/nghelp_contact_form">support contact form</a>.<br /> <span class="byline-author"><img height="40" src="https://lh5.googleusercontent.com/ul6Bu6os82XfScd3uPkxcr4wuYHeOjBXB0TsB7mFIO-63RW7I-ciH9SZVTiRUk0NOGUg_8oit2oD7cr9HTrH8gol_Y6p8mqEeEWTQB24GyiZTGwpB-BFvji9n9goOPHz19mSYqtr" style="border: none; vertical-align: middle;" width="40" /> - Trevor Mulchay, Display & Video 360 API Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Google Ads Developer Blog:Announcing beta launch of Display & Video 360 API v3&url=http://ads-developers.googleblog.com/2023/10/announcing-beta-launch-of-display-video.html&via=google'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=http://ads-developers.googleblog.com/2023/10/announcing-beta-launch-of-display-video.html'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='http://ads-developers.googleblog.com/2023/10/announcing-beta-launch-of-display-video.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='http://ads-developers.googleblog.com/search/label/beta' rel='tag'> beta </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/dv360_api' rel='tag'> dv360_api </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/release' rel='tag'> release </a> </span> </div> </div> </div> <div class='post' data-id='8033917342222454575' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2023/08/announcing-v202308-of-google-ad-manager.html' itemprop='url' title='Announcing v202308 of the Google Ad Manager API'> Announcing v202308 of the Google Ad Manager API </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Tuesday, August 22, 2023 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <p> We're pleased to announce that <a href="https://developers.google.com/ad-manager/api/rel_notes#v202308">v202308</a> of the Google Ad Manager API is available starting today, August 23, 2023. This release brings support for new <code><a href="https://developers.google.com/ad-manager/api/reference/v202308/LineItemService.ThirdPartyMeasurementSettings">ThirdPartyMeasurementSettings</a></code> providers. <p> For the full list of changes, check the <a href="https://developers.google.com/ad-manager/api/rel_notes">release notes</a>. Feel free to contact us on the <a href="https://groups.google.com/forum/#!forum/google-doubleclick-for-publishers-api">Ad Manager API forum</a> with any API-related questions. </p> <span class="byline-author"><img height="40" src="https://lh5.googleusercontent.com/TIWw6NG6FYpTgLz7qyCFEm2x04f2J8u64SPf84cldsuj_IOc5v1gWy0Fe0vJYPEcVQ-paramnbvleWzIKC97YgGkYdnDr0JNgFv6_AHRVIcVsvwLncof3YgtjmmsPZqDil0nJSP6gQ" style="border: none; vertical-align: middle;" width="40" /> - Chris Seeley, Ad Manager API Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> <p> We're pleased to announce that <a href="https://developers.google.com/ad-manager/api/rel_notes#v202308">v202308</a> of the Google Ad Manager API is available starting today, August 23, 2023. This release brings support for new <code><a href="https://developers.google.com/ad-manager/api/reference/v202308/LineItemService.ThirdPartyMeasurementSettings">ThirdPartyMeasurementSettings</a></code> providers. <p> For the full list of changes, check the <a href="https://developers.google.com/ad-manager/api/rel_notes">release notes</a>. Feel free to contact us on the <a href="https://groups.google.com/forum/#!forum/google-doubleclick-for-publishers-api">Ad Manager API forum</a> with any API-related questions. </p> <span class="byline-author"><img height="40" src="https://lh5.googleusercontent.com/TIWw6NG6FYpTgLz7qyCFEm2x04f2J8u64SPf84cldsuj_IOc5v1gWy0Fe0vJYPEcVQ-paramnbvleWzIKC97YgGkYdnDr0JNgFv6_AHRVIcVsvwLncof3YgtjmmsPZqDil0nJSP6gQ" style="border: none; vertical-align: middle;" width="40" /> - Chris Seeley, Ad Manager API Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Google Ads Developer Blog:Announcing v202308 of the Google Ad Manager API&url=http://ads-developers.googleblog.com/2023/08/announcing-v202308-of-google-ad-manager.html&via=google'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=http://ads-developers.googleblog.com/2023/08/announcing-v202308-of-google-ad-manager.html'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='http://ads-developers.googleblog.com/2023/08/announcing-v202308-of-google-ad-manager.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='http://ads-developers.googleblog.com/search/label/ad_manager_api' rel='tag'> ad_manager_api </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/ad_manager_api_v202308' rel='tag'> ad_manager_api_v202308 </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/release' rel='tag'> release </a> </span> </div> </div> </div> <div class='post' data-id='5031338645345356880' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2023/08/announcing-v141-of-google-ads-api.html' itemprop='url' title='Announcing v14_1 of the Google Ads API'> Announcing v14_1 of the Google Ads API </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Wednesday, August 9, 2023 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> Today, we’re announcing the v14_1 release of the <a href="https://developers.google.com/google-ads/api">Google Ads API</a>. To use some of the v14_1 features, you will need to upgrade your <a href="https://developers.google.com/google-ads/api/docs/client-libs">client libraries</a> and client code. The updated client libraries and code examples will be published next week. This version has no breaking changes.<br /><br /> Here are the highlights: <ul> <li>Added new recommendation types: <ul> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Recommendation.PerformanceMaxOptInRecommendation"><code>PerformanceMaxOptInRecommendation</code></a></li> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Recommendation.ImprovePerformanceMaxAdStrengthRecommendation"><code>ImprovePerformanceMaxAdStrengthRecommendation</code></a></li> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Recommendation.MigrateDynamicSearchAdsCampaignToPerformanceMaxRecommendation"><code>MigrateDynamicSearchAdsCampaignToPerformanceMaxRecommendation</code></a></li> </ul></li> <li>Added support for <a href="https://support.google.com/google-ads/answer/11386930">search terms insights</a> to show information on how customers are searching and engaging with your business on Google. Insights are available as two new views: <a href="https://developers.google.com/google-ads/api/fields/latest/customer_search_term_insight"><code>customer_search_term_insight</code></a> and <a href="https://developers.google.com/google-ads/api/fields/latest/campaign_search_term_insight"><code>campaign_search_term_insight</code></a>. We also released new segments and metrics that support grouping the data into search categories and subcategories.</li> <li>You can now use <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Customer#customer_agreement_setting"><code>Customer.customer_agreement_setting</code></a> to check if the customer has accepted the lead form term of service.</li> <li>Added <code>primary_status</code> and <code>primary_status_reasons</code> to <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AssetGroup"><code>AssetGroup</code></a> and <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AssetGroupAsset"><code>AssetGroupAsset</code></a> to provide insight into why an asset group or an asset group asset is not serving or not serving, respectively. For <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AssetGroupAsset"><code>AssetGroupAsset</code></a>, <code>primary_status_details</code> is also available.</li> <li>Added new fields to <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Invoice"><code>Invoice</code></a> and <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Invoice.AccountSummary"><code>AccountSummary</code></a> which return information on export charges.</li> <li>(Allowlisted accounts only) Added <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Campaign.DiscoveryCampaignSettings"><code>DiscoveryCampaignSettings</code></a> that contain <code>upgraded_targeting</code>. When you set this field to <code>true</code>, you can add a location and a language as an ad group criterion to that campaign.</li> <li>(Allowlisted accounts only) Added support for <a href="https://developers.google.com/google-ads/api/docs/discovery/overview"><code>Discovery</code></a> video responsive ad: <ul> <li>New ad type: <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AdTypeEnum.AdType#discovery_video_responsive_ad"><code>AdType.DISCOVERY_VIDEO_RESPONSIVE_AD</code></a></li> <li>New ad info: <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/DiscoveryVideoResponsiveAdInfo"><code>DiscoveryVideoResponsiveAdInfo</code></a></li> </ul></li> </ul> <strong>Where can I learn more?</strong><br /> The following resources can help you get started: <ul> <li><a href="https://developers.google.com/google-ads/api/docs/release-notes">Release Notes</a></li> <li><a href="https://developers.google.com/google-ads/api/docs">Guides</a></li> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/">Reference</a></li> </ul> If you have any questions or need help, contact us through the <a href="https://groups.google.com/forum/#!forum/adwords-api">forum</a>.<br /> <span class='byline-author'><img height="40" src="https://lh3.googleusercontent.com/-uGJ74K4l6os/AAAAAAAAAAI/AAAAAAAAADY/-NAP6xAT8Fk/s120-c/photo.jpg" style="vertical-align:middle; border:none;" width="40"> - Thanet Knack Praneenararat, on behalf of the Google Ads API Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> Today, we’re announcing the v14_1 release of the <a href="https://developers.google.com/google-ads/api">Google Ads API</a>. To use some of the v14_1 features, you will need to upgrade your <a href="https://developers.google.com/google-ads/api/docs/client-libs">client libraries</a> and client code. The updated client libraries and code examples will be published next week. This version has no breaking changes.<br /><br /> Here are the highlights: <ul> <li>Added new recommendation types: <ul> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Recommendation.PerformanceMaxOptInRecommendation"><code>PerformanceMaxOptInRecommendation</code></a></li> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Recommendation.ImprovePerformanceMaxAdStrengthRecommendation"><code>ImprovePerformanceMaxAdStrengthRecommendation</code></a></li> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Recommendation.MigrateDynamicSearchAdsCampaignToPerformanceMaxRecommendation"><code>MigrateDynamicSearchAdsCampaignToPerformanceMaxRecommendation</code></a></li> </ul></li> <li>Added support for <a href="https://support.google.com/google-ads/answer/11386930">search terms insights</a> to show information on how customers are searching and engaging with your business on Google. Insights are available as two new views: <a href="https://developers.google.com/google-ads/api/fields/latest/customer_search_term_insight"><code>customer_search_term_insight</code></a> and <a href="https://developers.google.com/google-ads/api/fields/latest/campaign_search_term_insight"><code>campaign_search_term_insight</code></a>. We also released new segments and metrics that support grouping the data into search categories and subcategories.</li> <li>You can now use <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Customer#customer_agreement_setting"><code>Customer.customer_agreement_setting</code></a> to check if the customer has accepted the lead form term of service.</li> <li>Added <code>primary_status</code> and <code>primary_status_reasons</code> to <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AssetGroup"><code>AssetGroup</code></a> and <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AssetGroupAsset"><code>AssetGroupAsset</code></a> to provide insight into why an asset group or an asset group asset is not serving or not serving, respectively. For <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AssetGroupAsset"><code>AssetGroupAsset</code></a>, <code>primary_status_details</code> is also available.</li> <li>Added new fields to <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Invoice"><code>Invoice</code></a> and <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Invoice.AccountSummary"><code>AccountSummary</code></a> which return information on export charges.</li> <li>(Allowlisted accounts only) Added <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Campaign.DiscoveryCampaignSettings"><code>DiscoveryCampaignSettings</code></a> that contain <code>upgraded_targeting</code>. When you set this field to <code>true</code>, you can add a location and a language as an ad group criterion to that campaign.</li> <li>(Allowlisted accounts only) Added support for <a href="https://developers.google.com/google-ads/api/docs/discovery/overview"><code>Discovery</code></a> video responsive ad: <ul> <li>New ad type: <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/AdTypeEnum.AdType#discovery_video_responsive_ad"><code>AdType.DISCOVERY_VIDEO_RESPONSIVE_AD</code></a></li> <li>New ad info: <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/DiscoveryVideoResponsiveAdInfo"><code>DiscoveryVideoResponsiveAdInfo</code></a></li> </ul></li> </ul> <strong>Where can I learn more?</strong><br /> The following resources can help you get started: <ul> <li><a href="https://developers.google.com/google-ads/api/docs/release-notes">Release Notes</a></li> <li><a href="https://developers.google.com/google-ads/api/docs">Guides</a></li> <li><a href="https://developers.google.com/google-ads/api/reference/rpc/">Reference</a></li> </ul> If you have any questions or need help, contact us through the <a href="https://groups.google.com/forum/#!forum/adwords-api">forum</a>.<br /> <span class='byline-author'><img height="40" src="https://lh3.googleusercontent.com/-uGJ74K4l6os/AAAAAAAAAAI/AAAAAAAAADY/-NAP6xAT8Fk/s120-c/photo.jpg" style="vertical-align:middle; border:none;" width="40"> - Thanet Knack Praneenararat, on behalf of the Google Ads API Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Google Ads Developer Blog:Announcing v14_1 of the Google Ads API&url=http://ads-developers.googleblog.com/2023/08/announcing-v141-of-google-ads-api.html&via=google'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=http://ads-developers.googleblog.com/2023/08/announcing-v141-of-google-ads-api.html'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='http://ads-developers.googleblog.com/2023/08/announcing-v141-of-google-ads-api.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='http://ads-developers.googleblog.com/search/label/google_ads_api' rel='tag'> google_ads_api </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/release' rel='tag'> release </a> </span> </div> </div> </div> <div class='blog-pager' id='blog-pager'> <a class='home-link' href='http://ads-developers.googleblog.com/'> <i class='material-icons'>  </i> </a> <i class='material-icons disabled'>  </i> <span id='blog-pager-older-link'> <a class='blog-pager-older-link' href='http://ads-developers.googleblog.com/search/label/release?updated-max=2023-08-09T11:58:00-07:00&max-results=20&start=20&by-date=false' id='Blog1_blog-pager-older-link' title='Older Posts'> <i class='material-icons'>  </i> </a> </span> </div> <div class='clear'></div> </div></div> </div> </div> <div class='col-right'> <div class='section' id='sidebar-top'><div class='widget HTML' data-version='1' id='HTML8'> <div class='widget-content'> <div class='searchBox'> <input type='text' title='Search This Blog' placeholder='Search blog ...' /> </div> </div> <div class='clear'></div> </div></div> <div id='aside'> <div class='section' id='sidebar'><div class='widget Label' data-version='1' id='Label1'> <div class='tab'> <img class='sidebar-icon' src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAYpJREFUeNrs2aFuwzAQBmAvKRkMKRjZA4QMDJaWFgyMjuzFRg37DIUlA3uFkoGQSaWzJU+tpri5O9+l/zSfdFJlpe59yTmyVedq1PjfcZMZ70NuQnaF8w8htyE/rABtpviXkLcK88c5HhLkMBfgVan43zfFBNGMjHVGT/s55KP2pAvidbGHd+nzKt1RKSLG3rKF1iPFv6UWiPke8i7kEqGdGsI1O+LYVdqJAjgirwkKYD0ytkJBUNbAMvX8V3q9PhUsYvU1sWD8SO/sQvx2ahxOiNoJCSBCoAHYCEQAC4EKICOQASQEOmAS8RcAFxFN5hiIiugpgC3wk9hQAHH/70EBHXUN7IER5EWMiBgo2+nzOKQv9SCAeEM/OQAkhE/ncccFICB87qzQMia5FsJfOui0zMnmRvipU1ormHQuxGTxUsAcCFLxJQBLBLn4UoAFglW8BkATwS5eC6CBEBWvCShBiIvXBkgQRcVbADiI4uKtABSESvGWgB9EzHt3+tNwyO0qa9SoIYtvAQYAqDJhaWWeMecAAAAASUVORK5CYII='/> <h2> Labels </h2> <i class='material-icons arrow'>  </i> </div> <div class='widget-content list-label-widget-content'> <ul> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/account_management'> account_management </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_clicks'> ad_clicks </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_customizers'> ad_customizers </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_exchange'> ad_exchange </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_exchange_buyer'> ad_exchange_buyer </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_exchange_optimization-series'> ad_exchange_optimization-series </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_exchange_rest'> ad_exchange_rest </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_exchange_rtb'> ad_exchange_rtb </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_exchange_seller'> ad_exchange_seller </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_exchange_soap'> ad_exchange_soap </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_extensions'> ad_extensions </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_inspector'> ad_inspector </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_manager'> ad_manager </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_manager_api'> ad_manager_api </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_manager_api_v201805'> ad_manager_api_v201805 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_manager_api_v201808'> ad_manager_api_v201808 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_manager_api_v201811'> ad_manager_api_v201811 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_manager_api_v201902'> ad_manager_api_v201902 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_manager_api_v201905'> ad_manager_api_v201905 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_manager_api_v201908'> ad_manager_api_v201908 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_manager_api_v201911'> ad_manager_api_v201911 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_manager_api_v202002'> ad_manager_api_v202002 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_manager_api_v202005'> ad_manager_api_v202005 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_manager_api_v202008'> ad_manager_api_v202008 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_manager_api_v202011'> ad_manager_api_v202011 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_manager_api_v202102'> ad_manager_api_v202102 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_manager_api_v202105'> ad_manager_api_v202105 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_manager_api_v202108'> ad_manager_api_v202108 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_manager_api_v202111'> ad_manager_api_v202111 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_manager_api_v202202'> ad_manager_api_v202202 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_manager_api_v202205'> ad_manager_api_v202205 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_manager_api_v202208'> ad_manager_api_v202208 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_manager_api_v202211'> ad_manager_api_v202211 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_manager_api_v202302'> ad_manager_api_v202302 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_manager_api_v202305'> ad_manager_api_v202305 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_manager_api_v202308'> ad_manager_api_v202308 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_manager_api_v202311'> ad_manager_api_v202311 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_manager_api_v202402'> ad_manager_api_v202402 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_manager_api_v202405'> ad_manager_api_v202405 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_manager_api_v202408'> ad_manager_api_v202408 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_manager_api_v202411'> ad_manager_api_v202411 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_param'> ad_param </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ad_speed'> ad_speed </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adexchangebuyer'> adexchangebuyer </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/AdGroup'> AdGroup </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/AdGroupAd'> AdGroupAd </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/admanager_api'> admanager_api </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/admob'> admob </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/admob_api'> admob_api </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/admob_api_v1'> admob_api_v1 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/admob_mediation'> admob_mediation </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/admob_sdk'> admob_sdk </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/admob_v4.3.1'> admob_v4.3.1 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/admob_v5.0.5'> admob_v5.0.5 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/admob_v6.0.1'> admob_v6.0.1 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ads'> ads </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adsense'> adsense </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adsense_api'> adsense_api </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adsense_host_api'> adsense_host_api </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adsense_host_api_v3'> adsense_host_api_v3 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adsense_management_api'> adsense_management_api </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adsense_management_api_v1'> adsense_management_api_v1 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adsense_management_api_v1.1'> adsense_management_api_v1.1 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adsense_management_api_v1.2'> adsense_management_api_v1.2 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adsense_management_api_v1.3'> adsense_management_api_v1.3 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adsense_management_api_v1.4'> adsense_management_api_v1.4 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/advanced_apis'> advanced_apis </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwhirl'> adwhirl </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwhirl_v3.1.1'> adwhirl_v3.1.1 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords'> adwords </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/AdWords%20Scripts'> AdWords Scripts </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_AdGroupCriterionService'> adwords_AdGroupCriterionService </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_api'> adwords_api </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_api_v201302'> adwords_api_v201302 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_api_v201306'> adwords_api_v201306 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_api_v201309'> adwords_api_v201309 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_api_v201402'> adwords_api_v201402 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_api_v201406'> adwords_api_v201406 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_api_v201409'> adwords_api_v201409 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_api_v201502'> adwords_api_v201502 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_api_v201506'> adwords_api_v201506 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_api_v201509'> adwords_api_v201509 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_api_v201601'> adwords_api_v201601 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_api_v201603'> adwords_api_v201603 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_api_v201605'> adwords_api_v201605 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_api_v201607'> adwords_api_v201607 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_api_v201609'> adwords_api_v201609 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_api_v201702'> adwords_api_v201702 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_api_v201705'> adwords_api_v201705 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_api_v201708'> adwords_api_v201708 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_api_v201710'> adwords_api_v201710 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_api_v201802'> adwords_api_v201802 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_api_v201806'> adwords_api_v201806 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_api_v201809'> adwords_api_v201809 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_api_workshops'> adwords_api_workshops </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_BatchJobService'> adwords_BatchJobService </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_CampaignService'> adwords_CampaignService </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_CreateAccountService'> adwords_CreateAccountService </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_for_video'> adwords_for_video </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_ManagedCustomerService'> adwords_ManagedCustomerService </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_MutateJobService'> adwords_MutateJobService </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_ReportDefinitionService'> adwords_ReportDefinitionService </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_scripts'> adwords_scripts </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_v201109'> adwords_v201109 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_v201206'> adwords_v201206 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_v201209'> adwords_v201209 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_v201302'> adwords_v201302 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_v201306'> adwords_v201306 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_v201309'> adwords_v201309 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_v201601'> adwords_v201601 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_v201605'> adwords_v201605 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_v201607'> adwords_v201607 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_v201609'> adwords_v201609 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_v201702'> adwords_v201702 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_v201802'> adwords_v201802 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_v201806'> adwords_v201806 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/adwords_v201809'> adwords_v201809 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/alerting'> alerting </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/amp'> amp </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/analytics'> analytics </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/analyticsapi'> analyticsapi </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/android'> android </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/android_layout'> android_layout </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/animation'> animation </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/announcement'> announcement </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/annual%20developer%20survey'> annual developer survey </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/api'> api </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/app_engine'> app_engine </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/asset_group'> asset_group </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/asset_group_listing_group_filter'> asset_group_listing_group_filter </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/asset_group_signal'> asset_group_signal </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/assets'> assets </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/attribution_reporting_api'> attribution_reporting_api </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/audiences'> audiences </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/authentication'> authentication </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/authorization'> authorization </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/authorized_buyer'> authorized_buyer </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/authorized_buyers'> authorized_buyers </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/aw_reporting'> aw_reporting </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/awql'> awql </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/batch_processing'> batch_processing </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/beacon_api'> beacon_api </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/best_practices'> best_practices </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/beta'> beta </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/bid_manager_api'> bid_manager_api </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/bid_modifiers'> bid_modifiers </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/bidding'> bidding </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/billing'> billing </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/brand%20guidelines'> brand guidelines </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/brand_guidelines'> brand_guidelines </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/budget_order_service'> budget_order_service </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/budgets'> budgets </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/builders'> builders </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/bulk_upload'> bulk_upload </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/c%23'> c# </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/caf_sdk'> caf_sdk </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/call_extensions'> call_extensions </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/call_metrics'> call_metrics </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/call_only'> call_only </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/call_tracking'> call_tracking </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/call-only'> call-only </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/callout_extensions'> callout_extensions </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/campaign'> campaign </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/CampaignCriterion'> CampaignCriterion </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/case_study'> case_study </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/cast'> cast </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/certificates'> certificates </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/certification'> certification </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/chart_tools'> chart_tools </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/chrome'> chrome </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/chromecast'> chromecast </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/click'> click </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/click_tracking'> click_tracking </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/click_type'> click_type </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/click-to-download'> click-to-download </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/clicks'> clicks </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/client_libraries'> client_libraries </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/client_library'> client_library </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/cm360'> cm360 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/code_examples'> code_examples </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/common_questions'> common_questions </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/conference'> conference </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/content'> content </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/content_api'> content_api </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/conversion'> conversion </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/conversions'> conversions </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ConversionTrackerService'> ConversionTrackerService </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/converted_clicks'> converted_clicks </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/creative_platforms'> creative_platforms </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/creatives'> creatives </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/custom_fields'> custom_fields </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/customer_match'> customer_match </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/DAI'> DAI </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dart'> dart </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dbm_api'> dbm_api </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/debugging'> debugging </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/decorators'> decorators </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/deprecation'> deprecation </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/developer'> developer </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dfa_ad_service'> dfa_ad_service </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dfa_api'> dfa_api </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dfa_api_v118'> dfa_api_v118 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dfa_creative_service'> dfa_creative_service </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dfa_reporting_api'> dfa_reporting_api </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dfa_site_service'> dfa_site_service </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dfa_v1.16'> dfa_v1.16 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dfa_v1.17'> dfa_v1.17 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dfa_v1.18'> dfa_v1.18 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dfa_v1.19'> dfa_v1.19 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dfa_v1.20'> dfa_v1.20 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dfp'> dfp </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dfp_api'> dfp_api </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dfp_appengine'> dfp_appengine </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dfp_creatives'> dfp_creatives </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dfp_inventory'> dfp_inventory </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dfp_mobile'> dfp_mobile </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dfp_pql'> dfp_pql </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dfp_reports'> dfp_reports </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dfp_sales'> dfp_sales </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dfp_teams'> dfp_teams </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dfp_v201111'> dfp_v201111 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dfp_v201201'> dfp_v201201 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dfp_v201203'> dfp_v201203 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dfp_v201204'> dfp_v201204 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dfp_v201206'> dfp_v201206 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dfp_v201208'> dfp_v201208 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dfp_v201211'> dfp_v201211 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dfp_v201302'> dfp_v201302 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dfp_v201308'> dfp_v201308 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dfp_v201608'> dfp_v201608 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dfp_v201711'> dfp_v201711 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/display'> display </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/display_network'> display_network </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/display_select'> display_select </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/display_smart_campaign'> display_smart_campaign </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/docs'> docs </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dotnet'> dotnet </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/doubleclick'> doubleclick </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/DoubleClick_Rich_Media'> DoubleClick_Rich_Media </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/doubleclick_studio'> doubleclick_studio </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/drafts'> drafts </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dsa'> dsa </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dv360'> dv360 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dv360_api'> dv360_api </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/dynamic_creative'> dynamic_creative </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/enhanced_campaigns'> enhanced_campaigns </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/entity_read_files'> entity_read_files </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/erf'> erf </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/error%20handling'> error handling </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/eta'> eta </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/examples'> examples </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/excluded_placement_lists'> excluded_placement_lists </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/exoplayer'> exoplayer </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/expanded_text_ads'> expanded_text_ads </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/experiment'> experiment </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/experiments'> experiments </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/faq'> faq </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/feedback'> feedback </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/feeds'> feeds </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/firebase'> firebase </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/flash'> flash </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/flash_sdk'> flash_sdk </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/floc'> floc </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/flutter'> flutter </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/forecast_service'> forecast_service </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/games'> games </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/gaql'> gaql </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/gclid'> gclid </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/gdc'> gdc </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/gdl'> gdl </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/geo_targets'> geo_targets </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/geotargeting'> geotargeting </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/gmail_ads'> gmail_ads </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/gmail_image_ads'> gmail_image_ads </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/gmail_multi_product_ads'> gmail_multi_product_ads </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/gmail_single_promotion_ads'> gmail_single_promotion_ads </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/GMF'> GMF </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/gmp'> gmp </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/golang'> golang </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/google_ads'> google_ads </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/google_ads_api'> google_ads_api </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/google_ads_api_migration_workshop'> google_ads_api_migration_workshop </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/google_ads_api_v0'> google_ads_api_v0 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/google_ads_api_v0_1'> google_ads_api_v0_1 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/google_ads_api_v0_3'> google_ads_api_v0_3 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/google_ads_api_v0_4'> google_ads_api_v0_4 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/google_ads_api_v0_5'> google_ads_api_v0_5 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/google_ads_api_v0_6'> google_ads_api_v0_6 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/google_ads_api_v0_7'> google_ads_api_v0_7 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/google_ads_api_v1_0'> google_ads_api_v1_0 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/google_ads_api_v1_1'> google_ads_api_v1_1 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/google_ads_api_v1_2'> google_ads_api_v1_2 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/google_ads_api_v1_3'> google_ads_api_v1_3 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/google_ads_api_v2_1'> google_ads_api_v2_1 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/google_ads_api_v3_0'> google_ads_api_v3_0 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/google_ads_api_v3_1'> google_ads_api_v3_1 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/google_ads_api_v4'> google_ads_api_v4 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/google_ads_api_v5'> google_ads_api_v5 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/google_ads_api_v6'> google_ads_api_v6 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/google_ads_scripts'> google_ads_scripts </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/google_ads_solutions'> google_ads_solutions </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/google_apis'> google_apis </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/google_apps_script'> google_apps_script </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/google_drive'> google_drive </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/google_play_services'> google_play_services </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/google_plus'> google_plus </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/gpt'> gpt </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/guide'> guide </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/guides'> guides </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/hangout'> hangout </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/hotel_ads'> hotel_ads </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/hotel_campaigns'> hotel_campaigns </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/html5'> html5 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/html5_ads'> html5_ads </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/https'> https </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/i18n'> i18n </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ids'> ids </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ima_android'> ima_android </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ima_flash'> ima_flash </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ima_html5'> ima_html5 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ima_ios'> ima_ios </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ima_roku'> ima_roku </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ima_sdk'> ima_sdk </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/image'> image </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/image_ads'> image_ads </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/implementation'> implementation </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/impression_share'> impression_share </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/interstitial'> interstitial </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/interview'> interview </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/io13'> io13 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/iOS'> iOS </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/iOS9'> iOS9 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/java_app_engine'> java_app_engine </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/java_dart_api'> java_dart_api </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/jdbc'> jdbc </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/keyword_optimizer'> keyword_optimizer </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/keywords'> keywords </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/kotlin'> kotlin </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/labels'> labels </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/limits'> limits </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/line_item'> line_item </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/linq'> linq </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/listing_groups'> listing_groups </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/location_extensions'> location_extensions </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/location_feeds'> location_feeds </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/LocationExtensionOperand'> LocationExtensionOperand </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/LocationGroups'> LocationGroups </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/logging'> logging </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/manager_accounts'> manager_accounts </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/maps_api'> maps_api </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/marketplace'> marketplace </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/maximize'> maximize </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/mcc'> mcc </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/media'> media </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/media_bundle'> media_bundle </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/mediation_test_suite'> mediation_test_suite </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/merchant_api'> merchant_api </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/migration'> migration </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/mobile'> mobile </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/mobile_ads'> mobile_ads </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/mobile_ads_garage'> mobile_ads_garage </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/mobile_ads_sdk'> mobile_ads_sdk </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/mobile_sites'> mobile_sites </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/mobile_speed'> mobile_speed </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/mobile_targeting'> mobile_targeting </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/mobile_ux'> mobile_ux </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/monitoring'> monitoring </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/native'> native </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/native_ads_express'> native_ads_express </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/new_features'> new_features </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/oath2'> oath2 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/oauth'> oauth </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/oauth2'> oauth2 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/offline_conversions'> offline_conversions </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/OfflineConversionFeedService'> OfflineConversionFeedService </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/open_source'> open_source </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/openrtb'> openrtb </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/optimization'> optimization </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/Performance%20Max'> Performance Max </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/performance_max'> performance_max </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/performance_max_api_workshop'> performance_max_api_workshop </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/php'> php </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/PLA'> PLA </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/placements'> placements </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/PMax'> PMax </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/policy'> policy </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/policy_violation'> policy_violation </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/PQL'> PQL </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/price_extension'> price_extension </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/privacy'> privacy </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/privacy_sandbox'> privacy_sandbox </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/product_listing_ads'> product_listing_ads </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/proguard'> proguard </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/promotion_line'> promotion_line </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/publisher_ads_audits'> publisher_ads_audits </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/python'> python </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/qa'> qa </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/quality_score'> quality_score </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/query_builder_blog_series'> query_builder_blog_series </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/query_language'> query_language </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/quota'> quota </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/rate_limiter'> rate_limiter </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/rate_sheet'> rate_sheet </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/RateExceededError'> RateExceededError </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/realtime_bidding'> realtime_bidding </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/realtime_bidding_api'> realtime_bidding_api </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/realtime_bidding_protocol'> realtime_bidding_protocol </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/realtimebidding'> realtimebidding </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/recommendations'> recommendations </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/referer'> referer </a> </li> <li> <span dir='ltr'> release </span> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/remarketing'> remarketing </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/reporting'> reporting </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/reports'> reports </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/responsive_ads'> responsive_ads </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/rewarded_video'> rewarded_video </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/rmf'> rmf </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ruby'> ruby </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/sa360'> sa360 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/sandbox'> sandbox </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/scripts'> scripts </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/sdf'> sdf </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/sdkless'> sdkless </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/search'> search </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/search%20audience'> search audience </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/search%20terms'> search terms </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/search_audience'> search_audience </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/search_network'> search_network </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/search_theme'> search_theme </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/selector'> selector </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/sendbeacon'> sendbeacon </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/service_accounts'> service_accounts </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/shared_negative_keywords'> shared_negative_keywords </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/shopping'> shopping </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/simulations'> simulations </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/sitelinks'> sitelinks </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/smart'> smart </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/snds'> snds </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/spend'> spend </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ssl'> ssl </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/StepInsideAdWords'> StepInsideAdWords </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/success_stories'> success_stories </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/suggested_ad_units'> suggested_ad_units </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/sunset'> sunset </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/survey'> survey </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/swift'> swift </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/swiftui'> swiftui </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/target'> target </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/target_cpa'> target_cpa </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/targeting'> targeting </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/template_ads'> template_ads </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/terms'> terms </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/test_accounts'> test_accounts </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/test_network'> test_network </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/testing'> testing </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/text_ads'> text_ads </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/text_asset_automation'> text_asset_automation </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/tools'> tools </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/trials'> trials </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/turtledove'> turtledove </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/ui'> ui </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/unity'> unity </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/update'> update </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/updates'> updates </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/upgrade'> upgrade </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/upgraded_urls'> upgraded_urls </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/v201509'> v201509 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/vast3'> vast3 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/vcpm'> vcpm </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/video'> video </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/viewable-cpm'> viewable-cpm </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/webinar'> webinar </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/workshop'> workshop </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/workshops'> workshops </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/wp8'> wp8 </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/xml'> xml </a> </li> <li> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/youtube'> youtube </a> </li> </ul> <div class='clear'></div> </div> </div><div class='widget BlogArchive' data-version='1' id='BlogArchive1'> <div class='tab'> <i class='material-icons icon'>  </i> <h2> Archive </h2> <i class='material-icons arrow'>  </i> </div> <div class='widget-content'> <div id='ArchiveList'> <div id='BlogArchive1_ArchiveList'> <ul class='hierarchy'> <li class='archivedate expanded'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'>  </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy toggle-open'> <i class='material-icons'>  </i>   </span> </a> <a class='post-count-link' href='http://ads-developers.googleblog.com/2025/'> 2025 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate expanded'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2025/02/'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2025/01/'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'>  </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'>  </i>   </span> </a> <a class='post-count-link' href='http://ads-developers.googleblog.com/2024/'> 2024 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2024/12/'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2024/11/'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2024/10/'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2024/09/'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2024/08/'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2024/07/'> Jul </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2024/06/'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2024/05/'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2024/04/'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2024/03/'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2024/02/'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2024/01/'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'>  </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'>  </i>   </span> </a> <a class='post-count-link' href='http://ads-developers.googleblog.com/2023/'> 2023 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2023/12/'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2023/11/'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2023/10/'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2023/09/'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2023/08/'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2023/07/'> Jul </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2023/06/'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2023/05/'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2023/04/'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2023/03/'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2023/02/'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2023/01/'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'>  </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'>  </i>   </span> </a> <a class='post-count-link' href='http://ads-developers.googleblog.com/2022/'> 2022 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2022/12/'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2022/11/'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2022/10/'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2022/09/'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2022/08/'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2022/07/'> Jul </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2022/06/'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2022/05/'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2022/04/'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2022/03/'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2022/02/'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2022/01/'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'>  </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'>  </i>   </span> </a> <a class='post-count-link' href='http://ads-developers.googleblog.com/2021/'> 2021 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2021/12/'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2021/11/'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2021/10/'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2021/09/'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2021/08/'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2021/07/'> Jul </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2021/06/'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2021/05/'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2021/04/'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2021/03/'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2021/02/'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2021/01/'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'>  </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'>  </i>   </span> </a> <a class='post-count-link' href='http://ads-developers.googleblog.com/2020/'> 2020 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2020/12/'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2020/11/'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2020/10/'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2020/09/'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2020/08/'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2020/07/'> Jul </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2020/06/'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2020/05/'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2020/04/'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2020/03/'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2020/02/'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2020/01/'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'>  </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'>  </i>   </span> </a> <a class='post-count-link' href='http://ads-developers.googleblog.com/2019/'> 2019 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2019/12/'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2019/11/'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2019/10/'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2019/09/'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2019/08/'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2019/07/'> Jul </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2019/06/'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2019/05/'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2019/04/'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2019/03/'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2019/02/'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2019/01/'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'>  </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'>  </i>   </span> </a> <a class='post-count-link' href='http://ads-developers.googleblog.com/2018/'> 2018 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2018/12/'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2018/11/'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2018/10/'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2018/09/'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2018/08/'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2018/07/'> Jul </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2018/06/'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2018/05/'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2018/04/'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2018/03/'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2018/02/'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2018/01/'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'>  </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'>  </i>   </span> </a> <a class='post-count-link' href='http://ads-developers.googleblog.com/2017/'> 2017 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2017/12/'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2017/11/'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2017/10/'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2017/09/'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2017/08/'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2017/07/'> Jul </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2017/06/'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2017/05/'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2017/04/'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2017/03/'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2017/02/'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2017/01/'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'>  </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'>  </i>   </span> </a> <a class='post-count-link' href='http://ads-developers.googleblog.com/2016/'> 2016 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2016/12/'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2016/11/'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2016/10/'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2016/09/'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2016/08/'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2016/07/'> Jul </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2016/06/'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2016/05/'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2016/04/'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2016/03/'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2016/02/'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2016/01/'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'>  </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'>  </i>   </span> </a> <a class='post-count-link' href='http://ads-developers.googleblog.com/2015/'> 2015 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2015/12/'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2015/11/'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2015/10/'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2015/09/'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2015/08/'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2015/07/'> Jul </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2015/06/'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2015/05/'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2015/04/'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2015/03/'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2015/02/'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2015/01/'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'>  </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'>  </i>   </span> </a> <a class='post-count-link' href='http://ads-developers.googleblog.com/2014/'> 2014 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2014/12/'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2014/11/'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2014/10/'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2014/09/'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2014/08/'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2014/07/'> Jul </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2014/06/'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2014/05/'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2014/04/'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2014/03/'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2014/02/'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2014/01/'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'>  </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'>  </i>   </span> </a> <a class='post-count-link' href='http://ads-developers.googleblog.com/2013/'> 2013 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2013/12/'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2013/11/'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2013/10/'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2013/09/'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2013/08/'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2013/07/'> Jul </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2013/06/'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2013/05/'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2013/04/'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2013/03/'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2013/02/'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2013/01/'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'>  </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'>  </i>   </span> </a> <a class='post-count-link' href='http://ads-developers.googleblog.com/2012/'> 2012 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2012/12/'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2012/11/'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2012/10/'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2012/09/'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2012/08/'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2012/07/'> Jul </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2012/06/'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2012/05/'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2012/04/'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2012/03/'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2012/02/'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2012/01/'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'>  </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'>  </i>   </span> </a> <a class='post-count-link' href='http://ads-developers.googleblog.com/2011/'> 2011 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2011/12/'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='http://ads-developers.googleblog.com/2011/11/'> Nov </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> </div> </div> <div class='clear'></div> </div> </div></div> <div class='section' id='sidebar-bottom'><div class='widget HTML' data-version='1' id='HTML5'> <div class='widget-content'> <div class='followgooglewrapper'> <script src="https://apis.google.com/js/plusone.js"></script> <div class="g-ytsubscribe" data-channel="AdsDevelopers" data-layout="full"></div> </div> </div> <div class='clear'></div> </div><div class='widget HTML' data-version='1' id='HTML7'> <div class='widget-content'> Give us feedback in our developer product forums:<br /><br /> <a href="https://groups.google.com/forum/#!forum/adwords-api">Google Ads API</a><br /> <a href="https://groups.google.com/forum/#!forum/adwords-scripts">Google Ads scripts</a><br /> <a href="https://groups.google.com/forum/#!forum/google-doubleclick-for-publishers-api">Google Ad Manager API</a><br /> <a href="https://groups.google.com/forum/#!forum/google-doubleclick-for-advertisers-api">DCM API</a><br /> <a href="https://groups.google.com/forum/#!forum/google-admob-ads-sdk">Google Mobile Ads SDK</a><br /> <a href="https://groups.google.com/g/google-admob-api-developer-forum">Google AdMob API</a><br /> <a href="https://groups.google.com/forum/#!forum/ima-sdk">Google Interactive Media Ads SDK</a><br /> <a href="https://groups.google.com/forum/#!forum/google-content-api-for-shopping">Google Content API for Shopping</a><br /> <a href="https://groups.google.com/forum/#!forum/google-doubleclick-ad-exchange-buyer-api">Authorized Buyers API</a><br /> </div> <div class='clear'></div> </div></div> </div> </div> <div style='clear:both;'></div> </div> <!-- Footer --> <div class='google-footer-outer loading'> <div id='google-footer'> <a href='//www.google.com/'> <img class='google-logo-dark' height='36' src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALgAAABICAYAAABFoT/eAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAACLVJREFUeNrsXd+L20YQ3vOprdLqiMXFXE2qB7dcwEcTSB7ykIc+9A/PQx/yEMq1TWhNuYIpJriNr7XpmZ5IxFEvmW2EKs3Ornb1w50PxIFP0kiz387OzM6uhGAwGAxGP3Ho+f7x7ri1O7LdccPqZjSNA4dEHsLfaHcEFedJom93x9Xu2OyOFTcBo6sED3fHZHeMEELrkAHJF0B8Rr+gDFsZ5n0luLTQ95AXs4W06D/tjpR50xtM4CjD0y48YGB4rnyZxNOzyA7zBHr+nLnDaJLg0mo/ALekCasg3Z4XbM0ZdTEgnDPeHY8bIne+Qz2GvwyGNwsuyT218KWvIIBMcwGpLiipcolecjMxfBDchNyS1EvxLiOSIecp31q6IJ/C3yrIrMqMm4jhg+AxkdwbIO3aUO4KjqqMjCT3uaazMBhWBJfuxH3CtRfiXf66DhSRZWbmlMnNaILgZxrXJQO/eO3wORZwvwm4JUxuhheCjzVBYAbW1ces45YDSoZrFNOEE835M8FT6oyeEnws8Fz3QnBxFKPHBMem4GU+m6fPGb0leCTwWcM5B36MPgeZI01gudyDdw3hPeXfo8L/rmCUWnuMMdqUL2WqWeRbhf+twfVsO7YagZGNC79fw7OthEVtkiJ4jJzTd3KPwf3CRqhhiTu23AP5sl0/0xiwISQXpNwLIJK87mHF+U8ddzzdmgKlGzlPYjyxGJQouIhNT4k9AqWEFkqfguIvagTWbcq3KW1WE3xS3m8NtA9WS451xofwjKT5kkDoK/b6mDk5FfXr1lWDL4BofZEv2/SRsK/EHGlGdBdu8QNRb8HMCFwt7Yy3DDI/QP7fx5z3VLhdlJEIs4rKNuXXJXdxZPdB7kfCzWqwCO4V1LHgLjInX3tQ1KzCR52Cz+vDj1dydeRuS74rcvs2Pi6fT5H8OaaUQPQPYcWwRSGXyhhscn5dpAnEFMkuEZetbfkTAnlSuH4DxisE+aMGeJAQ3lFl7C4LJE6QWCaCd583ORQ1jYAwjFctal7nOs2ZZvicwvlZx+RHGrcoAwKUVX8uwcc/9TT65INeDOr5shL9LDRB6QTeIy3zwfdh3WOi6axLCEhSjXU7F3h6LqggUtvyJxpynwu8tDkD98fXApOxRj8zoZ9MnGveYVIVZKaGrkBXCY65BCYNN9NkjpKOyQ81Q79JgdxS+Jn3SDTEXRI7SWzaiSTB32oI3nU3BvMfM0urhOVYgwKhuiAfc4tM07wXwm1ZRoQYSl2NUwiu01fEAHVcpixd745FvVz4dzUUc0o8rwoLy8ZSwU6CyFx1RP5II9+1bFPEFs9HWbNLiimDXE+vCm7u1CS47cofzD3aEhVY57mxRo5zlqdt+RFC1JUH2S7bcVXg4liTMakaBZZVxiTICRoivcn1sEUBlk24JmaC6kxUbYmWoqvyfck2xZGGnDFYa9MMzkYQ1ijkCX6qidybrgePiQ0QIQqoi6qRLeqQfIoRsEHaQJLBdHOnLGetSdm/IPcymJuS1PAnbQPH0MOw/39C1vL11DiLOqIsbDI8QcHvGiLnySi2qUXBicaqUSxN5LEB0g7Jt3ENXJLPJ5S1tnaZBoWbpRqrmjRE7qHmpSmNHdQcYrEUadoh+TbBnc9ri7iycI1kzPeNcLDIvbiqXpez9Tmdq6zGREPuzECBoxrPMiI2WtvyNwhJba2wy3JZ6ky5dD1lSvmZS3e4SPA1wcf1VTFHKX+cGwZzdUYcqpvUtvwrD/InDttVlyZeAKlNN5MKbAiurHhKIPlUuJvlTCCiDjSKSCsUmCFWbGLZwCESfK07JB8LvMYWVtw0D00JEHV8Mq2HkqPbE0oHLvvK2g0o8ETg+4cfwTlZDT9JDoWygu4uQQE/ivIvtcnfPkaCqhiupz7jWOAzqL/vjtcdkv9G4MVMt+EaylfuImiPAXEUjRF3pjjaHiPPZ6If9TGGAO4ZY0am6jOCb+DQ+ZCqLkIpOIPrdNfIjnFPY6nyFut7TS/fanrziOBOKMupKw94WaLMtuVnSFt9CPrWWdJE6PeltCX432DEBoh+5Dv8RRhdis8YAv9uyq4/JAwtlEApgBe9Cw9xDD3tdk4Jn0MDfiHwPHcRPxBePCMER3GuIx7kGlv9fkZ4V9lolx2Uv4X7hEj7qJ3LDoAMGbTRMRibu4L2xQ8bgt8AyU+Q+x7nYrvDnH4iuO5LxKsYwPVbkPMvKF9Zky9wXzRfVWizi62r9X5VHf55h+WHhDjGBZ4WRhyTr6z5SlCoLMxLSpBZFsQ9F80uQFbF/6aFWi+Ev51vzzsuX+msyzuQXXjUz8zEBy+zpq9yweXAoxJW4JbYrDS6gYDqGHxPl+TKeiBfxj9/EBIElPYeOA4y8/qRQfknjvSzgRgtq0Pw/M1eQeMdOSb2Bnrhr6Led+1vcp2x7oTFHMnedFW+Ivlty062BUt74oHgSj+vHepnhunn0JJAMtBZgDI/qmGtMujRv8DDpo47zBJ8UtPOuAR/7rKn8t9AJ0tBdmBAmJ/Fu71yxp4I3qh+DhyRqbi5Y1ShVPlSb8X7bRNcfgZFl+WRGYo7uecrWq1r8X5bhmzP5OdlDwsGRm1suSxkg5rYm7ConyGQ3Zl+DgSD8V/kPwrWBMG9YcBtyShBnTLdTiHgttw7qAW7cqh/ZnmPKr/6ignOaKsdyxbsToT5UkPsW00bJjijDXficcX/JsLs6w2BwGtherdckH3w/kNXRPVI0OqJQoHX42/66IMfMj/2huRjxIidgKV/W0JS+bsstDoTeAHcrI8E5zTh/sDkqxL5rZup55/3USlswfcHf4IrQplVDgW9XFlOqnwr6pVPMMEZTuC60EttvdzbLbaZ4PsFVa3nohhO+vW+yn/ZB2fUhpysmQrzBcTSai9EszuZMcEZ1lCFVrp9zGXhm69iLyY4oxFIa178lPe12I/P2DAYDAaDwWAwGAwGg8FgMBgMBoPBYDD2Cf8IMADDRGoQTe+E9AAAAABJRU5ErkJggg==' style='margin-top: -16px;' width='92'/> </a> <ul> <li> <a href='//www.google.com/'> Google </a> </li> <li> <a href='//www.google.com/policies/privacy/'> Privacy </a> </li> <li> <a href='//www.google.com/policies/terms/'> Terms </a> </li> </ul> </div> </div> <script type='text/javascript'> //<![CDATA[ // Social sharing popups. var postEl = document.getElementsByClassName('social-wrapper'); var postCount = postEl.length; for(i=0; i<postCount;i++){ postEl[i].addEventListener("click", function(event){ var postUrl = this.getAttribute("data-href"); window.open( postUrl,'popUpWindow','height=500,width=500,left=10,top=10,resizable=yes,scrollbars=yes,toolbar=yes,menubar=no,location=no,directories=no,status=yes'); });} //]]> </script> <script type='text/javascript'> //<![CDATA[ var BreakpointHandler = function() { this.initted = false; this.isHomePage = false; this.isMobile = false; }; BreakpointHandler.prototype.finalizeSummary = function(summaryHtml, lastNode) { // Use $.trim for IE8 compatibility summaryHtml = $.trim(summaryHtml).replace(/(<br>|\s)+$/,''); if (lastNode.nodeType == 3) { var lastChar = summaryHtml.slice(-1); if (!lastChar.match(/[.”"?]/)) { if (!lastChar.match(/[A-Za-z]/)) { summaryHtml = summaryHtml.slice(0, -1); } summaryHtml += ' ...'; } } else if (lastNode.nodeType == 1 && (lastNode.nodeName == 'I' || lastNode.nodeName == 'A')) { summaryHtml += ' ...'; } return summaryHtml; }; BreakpointHandler.prototype.generateSummaryFromContent = function(content, numWords) { var seenWords = 0; var summaryHtml = ''; for (var i=0; i < content.childNodes.length; i++) { var node = content.childNodes[i]; var nodeText; if (node.nodeType == 1) { if (node.hasAttribute('data-about-pullquote')) { continue; } nodeText = node.textContent; if (nodeText === undefined) { // innerText for IE8 nodeText = node.innerText; } if (node.nodeName == 'DIV' || node.nodeName == 'B') { // Don't end early if we haven't seen enough words. if (seenWords < 10) { continue; } if (i > 0) { summaryHtml = this.finalizeSummary(summaryHtml, content.childNodes[i-1]); } break; } summaryHtml += node.outerHTML; } else if (node.nodeType == 3) { nodeText = node.nodeValue; summaryHtml += nodeText + ' '; } var words = nodeText.match(/\S+\s*/g); if (!words) { continue; } var remain = numWords - seenWords; if (words.length >= remain) { summaryHtml = this.finalizeSummary(summaryHtml, node); break; } seenWords += words.length; } return summaryHtml; }; BreakpointHandler.prototype.detect = function() { var match, pl = /\+/g, search = /([^&=]+)=?([^&]*)/g, decode = function (s) { return decodeURIComponent(s.replace(pl, " ")); }, query = window.location.search.substring(1); var urlParams = {}; while (match = search.exec(query)) urlParams[decode(match[1])] = decode(match[2]); this.isListPage = $('html').hasClass('list-page'); this.isMobile = urlParams['m'] === '1'; this.isHomePage = window.location.pathname == '/'; }; BreakpointHandler.prototype.initContent = function() { var self = this; $('.post').each(function(index) { var body = $(this).children('.post-body')[0]; var content = $(body).children('.post-content')[0]; $(content).addClass('post-original'); var data = $(content).children('script').html(); data = self.rewriteForSSL(data); // If exists, extract specified editor's preview. var match = data.match(/([\s\S]+?)<div data-is-preview.+?>([\s\S]+)<\/div>/m); if (match) { data = match[1]; } // Prevent big images from loading when they aren't needed. // This must be done as a pre-injection step, since image loading can't be // canceled once embedded into the DOM. if (self.isListPage && self.isMobile) { data = data.replace(/<(img|iframe) .+?>/g, ''); } // Insert template to be rendered as nodes. content.innerHTML = data; if (self.isListPage) { var summary = document.createElement('div'); $(summary).addClass('post-content'); $(summary).addClass('post-summary'); body.insertBefore(summary, content); if (match) { // Use provided summary. summary.innerHTML = match[2]; } else { // Generate a summary. // Summary generation relies on DOM, so it must occur after content is // inserted into the page. summary.innerHTML = self.generateSummaryFromContent(content, 30); } // Add read more link to summary. var titleAnchor = $(this).find('.title a')[0]; var link = titleAnchor.cloneNode(true); link.innerHTML = 'Read More'; $(link).addClass('read-more'); summary.appendChild(link); } }); // Firefox does not allow for proper styling of BR. if (navigator.userAgent.indexOf('Firefox') > -1) { $('.post-content br').replaceWith('<span class="space"></span>'); } $('.loading').removeClass('loading'); }; BreakpointHandler.prototype.process = function() { if (!this.initted) { var makeInsecureImageRegex = function(hosts) { var whitelist = hosts.join('|').replace(/\./g,'\\.'); // Normal image tags, plus input images (yes, this is possible!) return new RegExp('(<(img|input)[^>]+?src=("|\'))http:\/\/(' + whitelist +')', 'g'); }; this.sslImageRegex = makeInsecureImageRegex(BreakpointHandler.KNOWN_HTTPS_HOSTS); this.sslImageCurrentDomainRegex = makeInsecureImageRegex([window.location.hostname]); this.detect(); this.initContent(); this.initted = true; } }; BreakpointHandler.KNOWN_HTTPS_HOSTS = [ "www.google.org", "www.google.com", "services.google.com", "blogger.com", "draft.blogger.com", "www.blogger.com", "photos1.blogger.com", "photos2.blogger.com", "photos3.blogger.com", "blogblog.com", "img1.blogblog.com", "img2.blogblog.com", "www.blogblog.com", "www1.blogblog.com", "www2.blogblog.com", "0.bp.blogspot.com", "1.bp.blogspot.com", "2.bp.blogspot.com", "3.bp.blogspot.com", "4.bp.blogspot.com", "lh3.googleusercontent.com", "lh4.googleusercontent.com", "lh5.googleusercontent.com", "lh6.googleusercontent.com", "themes.googleusercontent.com", ]; BreakpointHandler.prototype.rewriteForSSL = function(html) { // Handle HTTP -> HTTPS source replacement of images, movies, and other embedded content. return html.replace(this.sslImageRegex, '$1https://$4') .replace(this.sslImageCurrentDomainRegex, '$1//$4') .replace(/(<(embed|iframe)[^>]+?src=("|'))http:\/\/([^"']*?(youtube|picasaweb\.google)\.com)/g, '$1https://$4') // Slideshow SWF takes a image host, so we need to rewrite that parameter. .replace(/(<embed[^>]+?feed=http(?=[^s]))/g, '$1s'); }; $(document).ready(function() { var handler = new BreakpointHandler(); handler.process(); // Top-level navigation. $(".BlogArchive .tab").click(function(ev) { ev.preventDefault(); $(this).parent().toggleClass('active'); $(this).siblings().slideToggle(300); }); $(".Label .tab").click(function(ev) { ev.preventDefault(); $(this).parent().toggleClass('active'); $(this).siblings().slideToggle(300); }); // Blog archive year expansion. $('.BlogArchive .intervalToggle').click(function(ev) { ev.preventDefault(); if ($(this).parent().hasClass('collapsed')) { $(this).parent().removeClass('collapsed'); $(this).parent().addClass('expanded'); } else { $(this).parent().removeClass('expanded'); $(this).parent().addClass('collapsed'); } }); // Reverse order of months. $('.BlogArchive .intervalToggle + div').each(function(_, items) { var year = $(this); year.children().each(function(_, month) { year.prepend(month); }); }); // Set anchors to open in new tab. $('.post-content img').parent().each(function(_, node) { if (node.nodeName == 'A') { $(this).attr('target', '_blank'); } }); // Process search requests. $('.searchBox input').on("keypress", function(ev) { if (ev.which == 13) { window.location.href = 'https://www.google.com/search?q=site%3A' + window.location.hostname + '%20' + encodeURIComponent ($(this).val()); } }); }); //]]> </script> <script type="text/javascript" src="https://www.blogger.com/static/v1/widgets/1704033933-widgets.js"></script> <script type='text/javascript'> window['__wavt'] = 'AOuZoY7DLpDT53zHxhXaQc9hC6rkfFy9yg:1740350097727';_WidgetManager._Init('//www.blogger.com/rearrange?blogID\x3d7815614485808579332','//ads-developers.googleblog.com/search/label/release','7815614485808579332'); _WidgetManager._SetDataContext([{'name': 'blog', 'data': {'blogId': '7815614485808579332', 'title': 'Google Ads Developer Blog', 'url': 'http://ads-developers.googleblog.com/search/label/release', 'canonicalUrl': 'http://ads-developers.googleblog.com/search/label/release', 'homepageUrl': 'http://ads-developers.googleblog.com/', 'searchUrl': 'http://ads-developers.googleblog.com/search', 'canonicalHomepageUrl': 'http://ads-developers.googleblog.com/', 'blogspotFaviconUrl': 'http://ads-developers.googleblog.com/favicon.ico', 'bloggerUrl': 'https://www.blogger.com', 'hasCustomDomain': true, 'httpsEnabled': false, 'enabledCommentProfileImages': true, 'gPlusViewType': 'FILTERED_POSTMOD', 'adultContent': false, 'analyticsAccountNumber': 'G-E4MSGF2SF9', 'analytics4': true, 'encoding': 'UTF-8', 'locale': 'en', 'localeUnderscoreDelimited': 'en', 'languageDirection': 'ltr', 'isPrivate': false, 'isMobile': false, 'isMobileRequest': false, 'mobileClass': '', 'isPrivateBlog': false, 'isDynamicViewsAvailable': true, 'feedLinks': '\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Google Ads Developer Blog - Atom\x22 href\x3d\x22http://ads-developers.googleblog.com/feeds/posts/default\x22 /\x3e\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/rss+xml\x22 title\x3d\x22Google Ads Developer Blog - RSS\x22 href\x3d\x22http://ads-developers.googleblog.com/feeds/posts/default?alt\x3drss\x22 /\x3e\n\x3clink rel\x3d\x22service.post\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Google Ads Developer Blog - Atom\x22 href\x3d\x22https://www.blogger.com/feeds/7815614485808579332/posts/default\x22 /\x3e\n', 'meTag': '', 'adsenseHostId': 'ca-host-pub-1556223355139109', 'adsenseHasAds': false, 'adsenseAutoAds': false, 'boqCommentIframeForm': true, 'loginRedirectParam': '', 'view': '', 'dynamicViewsCommentsSrc': '//www.blogblog.com/dynamicviews/4224c15c4e7c9321/js/comments.js', 'dynamicViewsScriptSrc': '//www.blogblog.com/dynamicviews/c320e3f9c6626331', 'plusOneApiSrc': 'https://apis.google.com/js/platform.js', 'disableGComments': true, 'interstitialAccepted': false, 'sharing': {'platforms': [{'name': 'Get link', 'key': 'link', 'shareMessage': 'Get link', 'target': ''}, {'name': 'Facebook', 'key': 'facebook', 'shareMessage': 'Share to Facebook', 'target': 'facebook'}, {'name': 'BlogThis!', 'key': 'blogThis', 'shareMessage': 'BlogThis!', 'target': 'blog'}, {'name': 'X', 'key': 'twitter', 'shareMessage': 'Share to X', 'target': 'twitter'}, {'name': 'Pinterest', 'key': 'pinterest', 'shareMessage': 'Share to Pinterest', 'target': 'pinterest'}, {'name': 'Email', 'key': 'email', 'shareMessage': 'Email', 'target': 'email'}], 'disableGooglePlus': true, 'googlePlusShareButtonWidth': 0, 'googlePlusBootstrap': '\x3cscript type\x3d\x22text/javascript\x22\x3ewindow.___gcfg \x3d {\x27lang\x27: \x27en\x27};\x3c/script\x3e'}, 'hasCustomJumpLinkMessage': false, 'jumpLinkMessage': 'Read more', 'pageType': 'index', 'searchLabel': 'release', 'pageName': 'release', 'pageTitle': 'Google Ads Developer Blog: release'}}, {'name': 'features', 'data': {}}, {'name': 'messages', 'data': {'edit': 'Edit', 'linkCopiedToClipboard': 'Link copied to clipboard!', 'ok': 'Ok', 'postLink': 'Post Link'}}, {'name': 'template', 'data': {'name': 'custom', 'localizedName': 'Custom', 'isResponsive': false, 'isAlternateRendering': false, 'isCustom': true}}, {'name': 'view', 'data': {'classic': {'name': 'classic', 'url': '?view\x3dclassic'}, 'flipcard': {'name': 'flipcard', 'url': '?view\x3dflipcard'}, 'magazine': {'name': 'magazine', 'url': '?view\x3dmagazine'}, 'mosaic': {'name': 'mosaic', 'url': '?view\x3dmosaic'}, 'sidebar': {'name': 'sidebar', 'url': '?view\x3dsidebar'}, 'snapshot': {'name': 'snapshot', 'url': '?view\x3dsnapshot'}, 'timeslide': {'name': 'timeslide', 'url': '?view\x3dtimeslide'}, 'isMobile': false, 'title': 'Google Ads Developer Blog', 'description': '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.', 'url': 'http://ads-developers.googleblog.com/search/label/release', 'type': 'feed', 'isSingleItem': false, 'isMultipleItems': true, 'isError': false, 'isPage': false, 'isPost': false, 'isHomepage': false, 'isArchive': false, 'isSearch': true, 'isLabelSearch': true, 'search': {'label': 'release', 'resultsMessage': 'Showing posts with the label release', 'resultsMessageHtml': 'Showing posts with the label \x3cspan class\x3d\x27search-label\x27\x3erelease\x3c/span\x3e'}}}]); _WidgetManager._RegisterWidget('_HeaderView', new _WidgetInfo('Header1', 'header', document.getElementById('Header1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogView', new _WidgetInfo('Blog1', 'main', document.getElementById('Blog1'), {'cmtInteractionsEnabled': false, 'navMessage': 'Showing posts with label \x3cb\x3erelease\x3c/b\x3e. \x3ca href\x3d\x22http://ads-developers.googleblog.com/\x22\x3eShow all posts\x3c/a\x3e', 'lightboxEnabled': true, 'lightboxModuleUrl': 'https://www.blogger.com/static/v1/jsbin/2332438401-lbx.js', 'lightboxCssUrl': 'https://www.blogger.com/static/v1/v-css/1964470060-lightbox_bundle.css'}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML8', 'sidebar-top', document.getElementById('HTML8'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_LabelView', new _WidgetInfo('Label1', 'sidebar', document.getElementById('Label1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogArchiveView', new _WidgetInfo('BlogArchive1', 'sidebar', document.getElementById('BlogArchive1'), {'languageDirection': 'ltr', 'loadingMessage': 'Loading\x26hellip;'}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML5', 'sidebar-bottom', document.getElementById('HTML5'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML7', 'sidebar-bottom', document.getElementById('HTML7'), {}, 'displayModeFull')); </script> </body> </html>