CINXE.COM

Third-party cookies and embed workflows  |  Privacy Sandbox  |  Google for Developers

<!doctype html> <html lang="en" dir="ltr"> <head> <meta name="google-signin-client-id" content="721724668570-nbkv1cfusk7kk4eni4pjvepaus73b13t.apps.googleusercontent.com"> <meta name="google-signin-scope" content="profile email https://www.googleapis.com/auth/developerprofiles https://www.googleapis.com/auth/developerprofiles.award"> <meta property="og:site_name" content="Google for Developers"> <meta property="og:type" content="website"><meta name="theme-color" content="#fff"><meta charset="utf-8"> <meta content="IE=Edge" http-equiv="X-UA-Compatible"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="manifest" href="/_pwa/developers/manifest.json" crossorigin="use-credentials"> <link rel="preconnect" href="//www.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.googleapis.com" crossorigin> <link rel="preconnect" href="//apis.google.com" crossorigin> <link rel="preconnect" href="//www.google-analytics.com" crossorigin><link rel="stylesheet" href="//fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"> <link rel="stylesheet" href="//fonts.googleapis.com/css2?family=Material+Icons&family=Material+Symbols+Outlined&display=block"><link rel="stylesheet" href="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/developers/css/app.css"> <link rel="shortcut icon" href="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/developers/images/favicon-new.png"> <link rel="apple-touch-icon" href="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/developers/images/touchicon-180-new.png"><link rel="canonical" href="https://developers.google.com/privacy-sandbox/cookies/guides/embeds"><link rel="search" type="application/opensearchdescription+xml" title="Google for Developers" href="https://developers.google.com/s/opensearch.xml"> <link rel="alternate" hreflang="en" href="https://developers.google.com/privacy-sandbox/cookies/guides/embeds" /><link rel="alternate" hreflang="x-default" href="https://developers.google.com/privacy-sandbox/cookies/guides/embeds" /><link rel="alternate" hreflang="ar" href="https://developers.google.com/privacy-sandbox/cookies/guides/embeds?hl=ar" /><link rel="alternate" hreflang="bn" href="https://developers.google.com/privacy-sandbox/cookies/guides/embeds?hl=bn" /><link rel="alternate" hreflang="zh-Hans" href="https://developers.google.com/privacy-sandbox/cookies/guides/embeds?hl=zh-cn" /><link rel="alternate" hreflang="zh-Hant" href="https://developers.google.com/privacy-sandbox/cookies/guides/embeds?hl=zh-tw" /><link rel="alternate" hreflang="fa" href="https://developers.google.com/privacy-sandbox/cookies/guides/embeds?hl=fa" /><link rel="alternate" hreflang="fr" href="https://developers.google.com/privacy-sandbox/cookies/guides/embeds?hl=fr" /><link rel="alternate" hreflang="de" href="https://developers.google.com/privacy-sandbox/cookies/guides/embeds?hl=de" /><link rel="alternate" hreflang="he" href="https://developers.google.com/privacy-sandbox/cookies/guides/embeds?hl=he" /><link rel="alternate" hreflang="hi" href="https://developers.google.com/privacy-sandbox/cookies/guides/embeds?hl=hi" /><link rel="alternate" hreflang="id" href="https://developers.google.com/privacy-sandbox/cookies/guides/embeds?hl=id" /><link rel="alternate" hreflang="it" href="https://developers.google.com/privacy-sandbox/cookies/guides/embeds?hl=it" /><link rel="alternate" hreflang="ja" href="https://developers.google.com/privacy-sandbox/cookies/guides/embeds?hl=ja" /><link rel="alternate" hreflang="ko" href="https://developers.google.com/privacy-sandbox/cookies/guides/embeds?hl=ko" /><link rel="alternate" hreflang="pl" href="https://developers.google.com/privacy-sandbox/cookies/guides/embeds?hl=pl" /><link rel="alternate" hreflang="pt-BR" href="https://developers.google.com/privacy-sandbox/cookies/guides/embeds?hl=pt-br" /><link rel="alternate" hreflang="ru" href="https://developers.google.com/privacy-sandbox/cookies/guides/embeds?hl=ru" /><link rel="alternate" hreflang="es-419" href="https://developers.google.com/privacy-sandbox/cookies/guides/embeds?hl=es-419" /><link rel="alternate" hreflang="th" href="https://developers.google.com/privacy-sandbox/cookies/guides/embeds?hl=th" /><link rel="alternate" hreflang="tr" href="https://developers.google.com/privacy-sandbox/cookies/guides/embeds?hl=tr" /><link rel="alternate" hreflang="vi" href="https://developers.google.com/privacy-sandbox/cookies/guides/embeds?hl=vi" /><title>Third-party cookies and embed workflows &nbsp;|&nbsp; Privacy Sandbox &nbsp;|&nbsp; Google for Developers</title> <meta property="og:title" content="Third-party cookies and embed workflows &nbsp;|&nbsp; Privacy Sandbox &nbsp;|&nbsp; Google for Developers"><meta name="description" content="Learn how to test your embed workflows and make the necessary updates to prepare for third-party cookie changes"> <meta property="og:description" content="Learn how to test your embed workflows and make the necessary updates to prepare for third-party cookie changes"><meta property="og:url" content="https://developers.google.com/privacy-sandbox/cookies/guides/embeds"><meta property="og:image" content="https://developers.google.com/static/privacy-sandbox/assets/images/privacy-sandbox-for-developers.png"> <meta property="og:image:width" content="1600"> <meta property="og:image:height" content="900"><meta property="og:locale" content="en"><meta name="twitter:card" content="summary_large_image"><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "dateModified": "2024-02-28", "headline": "Third-party cookies and embed workflows" } </script><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{ "@type": "ListItem", "position": 1, "name": "Privacy Sandbox", "item": "https://developers.google.com/privacy-sandbox" },{ "@type": "ListItem", "position": 2, "name": "Third-party cookies and embed workflows", "item": "https://developers.google.com/privacy-sandbox/cookies/guides/embeds" }] } </script> <link rel="stylesheet" href="/extras.css"></head> <body class="" template="page" theme="white" type="article" layout="docs" display-toc pending> <devsite-progress type="indeterminate" id="app-progress"></devsite-progress> <a href="#main-content" class="skip-link button"> Skip to main content </a> <section class="devsite-wrapper"> <devsite-cookie-notification-bar></devsite-cookie-notification-bar><devsite-header role="banner"> <div class="devsite-header--inner nocontent"> <div class="devsite-top-logo-row-wrapper-wrapper"> <div class="devsite-top-logo-row-wrapper"> <div class="devsite-top-logo-row"> <button type="button" id="devsite-hamburger-menu" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Navigation menu button" visually-hidden aria-label="Open menu"> </button> <div class="devsite-product-name-wrapper"> <a href="https://developers.google.com/privacy-sandbox"> <div class="devsite-product-logo-container" size="medium" > <picture> <img class="devsite-product-logo" alt="Privacy Sandbox" src="https://developers.google.com/static/privacy-sandbox/assets/images/privacy-sandbox-logo.png" srcset="https://developers.google.com/static/privacy-sandbox/assets/images/privacy-sandbox-logo_36.png 36w, https://developers.google.com/static/privacy-sandbox/assets/images/privacy-sandbox-logo_48.png 48w, https://developers.google.com/static/privacy-sandbox/assets/images/privacy-sandbox-logo_72.png 72w, https://developers.google.com/static/privacy-sandbox/assets/images/privacy-sandbox-logo_96.png 96w, https://developers.google.com/static/privacy-sandbox/assets/images/privacy-sandbox-logo_480.png 480w, https://developers.google.com/static/privacy-sandbox/assets/images/privacy-sandbox-logo_720.png 720w, https://developers.google.com/static/privacy-sandbox/assets/images/privacy-sandbox-logo_856.png 856w, https://developers.google.com/static/privacy-sandbox/assets/images/privacy-sandbox-logo_960.png 960w, https://developers.google.com/static/privacy-sandbox/assets/images/privacy-sandbox-logo_1440.png 1440w, https://developers.google.com/static/privacy-sandbox/assets/images/privacy-sandbox-logo_1920.png 1920w, https://developers.google.com/static/privacy-sandbox/assets/images/privacy-sandbox-logo_2880.png 2880w" sizes="64px" loading="lazy" > </picture> </div> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item "> <a href="https://developers.google.com/privacy-sandbox" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Upper Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Privacy Sandbox" > Privacy Sandbox </a> </li> </ul> </span> </div> <div class="devsite-top-logo-row-middle"> <div class="devsite-header-upper-tabs"> <devsite-tabs class="upper-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Upper tabs"> <tab > <a href="https://developers.google.com/privacy-sandbox" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://developers.google.com/privacy-sandbox" track-type="nav" track-metadata-position="nav - overview" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Overview" track-name="overview" > Overview </a> </tab> <tab class="devsite-active"> <a href="https://developers.google.com/privacy-sandbox/cookies" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://developers.google.com/privacy-sandbox/cookies" track-type="nav" track-metadata-position="nav - cookies" track-metadata-module="primary nav" aria-label="Cookies, selected" data-category="Site-Wide Custom Events" data-label="Tab: Cookies" track-name="cookies" > Cookies </a> </tab> <tab > <a href="https://developers.google.com/privacy-sandbox/private-advertising" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://developers.google.com/privacy-sandbox/private-advertising" track-type="nav" track-metadata-position="nav - private advertising" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Private advertising" track-name="private advertising" > Private advertising </a> </tab> <tab > <a href="https://developers.google.com/privacy-sandbox/protections" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://developers.google.com/privacy-sandbox/protections" track-type="nav" track-metadata-position="nav - privacy protections" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Privacy protections" track-name="privacy protections" > Privacy protections </a> </tab> <tab > <a href="https://developers.google.com/privacy-sandbox/learn" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://developers.google.com/privacy-sandbox/learn" track-type="nav" track-metadata-position="nav - learn" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Learn" track-name="learn" > Learn </a> </tab> <tab > <a href="https://developers.google.com/privacy-sandbox/blog" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://developers.google.com/privacy-sandbox/blog" track-type="nav" track-metadata-position="nav - blog" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Blog" track-name="blog" > Blog </a> </tab> </nav> </devsite-tabs> </div> <devsite-search enable-signin enable-search enable-suggestions enable-query-completion project-name="Privacy Sandbox" tenant-name="Google for Developers" project-scope="/privacy-sandbox" url-scoped="https://developers.google.com/s/results/privacy-sandbox" > <form class="devsite-search-form" action="https://developers.google.com/s/results" method="GET"> <div class="devsite-search-container"> <button type="button" search-open class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Open search"></button> <div class="devsite-searchbox"> <input aria-activedescendant="" aria-autocomplete="list" aria-label="Search" aria-expanded="false" aria-haspopup="listbox" autocomplete="off" class="devsite-search-field devsite-search-query" name="q" placeholder="Search" role="combobox" type="text" value="" > <div class="devsite-search-image material-icons" aria-hidden="true"> </div> <div class="devsite-search-shortcut-icon-container" aria-hidden="true"> <kbd class="devsite-search-shortcut-icon">/</kbd> </div> </div> </div> </form> <button type="button" search-close class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Close search"></button> </devsite-search> </div> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es" >Español</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pl" >Polski</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="vi" >Tiếng Việt</a> </li> <li role="presentation"> <a role="menuitem" lang="tr" >Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ru" >Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="he" >עברית</a> </li> <li role="presentation"> <a role="menuitem" lang="ar" >العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="fa" >فارسی</a> </li> <li role="presentation"> <a role="menuitem" lang="hi" >हिंदी</a> </li> <li role="presentation"> <a role="menuitem" lang="bn" >বাংলা</a> </li> <li role="presentation"> <a role="menuitem" lang="th" >ภาษาไทย</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw" >中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> <a class="devsite-header-link devsite-top-button button gc-analytics-event" href="//privacysandbox.com/" data-category="Site-Wide Custom Events" data-label="Site header link" > Home </a> <devsite-user enable-profiles fp-auth id="devsite-user"> <span class="button devsite-top-button" aria-hidden="true" visually-hidden>Sign in</span> </devsite-user> </div> </div> </div> <div class="devsite-collapsible-section devsite-header-no-lower-tabs "> <div class="devsite-header-background"> <div class="devsite-product-id-row" > <div class="devsite-product-description-row"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item "> <a href="https://developers.google.com/privacy-sandbox/cookies" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Lower Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="" > Cookies </a> </li> </ul> </div> </div> </div> </div> </div> </devsite-header> <devsite-book-nav scrollbars > <div class="devsite-book-nav-filter" > <span class="filter-list-icon material-icons" aria-hidden="true"></span> <input type="text" placeholder="Filter" aria-label="Type to filter" role="searchbox"> <span class="filter-clear-button hidden" data-title="Clear filter" aria-label="Clear filter" role="button" tabindex="0"></span> </div> <nav class="devsite-book-nav devsite-nav nocontent" aria-label="Side menu"> <div class="devsite-mobile-header"> <button type="button" id="devsite-close-nav" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close navigation" aria-label="Close navigation"> </button> <div class="devsite-product-name-wrapper"> <a href="https://developers.google.com/privacy-sandbox"> <div class="devsite-product-logo-container" size="medium" > <picture> <img class="devsite-product-logo" alt="Privacy Sandbox" src="https://developers.google.com/static/privacy-sandbox/assets/images/privacy-sandbox-logo.png" srcset="https://developers.google.com/static/privacy-sandbox/assets/images/privacy-sandbox-logo_36.png 36w, https://developers.google.com/static/privacy-sandbox/assets/images/privacy-sandbox-logo_48.png 48w, https://developers.google.com/static/privacy-sandbox/assets/images/privacy-sandbox-logo_72.png 72w, https://developers.google.com/static/privacy-sandbox/assets/images/privacy-sandbox-logo_96.png 96w, https://developers.google.com/static/privacy-sandbox/assets/images/privacy-sandbox-logo_480.png 480w, https://developers.google.com/static/privacy-sandbox/assets/images/privacy-sandbox-logo_720.png 720w, https://developers.google.com/static/privacy-sandbox/assets/images/privacy-sandbox-logo_856.png 856w, https://developers.google.com/static/privacy-sandbox/assets/images/privacy-sandbox-logo_960.png 960w, https://developers.google.com/static/privacy-sandbox/assets/images/privacy-sandbox-logo_1440.png 1440w, https://developers.google.com/static/privacy-sandbox/assets/images/privacy-sandbox-logo_1920.png 1920w, https://developers.google.com/static/privacy-sandbox/assets/images/privacy-sandbox-logo_2880.png 2880w" sizes="64px" loading="lazy" > </picture> </div> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item "> <a href="https://developers.google.com/privacy-sandbox" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Upper Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Privacy Sandbox" > Privacy Sandbox </a> </li> </ul> </span> </div> </div> <div class="devsite-book-nav-wrapper"> <div class="devsite-mobile-nav-top"> <ul class="devsite-nav-list"> <li class="devsite-nav-item"> <a href="/privacy-sandbox" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Overview" track-name="overview" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Overview" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Overview </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/privacy-sandbox/cookies" class="devsite-nav-title gc-analytics-event devsite-nav-has-children devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Cookies" track-name="cookies" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Cookies" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Cookies </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/privacy-sandbox/private-advertising" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Private advertising" track-name="private advertising" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Private advertising" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Private advertising </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/privacy-sandbox/protections" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Privacy protections" track-name="privacy protections" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Privacy protections" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Privacy protections </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/privacy-sandbox/learn" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Learn" track-name="learn" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Learn" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Learn </span> </a> </li> <li class="devsite-nav-item"> <a href="/privacy-sandbox/blog" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Blog" track-name="blog" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Blog" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Blog </span> </a> </li> <li class="devsite-nav-item"> <a href="//privacysandbox.com/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Home" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Home </span> </a> </li> </ul> </div> <div class="devsite-mobile-nav-bottom"> <ul class="devsite-nav-list" menu="_book"> <li class="devsite-nav-item"><a href="/privacy-sandbox/cookies" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/cookies" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/cookies" ><span class="devsite-nav-text" tooltip>About third-party cookies</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Cookie basics</span> </div></li> <li class="devsite-nav-item"><a href="/privacy-sandbox/cookies/basics" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/cookies/basics" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/cookies/basics" ><span class="devsite-nav-text" tooltip>Overview</span></a></li> <li class="devsite-nav-item"><a href="/privacy-sandbox/cookies/basics/what-are-cookies" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/cookies/basics/what-are-cookies" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/cookies/basics/what-are-cookies" ><span class="devsite-nav-text" tooltip>What are cookies?</span></a></li> <li class="devsite-nav-item"><a href="/privacy-sandbox/cookies/basics/third-party-cookies" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/cookies/basics/third-party-cookies" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/cookies/basics/third-party-cookies" ><span class="devsite-nav-text" tooltip>What are third-party cookies?</span></a></li> <li class="devsite-nav-item"><a href="/privacy-sandbox/cookies/basics/cookie-attributes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/cookies/basics/cookie-attributes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/cookies/basics/cookie-attributes" ><span class="devsite-nav-text" tooltip>Cookie attributes</span></a></li> <li class="devsite-nav-item"><a href="/privacy-sandbox/cookies/basics/http" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/cookies/basics/http" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/cookies/basics/http" ><span class="devsite-nav-text" tooltip>HTTP request and response</span></a></li> <li class="devsite-nav-item"><a href="/privacy-sandbox/cookies/basics/cookie-blocking" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/cookies/basics/cookie-blocking" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/cookies/basics/cookie-blocking" ><span class="devsite-nav-text" tooltip>Cookie blocking</span></a></li> <li class="devsite-nav-item"><a href="/privacy-sandbox/cookies/basics/cookie-tools" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/cookies/basics/cookie-tools" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/cookies/basics/cookie-tools" ><span class="devsite-nav-text" tooltip>Cookie tools</span></a></li> <li class="devsite-nav-item"><a href="/privacy-sandbox/cookies/basics/cookie-demos" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/cookies/basics/cookie-demos" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/cookies/basics/cookie-demos" ><span class="devsite-nav-text" tooltip>Cookie demos</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Prepare for changes</span> </div></li> <li class="devsite-nav-item"><a href="/privacy-sandbox/cookies/prepare/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/cookies/prepare/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/cookies/prepare/overview" ><span class="devsite-nav-text" tooltip>Overview</span></a></li> <li class="devsite-nav-item"><a href="/privacy-sandbox/cookies/prepare/audit-cookies" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/cookies/prepare/audit-cookies" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/cookies/prepare/audit-cookies" ><span class="devsite-nav-text" tooltip>Audit cookies</span></a></li> <li class="devsite-nav-item"><a href="/privacy-sandbox/cookies/prepare/test-for-breakage" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/cookies/prepare/test-for-breakage" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/cookies/prepare/test-for-breakage" ><span class="devsite-nav-text" tooltip>Test for breakage</span></a></li> <li class="devsite-nav-item"><a href="/privacy-sandbox/cookies/prepare/debug" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/cookies/prepare/debug" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/cookies/prepare/debug" ><span class="devsite-nav-text" tooltip>Debug third-party cookie blocking</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Solutions</span> </div></li> <li class="devsite-nav-item"><a href="/privacy-sandbox/cookies/chips" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/cookies/chips" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/cookies/chips" ><span class="devsite-nav-text" tooltip>CHIPS</span></a></li> <li class="devsite-nav-item"><a href="/privacy-sandbox/cookies/chips-transition" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/cookies/chips-transition" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/cookies/chips-transition" ><span class="devsite-nav-text" tooltip>Transition to partitioned cookies</span></a></li> <li class="devsite-nav-item"><a href="/privacy-sandbox/cookies/storage-access-api" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/cookies/storage-access-api" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/cookies/storage-access-api" ><span class="devsite-nav-text" tooltip>Storage Access API</span></a></li> <li class="devsite-nav-item"><a href="/privacy-sandbox/cookies/related-website-sets" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/cookies/related-website-sets" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/cookies/related-website-sets" ><span class="devsite-nav-text" tooltip>Related Website Sets</span></a></li> <li class="devsite-nav-item"><a href="/privacy-sandbox/cookies/related-website-sets-integration" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/cookies/related-website-sets-integration" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/cookies/related-website-sets-integration" ><span class="devsite-nav-text" tooltip>Related Website Sets Developer guide</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Federated Credential Management API</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/privacy-sandbox/cookies/fedcm" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/cookies/fedcm" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/cookies/fedcm" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/privacy-sandbox/cookies/fedcm/why" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/cookies/fedcm/why" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/cookies/fedcm/why" ><span class="devsite-nav-text" tooltip>Why do we need FedCM?</span></a></li><li class="devsite-nav-item"><a href="/privacy-sandbox/cookies/fedcm/setup" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/cookies/fedcm/setup" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/cookies/fedcm/setup" ><span class="devsite-nav-text" tooltip>Setup &amp; Debug</span></a></li><li class="devsite-nav-item"><a href="/privacy-sandbox/cookies/fedcm/implement/identity-provider" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/cookies/fedcm/implement/identity-provider" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/cookies/fedcm/implement/identity-provider" ><span class="devsite-nav-text" tooltip>Implement FedCM on Identity Provider</span></a></li><li class="devsite-nav-item"><a href="/privacy-sandbox/cookies/fedcm/implement/relying-party" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/cookies/fedcm/implement/relying-party" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/cookies/fedcm/implement/relying-party" ><span class="devsite-nav-text" tooltip>Implement FedCM on Relying Party</span></a></li><li class="devsite-nav-item"><a href="/privacy-sandbox/cookies/fedcm/customization" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/cookies/fedcm/customization" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/cookies/fedcm/customization" ><span class="devsite-nav-text" tooltip>Customization &amp; opt-out</span></a></li><li class="devsite-nav-item"><a href="/privacy-sandbox/cookies/fedcm/updates" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/cookies/fedcm/updates" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/cookies/fedcm/updates" ><span class="devsite-nav-text" tooltip>Updates</span></a></li><li class="devsite-nav-item"><a href="/privacy-sandbox/learn?api=federatedcredentialmanagement" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/learn?api=federatedcredentialmanagement" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/learn?api=federatedcredentialmanagement" ><span class="devsite-nav-text" tooltip>Tagged docs and blog posts</span></a></li></ul></div></li> <li class="devsite-nav-item"><a href="/privacy-sandbox/cookies/storage-partitioning" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/cookies/storage-partitioning" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/cookies/storage-partitioning" ><span class="devsite-nav-text" tooltip>Storage partitioning</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Guides</span> </div></li> <li class="devsite-nav-item"><a href="/privacy-sandbox/cookies/guides" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/cookies/guides" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/cookies/guides" ><span class="devsite-nav-text" tooltip>Overview</span></a></li> <li class="devsite-nav-item"><a href="/privacy-sandbox/cookies/guides/identity" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/cookies/guides/identity" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/cookies/guides/identity" ><span class="devsite-nav-text" tooltip>Identity</span></a></li> <li class="devsite-nav-item"><a href="/privacy-sandbox/cookies/guides/embeds" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/cookies/guides/embeds" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/cookies/guides/embeds" ><span class="devsite-nav-text" tooltip>Embeds</span></a></li> <li class="devsite-nav-item"><a href="/privacy-sandbox/cookies/guides/payments" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/cookies/guides/payments" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/cookies/guides/payments" ><span class="devsite-nav-text" tooltip>Payments</span></a></li> <li class="devsite-nav-item"><a href="/privacy-sandbox/resources/case-studies/times-internet" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/resources/case-studies/times-internet" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/resources/case-studies/times-internet" ><span class="devsite-nav-text" tooltip>Case study: Times Internet</span></a></li> <li class="devsite-nav-item"><a href="/privacy-sandbox/resources/case-studies/mercado-libre" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/resources/case-studies/mercado-libre" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/resources/case-studies/mercado-libre" ><span class="devsite-nav-text" tooltip>Case study: Mercado Libre</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Temporary exceptions</span> </div></li> <li class="devsite-nav-item"><a href="/privacy-sandbox/cookies/temporary-exceptions/preserving-critical-user-experiences" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/cookies/temporary-exceptions/preserving-critical-user-experiences" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/cookies/temporary-exceptions/preserving-critical-user-experiences" ><span class="devsite-nav-text" tooltip>Overview</span></a></li> <li class="devsite-nav-item"><a href="/privacy-sandbox/cookies/temporary-exceptions/grace-period" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/cookies/temporary-exceptions/grace-period" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/cookies/temporary-exceptions/grace-period" ><span class="devsite-nav-text" tooltip>Grace period</span></a></li> <li class="devsite-nav-item"><a href="/privacy-sandbox/cookies/temporary-exceptions/grace-period-opt-out" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/cookies/temporary-exceptions/grace-period-opt-out" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/cookies/temporary-exceptions/grace-period-opt-out" ><span class="devsite-nav-text" tooltip>Grace period opt out</span></a></li> <li class="devsite-nav-item"><a href="/privacy-sandbox/cookies/dashboard" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/cookies/dashboard" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/cookies/dashboard" ><span class="devsite-nav-text" tooltip>Compatibility lookup tool</span></a></li> <li class="devsite-nav-item"><a href="/privacy-sandbox/cookies/temporary-exceptions/storage-partitioning-deprecation-trial" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/cookies/temporary-exceptions/storage-partitioning-deprecation-trial" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/cookies/temporary-exceptions/storage-partitioning-deprecation-trial" ><span class="devsite-nav-text" tooltip>Storage Partitioning deprecation trial</span></a></li> <li class="devsite-nav-item"><a href="/privacy-sandbox/cookies/temporary-exceptions/heuristics-based-exceptions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/cookies/temporary-exceptions/heuristics-based-exceptions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/cookies/temporary-exceptions/heuristics-based-exceptions" ><span class="devsite-nav-text" tooltip>Heuristics based exceptions</span></a></li> <li class="devsite-nav-item"><a href="/privacy-sandbox/cookies/temporary-exceptions/chrome-enterprise" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /privacy-sandbox/cookies/temporary-exceptions/chrome-enterprise" track-type="bookNav" track-name="click" track-metadata-eventdetail="/privacy-sandbox/cookies/temporary-exceptions/chrome-enterprise" ><span class="devsite-nav-text" tooltip>Chrome Enterprise policies</span></a></li> </ul> </div> </div> </nav> </devsite-book-nav> <section id="gc-wrapper"> <main role="main" id="main-content" class="devsite-main-content" has-book-nav has-sidebar > <div class="devsite-sidebar"> <div class="devsite-sidebar-content"> <devsite-toc class="devsite-nav" role="navigation" aria-label="On this page" depth="2" scrollbars ></devsite-toc> <devsite-recommendations-sidebar class="nocontent devsite-nav"> </devsite-recommendations-sidebar> </div> </div> <devsite-content> <article class="devsite-article"> <div class="devsite-article-meta nocontent" role="navigation"> <ul class="devsite-breadcrumb-list" aria-label="Breadcrumb"> <li class="devsite-breadcrumb-item "> <a href="https://developers.google.com/" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="" > Home </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developers.google.com/privacy-sandbox" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="2" track-type="globalNav" track-name="breadcrumb" track-metadata-position="2" track-metadata-eventdetail="Privacy Sandbox" > Privacy Sandbox </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developers.google.com/privacy-sandbox/cookies" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="3" track-type="globalNav" track-name="breadcrumb" track-metadata-position="3" track-metadata-eventdetail="" > Cookies </a> </li> </ul> <devsite-thumb-rating position="header"> </devsite-thumb-rating> </div> <devsite-feedback position="header" project-name="Privacy Sandbox" product-id="5335444" bucket="" context="" version="t-devsite-webserver-20250211-r00-rc00.466928320959134316" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="header" class="nocontent" disable-product-feedback project-icon="https://developers.google.com/static/privacy-sandbox/assets/images/privacy-sandbox-logo.png" > <button> Send feedback </button> </devsite-feedback> <h1 class="devsite-page-title" tabindex="-1"> Third-party cookies and embed workflows </h1> <devsite-feature-tooltip ack-key="AckCollectionsBookmarkTooltipDismiss" analytics-category="Site-Wide Custom Events" analytics-action-show="Callout Profile displayed" analytics-action-close="Callout Profile dismissed" analytics-label="Create Collection Callout" class="devsite-page-bookmark-tooltip nocontent" dismiss-button="true" id="devsite-collections-dropdown" dismiss-button-text="Dismiss" close-button-text="Got it"> <devsite-bookmark></devsite-bookmark> <span slot="popout-heading"> Stay organized with collections </span> <span slot="popout-contents"> Save and categorize content based on your preferences. </span> </devsite-feature-tooltip> <div class="devsite-page-title-meta"><devsite-view-release-notes></devsite-view-release-notes></div> <devsite-toc class="devsite-nav" depth="2" devsite-toc-embedded > </devsite-toc> <devsite-recommendations-dropdown class="nocontent"></devsite-recommendations-dropdown> <div class="devsite-article-body clearfix "> <p>Third-party cookies have many uses, but they are also a key enabler of cross-site tracking. </p> <p>Chrome is proposing a <a href="https://privacysandbox.com/news/privacy-sandbox-update/">new experience for user choice</a> with third-party cookies. You need to prepare your site for users who choose to browse without third-party cookies.</p> <p>On this page you will find information on privacy-preserving solutions for embedded scenarios that have traditionally relied on third-party cookies, and strategies to help you choose which solution best fits your needs.</p> <p>Embedded services, or embeds, include third-party content (such as videos, maps), interactive components (such as chat, commenting systems, or payment services), login services, and more.</p> <p>Most of the work to transition from third-party cookies needs to be done by embed developers, rather than sites hosting embeds. This guide will primarily discuss solutions for developers who create embedded services.</p> <p>If your site is relying on an embed that uses third-party cookies, make sure to audit and test your embed-related journeys and reach out to embed providers if you discover any breakage.</p> <h2 id="audit-and-test-embeds" data-text="Audit and test your embed-related user journeys" tabindex="-1">Audit and test your embed-related user journeys</h2> <p>The best way to determine if your embeds are affected by third-party cookies is to test your third-party embed user flows with <a href="/privacy-sandbox/cookies/prepare/test-for-breakage">the third party cookie testing flag enabled</a>.</p> <aside class="note"><strong>Note:</strong><span> <code translate="no" dir="ltr">chrome://flags/#test-third-party-cookie-phaseout</code> is available from Chrome 118.</span></aside> <p>Once you&#39;ve restricted third-party cookies, test these common embed scenarios:</p> <ul> <li><strong>Chat widgets:</strong> Can you start a chat session? Can you refresh the page without losing your session? Can you navigate to other pages and maintain your session?</li> <li><strong>Content embeds:</strong> Can you view video content or other embedded content? Are user preferences, such as language or subtitles, maintained? Are you seeing ads when expected, for example not seeing them as a premium subscriber?</li> <li><strong>Login:</strong> Are logins—including any Single Sign On (SSO) logins—working for embeds that support them? Are they persisted through page reloads and navigation to pages that use the same embeds?</li> <li><strong>Commenting widgets:</strong> Can you leave, like, and upvote comments?</li> <li><strong>Embedded payment solutions:</strong> Can you successfully complete payments?</li> </ul> <p>In the next sections, you will find more specific information on how those flows might be affected.</p> <h2 id="common-use-cases" data-text="Common use cases" tabindex="-1">Common use cases</h2> <p>There are a number of APIs that can be used for embeds that traditionally have relied on third-party cookies. The following table lists some common workflows and the recommended APIs to use as a high-level summary. The following sections will explain the reasoning for these recommendations.</p> <figure> <table> <thead> <tr> <th>Use-case</th> <th>Recommended API for third-party cookie usage</th> </tr> </thead> <tbody> <tr> <td>Chat widget</td> <td><a href="/privacy-sandbox/cookies/chips">CHIPS</a></td> </tr> <tr> <td>Map embeds</td> <td><a href="/privacy-sandbox/cookies/chips">CHIPS</a></td> </tr> <tr> <td>Sandbox domains for untrusted user content<br>(such as googleusercontent.com and githubusercontent.com) that need state scoped per publisher</td> <td><a href="/privacy-sandbox/cookies/chips">CHIPS</a></td> </tr> <tr> <td>Embedded ads that need state scoped per publisher</td> <td><a href="/privacy-sandbox/cookies/chips">CHIPS</a></td> </tr> <tr> <td>Login through an identity provider</td> <td><a href="/privacy-sandbox/cookies/fedcm">FedCM</a></td> </tr> <tr> <td>Embed hosted on different, but related, origins.</td> <td><a href="/privacy-sandbox/cookies/related-website-sets">Storage Access API with Related Website Sets</a></td> </tr> <tr> <td>Content embeds with login-based preferences<br>(such as video content with no ads, or language/subtitle preferences)</td> <td><a href="/privacy-sandbox/cookies/storage-access-api">Storage Access API</a></td> </tr> <tr> <td>Social media commenting widget requiring login</td> <td><a href="/privacy-sandbox/cookies/storage-access-api">Storage Access API</a></td> </tr> </tbody> </table> <figcaption>Recommended alternative APIs for common use cases</figcaption> </figure> <aside class="note"><strong>Note:</strong><span> Some of these APIs (CHIPS, FedCM, and Related Website Sets) are only available in Chrome and Chromium-based browsers. See <a href="#cross-browsers">supporting use cases across browsers</a> later in this guide for considerations for other browsers.</span></aside> <h2 id="choosing_the_api_to_use_for_embedded_third-party_use_cases" data-text="Choosing the API to use for embedded third-party use cases" tabindex="-1">Choosing the API to use for embedded third-party use cases</h2> <p>This section walks through how to choose an appropriate alternative API and explains the recommended APIs.</p> <p>The following flowchart helps choose from the available options:</p> <figure> <a href="/static/privacy-sandbox/cookies/guides/image/cookies-embed-options.png"> <img src="/static/privacy-sandbox/cookies/guides/image/cookies-embed-options.png" width="500" height="500" alt="Flowchart of options to decide on third-party cookie alternative based on three questions." srcset="https://developers.google.com/static/privacy-sandbox/cookies/guides/image/cookies-embed-options_36.png 36w,https://developers.google.com/static/privacy-sandbox/cookies/guides/image/cookies-embed-options_48.png 48w,https://developers.google.com/static/privacy-sandbox/cookies/guides/image/cookies-embed-options_72.png 72w,https://developers.google.com/static/privacy-sandbox/cookies/guides/image/cookies-embed-options_96.png 96w,https://developers.google.com/static/privacy-sandbox/cookies/guides/image/cookies-embed-options_480.png 480w,https://developers.google.com/static/privacy-sandbox/cookies/guides/image/cookies-embed-options_720.png 720w,https://developers.google.com/static/privacy-sandbox/cookies/guides/image/cookies-embed-options_856.png 856w,https://developers.google.com/static/privacy-sandbox/cookies/guides/image/cookies-embed-options_960.png 960w,https://developers.google.com/static/privacy-sandbox/cookies/guides/image/cookies-embed-options_1440.png 1440w,https://developers.google.com/static/privacy-sandbox/cookies/guides/image/cookies-embed-options_1920.png 1920w,https://developers.google.com/static/privacy-sandbox/cookies/guides/image/cookies-embed-options_2880.png 2880w" sizes="(max-width: 840px) 100vw, 856px"> </a> <figcaption> Deciding on which API to use for third-party cookie embeds </figcaption> </figure> <p>The flow chart asks three main questions and we will look at those in more detail and why a given API is recommended in each case.</p> <h3 id="1_are_the_cookies_specific_to_the_embedding_site" data-text="1. Are the cookies specific to the embedding site?" tabindex="-1">1. Are the cookies specific to the embedding site?</h3> <p>Many third-party embeds are used independently on completely unrelated sites. For example, chat widgets for customer support often require cookies to work, but do not need to share these cookies between two completely different organizations that both happen to use the same chat widget solution. In fact, the preference would be not to even permit the sharing of cookies in many of these cases.</p> <p>If you provide a third-party embed service to other sites and it relies on cookies, consider if those cookies are specific to the service on the site it&#39;s embedded on. Are they ever shared by instances of your embed on other sites?</p> <p>If the cookies do not need to be shared, then partitioning cookies by using <a href="/privacy-sandbox/cookies/chips">CHIPS</a> is the easiest option. This API ties third-party cookies to the top-level site, rather than allowing them to be shared by all sites that use the same third-party embed. CHIPS is easy to implement as it only requires adding an extra <code translate="no" dir="ltr">Partitioned</code> attribute to the existing cookies. This allows the embedded services to still save state, but removes shared cross-site storage that would allow cross-site tracking.</p> <p>Sites should also check if cookies are being used for the right reasons. Cookies should only be used when they are set or need to be sent with HTTP requests. If this is not the case, and cookies are only used as a convenient storage option, then the various <a href="/privacy-sandbox/cookies/storage-partitioning#storage-apis">storage APIs</a> should be considered instead. This keeps data local when it doesn&#39;t need to be sent. The storage APIs are <a href="/privacy-sandbox/cookies/storage-partitioning">already partitioned</a> in all major browsers, in a similar manner that CHIPS partitions cookies.</p> <h3 id="2_are_the_cookies_for_a_third-party_identity_provider" data-text="2. Are the cookies for a third-party identity provider?" tabindex="-1">2. Are the cookies for a third-party identity provider?</h3> <p>One common use of third-party cookies in embeds is to provide login capabilities managed by a third-party login provider, such as <a href="/identity/gsi/web/guides/overview">Sign in with a Google</a>. Partitioned cookies are not an option in this case.</p> <p><a href="/privacy-sandbox/cookies/fedcm">Federated Credential Management (FedCM)</a> is a dedicated API specifically for this use case and it works without third-party cookies. If FedCM is supported by the identity provider, this may remove the need for third-party cookies.</p> <p>You can read more about addressing the effects of third-party cookies on login workflows in the <a href="/privacy-sandbox/cookies/guides/identity">identity guide</a>.</p> <h3 id="3_are_the_cookies_used_on_a_small_number_of_related_sites" data-text="3. Are the cookies used on a small number of related sites?" tabindex="-1">3. Are the cookies used on a small number of related sites?</h3> <p>If none of the previous options are suitable replacements for cookies then you need to look at re-enabling third-party cookie access for the embed. This can be enabled in specific, controlled use cases with the <a href="/privacy-sandbox/cookies/storage-access-api">Storage Access API</a>. This API re-enables full third-party cookie access (subject to controls) so it is the most powerful option. That&#39;s why the recommendation is to avoid it if a more restrictive alternative would suffice.</p> <p><a id="storage-access-api-restrictions"></a> There are a few requirements for using the Storage Access API:</p> <ul> <li>The user must have previously visited the embed&#39;s site at a top-level. For example, if embedding a commenting system, then the user must also visit that commenting system&#39;s site.</li> <li>The user needs to <a href="https://developer.mozilla.org/docs/Web/Security/User_activation">interact</a> with the embed before cookies can be shared. This means it may not be possible to load the full embedded content before user interaction.</li> <li>The user may need to approve the sharing of cookies with <a href="/privacy-sandbox/cookies/storage-access-api#permission-prompts">a browser pop-up</a>, particularly on the first instance and periodically thereafter.</li> <li>The embedding site may also need to set <a href="/privacy-sandbox/cookies/storage-access-api#sandboxed_iframes">additional sandbox attributes</a>.</li> </ul> <p>These restrictions ensure the powerful action of re-enabling third-party cookies is only done when the user and site expect this. However, in certain scenarios, the user actions may be skipped. For example, if the user has recently approved access it may not be necessary to re-prompt them for a period of time (as defined by the browser).</p> <p>One other scenario where this is likely to be expected by the user is for related sites. For example, some organizations use a number of different origins, which are regarded as cross-site by the browser—and so cookie use across them is treated as third-party. Examples include brands with country-specific sites (such as <a href="https://example.com">example.com</a> and <a href="https://example.co.uk">example.co.uk</a>) or brand-specific websites (such as <a href="https://example.car">example.car</a> and <a href="https://example.house">example.house</a>).</p> <p>In this case, where there are a small number of related websites, you can use <a href="/privacy-sandbox/cookies/related-website-sets">Related Website Sets</a>. Sites are submitted to Chrome, so that Chrome knows that they are related. This allows access to the Storage Access API in a more user-friendly way, with fewer user prompts.</p> <p>For unrelated websites that are actually third parties, and where full third-party cookie access is required because the alternative APIs are not sufficient, using the Storage Access API will be subject to full requirements and prompts.</p> <h3 id="comparison_of_the_various_apis" data-text="Comparison of the various APIs" tabindex="-1">Comparison of the various APIs</h3> <p>Each of the solutions has slightly different characteristics and limitations that make them a better choice for certain use cases. The following table summarizes the main differences:</p> <figure> <table> <thead> <tr> <td></td> <th style="text-align: center;"><a href="/privacy-sandbox/cookies/chips">CHIPS</a></th> <th style="text-align: center;"><a href="/privacy-sandbox/cookies/storage-partitioning">Partitioned Storage</a></th> <th style="text-align: center;"><a href="/privacy-sandbox/cookies/fedcm">FedCM</a></th> <th style="text-align: center;"><a href="/privacy-sandbox/cookies/related-website-sets">Storage Access API with Related WebSite Sets</a></th> <th style="text-align: center;"><a href="/privacy-sandbox/cookies/storage-access-api">Storage Access API</a></th> </tr> </thead> <tbody> <tr> <td>User does not need to have previously accessed the embedded party as a top-level site</td> <td style="text-align: center;"><span class="compare-yes" aria-label="True for CHIPS"></span></td> <td style="text-align: center;"><span class="compare-yes" aria-label="True for Partitioned Storage"></span></td> <td style="text-align: center;"><span class="compare-yes" aria-label="True for FedCM"></span></td> <td style="text-align: center;"><span class="compare-yes" aria-label="True for RWS"></span></td> <td style="text-align: center;"><span class="compare-no" aria-label="False for SAA"></span></td> </tr> <tr> <td>Does not require user prompt to approve access</td> <td style="text-align: center;"><span class="compare-yes" aria-label="True for CHIPS"></span></td> <td style="text-align: center;"><span class="compare-yes" aria-label="True for Partitioned Storage"></span></td> <td style="text-align: center;"><span class="compare-no" aria-label="False for FedCM"></span></td> <td style="text-align: center;"><span class="compare-yes" aria-label="True for RWS"></span></td> <td style="text-align: center;"><span class="compare-no" aria-label="False for SAA"></span></td> </tr> <tr> <td>Does not require user to interact with embed</td> <td style="text-align: center;"><span class="compare-yes" aria-label="True for CHIPS"></span></td> <td style="text-align: center;"><span class="compare-yes" aria-label="True for Partitioned Storage"></span></td> <td style="text-align: center;"><span class="compare-yes" aria-label="True for FedCM"></span></td> <td style="text-align: center;"><span class="compare-no" aria-label="False for RWS"></span><br><em>(Can be true for embedded <a href="/privacy-sandbox/cookies/storage-access-api#top-level_page_access">sites with top-level access</a> too.)</em></td> <td style="text-align: center;"><span class="compare-no" aria-label="False for SAA"></span></td> </tr> <tr> <td>Implementation effort</td> <td style="text-align: center;">Very&nbsp;low</td> <td style="text-align: center;">Low</td> <td style="text-align: center;">High</td> <td style="text-align: center;">Medium</td> <td style="text-align: center;">Medium</td> </tr> <tr> <td>Can be used to share cookies across multiple top-level sites/origins</td> <td style="text-align: center;"><span class="compare-no" aria-label="False for CHIPS"></span></td> <td style="text-align: center;"><span class="compare-no" aria-label="False for Partitioned Storage"></span></td> <td style="text-align: center;"><span class="compare-no" aria-label="False for FedCM"></span> <br><em>(<a href="https://github.com/explainers-by-googlers/storage-access-for-fedcm">Proposal under disucussion.</a>)</em></td> <td style="text-align: center;"><span class="compare-yes" aria-label="True for RWS"></span></td> <td style="text-align: center;"><span class="compare-yes" aria-label="True for SAA"></span></td> </tr> <tr> <td>Available on non-Chromium browsers</td> <td style="text-align: center;"><span class="compare-no" aria-label="False for CHIPS"></span></td> <td style="text-align: center;"><span class="compare-yes" aria-label="True for Partitioned Storage"></span></td> <td style="text-align: center;"><span class="compare-no" aria-label="False for FedCM"></span></td> <td style="text-align: center;"><span class="compare-no" aria-label="False for RWS"></span><br><em>(Falls back to Storage Access API.)</em></td> <td style="text-align: center;"><span class="compare-yes" aria-label="True for SAA"></span></td> </tr> </tbody> </table> <figcaption>Behaviors, required effort level, and availability of key APIs for embedded use cases</figcaption> </figure> <h2 id="cross-browsers" data-text="Supporting use cases across browsers" tabindex="-1">Supporting use cases across browsers</h2> <p>Browser compatibility is one of the major factors when deciding on a solution, as touched on in the last line of the table. Some of the APIs (CHIPS, FedCM, Related WebSite Sets) are only available on Chromium browsers. The only two cross-browser solutions at present are partitioned storage APIs (when cookies are not required), or the Storage Access API (when cookies are required).</p> <p>However, <a href="#storage-access-api-restrictions">as noted previously</a>, the Storage Access API has a number of restrictions that can affect the user experience on your website. The Chrome team has worked on adding the other APIs, which are designed to meet specific use cases and provide an experience similar to what has been possible with third-party cookies. Therefore it is recommended to consider what the best options are and treat these as progressive enhancements, with a fallback to the Storage Access API for non-supporting browsers.</p> <p>Since cookies can be blocked for a number of reasons (for example, browser settings, extensions), feature detection of API support may not be sufficient. Instead it is best to test whether the expected cookies exist, and if not fall back to the <a href="/privacy-sandbox/cookies/storage-access-api#using-saa">Storage Access API workflow to request access to third-party cookies</a>.</p> <h2 id="take_action_now" data-text="Take action now!" tabindex="-1">Take action now!</h2> <p>If your third-party embed no longer functions without the use of third-party cookies, then there are multiple solutions available that address possible impact as detailed in this talk. The moment to <a href="/privacy-sandbox/cookies/prepare/overview">audit your service</a> for third party cookies <a href="/privacy-sandbox/blog/cookie-countdown-2023oct">is now</a>!</p> <p>For those experiencing breakages with their embeds now as <a href="/privacy-sandbox/setup/web/chrome-facilitated-testing">Chrome is testing the removal of third-party cookies</a>, then there are a number of short-term options for help while migrating to alternatives described in this post. Look at the <a href="/privacy-sandbox/cookies/temporary-exceptions/preserving-critical-user-experiences">preserving critical user experiences</a> documentation for more information.</p> <p>If you have questions around third-party embed use cases not covered in this guide, you can <a href="https://github.com/GoogleChromeLabs/privacy-sandbox-dev-support/issues/new/choose">raise a new issue using the &quot;third-party cookie deprecation&quot; tag</a> in our developer support repository.</p> </div> <devsite-recommendations display="in-page" hidden yield> </devsite-recommendations> <devsite-thumb-rating position="footer"> </devsite-thumb-rating> <devsite-feedback position="footer" project-name="Privacy Sandbox" product-id="5335444" bucket="" context="" version="t-devsite-webserver-20250211-r00-rc00.466928320959134316" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="footer" class="nocontent" disable-product-feedback project-icon="https://developers.google.com/static/privacy-sandbox/assets/images/privacy-sandbox-logo.png" > <button> Send feedback </button> </devsite-feedback> <devsite-recommendations id="recommendations-link" yield></devsite-recommendations> <div class="devsite-floating-action-buttons"> </div> </article> <devsite-content-footer class="nocontent"> <p>Except as otherwise noted, the content of this page is licensed under the <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 License</a>, and code samples are licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 License</a>. For details, see the <a href="https://developers.google.com/site-policies">Google Developers Site Policies</a>. Java is a registered trademark of Oracle and/or its affiliates.</p> <p>Last updated 2024-02-28 UTC.</p> </devsite-content-footer> <devsite-notification > </devsite-notification> <div class="devsite-content-data"> <template class="devsite-thumb-rating-feedback"> <devsite-feedback position="thumb-rating" project-name="Privacy Sandbox" product-id="5335444" bucket="" context="" version="t-devsite-webserver-20250211-r00-rc00.466928320959134316" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="thumb-rating" class="nocontent" disable-product-feedback project-icon="https://developers.google.com/static/privacy-sandbox/assets/images/privacy-sandbox-logo.png" > <button> Need to tell us more? </button> </devsite-feedback> </template> <template class="devsite-content-data-template"> [[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-02-28 UTC."],[[["Prepare your site for users opting to browse without third-party cookies by adopting privacy-preserving solutions for embedded services."],["Most of the work to transition from third-party cookies falls on embed developers, but site owners need to audit and test their embed-related journeys."],["Alternative APIs like CHIPS, FedCM, and the Storage Access API offer solutions for various embed use cases, with CHIPS being the easiest to implement for partitioned cookies."],["Choose the most suitable alternative API based on whether cookies are site-specific, used for third-party logins, or shared across related sites."],["Prioritize browser compatibility by treating newer APIs as progressive enhancements and using the Storage Access API as a fallback for unsupported browsers."]]],[]] </template> </div> </devsite-content> </main> <devsite-footer-promos class="devsite-footer"> </devsite-footer-promos> <devsite-footer-linkboxes class="devsite-footer"> <nav class="devsite-footer-linkboxes nocontent" aria-label="Footer links"> <ul class="devsite-footer-linkboxes-list"> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Get support</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="https://github.com/privacysandbox/privacy-sandbox-dev-support" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Ask a question on our GitHub support repo </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://goo.gle/privacy-sandbox-feedback" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Submit project feedback </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Get updates</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/privacy-sandbox/blog" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Developer blog </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://privacysandbox.com/news/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Project news </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Resources</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="https://privacysandbox.com/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Project site </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://privacysandbox.com/open-web/#the-privacy-sandbox-timeline" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Privacy Sandbox timeline </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Tools</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="https://goo.gle/psat" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Privacy Sandbox Analysis Tool </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://privacy-sandbox-demos.dev/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Privacy Sandbox demos </a> </li> </ul> </li> </ul> </nav> </devsite-footer-linkboxes> <devsite-footer-utility class="devsite-footer"> <div class="devsite-footer-utility nocontent"> <nav class="devsite-footer-sites" aria-label="Other Google Developers websites"> <a href="https://developers.google.com/" class="devsite-footer-sites-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google Developers Link"> <picture> <img class="devsite-footer-sites-logo" src="https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/developers/images/lockup-google-for-developers.svg" loading="lazy" alt="Google Developers"> </picture> </a> <ul class="devsite-footer-sites-list"> <li class="devsite-footer-sites-item"> <a href="//developer.android.com" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Android Link" > Android </a> </li> <li class="devsite-footer-sites-item"> <a href="//developer.chrome.com/home" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Chrome Link" > Chrome </a> </li> <li class="devsite-footer-sites-item"> <a href="//firebase.google.com" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Firebase Link" > Firebase </a> </li> <li class="devsite-footer-sites-item"> <a href="//cloud.google.com" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google Cloud Platform Link" > Google Cloud Platform </a> </li> <li class="devsite-footer-sites-item"> <a href="//ai.google.dev/" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google AI Link" > Google AI </a> </li> <li class="devsite-footer-sites-item"> <a href="/products" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer All products Link" > All products </a> </li> </ul> </nav> <nav class="devsite-footer-utility-links" aria-label="Utility links"> <ul class="devsite-footer-utility-list"> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="/terms/site-terms" data-category="Site-Wide Custom Events" data-label="Footer Terms link" > Terms </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="//policies.google.com/privacy" data-category="Site-Wide Custom Events" data-label="Footer Privacy link" > Privacy </a> </li> <li class="devsite-footer-utility-item glue-cookie-notification-bar-control"> <a class="devsite-footer-utility-link gc-analytics-event" href="#" data-category="Site-Wide Custom Events" data-label="Footer Manage cookies link" aria-hidden="true" > Manage cookies </a> </li> <li class="devsite-footer-utility-item devsite-footer-utility-button"> <span class="devsite-footer-utility-description">Sign up for the Google for Developers newsletter</span> <a class="devsite-footer-utility-link gc-analytics-event" href="/newsletter/subscribe" data-category="Site-Wide Custom Events" data-label="Footer Subscribe link" > Subscribe </a> </li> </ul> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es" >Español</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pl" >Polski</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="vi" >Tiếng Việt</a> </li> <li role="presentation"> <a role="menuitem" lang="tr" >Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ru" >Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="he" >עברית</a> </li> <li role="presentation"> <a role="menuitem" lang="ar" >العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="fa" >فارسی</a> </li> <li role="presentation"> <a role="menuitem" lang="hi" >हिंदी</a> </li> <li role="presentation"> <a role="menuitem" lang="bn" >বাংলা</a> </li> <li role="presentation"> <a role="menuitem" lang="th" >ภาษาไทย</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw" >中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> </nav> </div> </devsite-footer-utility> <devsite-panel></devsite-panel> </section></section> <devsite-sitemask></devsite-sitemask> <devsite-snackbar></devsite-snackbar> <devsite-tooltip ></devsite-tooltip> <devsite-heading-link></devsite-heading-link> <devsite-analytics> <script type="application/json" analytics>[{&#34;dimensions&#34;: {&#34;dimension11&#34;: false, &#34;dimension5&#34;: &#34;en&#34;, &#34;dimension1&#34;: &#34;Signed out&#34;, &#34;dimension4&#34;: &#34;Privacy Sandbox&#34;, &#34;dimension3&#34;: false, &#34;dimension6&#34;: &#34;en&#34;}, &#34;gaid&#34;: &#34;UA-24532603-1&#34;, &#34;metrics&#34;: {&#34;ratings_count&#34;: &#34;metric2&#34;, &#34;ratings_value&#34;: &#34;metric1&#34;}, &#34;purpose&#34;: 1}]</script> <script type="application/json" tag-management>{&#34;at&#34;: &#34;True&#34;, &#34;ga4&#34;: [{&#34;id&#34;: &#34;G-272J68FCRF&#34;, &#34;purpose&#34;: 1}], &#34;ga4p&#34;: [{&#34;id&#34;: &#34;G-272J68FCRF&#34;, &#34;purpose&#34;: 1}], &#34;gtm&#34;: [{&#34;id&#34;: &#34;GTM-WPJH8HP6&#34;, &#34;purpose&#34;: 0}], &#34;parameters&#34;: {&#34;internalUser&#34;: &#34;False&#34;, &#34;language&#34;: {&#34;machineTranslated&#34;: &#34;False&#34;, &#34;requested&#34;: &#34;en&#34;, &#34;served&#34;: &#34;en&#34;}, &#34;pageType&#34;: &#34;article&#34;, &#34;projectName&#34;: &#34;Privacy Sandbox&#34;, &#34;signedIn&#34;: &#34;False&#34;, &#34;tenant&#34;: &#34;developers&#34;, &#34;recommendations&#34;: {&#34;sourcePage&#34;: &#34;&#34;, &#34;sourceType&#34;: 0, &#34;sourceRank&#34;: 0, &#34;sourceIdenticalDescriptions&#34;: 0, &#34;sourceTitleWords&#34;: 0, &#34;sourceDescriptionWords&#34;: 0, &#34;experiment&#34;: &#34;&#34;}, &#34;experiment&#34;: {&#34;ids&#34;: &#34;&#34;}}}</script> </devsite-analytics> <devsite-badger></devsite-badger> <script nonce="YKvuyQIMnnn8d3f4El9jpuTor4TkZ8"> (function(d,e,v,s,i,t,E){d['GoogleDevelopersObject']=i; t=e.createElement(v);t.async=1;t.src=s;E=e.getElementsByTagName(v)[0]; E.parentNode.insertBefore(t,E);})(window, document, 'script', 'https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/developers/js/app_loader.js', '[1,"en",null,"/js/devsite_app_module.js","https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f","https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/developers","https://developers-dot-devsite-v2-prod.appspot.com",null,null,["/_pwa/developers/manifest.json","https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/images/video-placeholder.svg","https://www.gstatic.com/devrel-devsite/prod/v38a693baeb774512feb42f10aac8f755d8791ed41119b5be7a531f8e16f8279f/developers/images/favicon-new.png","https://fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"],1,null,[1,6,8,12,14,17,21,25,50,52,63,70,75,76,80,87,91,92,93,97,98,100,101,102,103,104,105,107,108,109,110,112,113,116,117,118,120,122,124,125,126,127,129,130,131,132,133,134,135,136,138,140,141,147,148,149,151,152,156,157,158,159,161,163,164,168,169,170,179,180,182,183,186,191,193,196],"AIzaSyAP-jjEJBzmIyKR4F-3XITp8yM9T1gEEI8","AIzaSyB6xiKGDR5O3Ak2okS4rLkauxGUG7XP0hg","developers.google.com","AIzaSyAQk0fBONSGUqCNznf6Krs82Ap1-NV6J4o","AIzaSyCCxcqdrZ_7QMeLCRY20bh_SXdAYqy70KY",null,null,null,["Cloud__enable_cloudx_ping","Profiles__enable_public_developer_profiles","Profiles__enable_profile_collections","Profiles__enable_completecodelab_endpoint","TpcFeatures__enable_unmirrored_page_left_nav","Profiles__enable_dashboard_curated_recommendations","Cloud__enable_legacy_calculator_redirect","Search__enable_ai_search_summaries","Search__enable_page_map","Concierge__enable_concierge_restricted","Profiles__enable_page_saving","Cloud__enable_free_trial_server_call","Search__enable_dynamic_content_confidential_banner","MiscFeatureFlags__emergency_css","CloudShell__cloud_code_overflow_menu","DevPro__enable_developer_subscriptions","Cloud__enable_cloudx_experiment_ids","MiscFeatureFlags__enable_view_transitions","Profiles__enable_awarding_url","MiscFeatureFlags__enable_explain_this_code","Cloud__enable_cloud_shell_fte_user_flow","Concierge__enable_concierge","MiscFeatureFlags__developers_footer_image","Experiments__reqs_query_experiments","MiscFeatureFlags__developers_footer_dark_image","CloudShell__cloud_shell_button","Profiles__enable_release_notes_notifications","Profiles__enable_complete_playlist_endpoint","Search__enable_suggestions_from_borg","Profiles__enable_recognition_badges","Significatio__enable_by_tenant","EngEduTelemetry__enable_engedu_telemetry","MiscFeatureFlags__enable_variable_operator","Concierge__enable_key_takeaways","Cloud__enable_cloud_facet_chat","Search__enable_ai_eligibility_checks","Analytics__enable_clearcut_logging","Cloud__enable_cloud_shell","Profiles__enable_developer_profiles_callout","TpcFeatures__enable_mirror_tenant_redirects","Concierge__enable_pushui","Search__enable_ai_search_summaries_restricted","MiscFeatureFlags__enable_firebase_utm","DevPro__enable_cloud_innovators_plus","Profiles__enable_completequiz_endpoint","Profiles__enable_join_program_group_endpoint","BookNav__enable_tenant_cache_key","Cloud__enable_cloud_dlp_service","Cloud__enable_llm_concierge_chat","Profiles__require_profile_eligibility_for_signin","MiscFeatureFlags__enable_project_variables","Profiles__enable_stripe_subscription_management"],null,null,"AIzaSyBLEMok-5suZ67qRPzx0qUtbnLmyT_kCVE","https://developerscontentserving-pa.clients6.google.com","AIzaSyCM4QpTRSqP5qI4Dvjt4OAScIN8sOUlO-k","https://developerscontentsearch-pa.clients6.google.com",1,4,null,"https://developerprofiles-pa.clients6.google.com",[1,"developers","Google for Developers","developers.google.com",null,"developers-dot-devsite-v2-prod.appspot.com",null,null,[1,1,[1],null,null,null,null,null,null,null,null,[1],null,null,null,null,null,null,[1],[1,null,null,[1,20],"/recommendations/information"],null,null,null,[1,1,1],[1,1,null,1,1]],null,[null,null,null,null,null,null,"/images/lockup-new.svg","/images/touchicon-180-new.png",null,null,null,null,1,null,null,null,null,null,null,null,null,1,null,null,null,"/images/lockup-dark-theme-new.svg",[]],[],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[6,1,14,15,20,22,23,29,32,36],null,[[null,null,null,[3,7,10,2,39,17,4,32,24,11,12,13,34,15,25],null,null,[1,[["docType","Choose a content type",[["Tutorial",null,null,null,null,null,null,null,null,"Tutorial"],["Guide",null,null,null,null,null,null,null,null,"Guide"],["Sample",null,null,null,null,null,null,null,null,"Sample"]]],["product","Choose a product",[["Android",null,null,null,null,null,null,null,null,"Android"],["ARCore",null,null,null,null,null,null,null,null,"ARCore"],["ChromeOS",null,null,null,null,null,null,null,null,"ChromeOS"],["Firebase",null,null,null,null,null,null,null,null,"Firebase"],["Flutter",null,null,null,null,null,null,null,null,"Flutter"],["Assistant",null,null,null,null,null,null,null,null,"Google Assistant"],["GoogleCloud",null,null,null,null,null,null,null,null,"Google Cloud"],["GoogleMapsPlatform",null,null,null,null,null,null,null,null,"Google Maps Platform"],["GooglePay",null,null,null,null,null,null,null,null,"Google Pay & Google Wallet"],["GooglePlay",null,null,null,null,null,null,null,null,"Google Play"],["Tensorflow",null,null,null,null,null,null,null,null,"TensorFlow"]]],["category","Choose a topic",[["AiAndMachineLearning",null,null,null,null,null,null,null,null,"AI and Machine Learning"],["Data",null,null,null,null,null,null,null,null,"Data"],["Enterprise",null,null,null,null,null,null,null,null,"Enterprise"],["Gaming",null,null,null,null,null,null,null,null,"Gaming"],["Mobile",null,null,null,null,null,null,null,null,"Mobile"],["Web",null,null,null,null,null,null,null,null,"Web"]]]]]],[1,1],null,1],[[["UA-24532603-1"],["UA-22084204-5"],null,null,["UA-24532603-5"],null,null,[["G-272J68FCRF"],null,null,[["G-272J68FCRF",2]]],[["UA-24532603-1",2]],null,[["UA-24532603-5",2]],null,1],[[3,2],[1,1],[14,11],[11,8],[16,13],[6,5],[13,10],[12,9],[5,4],[4,3],[15,12]],[[2,2],[1,1]]],null,4,null,null,null,null,null,null,null,null,null,null,null,null,null,"developers.devsite.google"],null,"pk_live_5170syrHvgGVmSx9sBrnWtA5luvk9BwnVcvIi7HizpwauFG96WedXsuXh790rtij9AmGllqPtMLfhe2RSwD6Pn38V00uBCydV4m",1]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10