CINXE.COM
Developer Products and Tools - Google for Developers
<!doctype html> <html lang="en" dir="ltr"> <head><script type="text/javascript" src="/_static/js/bundle-playback.js?v=HxkREWBo" charset="utf-8"></script> <script type="text/javascript" src="/_static/js/wombat.js?v=txqj7nKC" charset="utf-8"></script> <script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script> <script type="text/javascript" src="/_static/js/ruffle/ruffle.js"></script> <script type="text/javascript"> __wm.init("http://web.archive.org/web"); __wm.wombat("https://developers.google.com/products","20231006205940","http://web.archive.org/","web","/_static/", "1696625980"); </script> <link rel="stylesheet" type="text/css" href="/_static/css/banner-styles.css?v=S1zqJCYt" /> <link rel="stylesheet" type="text/css" href="/_static/css/iconochive.css?v=3PDvdIFv" /> <!-- End Wayback Rewrite JS Include --> <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="/web/20231006205940/https://developers.google.com/_pwa/developers/manifest.json" crossorigin="use-credentials"> <link rel="preconnect" href="//web.archive.org/web/20231006205940/https://www.gstatic.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20231006205940/https://fonts.gstatic.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20231006205940/https://fonts.googleapis.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20231006205940/https://apis.google.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20231006205940/https://www.google-analytics.com/" crossorigin><link rel="stylesheet" href="//web.archive.org/web/20231006205940cs_/https://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="//web.archive.org/web/20231006205940cs_/https://fonts.googleapis.com/css2?family=Material+Icons&family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=block"><link rel="stylesheet" href="http://web.archive.org/web/20231006205940cs_/https://www.gstatic.com/devrel-devsite/prod/v85a00308211ae0e76f4048e4f8440e0b4d866dea310d9c231254526f46e6d3e3/developers/css/app.css"> <link rel="shortcut icon" href="http://web.archive.org/web/20231006205940im_/https://www.gstatic.com/devrel-devsite/prod/v85a00308211ae0e76f4048e4f8440e0b4d866dea310d9c231254526f46e6d3e3/developers/images/favicon-new.png"> <link rel="apple-touch-icon" href="http://web.archive.org/web/20231006205940im_/https://www.gstatic.com/devrel-devsite/prod/v85a00308211ae0e76f4048e4f8440e0b4d866dea310d9c231254526f46e6d3e3/developers/images/touchicon-180-new.png"><link rel="canonical" href="http://web.archive.org/web/20231006205940/https://developers.google.com/products"><link rel="search" type="application/opensearchdescription+xml" title="Google for Developers" href="http://web.archive.org/web/20231006205940/https://developers.google.com/s/opensearch.xml"> <link rel="alternate" hreflang="en" href="http://web.archive.org/web/20231006205940/https://developers.google.com/products"/><link rel="alternate" hreflang="x-default" href="http://web.archive.org/web/20231006205940/https://developers.google.com/products"/><link rel="alternate" hreflang="ar" href="http://web.archive.org/web/20231006205940/https://developers.google.com/products?hl=ar"/><link rel="alternate" hreflang="bn" href="http://web.archive.org/web/20231006205940/https://developers.google.com/products?hl=bn"/><link rel="alternate" hreflang="zh-Hans" href="http://web.archive.org/web/20231006205940/https://developers.google.com/products?hl=zh-cn"/><link rel="alternate" hreflang="zh-Hant" href="http://web.archive.org/web/20231006205940/https://developers.google.com/products?hl=zh-tw"/><link rel="alternate" hreflang="fa" href="http://web.archive.org/web/20231006205940/https://developers.google.com/products?hl=fa"/><link rel="alternate" hreflang="fr" href="http://web.archive.org/web/20231006205940/https://developers.google.com/products?hl=fr"/><link rel="alternate" hreflang="de" href="http://web.archive.org/web/20231006205940/https://developers.google.com/products?hl=de"/><link rel="alternate" hreflang="he" href="http://web.archive.org/web/20231006205940/https://developers.google.com/products?hl=he"/><link rel="alternate" hreflang="hi" href="http://web.archive.org/web/20231006205940/https://developers.google.com/products?hl=hi"/><link rel="alternate" hreflang="id" href="http://web.archive.org/web/20231006205940/https://developers.google.com/products?hl=id"/><link rel="alternate" hreflang="it" href="http://web.archive.org/web/20231006205940/https://developers.google.com/products?hl=it"/><link rel="alternate" hreflang="ja" href="http://web.archive.org/web/20231006205940/https://developers.google.com/products?hl=ja"/><link rel="alternate" hreflang="ko" href="http://web.archive.org/web/20231006205940/https://developers.google.com/products?hl=ko"/><link rel="alternate" hreflang="pl" href="http://web.archive.org/web/20231006205940/https://developers.google.com/products?hl=pl"/><link rel="alternate" hreflang="pt-BR" href="http://web.archive.org/web/20231006205940/https://developers.google.com/products?hl=pt-br"/><link rel="alternate" hreflang="ru" href="http://web.archive.org/web/20231006205940/https://developers.google.com/products?hl=ru"/><link rel="alternate" hreflang="es-419" href="http://web.archive.org/web/20231006205940/https://developers.google.com/products?hl=es-419"/><link rel="alternate" hreflang="th" href="http://web.archive.org/web/20231006205940/https://developers.google.com/products?hl=th"/><link rel="alternate" hreflang="tr" href="http://web.archive.org/web/20231006205940/https://developers.google.com/products?hl=tr"/><link rel="alternate" hreflang="vi" href="http://web.archive.org/web/20231006205940/https://developers.google.com/products?hl=vi"/><title>Developer Products and Tools - Google for Developers</title> <meta property="og:title" content="Developer Products and Tools - Google for Developers"><meta name="description" content="Try the Google developer products and tools to build softwares, apps, and more. Explore our solutions for development, cloud, AI, and business growth."> <meta property="og:description" content="Try the Google developer products and tools to build softwares, apps, and more. Explore our solutions for development, cloud, AI, and business growth."><meta property="og:url" content="http://web.archive.org/web/20231006205940/https://developers.google.com/products"><meta property="og:image" content="http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/site-assets/images/home/developers-social-media.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="675"><meta property="og:locale" content="en"><meta name="twitter:card" content="summary"><meta name="twitter:image" content="http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/site-assets/images/home/developers-social-media.png"><script type="application/ld+json"> { "@context": "http://web.archive.org/web/20231006205940/https://schema.org", "@type": "Article", "headline": "Developer Products and Tools - Google for Developers" } </script> <link rel="stylesheet" href="/web/20231006205940cs_/https://developers.google.com/extras.css"></head> <body class="" template="landing" theme="white" type="article" layout="full" pending> <devsite-progress type="indeterminate" id="app-progress"></devsite-progress> <section class="devsite-wrapper"><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="/web/20231006205940/https://developers.google.com/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="googleForDevelopers" track-metadata-position="nav" track-metadata-eventdetail="nav"> <img src="http://web.archive.org/web/20231006205940im_/https://www.gstatic.com/devrel-devsite/prod/v85a00308211ae0e76f4048e4f8440e0b4d866dea310d9c231254526f46e6d3e3/developers/images/lockup-new.svg" class="devsite-site-logo" alt="Google for Developers"> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list"> <li class="devsite-breadcrumb-item devsite-has-google-wordmark"> </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 dropdown active> <a href="http://web.archive.org/web/20231006205940/https://developers.google.com/products" track-metadata-eventdetail="https://developers.google.com/products" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - products" track-metadata-module="primary nav" aria-label="Products, selected" data-category="Site-Wide Custom Events" data-label="Tab: Products" track-name="products"> Products </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Products" track-type="nav" track-metadata-eventdetail="https://developers.google.com/products" track-metadata-position="nav - products" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Products" track-name="products" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Develop</li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20231006205940/https://developer.android.com/" track-type="nav" track-metadata-eventdetail="//developer.android.com" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="develop" tooltip> <div class="devsite-nav-item-title"> Android </div> </a> </li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20231006205940/https://chromeos.dev/" track-type="nav" track-metadata-eventdetail="//chromeos.dev/" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="develop" tooltip> <div class="devsite-nav-item-title"> ChromeOS </div> </a> </li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20231006205940/https://cloud.google.com/" track-type="nav" track-metadata-eventdetail="//cloud.google.com" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="develop" tooltip> <div class="devsite-nav-item-title"> Cloud </div> </a> </li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20231006205940/https://firebase.google.com/" track-type="nav" track-metadata-eventdetail="//firebase.google.com" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="develop" tooltip> <div class="devsite-nav-item-title"> Firebase </div> </a> </li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20231006205940/https://flutter.dev/" track-type="nav" track-metadata-eventdetail="//flutter.dev" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="develop" tooltip> <div class="devsite-nav-item-title"> Flutter </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231006205940/https://developers.google.com/assistant" track-type="nav" track-metadata-eventdetail="https://developers.google.com/assistant" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="develop" tooltip> <div class="devsite-nav-item-title"> Google Assistant </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231006205940/https://developers.google.com/maps" track-type="nav" track-metadata-eventdetail="https://developers.google.com/maps" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="develop" tooltip> <div class="devsite-nav-item-title"> Google Maps Platform </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231006205940/https://developers.google.com/workspace" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="develop" tooltip> <div class="devsite-nav-item-title"> Google Workspace </div> </a> </li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20231006205940/https://www.tensorflow.org/" track-type="nav" track-metadata-eventdetail="//www.tensorflow.org" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="develop" tooltip> <div class="devsite-nav-item-title"> TensorFlow </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231006205940/https://developers.google.com/web" track-type="nav" track-metadata-eventdetail="https://developers.google.com/web" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="develop" tooltip> <div class="devsite-nav-item-title"> Web </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231006205940/https://developers.google.com/youtube" track-type="nav" track-metadata-eventdetail="https://developers.google.com/youtube" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="develop" tooltip> <div class="devsite-nav-item-title"> YouTube </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Grow</li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20231006205940/https://firebase.google.com/" track-type="nav" track-metadata-eventdetail="//firebase.google.com" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="grow" tooltip> <div class="devsite-nav-item-title"> Firebase </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231006205940/https://developers.google.com/google-ads" track-type="nav" track-metadata-eventdetail="https://developers.google.com/google-ads" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="grow" tooltip> <div class="devsite-nav-item-title"> Google Ads </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231006205940/https://developers.google.com/analytics" track-type="nav" track-metadata-eventdetail="https://developers.google.com/analytics" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="grow" tooltip> <div class="devsite-nav-item-title"> Google Analytics </div> </a> </li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20231006205940/https://developer.android.com/distribute/" track-type="nav" track-metadata-eventdetail="//developer.android.com/distribute/" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="grow" tooltip> <div class="devsite-nav-item-title"> Google Play </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231006205940/https://developers.google.com/search" track-type="nav" track-metadata-eventdetail="https://developers.google.com/search" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="grow" tooltip> <div class="devsite-nav-item-title"> Search </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231006205940/https://developers.google.com/web/fundamentals/engage-and-retain/push-notifications" track-type="nav" track-metadata-eventdetail="https://developers.google.com/web/fundamentals/engage-and-retain/push-notifications" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="grow" tooltip> <div class="devsite-nav-item-title"> Web Push and Notification APIs </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Earn</li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231006205940/https://developers.google.com/admob" track-type="nav" track-metadata-eventdetail="https://developers.google.com/admob" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="earn" tooltip> <div class="devsite-nav-item-title"> AdMob </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231006205940/https://developers.google.com/google-ads/api" track-type="nav" track-metadata-eventdetail="https://developers.google.com/google-ads/api" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="earn" tooltip> <div class="devsite-nav-item-title"> Google Ads API </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231006205940/https://developers.google.com/pay" track-type="nav" track-metadata-eventdetail="https://developers.google.com/pay" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="earn" tooltip> <div class="devsite-nav-item-title"> Google Pay </div> </a> </li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20231006205940/https://developer.android.com/google/play/billing/" track-type="nav" track-metadata-eventdetail="//developer.android.com/google/play/billing/" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="earn" tooltip> <div class="devsite-nav-item-title"> Google Play Billing </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231006205940/https://developers.google.com/interactive-media-ads" track-type="nav" track-metadata-eventdetail="https://developers.google.com/interactive-media-ads" track-metadata-position="nav - products" track-metadata-module="tertiary nav" track-metadata-module_headline="earn" tooltip> <div class="devsite-nav-item-title"> Interactive Media Ads </div> </a> </li> </ul> </div> </div> </div> </tab> <tab> <a href="http://web.archive.org/web/20231006205940/https://developers.google.com/solutions/catalog" track-metadata-eventdetail="https://developers.google.com/solutions/catalog" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - solutions" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Solutions" track-name="solutions"> Solutions </a> </tab> <tab> <a href="http://web.archive.org/web/20231006205940/https://developers.google.com/events" track-metadata-eventdetail="https://developers.google.com/events" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - events" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Events" track-name="events"> Events </a> </tab> <tab> <a href="http://web.archive.org/web/20231006205940/https://developers.google.com/learn" track-metadata-eventdetail="https://developers.google.com/learn" class="devsite-tabs-content gc-analytics-event " 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" aria-label="Learning Catalog"> Learn </a> </tab> <tab dropdown> <a href="http://web.archive.org/web/20231006205940/https://developers.google.com/community" track-metadata-eventdetail="https://developers.google.com/community" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - community" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Community" track-name="community"> Community </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Community" track-type="nav" track-metadata-eventdetail="https://developers.google.com/community" track-metadata-position="nav - community" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Community" track-name="community" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Groups</li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231006205940/https://developers.google.com/community/gdg" track-type="nav" track-metadata-eventdetail="https://developers.google.com/community/gdg" track-metadata-position="nav - community" track-metadata-module="tertiary nav" track-metadata-module_headline="groups" tooltip> <div class="devsite-nav-item-title"> Google Developer Groups </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231006205940/https://developers.google.com/community/gdsc" track-type="nav" track-metadata-eventdetail="https://developers.google.com/community/gdsc" track-metadata-position="nav - community" track-metadata-module="tertiary nav" track-metadata-module_headline="groups" tooltip> <div class="devsite-nav-item-title"> Google Developer Student Clubs </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231006205940/https://developers.google.com/womentechmakers" track-type="nav" track-metadata-eventdetail="https://developers.google.com/womentechmakers" track-metadata-position="nav - community" track-metadata-module="tertiary nav" track-metadata-module_headline="groups" tooltip> <div class="devsite-nav-item-title"> Women Techmakers </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231006205940/https://developers.google.com/community/experts" track-type="nav" track-metadata-eventdetail="https://developers.google.com/community/experts" track-metadata-position="nav - community" track-metadata-module="tertiary nav" track-metadata-module_headline="groups" tooltip> <div class="devsite-nav-item-title"> Google Developer Experts </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231006205940/https://www.techequitycollective.com/" track-type="nav" track-metadata-eventdetail="https://www.techequitycollective.com" track-metadata-position="nav - community" track-metadata-module="tertiary nav" track-metadata-module_headline="groups" tooltip> <div class="devsite-nav-item-title"> Tech Equity Collective </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Programs</li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231006205940/https://developers.google.com/community/accelerators" track-type="nav" track-metadata-eventdetail="https://developers.google.com/community/accelerators" track-metadata-position="nav - community" track-metadata-module="tertiary nav" track-metadata-module_headline="programs" tooltip> <div class="devsite-nav-item-title"> Accelerator </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231006205940/https://developers.google.com/community/gdsc-solution-challenge" track-type="nav" track-metadata-eventdetail="https://developers.google.com/community/gdsc-solution-challenge" track-metadata-position="nav - community" track-metadata-module="tertiary nav" track-metadata-module_headline="programs" tooltip> <div class="devsite-nav-item-title"> Solution Challenge </div> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231006205940/https://developers.google.com/community/devfest" track-type="nav" track-metadata-eventdetail="https://developers.google.com/community/devfest" track-metadata-position="nav - community" track-metadata-module="tertiary nav" track-metadata-module_headline="programs" tooltip> <div class="devsite-nav-item-title"> DevFest </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Stories</li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231006205940/https://developers.google.com/community/stories" track-type="nav" track-metadata-eventdetail="https://developers.google.com/community/stories" track-metadata-position="nav - community" track-metadata-module="tertiary nav" track-metadata-module_headline="stories" tooltip> <div class="devsite-nav-item-title"> All Stories </div> </a> </li> </ul> </div> </div> </div> </tab> <tab> <a href="http://web.archive.org/web/20231006205940/https://developers.google.com/profile/u/me" track-metadata-eventdetail="https://developers.google.com/profile/u/me" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - developer profile" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Developer Profile" track-name="developer profile"> Developer Profile </a> </tab> <tab> <a href="http://web.archive.org/web/20231006205940/https://developers.googleblog.com/" track-metadata-eventdetail="https://developers.googleblog.com" class="devsite-tabs-content gc-analytics-event " 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 aria-expanded="false" aria-haspopup="listbox" enable-signin enable-search enable-suggestions enable-query-completion project-name="Google for Developers" tenant-name="Google for Developers" role="combobox"> <form class="devsite-search-form" action="http://web.archive.org/web/20231006205940/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-haspopup="false" aria-multiline="false" aria-label="Search box" autocomplete="off" class="devsite-search-field devsite-search-query" name="q" placeholder="Search" role="searchbox" type="text" value=""> <div class="devsite-search-image material-icons" aria-hidden="true"></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="id">Bahasa Indonesia</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="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> <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 "> <div class="devsite-header-background"> <div class="devsite-doc-set-nav-row"> <devsite-tabs class="lower-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Lower tabs"> <tab active> <a href="http://web.archive.org/web/20231006205940/https://developers.google.com/products" track-metadata-eventdetail="https://developers.google.com/products" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - all products" track-metadata-module="primary nav" aria-label="All Products, selected" data-category="Site-Wide Custom Events" data-label="Tab: All Products" track-name="all products"> All Products </a> </tab> <tab> <a href="http://web.archive.org/web/20231006205940/https://developers.google.com/products/develop" track-metadata-eventdetail="https://developers.google.com/products/develop" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - develop" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Develop" track-name="develop"> Develop </a> </tab> <tab> <a href="http://web.archive.org/web/20231006205940/https://developers.google.com/products/grow" track-metadata-eventdetail="https://developers.google.com/products/grow" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - grow" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Grow" track-name="grow"> Grow </a> </tab> <tab> <a href="http://web.archive.org/web/20231006205940/https://developers.google.com/products/earn" track-metadata-eventdetail="https://developers.google.com/products/earn" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - earn" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Earn" track-name="earn"> Earn </a> </tab> </nav> </devsite-tabs> </div> </div> </div> </div> </devsite-header> <devsite-book-nav scrollbars hidden> <div class="devsite-book-nav-filter hidden"> <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="/web/20231006205940/https://developers.google.com/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="googleForDevelopers" track-metadata-position="nav" track-metadata-eventdetail="nav"> <img src="http://web.archive.org/web/20231006205940im_/https://www.gstatic.com/devrel-devsite/prod/v85a00308211ae0e76f4048e4f8440e0b4d866dea310d9c231254526f46e6d3e3/developers/images/lockup-new.svg" class="devsite-site-logo" alt="Google for Developers"> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list"> <li class="devsite-breadcrumb-item devsite-has-google-wordmark"> </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="/web/20231006205940/https://developers.google.com/products" class="devsite-nav-title gc-analytics-event devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Products" track-name="products" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Products" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Products </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Products" track-name="products"> <span class="devsite-nav-text" tooltip menu="Products"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Products"> </span> </span> </li> </ul> <ul class="devsite-nav-responsive-tabs"> <li class="devsite-nav-item"> <a href="/web/20231006205940/https://developers.google.com/products" class="devsite-nav-title gc-analytics-event devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: All Products" track-name="all products" data-category="Site-Wide Custom Events" data-label="Responsive Tab: All Products" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> All Products </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231006205940/https://developers.google.com/products/develop" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Develop" track-name="develop" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Develop" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Develop </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231006205940/https://developers.google.com/products/grow" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Grow" track-name="grow" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Grow" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Grow </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231006205940/https://developers.google.com/products/earn" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Earn" track-name="earn" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Earn" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Earn </span> </a> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/web/20231006205940/https://developers.google.com/solutions/catalog" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Solutions" track-name="solutions" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Solutions" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Solutions </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231006205940/https://developers.google.com/events" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Events" track-name="events" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Events" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Events </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231006205940/https://developers.google.com/learn" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Learn" track-name="learn" aria-label="Learning Catalog" 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="/web/20231006205940/https://developers.google.com/community" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Community" track-name="community" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Community" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Community </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Community" track-name="community"> <span class="devsite-nav-text" tooltip menu="Community"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Community"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/web/20231006205940/https://developers.google.com/profile/u/me" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Developer Profile" track-name="developer profile" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Developer Profile" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Developer Profile </span> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231006205940/https://developers.googleblog.com/" 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> </ul> </div> <div class="devsite-mobile-nav-bottom"> <ul class="devsite-nav-list" menu="Products" aria-label="Side menu" hidden> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip> Develop </span> </span> </li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20231006205940/https://developer.android.com/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Android" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Android </span> </a> </li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20231006205940/https://chromeos.dev/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: ChromeOS" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> ChromeOS </span> </a> </li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20231006205940/https://cloud.google.com/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Cloud" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Cloud </span> </a> </li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20231006205940/https://firebase.google.com/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Firebase" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Firebase </span> </a> </li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20231006205940/https://flutter.dev/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Flutter" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Flutter </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231006205940/https://developers.google.com/assistant" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Assistant" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Google Assistant </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231006205940/https://developers.google.com/maps" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Maps Platform" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Google Maps Platform </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231006205940/https://developers.google.com/workspace" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Workspace" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Google Workspace </span> </a> </li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20231006205940/https://www.tensorflow.org/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: TensorFlow" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> TensorFlow </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231006205940/https://developers.google.com/web" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Web" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Web </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231006205940/https://developers.google.com/youtube" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: YouTube" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> YouTube </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip> Grow </span> </span> </li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20231006205940/https://firebase.google.com/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Firebase" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Firebase </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231006205940/https://developers.google.com/google-ads" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Ads" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Google Ads </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231006205940/https://developers.google.com/analytics" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Analytics" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Google Analytics </span> </a> </li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20231006205940/https://developer.android.com/distribute/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Play" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Google Play </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231006205940/https://developers.google.com/search" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Search" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Search </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231006205940/https://developers.google.com/web/fundamentals/engage-and-retain/push-notifications" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Web Push and Notification APIs" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Web Push and Notification APIs </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip> Earn </span> </span> </li> <li class="devsite-nav-item"> <a href="/web/20231006205940/https://developers.google.com/admob" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: AdMob" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> AdMob </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231006205940/https://developers.google.com/google-ads/api" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Ads API" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Google Ads API </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231006205940/https://developers.google.com/pay" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Pay" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Google Pay </span> </a> </li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20231006205940/https://developer.android.com/google/play/billing/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Play Billing" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Google Play Billing </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231006205940/https://developers.google.com/interactive-media-ads" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Interactive Media Ads" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Interactive Media Ads </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Community" aria-label="Side menu" hidden> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip> Groups </span> </span> </li> <li class="devsite-nav-item"> <a href="/web/20231006205940/https://developers.google.com/community/gdg" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Developer Groups" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Google Developer Groups </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231006205940/https://developers.google.com/community/gdsc" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Developer Student Clubs" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Google Developer Student Clubs </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231006205940/https://developers.google.com/womentechmakers" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Women Techmakers" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Women Techmakers </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231006205940/https://developers.google.com/community/experts" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Developer Experts" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Google Developer Experts </span> </a> </li> <li class="devsite-nav-item"> <a href="http://web.archive.org/web/20231006205940/https://www.techequitycollective.com/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Tech Equity Collective" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Tech Equity Collective </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip> Programs </span> </span> </li> <li class="devsite-nav-item"> <a href="/web/20231006205940/https://developers.google.com/community/accelerators" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Accelerator" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Accelerator </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231006205940/https://developers.google.com/community/gdsc-solution-challenge" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Solution Challenge" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> Solution Challenge </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20231006205940/https://developers.google.com/community/devfest" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: DevFest" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> DevFest </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip> Stories </span> </span> </li> <li class="devsite-nav-item"> <a href="/web/20231006205940/https://developers.google.com/community/stories" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: All Stories" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip> All Stories </span> </a> </li> </ul> </div> </div> </nav> </devsite-book-nav> <section id="gc-wrapper"> <main role="main" class="devsite-main-content"> <div class="devsite-sidebar"> <div class="devsite-sidebar-content"> <devsite-toc class="devsite-nav" role="navigation" aria-label="On this page" depth="2" scrollbars disabled></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="http://web.archive.org/web/20231006205940/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="Google for Developers"> Google for Developers </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="http://web.archive.org/web/20231006205940/https://developers.google.com/products" 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=""> Products </a> </li> </ul> </div> <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> <devsite-toc class="devsite-nav" depth="2" devsite-toc-embedded disabled> </devsite-toc> <div class="devsite-article-body clearfix "> <div class="devsite-page-title-meta"></div> <section class="devsite-landing-row devsite-landing-row-3-up" background="/web/20231006205940im_/https://developers.google.com/grey" header-position="top"> <div class="devsite-landing-row-inner"> <header class="devsite-landing-row-header"> <div class="devsite-landing-row-header-text"> <h2 id="popular-products" data-text="Popular products" tabindex="0"> Popular products </h2> </div> </header> <div class="devsite-landing-row-group"> <div class="devsite-landing-row-item devsite-landing-row-item-no-media" description-position="bottom"> <div class="devsite-landing-row-item-description" icon-position="left"> <a href="//web.archive.org/web/20231006205940/https://developer.android.com/"> <div class="devsite-landing-row-item-icon-container" background="/web/20231006205940im_/https://developers.google.com/white" size="medium"> <img class="devsite-landing-row-item-icon" alt="" src="http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/site-assets/images/products/android_logo.png" srcset="http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/site-assets/images/products/android_logo_36.png 36w, http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/site-assets/images/products/android_logo_48.png 48w, http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/site-assets/images/products/android_logo_72.png 72w, http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/site-assets/images/products/android_logo_96.png 96w, http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/site-assets/images/products/android_logo_480.png 480w, http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/site-assets/images/products/android_logo_720.png 720w, http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/site-assets/images/products/android_logo_856.png 856w, http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/site-assets/images/products/android_logo_960.png 960w, http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/site-assets/images/products/android_logo_1440.png 1440w, http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/site-assets/images/products/android_logo_1920.png 1920w, http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/site-assets/images/products/android_logo_2880.png 2880w" sizes="64px" loading="lazy"> </div> </a> <div class="devsite-landing-row-item-body"> <h3 id="android" data-text="Android" class="hide-from-toc no-link" tabindex="0"> <a href="//web.archive.org/web/20231006205940/https://developer.android.com/"> Android </a> </h3> <div class="devsite-landing-row-item-description-content"> Get your apps ready for the latest version of Android. </div> </div> </div> </div> <div class="devsite-landing-row-item devsite-landing-row-item-no-media" description-position="bottom"> <div class="devsite-landing-row-item-description" icon-position="left"> <a href="//web.archive.org/web/20231006205940/https://firebase.google.com/"> <div class="devsite-landing-row-item-icon-container" background="/web/20231006205940im_/https://developers.google.com/white" size="medium"> <img class="devsite-landing-row-item-icon" alt="" src="//web.archive.org/web/20231006205940im_/https://www.gstatic.com/images/branding/product/2x/firebase_36dp.png" srcset="" sizes="64px" loading="lazy"> </div> </a> <div class="devsite-landing-row-item-body"> <h3 id="firebase" data-text="Firebase" class="hide-from-toc no-link" tabindex="0"> <a href="//web.archive.org/web/20231006205940/https://firebase.google.com/"> Firebase </a> </h3> <div class="devsite-landing-row-item-description-content"> The tools and infrastructure you need to build better mobile and web apps, improve app quality, and grow your business. </div> </div> </div> </div> <div class="devsite-landing-row-item devsite-landing-row-item-no-media" description-position="bottom"> <div class="devsite-landing-row-item-description" icon-position="left"> <a href="http://web.archive.org/web/20231006205940/https://developers.google.com/web"> <div class="devsite-landing-row-item-icon-container" background="/web/20231006205940im_/https://developers.google.com/white" size="medium"> <img class="devsite-landing-row-item-icon" alt="" src="http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/web/images/web-fundamentals-icon192x192.png" srcset="http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/web/images/web-fundamentals-icon192x192_36.png 36w, http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/web/images/web-fundamentals-icon192x192_48.png 48w, http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/web/images/web-fundamentals-icon192x192_72.png 72w, http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/web/images/web-fundamentals-icon192x192_96.png 96w, http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/web/images/web-fundamentals-icon192x192_480.png 480w, http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/web/images/web-fundamentals-icon192x192_720.png 720w, http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/web/images/web-fundamentals-icon192x192_856.png 856w, http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/web/images/web-fundamentals-icon192x192_960.png 960w, http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/web/images/web-fundamentals-icon192x192_1440.png 1440w, http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/web/images/web-fundamentals-icon192x192_1920.png 1920w, http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/web/images/web-fundamentals-icon192x192_2880.png 2880w" sizes="64px" loading="lazy"> </div> </a> <div class="devsite-landing-row-item-body"> <h3 id="web" data-text="Web" class="hide-from-toc no-link" tabindex="0"> <a href="http://web.archive.org/web/20231006205940/https://developers.google.com/web"> Web </a> </h3> <div class="devsite-landing-row-item-description-content"> Develop the next generation of applications for the Web. </div> </div> </div> </div> <div class="devsite-landing-row-item devsite-landing-row-item-no-media" description-position="bottom"> <div class="devsite-landing-row-item-description" icon-position="left"> <a href="//web.archive.org/web/20231006205940/https://cloud.google.com/"> <div class="devsite-landing-row-item-icon-container" background="/web/20231006205940im_/https://developers.google.com/white" size="medium"> <img class="devsite-landing-row-item-icon" alt="" src="//web.archive.org/web/20231006205940im_/https://www.gstatic.com/images/branding/product/2x/google_cloud_36dp.png" srcset="" sizes="64px" loading="lazy"> </div> </a> <div class="devsite-landing-row-item-body"> <h3 id="cloud" data-text="Cloud" class="hide-from-toc no-link" tabindex="0"> <a href="//web.archive.org/web/20231006205940/https://cloud.google.com/"> Cloud </a> </h3> <div class="devsite-landing-row-item-description-content"> Everything you need to build and scale your enterprise, securely. </div> </div> </div> </div> <div class="devsite-landing-row-item devsite-landing-row-item-no-media" description-position="bottom"> <div class="devsite-landing-row-item-description" icon-position="left"> <a href="http://web.archive.org/web/20231006205940/https://developers.google.com/maps"> <div class="devsite-landing-row-item-icon-container" background="/web/20231006205940im_/https://developers.google.com/white" size="medium"> <img class="devsite-landing-row-item-icon" alt="" src="//web.archive.org/web/20231006205940im_/https://www.gstatic.com/images/branding/product/2x/maps_36dp.png" srcset="" sizes="64px" loading="lazy"> </div> </a> <div class="devsite-landing-row-item-body"> <h3 id="google-maps-platform" data-text="Google Maps Platform" class="hide-from-toc no-link" tabindex="0"> <a href="http://web.archive.org/web/20231006205940/https://developers.google.com/maps"> Google Maps Platform </a> </h3> <div class="devsite-landing-row-item-description-content"> Power location experiences for websites and apps. </div> </div> </div> </div> <div class="devsite-landing-row-item devsite-landing-row-item-no-media" description-position="bottom"> <div class="devsite-landing-row-item-description" icon-position="left"> <a href="//web.archive.org/web/20231006205940/https://www.tensorflow.org/"> <div class="devsite-landing-row-item-icon-container" background="/web/20231006205940im_/https://developers.google.com/white" size="medium"> <img class="devsite-landing-row-item-icon" alt="" src="http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/site-assets/images/products/tensorflow-logo-196.png" srcset="http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/site-assets/images/products/tensorflow-logo-196_36.png 36w, http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/site-assets/images/products/tensorflow-logo-196_48.png 48w, http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/site-assets/images/products/tensorflow-logo-196_72.png 72w, http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/site-assets/images/products/tensorflow-logo-196_96.png 96w, http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/site-assets/images/products/tensorflow-logo-196_480.png 480w, http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/site-assets/images/products/tensorflow-logo-196_720.png 720w, http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/site-assets/images/products/tensorflow-logo-196_856.png 856w, http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/site-assets/images/products/tensorflow-logo-196_960.png 960w, http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/site-assets/images/products/tensorflow-logo-196_1440.png 1440w, http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/site-assets/images/products/tensorflow-logo-196_1920.png 1920w, http://web.archive.org/web/20231006205940im_/https://developers.google.com/static/site-assets/images/products/tensorflow-logo-196_2880.png 2880w" sizes="64px" loading="lazy"> </div> </a> <div class="devsite-landing-row-item-body"> <h3 id="tensorflow" data-text="TensorFlow" class="hide-from-toc no-link" tabindex="0"> <a href="//web.archive.org/web/20231006205940/https://www.tensorflow.org/"> TensorFlow </a> </h3> <div class="devsite-landing-row-item-description-content"> An open source software library for machine intelligence. </div> </div> </div> </div> </div> </div> </section> <section class="devsite-landing-row devsite-landing-row-1-up devsite-landing-row-100" header-position="top"> <div class="devsite-landing-row-inner"> <header class="devsite-landing-row-header"> <div class="devsite-landing-row-header-text"> <h2 id="all-products" data-text="All products" tabindex="0"> All products </h2> </div> </header> <div class="devsite-landing-row-group"> <div class="devsite-landing-row-item devsite-landing-row-item-no-media" description-position="bottom"> <div class="devsite-landing-row-item-description"> <div class="devsite-landing-row-item-body"> <div class="devsite-landing-row-item-description-content"> <devsite-catalog query="docType:product" maxresults="1000" sortorder="alphabetical" items-per-page="18" fields="title summary icon" pagination-type="numeric" link-type="button" button-label="Explore" all-tenants template="card"> <input type="text" placeholder="Search for a product"> <select name="category" label="Choose a topic" multiple> <option value="Ads">Ads</option> <option value="AiAndMachineLearning">AI & Machine Learning</option> <option value="Analytics">Analytics</option> <option value="AugmentedRealityAndVirtualReality">AR/VR</option> <option value="BigDataAndAnalytics">Big Data & Analytics</option> <option value="Cloud">Cloud</option> <option value="Connectivity">Connectivity</option> <option value="Data">Data</option> <option value="Design">Design</option> <option value="DevOps">DevOps</option> <option value="ECommerce">Ecommerce</option> <option value="Education">Education</option> <option value="Enterprise">Enterprise</option> <option value="Gaming">Gaming</option> <option value="HealthCareAndLifeSciences">Health Care & Life Sciences</option> <option value="Identity">Identity</option> <option value="InternetOfThings">Internet of Things (IoT)</option> <option value="LoggingAndMonitoring">Logging & Monitoring</option> <option value="LocationOrMaps">Maps & Location</option> <option value="Media">Media</option> <option value="Mobile">Mobile</option> <option value="Networking">Networking</option> <option value="OpenSource">Open Source</option> <option value="OperatingSystem">Operating System</option> <option value="Payments">Payments</option> <option value="Performance">Performance</option> <option value="Search">Search</option> <option value="SecurityAndCompliance">Security & Compliance</option> <option value="Serverless">Serverless</option> <option value="SmartHomeEcosystem">Smart Home Ecosystem</option> <option value="Storage">Storage</option> <option value="UserInterface">User Interface</option> <option value="Web">Web</option> </select> </devsite-catalog> </div> </div> </div> </div> </div> </div> </section> <devsite-hats-survey class="nocontent" hats-id="5Djwt4Azw0iQ84LPiVd0QYQ4sHzc" listnr-id="5123748"></devsite-hats-survey> </div> </article> <devsite-notification> </devsite-notification> <div class="devsite-content-data"> <template class="devsite-thumb-rating-down-categories"> [{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"Missing the information I need" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"Too complicated / too many steps" },{ "type": "thumb-down", "id": "outOfDate", "label":"Out of date" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"Samples / code issue" },{ "type": "thumb-down", "id": "otherDown", "label":"Other" }] </template> <template class="devsite-thumb-rating-up-categories"> [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Easy to understand" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Solved my problem" },{ "type": "thumb-up", "id": "otherUp", "label":"Other" }] </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">Connect</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20231006205940/https://googledevelopers.blogspot.com/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)"> Blog </a> </li> <li class="devsite-footer-linkbox-item"> <a href="http://web.archive.org/web/20231006205940/https://www.instagram.com/googlefordevs/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)"> Instagram </a> </li> <li class="devsite-footer-linkbox-item"> <a href="http://web.archive.org/web/20231006205940/https://www.linkedin.com/showcase/googledevelopers/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)"> LinkedIn </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20231006205940/https://twitter.com/googledevs" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)"> Twitter </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20231006205940/https://www.youtube.com/user/GoogleDevelopers" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)"> YouTube </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Programs</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20231006205940/https://www.womentechmakers.com/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)"> Women Techmakers </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20231006205940/https://developers.google.com/community/gdg" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)"> Google Developer Groups </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20231006205940/https://developers.google.com/community/experts" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)"> Google Developer Experts </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20231006205940/https://developers.google.com/community/accelerators" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)"> Accelerators </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20231006205940/https://developers.google.com/community/gdsc" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)"> Google Developer Student Clubs </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Developer consoles</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20231006205940/https://console.developers.google.com/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)"> Google API Console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20231006205940/https://console.cloud.google.com/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)"> Google Cloud Platform Console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20231006205940/https://play.google.com/apps/publish" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)"> Google Play Console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20231006205940/https://console.firebase.google.com/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)"> Firebase Console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20231006205940/https://console.actions.google.com/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)"> Actions on Google Console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20231006205940/https://cast.google.com/publish" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)"> Cast SDK Developer Console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20231006205940/https://chrome.google.com/webstore/developer/dashboard" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 7)"> Chrome Web Store Dashboard </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="http://web.archive.org/web/20231006205940/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> <source srcset="http://web.archive.org/web/20231006205940im_/https://www.gstatic.com/devrel-devsite/prod/v85a00308211ae0e76f4048e4f8440e0b4d866dea310d9c231254526f46e6d3e3/developers/images/lockup-google-for-developers-dark-theme.svg" media="(prefers-color-scheme: none)" class="devsite-dark-theme" loading="lazy" alt="Google Developers"> <img class="devsite-footer-sites-logo" src="http://web.archive.org/web/20231006205940im_/https://www.gstatic.com/devrel-devsite/prod/v85a00308211ae0e76f4048e4f8440e0b4d866dea310d9c231254526f46e6d3e3/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="//web.archive.org/web/20231006205940/https://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="//web.archive.org/web/20231006205940/https://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="//web.archive.org/web/20231006205940/https://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="//web.archive.org/web/20231006205940/https://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="/web/20231006205940/https://developers.google.com/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="/web/20231006205940/https://developers.google.com/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="//web.archive.org/web/20231006205940/https://policies.google.com/privacy" data-category="Site-Wide Custom Events" data-label="Footer Privacy link"> Privacy </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="/web/20231006205940/https://developers.google.com/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="id">Bahasa Indonesia</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="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 analytics-iframe enable-ga4> <script type="application/json" analytics>[{"dimensions": {"dimension3": false, "dimension6": "en", "dimension11": false, "dimension5": "en", "dimension4": "Google for Developers", "dimension1": "Signed out"}, "gaid": "UA-24532603-1", "metrics": {"ratings_value": "metric1", "ratings_count": "metric2"}}]</script> <script type="application/json" tag-management gtm>{"ga4": ["G-272J68FCRF", "G-P65P8J8YWQ"], "ga4p": ["G-272J68FCRF"], "gtm": [], "parameters": {"internalUser": "False", "language": {"machineTranslated": "False", "requested": "en", "served": "en"}, "pageType": "article", "projectName": "Google for Developers", "signedIn": "False", "tenant": "developers", "recommendations": {"sourcePage": "", "sourceType": 0, "sourceRank": 0, "sourceIdenticalDescriptions": 0, "sourceTitleWords": 0, "sourceDescriptionWords": 0, "experiment": ""}, "experiment": {"ids": ""}}, "tags": []}</script> </devsite-analytics> <devsite-badger></devsite-badger> <script nonce="mRS1xbku852k9kEyAl7ben+4Dtcxa1"> (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', 'http://web.archive.org/web/20231006205940/https://www.gstatic.com/devrel-devsite/prod/v85a00308211ae0e76f4048e4f8440e0b4d866dea310d9c231254526f46e6d3e3/developers/js/app_loader.js', '[1,"en",null,"/js/devsite_app_module.js","http://web.archive.org/web/20231006205940/https://www.gstatic.com/devrel-devsite/prod/v85a00308211ae0e76f4048e4f8440e0b4d866dea310d9c231254526f46e6d3e3","http://web.archive.org/web/20231006205940/https://www.gstatic.com/devrel-devsite/prod/v85a00308211ae0e76f4048e4f8440e0b4d866dea310d9c231254526f46e6d3e3/developers","http://web.archive.org/web/20231006205940/https://developers-dot-devsite-v2-prod.appspot.com",1,null,["/_pwa/developers/manifest.json","http://web.archive.org/web/20231006205940/https://www.gstatic.com/devrel-devsite/prod/v85a00308211ae0e76f4048e4f8440e0b4d866dea310d9c231254526f46e6d3e3/images/video-placeholder.svg","http://web.archive.org/web/20231006205940/https://www.gstatic.com/devrel-devsite/prod/v85a00308211ae0e76f4048e4f8440e0b4d866dea310d9c231254526f46e6d3e3/developers/images/favicon-new.png","http://web.archive.org/web/20231006205940/https://www.gstatic.com/devrel-devsite/prod/v85a00308211ae0e76f4048e4f8440e0b4d866dea310d9c231254526f46e6d3e3/developers/images/lockup-new.svg","http://web.archive.org/web/20231006205940/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,40,50,52,63,70,75,76,80,87,91,92,93,97,98,100,101,102,103,104,105,107,108,109,110,111,112,113,115,116,117,118,120,122,124,125,126,127,129,130,131,132,133,134,135,136,138,140,141,144,147,148,149,150,151,152,154,155,156,157,158,159,161,163,164,165,168,169,170,172,173,179,180,182,183,186,190,191,193,196],"AIzaSyAP-jjEJBzmIyKR4F-3XITp8yM9T1gEEI8","AIzaSyB6xiKGDR5O3Ak2okS4rLkauxGUG7XP0hg","developers.google.com","AIzaSyAQk0fBONSGUqCNznf6Krs82Ap1-NV6J4o","AIzaSyCCxcqdrZ_7QMeLCRY20bh_SXdAYqy70KY",null,null,null,["BookNav__enable_book_nav_filtering","AuthorPageInsights__enable_author_page_insights","Profiles__require_profile_eligibility_for_signin","Significatio__enable_experiment_id_caching","Cloud__enable_cloudx_ping","Profiles__enable_profile_notifications_ui","SignIn__enable_auto_signin_oauth","Cloud__enable_cloud_shell_fte_user_flow","Profiles__enable_page_saving","Experiments__reqs_query_experiments","Cloud__enable_cloud_facet_chat","Profiles__enable_searchable_interests","Search__enable_page_map","Profiles__enable_developer_profiles_callout","Concierge__enable_concierge","MiscFeatureFlags__emergency_css","Cloud__enable_cloud_shell","ContentExcellence__enable_verified_date","Badges__enable_drag_and_drop_badges","Profiles__enable_profile_collections","Badges__enable_delete_badges","Profiles__enable_developer_profiles_interests","Profiles__enable_developer_profiles_dashboard_recommendations","MiscFeatureFlags__developers_footer_image","Profiles__enable_suggested_interests","OpenInReplit__enable_replit","Cloud__enable_cloudx_experiment_ids","Cloud__enable_cloud_dlp_service","Search__enable_dynamic_content_confidential_banner","Profiles__enable_public_developer_profiles","Badges__enable_hide_badges","Analytics__enable_ga4_analytics","Concierge__enable_pushui","Search__enable_faceted_search","MiscFeatureFlags__devpanel_url","Search__enable_suggestions_from_borg","Profiles__enable_profile_communities","ContentExcellence__enable_googler_button","Significatio__enable_by_tenant","Localization__enable_locale_redirects","Significatio__enable_footprints","Search__enable_acl_suggestions","MiscFeatureFlags__enable_tls_version_for_gaia_calls","MiscFeatureFlags__content_publisher_push_queue","Experiments__enable_experiments","Search__enable_devsite_serp","BookNav__enable_collapsible_book_nav","Cloud__enable_free_trial_server_call","MiscFeatureFlags__developers_footer_dark_image"],null,null,"AIzaSyBLEMok-5suZ67qRPzx0qUtbnLmyT_kCVE","http://web.archive.org/web/20231006205940/https://developerscontentserving-pa.clients6.google.com","AIzaSyCM4QpTRSqP5qI4Dvjt4OAScIN8sOUlO-k","http://web.archive.org/web/20231006205940/https://developerscontentsearch-pa.clients6.google.com",1]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html><!-- FILE ARCHIVED ON 20:59:40 Oct 06, 2023 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 20:28:05 Nov 24, 2024. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). --> <!-- playback timings (ms): captures_list: 0.878 exclusion.robots: 0.054 exclusion.robots.policy: 0.039 esindex: 0.013 cdx.remote: 14.849 LoadShardBlock: 129.335 (3) PetaboxLoader3.datanode: 108.412 (4) load_resource: 156.475 PetaboxLoader3.resolve: 62.021 -->