CINXE.COM
Google Ads Developer Blog: shopping
<!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: shopping </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/shopping' 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/shopping' 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/shopping' 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=e353f5ee-599a-48a0-be11-db3b2877c89f' media='none' onload='if(media!='all')media='all'' rel='stylesheet'/><noscript><link href='https://www.blogger.com/dyn-css/authorization.css?targetBlogID=7815614485808579332&zx=e353f5ee-599a-48a0-be11-db3b2877c89f' 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='764593027988524399' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2024/07/announcing-merchant-api-beta-new.html' itemprop='url' title='Announcing the Merchant API Beta, the new version of the Content API for Shopping'> Announcing the Merchant API Beta, the new version of the Content API for Shopping </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Tuesday, July 2, 2024 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> Today we're announcing the release of the Merchant API Beta. This is the newest version of the Content API for Shopping which comes with exciting new features. The Merchant API is a <a href="https://developers.google.com/merchant/api/design">redesign</a> of the <a href="https://developers.google.com/shopping-content/guides/quickstart">Content API for Shopping</a> which can help you showcase your products with new features, modular design with isolated sub-API updates, and improved alignment with <a href="https://google.aip.dev/">Google's API improvement proposals</a>. We invite you to try out the Merchant API Beta to provide early feedback so we can improve the Merchant API for you.<br /><br /> For more information, we highly recommend reviewing the <a href="https://developers.google.com/merchant/api/beta">launch status</a> for Merchant API Beta expectations and see the following sections.<br /><br /> <strong>Highlights</strong>:<br /> You can find a complete list of features in the release notes in the <a href="https://developers.google.com/merchant/api/reference/rpc">GRPC</a>/<a href="https://developers.google.com/merchant/api/reference/rest">REST</a> reference sections and accompanying <a href="https://developers.google.com/merchant/api/guides/compatibility/overview">compatibility guides</a>, but here are the highlights: <ul> <li><strong>Sub APIs with new features at launch</strong>: We are excited to announce an initial set of sub apis which comes with new features: <ul> <li><a href="https://developers.google.com/merchant/api/guides/data-sources/overview">Data Sources</a>: Allows multiple API feed creation and management, improved management of supplemental feeds via creation with linking to primary feeds, and support for other shopping feeds such as promotions.</li> <li><a href="https://developers.google.com/merchant/api/guides/accounts/notifications">Notifications</a>: Receive push notifications for changes to a given account and product data.</li> <li><a href="https://developers.google.com/merchant/api/guides/products/overview">Products</a>: Unifying Product & ProductStatuses resources to streamline your workflow, new functionality to support inserting products into non API data sources.</li> <li><a href="https://developers.google.com/merchant/api/guides/inventories/overview">Inventory</a>: Improved management with the ability to remove in-store or regional inventories for your products.</li> <li><a href="https://developers.google.com/merchant/api/guides/accounts/overview">Accounts</a>: New terms of signing (ToS) functionality via the API and accessing account issues with multi-language support.</li> <li><a href="https://developers.google.com/merchant/api/guides/local-feeds-partnership/overview">Local Feeds Partnership</a>: For Point-of-sale data providers, more granular inventory management with availability status submissions and feed labels for inventory.</li> <li><a href="https://developers.google.com/merchant/api/guides/promotions/overview">Promotions</a>: Simplified promotion statuses with improved details and support for custom promotion attributes for faster iterations on new features.</li> <li><a href="https://developers.google.com/merchant/api/reference/rest/quota_v1beta/accounts.quotas">Quota</a>: Additional fields such as version, sub-api, and adjustments visible through the API to manage your quotas more efficiently.</li> <li><a href="https://developers.google.com/merchant/api/guides/reports/overview">Reports</a>: A new <a href="https://developers.google.com/merchant/api/reference/rest/reports_v1beta/accounts.reports/search#nonproductperformanceview"><code>NonProductPerformanceView</code> </a>table which provides insights into non-product performance data such as data on links leading to merchants’ homepage.</li> </ul></li> <li><strong>Merchant API is the future.</strong> Going forward, we will start launching new features primarily for the Merchant API which will have the newest Merchant Center features. We recommend you start using the Merchant API and would love to hear your <a href="https://developers.google.com/merchant/api/support/give-feedback">feedback</a> to help shape the future.</li> <li><strong>More features are on the way!</strong> Today's release contains many new improvements. Currently, there isn’t feature completeness between the Content API and Merchant API. We will have more features upcoming which are based on establishing parity, your feedback, and completely new features such as creation of file feeds with the Data source Merchant API.</li> </ul> <strong>Learn more and check out the following resources:</strong><br /> <ul> <li><strong>Access our <a href="https://developers.google.com/merchant/api">Merchant API developer website</a></strong> to discover the Merchant API.</li> <li><strong>Review our <a href="https://developers.google.com/merchant/api/guides/quickstart">Quickstart guide</a> and <a href="https://developers.google.com/merchant/api/guides/compatibility/overview">Compatibility guides</a>:</strong> to ramp up your understanding with how to start your integration with the Merchant API.</li> <li><strong>Learn more with our Merchant API release notes in the <a href="https://developers.google.com/merchant/api/reference/rpc">GRPC</a>/<a href="https://developers.google.com/merchant/api/reference/rest">REST</a> reference sections</strong> to view our launched and future new features.</li> <li><strong>Check out our new <a href="https://developers.google.com/merchant/api/client-libraries">Client Libraries</a> and <a href="https://developers.google.com/merchant/api/samples">Samples</a></strong> to help speed up your implementations.</li> <li><strong>Contact our <a href="https://developers.google.com/merchant/api/support/get-help">API support team</a></strong> for any issues or questions.</li> <li><strong>Help shape the future by providing <a href="https://developers.google.com/merchant/api/support/give-feedback">feedback</a>:</strong> Submit any feedback or suggestions.</li> </ul> <span class='byline-author'><img height="40" src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXf_gvy82s0THisEmh8pYMM3g5b4L7jqV0Ew6GCMcolfQZbSbNKtJ3wDLduDw922ut_XFTvboUuOJjrSmigL_tH47hMSvZIF-rMURSs64VP_zoPa89EL5EMa0jGVnOPTAd37NB8JS96iCeXEAOvAQ0MHIjIL?key=kInw3r0AYV0vhktcaZdCEQ" style="vertical-align: middle; border:none;" width="40"/> Benji Rothman, on behalf of the Content API for Shopping 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 release of the Merchant API Beta. This is the newest version of the Content API for Shopping which comes with exciting new features. The Merchant API is a <a href="https://developers.google.com/merchant/api/design">redesign</a> of the <a href="https://developers.google.com/shopping-content/guides/quickstart">Content API for Shopping</a> which can help you showcase your products with new features, modular design with isolated sub-API updates, and improved alignment with <a href="https://google.aip.dev/">Google's API improvement proposals</a>. We invite you to try out the Merchant API Beta to provide early feedback so we can improve the Merchant API for you.<br /><br /> For more information, we highly recommend reviewing the <a href="https://developers.google.com/merchant/api/beta">launch status</a> for Merchant API Beta expectations and see the following sections.<br /><br /> <strong>Highlights</strong>:<br /> You can find a complete list of features in the release notes in the <a href="https://developers.google.com/merchant/api/reference/rpc">GRPC</a>/<a href="https://developers.google.com/merchant/api/reference/rest">REST</a> reference sections and accompanying <a href="https://developers.google.com/merchant/api/guides/compatibility/overview">compatibility guides</a>, but here are the highlights: <ul> <li><strong>Sub APIs with new features at launch</strong>: We are excited to announce an initial set of sub apis which comes with new features: <ul> <li><a href="https://developers.google.com/merchant/api/guides/data-sources/overview">Data Sources</a>: Allows multiple API feed creation and management, improved management of supplemental feeds via creation with linking to primary feeds, and support for other shopping feeds such as promotions.</li> <li><a href="https://developers.google.com/merchant/api/guides/accounts/notifications">Notifications</a>: Receive push notifications for changes to a given account and product data.</li> <li><a href="https://developers.google.com/merchant/api/guides/products/overview">Products</a>: Unifying Product & ProductStatuses resources to streamline your workflow, new functionality to support inserting products into non API data sources.</li> <li><a href="https://developers.google.com/merchant/api/guides/inventories/overview">Inventory</a>: Improved management with the ability to remove in-store or regional inventories for your products.</li> <li><a href="https://developers.google.com/merchant/api/guides/accounts/overview">Accounts</a>: New terms of signing (ToS) functionality via the API and accessing account issues with multi-language support.</li> <li><a href="https://developers.google.com/merchant/api/guides/local-feeds-partnership/overview">Local Feeds Partnership</a>: For Point-of-sale data providers, more granular inventory management with availability status submissions and feed labels for inventory.</li> <li><a href="https://developers.google.com/merchant/api/guides/promotions/overview">Promotions</a>: Simplified promotion statuses with improved details and support for custom promotion attributes for faster iterations on new features.</li> <li><a href="https://developers.google.com/merchant/api/reference/rest/quota_v1beta/accounts.quotas">Quota</a>: Additional fields such as version, sub-api, and adjustments visible through the API to manage your quotas more efficiently.</li> <li><a href="https://developers.google.com/merchant/api/guides/reports/overview">Reports</a>: A new <a href="https://developers.google.com/merchant/api/reference/rest/reports_v1beta/accounts.reports/search#nonproductperformanceview"><code>NonProductPerformanceView</code> </a>table which provides insights into non-product performance data such as data on links leading to merchants’ homepage.</li> </ul></li> <li><strong>Merchant API is the future.</strong> Going forward, we will start launching new features primarily for the Merchant API which will have the newest Merchant Center features. We recommend you start using the Merchant API and would love to hear your <a href="https://developers.google.com/merchant/api/support/give-feedback">feedback</a> to help shape the future.</li> <li><strong>More features are on the way!</strong> Today's release contains many new improvements. Currently, there isn’t feature completeness between the Content API and Merchant API. We will have more features upcoming which are based on establishing parity, your feedback, and completely new features such as creation of file feeds with the Data source Merchant API.</li> </ul> <strong>Learn more and check out the following resources:</strong><br /> <ul> <li><strong>Access our <a href="https://developers.google.com/merchant/api">Merchant API developer website</a></strong> to discover the Merchant API.</li> <li><strong>Review our <a href="https://developers.google.com/merchant/api/guides/quickstart">Quickstart guide</a> and <a href="https://developers.google.com/merchant/api/guides/compatibility/overview">Compatibility guides</a>:</strong> to ramp up your understanding with how to start your integration with the Merchant API.</li> <li><strong>Learn more with our Merchant API release notes in the <a href="https://developers.google.com/merchant/api/reference/rpc">GRPC</a>/<a href="https://developers.google.com/merchant/api/reference/rest">REST</a> reference sections</strong> to view our launched and future new features.</li> <li><strong>Check out our new <a href="https://developers.google.com/merchant/api/client-libraries">Client Libraries</a> and <a href="https://developers.google.com/merchant/api/samples">Samples</a></strong> to help speed up your implementations.</li> <li><strong>Contact our <a href="https://developers.google.com/merchant/api/support/get-help">API support team</a></strong> for any issues or questions.</li> <li><strong>Help shape the future by providing <a href="https://developers.google.com/merchant/api/support/give-feedback">feedback</a>:</strong> Submit any feedback or suggestions.</li> </ul> <span class='byline-author'><img height="40" src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXf_gvy82s0THisEmh8pYMM3g5b4L7jqV0Ew6GCMcolfQZbSbNKtJ3wDLduDw922ut_XFTvboUuOJjrSmigL_tH47hMSvZIF-rMURSs64VP_zoPa89EL5EMa0jGVnOPTAd37NB8JS96iCeXEAOvAQ0MHIjIL?key=kInw3r0AYV0vhktcaZdCEQ" style="vertical-align: middle; border:none;" width="40"/> Benji Rothman, on behalf of the Content API for Shopping 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 the Merchant API Beta, the new version of the Content API for Shopping&url=http://ads-developers.googleblog.com/2024/07/announcing-merchant-api-beta-new.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/07/announcing-merchant-api-beta-new.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/07/announcing-merchant-api-beta-new.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/content_api' rel='tag'> content_api </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/merchant_api' rel='tag'> merchant_api </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/shopping' rel='tag'> shopping </a> </span> </div> </div> </div> <div class='post' data-id='7195526752209904121' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2024/06/changes-to-how-you-contact-content-api.html' itemprop='url' title='Changes to how you contact “Content API for Shopping” Support'> Changes to how you contact “Content API for Shopping” Support </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Monday, June 10, 2024 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <h1>What's Happening?</h1> <p> As we continue to improve our support experience, we are making changes to how you contact the <a href="https://developers.google.com/shopping-content/guides/quickstart">Content API for Shopping</a> support team. </p> <h1>What's Changing?</h1> <p> How you contact “Content API for Shopping” Support: </p> <ul> <li><strong>Shutting down current support path: </strong>Effective June 10, 2024, the support email address (shopping-api-support) and the Developer Forum will no longer accept support questions.</li> <li><strong>New support paths: </strong> <ul> <li>To reach our “<strong>Content API for Shopping</strong>” support team, please use our new Contact Us Form: <strong> <a href="https://support.google.com/merchants/contact/shopping_api_support_form">link here</a></strong> <li>To reach our "<strong>Comparison Shopping Services API</strong>" support team, please use this Contact Us Form: <strong> <a href="https://support.google.com/css-center/gethelp?sjid=4617445559073231042-NC&visit_id=638490488493649176-1578250970&rd=2">link here</a></strong> <li>Going forward, these will be the only support paths available.</li> </ul> </li> </ul> <p> This change will help us better understand user needs and provide quicker solutions. We appreciate your partnership. </p> <p> In the meantime, please reference the following sites for integration/API information: </p><ul> <li><a href="https://developers.google.com/shopping-content">Content API for Shopping</a> <li><a href="https://developers.google.com/google-ads/api">Google Ads API </a> <li><a href="https://developers.google.com/comparison-shopping-services/api">Comparison Shopping Services API</a></li></ul> <p> Your Content API for Shopping Team </p> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> <h1>What's Happening?</h1> <p> As we continue to improve our support experience, we are making changes to how you contact the <a href="https://developers.google.com/shopping-content/guides/quickstart">Content API for Shopping</a> support team. </p> <h1>What's Changing?</h1> <p> How you contact “Content API for Shopping” Support: </p> <ul> <li><strong>Shutting down current support path: </strong>Effective June 10, 2024, the support email address (shopping-api-support) and the Developer Forum will no longer accept support questions.</li> <li><strong>New support paths: </strong> <ul> <li>To reach our “<strong>Content API for Shopping</strong>” support team, please use our new Contact Us Form: <strong> <a href="https://support.google.com/merchants/contact/shopping_api_support_form">link here</a></strong> <li>To reach our "<strong>Comparison Shopping Services API</strong>" support team, please use this Contact Us Form: <strong> <a href="https://support.google.com/css-center/gethelp?sjid=4617445559073231042-NC&visit_id=638490488493649176-1578250970&rd=2">link here</a></strong> <li>Going forward, these will be the only support paths available.</li> </ul> </li> </ul> <p> This change will help us better understand user needs and provide quicker solutions. We appreciate your partnership. </p> <p> In the meantime, please reference the following sites for integration/API information: </p><ul> <li><a href="https://developers.google.com/shopping-content">Content API for Shopping</a> <li><a href="https://developers.google.com/google-ads/api">Google Ads API </a> <li><a href="https://developers.google.com/comparison-shopping-services/api">Comparison Shopping Services API</a></li></ul> <p> Your Content API for Shopping Team </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:Changes to how you contact “Content API for Shopping” Support&url=http://ads-developers.googleblog.com/2024/06/changes-to-how-you-contact-content-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/changes-to-how-you-contact-content-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/changes-to-how-you-contact-content-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/content_api' rel='tag'> content_api </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/shopping' rel='tag'> shopping </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='977945199232090677' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2024/04/content-api-for-shopping-automatic-quota.html' itemprop='url' title='Content API for Shopping: Automatic Quota'> Content API for Shopping: Automatic Quota </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Tuesday, April 2, 2024 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <p> The Content API for Shopping now automatically increases your <code>products</code> and <code>accounts</code> quotas as your account grows. </p> <p> Because your API quota now changes dynamically, we have removed the static chart from our <a href="https://developers.google.com/shopping-content/guides/limits">published limits guide</a>. To check your current daily quota and usage, and current per minute quota, you can call the <code><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/quotas/list">quotas.list</a></code> service. <p> The following errors are not API quota errors and can’t be resolved by automatic quota increases. They require you to <a href="https://support.google.com/merchants/contact/additional_items">request a quota increase</a>. </p><ul> <li><code>too_many_items: Merchant quota exceeded</code> <li><code>too_many_subaccounts: Maximum number of subaccounts reached</code></li></ul> <p> Automatic quota only applies to the <code>products</code> and <code>accounts</code> services. If you need an increased API quota for any other service, or if you’re hitting your daily API quota for the products or accounts services or need a temporary increase for the <code>accounts</code> or <code>products</code> services, <a href="mailto:shopping-api-support@google.com">contact us</a> with the following information: </p><ul> <li>Your Merchant Center ID <li>Which methods you’ve reached your quota limits on <li>An estimation of how many calls per day you need for those methods <li>The reason why you need an increased quota</li></ul> <p> Note that our general <a href="https://developers.google.com/shopping-content/guides/limits#quota_policy">quota policy</a> is you should not update your products more than twice per day, and that you should check your accounts and account statuses not more than once per day. </p> <p> If you have any questions or concerns, please don't hesitate to contact us via the <a href="https://groups.google.com/g/google-content-api-for-shopping">forum</a>. </p> <span class='byline-author'><img height="40" src="https://lh6.googleusercontent.com/3UR5v4kdd7GrfXL7qxf9q5dUhvFCuGpErSk9b_VLFBrxtt2a8nNB4ka6wnxAjf_cESedQlAsF96iW-aNPGDANC2e0PMddceUlVVty7QfxD9qtapM1fRdGnU3qhDOEEQgXuJoQ3qaGumt7JfWD4wEcLsY" style="vertical-align: middle; border:none;" width="40"/> Benji Rothman, Content API for Shopping 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> The Content API for Shopping now automatically increases your <code>products</code> and <code>accounts</code> quotas as your account grows. </p> <p> Because your API quota now changes dynamically, we have removed the static chart from our <a href="https://developers.google.com/shopping-content/guides/limits">published limits guide</a>. To check your current daily quota and usage, and current per minute quota, you can call the <code><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/quotas/list">quotas.list</a></code> service. <p> The following errors are not API quota errors and can’t be resolved by automatic quota increases. They require you to <a href="https://support.google.com/merchants/contact/additional_items">request a quota increase</a>. </p><ul> <li><code>too_many_items: Merchant quota exceeded</code> <li><code>too_many_subaccounts: Maximum number of subaccounts reached</code></li></ul> <p> Automatic quota only applies to the <code>products</code> and <code>accounts</code> services. If you need an increased API quota for any other service, or if you’re hitting your daily API quota for the products or accounts services or need a temporary increase for the <code>accounts</code> or <code>products</code> services, <a href="mailto:shopping-api-support@google.com">contact us</a> with the following information: </p><ul> <li>Your Merchant Center ID <li>Which methods you’ve reached your quota limits on <li>An estimation of how many calls per day you need for those methods <li>The reason why you need an increased quota</li></ul> <p> Note that our general <a href="https://developers.google.com/shopping-content/guides/limits#quota_policy">quota policy</a> is you should not update your products more than twice per day, and that you should check your accounts and account statuses not more than once per day. </p> <p> If you have any questions or concerns, please don't hesitate to contact us via the <a href="https://groups.google.com/g/google-content-api-for-shopping">forum</a>. </p> <span class='byline-author'><img height="40" src="https://lh6.googleusercontent.com/3UR5v4kdd7GrfXL7qxf9q5dUhvFCuGpErSk9b_VLFBrxtt2a8nNB4ka6wnxAjf_cESedQlAsF96iW-aNPGDANC2e0PMddceUlVVty7QfxD9qtapM1fRdGnU3qhDOEEQgXuJoQ3qaGumt7JfWD4wEcLsY" style="vertical-align: middle; border:none;" width="40"/> Benji Rothman, Content API for Shopping 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:Content API for Shopping: Automatic Quota&url=http://ads-developers.googleblog.com/2024/04/content-api-for-shopping-automatic-quota.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/content-api-for-shopping-automatic-quota.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/content-api-for-shopping-automatic-quota.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/content_api' rel='tag'> content_api </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/shopping' rel='tag'> shopping </a> </span> </div> </div> </div> <div class='post' data-id='7781661213005531127' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2024/02/updates-errors-when-linking-merchant.html' itemprop='url' title='Updates: Errors when linking Merchant Center accounts with Google Ads API'> Updates: Errors when linking Merchant Center accounts with Google Ads API </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Friday, February 23, 2024 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <p> <strong>What happened?</strong> </p> <p> For developers linking <a href="http://merchants.google.com">Merchant Center</a> accounts to Google Ads using <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/overview">Google Ads API v14</a>, there was an issue from <strong>04:00 PST Monday, Feb 19 </strong>to<strong> 08:00 PST Tuesday, Feb 20</strong> that caused some requests to the <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/MerchantCenterLinkService#mutatemerchantcenterlink">MutateMerchantCenterLink</a> method of <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/MerchantCenterLinkService">MerchantCenterLinkService</a> to return <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/MutateErrorEnum.MutateError#resource_not_found">MutateError.RESOURCE_NOT_FOUND</a>. Also calls to <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/MerchantCenterLinkService#listmerchantcenterlinks">ListMerchantCenterLinks</a> may not have returned some <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/MerchantCenterLink">MerchantCenterLinks</a> with link status <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/MerchantCenterLinkStatusEnum.MerchantCenterLinkStatus">PENDING</a>. </p> <p> <strong>What should I do?</strong> </p> <p> If you use <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/overview">Google Ads API v14</a> to link Merchant Center accounts to Google Ads accounts using <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/MerchantCenterLinkService">MerchantCenterLinkService</a>, you should check to see if you have accounts that have pending link requests during the period of time described above. <strong>This issue has now been resolved and you may retry the failed calls</strong> to complete the linking of Merchant Center accounts. Also check <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/MerchantCenterLinkService#listmerchantcenterlinks">ListMerchantCenterLinks</a> for accounts with link status <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/MerchantCenterLinkStatusEnum.MerchantCenterLinkStatus">PENDING</a>. Some of these link requests may not have previously been returned during that time period. </p> <p> <strong>How to get help</strong> </p> <p> If you have any questions or need help, check out the Google Ads API <a href="https://developers.google.com/google-ads/api/support">support page</a> for options. </p> <span class='byline-author'><img height="40" src="https://lh5.googleusercontent.com/DDE180jto6tcgXfgP8OUY-mE6P57Zpll9sZ8d1WDzi98Yfa0ZIsMFtg4RI-XDuwszxfcd58rPtmss-jzzFkdLdTS6cKlMX0mZi5SFUe8uYi2c0x4VTSEpFNO8fcd6b6WBVpGxbC6rA" style="vertical-align: middle; border:none;" width="40"/> Ian Ballantyne, 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> <strong>What happened?</strong> </p> <p> For developers linking <a href="http://merchants.google.com">Merchant Center</a> accounts to Google Ads using <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/overview">Google Ads API v14</a>, there was an issue from <strong>04:00 PST Monday, Feb 19 </strong>to<strong> 08:00 PST Tuesday, Feb 20</strong> that caused some requests to the <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/MerchantCenterLinkService#mutatemerchantcenterlink">MutateMerchantCenterLink</a> method of <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/MerchantCenterLinkService">MerchantCenterLinkService</a> to return <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/MutateErrorEnum.MutateError#resource_not_found">MutateError.RESOURCE_NOT_FOUND</a>. Also calls to <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/MerchantCenterLinkService#listmerchantcenterlinks">ListMerchantCenterLinks</a> may not have returned some <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/MerchantCenterLink">MerchantCenterLinks</a> with link status <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/MerchantCenterLinkStatusEnum.MerchantCenterLinkStatus">PENDING</a>. </p> <p> <strong>What should I do?</strong> </p> <p> If you use <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/overview">Google Ads API v14</a> to link Merchant Center accounts to Google Ads accounts using <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/MerchantCenterLinkService">MerchantCenterLinkService</a>, you should check to see if you have accounts that have pending link requests during the period of time described above. <strong>This issue has now been resolved and you may retry the failed calls</strong> to complete the linking of Merchant Center accounts. Also check <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/MerchantCenterLinkService#listmerchantcenterlinks">ListMerchantCenterLinks</a> for accounts with link status <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/MerchantCenterLinkStatusEnum.MerchantCenterLinkStatus">PENDING</a>. Some of these link requests may not have previously been returned during that time period. </p> <p> <strong>How to get help</strong> </p> <p> If you have any questions or need help, check out the Google Ads API <a href="https://developers.google.com/google-ads/api/support">support page</a> for options. </p> <span class='byline-author'><img height="40" src="https://lh5.googleusercontent.com/DDE180jto6tcgXfgP8OUY-mE6P57Zpll9sZ8d1WDzi98Yfa0ZIsMFtg4RI-XDuwszxfcd58rPtmss-jzzFkdLdTS6cKlMX0mZi5SFUe8uYi2c0x4VTSEpFNO8fcd6b6WBVpGxbC6rA" style="vertical-align: middle; border:none;" width="40"/> Ian Ballantyne, 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:Updates: Errors when linking Merchant Center accounts with Google Ads API&url=http://ads-developers.googleblog.com/2024/02/updates-errors-when-linking-merchant.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/updates-errors-when-linking-merchant.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/updates-errors-when-linking-merchant.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/account_management' rel='tag'> account_management </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/google_ads' rel='tag'> google_ads </a> , <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/shopping' rel='tag'> shopping </a> </span> </div> </div> </div> <div class='post' data-id='8838656274177244731' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2023/12/deprecating-content-api-easy-onboarding.html' itemprop='url' title='Deprecating Content API Easy Onboarding In Merchant Center'> Deprecating Content API Easy Onboarding In Merchant Center </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Wednesday, December 13, 2023 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <p> The Content API for Shopping easy onboarding authentication method and tab, which create a service account for you, will not be available in <a href="https://support.google.com/merchants/answer/13863814">Merchant Center Next</a>. Easy onboarding is still available in Merchant Center Classic. </p> <p> You can still use existing service accounts that you created using Merchant Center Classic. To set up a service account without using easy onboarding in Merchant Center Classic, follow these steps: </p><ol> <li>Ensure you have an existing cloud project or create a new one in the <a href="https://console.cloud.google.com/apis/library">Google Cloud Console</a>. <li>Generate or access your service account credentials. <li>Download the <a href="https://developers.google.com/workspace/guides/create-credentials#create_credentials_for_a_service_account">JSON private key</a> from Google API Console. This JSON private key can be used in the same way as the one downloaded from Merchant Center previously. <li>Add the new service account as a user to your Merchant Center account. <strong>If you’re a third-party developer (and don’t have access to the Merchant Center UI for the account), your client will need to complete this step for you.</strong> </li></ol> <p> For more details, see the <a href="https://developers.google.com/shopping-content/guides/how-tos/service-accounts#steps">API documentation</a>. </p> <p> If you have any questions or concerns, please don't hesitate to contact us via the <a href="https://groups.google.com/g/google-content-api-for-shopping">forum</a>. </p> <span class='byline-author'><img height="40" src="https://lh6.googleusercontent.com/3UR5v4kdd7GrfXL7qxf9q5dUhvFCuGpErSk9b_VLFBrxtt2a8nNB4ka6wnxAjf_cESedQlAsF96iW-aNPGDANC2e0PMddceUlVVty7QfxD9qtapM1fRdGnU3qhDOEEQgXuJoQ3qaGumt7JfWD4wEcLsY" style="vertical-align: middle; border:none;" width="40"/> Benji Rothman, Content API for Shopping 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> The Content API for Shopping easy onboarding authentication method and tab, which create a service account for you, will not be available in <a href="https://support.google.com/merchants/answer/13863814">Merchant Center Next</a>. Easy onboarding is still available in Merchant Center Classic. </p> <p> You can still use existing service accounts that you created using Merchant Center Classic. To set up a service account without using easy onboarding in Merchant Center Classic, follow these steps: </p><ol> <li>Ensure you have an existing cloud project or create a new one in the <a href="https://console.cloud.google.com/apis/library">Google Cloud Console</a>. <li>Generate or access your service account credentials. <li>Download the <a href="https://developers.google.com/workspace/guides/create-credentials#create_credentials_for_a_service_account">JSON private key</a> from Google API Console. This JSON private key can be used in the same way as the one downloaded from Merchant Center previously. <li>Add the new service account as a user to your Merchant Center account. <strong>If you’re a third-party developer (and don’t have access to the Merchant Center UI for the account), your client will need to complete this step for you.</strong> </li></ol> <p> For more details, see the <a href="https://developers.google.com/shopping-content/guides/how-tos/service-accounts#steps">API documentation</a>. </p> <p> If you have any questions or concerns, please don't hesitate to contact us via the <a href="https://groups.google.com/g/google-content-api-for-shopping">forum</a>. </p> <span class='byline-author'><img height="40" src="https://lh6.googleusercontent.com/3UR5v4kdd7GrfXL7qxf9q5dUhvFCuGpErSk9b_VLFBrxtt2a8nNB4ka6wnxAjf_cESedQlAsF96iW-aNPGDANC2e0PMddceUlVVty7QfxD9qtapM1fRdGnU3qhDOEEQgXuJoQ3qaGumt7JfWD4wEcLsY" style="vertical-align: middle; border:none;" width="40"/> Benji Rothman, Content API for Shopping 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:Deprecating Content API Easy Onboarding In Merchant Center&url=http://ads-developers.googleblog.com/2023/12/deprecating-content-api-easy-onboarding.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/12/deprecating-content-api-easy-onboarding.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/12/deprecating-content-api-easy-onboarding.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/content_api' rel='tag'> content_api </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/shopping' rel='tag'> shopping </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='5517709186956877504' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2023/09/buy-on-google-for-search-and-shopping.html' itemprop='url' title='Buy on Google For Search and Shopping Deprecation'> Buy on Google For Search and Shopping Deprecation </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Wednesday, September 20, 2023 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <p> <strong>Buy on Google for Search and Shopping will no longer be available starting September 26, 2023</strong>. All Merchant and Consumer support will end for Buy on Google on Search on November 25, 2023. <strong>The only exception is that the <code>orders.get</code> and <code>orders.list</code> methods will remain available for Search and Shopping until October 30, 2024, so that merchants can download their historical order data. </strong> <p> See below for the specific timeline of when Buy on Google methods will no longer be available for the Search and Shopping program. </p> <p> <strong>June 28, 2023</strong> onwards: </p><ul> <li><code><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/buyongoogleprograms/requestreview">buyongoogleprograms.requestreview</a></code> <li><code><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/buyongoogleprograms/onboard">buyongoogleprograms.onboard</a></code> <li><code><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/buyongoogleprograms/activate">buyongoogleprograms.activate</a></code> <li><code><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/buyongoogleprograms/pause">buyongoogleprograms.pause</a></code> </li></ul> <p> <strong>September 30, 2023</strong>: </p><ul> <li><code><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/buyongoogleprograms/get">buyongoogleprograms.get</a></code> <li><code><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/buyongoogleprograms/patch">buyongoogleprograms.patch</a></code></li></ul> <p> <strong>October 31, 2023</strong>: </p> <p> All the <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/orders">orders</a> related resources (<code>orders</code>, <code>orderinvoices</code>, <code>orderreports</code>, <code>orderreturns,</code> <code>ordertrackingsignals</code>) and all their underlying methods. The only exception is that the <code>orders.get</code> and <code>orders.list</code> methods will remain available for Search and Shopping until October 30, 2024, so that merchants can download their historical order data. </p> <p> If you are currently using the Buy on Google endpoints for Search and Shopping via the Content API, you will need to stop using these services for Search and Shopping before the dates listed above, as your requests will start to fail after that date. </p> <p> If you have any questions or concerns, please don't hesitate to contact us via the <a href="https://groups.google.com/g/google-content-api-for-shopping">forum</a>. </p> <span class='byline-author'><img height="40" src="https://lh6.googleusercontent.com/3UR5v4kdd7GrfXL7qxf9q5dUhvFCuGpErSk9b_VLFBrxtt2a8nNB4ka6wnxAjf_cESedQlAsF96iW-aNPGDANC2e0PMddceUlVVty7QfxD9qtapM1fRdGnU3qhDOEEQgXuJoQ3qaGumt7JfWD4wEcLsY" style="vertical-align: middle; border:none;" width="40"/> Benji Rothman, Content API for Shopping 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> <strong>Buy on Google for Search and Shopping will no longer be available starting September 26, 2023</strong>. All Merchant and Consumer support will end for Buy on Google on Search on November 25, 2023. <strong>The only exception is that the <code>orders.get</code> and <code>orders.list</code> methods will remain available for Search and Shopping until October 30, 2024, so that merchants can download their historical order data. </strong> <p> See below for the specific timeline of when Buy on Google methods will no longer be available for the Search and Shopping program. </p> <p> <strong>June 28, 2023</strong> onwards: </p><ul> <li><code><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/buyongoogleprograms/requestreview">buyongoogleprograms.requestreview</a></code> <li><code><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/buyongoogleprograms/onboard">buyongoogleprograms.onboard</a></code> <li><code><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/buyongoogleprograms/activate">buyongoogleprograms.activate</a></code> <li><code><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/buyongoogleprograms/pause">buyongoogleprograms.pause</a></code> </li></ul> <p> <strong>September 30, 2023</strong>: </p><ul> <li><code><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/buyongoogleprograms/get">buyongoogleprograms.get</a></code> <li><code><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/buyongoogleprograms/patch">buyongoogleprograms.patch</a></code></li></ul> <p> <strong>October 31, 2023</strong>: </p> <p> All the <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/orders">orders</a> related resources (<code>orders</code>, <code>orderinvoices</code>, <code>orderreports</code>, <code>orderreturns,</code> <code>ordertrackingsignals</code>) and all their underlying methods. The only exception is that the <code>orders.get</code> and <code>orders.list</code> methods will remain available for Search and Shopping until October 30, 2024, so that merchants can download their historical order data. </p> <p> If you are currently using the Buy on Google endpoints for Search and Shopping via the Content API, you will need to stop using these services for Search and Shopping before the dates listed above, as your requests will start to fail after that date. </p> <p> If you have any questions or concerns, please don't hesitate to contact us via the <a href="https://groups.google.com/g/google-content-api-for-shopping">forum</a>. </p> <span class='byline-author'><img height="40" src="https://lh6.googleusercontent.com/3UR5v4kdd7GrfXL7qxf9q5dUhvFCuGpErSk9b_VLFBrxtt2a8nNB4ka6wnxAjf_cESedQlAsF96iW-aNPGDANC2e0PMddceUlVVty7QfxD9qtapM1fRdGnU3qhDOEEQgXuJoQ3qaGumt7JfWD4wEcLsY" style="vertical-align: middle; border:none;" width="40"/> Benji Rothman, Content API for Shopping 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:Buy on Google For Search and Shopping Deprecation&url=http://ads-developers.googleblog.com/2023/09/buy-on-google-for-search-and-shopping.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/09/buy-on-google-for-search-and-shopping.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/09/buy-on-google-for-search-and-shopping.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/content_api' rel='tag'> content_api </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/shopping' rel='tag'> shopping </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='4527588757005663246' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2023/09/planned-content-api-maintenance-from.html' itemprop='url' title='Planned Content API maintenance from 15:00 UTC to 17:00 UTC on September 28, 2023'> Planned Content API maintenance from 15:00 UTC to 17:00 UTC on September 28, 2023 </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Thursday, September 14, 2023 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <strong>The Content API for Shopping will undergo planned maintenance on September 28, 2023, from 15:00 to 17:00 UTC.</strong><br /><br /> During this time, you will not be able to make any changes to your account such as updates to users, business information, feeds, shipping details, or linking your Google Ads accounts.<br /><br /> You can still upload products to your existing feeds or data sources and run ads as usual.<br /><br /> Note that the Google Ads API is also affected by this outage, as you will not be able to link MC accounts and Google Ads accounts together via the Google Ads API during this time period.<br /><br /> If you have any questions or concerns, please don't hesitate to contact us via the <a href="https://groups.google.com/g/google-content-api-for-shopping">forum</a>.<br /> <span class='byline-author'><img height="40" src="https://lh6.googleusercontent.com/3UR5v4kdd7GrfXL7qxf9q5dUhvFCuGpErSk9b_VLFBrxtt2a8nNB4ka6wnxAjf_cESedQlAsF96iW-aNPGDANC2e0PMddceUlVVty7QfxD9qtapM1fRdGnU3qhDOEEQgXuJoQ3qaGumt7JfWD4wEcLsY" style="vertical-align: middle; border:none;" width="40"/> Benji Rothman, Content API for Shopping Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> <strong>The Content API for Shopping will undergo planned maintenance on September 28, 2023, from 15:00 to 17:00 UTC.</strong><br /><br /> During this time, you will not be able to make any changes to your account such as updates to users, business information, feeds, shipping details, or linking your Google Ads accounts.<br /><br /> You can still upload products to your existing feeds or data sources and run ads as usual.<br /><br /> Note that the Google Ads API is also affected by this outage, as you will not be able to link MC accounts and Google Ads accounts together via the Google Ads API during this time period.<br /><br /> If you have any questions or concerns, please don't hesitate to contact us via the <a href="https://groups.google.com/g/google-content-api-for-shopping">forum</a>.<br /> <span class='byline-author'><img height="40" src="https://lh6.googleusercontent.com/3UR5v4kdd7GrfXL7qxf9q5dUhvFCuGpErSk9b_VLFBrxtt2a8nNB4ka6wnxAjf_cESedQlAsF96iW-aNPGDANC2e0PMddceUlVVty7QfxD9qtapM1fRdGnU3qhDOEEQgXuJoQ3qaGumt7JfWD4wEcLsY" style="vertical-align: middle; border:none;" width="40"/> Benji Rothman, Content API for Shopping 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:Planned Content API maintenance from 15:00 UTC to 17:00 UTC on September 28, 2023&url=http://ads-developers.googleblog.com/2023/09/planned-content-api-maintenance-from.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/09/planned-content-api-maintenance-from.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/09/planned-content-api-maintenance-from.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/content_api' rel='tag'> content_api </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/shopping' rel='tag'> shopping </a> </span> </div> </div> </div> <div class='post' data-id='3809934018281461255' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2023/08/launching-merchant-support-service.html' itemprop='url' title='Launching the Merchant Support Service'> Launching the Merchant Support Service </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Thursday, August 24, 2023 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> On August 23rd, 2023, we introduced new features in the <a href="https://developers.google.com/shopping-content/guides/quickstart">Content API for Shopping</a> to help you display detailed information about product and account issues to your merchants, and enable those merchants to request re-review or perform other actions. The new <code>MerchantSupport</code> service provides more transparency about our policy-related requirements to your merchants. These methods should be used for merchants based in the EEA, but can be used globally.<br /><br /> Here are the 2 new methods (<a href="https://developers.google.com/shopping-content/guides/merchant-support">developer guide</a>): <ul> <li><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/merchantsupport/renderaccountissues">Render account issues</a>: provides UI elements with text in the language you select to display account issues to your merchants and redirect link to Merchant Center for merchants to request a re-review or perform other actions</li> <li><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/merchantsupport/renderproductissues">Render product issues</a>: provides UI elements with text in the language you select to display product issues to your merchants and redirect link to Merchant Center for merchants to request a re-review or perform other actions</li> </ul> All issue texts returned from <code>MerchantSupport</code> methods above are localized. Clients can request texts in any Merchant Center supported language. Please note that merchants need to have access to their Merchant Center account in order to perform the actions.<br /><br /> If you are based in EEA, we highly recommend implementing <code>MerchantSupport</code> methods by the end of the year, so that your merchants will have more information regarding our policy-related requirements, and have access to our new features. In the future we will expand the <code>MerchantSupport</code> service to let you request re-review or perform other actions directly with the Content API for Shopping. With this future addition, your merchants will not have to be redirected to Merchant Center, they will be able to request the action directly in your UI.<br /><br /> If you have any questions or concerns, please don't hesitate to contact us via the <a href="https://groups.google.com/g/google-content-api-for-shopping">forum</a>.<br /> <span class='byline-author'><img height="40" src="https://lh6.googleusercontent.com/3UR5v4kdd7GrfXL7qxf9q5dUhvFCuGpErSk9b_VLFBrxtt2a8nNB4ka6wnxAjf_cESedQlAsF96iW-aNPGDANC2e0PMddceUlVVty7QfxD9qtapM1fRdGnU3qhDOEEQgXuJoQ3qaGumt7JfWD4wEcLsY" style="vertical-align: middle; border:none;" width="40"/> Benji Rothman, Content API for Shopping Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> On August 23rd, 2023, we introduced new features in the <a href="https://developers.google.com/shopping-content/guides/quickstart">Content API for Shopping</a> to help you display detailed information about product and account issues to your merchants, and enable those merchants to request re-review or perform other actions. The new <code>MerchantSupport</code> service provides more transparency about our policy-related requirements to your merchants. These methods should be used for merchants based in the EEA, but can be used globally.<br /><br /> Here are the 2 new methods (<a href="https://developers.google.com/shopping-content/guides/merchant-support">developer guide</a>): <ul> <li><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/merchantsupport/renderaccountissues">Render account issues</a>: provides UI elements with text in the language you select to display account issues to your merchants and redirect link to Merchant Center for merchants to request a re-review or perform other actions</li> <li><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/merchantsupport/renderproductissues">Render product issues</a>: provides UI elements with text in the language you select to display product issues to your merchants and redirect link to Merchant Center for merchants to request a re-review or perform other actions</li> </ul> All issue texts returned from <code>MerchantSupport</code> methods above are localized. Clients can request texts in any Merchant Center supported language. Please note that merchants need to have access to their Merchant Center account in order to perform the actions.<br /><br /> If you are based in EEA, we highly recommend implementing <code>MerchantSupport</code> methods by the end of the year, so that your merchants will have more information regarding our policy-related requirements, and have access to our new features. In the future we will expand the <code>MerchantSupport</code> service to let you request re-review or perform other actions directly with the Content API for Shopping. With this future addition, your merchants will not have to be redirected to Merchant Center, they will be able to request the action directly in your UI.<br /><br /> If you have any questions or concerns, please don't hesitate to contact us via the <a href="https://groups.google.com/g/google-content-api-for-shopping">forum</a>.<br /> <span class='byline-author'><img height="40" src="https://lh6.googleusercontent.com/3UR5v4kdd7GrfXL7qxf9q5dUhvFCuGpErSk9b_VLFBrxtt2a8nNB4ka6wnxAjf_cESedQlAsF96iW-aNPGDANC2e0PMddceUlVVty7QfxD9qtapM1fRdGnU3qhDOEEQgXuJoQ3qaGumt7JfWD4wEcLsY" style="vertical-align: middle; border:none;" width="40"/> Benji Rothman, Content API for Shopping 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:Launching the Merchant Support Service&url=http://ads-developers.googleblog.com/2023/08/launching-merchant-support-service.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/launching-merchant-support-service.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/launching-merchant-support-service.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/content_api' rel='tag'> content_api </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/shopping' rel='tag'> shopping </a> </span> </div> </div> </div> <div class='post' data-id='2588850406661772764' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2023/08/upcoming-permission-changes-to.html' itemprop='url' title='Upcoming permission changes to MerchantLinkService in the Google Ads API'> Upcoming permission changes to MerchantLinkService in the Google Ads API </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Monday, August 7, 2023 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <p> <strong>What’s Changing</strong> </p> <p> Starting the week of September 4, 2023, <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/MerchantCenterLinkService#mutatemerchantcenterlink">MerchantLinkService.MutateMerchantCenterLink</a> method will fail with an <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/AuthorizationErrorEnum.AuthorizationError#action_not_permitted">AuthorizationError.ACTION_NOT_PERMITTED</a> error for authorized users without Admin access levels. </p> <p> <strong>Required Actions</strong> </p> <p> If your application mutates Merchant Center links using the <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/MerchantCenterLinkService#mutatemerchantcenterlink">MutateMerchantCenterLink</a> method, review the account permissions of the users authorizing API calls and update their permissions appropriately to ensure they have the required access levels. Refer to the <a href="https://support.google.com/google-ads/answer/6372672">help center guide</a> for instructions. </p> <p> <strong>Change Rationale</strong> </p> <p> This change will align the Google Ads API behavior with other products such as the Google Ads UI and Google Ads Editor, which only allow Administrator users to mutate Merchant Center links. Currently, the Google Ads API allows users with <a href="https://support.google.com/google-ads/answer/9978556">Standard Access levels</a> but without Admin access level permissions to <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/MerchantCenterLinkService#mutatemerchantcenterlink">mutate Merchant Center links</a> using the <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/MerchantCenterLinkService">MerchantLinkService</a>. </p> <p> If you have any questions, please reach out to us on the <a href="https://groups.google.com/g/adwords-api">forum</a>. </p> <p><span class="byline-author"><a href="https://g.dev/anash"><img height="40" src="https://lh3.googleusercontent.com/a-/AD_cMMRmfdsXvZhyLvWsLuqqcScxtYI0ih7DPGCk8lTee140NzXH=s300" style="vertical-align:middle; border:none;" width="40"></a> - <a href="https://g.dev/anash" rel="author">Anash P. Oommen</a>, Google Ads API Team</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> <strong>What’s Changing</strong> </p> <p> Starting the week of September 4, 2023, <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/MerchantCenterLinkService#mutatemerchantcenterlink">MerchantLinkService.MutateMerchantCenterLink</a> method will fail with an <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/AuthorizationErrorEnum.AuthorizationError#action_not_permitted">AuthorizationError.ACTION_NOT_PERMITTED</a> error for authorized users without Admin access levels. </p> <p> <strong>Required Actions</strong> </p> <p> If your application mutates Merchant Center links using the <a href="https://developers.google.com/google-ads/api/reference/rpc/v14/MerchantCenterLinkService#mutatemerchantcenterlink">MutateMerchantCenterLink</a> method, review the account permissions of the users authorizing API calls and update their permissions appropriately to ensure they have the required access levels. Refer to the <a href="https://support.google.com/google-ads/answer/6372672">help center guide</a> for instructions. </p> <p> <strong>Change Rationale</strong> </p> <p> This change will align the Google Ads API behavior with other products such as the Google Ads UI and Google Ads Editor, which only allow Administrator users to mutate Merchant Center links. Currently, the Google Ads API allows users with <a href="https://support.google.com/google-ads/answer/9978556">Standard Access levels</a> but without Admin access level permissions to <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/MerchantCenterLinkService#mutatemerchantcenterlink">mutate Merchant Center links</a> using the <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/MerchantCenterLinkService">MerchantLinkService</a>. </p> <p> If you have any questions, please reach out to us on the <a href="https://groups.google.com/g/adwords-api">forum</a>. </p> <p><span class="byline-author"><a href="https://g.dev/anash"><img height="40" src="https://lh3.googleusercontent.com/a-/AD_cMMRmfdsXvZhyLvWsLuqqcScxtYI0ih7DPGCk8lTee140NzXH=s300" style="vertical-align:middle; border:none;" width="40"></a> - <a href="https://g.dev/anash" rel="author">Anash P. Oommen</a>, Google Ads API Team</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:Upcoming permission changes to MerchantLinkService in the Google Ads API&url=http://ads-developers.googleblog.com/2023/08/upcoming-permission-changes-to.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/upcoming-permission-changes-to.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/upcoming-permission-changes-to.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/account_management' rel='tag'> account_management </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/authorization' rel='tag'> authorization </a> , <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/shopping' rel='tag'> shopping </a> </span> </div> </div> </div> <div class='post' data-id='4167551488762048119' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2023/04/new-merchant-ids-are-now-64-bit-in.html' itemprop='url' title='New Merchant IDs are now 64-bit in Content API for Shopping'> New Merchant IDs are now 64-bit in Content API for Shopping </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Monday, April 24, 2023 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> In the <a href="https://developers.google.com/shopping-content/guides/quickstart">Content API for Shopping</a>, we <a href="https://ads-developers.googleblog.com/2022/06/merchant-ids-as-64-bit-in-content-api.html">informed you last June</a> that new Merchant IDs were migrating from 32 bit to 64-bit signed integers.<br /><br /> Existing Merchant IDs haven’t changed. Beginning on March 13, 2023 new Merchant IDs created could be in the 64-bit signed range. Through a slow rollout over the next few months, a higher percentage of new Merchant IDs will be in the 64-bit signed range. By June 2023, all new Merchant IDs created will be in the 64-bit signed range.<br /><br /> To avoid any issues, please make sure your applications are fully compliant with IDs within a range of 64-bit signed integer values.<br /><br /> If you have any questions or concerns, please don't hesitate to contact us via the <a href="https://groups.google.com/g/google-content-api-for-shopping">forum</a>.<br /> <span class='byline-author'>Benji Rothman, Content API for Shopping Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> In the <a href="https://developers.google.com/shopping-content/guides/quickstart">Content API for Shopping</a>, we <a href="https://ads-developers.googleblog.com/2022/06/merchant-ids-as-64-bit-in-content-api.html">informed you last June</a> that new Merchant IDs were migrating from 32 bit to 64-bit signed integers.<br /><br /> Existing Merchant IDs haven’t changed. Beginning on March 13, 2023 new Merchant IDs created could be in the 64-bit signed range. Through a slow rollout over the next few months, a higher percentage of new Merchant IDs will be in the 64-bit signed range. By June 2023, all new Merchant IDs created will be in the 64-bit signed range.<br /><br /> To avoid any issues, please make sure your applications are fully compliant with IDs within a range of 64-bit signed integer values.<br /><br /> If you have any questions or concerns, please don't hesitate to contact us via the <a href="https://groups.google.com/g/google-content-api-for-shopping">forum</a>.<br /> <span class='byline-author'>Benji Rothman, Content API for Shopping 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:New Merchant IDs are now 64-bit in Content API for Shopping&url=http://ads-developers.googleblog.com/2023/04/new-merchant-ids-are-now-64-bit-in.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/04/new-merchant-ids-are-now-64-bit-in.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/04/new-merchant-ids-are-now-64-bit-in.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/content_api' rel='tag'> content_api </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/shopping' rel='tag'> shopping </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='486949788105687658' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2023/04/issues-from-all-destinations-to-be.html' itemprop='url' title='Issues from all destinations to be included in Productstatuses Service by default in the Content API for Shopping'> Issues from all destinations to be included in Productstatuses Service by default in the Content API for Shopping </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Wednesday, April 19, 2023 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> Starting on <strong>April 24, 2023</strong>, the Content API for Shopping methods <code>productstatuses.list</code> and <code>productstatuses.get</code> will include issues from all eligible destinations by default. This will likely increase the size of the response you get back from the same call.<br /><br /> Currently, the responses you get when using the <code>productstatuses.list</code> and <code>productstatuses.get</code> methods only include issues from Shopping Ads and don’t include issues from other destinations, for example free listings issues.<br /><br /> Including issues from all eligible destinations will let you provide your users with an overall better experience. This change will improve your issue visibility across all destinations. In turn, you will see an increase in the number of results, or the size of responses you’ll receive.<br /><br /> <strong>No action is needed from you</strong> as the free listing issues will now be included by default when using the <a href="https://developers.google.com/shopping-content/reference/rest/v2.1">Content API for Shopping</a> methods <code>productstatuses.list</code> and <code>productstatuses.get</code>.<br /><br /> However, if you want to keep the calls to only display issues from Shopping Ads, we suggest setting the query parameter <code>destinations[]</code> in the <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/productstatuses/list#query-parameters">productstatuses methods</a> to Shopping.<br /><br /> Learn more about the changes to the product statuses methods in the Content API for Shopping <a href="https://developers.google.com/shopping-content/guides/productstatuses">Product statuses documentation</a>.<br /><br /> If you have any questions or concerns, please don't hesitate to contact us via the <a href="https://groups.google.com/g/google-content-api-for-shopping">forum</a>.<br /> <span class='byline-author'>Benji Rothman, Content API for Shopping Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> Starting on <strong>April 24, 2023</strong>, the Content API for Shopping methods <code>productstatuses.list</code> and <code>productstatuses.get</code> will include issues from all eligible destinations by default. This will likely increase the size of the response you get back from the same call.<br /><br /> Currently, the responses you get when using the <code>productstatuses.list</code> and <code>productstatuses.get</code> methods only include issues from Shopping Ads and don’t include issues from other destinations, for example free listings issues.<br /><br /> Including issues from all eligible destinations will let you provide your users with an overall better experience. This change will improve your issue visibility across all destinations. In turn, you will see an increase in the number of results, or the size of responses you’ll receive.<br /><br /> <strong>No action is needed from you</strong> as the free listing issues will now be included by default when using the <a href="https://developers.google.com/shopping-content/reference/rest/v2.1">Content API for Shopping</a> methods <code>productstatuses.list</code> and <code>productstatuses.get</code>.<br /><br /> However, if you want to keep the calls to only display issues from Shopping Ads, we suggest setting the query parameter <code>destinations[]</code> in the <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/productstatuses/list#query-parameters">productstatuses methods</a> to Shopping.<br /><br /> Learn more about the changes to the product statuses methods in the Content API for Shopping <a href="https://developers.google.com/shopping-content/guides/productstatuses">Product statuses documentation</a>.<br /><br /> If you have any questions or concerns, please don't hesitate to contact us via the <a href="https://groups.google.com/g/google-content-api-for-shopping">forum</a>.<br /> <span class='byline-author'>Benji Rothman, Content API for Shopping 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:Issues from all destinations to be included in Productstatuses Service by default in the Content API for Shopping&url=http://ads-developers.googleblog.com/2023/04/issues-from-all-destinations-to-be.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/04/issues-from-all-destinations-to-be.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/04/issues-from-all-destinations-to-be.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/content_api' rel='tag'> content_api </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/shopping' rel='tag'> shopping </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='5977976973713677365' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2023/02/changes-to-location-targeting-in-google.html' itemprop='url' title='Changes to location targeting in Google Ads Search, Shopping, Display, and Performance Max campaigns'> Changes to location targeting in Google Ads Search, Shopping, Display, and Performance Max campaigns </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Monday, February 27, 2023 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> Starting on <strong>April 14, 2023</strong>, there will be changes made to the <a href="https://support.google.com/google-ads/answer/1722038?ref_topic=3119074">location targeting settings</a> for Search, Shopping, Display, and Performance Max campaigns in the <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Campaign#geo_target_type_setting">Google Ads API</a>. We are making this change to simplify the location targeting portfolio and improve advertiser performance. All versions will throw errors if you try to set the location target settings to one of the values shown below.<br /><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;">Campaign.geo_target_type_setting fields</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;"><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Campaign.GeoTargetTypeSetting#positive_geo_target_type"><code>positive_geo_target_type</code></a> can no longer be set to <code>SEARCH_INTEREST</code> for Search, Shopping, and Display campaigns. The default value is <code>PRESENCE_OR_INTEREST</code>.</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;"><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Campaign.GeoTargetTypeSetting#negative_geo_target_type"><code>negative_geo_target_type</code></a> can no longer be set to <code>PRESENCE_OR_INTEREST</code> for Performance Max, Search, Shopping, and Display campaigns. The default value is <code>PRESENCE</code>.</td> </tr> </tbody> </table> The error returned if these values are used is <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/SettingErrorEnum.SettingError#setting_value_not_compatible_with_campaign"><code>SettingError.SETTING_VALUE_NOT_COMPATIBLE_WITH_CAMPAIGN</code></a>.<br /><br /> On <strong>April 24, 2023</strong>, we will start performing any necessary auto-migration of fields to the new default values until no more invalid combinations exist. The auto-migration will occur on a per-campaign basis. You can confirm that the migration is complete for a Google Ads account by checking that these two queries return zero rows.<br /><br /> <pre class="prettyprint lang-sql"> SELECT campaign.id, campaign.geo_target_type_setting.positive_geo_target_type, campaign.advertising_channel_type FROM campaign WHERE campaign.advertising_channel_type IN ('DISPLAY', 'SEARCH', 'SHOPPING') AND campaign.geo_target_type_setting.positive_geo_target_type = 'SEARCH_INTEREST' LIMIT 1</pre> <pre class="prettyprint lang-sql">SELECT campaign.id, campaign.advertising_channel_type, campaign.geo_target_type_setting.negative_geo_target_type FROM campaign WHERE campaign.geo_target_type_setting.negative_geo_target_type = 'PRESENCE_OR_INTEREST' AND campaign.advertising_channel_type IN ('DISPLAY', 'PERFORMANCE_MAX', 'SEARCH', 'SHOPPING') LIMIT 1</pre> <strong>Where can I get support?</strong><br /> If you have questions, please reach out to us on the <a href="https://groups.google.com/forum/#!forum/adwords-api">forum</a> or at <a href="mailto:googleadsapi-support@google.com">googleadsapi-support@google.com</a>.<br /> <span class='byline-author'><img height="40" src="https://lh6.googleusercontent.com/xc1BstqIO3rHCZTBaUVL-76euEtxewSqrhSqAgDA5IhL4CaYVYQywU1xeL3l7lwbL640tKrUIT2YsdYA9jAenuipiWbDPFpGKAL7XDRMhVDKRnF5aedoRE2NHFTHZkHtoLYNA1QdM-mLDo1mGNMB_8vduNcODY1_DE-9ER1JFov8HRQhoc8j6gWrx3A7mwM0bMhfi3LN3HcuKf1fwgVoWcSqjyq0WZVkwpjz" style="vertical-align: middle; border:none;" width="40"/> Nadine Wang, Google Ads API Team <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> Starting on <strong>April 14, 2023</strong>, there will be changes made to the <a href="https://support.google.com/google-ads/answer/1722038?ref_topic=3119074">location targeting settings</a> for Search, Shopping, Display, and Performance Max campaigns in the <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Campaign#geo_target_type_setting">Google Ads API</a>. We are making this change to simplify the location targeting portfolio and improve advertiser performance. All versions will throw errors if you try to set the location target settings to one of the values shown below.<br /><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;">Campaign.geo_target_type_setting fields</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;"><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Campaign.GeoTargetTypeSetting#positive_geo_target_type"><code>positive_geo_target_type</code></a> can no longer be set to <code>SEARCH_INTEREST</code> for Search, Shopping, and Display campaigns. The default value is <code>PRESENCE_OR_INTEREST</code>.</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;"><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Campaign.GeoTargetTypeSetting#negative_geo_target_type"><code>negative_geo_target_type</code></a> can no longer be set to <code>PRESENCE_OR_INTEREST</code> for Performance Max, Search, Shopping, and Display campaigns. The default value is <code>PRESENCE</code>.</td> </tr> </tbody> </table> The error returned if these values are used is <a href="https://developers.google.com/google-ads/api/reference/rpc/latest/SettingErrorEnum.SettingError#setting_value_not_compatible_with_campaign"><code>SettingError.SETTING_VALUE_NOT_COMPATIBLE_WITH_CAMPAIGN</code></a>.<br /><br /> On <strong>April 24, 2023</strong>, we will start performing any necessary auto-migration of fields to the new default values until no more invalid combinations exist. The auto-migration will occur on a per-campaign basis. You can confirm that the migration is complete for a Google Ads account by checking that these two queries return zero rows.<br /><br /> <pre class="prettyprint lang-sql"> SELECT campaign.id, campaign.geo_target_type_setting.positive_geo_target_type, campaign.advertising_channel_type FROM campaign WHERE campaign.advertising_channel_type IN ('DISPLAY', 'SEARCH', 'SHOPPING') AND campaign.geo_target_type_setting.positive_geo_target_type = 'SEARCH_INTEREST' LIMIT 1</pre> <pre class="prettyprint lang-sql">SELECT campaign.id, campaign.advertising_channel_type, campaign.geo_target_type_setting.negative_geo_target_type FROM campaign WHERE campaign.geo_target_type_setting.negative_geo_target_type = 'PRESENCE_OR_INTEREST' AND campaign.advertising_channel_type IN ('DISPLAY', 'PERFORMANCE_MAX', 'SEARCH', 'SHOPPING') LIMIT 1</pre> <strong>Where can I get support?</strong><br /> If you have questions, please reach out to us on the <a href="https://groups.google.com/forum/#!forum/adwords-api">forum</a> or at <a href="mailto:googleadsapi-support@google.com">googleadsapi-support@google.com</a>.<br /> <span class='byline-author'><img height="40" src="https://lh6.googleusercontent.com/xc1BstqIO3rHCZTBaUVL-76euEtxewSqrhSqAgDA5IhL4CaYVYQywU1xeL3l7lwbL640tKrUIT2YsdYA9jAenuipiWbDPFpGKAL7XDRMhVDKRnF5aedoRE2NHFTHZkHtoLYNA1QdM-mLDo1mGNMB_8vduNcODY1_DE-9ER1JFov8HRQhoc8j6gWrx3A7mwM0bMhfi3LN3HcuKf1fwgVoWcSqjyq0WZVkwpjz" style="vertical-align: middle; border:none;" width="40"/> Nadine Wang, Google Ads API Team <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:Changes to location targeting in Google Ads Search, Shopping, Display, and Performance Max campaigns&url=http://ads-developers.googleblog.com/2023/02/changes-to-location-targeting-in-google.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/02/changes-to-location-targeting-in-google.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/02/changes-to-location-targeting-in-google.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/adwords_api' rel='tag'> adwords_api </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/geotargeting' rel='tag'> geotargeting </a> , <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/PMax' rel='tag'> PMax </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/shopping' rel='tag'> shopping </a> </span> </div> </div> </div> <div class='post' data-id='4391684929045917262' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2022/12/request-account-reviews-with-content-api.html' itemprop='url' title='Request Account Reviews with the Content API'> Request Account Reviews with the Content API </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Wednesday, December 7, 2022 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <p> In the <a href="https://developers.google.com/shopping-content/guides/quickstart">Content API for Shopping</a>, your Merchant Center account and the products in it might <a href="https://support.google.com/merchants/answer/1678274">be disapproved for various reasons</a>. Historically, you have been able to see the status of your merchant center account for free listings and Shopping ads with the <code>accountstatuses</code> service. In Q1 2022 we introduced the <code>freelistingsprogram</code> and <code>shoppingadsprogram</code> services to provide more granular detail. <strong>You can now use the <code>requestreview</code> method on the <code>freelistingsprogram</code> and <code>shoppingadsprogram</code> services to request your account to be re-reviewed after making changes to fix your product and account data</strong>. <p> For an in-depth explanation of how to use the <code>freelistingsprogram</code> and <code>shoppingadsprogram</code> services, please refer to the <a href="https://developers.google.com/shopping-content/guides/review-free-listings">Free listings</a> and <a href="https://developers.google.com/shopping-content/guides/review-shopping-ads">Shopping ads</a> guides. </p> <p> If you have any questions or concerns, please don't hesitate to contact us via the <a href="https://groups.google.com/g/google-content-api-for-shopping">forum</a>. </p> <p> <span class='byline-author'><img height="40" src="https://lh6.googleusercontent.com/3UR5v4kdd7GrfXL7qxf9q5dUhvFCuGpErSk9b_VLFBrxtt2a8nNB4ka6wnxAjf_cESedQlAsF96iW-aNPGDANC2e0PMddceUlVVty7QfxD9qtapM1fRdGnU3qhDOEEQgXuJoQ3qaGumt7JfWD4wEcLsY" style="vertical-align: middle; border:none;" width="40"/> Benji Rothman, Content API for Shopping 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> In the <a href="https://developers.google.com/shopping-content/guides/quickstart">Content API for Shopping</a>, your Merchant Center account and the products in it might <a href="https://support.google.com/merchants/answer/1678274">be disapproved for various reasons</a>. Historically, you have been able to see the status of your merchant center account for free listings and Shopping ads with the <code>accountstatuses</code> service. In Q1 2022 we introduced the <code>freelistingsprogram</code> and <code>shoppingadsprogram</code> services to provide more granular detail. <strong>You can now use the <code>requestreview</code> method on the <code>freelistingsprogram</code> and <code>shoppingadsprogram</code> services to request your account to be re-reviewed after making changes to fix your product and account data</strong>. <p> For an in-depth explanation of how to use the <code>freelistingsprogram</code> and <code>shoppingadsprogram</code> services, please refer to the <a href="https://developers.google.com/shopping-content/guides/review-free-listings">Free listings</a> and <a href="https://developers.google.com/shopping-content/guides/review-shopping-ads">Shopping ads</a> guides. </p> <p> If you have any questions or concerns, please don't hesitate to contact us via the <a href="https://groups.google.com/g/google-content-api-for-shopping">forum</a>. </p> <p> <span class='byline-author'><img height="40" src="https://lh6.googleusercontent.com/3UR5v4kdd7GrfXL7qxf9q5dUhvFCuGpErSk9b_VLFBrxtt2a8nNB4ka6wnxAjf_cESedQlAsF96iW-aNPGDANC2e0PMddceUlVVty7QfxD9qtapM1fRdGnU3qhDOEEQgXuJoQ3qaGumt7JfWD4wEcLsY" style="vertical-align: middle; border:none;" width="40"/> Benji Rothman, Content API for Shopping 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:Request Account Reviews with the Content API&url=http://ads-developers.googleblog.com/2022/12/request-account-reviews-with-content-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/2022/12/request-account-reviews-with-content-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/2022/12/request-account-reviews-with-content-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/content_api' rel='tag'> content_api </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/shopping' rel='tag'> shopping </a> </span> </div> </div> </div> <div class='post' data-id='8859697367252240005' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2022/11/feed-label-support-added-to-datafeeds.html' itemprop='url' title='Feed label support added to datafeeds service in Content API for Shopping'> Feed label support added to datafeeds service in Content API for Shopping </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Thursday, November 10, 2022 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> On September 22, 2022, we updated you on <a href="https://ads-developers.googleblog.com/2022/09/country-targeting-update-for-products.html">changes to country targeting for shopping products</a>, and how to use the <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products#Product.FIELDS.feed_label"><code>feedLabel</code></a> field. We’ve made additional changes to help you integrate <code>feedLabel</code>. Here are our previous announcements: <ul> <li><a href="https://ads-developers.googleblog.com/2022/09/country-targeting-update-for-products.html">Country targeting update for products in Content API for Shopping and Google Ads API</a>.</li> <li><a href="http://ads-developers.googleblog.com/2022/08/feed-label-replaces-target-country-in.html">Feed label replaces target country in Content API for Shopping</a>.</li> <li><a href="http://ads-developers.googleblog.com/2022/08/country-targeting-in-shopping-ads.html">Country targeting in Shopping Ads campaigns is changing in August 2022</a>.</li> </ul> <strong>What’s new</strong><br /> <strong>Merchant Center & Content API</strong><br /> As of November 8th, 2022 we’ve added the ability to manage <code>feedLabel</code> for <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/datafeeds"><code>datafeeds</code></a>. The <code>feedLabel</code> field is now available in the following resources: <ul> <li><code>products</code></li> <li><code>datafeeds</code></li> <li><code>DatafeedStatus</code></li> </ul> You can now see which countries a datafeed explicitly targets in <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/datafeeds#datafeedtarget"><code>datafeedtarget</code></a>. This applies when you use <code>feedLabel</code> instead of <code>country</code> in the <code>datafeedtarget</code> configuration.<br /><br /> We’ve also added the <code>targetCountries</code> field for <code>datafeeds</code>, so you can configure targeting for <code>datafeeds</code> directly. You can still configure targeting outside the feed, for example, by setting the <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products#ProductShipping"><code>shipping</code></a> attribute of the <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products#resource:-product"><code>products</code></a> resource.<br /><br /> <strong>Note</strong>: You can’t manage Primary and Supplemental API feeds with the <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/datafeeds"><code>datafeeds</code></a> service. You need to use the Merchant Center UI.<br /><br /> <strong>Behavior changes</strong><br /> Here’s a clarification of new API behavior for <code>feedLabel</code>:<br /><br /> <strong>Insert and update</strong><br /> You can now call <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products/insert"><code>Products.insert</code></a> and <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products/update"><code>Products.update</code></a> with a <code>feedLabel</code> set to any valid string, for example “<code>WINTERPRODUCTS</code>”.<br /><br /> You can now use <code>feedLabel</code> without setting <code>targetCountry</code> during insertion and updates. Errors that used to warn of this requirement have been removed.<br /><br /> If you use both <code>feedLabel</code> and <code>targetCountry</code> in these calls, their values must be the same.<br /><br /> See <a href="https://support.google.com/merchants/answer/12453549">Use feed labels to advertise products from specific feeds</a> for the definition of a valid string for <code>feedLabel</code>.<br /><br /> <strong>Targeting</strong><br /> If you don’t use <code>targetCountry</code> for <code>products</code>, you must either set the <code>shipping</code> attribute of the <code>products</code> resource, or use the <code>targetCountries</code> field for the <code>datafeeds</code> resource to ensure your products target the chosen countries.<br /><br /> <strong>Opt out of receiving products and datafeeds without a country</strong><br /> If you’re concerned your codebase cannot handle products and datafeeds without a country, and you want to opt out of receiving them via the Content API for Shopping, fill out the following form: <a href="https://docs.google.com/forms/d/e/1FAIpQLSezbSFNu6Hu3XCYVo7qs0hD8yjQML-3pklC_cp-3z-tJnjhgA/viewform?usp=sf_link">Feed label replaces target country in the Content API for Shopping - temporary exemption</a>.<br /><br /> When you’re ready to support <code>feedLabel</code>, you can opt back in to receiving these offers.<br /><br /> If you have any questions about this change, please visit the <a href="https://groups.google.com/forum/#!forum/google-content-api-for-shopping">Content API for Shopping forum</a>.<br /> <span class='byline-author'><img height="40" src="https://lh5.googleusercontent.com/DDE180jto6tcgXfgP8OUY-mE6P57Zpll9sZ8d1WDzi98Yfa0ZIsMFtg4RI-XDuwszxfcd58rPtmss-jzzFkdLdTS6cKlMX0mZi5SFUe8uYi2c0x4VTSEpFNO8fcd6b6WBVpGxbC6rA" style="vertical-align: middle; border:none;" width="40"/> Ian Ballantyne, Content API for Shopping Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> On September 22, 2022, we updated you on <a href="https://ads-developers.googleblog.com/2022/09/country-targeting-update-for-products.html">changes to country targeting for shopping products</a>, and how to use the <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products#Product.FIELDS.feed_label"><code>feedLabel</code></a> field. We’ve made additional changes to help you integrate <code>feedLabel</code>. Here are our previous announcements: <ul> <li><a href="https://ads-developers.googleblog.com/2022/09/country-targeting-update-for-products.html">Country targeting update for products in Content API for Shopping and Google Ads API</a>.</li> <li><a href="http://ads-developers.googleblog.com/2022/08/feed-label-replaces-target-country-in.html">Feed label replaces target country in Content API for Shopping</a>.</li> <li><a href="http://ads-developers.googleblog.com/2022/08/country-targeting-in-shopping-ads.html">Country targeting in Shopping Ads campaigns is changing in August 2022</a>.</li> </ul> <strong>What’s new</strong><br /> <strong>Merchant Center & Content API</strong><br /> As of November 8th, 2022 we’ve added the ability to manage <code>feedLabel</code> for <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/datafeeds"><code>datafeeds</code></a>. The <code>feedLabel</code> field is now available in the following resources: <ul> <li><code>products</code></li> <li><code>datafeeds</code></li> <li><code>DatafeedStatus</code></li> </ul> You can now see which countries a datafeed explicitly targets in <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/datafeeds#datafeedtarget"><code>datafeedtarget</code></a>. This applies when you use <code>feedLabel</code> instead of <code>country</code> in the <code>datafeedtarget</code> configuration.<br /><br /> We’ve also added the <code>targetCountries</code> field for <code>datafeeds</code>, so you can configure targeting for <code>datafeeds</code> directly. You can still configure targeting outside the feed, for example, by setting the <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products#ProductShipping"><code>shipping</code></a> attribute of the <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products#resource:-product"><code>products</code></a> resource.<br /><br /> <strong>Note</strong>: You can’t manage Primary and Supplemental API feeds with the <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/datafeeds"><code>datafeeds</code></a> service. You need to use the Merchant Center UI.<br /><br /> <strong>Behavior changes</strong><br /> Here’s a clarification of new API behavior for <code>feedLabel</code>:<br /><br /> <strong>Insert and update</strong><br /> You can now call <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products/insert"><code>Products.insert</code></a> and <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products/update"><code>Products.update</code></a> with a <code>feedLabel</code> set to any valid string, for example “<code>WINTERPRODUCTS</code>”.<br /><br /> You can now use <code>feedLabel</code> without setting <code>targetCountry</code> during insertion and updates. Errors that used to warn of this requirement have been removed.<br /><br /> If you use both <code>feedLabel</code> and <code>targetCountry</code> in these calls, their values must be the same.<br /><br /> See <a href="https://support.google.com/merchants/answer/12453549">Use feed labels to advertise products from specific feeds</a> for the definition of a valid string for <code>feedLabel</code>.<br /><br /> <strong>Targeting</strong><br /> If you don’t use <code>targetCountry</code> for <code>products</code>, you must either set the <code>shipping</code> attribute of the <code>products</code> resource, or use the <code>targetCountries</code> field for the <code>datafeeds</code> resource to ensure your products target the chosen countries.<br /><br /> <strong>Opt out of receiving products and datafeeds without a country</strong><br /> If you’re concerned your codebase cannot handle products and datafeeds without a country, and you want to opt out of receiving them via the Content API for Shopping, fill out the following form: <a href="https://docs.google.com/forms/d/e/1FAIpQLSezbSFNu6Hu3XCYVo7qs0hD8yjQML-3pklC_cp-3z-tJnjhgA/viewform?usp=sf_link">Feed label replaces target country in the Content API for Shopping - temporary exemption</a>.<br /><br /> When you’re ready to support <code>feedLabel</code>, you can opt back in to receiving these offers.<br /><br /> If you have any questions about this change, please visit the <a href="https://groups.google.com/forum/#!forum/google-content-api-for-shopping">Content API for Shopping forum</a>.<br /> <span class='byline-author'><img height="40" src="https://lh5.googleusercontent.com/DDE180jto6tcgXfgP8OUY-mE6P57Zpll9sZ8d1WDzi98Yfa0ZIsMFtg4RI-XDuwszxfcd58rPtmss-jzzFkdLdTS6cKlMX0mZi5SFUe8uYi2c0x4VTSEpFNO8fcd6b6WBVpGxbC6rA" style="vertical-align: middle; border:none;" width="40"/> Ian Ballantyne, Content API for Shopping 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:Feed label support added to datafeeds service in Content API for Shopping&url=http://ads-developers.googleblog.com/2022/11/feed-label-support-added-to-datafeeds.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/2022/11/feed-label-support-added-to-datafeeds.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/2022/11/feed-label-support-added-to-datafeeds.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/content_api' rel='tag'> content_api </a> , <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/shopping' rel='tag'> shopping </a> </span> </div> </div> </div> <div class='post' data-id='5129881345941381826' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2022/09/country-targeting-update-for-products.html' itemprop='url' title='Country targeting update for products in Content API for Shopping and Google Ads API'> Country targeting update for products in Content API for Shopping and Google Ads API </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Thursday, September 22, 2022 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <strong>On August 10, 2022, we announced a change to country targeting for shopping products with the introduction of the <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products#Product.FIELDS.feed_label"><code>feedLabel</code></a> field.</strong> We’d like to update you on the progress of this change. Here are our previous announcements: <ul> <li>See <a href="http://ads-developers.googleblog.com/2022/08/feed-label-replaces-target-country-in.html">Feed label replaces target country in Content API for Shopping</a> for the original announcement for the <a href="https://developers.google.com/shopping-content/guides/quickstart">Content API for Shopping</a>.</li> <li>See <a href="http://ads-developers.googleblog.com/2022/08/country-targeting-in-shopping-ads.html">Country targeting in Shopping Ads campaigns is changing in August 2022</a> for the original announcement for the <a href="https://developers.google.com/google-ads/api/docs/start">Google Ads API</a>.</li> </ul> <strong>What’s already changed</strong><br /><br /> <em>Google Ads:</em><br /> Any Google Ads account can set the <a href="https://developers.google.com/google-ads/api/reference/rpc/v11/Campaign.ShoppingSetting#feed_label"><code>feed_label</code></a> field in <a href="https://developers.google.com/google-ads/api/reference/rpc/v11/Campaign.ShoppingSetting"><code>ShoppingSetting</code></a> for Shopping and Performance Max campaigns. You can set <code>feed_label</code> in the Google Ads UI and the Google Ads API.<br /><br /> <em>Merchant Center & Content API:</em><br /> As of September 14th, 2022 we‘ve started the gradual rollout of feed labels in the Merchant Center UI. When this feature is enabled in the UI, merchants will be able to create a new feed with <strong>feed label</strong> set to any valid string. See <a href="https://support.google.com/merchants/answer/12453549">Use feed labels to advertise products from specific feeds</a> for more information.<br /><br /> In the Content API, you might see the following</em>: <ul> <li>Products that have only <code>feedLabel</code>, and not <code>targetCountry</code>, if they were added in the Merchant Center UI.</li> <li>Products with feed labels that aren’t two-letter country codes.</li> </ul> You can now use <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products/update"><code>Products.update</code></a> to update products by <code>feedLabel</code>. For example, if you had a product with <code>offerId</code> of “111111111” and a <code>feedLabel</code> set to “WINTERPRODUCTS”, you can now update attributes such as <code>salePrice</code> for that product by making the following call:<br /> HTTP request:<br /> <pre class="prettyprint lang-json"> PATCH https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/online:en:WINTERPRODUCTS:1111111111 </pre> Example request body:<br /> <pre class="prettyprint lang-json"> { "salePrice": { "value": "17.99", "currency": "USD" } } </pre> <em>Behavior summary:</em><br /> Here’s a clarification of the current API behavior for <code>feedLabel</code>: <ul> <li><strong>Insertion:</strong> You can only call <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products/insert"><code>Products.insert</code></a> on products with a matching <code>feedLabel</code> and <code>targetCountry</code>. Currently, <code>Products.insert</code> might return an error if you don’t provide a matching <code>targetCountry</code>. This behavior hasn’t changed if you continue to use only <code>targetCountry</code>.</li> <li><strong>Targeting:</strong> If you set <code>feedLabel</code> to a valid 2-letter CLDR territory code, you must still set the <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products#ProductShipping">shipping</a> attribute of the <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products#resource:-product">products</a> resource to the same country in order to target that country. For example, if you set a new <code>feedLabel</code> to “US”, you must also set the <code>country</code> field in the <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products#ProductShipping">shipping</a> attribute to “US”. If you don’t set both fields, the product might not be eligible to serve in that country. You can configure targeting for an entire feed in the Merchant Center UI.</li> <li><strong>Get/List:</strong> When you use <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products/list"><code>Products.list</code></a> or <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products/get"><code>Products.get</code></a>, you might see products that only have <code>feedLabel</code> (and not <code>targetCountry</code>) set if they were added in the Merchant Center UI.</li> <li><strong>Product IDs:</strong> Once a <code>feedLabel</code> is set for a product it becomes part of the <a href="https://developers.google.com/shopping-content/guides/products/feed-labels#offer_id">product Id</a>. This means you can’t modify the <code>feedLabel</code> for that product (this is similar to how <code>language</code> works). If you wish to change the <code>feedLabel</code> you will need to create a new product with a different product Id.</li> </ul> <strong>What’s coming next</strong><br /><br /> <em>Products:</em><br /> Once the gradual rollout of feed labels in the Merchant Center UI is complete, we will accept <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products/insert"><code>Products.insert</code></a> calls with <code>feedLabel</code> set to any string. At this point, including <code>targetCountry</code> will become optional.<br /><br /> <em>Datafeeds:</em><br /> In late September, we will also update the <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/datafeeds"><code>datafeeds</code></a> resource to include feedLabel in the Content API for Shopping.<br /><br /> <strong>Opt out of receiving products and datafeeds without a country</strong><br /> If you’re concerned your codebase cannot handle products and datafeeds without a country, and you want to opt out of receiving them via the Content API for Shopping, fill out the following form: <a href="https://docs.google.com/forms/d/e/1FAIpQLSezbSFNu6Hu3XCYVo7qs0hD8yjQML-3pklC_cp-3z-tJnjhgA/viewform?usp=sf_link">Feed label replaces target country in the Content API for Shopping - temporary exemption</a>. When you’re ready to support <code>feedLabel</code>, you can opt back in to receiving these offers.<br />If you have any questions about this change, please visit the <a href="https://groups.google.com/forum/#!forum/google-content-api-for-shopping">Content API for Shopping forum</a>.<br /> <span class='byline-author'><img height="40" src="https://lh5.googleusercontent.com/DDE180jto6tcgXfgP8OUY-mE6P57Zpll9sZ8d1WDzi98Yfa0ZIsMFtg4RI-XDuwszxfcd58rPtmss-jzzFkdLdTS6cKlMX0mZi5SFUe8uYi2c0x4VTSEpFNO8fcd6b6WBVpGxbC6rA" style="vertical-align: middle; border:none;" width="40"/> Ian Ballantyne, Content API for Shopping Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> <strong>On August 10, 2022, we announced a change to country targeting for shopping products with the introduction of the <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products#Product.FIELDS.feed_label"><code>feedLabel</code></a> field.</strong> We’d like to update you on the progress of this change. Here are our previous announcements: <ul> <li>See <a href="http://ads-developers.googleblog.com/2022/08/feed-label-replaces-target-country-in.html">Feed label replaces target country in Content API for Shopping</a> for the original announcement for the <a href="https://developers.google.com/shopping-content/guides/quickstart">Content API for Shopping</a>.</li> <li>See <a href="http://ads-developers.googleblog.com/2022/08/country-targeting-in-shopping-ads.html">Country targeting in Shopping Ads campaigns is changing in August 2022</a> for the original announcement for the <a href="https://developers.google.com/google-ads/api/docs/start">Google Ads API</a>.</li> </ul> <strong>What’s already changed</strong><br /><br /> <em>Google Ads:</em><br /> Any Google Ads account can set the <a href="https://developers.google.com/google-ads/api/reference/rpc/v11/Campaign.ShoppingSetting#feed_label"><code>feed_label</code></a> field in <a href="https://developers.google.com/google-ads/api/reference/rpc/v11/Campaign.ShoppingSetting"><code>ShoppingSetting</code></a> for Shopping and Performance Max campaigns. You can set <code>feed_label</code> in the Google Ads UI and the Google Ads API.<br /><br /> <em>Merchant Center & Content API:</em><br /> As of September 14th, 2022 we‘ve started the gradual rollout of feed labels in the Merchant Center UI. When this feature is enabled in the UI, merchants will be able to create a new feed with <strong>feed label</strong> set to any valid string. See <a href="https://support.google.com/merchants/answer/12453549">Use feed labels to advertise products from specific feeds</a> for more information.<br /><br /> In the Content API, you might see the following</em>: <ul> <li>Products that have only <code>feedLabel</code>, and not <code>targetCountry</code>, if they were added in the Merchant Center UI.</li> <li>Products with feed labels that aren’t two-letter country codes.</li> </ul> You can now use <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products/update"><code>Products.update</code></a> to update products by <code>feedLabel</code>. For example, if you had a product with <code>offerId</code> of “111111111” and a <code>feedLabel</code> set to “WINTERPRODUCTS”, you can now update attributes such as <code>salePrice</code> for that product by making the following call:<br /> HTTP request:<br /> <pre class="prettyprint lang-json"> PATCH https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/online:en:WINTERPRODUCTS:1111111111 </pre> Example request body:<br /> <pre class="prettyprint lang-json"> { "salePrice": { "value": "17.99", "currency": "USD" } } </pre> <em>Behavior summary:</em><br /> Here’s a clarification of the current API behavior for <code>feedLabel</code>: <ul> <li><strong>Insertion:</strong> You can only call <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products/insert"><code>Products.insert</code></a> on products with a matching <code>feedLabel</code> and <code>targetCountry</code>. Currently, <code>Products.insert</code> might return an error if you don’t provide a matching <code>targetCountry</code>. This behavior hasn’t changed if you continue to use only <code>targetCountry</code>.</li> <li><strong>Targeting:</strong> If you set <code>feedLabel</code> to a valid 2-letter CLDR territory code, you must still set the <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products#ProductShipping">shipping</a> attribute of the <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products#resource:-product">products</a> resource to the same country in order to target that country. For example, if you set a new <code>feedLabel</code> to “US”, you must also set the <code>country</code> field in the <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products#ProductShipping">shipping</a> attribute to “US”. If you don’t set both fields, the product might not be eligible to serve in that country. You can configure targeting for an entire feed in the Merchant Center UI.</li> <li><strong>Get/List:</strong> When you use <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products/list"><code>Products.list</code></a> or <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products/get"><code>Products.get</code></a>, you might see products that only have <code>feedLabel</code> (and not <code>targetCountry</code>) set if they were added in the Merchant Center UI.</li> <li><strong>Product IDs:</strong> Once a <code>feedLabel</code> is set for a product it becomes part of the <a href="https://developers.google.com/shopping-content/guides/products/feed-labels#offer_id">product Id</a>. This means you can’t modify the <code>feedLabel</code> for that product (this is similar to how <code>language</code> works). If you wish to change the <code>feedLabel</code> you will need to create a new product with a different product Id.</li> </ul> <strong>What’s coming next</strong><br /><br /> <em>Products:</em><br /> Once the gradual rollout of feed labels in the Merchant Center UI is complete, we will accept <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products/insert"><code>Products.insert</code></a> calls with <code>feedLabel</code> set to any string. At this point, including <code>targetCountry</code> will become optional.<br /><br /> <em>Datafeeds:</em><br /> In late September, we will also update the <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/datafeeds"><code>datafeeds</code></a> resource to include feedLabel in the Content API for Shopping.<br /><br /> <strong>Opt out of receiving products and datafeeds without a country</strong><br /> If you’re concerned your codebase cannot handle products and datafeeds without a country, and you want to opt out of receiving them via the Content API for Shopping, fill out the following form: <a href="https://docs.google.com/forms/d/e/1FAIpQLSezbSFNu6Hu3XCYVo7qs0hD8yjQML-3pklC_cp-3z-tJnjhgA/viewform?usp=sf_link">Feed label replaces target country in the Content API for Shopping - temporary exemption</a>. When you’re ready to support <code>feedLabel</code>, you can opt back in to receiving these offers.<br />If you have any questions about this change, please visit the <a href="https://groups.google.com/forum/#!forum/google-content-api-for-shopping">Content API for Shopping forum</a>.<br /> <span class='byline-author'><img height="40" src="https://lh5.googleusercontent.com/DDE180jto6tcgXfgP8OUY-mE6P57Zpll9sZ8d1WDzi98Yfa0ZIsMFtg4RI-XDuwszxfcd58rPtmss-jzzFkdLdTS6cKlMX0mZi5SFUe8uYi2c0x4VTSEpFNO8fcd6b6WBVpGxbC6rA" style="vertical-align: middle; border:none;" width="40"/> Ian Ballantyne, Content API for Shopping 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:Country targeting update for products in Content API for Shopping and Google Ads API&url=http://ads-developers.googleblog.com/2022/09/country-targeting-update-for-products.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/2022/09/country-targeting-update-for-products.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/2022/09/country-targeting-update-for-products.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/content_api' rel='tag'> content_api </a> , <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/shopping' rel='tag'> shopping </a> </span> </div> </div> </div> <div class='post' data-id='6262728517595280370' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2022/08/country-targeting-in-shopping-ads.html' itemprop='url' title='Country targeting in Shopping Ads campaigns is changing in August 2022'> Country targeting in Shopping Ads campaigns is changing in August 2022 </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Wednesday, August 10, 2022 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> We’re starting a phased rollout of a change to country targeting in Google Ads and Merchant Center. The rollout has already begun and will continue into September.<br /><br /> See <a href="http://ads-developers.googleblog.com/2022/08/feed-label-replaces-target-country-in.html">Feed label replaces target country in Content API for Shopping</a> for how this change impacts the <a href="https://developers.google.com/shopping-content/guides/quickstart">Content API for Shopping</a>.<br /><br /> When the change reaches you, you’ll be able to set the <a href="https://developers.google.com/google-ads/api/reference/rpc/v11/Campaign.ShoppingSetting#feed_label"><code>feed_label</code></a> field in <code>ShoppingSetting</code> for Shopping & Performance Max campaigns in the UI and API. Due to this change, you may begin seeing campaigns with <code>feed_labels</code> set in the UI and API for certain merchants. Campaigns with <ocde>feed_label</code> not set to a 2-letter CLDR territory code can serve ads in any country as long as the campaign has the appropriate <code>geoTargeting</code> and the appropriate target countries are set in Merchant Center.<br /><br /> <strong>This change doesn’t impact the countries targeted by existing shopping feeds. You don’t need to update existing shopping feeds or campaigns.</strong><br /><br /> <strong>What’s changing in Merchant Center</strong><br /> Today, Google Merchant Center feeds require you to select a primary <strong>country of sale</strong> target (<a href="https://developers.google.com/google-ads/api/reference/rpc/v11/Campaign.ShoppingSetting#sales_country"><code>sales_country</code></a> in Google Ads API), with the option to provide additional target countries once the feed has been created. Starting in August 23, 2022, we will make the following changes to how target countries are organized in the Merchant Center UI: <ul> <li>The primary <strong>country of sale</strong> option will be removed in Google Merchant Center. <strong>Country of sale</strong> will be replaced by the more generic <code>feed_label</code> that can accept any string, including any existing 2 letter CDLR country code.</li> <li>The current <code>additional countries</code> field will be renamed <code>target countries</code>, and will include all countries you want the feed to target.</li> </ul> <strong>What’s changing in Google Ads UI and API</strong><br /> The current <a href="https://developers.google.com/google-ads/api/reference/rpc/v11/Campaign.ShoppingSetting#sales_country"><code>sales_country</code></a> field for all available Shopping campaign types, including Performance Max, will eventually be replaced by <a href="https://developers.google.com/google-ads/api/reference/rpc/v11/Campaign.ShoppingSetting#feed_label"><code>feed_label</code></a>. Note that we will keep the <a href="https://developers.google.com/google-ads/api/reference/rpc/v11/Campaign.ShoppingSetting#sales_country"><code>sales_country</code></a> field for backwards compatibility until at least Q2 2023. Right now, you can continue to use <code>sales_country</code> in your campaigns.<br /><br /> You can create a <code>feed_label</code> in Google Merchant Center or the Content API. Feed labels let you group different offers according to a common trait, like language (or a country, as you’ve currently been doing). You can also use <code>feed_label</code>s in Google Ads campaigns to target the relevant offers (all products with the same Merchant Center feed label).<br /><br /> The ads for the offers that match the <code>feed_label</code> will show based on the following: <ol> <li>The countries you selected as target countries in Merchant Center.</li> <li>Your campaign’s geo targeting. <strong>Note</strong>: The default campaign targeting behavior (if you do not geo target) is that your products will serve in all your Merchant Center target countries.</li> </ol> <strong>How you’re impacted</strong><br /> The phased rollout to enable this feature in Google Ads UI and API has already started, and is expected to be complete by the end of September 2022. For existing feeds, <code>feed_label</code> will automatically be set to the two-letter territory code of the existing <code>sales_country</code> field to avoid interrupting existing targeting.<br /><br /> However, if you want to support new users or new feeds that only have a <code>feed_label</code> and <strong>not</strong> a <code>sales_country</code> field, we recommend you update your code by August 23, 2022 to accommodate customers who will use campaigns that only have a <code>feed_label</code> (without a <code>sales_country</code>).<br /> <img height="100%" src="https://lh4.googleusercontent.com/LddBoLrPfhyYmblNHyxhzv02E8qyVxra9eTqi3EHriOCZmmDcOgHOi9dVIYpFVZawtYqUUWMwQRd8XwjdlzoZH1KXDE-IKcSQa11kGloAmwISO11sH_zLzD1HRNb3qnJAhmsvmND3tmUtV5kh2xFtXc" width="100%" /><br /> If you have any questions or concerns, please don't hesitate to contact us via the <a href="https://groups.google.com/g/adwords-api">forum</a>.<br /> <span class='byline-author'><img height="40" src="https://lh5.googleusercontent.com/wsjBn43yuNVLhNQSKybeSaSLqRlzaojCO4PYKPs_ySxkJ1gPTJRd4ozaAyDdOM4Xbs-gecC-TCrOXcgZWN9tmJrkAPmYsYJFyU5vb4AbHje633MCnqfVtwoEYIfqDjdcFRedbIX6qBU9vS8BGz1obP_m4GDjO65zlxSMY-GmXZZXc5wCwe08PvqQ73_JHRM" style="vertical-align: middle; border:none;" width="40"/> Benji Rothman, Content API for Shopping 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 starting a phased rollout of a change to country targeting in Google Ads and Merchant Center. The rollout has already begun and will continue into September.<br /><br /> See <a href="http://ads-developers.googleblog.com/2022/08/feed-label-replaces-target-country-in.html">Feed label replaces target country in Content API for Shopping</a> for how this change impacts the <a href="https://developers.google.com/shopping-content/guides/quickstart">Content API for Shopping</a>.<br /><br /> When the change reaches you, you’ll be able to set the <a href="https://developers.google.com/google-ads/api/reference/rpc/v11/Campaign.ShoppingSetting#feed_label"><code>feed_label</code></a> field in <code>ShoppingSetting</code> for Shopping & Performance Max campaigns in the UI and API. Due to this change, you may begin seeing campaigns with <code>feed_labels</code> set in the UI and API for certain merchants. Campaigns with <ocde>feed_label</code> not set to a 2-letter CLDR territory code can serve ads in any country as long as the campaign has the appropriate <code>geoTargeting</code> and the appropriate target countries are set in Merchant Center.<br /><br /> <strong>This change doesn’t impact the countries targeted by existing shopping feeds. You don’t need to update existing shopping feeds or campaigns.</strong><br /><br /> <strong>What’s changing in Merchant Center</strong><br /> Today, Google Merchant Center feeds require you to select a primary <strong>country of sale</strong> target (<a href="https://developers.google.com/google-ads/api/reference/rpc/v11/Campaign.ShoppingSetting#sales_country"><code>sales_country</code></a> in Google Ads API), with the option to provide additional target countries once the feed has been created. Starting in August 23, 2022, we will make the following changes to how target countries are organized in the Merchant Center UI: <ul> <li>The primary <strong>country of sale</strong> option will be removed in Google Merchant Center. <strong>Country of sale</strong> will be replaced by the more generic <code>feed_label</code> that can accept any string, including any existing 2 letter CDLR country code.</li> <li>The current <code>additional countries</code> field will be renamed <code>target countries</code>, and will include all countries you want the feed to target.</li> </ul> <strong>What’s changing in Google Ads UI and API</strong><br /> The current <a href="https://developers.google.com/google-ads/api/reference/rpc/v11/Campaign.ShoppingSetting#sales_country"><code>sales_country</code></a> field for all available Shopping campaign types, including Performance Max, will eventually be replaced by <a href="https://developers.google.com/google-ads/api/reference/rpc/v11/Campaign.ShoppingSetting#feed_label"><code>feed_label</code></a>. Note that we will keep the <a href="https://developers.google.com/google-ads/api/reference/rpc/v11/Campaign.ShoppingSetting#sales_country"><code>sales_country</code></a> field for backwards compatibility until at least Q2 2023. Right now, you can continue to use <code>sales_country</code> in your campaigns.<br /><br /> You can create a <code>feed_label</code> in Google Merchant Center or the Content API. Feed labels let you group different offers according to a common trait, like language (or a country, as you’ve currently been doing). You can also use <code>feed_label</code>s in Google Ads campaigns to target the relevant offers (all products with the same Merchant Center feed label).<br /><br /> The ads for the offers that match the <code>feed_label</code> will show based on the following: <ol> <li>The countries you selected as target countries in Merchant Center.</li> <li>Your campaign’s geo targeting. <strong>Note</strong>: The default campaign targeting behavior (if you do not geo target) is that your products will serve in all your Merchant Center target countries.</li> </ol> <strong>How you’re impacted</strong><br /> The phased rollout to enable this feature in Google Ads UI and API has already started, and is expected to be complete by the end of September 2022. For existing feeds, <code>feed_label</code> will automatically be set to the two-letter territory code of the existing <code>sales_country</code> field to avoid interrupting existing targeting.<br /><br /> However, if you want to support new users or new feeds that only have a <code>feed_label</code> and <strong>not</strong> a <code>sales_country</code> field, we recommend you update your code by August 23, 2022 to accommodate customers who will use campaigns that only have a <code>feed_label</code> (without a <code>sales_country</code>).<br /> <img height="100%" src="https://lh4.googleusercontent.com/LddBoLrPfhyYmblNHyxhzv02E8qyVxra9eTqi3EHriOCZmmDcOgHOi9dVIYpFVZawtYqUUWMwQRd8XwjdlzoZH1KXDE-IKcSQa11kGloAmwISO11sH_zLzD1HRNb3qnJAhmsvmND3tmUtV5kh2xFtXc" width="100%" /><br /> If you have any questions or concerns, please don't hesitate to contact us via the <a href="https://groups.google.com/g/adwords-api">forum</a>.<br /> <span class='byline-author'><img height="40" src="https://lh5.googleusercontent.com/wsjBn43yuNVLhNQSKybeSaSLqRlzaojCO4PYKPs_ySxkJ1gPTJRd4ozaAyDdOM4Xbs-gecC-TCrOXcgZWN9tmJrkAPmYsYJFyU5vb4AbHje633MCnqfVtwoEYIfqDjdcFRedbIX6qBU9vS8BGz1obP_m4GDjO65zlxSMY-GmXZZXc5wCwe08PvqQ73_JHRM" style="vertical-align: middle; border:none;" width="40"/> Benji Rothman, Content API for Shopping 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:Country targeting in Shopping Ads campaigns is changing in August 2022&url=http://ads-developers.googleblog.com/2022/08/country-targeting-in-shopping-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/2022/08/country-targeting-in-shopping-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/2022/08/country-targeting-in-shopping-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/google_ads_api' rel='tag'> google_ads_api </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/shopping' rel='tag'> shopping </a> </span> </div> </div> </div> <div class='post' data-id='2104338197692959081' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2022/08/feed-label-replaces-target-country-in.html' itemprop='url' title='Feed label replaces target country in Content API for Shopping'> Feed label replaces target country in Content API for Shopping </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Wednesday, August 10, 2022 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <strong>On August 23, 2022 we will gradually start updating the way country targeting works for shopping products.</strong> As a result, the <code>targetCountry</code> field for newly inserted products and the <code>country</code> field for new datafeeds may be empty in the <a href="https://developers.google.com/shopping-content/guides/quickstart">Content API for Shopping</a>. While <code>targetCountry</code> and <code>country</code> are now deprecated, there are no plans to remove these fields from v2.1 to preserve backward compatibility. We recommend using <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products#Product.FIELDS.feed_label">feedLabel</a> to name new products and feeds, and using the <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products#ProductShipping">shipping</a> field to specify the countries to target.<br /><br /> <strong>If you're accessing accounts whose product data you don’t have total control over and you are unsure whether the products or datafeeds will have ONLY a <code>feedLabel</code> field beginning in late August, we recommend you update your code to support the <code>feedLabel</code> field.</strong><br /><br /> This upcoming change might impact or break your API integration if your application cannot handle <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products">products</a> without a <code>targetCountry</code> or <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/datafeeds#DatafeedTarget">datafeeds</a> without a <code>country</code>.<br /><br /> See <a href="http://ads-developers.googleblog.com/2022/08/country-targeting-in-shopping-ads.html">Country targeting in Shopping Ads campaigns is changing in August 2022</a> for how this change will impact Google Ads.<br /><br /> <strong>What’s already changed</strong><br /> On <strong>August 8, 2022</strong>, the <a href="https://developers.google.com/shopping-content/guides/quickstart">Content API for Shopping</a> added the <code>feedLabel</code> field to the products resource. As of August 8, 2022, <code>feedLabel</code> can only accept and return two-letter <a href="https://github.com/unicode-org/cldr/blob/latest/common/main/en.xml">CLDR territory codes</a>. Products now require either <code>targetCountry</code> or <code>feedLabel</code>. As long as the <code>feedLabel</code> set is a valid two-letter CLDR code, <code>targetCountry</code> will be backfilled for compatibility.<br /><br /> We have changed the definition of the product identifier (<a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products#Product.FIELDS.id">the id</a>, i.e. the <code>REST ID</code>). <code>feedLabel</code> now replaces <code>targetCountry</code> as the third component of the identifier, so it is no longer just a valid two-letter CLDR code. You can find an example shown <a href="https://developers.google.com/shopping-content/guides/products/feed-labels#offer_id">here</a>.<br /><br /> <strong>This change to product identifier is backwards compatible, so existing REST IDs for existing products will continue to work without change.</strong><br /><br /> <strong><em>Important</em></strong>: <code>feedLabel</code> doesn’t impact targeting. This means if you use <code>feedLabel</code> instead of <code>targetCountry</code>, you need to specify all countries you want to target in the <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products#ProductShipping">shipping</a> attribute.<br /><br /> <strong>What’s coming next</strong><br /> We’re starting a gradual rollout to all users on <strong>August 23, 2022</strong>. When the upcoming change reaches you, you’ll be able to create a product or datafeed with any string (not just a two-letter CLDR code) as the <code>feedLabel</code> via the API or the Merchant Center. You’ll still be able to use a two-letter country code in <code>targetCountry</code> for backwards compatibility.<br /><br /> After the upcoming change, if you submit a <code>feedLabel</code> that isn’t a CLDR territory code, the API will return those products without a <code>targetCountry</code> or those datafeeds without a <code>country</code>. Instead, only their <code>feedLabel</code> will be populated. This may break your codebase if your implementation expects a value in <code>targetCountry</code> for products or a value in <code>country</code> for datafeeds.<br /><br /> <strong>How you’re impacted</strong><br /> <strong>Products</strong><br /> If you continue inserting your products with a <code>targetCountry</code>, you are not required to make any changes at this time, as the <code>feedLabel</code> value in the <code>products</code> REST ID will be identical to the <code>targetCountry</code> you inserted.<br /><br /> However, if you use a <code>feedLabel</code> in Merchant Center or the API that is not a CLDR territory code, we highly recommend you update your codebase to use <code>feedLabels</code> on all product insertions instead of <code>targetCountry</code> to avoid issues with your API integration.<br /><br /> <strong>All products inserted with a <code>feedLabel</code> instead of <code>targetCountry</code>, even if the <code>feedLabel</code> is a CLDR territory code, will not automatically target that country. You must explicitly set the countries you want to target via the <a href="https://developers.google.com/shopping-content/guides/targeting-ads-in-multiple-countries#enable_ad_targeting_and_list_your_product_in_multiple_countries_for_specific_products"><code>shipping</code> field.</a></strong><br /><br /> <strong>Datafeeds</strong><br /> Note that starting August 23, 2022, <strong>feed label</strong> will replace the current <strong>country of sale</strong> value in the Merchant Center UI. The Content API will be expected to support this change via the datafeeds service starting mid-September. These new datafeeds will only have the <code>feedLabel</code> field set, not the <code>country</code> field, unless you explicitly set the <code>feedLabel</code> to a CLDR territory code.<br /><br /> To support new users, we highly recommend you update your codebase to use <code>feedLabels</code> on all datafeeds instead of <code>country</code> to avoid issues with your API integration.<br /><br /> <strong>Recommendation for third party integrations</strong><br /> If you’re a third party or agency that manages your customers' accounts for them, we highly recommend you check your codebase is able handle products without a <code>targetCountry</code> and datafeeds without a <code>country</code> before August 23, 2022.<br /><br /> After the gradual rollout starting in late August, your merchants will be able to modify products directly in Merchant Center to create a product with a <code>feedLabel</code> that is not a valid two-letter CLDR territory code. When this product is returned via <code>products.list</code>, you could encounter issues if your implementation expects a value in <code>targetCountry</code>.<br /><br /> As well, after the gradual rollout in late August, new users will create datafeeds that by default have a <code>feedLabel</code> and no <code>country</code> field. When this datafeed is returned via <code>datafeeds.list</code>, you could encounter issues if your implementation expects a value in <code>country</code>.<br /><br /> How to detect if you have offers without a country in your Merchant Center account <ol> <li>Make a request to <code>products.list</code>.</li> <li>Filter your products to search for products where the <code>targetCountry</code> field does not exist on the product.</li> <li>If any products appear, you have offers without a country in your Merchant Center.</li> </ol> <strong>Detailed Changes</strong><br /> To view a detailed breakdown of the changes to the Content API by this feature launch, see the guide <a href="https://developers.google.com/shopping-content/guides/products/feed-labels">here</a>.<br /><br /> <strong>Datafeeds Service</strong><br /> Starting mid-September the <code>datafeeds</code> service will begin to return <code>feedLabel</code> on all datafeeds, which will be the <code>country</code> value if that is how the <code>datafeed</code> was created. The <code>datafeeds</code> service will also return the <code>country</code> field if the <code>feedLabel</code> is a valid country code for backwards compatibility.<br /><br /> <strong>Opt out of receiving products and datafeeds without a country</strong><br /> If you’re concerned your codebase cannot handle products and datafeeds without a country, and you want to opt out of receiving them via the Content API after August 23, then please fill out the following form: <a href="https://docs.google.com/forms/d/e/1FAIpQLSezbSFNu6Hu3XCYVo7qs0hD8yjQML-3pklC_cp-3z-tJnjhgA/viewform?usp=sf_link">Feed label replaces target country in the Content API for Shopping - temporary exemption</a>. Once you have fully supported feedLabel, you will be able to opt back in to receiving these offers. <br /><br /> If you have any questions or concerns, please don't hesitate to contact us via the <a href="https://groups.google.com/g/google-content-api-for-shopping">forum</a>.<br /> <span class='byline-author'><img height="40" src="https://lh6.googleusercontent.com/3UR5v4kdd7GrfXL7qxf9q5dUhvFCuGpErSk9b_VLFBrxtt2a8nNB4ka6wnxAjf_cESedQlAsF96iW-aNPGDANC2e0PMddceUlVVty7QfxD9qtapM1fRdGnU3qhDOEEQgXuJoQ3qaGumt7JfWD4wEcLsY" style="vertical-align: middle; border:none;" width="40"/> Benji Rothman, Content API for Shopping Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> <strong>On August 23, 2022 we will gradually start updating the way country targeting works for shopping products.</strong> As a result, the <code>targetCountry</code> field for newly inserted products and the <code>country</code> field for new datafeeds may be empty in the <a href="https://developers.google.com/shopping-content/guides/quickstart">Content API for Shopping</a>. While <code>targetCountry</code> and <code>country</code> are now deprecated, there are no plans to remove these fields from v2.1 to preserve backward compatibility. We recommend using <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products#Product.FIELDS.feed_label">feedLabel</a> to name new products and feeds, and using the <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products#ProductShipping">shipping</a> field to specify the countries to target.<br /><br /> <strong>If you're accessing accounts whose product data you don’t have total control over and you are unsure whether the products or datafeeds will have ONLY a <code>feedLabel</code> field beginning in late August, we recommend you update your code to support the <code>feedLabel</code> field.</strong><br /><br /> This upcoming change might impact or break your API integration if your application cannot handle <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products">products</a> without a <code>targetCountry</code> or <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/datafeeds#DatafeedTarget">datafeeds</a> without a <code>country</code>.<br /><br /> See <a href="http://ads-developers.googleblog.com/2022/08/country-targeting-in-shopping-ads.html">Country targeting in Shopping Ads campaigns is changing in August 2022</a> for how this change will impact Google Ads.<br /><br /> <strong>What’s already changed</strong><br /> On <strong>August 8, 2022</strong>, the <a href="https://developers.google.com/shopping-content/guides/quickstart">Content API for Shopping</a> added the <code>feedLabel</code> field to the products resource. As of August 8, 2022, <code>feedLabel</code> can only accept and return two-letter <a href="https://github.com/unicode-org/cldr/blob/latest/common/main/en.xml">CLDR territory codes</a>. Products now require either <code>targetCountry</code> or <code>feedLabel</code>. As long as the <code>feedLabel</code> set is a valid two-letter CLDR code, <code>targetCountry</code> will be backfilled for compatibility.<br /><br /> We have changed the definition of the product identifier (<a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products#Product.FIELDS.id">the id</a>, i.e. the <code>REST ID</code>). <code>feedLabel</code> now replaces <code>targetCountry</code> as the third component of the identifier, so it is no longer just a valid two-letter CLDR code. You can find an example shown <a href="https://developers.google.com/shopping-content/guides/products/feed-labels#offer_id">here</a>.<br /><br /> <strong>This change to product identifier is backwards compatible, so existing REST IDs for existing products will continue to work without change.</strong><br /><br /> <strong><em>Important</em></strong>: <code>feedLabel</code> doesn’t impact targeting. This means if you use <code>feedLabel</code> instead of <code>targetCountry</code>, you need to specify all countries you want to target in the <a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products#ProductShipping">shipping</a> attribute.<br /><br /> <strong>What’s coming next</strong><br /> We’re starting a gradual rollout to all users on <strong>August 23, 2022</strong>. When the upcoming change reaches you, you’ll be able to create a product or datafeed with any string (not just a two-letter CLDR code) as the <code>feedLabel</code> via the API or the Merchant Center. You’ll still be able to use a two-letter country code in <code>targetCountry</code> for backwards compatibility.<br /><br /> After the upcoming change, if you submit a <code>feedLabel</code> that isn’t a CLDR territory code, the API will return those products without a <code>targetCountry</code> or those datafeeds without a <code>country</code>. Instead, only their <code>feedLabel</code> will be populated. This may break your codebase if your implementation expects a value in <code>targetCountry</code> for products or a value in <code>country</code> for datafeeds.<br /><br /> <strong>How you’re impacted</strong><br /> <strong>Products</strong><br /> If you continue inserting your products with a <code>targetCountry</code>, you are not required to make any changes at this time, as the <code>feedLabel</code> value in the <code>products</code> REST ID will be identical to the <code>targetCountry</code> you inserted.<br /><br /> However, if you use a <code>feedLabel</code> in Merchant Center or the API that is not a CLDR territory code, we highly recommend you update your codebase to use <code>feedLabels</code> on all product insertions instead of <code>targetCountry</code> to avoid issues with your API integration.<br /><br /> <strong>All products inserted with a <code>feedLabel</code> instead of <code>targetCountry</code>, even if the <code>feedLabel</code> is a CLDR territory code, will not automatically target that country. You must explicitly set the countries you want to target via the <a href="https://developers.google.com/shopping-content/guides/targeting-ads-in-multiple-countries#enable_ad_targeting_and_list_your_product_in_multiple_countries_for_specific_products"><code>shipping</code> field.</a></strong><br /><br /> <strong>Datafeeds</strong><br /> Note that starting August 23, 2022, <strong>feed label</strong> will replace the current <strong>country of sale</strong> value in the Merchant Center UI. The Content API will be expected to support this change via the datafeeds service starting mid-September. These new datafeeds will only have the <code>feedLabel</code> field set, not the <code>country</code> field, unless you explicitly set the <code>feedLabel</code> to a CLDR territory code.<br /><br /> To support new users, we highly recommend you update your codebase to use <code>feedLabels</code> on all datafeeds instead of <code>country</code> to avoid issues with your API integration.<br /><br /> <strong>Recommendation for third party integrations</strong><br /> If you’re a third party or agency that manages your customers' accounts for them, we highly recommend you check your codebase is able handle products without a <code>targetCountry</code> and datafeeds without a <code>country</code> before August 23, 2022.<br /><br /> After the gradual rollout starting in late August, your merchants will be able to modify products directly in Merchant Center to create a product with a <code>feedLabel</code> that is not a valid two-letter CLDR territory code. When this product is returned via <code>products.list</code>, you could encounter issues if your implementation expects a value in <code>targetCountry</code>.<br /><br /> As well, after the gradual rollout in late August, new users will create datafeeds that by default have a <code>feedLabel</code> and no <code>country</code> field. When this datafeed is returned via <code>datafeeds.list</code>, you could encounter issues if your implementation expects a value in <code>country</code>.<br /><br /> How to detect if you have offers without a country in your Merchant Center account <ol> <li>Make a request to <code>products.list</code>.</li> <li>Filter your products to search for products where the <code>targetCountry</code> field does not exist on the product.</li> <li>If any products appear, you have offers without a country in your Merchant Center.</li> </ol> <strong>Detailed Changes</strong><br /> To view a detailed breakdown of the changes to the Content API by this feature launch, see the guide <a href="https://developers.google.com/shopping-content/guides/products/feed-labels">here</a>.<br /><br /> <strong>Datafeeds Service</strong><br /> Starting mid-September the <code>datafeeds</code> service will begin to return <code>feedLabel</code> on all datafeeds, which will be the <code>country</code> value if that is how the <code>datafeed</code> was created. The <code>datafeeds</code> service will also return the <code>country</code> field if the <code>feedLabel</code> is a valid country code for backwards compatibility.<br /><br /> <strong>Opt out of receiving products and datafeeds without a country</strong><br /> If you’re concerned your codebase cannot handle products and datafeeds without a country, and you want to opt out of receiving them via the Content API after August 23, then please fill out the following form: <a href="https://docs.google.com/forms/d/e/1FAIpQLSezbSFNu6Hu3XCYVo7qs0hD8yjQML-3pklC_cp-3z-tJnjhgA/viewform?usp=sf_link">Feed label replaces target country in the Content API for Shopping - temporary exemption</a>. Once you have fully supported feedLabel, you will be able to opt back in to receiving these offers. <br /><br /> If you have any questions or concerns, please don't hesitate to contact us via the <a href="https://groups.google.com/g/google-content-api-for-shopping">forum</a>.<br /> <span class='byline-author'><img height="40" src="https://lh6.googleusercontent.com/3UR5v4kdd7GrfXL7qxf9q5dUhvFCuGpErSk9b_VLFBrxtt2a8nNB4ka6wnxAjf_cESedQlAsF96iW-aNPGDANC2e0PMddceUlVVty7QfxD9qtapM1fRdGnU3qhDOEEQgXuJoQ3qaGumt7JfWD4wEcLsY" style="vertical-align: middle; border:none;" width="40"/> Benji Rothman, Content API for Shopping 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:Feed label replaces target country in Content API for Shopping&url=http://ads-developers.googleblog.com/2022/08/feed-label-replaces-target-country-in.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/2022/08/feed-label-replaces-target-country-in.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/2022/08/feed-label-replaces-target-country-in.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/content_api' rel='tag'> content_api </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/shopping' rel='tag'> shopping </a> </span> </div> </div> </div> <div class='post' data-id='2762725598508640757' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2022/07/performance-max-upgrade-has-started.html' itemprop='url' title='Performance Max upgrade has started'> Performance Max upgrade has started </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Friday, July 22, 2022 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <p> As we <a href="https://ads-developers.googleblog.com/2022/01/ssc-lc-upgrade-performance-max.html">announced</a> in January and <a href="https://ads-developers.googleblog.com/2022/03/update-performance-max-upgrade.html">again</a> in March, existing and future <a href="https://developers.google.com/google-ads/api/docs/shopping-ads/create-campaign#smart_shopping_campaigns">Smart Shopping campaigns</a> (SSC) will automatically upgrade to <a href="https://developers.google.com/google-ads/api/docs/performance-max/overview?hl=en">Performance Max</a> campaigns between July and September 2022. The self-upgrade started in April 2022. The <a href="https://support.google.com/google-ads/answer/12368488">automatic upgrade has commenced</a> (related <a href="https://blog.google/products/ads-commerce/upgrade-to-performance-max-for-holidays/">blog post</a>) and should complete by September 30, 2022. This blog post adds details for our API developers. </p> <p> Starting July 25, 2022, accounts <em>without</em> active or paused SSCs (including new accounts) will no longer be able to create SSCs. </p> <p> Once an account <em>with</em> active or paused SSCs has been automatically upgraded from SSC to Performance Max, no new SSC creation will be permitted in any surface including the <a href="https://ads.google.com/">UI</a>, the <a href="https://developers.google.com/google-ads/api/docs/start">API</a>, <a href="https://developers.google.com/google-ads/scripts/docs/start">Google Ads Scripts</a> or <a href="https://support.google.com/google-ads/editor/answer/2484521">Google Ads Editor</a>. </p> <p> The Google Ads API v11 included a new <code><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Recommendation.UpgradeSmartShoppingCampaignToPerformanceMaxRecommendation">UpgradeSmartShoppingCampaignToPerformanceMaxRecommendation</a></code> recommendation type to allow developers to upgrade a given SSC to a Performance Max campaign. This can still be applied to an account that has not yet automatically upgraded. <p> As mentioned in the <a href="https://ads-developers.googleblog.com/2022/01/ssc-lc-upgrade-performance-max.html">January blog post</a>, Local campaigns will also be automatically upgraded to Performance Max. An upcoming release of the Google Ads API will include a new recommendation type to allow developers to upgrade an eligible <a href="https://developers.google.com/google-ads/api/docs/local-campaigns/overview">Local campaign</a> to a Performance Max campaign. </p> <h2>Additional information</h2> <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://avatars.githubusercontent.com/u/1339705?s=460&v=4" style="vertical-align: middle; border:none;" width="40"> <a href="https://github.com/wihl" rel="author">David Wihl</a>, 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> As we <a href="https://ads-developers.googleblog.com/2022/01/ssc-lc-upgrade-performance-max.html">announced</a> in January and <a href="https://ads-developers.googleblog.com/2022/03/update-performance-max-upgrade.html">again</a> in March, existing and future <a href="https://developers.google.com/google-ads/api/docs/shopping-ads/create-campaign#smart_shopping_campaigns">Smart Shopping campaigns</a> (SSC) will automatically upgrade to <a href="https://developers.google.com/google-ads/api/docs/performance-max/overview?hl=en">Performance Max</a> campaigns between July and September 2022. The self-upgrade started in April 2022. The <a href="https://support.google.com/google-ads/answer/12368488">automatic upgrade has commenced</a> (related <a href="https://blog.google/products/ads-commerce/upgrade-to-performance-max-for-holidays/">blog post</a>) and should complete by September 30, 2022. This blog post adds details for our API developers. </p> <p> Starting July 25, 2022, accounts <em>without</em> active or paused SSCs (including new accounts) will no longer be able to create SSCs. </p> <p> Once an account <em>with</em> active or paused SSCs has been automatically upgraded from SSC to Performance Max, no new SSC creation will be permitted in any surface including the <a href="https://ads.google.com/">UI</a>, the <a href="https://developers.google.com/google-ads/api/docs/start">API</a>, <a href="https://developers.google.com/google-ads/scripts/docs/start">Google Ads Scripts</a> or <a href="https://support.google.com/google-ads/editor/answer/2484521">Google Ads Editor</a>. </p> <p> The Google Ads API v11 included a new <code><a href="https://developers.google.com/google-ads/api/reference/rpc/latest/Recommendation.UpgradeSmartShoppingCampaignToPerformanceMaxRecommendation">UpgradeSmartShoppingCampaignToPerformanceMaxRecommendation</a></code> recommendation type to allow developers to upgrade a given SSC to a Performance Max campaign. This can still be applied to an account that has not yet automatically upgraded. <p> As mentioned in the <a href="https://ads-developers.googleblog.com/2022/01/ssc-lc-upgrade-performance-max.html">January blog post</a>, Local campaigns will also be automatically upgraded to Performance Max. An upcoming release of the Google Ads API will include a new recommendation type to allow developers to upgrade an eligible <a href="https://developers.google.com/google-ads/api/docs/local-campaigns/overview">Local campaign</a> to a Performance Max campaign. </p> <h2>Additional information</h2> <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://avatars.githubusercontent.com/u/1339705?s=460&v=4" style="vertical-align: middle; border:none;" width="40"> <a href="https://github.com/wihl" rel="author">David Wihl</a>, 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:Performance Max upgrade has started&url=http://ads-developers.googleblog.com/2022/07/performance-max-upgrade-has-started.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/2022/07/performance-max-upgrade-has-started.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/2022/07/performance-max-upgrade-has-started.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/migration' rel='tag'> migration </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/shopping' rel='tag'> shopping </a> </span> </div> </div> </div> <div class='post' data-id='8023096583356717283' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2022/06/merchant-ids-as-64-bit-in-content-api.html' itemprop='url' title='Merchant IDs as 64-bit in Content API for Shopping'> Merchant IDs as 64-bit in Content API for Shopping </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Tuesday, June 21, 2022 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> In the <a href="https://developers.google.com/shopping-content/guides/quickstart">Content API for Shopping</a>, Merchant IDs are now 64-bit signed integers. Applications that integrate with the Content API must be able to handle ID values in that range.<br /><br /> Historically, Merchant IDs in the Content API for Shopping were within the maximum value of a 32-bit signed integer, but have recently exceeded this range. In order to avoid any issues, please make sure your applications are fully compliant with IDs within a range of 64-bit signed integer values.<br /><br /> If you have any questions or concerns, please don't hesitate to contact us via the <a href="https://groups.google.com/g/google-content-api-for-shopping">forum</a>.<br /> <span class='byline-author'><img height="40" src="https://lh3.googleusercontent.com/tZyJveDVh02MS2trqC8nJRPOBWBl2QFOPKcPutqhF73YdSkmieTGvMsr95BNvw5mP9wNvNEmMZFtShDWCP_OWUj3baGWUNvaFu8PGBsWZB-I0MGZaOfy7MH50e-nMR-IHovHU6l3wKvnAr2BjO8lUCa_Kundo7khOx_Zv93CWKHElQQ61myhlo1a0ZwAZw" style="vertical-align: middle; border:none;" width="40"/> Benji Rothman, Content API for Shopping Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> In the <a href="https://developers.google.com/shopping-content/guides/quickstart">Content API for Shopping</a>, Merchant IDs are now 64-bit signed integers. Applications that integrate with the Content API must be able to handle ID values in that range.<br /><br /> Historically, Merchant IDs in the Content API for Shopping were within the maximum value of a 32-bit signed integer, but have recently exceeded this range. In order to avoid any issues, please make sure your applications are fully compliant with IDs within a range of 64-bit signed integer values.<br /><br /> If you have any questions or concerns, please don't hesitate to contact us via the <a href="https://groups.google.com/g/google-content-api-for-shopping">forum</a>.<br /> <span class='byline-author'><img height="40" src="https://lh3.googleusercontent.com/tZyJveDVh02MS2trqC8nJRPOBWBl2QFOPKcPutqhF73YdSkmieTGvMsr95BNvw5mP9wNvNEmMZFtShDWCP_OWUj3baGWUNvaFu8PGBsWZB-I0MGZaOfy7MH50e-nMR-IHovHU6l3wKvnAr2BjO8lUCa_Kundo7khOx_Zv93CWKHElQQ61myhlo1a0ZwAZw" style="vertical-align: middle; border:none;" width="40"/> Benji Rothman, Content API for Shopping 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:Merchant IDs as 64-bit in Content API for Shopping&url=http://ads-developers.googleblog.com/2022/06/merchant-ids-as-64-bit-in-content-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/2022/06/merchant-ids-as-64-bit-in-content-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/2022/06/merchant-ids-as-64-bit-in-content-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/content_api' rel='tag'> content_api </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/shopping' rel='tag'> shopping </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='45394885557413950' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='http://ads-developers.googleblog.com/2022/04/upcoming-enforcement-of-custom-batch.html' itemprop='url' title='Upcoming enforcement of custom batch limits in Content API for Shopping'> Upcoming enforcement of custom batch limits in Content API for Shopping </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Monday, April 4, 2022 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> Beginning May 31, 2022 we will enforce the following limits for <a href="https://developers.google.com/shopping-content/guides/how-tos/batch">custom batch</a> methods in the Content API for Shopping: <ul> <li>Maximum entries per request: 10,000</li> <li>Maximum transfer size per request: 32Mb (The payload received from the client)</li> </ul> We’re introducing these limits to enable the fair and stable use of Content API for Shopping. The limits will apply to the following endpoints: <ul> <li><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/accounts/custombatch">accounts.custombatch</a></li> <li><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/accountstatuses/custombatch">accountstatuses.custombatch</a></li> <li><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/accounttax/custombatch">accounttax.custombatch</a></li> <li><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/datafeeds/custombatch">datafeeds.custombatch</a></li> <li><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/datafeedstatuses/custombatch">datafeedstatuses.custombatch</a></li> <li><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/liasettings/custombatch">liasettings.custombatch</a></li> <li><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/localinventory/custombatch">localinventory.custombatch</a></li> <li><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/pos/custombatch">pos.custombatch</a></li> <li><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products/custombatch">products.custombatch</a></li> <li><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/productstatuses/custombatch">productstatuses.custombatch</a></li> <li><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/regionalinventory/custombatch">regionalinventory.custombatch</a></li> <li><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/returnaddress/custombatch">returnaddress.custombatch</a></li> <li><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/returnpolicy/custombatch">returnpolicy.custombatch</a></li> <li><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/shippingsettings/custombatch">shippingsettings.custombatch</a></li> </ul> After May 31, 2022, calls to any of these endpoints that exceed these limits will begin to fail with the following error: <ul> <li><code>request_too_large</code></li> </ul> Visit our <a href="https://developers.google.com/shopping-content/guides/how-tos/batch">batching guide</a> to learn more about methods for reducing your batch size. If you are looking for a reasonable batch size to implement, we recommend <strong>1,000 entries per request</strong> for each endpoint. Following this means you are unlikely to encounter the limits even if your batch size temporarily increases.<br /><br /> If you have any questions about implementing this change, please visit the <a href="https://groups.google.com/forum/#!forum/google-content-api-for-shopping">Content API for Shopping forum</a>.<br /> <span class='byline-author'><img height="40" src="https://lh5.googleusercontent.com/DDE180jto6tcgXfgP8OUY-mE6P57Zpll9sZ8d1WDzi98Yfa0ZIsMFtg4RI-XDuwszxfcd58rPtmss-jzzFkdLdTS6cKlMX0mZi5SFUe8uYi2c0x4VTSEpFNO8fcd6b6WBVpGxbC6rA" style="vertical-align: middle; border:none;" width="40"/> Ian Ballantyne, Content API for Shopping Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> Beginning May 31, 2022 we will enforce the following limits for <a href="https://developers.google.com/shopping-content/guides/how-tos/batch">custom batch</a> methods in the Content API for Shopping: <ul> <li>Maximum entries per request: 10,000</li> <li>Maximum transfer size per request: 32Mb (The payload received from the client)</li> </ul> We’re introducing these limits to enable the fair and stable use of Content API for Shopping. The limits will apply to the following endpoints: <ul> <li><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/accounts/custombatch">accounts.custombatch</a></li> <li><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/accountstatuses/custombatch">accountstatuses.custombatch</a></li> <li><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/accounttax/custombatch">accounttax.custombatch</a></li> <li><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/datafeeds/custombatch">datafeeds.custombatch</a></li> <li><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/datafeedstatuses/custombatch">datafeedstatuses.custombatch</a></li> <li><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/liasettings/custombatch">liasettings.custombatch</a></li> <li><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/localinventory/custombatch">localinventory.custombatch</a></li> <li><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/pos/custombatch">pos.custombatch</a></li> <li><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/products/custombatch">products.custombatch</a></li> <li><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/productstatuses/custombatch">productstatuses.custombatch</a></li> <li><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/regionalinventory/custombatch">regionalinventory.custombatch</a></li> <li><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/returnaddress/custombatch">returnaddress.custombatch</a></li> <li><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/returnpolicy/custombatch">returnpolicy.custombatch</a></li> <li><a href="https://developers.google.com/shopping-content/reference/rest/v2.1/shippingsettings/custombatch">shippingsettings.custombatch</a></li> </ul> After May 31, 2022, calls to any of these endpoints that exceed these limits will begin to fail with the following error: <ul> <li><code>request_too_large</code></li> </ul> Visit our <a href="https://developers.google.com/shopping-content/guides/how-tos/batch">batching guide</a> to learn more about methods for reducing your batch size. If you are looking for a reasonable batch size to implement, we recommend <strong>1,000 entries per request</strong> for each endpoint. Following this means you are unlikely to encounter the limits even if your batch size temporarily increases.<br /><br /> If you have any questions about implementing this change, please visit the <a href="https://groups.google.com/forum/#!forum/google-content-api-for-shopping">Content API for Shopping forum</a>.<br /> <span class='byline-author'><img height="40" src="https://lh5.googleusercontent.com/DDE180jto6tcgXfgP8OUY-mE6P57Zpll9sZ8d1WDzi98Yfa0ZIsMFtg4RI-XDuwszxfcd58rPtmss-jzzFkdLdTS6cKlMX0mZi5SFUe8uYi2c0x4VTSEpFNO8fcd6b6WBVpGxbC6rA" style="vertical-align: middle; border:none;" width="40"/> Ian Ballantyne, Content API for Shopping 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:Upcoming enforcement of custom batch limits in Content API for Shopping&url=http://ads-developers.googleblog.com/2022/04/upcoming-enforcement-of-custom-batch.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/2022/04/upcoming-enforcement-of-custom-batch.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/2022/04/upcoming-enforcement-of-custom-batch.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/content_api' rel='tag'> content_api </a> , <a class='label' href='http://ads-developers.googleblog.com/search/label/shopping' rel='tag'> shopping </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/shopping?updated-max=2022-04-04T08:01: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> <a dir='ltr' href='http://ads-developers.googleblog.com/search/label/release'> release </a> </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> <span dir='ltr'> shopping </span> </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'] = 'AOuZoY5TS9T3PwJhuH9snbVIngH0zS0URA:1740424412986';_WidgetManager._Init('//www.blogger.com/rearrange?blogID\x3d7815614485808579332','//ads-developers.googleblog.com/search/label/shopping','7815614485808579332'); _WidgetManager._SetDataContext([{'name': 'blog', 'data': {'blogId': '7815614485808579332', 'title': 'Google Ads Developer Blog', 'url': 'http://ads-developers.googleblog.com/search/label/shopping', 'canonicalUrl': 'http://ads-developers.googleblog.com/search/label/shopping', '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': 'shopping', 'pageName': 'shopping', 'pageTitle': 'Google Ads Developer Blog: shopping'}}, {'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/shopping', 'type': 'feed', 'isSingleItem': false, 'isMultipleItems': true, 'isError': false, 'isPage': false, 'isPost': false, 'isHomepage': false, 'isArchive': false, 'isSearch': true, 'isLabelSearch': true, 'search': {'label': 'shopping', 'resultsMessage': 'Showing posts with the label shopping', 'resultsMessageHtml': 'Showing posts with the label \x3cspan class\x3d\x27search-label\x27\x3eshopping\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\x3eshopping\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>