CINXE.COM

App review process and requirements for the Google Workspace Marketplace  |  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/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/css/app.css"> <link rel="shortcut icon" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/favicon-new.png"> <link rel="apple-touch-icon" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/touchicon-180-new.png"><link rel="canonical" href="https://developers.google.com/workspace/marketplace/about-app-review"><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/workspace/marketplace/about-app-review" /><link rel="alternate" hreflang="x-default" href="https://developers.google.com/workspace/marketplace/about-app-review" /><link rel="alternate" hreflang="ar" href="https://developers.google.com/workspace/marketplace/about-app-review?hl=ar" /><link rel="alternate" hreflang="bn" href="https://developers.google.com/workspace/marketplace/about-app-review?hl=bn" /><link rel="alternate" hreflang="zh-Hans" href="https://developers.google.com/workspace/marketplace/about-app-review?hl=zh-cn" /><link rel="alternate" hreflang="zh-Hant" href="https://developers.google.com/workspace/marketplace/about-app-review?hl=zh-tw" /><link rel="alternate" hreflang="fa" href="https://developers.google.com/workspace/marketplace/about-app-review?hl=fa" /><link rel="alternate" hreflang="fr" href="https://developers.google.com/workspace/marketplace/about-app-review?hl=fr" /><link rel="alternate" hreflang="de" href="https://developers.google.com/workspace/marketplace/about-app-review?hl=de" /><link rel="alternate" hreflang="he" href="https://developers.google.com/workspace/marketplace/about-app-review?hl=he" /><link rel="alternate" hreflang="hi" href="https://developers.google.com/workspace/marketplace/about-app-review?hl=hi" /><link rel="alternate" hreflang="id" href="https://developers.google.com/workspace/marketplace/about-app-review?hl=id" /><link rel="alternate" hreflang="it" href="https://developers.google.com/workspace/marketplace/about-app-review?hl=it" /><link rel="alternate" hreflang="ja" href="https://developers.google.com/workspace/marketplace/about-app-review?hl=ja" /><link rel="alternate" hreflang="ko" href="https://developers.google.com/workspace/marketplace/about-app-review?hl=ko" /><link rel="alternate" hreflang="pl" href="https://developers.google.com/workspace/marketplace/about-app-review?hl=pl" /><link rel="alternate" hreflang="pt-BR" href="https://developers.google.com/workspace/marketplace/about-app-review?hl=pt-br" /><link rel="alternate" hreflang="ru" href="https://developers.google.com/workspace/marketplace/about-app-review?hl=ru" /><link rel="alternate" hreflang="es-419" href="https://developers.google.com/workspace/marketplace/about-app-review?hl=es-419" /><link rel="alternate" hreflang="th" href="https://developers.google.com/workspace/marketplace/about-app-review?hl=th" /><link rel="alternate" hreflang="tr" href="https://developers.google.com/workspace/marketplace/about-app-review?hl=tr" /><link rel="alternate" hreflang="vi" href="https://developers.google.com/workspace/marketplace/about-app-review?hl=vi" /><title>App review process and requirements for the Google Workspace Marketplace &nbsp;|&nbsp; Google for Developers</title> <meta property="og:title" content="App review process and requirements for the Google Workspace Marketplace &nbsp;|&nbsp; Google for Developers"><meta property="og:url" content="https://developers.google.com/workspace/marketplace/about-app-review"><meta property="og:image" content="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/opengraph/white.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_large_image"><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "headline": "App review process and requirements for the Google Workspace Marketplace" } </script><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{ "@type": "ListItem", "position": 1, "name": "Google Workspace", "item": "https://developers.google.com/workspace" },{ "@type": "ListItem", "position": 2, "name": "Marketplace", "item": "https://developers.google.com/workspace/marketplace" },{ "@type": "ListItem", "position": 3, "name": "App review process and requirements for the Google Workspace Marketplace", "item": "https://developers.google.com/workspace/marketplace/about-app-review" }] } </script> <link rel="stylesheet" href="/extras.css"></head> <body class="" template="page" theme="white" type="article" layout="docs" concierge='closed' display-toc pending> <devsite-progress type="indeterminate" id="app-progress"></devsite-progress> <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/workspace"> <div class="devsite-product-logo-container" size="medium" > <picture> <img class="devsite-product-logo" alt="Google Workspace" src="https://fonts.gstatic.com/s/i/productlogos/googleg/v6/16px.svg" srcset=" https://fonts.gstatic.com/s/i/productlogos/googleg/v6/16px.svg" sizes="64px" loading="lazy" > </picture> </div> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item devsite-has-google-wordmark"> <a href="https://developers.google.com/workspace" 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="Google Workspace" > <svg class="devsite-google-wordmark" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 148 48"> <title>Google</title> <path class="devsite-google-wordmark-svg-path" d="M19.58,37.65c-9.87,0-18.17-8.04-18.17-17.91c0-9.87,8.3-17.91,18.17-17.91c5.46,0,9.35,2.14,12.27,4.94l-3.45,3.45c-2.1-1.97-4.93-3.49-8.82-3.49c-7.21,0-12.84,5.81-12.84,13.02c0,7.21,5.64,13.02,12.84,13.02c4.67,0,7.34-1.88,9.04-3.58c1.4-1.4,2.32-3.41,2.66-6.16H19.58v-4.89h16.47c0.18,0.87,0.26,1.92,0.26,3.06c0,3.67-1.01,8.21-4.24,11.44C28.93,35.9,24.91,37.65,19.58,37.65z M61.78,26.12c0,6.64-5.1,11.53-11.36,11.53s-11.36-4.89-11.36-11.53c0-6.68,5.1-11.53,11.36-11.53S61.78,19.43,61.78,26.12z M56.8,26.12c0-4.15-2.96-6.99-6.39-6.99c-3.43,0-6.39,2.84-6.39,6.99c0,4.11,2.96,6.99,6.39,6.99C53.84,33.11,56.8,30.22,56.8,26.12z M87.25,26.12c0,6.64-5.1,11.53-11.36,11.53c-6.26,0-11.36-4.89-11.36-11.53c0-6.68,5.1-11.53,11.36-11.53C82.15,14.59,87.25,19.43,87.25,26.12zM82.28,26.12c0-4.15-2.96-6.99-6.39-6.99c-3.43,0-6.39,2.84-6.39,6.99c0,4.11,2.96,6.99,6.39,6.99C79.32,33.11,82.28,30.22,82.28,26.12z M112.09,15.29v20.7c0,8.52-5.02,12.01-10.96,12.01c-5.59,0-8.95-3.76-10.22-6.81l4.41-1.83c0.79,1.88,2.71,4.1,5.81,4.1c3.8,0,6.16-2.36,6.16-6.77v-1.66h-0.18c-1.14,1.4-3.32,2.62-6.07,2.62c-5.76,0-11.05-5.02-11.05-11.49c0-6.51,5.28-11.57,11.05-11.57c2.75,0,4.93,1.22,6.07,2.58h0.18v-1.88H112.09z M107.64,26.16c0-4.06-2.71-7.03-6.16-7.03c-3.49,0-6.42,2.97-6.42,7.03c0,4.02,2.93,6.94,6.42,6.94C104.93,33.11,107.64,30.18,107.64,26.16z M120.97,3.06v33.89h-5.07V3.06H120.97z M140.89,29.92l3.93,2.62c-1.27,1.88-4.32,5.11-9.61,5.11c-6.55,0-11.28-5.07-11.28-11.53c0-6.86,4.77-11.53,10.71-11.53c5.98,0,8.91,4.76,9.87,7.34l0.52,1.31l-15.42,6.38c1.18,2.31,3.01,3.49,5.59,3.49C137.79,33.11,139.58,31.84,140.89,29.92zM128.79,25.77l10.31-4.28c-0.57-1.44-2.27-2.45-4.28-2.45C132.24,19.04,128.66,21.31,128.79,25.77z"/> </svg>Workspace </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/workspace" track-metadata-eventdetail="https://developers.google.com/workspace" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - home" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Home" track-name="home" > Home </a> </tab> <tab class="devsite-active"> <a href="https://developers.google.com/workspace/marketplace" track-metadata-eventdetail="https://developers.google.com/workspace/marketplace" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - marketplace" track-metadata-module="primary nav" aria-label="Marketplace, selected" data-category="Site-Wide Custom Events" data-label="Tab: Marketplace" track-name="marketplace" > Marketplace </a> </tab> <tab class="devsite-dropdown "> <a href="https://developers.google.com/workspace/products-menu" track-metadata-eventdetail="https://developers.google.com/workspace/products-menu" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - all products" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: All products" track-name="all products" > All products </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for All products" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/products-menu" track-metadata-position="nav - all products" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: All products" track-name="all 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>Google Workspace apps</li> <li class="devsite-nav-item"> <a href="https://developers.google.com/admin-sdk" track-type="nav" track-metadata-eventdetail="https://developers.google.com/admin-sdk" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="google workspace apps" tooltip data-label="Tab menu: All products - Admin console" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Admin console </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/cloud-search" track-type="nav" track-metadata-eventdetail="https://developers.google.com/cloud-search" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="google workspace apps" tooltip data-label="Tab menu: All products - Cloud Search" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Cloud Search </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/gmail" track-type="nav" track-metadata-eventdetail="https://developers.google.com/gmail" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="google workspace apps" tooltip data-category="Workspace top menu navigation" data-label="Tab menu: All products - Gmail" > <div class="devsite-nav-item-title"> Gmail </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/calendar" track-type="nav" track-metadata-eventdetail="https://developers.google.com/calendar" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="google workspace apps" tooltip data-label="Tab menu: All products - Google Calendar" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Calendar </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/chat" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/chat" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="google workspace apps" tooltip data-category="Workspace top menu navigation" data-label="Tab menu: All products - Google Chat" > <div class="devsite-nav-item-title"> Google Chat </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/classroom" track-type="nav" track-metadata-eventdetail="https://developers.google.com/classroom" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="google workspace apps" tooltip data-category="Workspace top menu navigation" data-label="Tab menu: All products - Google Classroom" > <div class="devsite-nav-item-title"> Google Classroom </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/docs" track-type="nav" track-metadata-eventdetail="https://developers.google.com/docs" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="google workspace apps" tooltip data-category="Workspace top menu navigation" data-label="Tab menu: All products - Google Docs" > <div class="devsite-nav-item-title"> Google Docs </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/drive" track-type="nav" track-metadata-eventdetail="https://developers.google.com/drive" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="google workspace apps" tooltip data-label="Tab menu: All products - Google Drive" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Drive </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> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/forms" track-type="nav" track-metadata-eventdetail="https://developers.google.com/forms" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline=" " tooltip data-label="Tab menu: All products - Google Forms" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Forms </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/keep" track-type="nav" track-metadata-eventdetail="https://developers.google.com/keep" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline=" " tooltip data-label="Tab menu: All products - Google Keep" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Keep </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/meet" track-type="nav" track-metadata-eventdetail="https://developers.google.com/meet" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline=" " tooltip data-label="Tab menu: All products - Google Meet" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Meet </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/sheets" track-type="nav" track-metadata-eventdetail="https://developers.google.com/sheets" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline=" " tooltip data-label="Tab menu: All products - Google Sheets" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Sheets </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/sites" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/sites" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline=" " tooltip data-label="Tab menu: All products - Google Sites" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Sites </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/slides" track-type="nav" track-metadata-eventdetail="https://developers.google.com/slides" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline=" " tooltip data-label="Tab menu: All products - Google Slides" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Slides </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/tasks" track-type="nav" track-metadata-eventdetail="https://developers.google.com/tasks" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline=" " tooltip data-category="Workspace top menu navigation" data-label="Tab menu: All products - Google Tasks" > <div class="devsite-nav-item-title"> Google Tasks </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/vault" track-type="nav" track-metadata-eventdetail="https://developers.google.com/vault" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline=" " tooltip data-category="Workspace top menu navigation" data-label="Tab menu: All products - Google Vault" > <div class="devsite-nav-item-title"> Google Vault </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>Extend, automate &amp; share</li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/add-ons" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/add-ons" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="extend, automate &amp; share" tooltip data-category="Workspace top menu navigation" data-label="Tab menu: All products - Add-ons" > <div class="devsite-nav-item-title"> Add-ons </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/apps-script" track-type="nav" track-metadata-eventdetail="https://developers.google.com/apps-script" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="extend, automate &amp; share" tooltip data-category="Workspace top menu navigation" data-label="Tab menu: All products - Apps Script" > <div class="devsite-nav-item-title"> Apps Script </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/chat/overview" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/chat/overview" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="extend, automate &amp; share" tooltip data-label="Tab menu: All products - Chat apps" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Chat apps </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/drive/api/guides/about-apps" track-type="nav" track-metadata-eventdetail="https://developers.google.com/drive/api/guides/about-apps" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="extend, automate &amp; share" tooltip data-label="Tab menu: All products - Drive apps" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Drive apps </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/marketplace" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/marketplace" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="extend, automate &amp; share" tooltip data-label="Tab menu: All products - Marketplace" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Marketplace </div> </a> </li> </ul> </div> </div> </div> </tab> <tab class="devsite-dropdown "> <a href="https://developers.google.com/workspace/resources-menu" track-metadata-eventdetail="https://developers.google.com/workspace/resources-menu" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - resources" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Resources" track-name="resources" > Resources </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Resources" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/resources-menu" track-metadata-position="nav - resources" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Resources" track-name="resources" 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>Tools</li> <li class="devsite-nav-item"> <a href="https://admin.google.com/" track-type="nav" track-metadata-eventdetail="https://admin.google.com/" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="tools" tooltip data-category="Workspace top menu navigation" target="admin-console" data-label="Tab menu: Resources - Admin console" > <div class="devsite-nav-item-title"> Admin console </div> </a> </li> <li class="devsite-nav-item"> <a href="https://script.google.com/" track-type="nav" track-metadata-eventdetail="https://script.google.com/" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="tools" tooltip data-label="Tab menu: Resources - Apps Script dashboard" target="_blank" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Apps Script dashboard </div> </a> </li> <li class="devsite-nav-item"> <a href="https://console.cloud.google.com/workspace-api" track-type="nav" track-metadata-eventdetail="https://console.cloud.google.com/workspace-api" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="tools" tooltip data-label="Tab menu: Resources - Google Cloud console" target="console" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Cloud console </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/explore" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/explore" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="tools" tooltip data-category="Workspace top menu navigation" data-label="Tab menu: Resources - APIs Explorer" > <div class="devsite-nav-item-title"> APIs Explorer </div> </a> </li> <li class="devsite-nav-item"> <a href="https://addons.gsuite.google.com/uikit/builder" track-type="nav" track-metadata-eventdetail="https://addons.gsuite.google.com/uikit/builder" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="tools" tooltip target="_blank" data-category="Workspace top menu navigation" data-label="Tab menu: Resources - Card Builder" > <div class="devsite-nav-item-title"> Card Builder </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>Training &amp; support</li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/guides/get-started" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/guides/get-started" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="training &amp; support" tooltip data-label="Tab menu: Resources - How to get started" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> How to get started </div> </a> </li> <li class="devsite-nav-item"> <a href="https://codelabs.developers.google.com/?product=googleworkspace" track-type="nav" track-metadata-eventdetail="https://codelabs.developers.google.com/?product=googleworkspace" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="training &amp; support" tooltip data-label="Tab menu: Resources - Codelabs" target="_blank" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Codelabs </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/support" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/support" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="training &amp; support" tooltip data-label="Tab menu: Resources - Developer support" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Developer support </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>Updates</li> <li class="devsite-nav-item"> <a href="https://developers.googleblog.com/search/?query=Google+Workspace" track-type="nav" track-metadata-eventdetail="https://developers.googleblog.com/search/?query=Google+Workspace" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="updates" tooltip data-category="Workspace top menu navigation" data-label="Tab menu: Resources - Blog" target="_blank" > <div class="devsite-nav-item-title"> Blog </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/preview" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/preview" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="updates" tooltip data-label="Tab menu: Resources - Developer previews" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Developer Previews </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/newsletters" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/newsletters" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="updates" tooltip data-label="Tab menu: Resources - Newsletter" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Newsletter </div> </a> </li> <li class="devsite-nav-item"> <a href="https://twitter.com/workspacedevs" track-type="nav" track-metadata-eventdetail="https://twitter.com/workspacedevs" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="updates" tooltip target="_blank" data-label="Tab menu: Resources - X (Twitter)" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> X (Twitter) </div> </a> </li> <li class="devsite-nav-item"> <a href="https://www.youtube.com/channel/UCUcg6az6etU_gRtZVAhBXaw" track-type="nav" track-metadata-eventdetail="https://www.youtube.com/channel/UCUcg6az6etU_gRtZVAhBXaw" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="updates" tooltip data-label="Tab menu: Resources - YouTube" target="_blank" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> YouTube </div> </a> </li> </ul> </div> </div> </div> </tab> </nav> </devsite-tabs> </div> <devsite-search enable-signin enable-search enable-suggestions enable-query-completion project-name="Google Workspace Marketplace" tenant-name="Google for Developers" project-scope="/workspace/marketplace" url-scoped="https://developers.google.com/s/results/workspace/marketplace" > <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> <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-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/workspace/marketplace" 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="Google Workspace Marketplace" > Marketplace </a> </li> </ul> </div> </div> <div class="devsite-doc-set-nav-row"> <devsite-tabs class="lower-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Lower tabs"> <tab > <a href="https://developers.google.com/workspace/marketplace" track-metadata-eventdetail="https://developers.google.com/workspace/marketplace" class="devsite-tabs-content gc-analytics-event " 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/workspace/marketplace/overview" track-metadata-eventdetail="https://developers.google.com/workspace/marketplace/overview" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - guides" track-metadata-module="primary nav" aria-label="Guides, selected" data-category="Site-Wide Custom Events" data-label="Tab: Guides" track-name="guides" > Guides </a> </tab> <tab > <a href="https://developers.google.com/workspace/marketplace/reference/rest" track-metadata-eventdetail="https://developers.google.com/workspace/marketplace/reference/rest" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - reference" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Reference" track-name="reference" > Reference </a> </tab> <tab > <a href="https://developers.google.com/workspace/marketplace/support" track-metadata-eventdetail="https://developers.google.com/workspace/marketplace/support" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - support" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Support" track-name="support" > Support </a> </tab> </nav> </devsite-tabs> </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/workspace"> <div class="devsite-product-logo-container" size="medium" > <picture> <img class="devsite-product-logo" alt="Google Workspace" src="https://fonts.gstatic.com/s/i/productlogos/googleg/v6/16px.svg" srcset=" https://fonts.gstatic.com/s/i/productlogos/googleg/v6/16px.svg" sizes="64px" loading="lazy" > </picture> </div> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item devsite-has-google-wordmark"> <a href="https://developers.google.com/workspace" 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="Google Workspace" > <svg class="devsite-google-wordmark" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 148 48"> <title>Google</title> <path class="devsite-google-wordmark-svg-path" d="M19.58,37.65c-9.87,0-18.17-8.04-18.17-17.91c0-9.87,8.3-17.91,18.17-17.91c5.46,0,9.35,2.14,12.27,4.94l-3.45,3.45c-2.1-1.97-4.93-3.49-8.82-3.49c-7.21,0-12.84,5.81-12.84,13.02c0,7.21,5.64,13.02,12.84,13.02c4.67,0,7.34-1.88,9.04-3.58c1.4-1.4,2.32-3.41,2.66-6.16H19.58v-4.89h16.47c0.18,0.87,0.26,1.92,0.26,3.06c0,3.67-1.01,8.21-4.24,11.44C28.93,35.9,24.91,37.65,19.58,37.65z M61.78,26.12c0,6.64-5.1,11.53-11.36,11.53s-11.36-4.89-11.36-11.53c0-6.68,5.1-11.53,11.36-11.53S61.78,19.43,61.78,26.12z M56.8,26.12c0-4.15-2.96-6.99-6.39-6.99c-3.43,0-6.39,2.84-6.39,6.99c0,4.11,2.96,6.99,6.39,6.99C53.84,33.11,56.8,30.22,56.8,26.12z M87.25,26.12c0,6.64-5.1,11.53-11.36,11.53c-6.26,0-11.36-4.89-11.36-11.53c0-6.68,5.1-11.53,11.36-11.53C82.15,14.59,87.25,19.43,87.25,26.12zM82.28,26.12c0-4.15-2.96-6.99-6.39-6.99c-3.43,0-6.39,2.84-6.39,6.99c0,4.11,2.96,6.99,6.39,6.99C79.32,33.11,82.28,30.22,82.28,26.12z M112.09,15.29v20.7c0,8.52-5.02,12.01-10.96,12.01c-5.59,0-8.95-3.76-10.22-6.81l4.41-1.83c0.79,1.88,2.71,4.1,5.81,4.1c3.8,0,6.16-2.36,6.16-6.77v-1.66h-0.18c-1.14,1.4-3.32,2.62-6.07,2.62c-5.76,0-11.05-5.02-11.05-11.49c0-6.51,5.28-11.57,11.05-11.57c2.75,0,4.93,1.22,6.07,2.58h0.18v-1.88H112.09z M107.64,26.16c0-4.06-2.71-7.03-6.16-7.03c-3.49,0-6.42,2.97-6.42,7.03c0,4.02,2.93,6.94,6.42,6.94C104.93,33.11,107.64,30.18,107.64,26.16z M120.97,3.06v33.89h-5.07V3.06H120.97z M140.89,29.92l3.93,2.62c-1.27,1.88-4.32,5.11-9.61,5.11c-6.55,0-11.28-5.07-11.28-11.53c0-6.86,4.77-11.53,10.71-11.53c5.98,0,8.91,4.76,9.87,7.34l0.52,1.31l-15.42,6.38c1.18,2.31,3.01,3.49,5.59,3.49C137.79,33.11,139.58,31.84,140.89,29.92zM128.79,25.77l10.31-4.28c-0.57-1.44-2.27-2.45-4.28-2.45C132.24,19.04,128.66,21.31,128.79,25.77z"/> </svg>Workspace </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="/workspace" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Home" track-name="home" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Home" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Home </span> </a> </li> <li class="devsite-nav-item"> <a href="/workspace/marketplace" class="devsite-nav-title gc-analytics-event devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Marketplace" track-name="marketplace" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Marketplace" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Marketplace </span> </a> <ul class="devsite-nav-responsive-tabs"> <li class="devsite-nav-item"> <a href="/workspace/marketplace" 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="/workspace/marketplace/overview" class="devsite-nav-title gc-analytics-event devsite-nav-has-children devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Guides" track-name="guides" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Guides" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip menu="_book"> Guides </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="_book"> </span> </a> </li> <li class="devsite-nav-item"> <a href="/workspace/marketplace/reference/rest" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Reference" track-name="reference" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Reference" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Reference </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/workspace/marketplace/support" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Support" track-name="support" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Support" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Support </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/workspace/products-menu" class="devsite-nav-title gc-analytics-event " 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> <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: All products" track-name="all products" > <span class="devsite-nav-text" tooltip menu="All products"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="All products"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/workspace/resources-menu" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Resources" track-name="resources" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Resources" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Resources </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: Resources" track-name="resources" > <span class="devsite-nav-text" tooltip menu="Resources"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Resources"> </span> </span> </li> </ul> </li> </ul> </div> <div class="devsite-mobile-nav-bottom"> <ul class="devsite-nav-list" menu="_book"> <li class="devsite-nav-item"><a href="/workspace/marketplace/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /workspace/marketplace/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/workspace/marketplace/overview" ><span class="devsite-nav-text" tooltip>About Google Workspace Marketplace SDK</span></a></li> <li class="devsite-nav-item devsite-nav-external"><a href="/workspace/guides/get-started" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /workspace/guides/get-started" track-type="bookNav" track-name="click" track-metadata-eventdetail="/workspace/guides/get-started" target="_blank"><span class="devsite-nav-text" tooltip>Get started with Google Workspace</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></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>Publish your app</span> </div></li> <li class="devsite-nav-item"><a href="/workspace/marketplace/how-to-publish" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /workspace/marketplace/how-to-publish" track-type="bookNav" track-name="click" track-metadata-eventdetail="/workspace/marketplace/how-to-publish" ><span class="devsite-nav-text" tooltip>Overview and requirements</span></a></li> <li class="devsite-nav-item"><a href="/workspace/marketplace/configure-oauth-consent-screen" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /workspace/marketplace/configure-oauth-consent-screen" track-type="bookNav" track-name="click" track-metadata-eventdetail="/workspace/marketplace/configure-oauth-consent-screen" ><span class="devsite-nav-text" tooltip>Configure OAuth</span></a></li> <li class="devsite-nav-item"><a href="/workspace/marketplace/enable-configure-sdk" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /workspace/marketplace/enable-configure-sdk" track-type="bookNav" track-name="click" track-metadata-eventdetail="/workspace/marketplace/enable-configure-sdk" ><span class="devsite-nav-text" tooltip>Configure your app in the Marketplace SDK</span></a></li> <li class="devsite-nav-item"><a href="/workspace/marketplace/create-listing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /workspace/marketplace/create-listing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/workspace/marketplace/create-listing" ><span class="devsite-nav-text" tooltip>Create a store listing</span></a></li> <li class="devsite-nav-item"><a href="/workspace/marketplace/about-app-review" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /workspace/marketplace/about-app-review" track-type="bookNav" track-name="click" track-metadata-eventdetail="/workspace/marketplace/about-app-review" ><span class="devsite-nav-text" tooltip>App review process and requirements</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>Promote your app</span> </div></li> <li class="devsite-nav-item"><a href="/workspace/marketplace/get-featured" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /workspace/marketplace/get-featured" track-type="bookNav" track-name="click" track-metadata-eventdetail="/workspace/marketplace/get-featured" ><span class="devsite-nav-text" tooltip>Get your app featured in the Marketplace</span></a></li> <li class="devsite-nav-item"><a href="/workspace/marketplace/create-badge" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /workspace/marketplace/create-badge" track-type="bookNav" track-name="click" track-metadata-eventdetail="/workspace/marketplace/create-badge" ><span class="devsite-nav-text" tooltip>Create a promotional badge</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>Manage your app listing</span> </div></li> <li class="devsite-nav-item"><a href="/workspace/marketplace/manage-app-listing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /workspace/marketplace/manage-app-listing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/workspace/marketplace/manage-app-listing" ><span class="devsite-nav-text" tooltip>Update or unpublish an app listing</span></a></li> <li class="devsite-nav-item"><a href="/workspace/marketplace/list-multiple-app-integrations" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /workspace/marketplace/list-multiple-app-integrations" track-type="bookNav" track-name="click" track-metadata-eventdetail="/workspace/marketplace/list-multiple-app-integrations" ><span class="devsite-nav-text" tooltip>List app integrations together</span></a></li> <li class="devsite-nav-item"><a href="/workspace/marketplace/use-analytics" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /workspace/marketplace/use-analytics" track-type="bookNav" track-name="click" track-metadata-eventdetail="/workspace/marketplace/use-analytics" ><span class="devsite-nav-text" tooltip>Get analytics about app usage</span></a></li> <li class="devsite-nav-item"><a href="/workspace/marketplace/reply-to-reviews" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /workspace/marketplace/reply-to-reviews" track-type="bookNav" track-name="click" track-metadata-eventdetail="/workspace/marketplace/reply-to-reviews" ><span class="devsite-nav-text" tooltip>Reply to user reviews</span></a></li> <li class="devsite-nav-item"><a href="/workspace/marketplace/example-calls-marketplace-api" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /workspace/marketplace/example-calls-marketplace-api" track-type="bookNav" track-name="click" track-metadata-eventdetail="/workspace/marketplace/example-calls-marketplace-api" ><span class="devsite-nav-text" tooltip>Get app installation &amp; licensing details</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>Advanced</span> </div></li> <li class="devsite-nav-item"><a href="/workspace/marketplace/authorizing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /workspace/marketplace/authorizing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/workspace/marketplace/authorizing" ><span class="devsite-nav-text" tooltip>Choose scopes</span></a></li> </ul> <ul class="devsite-nav-list" menu="All 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 > Google Workspace apps </span> </span> </li> <li class="devsite-nav-item"> <a href="/admin-sdk" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Admin console" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Admin console </span> </a> </li> <li class="devsite-nav-item"> <a href="/cloud-search" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Cloud Search" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Cloud Search </span> </a> </li> <li class="devsite-nav-item"> <a href="/gmail" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Gmail" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Gmail </span> </a> </li> <li class="devsite-nav-item"> <a href="/calendar" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Calendar" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Calendar </span> </a> </li> <li class="devsite-nav-item"> <a href="/workspace/chat" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Chat" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Chat </span> </a> </li> <li class="devsite-nav-item"> <a href="/classroom" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Classroom" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Classroom </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Docs" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Docs </span> </a> </li> <li class="devsite-nav-item"> <a href="/drive" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Drive" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Drive </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip >   </span> </span> </li> <li class="devsite-nav-item"> <a href="/forms" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Forms" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Forms </span> </a> </li> <li class="devsite-nav-item"> <a href="/keep" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Keep" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Keep </span> </a> </li> <li class="devsite-nav-item"> <a href="/meet" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Meet" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Meet </span> </a> </li> <li class="devsite-nav-item"> <a href="/sheets" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Sheets" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Sheets </span> </a> </li> <li class="devsite-nav-item"> <a href="/workspace/sites" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Sites" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Sites </span> </a> </li> <li class="devsite-nav-item"> <a href="/slides" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Slides" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Slides </span> </a> </li> <li class="devsite-nav-item"> <a href="/tasks" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Tasks" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Tasks </span> </a> </li> <li class="devsite-nav-item"> <a href="/vault" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Vault" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Vault </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Extend, automate &amp; share </span> </span> </li> <li class="devsite-nav-item"> <a href="/workspace/add-ons" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Add-ons" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Add-ons </span> </a> </li> <li class="devsite-nav-item"> <a href="/apps-script" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Apps Script" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Apps Script </span> </a> </li> <li class="devsite-nav-item"> <a href="/workspace/chat/overview" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Chat apps" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Chat apps </span> </a> </li> <li class="devsite-nav-item"> <a href="/drive/api/guides/about-apps" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Drive apps" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Drive apps </span> </a> </li> <li class="devsite-nav-item"> <a href="/workspace/marketplace" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Marketplace" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Marketplace </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Resources" 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 > Tools </span> </span> </li> <li class="devsite-nav-item"> <a href="https://admin.google.com/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Admin console" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Admin console </span> </a> </li> <li class="devsite-nav-item"> <a href="https://script.google.com/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Apps Script dashboard" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Apps Script dashboard </span> </a> </li> <li class="devsite-nav-item"> <a href="https://console.cloud.google.com/workspace-api" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud console" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud console </span> </a> </li> <li class="devsite-nav-item"> <a href="/workspace/explore" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: APIs Explorer" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > APIs Explorer </span> </a> </li> <li class="devsite-nav-item"> <a href="https://addons.gsuite.google.com/uikit/builder" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Card Builder" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Card Builder </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Training &amp; support </span> </span> </li> <li class="devsite-nav-item"> <a href="/workspace/guides/get-started" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: How to get started" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > How to get started </span> </a> </li> <li class="devsite-nav-item"> <a href="https://codelabs.developers.google.com/?product=googleworkspace" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Codelabs" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Codelabs </span> </a> </li> <li class="devsite-nav-item"> <a href="/workspace/support" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Developer support" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Developer support </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Updates </span> </span> </li> <li class="devsite-nav-item"> <a href="https://developers.googleblog.com/search/?query=Google+Workspace" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Blog" track-type="navMenu" 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="/workspace/preview" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Developer Previews" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Developer Previews </span> </a> </li> <li class="devsite-nav-item"> <a href="/workspace/newsletters" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Newsletter" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Newsletter </span> </a> </li> <li class="devsite-nav-item"> <a href="https://twitter.com/workspacedevs" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: X (Twitter)" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > X (Twitter) </span> </a> </li> <li class="devsite-nav-item"> <a href="https://www.youtube.com/channel/UCUcg6az6etU_gRtZVAhBXaw" 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> </ul> </div> </div> </nav> </devsite-book-nav> <section id="gc-wrapper"> <main role="main" class="devsite-main-content" has-book-nav > <devsite-content> <article class="devsite-article"> <div class="devsite-banner devsite-banner-announcement nocontent" > <div class="devsite-banner-message"> <div class="devsite-banner-message-text"> Got 5 minutes? Help us improve Google Workspace Marketplace documentation by taking <a href="https://forms.gle/t3AWVjAqf7mXazai8" target="_blank">a quick online survey</a>. </div> </div> </div> <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/workspace" 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="Google Workspace" > Google Workspace </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developers.google.com/workspace/marketplace" 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="Google Workspace Marketplace" > Marketplace </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developers.google.com/workspace/marketplace/overview" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="4" track-type="globalNav" track-name="breadcrumb" track-metadata-position="4" track-metadata-eventdetail="" > Guides </a> </li> </ul> <devsite-thumb-rating position="header"> </devsite-thumb-rating> </div> <devsite-feedback position="header" project-name="Google Workspace Marketplace" product-id="717201" bucket="marketplace" context="" version="t-devsite-webserver-20241114-r00-rc02.464922260396498922" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="header" class="nocontent" project-feedback-url="https://issuetracker.google.com/issues/new?component=191597&amp;template=823911" project-icon="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/touchicon-180-new.png" project-support-url="https://developers.google.com/workspace/marketplace/support" > <button> Send feedback </button> </devsite-feedback> <h1 class="devsite-page-title" tabindex="-1"> App review process and requirements for the Google Workspace Marketplace </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> <div class="devsite-article-body clearfix "> <p>To publish an app publicly to the Google Workspace Marketplace, Google reviews your app and its listing to make sure they meet Google&#39;s design, content, and style guidelines.</p> <p>After Google reviews your app, you receive an email about whether it needs more work or if it&#39;s approved.</p> <ul> <li><strong>If your app requires additional work</strong>: You receive a review document with specific information about what needs improvement. Address the issues and resubmit your app for review.</li> <li><strong>If the review team approves your app</strong>: It&#39;s automatically published and you receive a notification email.</li> </ul> <p>Before submitting your app for review, make sure that your app is ready to publish. For details, see <a href="/workspace/marketplace/how-to-publish#prepare">Prepare for the publishing process</a>.</p> <h2 id="duration" data-text="Review duration" tabindex="-1">Review duration</h2> <p>App review typically takes several days. The time it takes depends on:</p> <ul> <li>How many apps were submitted recently</li> <li>How much additional work your app needs</li> </ul> <h2 id="reasons" data-text="Common reasons an app doesn't pass review" tabindex="-1">Common reasons an app doesn't pass review</h2> <div class="video-wrapper"> <devsite-video video-id="KSyXoiZ3MLg" rel=0 widget_referrer="https://developers.google.com/workspace/marketplace/about-app-review#reasons" /> </div> <p>OAuth verification:</p> <ul> <li><p>Incorrect OAuth consent screen set up. For example, the user type is set to <a href="https://support.google.com/cloud/answer/10311615#user-type-internal">Internal</a> or the publishing status is set to <a href="https://support.google.com/cloud/answer/10311615#publishing-status-testing">Testing</a>.</p></li> <li><p>The app didn&#39;t complete the OAuth verification.</p></li> </ul> <p>App listing issues:</p> <ul> <li><p>Inappropriate use of Google&#39;s trademarks in the app name, logo, or app descriptions. For guidance, visit the <a href="/workspace/marketplace/terms/branding">Google Workspace Marketplace branding guidelines</a>.</p></li> <li><p>Links don&#39;t work or point to the incorrect information. For example, a link for a privacy policy points to a developer support page.</p></li> <li><p>Screenshots and images are of low quality, or don&#39;t accurately represent app capabilities.</p></li> </ul> <p>App readiness:</p> <ul> <li>The app is still being tested and not publicly ready.</li> <li>The app has bugs or isn&#39;t fully functional.</li> </ul> <h2 id="areas" data-text="Review criteria" tabindex="-1">Review criteria</h2> <p>Before you submit your app for review, make sure your app meets all requirements and complies with the <a href="/workspace/marketplace/terms/policies">Google Workspace Marketplace program policies</a>.</p> <ul> <li><a href="#reqs_all">Requirements for all apps</a></li> <li><a href="#add_reqs">Requirements for specific app integrations</a></li> </ul> <h3 id="reqs_all" data-text="Requirements for all apps" tabindex="-1">Requirements for all apps</h3> <p>You can use the checkboxes to track your preliminary review. <a href="http://developers.google.com/workspace/marketplace/about-app-review"><button type="button">Clear checkboxes</button></a></p> <table> <thead> <tr> <th>Category</th> <th>Criteria</th> </tr> </thead> <tbody class="list"> <tr> <td id="app_name">App name</td> <td> <ul style="list-style-type:none;"> <li><input type="checkbox" aria-label="">There are no other app listings with the same name.</li> <li><input type="checkbox" aria-label="">The name doesn't include a version number.</li> <li><input type="checkbox" aria-label="">The name matches the name on the OAuth consent screen.</li> <li><input type="checkbox" aria-label="">The name isn't vague or too generic.</li> <li><input type="checkbox" aria-label="">The name is 50 characters or less.</li> <li><input type="checkbox" aria-label="">(<em>Recommended</em>) The name uses title case.</li> <li><input type="checkbox" aria-label="">(<em>Recommended</em>) The name doesn't have punctuation, especially parentheses.</li> </ul> </td> </tr> <tr> <td id="dev_info">Developer information</td> <td> <ul style="list-style-type:none;"> <li><input type="checkbox" aria-label="">Developer name and developer website accurately represent and direct to relevant information about the developer.</li> <li><input type="checkbox" aria-label="">Due to consumer protection laws, consumers based in the European Economic Area (EEA) must be informed whether a merchant on the Google Workspace Marketplace is a <i>trader</i> or a <i>non-trader</i>: <ul> <li><b>Trader</b>—A trader is a person who acts for purposes relating to a trade, business, craft, or profession; or in the name of or on behalf of a trader.</li> <li><b>Non-trader</b>—A non-trader (consumer) is a person who acts for non-professional purposes.</li> </ul> <p>If unspecified, "Trader status unspecified" appears on your app's <a href="/workspace/marketplace/create-listing">store listing</a> page.</p> </li> </ul> </td> </tr> <tr> <td id="app_desc">App description</td> <td> <ul style="list-style-type:none;"> <li><input type="checkbox" aria-label="">All provided links work and point to the correct information. For example, a link for a privacy policy points to a page describing the privacy policy.</li> <li><input type="checkbox" aria-label="">If the app interacts with a third-party service, the description describes what the third-party service does, how the app interacts with it, and optionally links to the relevant website.</li> <li><input type="checkbox" aria-label="">The short and detailed descriptions are understandable.</li> <li><input type="checkbox" aria-label="">The short and detailed descriptions aren't identical.</li> <li><input type="checkbox" aria-label="">(<em>Recommended</em>) Pricing information is complete and accurate.</li> <li><input type="checkbox" aria-label="">(<em>Recommended</em>) The full set of attributes per language (name, short description, and detailed description) are defined correctly without language mismatch.</li> </ul> </td> </tr> <tr> <td id="functionality">Functionality</td> <td> <ul style="list-style-type:none;"> <li><input type="checkbox" aria-label="">There are no obvious bugs and all actions, including edge cases, are fully functional. Loading times are managed with loading indicators.</li> <li><input type="checkbox" aria-label="">The app demonstrates clear interactions with Google APIs.</li> <li><input type="checkbox" aria-label="">The app provides a new or extended functionality that isn't equivalent to what's already included in Google products.</li> <li><input type="checkbox" aria-label="">The app isn't meant for advertisement or spamming purposes.</li> <li><input type="checkbox" aria-label="">The app is fully functional and not meant for testing purposes—it's not a work in progress.</li> <li><input type="checkbox" aria-label="">If the app interacts with features that are available to users or paid users, a test account on the developer's system is provided for Google's review team.</li> </ul> </td> </tr> <tr> <td id="ux">User experience</td> <td> <ul style="list-style-type:none;"> <li><input type="checkbox" aria-label="">The app, including its name, doesn't use Google brand assets, trademarks, or Google branded content. See <a href="/workspace/marketplace/terms/branding">Google Workspace Marketplace branding guidelines</a>.</li> <li><input type="checkbox" aria-label="">Authorization and sign-in are required only once. The app uses one-click SSO or ideally zero-click SSO.</li> <li><input type="checkbox" aria-label="">After an administrator grants permissions for the OAuth 2.0 scopes for the domain, individual users aren't prompted for scope permissions again.</li> <li><input type="checkbox" aria-label="">Users don't have to input credentials after signing in to their Google Account. At most, they have to click a "Sign in with Google" button to get access.</li> <li><input type="checkbox" aria-label="">There are consistent, obvious, and understandable terms for button labels, menu items, titles, and other app elements. For example, instead of Yes or No, labels refer to action names like Delete and Cancel.</li> <li><input type="checkbox" aria-label="">If sign-in is required, the sign-out functionality works properly. Tokens are revoked and sign-in can start from the beginning.</li> <li><input type="checkbox" aria-label="">Feedback is always displayed, such as confirmation or error messages, for actions.</li> <li><input type="checkbox" aria-label="">There are no broken image links or fuzzy images.</li> </ul> </td> </tr> <tr> <td id="graphics">Graphics</td> <td> <ul style="list-style-type:none;"> <li><input type="checkbox" aria-label="">Icons are sized correctly, square, and have transparent backgrounds. See <a href="/workspace/marketplace/create-listing#graphic_assets">Graphic assets</a>.</li> <li><input type="checkbox" aria-label="">The icon properly represents the app's name or functionality.</li> <li><input type="checkbox" aria-label="">The icon is in color (not gray scaled).</li> <li><input type="checkbox" aria-label="">The icon doesn't use Google's trademarks.</li> <li><input type="checkbox" aria-label="">Screenshots and images are not blurry, hard to read, or inappropriate. They accurately represent the app.</li> <li><input type="checkbox" aria-label="">(<em>Recommended</em>) Screenshots clearly show how to use the app and what it does.</li> </ul> </td> </tr> <tr> <td id="oauth">OAuth</td> <td> <ul style="list-style-type:none;"> <li><input type="checkbox" aria-label="">The app has passed OAuth verification, uses the narrowest OAuth scopes possible, and all scopes integrate correctly with Google Services APIs.</li> </ul> </td> </tr> </tbody> </table> <h3 id="add_reqs" data-text="Additional requirements for specific app integrations" tabindex="-1">Additional requirements for specific app integrations</h3> <p>Select the app integrations included in your app listing to view the relevant review criteria. You can click the column names to sort the criteria, for example, by category.</p> <p>You can use the checkboxes to track your preliminary review. <a href="https://developers.google.com/workspace/marketplace/about-app-review"><button type="button">Clear checkboxes</button></a></p> <div> <devsite-select id="filter-multi1" label="App integration"> <select multiple> <option>Google Workspace Add-on</option> <option>Editor Add-on</option> <option>Web app</option> <option>Drive app</option> <option>Google Chat app</option> </select> </devsite-select> <devsite-filter select-el-container-id="filter-multi1" sortable="0"> <table> <col width="15%"> <col width="15%"> <col width="70%"> <thead> <tr> <th>App integration</th> <th>Category</th> <th>Criteria</th> </tr> </thead> <tbody class="list"> <tr> <td id="chatapp_name">Google Chat app</td> <td>Name</td> <td> <ul style="list-style-type:none;"> <li><input type="checkbox" aria-label="">The buttons to communicate with the app are available from the description.</li> <li><input type="checkbox" aria-label="">The app name starts with A—Z (uppercase) or 0–9. It can't start with a symbol.</li> </ul> </td> </tr> <tr> <td id="chatapp_ux">Google Chat app</td> <td>User experience</td> <td> <ul style="list-style-type:none;"> <li><input type="checkbox" aria-label="">The app sends an unprompted welcome message every time a user starts a direct message or the app is added to a space. The welcome message is different from the "Help" command. For more information, see <a href="/workspace/chat/send-app-home-card-message" > Build a homepage for a Google Chat app</a>.</li> <li><input type="checkbox" aria-label="">The app supports the "Help" command and helps users get started using the app. For more information, see <a href="/workspace/chat/slash-commands" > Respond to slash commands</a>.</li> <li><input type="checkbox" aria-label="">The app always responds when spoken to in a space or direct Chat. </li> <li><input type="checkbox" aria-label="">Messages use correct spelling, capitalization, punctuation, and grammar. Messages don't contain malicious, offensive, or abusive material.</li> <li><input type="checkbox" aria-label="">Messages use clear, concise, and consistent formatting for text or cards according to the Google requirements.</li> <li><input type="checkbox" aria-label="">If a response takes longer than 2 seconds, the app sends a message explaining the delay.</li> <li><input type="checkbox" aria-label="">Apps that send notifications let users turn off the notifications.</li> <li><input type="checkbox" aria-label="">Users can add the app to a space using @mentioning.</li> <li><input type="checkbox" aria-label="">Users can remove the app from a space using the <strong>View member</strong> menu. </li> <li><input type="checkbox" aria-label="">The app indicates to the user everything that's necessary to interact with it.</li> <li><input type="checkbox" aria-label="">The cards format the app uses meets Google requirements. See <a href="/chat/how-tos/cards-onclick" > Create interactive cards.</a></li> <li><input type="checkbox" aria-label="">The app is available from the <strong>Find apps</strong> option in the Chat menu.</li> <li><input type="checkbox" aria-label="">External URLs that the app interacts with don't belong to a staging or development environment.</li> <li><input type="checkbox" aria-label="">The @mention is required in every message to the app in spaces. That's the only way that the app knows that it must respond.</li> <li><input type="checkbox" aria-label="">If the Chat app previews links from a third-party domain: <ul style="list-style-type:none;"> <li><input type="checkbox" aria-label="">Link previews offer relevant, supplemental information to the user's message. For example, previewing a link to a sales deal adds information like account, amount, and stage.</li> <li><input type="checkbox" aria-label="">The developer is affiliated with the previewed domain.</li> </ul> <p>For more information, see <a href="/chat/how-tos/preview-links">Preview links</a>.</p> </li> <li><input type="checkbox" aria-label="">(Recommended) To let Workspace administrators install your app on behalf of users in their organization, your app must be able to receive and send direct messages. </li> </ul> </td> </tr> <tr> <td id="chatapp_graphics">Google Chat app</td> <td>Graphics</td> <td> <ul style="list-style-type:none;"> <li><input type="checkbox" aria-label="">The app has a recognizable and clear avatar.</li> </ul> </td> </tr> <tr> <td id="drive_func">Google Drive app</td> <td>Functionality</td> <td> <ul style="list-style-type:none;"> <li><input type="checkbox" aria-label="">The app doesn't use Chrome browser extensions to provide functionality by manipulating the Drive HTML directly.</li> <li><input type="checkbox" aria-label="">If your app uses sensitive or restricted scopes, it must undergo OAuth verification. See <a href="https://support.google.com/cloud/answer/9110914#submit-howto" target="_blank">How do I submit for verification</a>.</li> <li><input type="checkbox" aria-label="">If your app uses restricted scopes, it must also go through a security assessment. See <a href="https://support.google.com/cloud/answer/9110914#needed" target="_blank">Why is the security assessment needed</a>.</li> </ul> </td> </tr> <tr> <td id="drive_ux">Google Drive app</td> <td>User experience</td> <td> <ul style="list-style-type:none;"> <li><input type="checkbox" aria-label="">If the app stores files in Drive, it allows users to pick a folder or creates and reuses an app-specific folder. Configuration data can be stored in an App Data folder. The app doesn't dump files into the user's My Drive folder.</li> <li><input type="checkbox" aria-label="">The app only stores files in Drive connected to the documented functionality of the app.</li> </ul> </td> </tr> <tr> <td id="ed_func">Editor Add-on</td> <td>Functionality</td> <td> <ul style="list-style-type:none;"> <li><input type="checkbox" aria-label="">Expected and required actions are included in the add-on, and it provides all the tools necessary to complete its workflow. For example: <ul> <li>If the add-on applies styling to the entire document, it offers the option to apply the styling only to selected text.</li> <li>If the add-on uploads spreadsheet data to a web service feed, it has a link to that feed for easy navigation.</li> <li>If the add-on requires the user to have an account, it provides links or info to easily create an account if the user doesn't already have one.</li> </ul></li> <li><input type="checkbox" aria-label="">The add-on has menu items under the <strong>add-ons</strong> tab.</li> <li><input type="checkbox" aria-label="">Even if the add-on is just custom functions, it still includes proper documentation.</li> <li><input type="checkbox" aria-label="">The add-on correctly uses <code translate="no" dir="ltr">onInstall()</code> and <code translate="no" dir="ltr">onOpen()</code> to populate its menu. The menu items populate when the add-on is first installed and when a different file is opened. See <a href="/apps-script/add-ons/concepts/editor-auth-lifecycle" > Editor Add-on authorization</a>.</li> <li><input type="checkbox" aria-label="">Authorization modes are set up correctly. See <a href="/apps-script/add-ons/concepts/editor-auth-lifecycle#authorization_modes" > Authorization modes</a>.</li> <li><input type="checkbox" aria-label="">The add-on must be implemented in Apps Script's <a href="https://v8.dev/">V8</a> runtime. For more information, see <a href="/apps-script/guides/v8-runtime">V8 runtime overview</a>.</li> </ul> </td> </tr> <tr> <td id="ed_ux">Editor Add-on</td> <td>User experience</td> <td> <ul style="list-style-type:none;"> <li><input type="checkbox" aria-label="">The add-on provides all the information necessary to have a basic understanding of the product and how to use it.</li> <li><input type="checkbox" aria-label="">The add-on code doesn't use libraries excessively as libraries can cause the add-on to lose performance.</li> <li><input type="checkbox" aria-label="">Errors are avoided if possible and managed properly, if not: <ul> <li>Error messages are displayed in a dialog window, not in a JavaScript alert or on the default red bar. They communicate the problem and describe what the user must do to fix it in simple language.</li> <li>When possible, if the user is doing something wrong, a button is displayed that fixes the issue for them.</li> <li>For more information, see the <a href="/apps-script/add-ons/guides/editor-style#error_messages" > add-ons style guide</a>.</li> </ul> </li> <li><input type="checkbox" aria-label="">Links to external pages open in new windows and are correct.</li> <li><input type="checkbox" aria-label="">The add-on is intuitive and designed well. This means: <ul> <li>It's always clear what to do and how to do it.</li> <li>The add-on is accessible and simple to understand. Technical terms and jargon are avoided.</li> <li>Workflows are clear and facilitated as much as possible.</li> <li>The user and their content are as safe as possible.</li> </ul> </li> <li><input type="checkbox" aria-label="">The add-on follows the <a href="/apps-script/add-ons/guides/editor-style" > UI style guide for editor add-ons</a> and uses the <a href="/apps-script/add-ons/guides/css" > CSS package for editor add-ons.</a></li> <li><input type="checkbox" aria-label="">The add-on only uses one blue primary action per display.</li> <li><input type="checkbox" aria-label="">The add-on displays one dialog at a time. It doesn't overlap or have multiple dialogs open at a time.</li> <li><input type="checkbox" aria-label="">The add-on's UI fits neatly in allocated spaces: <ul style="list-style-type:none;"> <li><input type="checkbox" aria-label="">Text and labels aren't cut off with "..."</li> <li><input type="checkbox" aria-label="">The user doesn't have to do much vertical scrolling.</li> <li><input type="checkbox" aria-label="">Content width doesn't extend beyond 300p so that it doesn't have a horizontal scrollbar.</li> </ul> </li> <li><input type="checkbox" aria-label="">The add-on requires confirmation or displays warnings for all sensitive actions. For example, if the add-on is about to overwrite all the content in a spreadsheet, the user is warned and confirms the action before it happens. <p>You can avoid this requirement through design changes. For example, a Google Sheets add-on that imports data creates a risk of overwriting existing content. You can remove the risk by creating a sheet for the data as the default action.</p></li> <li><input type="checkbox" aria-label="">Users can't trigger actions multiple times while an action is loading. For example, buttons are turned off or hidden while an action is loading.</li> </ul> </td> </tr> <tr> <td id="ws_name">Google Workspace Add-on</td> <td>Name</td> <td> <p><strong>Calendar add-ons</strong></p> <ul style="list-style-type:none;"> <li><input type="checkbox" aria-label="">If the add-on uses <code translate="no" dir="ltr">calendar.name</code> or <code translate="no" dir="ltr">common.name</code>, the name in the manifest is identical to the name provided in the app listing.</li> <li><input type="checkbox" aria-label="">If the add-on uses <code translate="no" dir="ltr">calendar.conferenceSolution</code>, the conference solution name doesn't contain “Google Calendar.”</li> <li><input type="checkbox" aria-label="">(<em>Recommended</em>) If the add-on uses <code translate="no" dir="ltr">calendar.conferenceSolution</code>, the conference solution name doesn't exceed 30 characters.</li> </ul> </td> </tr> <tr> <td id="ws_func">Google Workspace Add-on</td> <td>Functionality</td> <td> <ul style="list-style-type:none;"> <li><input type="checkbox" aria-label="">The add-on uses the correct <a href="/apps-script/add-ons/concepts/widgets" > widgets</a> (or iframed UI in Meet Add-ons) for the desired functionality. For example, use a switch to select a boolean value.</li> </ul> <p><strong>Calendar add-ons</strong></p> <ul style="list-style-type:none;"> <li><input type="checkbox" aria-label="">Secondary calendars and delegation are supported, or if not supported, managed gracefully. For example, conference creation doesn't fail if the user selects a different calendar they have edit access to when creating an event.</li> <li><input type="checkbox" aria-label="">Recurring events work correctly.</li> <li><input type="checkbox" aria-label="">If the add-on uses <code translate="no" dir="ltr">calendar.conferenceSolution</code>, at least one conference solution is provided.</li> <li><input type="checkbox" aria-label="">If the add-on provides conferencing solutions, appropriate conference data fields are used. For example, video conference links, phone numbers, SIP links, access codes, and other supported attributes use structured data fields and aren't provided in the notes field.</li> <li><input type="checkbox" aria-label="">If the add-on provides conferencing solutions, it only edits conference details and no other event fields.</li> <li><input type="checkbox" aria-label="">If the add-on provides conferencing solutions, the conference creation takes less than 5 seconds.</li> </ul> <p><strong>Gmail add-ons</strong></p> <p>If the add-on uses <code translate="no" dir="ltr">UrlFetchApp</code> or <code translate="no" dir="ltr">OpenLinkUrl</code>:</p> <ul style="list-style-type:none;"> <li><input type="checkbox" aria-label="">The URL is valid.</li> <li><input type="checkbox" aria-label="">The URL uses HTTPS not HTTP.</li> <li><input type="checkbox" aria-label="">The full domain is specified.</li> <li><input type="checkbox" aria-label="">The path is not empty. For example, <code translate="no" dir="ltr">https://altostrat/</code> is OK, but <code translate="no" dir="ltr">https://altostrat</code> isn't.</li> <li><input type="checkbox" aria-label="">Wildcards can't be used in <code translate="no" dir="ltr">UrlFetchApp</code>.</li> </ul> <p><strong>Meet Add-ons</strong></p> <ul style="list-style-type:none;"> <li><input type="checkbox" aria-label="">The add-on login and user journeys must be functional even if third-party cookies are disabled.</li> <li><input type="checkbox" aria-label="">The add-on must provide functionality relevant to the operation of, or participation in, a meeting.</li> <li><input type="checkbox" aria-label="">The add-on must not do anything that makes users leave the meeting, such as refreshing the browser.</li> <li><input type="checkbox" aria-label="">If using multi-player experience, the add-on must allow for all participants to collaborate on content even if permissions are not set in advance. Permission adjustment must be available during the collaborative add-on session.</li> <li><input type="checkbox" aria-label="">The add-on must handle the cancellation of the start activity flow and allow the user to re-initiate the start of the activity from the app.</li> <li><input type="checkbox" aria-label="">The add-on must provide a side panel for sign-in and set up of the activity experience.</li> <li><input type="checkbox" aria-label="">The add-on must not provide functionality to invite a bot or rely on the presence of a bot in the meeting </li> </ul> </td> </tr> <tr> <td id="add-ons-user-experience">Google Workspace Add-on</td> <td>User experience</td> <td> <ul style="list-style-type:none;"> <li><input type="checkbox" aria-label="">The add-on has a homepage. If your Google Workspace Add-on is a converted Gmail add-on, a default homepage is applied.</li> <li><input type="checkbox" aria-label="">The add-on card (or iframed UI in Meet Add-ons) functions properly. For example, there aren't duplicated items; the back, refresh, and update buttons work accordingly.</li> <li><input type="checkbox" aria-label="">After the user authorizes the add-on, it displays a customized homepage card (web page in Meet Add-ons) to welcome the user with a button for sign-in (if needed), logo, and brief description of the add-on. <ul style="list-style-type:none;"> <li><input type="checkbox" aria-label="">If the sign-in button is triggered, it presents a customized sign-in page from the third-party vendor that clearly indicates there's a third-party service working outside of Google Workspace.</li> </ul> </li> <li><input type="checkbox" aria-label="">The add-on's UI fits neatly in allocated spaces: <ul> <li>Text and labels aren't cut off with "..."</li> <li>The user doesn't have to do much vertical scrolling.</li> <li>Content width doesn't extend beyond 300p so that it doesn't have a horizontal scrollbar.</li> </ul> </li> <li><input type="checkbox" aria-label="">The add-on's code doesn't use libraries excessively as libraries can cause the add-on to lose performance.</li> </ul> <p><strong>Calendar add-ons</strong></p> <ul style="list-style-type:none;"> <li><input type="checkbox" aria-label="">If the add-on provides conferencing solutions, the conferences created are valid and displayed correctly on the third-party conferencing website.</li> </ul> <p><strong>Docs add-ons</strong></p> <p>If the add-on previews links from a third-party domain (smart chips):</p> <ul style="list-style-type:none;"> <li><input type="checkbox" aria-label="">Link previews offer relevant, supplemental information to the user. For example, previewing a link to a sales deal adds information like account, amount, and stage.</li> <li><input type="checkbox" aria-label="">The developer is affiliated with the previewed domain.</li> </ul> <p>For more information, see <a href="/workspace/add-ons/guides/preview-links-smart-chips">Preview links with smart chips</a>.</p> <p><strong>Drive add-ons</strong></p> <ul style="list-style-type:none;"> <li><input type="checkbox" aria-label="">If the app stores files in Drive, it allows users to pick a folder or creates and reuses an app-specific folder. Configuration data can be stored in an App Data folder. The app doesn't dump files into the user's My Drive folder.</li> <li><input type="checkbox" aria-label="">The add-on only stores files in Drive that are connected to the documented functionality of the add-on.</li> </ul> <p><strong>Gmail add-ons</strong></p> <ul style="list-style-type:none;"> <li><input type="checkbox" aria-label="">The add-on doesn't mention or link to Chrome browser extensions without justification.</li> <li><input type="checkbox" aria-label="">The More actions menu <span class="material-icons" aria-hidden="true" translate="no">more_vert</span> contains universal actions that work properly. For example, Sign out, About, Support, etc.</li> </ul> <p><strong>Meet Add-ons</strong></p> <ul style="list-style-type:none;"> <li><input type="checkbox" aria-label="">If the add-on requires a license or subscription: A user-friendly message must be shown to the user when the user doesn't have a license.</li> <li><input type="checkbox" aria-label="">If the user can't use the add-on because of a licensing issue, the error message must clearly state the reason the add-on cannot be used and suggest a course of action for the user to remedy the situation.</li> <li><input type="checkbox" aria-label="">The Google Workspace Marketplace listing for the add-on must specify details about the license and subscription requirements that may be required to use the add-on. If the add-on has a paid tier, the Marketplace listing must provide a link to a web page that offers more information about pricing or how to contact a salesperson.</li> <li><input type="checkbox" aria-label="">When the user isn't already signed in, the add-on must present the One Tap sign-in prompt found at <a href="/identity/gsi/web/guides/display-google-one-tap">Display Google One Tap</a> and a "Sign In with Google" fallback found at <a href="/identity/authentication">Authentication</a>. In addition to the "Sign in with Google" mechanism, other login options may be offered.</li> <li><input type="checkbox" aria-label="">The add-on must have responsive design that can adapt content to different sizes.</li> <li><input type="checkbox" aria-label="">The add-on user journeys must be functional even if third-party cookies are disabled.</li> <li><input type="checkbox" aria-label="">The add-on must not have horizontal scrolling within the iframe.</li> <li><input type="checkbox" aria-label="">If an add-on wants to use the main stage, the add-on must be designed for multiplayer experiences and allow for content to be manipulated by multiple participants at the same time. For single-player experiences, the developer should use the side panel.</li> <li><input type="checkbox" aria-label="">(<em>Recommended</em>) The add-on should display who the signed-in user is.</li> <li><input type="checkbox" aria-label="">(<em>Recommended</em>) Localization choice: language should be based on local preference set by the browser when available.</li> <li><input type="checkbox" aria-label="">(<em>Recommended</em>) Content selection should be through a content browsing interface featuring recently accessed content.</li> <li><input type="checkbox" aria-label="">(<em>Recommended</em>) If the side panel is no longer needed, the add-on should <a href="/meet/add-ons/reference/websdk/addon_sdk.meetmainstageclient.unloadsidepanel">close the side panel</a> after launching to the main stage.</li> </ul> </td> </tr> <tr> <td id="ws_graphics">Google Workspace Add-on</td> <td>Graphics</td> <td> <p><strong>Calendar add-ons</strong></p> <ul style="list-style-type:none;"> <li><input type="checkbox" aria-label="">The logo for the conferencing solution is a public URL. See <a href="/apps-script/add-ons/calendar/conferencing/providing-logos" > Provide conference solution logos.</a></li> <li><input type="checkbox" aria-label="">If the add-on uses <code translate="no" dir="ltr">calendar.conferenceSolution</code>, the logo of the conference solution follows the <code translate="no" dir="ltr">calendar.logoUrl</code> requirements. See <a href="/apps-script/manifest/calendar-addons" > Calendar manifest resource</a>.</li> <li><input type="checkbox" aria-label="">If the add-on uses <code translate="no" dir="ltr">calendar.logoUrl</code> or <code translate="no" dir="ltr">common.logoUrl</code>, the logo is identical to the icon provided in the app listing.</li> <li><input type="checkbox" aria-label="">If the add-on uses <code translate="no" dir="ltr">calendar.logoUrl</code> or <code translate="no" dir="ltr">common.logoUrl</code>, the URL of the logo starts as follows: <code translate="no" dir="ltr">https://lh3.googleusercontent.com/</code></li> </ul> <p><strong>Meet Add-ons</strong></p> <ul style="list-style-type:none;"> <li><input type="checkbox" aria-label="">The brand logo of the add-on needs to be in a size and styling such that it's identifiable in the Meet side panel.</li> <li><input type="checkbox" aria-label="">Suitable dark mode logo URLs must be specified in the add-on <a href="/meet/add-ons/guides/deploy-add-on">manifest</a></li> </ul> </td> </tr> <tr> <td id="ws_oauth">Google Workspace Add-on</td> <td>OAuth</td> <td> <p><strong>Drive add-ons</strong></p> <ul style="list-style-type:none;"> <li><input type="checkbox" aria-label="">(<em>Recommended</em>) If you want to receive limited-metadata, the add-on includes the <code translate="no" dir="ltr">drive.addons.metadata.readonly</code> scope.</li> </ul> </td> </tr> <tr> <td id="web_func">Web app</td> <td>Functionality</td> <td> <ul style="list-style-type:none;"> <li><input type="checkbox" aria-label="">The universal navigation URL points to a web app. A simple web page without functionality is not considered a web app.</li> </ul> </td> </tr> </tbody> </table> </devsite-filter> </div> <devsite-hats-survey class="nocontent" hats-id="CdGQkktPG0eGRuQsCn30WWZiLHRe" listnr-id="717201"></devsite-hats-survey> </div> <devsite-thumb-rating position="footer"> </devsite-thumb-rating> <devsite-feedback position="footer" project-name="Google Workspace Marketplace" product-id="717201" bucket="marketplace" context="" version="t-devsite-webserver-20241114-r00-rc02.464922260396498922" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="footer" class="nocontent" project-feedback-url="https://issuetracker.google.com/issues/new?component=191597&amp;template=823911" project-icon="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/touchicon-180-new.png" project-support-url="https://developers.google.com/workspace/marketplace/support" > <button> Send feedback </button> </devsite-feedback> <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-11-06 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="Google Workspace Marketplace" product-id="717201" bucket="marketplace" context="" version="t-devsite-webserver-20241114-r00-rc02.464922260396498922" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="thumb-rating" class="nocontent" project-feedback-url="https://issuetracker.google.com/issues/new?component=191597&amp;template=823911" project-icon="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/touchicon-180-new.png" project-support-url="https://developers.google.com/workspace/marketplace/support" > <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-11-06 UTC."],[],[]] </template> </div> </devsite-content> </main> <devsite-footer-promos class="devsite-footer"> <nav class="devsite-footer-promos nocontent" aria-label="Promotions"> <ul class="devsite-footer-promos-list"> <li class="devsite-footer-promo"> <a href="https://developers.googleblog.com/search/?query=Google+Workspace" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Promo - Google Workspace Developers Blog" data-category="Workspace Footer" target="_blank" > <picture> <img class="devsite-footer-promo-icon" src="https://www.gstatic.com/images/branding/product/2x/google_cloud_64dp.png" loading="lazy" alt="Blog"> </picture> <span class="devsite-footer-promo-label"> Blog </span> </a> <div class="devsite-footer-promo-description">Read the Google Workspace Developers blog</div> </li> <li class="devsite-footer-promo"> <a href="https://twitter.com/workspacedevs" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Promo - Google Workspace on X (Twitter)" data-category="Workspace Footer" target="_blank" > <picture> <img class="devsite-footer-promo-icon" src="/static/site-assets/logo-x.svg" loading="lazy" alt="X (Twitter)"> </picture> <span class="devsite-footer-promo-label"> X (Twitter) </span> </a> <div class="devsite-footer-promo-description">Follow @workspacedevs on X (Twitter)</div> </li> <li class="devsite-footer-promo"> <a href="https://github.com/googleworkspace" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Promo - Google Workspace Github" target="_blank" data-category="Workspace Footer" > <picture> <img class="devsite-footer-promo-icon" src="/static/site-assets/logo-github.svg" loading="lazy" alt="Code Samples"> </picture> <span class="devsite-footer-promo-label"> Code Samples </span> </a> <div class="devsite-footer-promo-description">Explore our sample apps or copy them to build your own</div> </li> <li class="devsite-footer-promo"> <a href="https://codelabs.developers.google.com/?product=googleworkspace" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-category="Workspace Footer" data-label="Promo - Google Workspace Codelabs" target="_blank" > <picture> <img class="devsite-footer-promo-icon" src="/static/site-assets/developers-logo-color.svg" loading="lazy" alt="Codelabs"> </picture> <span class="devsite-footer-promo-label"> Codelabs </span> </a> <div class="devsite-footer-promo-description">Try a guided, hands-on coding experience</div> </li> <li class="devsite-footer-promo"> <a href="https://www.youtube.com/channel/UCUcg6az6etU_gRtZVAhBXaw" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" target="_blank" data-label="Promo - Google Workspace on YouTube" data-category="Workspace Footer" > <picture> <img class="devsite-footer-promo-icon" src="/static/site-assets/logo-youtube.svg" loading="lazy" alt="Videos"> </picture> <span class="devsite-footer-promo-label"> Videos </span> </a> <div class="devsite-footer-promo-description">Subscribe to our YouTube channel</div> </li> </ul> </nav> </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">Google Workspace for Developers</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/workspace" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-category="Workspace Footer"data-label="Linkbox - Platform overview"> Platform overview </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/workspace/products" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Linkbox - Developer products"data-category="Workspace Footer"> Developer products </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/workspace/support" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-category="Workspace Footer"data-label="Linkbox - Developer support"> Developer support </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/workspace/terms" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-category="Workspace Footer"data-label="Linkbox - Terms of Service"> Terms of Service </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://admin.google.com/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" target="admin-console"data-label="Linkbox - Admin console"data-category="Workspace Footer"> Admin console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://script.google.com/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Linkbox - Apps Script Dashboard"target="_blank"data-category="Workspace Footer"> Apps Script Dashboard </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://console.cloud.google.com/workspace-api" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" target="console"data-label="Linkbox - Google Cloud console"data-category="Workspace Footer"> Google Cloud console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/workspace/explore" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-category="Workspace Footer"data-label="Linkbox - APIs Explorer"> APIs Explorer </a> </li> </ul> </li> <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="https://developers.googleblog.com/search/?query=Google+Workspace" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Linkbox - Blog"data-category="Workspace Footer"target="_blank"> Blog </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/workspace/newsletters" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-category="Workspace Footer"data-label="Linkbox - Newsletter"> Newsletter </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://twitter.com/workspacedevs" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" target="_blank"data-category="Workspace Footer"data-label="Linkbox - X (Twitter)"> X (Twitter) </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://www.youtube.com/channel/UCUcg6az6etU_gRtZVAhBXaw" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Linkbox - YouTube"data-category="Workspace Footer"target="_blank"> YouTube </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/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/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> <devsite-concierge data-info-panel data-ai-panel data-api-explorer-panel > </devsite-concierge> </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;dimension3&#34;: false, &#34;dimension5&#34;: &#34;en&#34;, &#34;dimension4&#34;: &#34;Google Workspace Marketplace&#34;, &#34;dimension6&#34;: &#34;en&#34;, &#34;dimension1&#34;: &#34;Signed out&#34;, &#34;dimension11&#34;: false}, &#34;gaid&#34;: &#34;UA-24532603-1&#34;, &#34;metrics&#34;: {&#34;ratings_value&#34;: &#34;metric1&#34;, &#34;ratings_count&#34;: &#34;metric2&#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;id&#34;: &#34;G-YYP88VSJWR&#34;, &#34;purpose&#34;: 0}], &#34;ga4p&#34;: [{&#34;id&#34;: &#34;G-272J68FCRF&#34;, &#34;purpose&#34;: 1}], &#34;gtm&#34;: [], &#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;Google Workspace Marketplace&#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="10fDkxSIhm7cYOr4t3n0PSkVZxweSe"> (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/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/js/app_loader.js', '[1,"en",null,"/js/devsite_app_module.js","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers","https://developers-dot-devsite-v2-prod.appspot.com",null,null,["/_pwa/developers/manifest.json","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/images/video-placeholder.svg","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/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,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,["Significatio__enable_by_tenant","Search__enable_page_map","Profiles__enable_complete_playlist_endpoint","Profiles__enable_profile_collections","TpcFeatures__enable_required_headers","Profiles__require_profile_eligibility_for_signin","Profiles__enable_page_saving","Search__enable_dynamic_content_confidential_banner","TpcFeatures__enable_mirror_tenant_redirects","Cloud__enable_cloud_shell","Concierge__enable_pushui","BookNav__enable_tenant_cache_key","Analytics__enable_clearcut_logging","Search__enable_suggestions_from_borg","Cloud__enable_legacy_calculator_redirect","MiscFeatureFlags__enable_explain_this_code","Cloud__enable_cloudx_ping","Profiles__enable_public_developer_profiles","Profiles__enable_awarding_url","CloudShell__cloud_code_overflow_menu","MiscFeatureFlags__developers_footer_dark_image","Concierge__enable_concierge_restricted","MiscFeatureFlags__enable_project_variables","Cloud__enable_free_trial_server_call","MiscFeatureFlags__emergency_css","Cloud__enable_cloud_shell_fte_user_flow","Cloud__enable_llm_concierge_chat","Search__enable_ai_search_summaries","Search__enable_ai_eligibility_checks","DevPro__enable_cloud_innovators_plus","Search__enable_ai_search_summaries_restricted","Experiments__reqs_query_experiments","Profiles__enable_developer_profiles_callout","Profiles__enable_completecodelab_endpoint","Cloud__enable_cloud_facet_chat","MiscFeatureFlags__enable_variable_operator","DevPro__enable_developer_subscriptions","Profiles__enable_release_notes_notifications","MiscFeatureFlags__developers_footer_image","MiscFeatureFlags__enable_view_transitions","Cloud__enable_cloudx_experiment_ids","Concierge__enable_concierge","Profiles__enable_recognition_badges","CloudShell__cloud_shell_button","Cloud__enable_cloud_dlp_service","Profiles__enable_dashboard_curated_recommendations","MiscFeatureFlags__enable_firebase_utm","EngEduTelemetry__enable_engedu_telemetry"],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],[[1,1],[12,9],[11,8],[13,10],[14,11],[3,2],[6,5],[15,12],[16,13],[4,3],[5,4]],[[1,1],[2,2]]],null,4,null,null,null,null,null,null,null,null,null,null,null,null,null,"developers.devsite.google"],null,"pk_live_5170syrHvgGVmSx9sBrnWtA5luvk9BwnVcvIi7HizpwauFG96WedXsuXh790rtij9AmGllqPtMLfhe2RSwD6Pn38V00uBCydV4m"]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html>

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