CINXE.COM
Export Performance Monitoring data to BigQuery | Firebase Performance Monitoring
<!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="Firebase"> <meta property="og:type" content="website"><meta name="theme-color" content="#a8c7fa"><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/firebase/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/firebase/css/app.css"> <link rel="stylesheet" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/firebase/css/dark-theme.css" disabled> <link rel="shortcut icon" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/firebase/images/favicon.png"> <link rel="apple-touch-icon" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/firebase/images/touchicon-180.png"><link rel="canonical" href="https://firebase.google.com/docs/perf-mon/bigquery-export"><link rel="search" type="application/opensearchdescription+xml" title="Firebase" href="https://firebase.google.com/s/opensearch.xml"> <link rel="alternate" hreflang="en" href="https://firebase.google.com/docs/perf-mon/bigquery-export" /><link rel="alternate" hreflang="x-default" href="https://firebase.google.com/docs/perf-mon/bigquery-export" /><link rel="alternate" hreflang="ar" href="https://firebase.google.com/docs/perf-mon/bigquery-export?hl=ar" /><link rel="alternate" hreflang="bn" href="https://firebase.google.com/docs/perf-mon/bigquery-export?hl=bn" /><link rel="alternate" hreflang="zh-Hans" href="https://firebase.google.com/docs/perf-mon/bigquery-export?hl=zh-cn" /><link rel="alternate" hreflang="zh-Hant" href="https://firebase.google.com/docs/perf-mon/bigquery-export?hl=zh-tw" /><link rel="alternate" hreflang="fa" href="https://firebase.google.com/docs/perf-mon/bigquery-export?hl=fa" /><link rel="alternate" hreflang="fr" href="https://firebase.google.com/docs/perf-mon/bigquery-export?hl=fr" /><link rel="alternate" hreflang="de" href="https://firebase.google.com/docs/perf-mon/bigquery-export?hl=de" /><link rel="alternate" hreflang="he" href="https://firebase.google.com/docs/perf-mon/bigquery-export?hl=he" /><link rel="alternate" hreflang="hi" href="https://firebase.google.com/docs/perf-mon/bigquery-export?hl=hi" /><link rel="alternate" hreflang="id" href="https://firebase.google.com/docs/perf-mon/bigquery-export?hl=id" /><link rel="alternate" hreflang="it" href="https://firebase.google.com/docs/perf-mon/bigquery-export?hl=it" /><link rel="alternate" hreflang="ja" href="https://firebase.google.com/docs/perf-mon/bigquery-export?hl=ja" /><link rel="alternate" hreflang="ko" href="https://firebase.google.com/docs/perf-mon/bigquery-export?hl=ko" /><link rel="alternate" hreflang="pl" href="https://firebase.google.com/docs/perf-mon/bigquery-export?hl=pl" /><link rel="alternate" hreflang="pt-BR" href="https://firebase.google.com/docs/perf-mon/bigquery-export?hl=pt-br" /><link rel="alternate" hreflang="pt" href="https://firebase.google.com/docs/perf-mon/bigquery-export?hl=pt" /><link rel="alternate" hreflang="ru" href="https://firebase.google.com/docs/perf-mon/bigquery-export?hl=ru" /><link rel="alternate" hreflang="es" href="https://firebase.google.com/docs/perf-mon/bigquery-export?hl=es" /><link rel="alternate" hreflang="es-419" href="https://firebase.google.com/docs/perf-mon/bigquery-export?hl=es-419" /><link rel="alternate" hreflang="th" href="https://firebase.google.com/docs/perf-mon/bigquery-export?hl=th" /><link rel="alternate" hreflang="tr" href="https://firebase.google.com/docs/perf-mon/bigquery-export?hl=tr" /><link rel="alternate" hreflang="vi" href="https://firebase.google.com/docs/perf-mon/bigquery-export?hl=vi" /><title>Export Performance Monitoring data to BigQuery | Firebase Performance Monitoring</title> <meta property="og:title" content="Export Performance Monitoring data to BigQuery | Firebase Performance Monitoring"><meta property="og:url" content="https://firebase.google.com/docs/perf-mon/bigquery-export"><meta property="og:locale" content="en"><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{ "@type": "ListItem", "position": 1, "name": "Documentation", "item": "https://firebase.google.com/docs" },{ "@type": "ListItem", "position": 2, "name": "Performance Monitoring", "item": "https://firebase.google.com/docs/perf-mon" },{ "@type": "ListItem", "position": 3, "name": "Export Performance Monitoring data to BigQuery", "item": "https://firebase.google.com/docs/perf-mon/bigquery-export" }] } </script> <link rel="stylesheet" href="/extras.css"></head> <body class="" template="page" theme="firebase-icy-theme" type="guide" appearance 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" keep-tabs-visible> <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="/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="firebase" track-metadata-position="nav" track-metadata-eventDetail="nav"> <picture> <source srcset="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/firebase/images/lockup.svg" media="(prefers-color-scheme: dark)" class="devsite-dark-theme" alt="Firebase"> <img src="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/firebase/images/lockup.svg" class="devsite-site-logo" alt="Firebase"> </picture> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item "> </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 class="devsite-dropdown "> <a href="https://firebase.google.com/products-build" track-metadata-eventdetail="https://firebase.google.com/products-build" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - build" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Build" track-name="build" > Build </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Build" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products-build" track-metadata-position="nav - build" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Build" track-name="build" 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 firebase-dropdown firebase-dropdown--primary firebase-build"> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Build</li> <li class="devsite-nav-description">Get to market quickly and securely with products that can scale globally </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products-build" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products-build" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build" tooltip > <div class="devsite-nav-item-title"> Go to Build </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column firebase-dropdown firebase-dropdown--secondary firebase-build"> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Build Products</li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/app-check" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/app-check" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> App Check </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/app-hosting" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/app-hosting" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> App Hosting </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/auth" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/auth" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> Authentication </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/functions" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/functions" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> Cloud Functions </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/storage" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/storage" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> Cloud Storage </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/data-connect" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/data-connect" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> Data Connect </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/extensions" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/extensions" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> Extensions </div> </a> </li> </ul> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/ml" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/ml" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> Firebase ML </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/firestore" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/firestore" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> Firestore </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/genkit" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/genkit" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> Genkit </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/hosting" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/hosting" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> Hosting </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/realtime-database" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/realtime-database" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> Realtime Database </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/vertex-ai-in-firebase" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/vertex-ai-in-firebase" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> Vertex AI in Firebase </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/generative-ai" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/generative-ai" track-metadata-position="nav - build" track-metadata-module="tertiary nav" track-metadata-module_headline="build products" tooltip > <div class="devsite-nav-item-title"> Generative AI </div> </a> </li> </ul> </div> </div> </div> </tab> <tab class="devsite-dropdown "> <a href="https://firebase.google.com/products-run" track-metadata-eventdetail="https://firebase.google.com/products-run" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - run" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Run" track-name="run" > Run </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Run" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products-run" track-metadata-position="nav - run" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Run" track-name="run" 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 firebase-dropdown firebase-dropdown--primary firebase-run"> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Run</li> <li class="devsite-nav-description">Run your app with confidence and deliver the best experience for your users </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products-run" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products-run" track-metadata-position="nav - run" track-metadata-module="tertiary nav" track-metadata-module_headline="run" tooltip > <div class="devsite-nav-item-title"> Go to Run </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column firebase-dropdown firebase-dropdown--secondary"> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Run Products</li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/ab-testing" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/ab-testing" track-metadata-position="nav - run" track-metadata-module="tertiary nav" track-metadata-module_headline="run products" tooltip > <div class="devsite-nav-item-title"> A/B Testing </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/app-distribution" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/app-distribution" track-metadata-position="nav - run" track-metadata-module="tertiary nav" track-metadata-module_headline="run products" tooltip > <div class="devsite-nav-item-title"> App Distribution </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/cloud-messaging" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/cloud-messaging" track-metadata-position="nav - run" track-metadata-module="tertiary nav" track-metadata-module_headline="run products" tooltip > <div class="devsite-nav-item-title"> Cloud Messaging </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/crashlytics" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/crashlytics" track-metadata-position="nav - run" track-metadata-module="tertiary nav" track-metadata-module_headline="run products" tooltip > <div class="devsite-nav-item-title"> Crashlytics </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/analytics" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/analytics" track-metadata-position="nav - run" track-metadata-module="tertiary nav" track-metadata-module_headline="run products" tooltip > <div class="devsite-nav-item-title"> Google Analytics </div> </a> </li> </ul> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/in-app-messaging" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/in-app-messaging" track-metadata-position="nav - run" track-metadata-module="tertiary nav" track-metadata-module_headline="run products" tooltip > <div class="devsite-nav-item-title"> In-App Messaging </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/performance" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/performance" track-metadata-position="nav - run" track-metadata-module="tertiary nav" track-metadata-module_headline="run products" tooltip > <div class="devsite-nav-item-title"> Performance Monitoring </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/remote-config" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/remote-config" track-metadata-position="nav - run" track-metadata-module="tertiary nav" track-metadata-module_headline="run products" tooltip > <div class="devsite-nav-item-title"> Remote Config </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/products/test-lab" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/products/test-lab" track-metadata-position="nav - run" track-metadata-module="tertiary nav" track-metadata-module_headline="run products" tooltip > <div class="devsite-nav-item-title"> Test Lab </div> </a> </li> </ul> </div> </div> </div> </tab> <tab > <a href="https://firebase.google.com/solutions" track-metadata-eventdetail="https://firebase.google.com/solutions" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - solutions" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Solutions" track-name="solutions" > Solutions </a> </tab> <tab > <a href="https://firebase.google.com/pricing" track-metadata-eventdetail="https://firebase.google.com/pricing" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - pricing" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Pricing" track-name="pricing" > Pricing </a> </tab> <tab class="devsite-dropdown devsite-active "> <a href="https://firebase.google.com/docs" track-metadata-eventdetail="https://firebase.google.com/docs" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - docs" track-metadata-module="primary nav" aria-label="Docs, selected" data-category="Site-Wide Custom Events" data-label="Tab: Docs" track-name="docs" > Docs </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Docs" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs" track-metadata-position="nav - docs" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Docs" track-name="docs" 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-item"> <a href="https://firebase.google.com/docs" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Overview </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/guides" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/guides" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Fundamentals </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/build" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/build" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Build </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/run" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/run" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Run </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/reference" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/reference" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Reference </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/samples" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/samples" track-metadata-position="nav - docs" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Samples </div> </a> </li> </ul> </div> </div> </div> </tab> <tab class="devsite-dropdown "> <a href="https://firebase.google.com/community" track-metadata-eventdetail="https://firebase.google.com/community" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - community" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Community" track-name="community" > Community </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Community" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/community" track-metadata-position="nav - community" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Community" track-name="community" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://firebase.google.com/community/learn" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/community/learn" track-metadata-position="nav - community" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Learn </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/community/events" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/community/events" track-metadata-position="nav - community" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Events </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/community/stories" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/community/stories" track-metadata-position="nav - community" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Stories </div> </a> </li> </ul> </div> </div> </div> </tab> <tab > <a href="https://firebase.google.com/support" track-metadata-eventdetail="https://firebase.google.com/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> <devsite-search enable-signin enable-search enable-suggestions enable-query-completion project-name="Firebase Performance Monitoring" tenant-name="Firebase" > <form class="devsite-search-form" action="https://firebase.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-appearance-selector></devsite-appearance-selector> <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" >Português</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="vi" >Tiếng Việt</a> </li> <li role="presentation"> <a role="menuitem" lang="tr" >Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ru" >Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="he" >עברית</a> </li> <li role="presentation"> <a role="menuitem" lang="ar" >العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="fa" >فارسی</a> </li> <li role="presentation"> <a role="menuitem" lang="hi" >हिंदी</a> </li> <li role="presentation"> <a role="menuitem" lang="bn" >বাংলা</a> </li> <li role="presentation"> <a role="menuitem" lang="th" >ภาษาไทย</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw" >中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> <a class="devsite-header-link devsite-top-button button gc-analytics-event" href="//console.firebase.google.com" data-category="Site-Wide Custom Events" data-label="Site header link" > Go to console </a> <devsite-user enable-profiles fp-auth id="devsite-user"> <span class="button devsite-top-button" aria-hidden="true" visually-hidden>Sign in</span> </devsite-user> </div> </div> </div> <div class="devsite-collapsible-section "> <div class="devsite-header-background"> <div class="devsite-product-id-row" > <div class="devsite-product-description-row"> <ul class="devsite-breadcrumb-list" aria-label="Lower header breadcrumb"> <li class="devsite-breadcrumb-item "> <a href="https://firebase.google.com/docs" 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="Firebase Documentation" > Documentation </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://firebase.google.com/docs/perf-mon" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Lower Header" data-value="2" track-type="globalNav" track-name="breadcrumb" track-metadata-position="2" track-metadata-eventdetail="Firebase Performance Monitoring" > Performance Monitoring </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://firebase.google.com/docs" track-metadata-eventdetail="https://firebase.google.com/docs" 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-dropdown "> <a href="https://firebase.google.com/docs/guides" track-metadata-eventdetail="https://firebase.google.com/docs/guides" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - fundamentals" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Fundamentals" track-name="fundamentals" > Fundamentals </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Fundamentals" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/guides" track-metadata-position="nav - fundamentals" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Fundamentals" track-name="fundamentals" 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-item"> <a href="https://firebase.google.com/docs/ios/setup" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/ios/setup" track-metadata-position="nav - fundamentals" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Add Firebase - Apple platforms (iOS+) </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/android/setup" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/android/setup" track-metadata-position="nav - fundamentals" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Add Firebase - Android </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/web/setup" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/web/setup" track-metadata-position="nav - fundamentals" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Add Firebase - Web </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/flutter/setup" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/flutter/setup" track-metadata-position="nav - fundamentals" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Add Firebase - Flutter </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/cpp/setup" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/cpp/setup" track-metadata-position="nav - fundamentals" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Add Firebase - C++ </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/unity/setup" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/unity/setup" track-metadata-position="nav - fundamentals" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Add Firebase - Unity </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/admin/setup" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/admin/setup" track-metadata-position="nav - fundamentals" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Add Firebase - Server environments </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/projects/learn-more" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/projects/learn-more" track-metadata-position="nav - fundamentals" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Manage Firebase projects </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/libraries" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/libraries" track-metadata-position="nav - fundamentals" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Supported platforms & frameworks </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/emulator-suite" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/emulator-suite" track-metadata-position="nav - fundamentals" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Use Emulator Suite </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/gemini-in-firebase" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/gemini-in-firebase" track-metadata-position="nav - fundamentals" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> AI assistance with Gemini in Firebase </div> </a> </li> </ul> </div> </div> </div> </tab> <tab class="devsite-dropdown "> <a href="https://firebase.google.com/docs/build" track-metadata-eventdetail="https://firebase.google.com/docs/build" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - build" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Build" track-name="build" > Build </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Build" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/build" track-metadata-position="nav - build" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Build" track-name="build" 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-item"> <a href="https://firebase.google.com/docs/emulator-suite" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/emulator-suite" track-metadata-position="nav - build" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Emulator Suite </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/auth" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/auth" track-metadata-position="nav - build" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Authentication </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/app-check" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/app-check" track-metadata-position="nav - build" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> App Check </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/data-connect" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/data-connect" track-metadata-position="nav - build" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Data Connect </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/firestore" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/firestore" track-metadata-position="nav - build" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Firestore </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/database" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/database" track-metadata-position="nav - build" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Realtime Database </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/storage" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/storage" track-metadata-position="nav - build" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Storage </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/rules" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/rules" track-metadata-position="nav - build" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Security Rules </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/app-hosting" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/app-hosting" track-metadata-position="nav - build" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> App Hosting </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/hosting" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/hosting" track-metadata-position="nav - build" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Hosting </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/functions" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/functions" track-metadata-position="nav - build" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Cloud Functions </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/extensions" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/extensions" track-metadata-position="nav - build" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Extensions </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/vertex-ai" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/vertex-ai" track-metadata-position="nav - build" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Vertex AI in Firebase </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/genkit" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/genkit" track-metadata-position="nav - build" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Genkit </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/ml" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/ml" track-metadata-position="nav - build" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> ML </div> </a> </li> </ul> </div> </div> </div> </tab> <tab class="devsite-dropdown devsite-active "> <a href="https://firebase.google.com/docs/run" track-metadata-eventdetail="https://firebase.google.com/docs/run" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - run" track-metadata-module="primary nav" aria-label="Run, selected" data-category="Site-Wide Custom Events" data-label="Tab: Run" track-name="run" > Run </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Run" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/run" track-metadata-position="nav - run" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Run" track-name="run" 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-item"> <a href="https://firebase.google.com/docs/test-lab" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/test-lab" track-metadata-position="nav - run" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Test Lab </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/app-distribution" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/app-distribution" track-metadata-position="nav - run" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> App Distribution </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/crashlytics" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/crashlytics" track-metadata-position="nav - run" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Crashlytics </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/perf-mon" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/perf-mon" track-metadata-position="nav - run" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Performance Monitoring </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/remote-config" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/remote-config" track-metadata-position="nav - run" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Remote Config </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/ab-testing" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/ab-testing" track-metadata-position="nav - run" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> A/B Testing </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/analytics" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/analytics" track-metadata-position="nav - run" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Analytics </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/cloud-messaging" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/cloud-messaging" track-metadata-position="nav - run" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Cloud Messaging </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/in-app-messaging" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/in-app-messaging" track-metadata-position="nav - run" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> In-App Messaging </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/dynamic-links" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/dynamic-links" track-metadata-position="nav - run" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Dynamic Links </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/admob" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/admob" track-metadata-position="nav - run" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google AdMob </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/ads" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/ads" track-metadata-position="nav - run" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Ads </div> </a> </li> </ul> </div> </div> </div> </tab> <tab > <a href="https://firebase.google.com/docs/reference" track-metadata-eventdetail="https://firebase.google.com/docs/reference" 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://firebase.google.com/docs/samples" track-metadata-eventdetail="https://firebase.google.com/docs/samples" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - samples" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Samples" track-name="samples" > Samples </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="/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="firebase" track-metadata-position="nav" track-metadata-eventDetail="nav"> <picture> <source srcset="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/firebase/images/lockup.svg" media="(prefers-color-scheme: dark)" class="devsite-dark-theme" alt="Firebase"> <img src="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/firebase/images/lockup.svg" class="devsite-site-logo" alt="Firebase"> </picture> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item "> </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="/products-build" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Build" track-name="build" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Build" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Build </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: Build" track-name="build" > <span class="devsite-nav-text" tooltip menu="Build"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Build"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/products-run" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Run" track-name="run" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Run" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Run </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: Run" track-name="run" > <span class="devsite-nav-text" tooltip menu="Run"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Run"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/solutions" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Solutions" track-name="solutions" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Solutions" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Solutions </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/pricing" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Pricing" track-name="pricing" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Pricing" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Pricing </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs" class="devsite-nav-title gc-analytics-event devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Docs" track-name="docs" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Docs" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Docs </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: Docs" track-name="docs" > <span class="devsite-nav-text" tooltip menu="Docs"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Docs"> </span> </span> </li> </ul> <ul class="devsite-nav-responsive-tabs"> <li class="devsite-nav-item"> <a href="/docs" class="devsite-nav-title gc-analytics-event " 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> </a> </li> <li class="devsite-nav-item"> <a href="/docs/guides" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Fundamentals" track-name="fundamentals" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Fundamentals" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Fundamentals </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu devsite-lower-tab-item"> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Fundamentals" track-name="fundamentals" > <span class="devsite-nav-text" tooltip menu="Fundamentals"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Fundamentals"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/docs/build" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Build" track-name="build" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Build" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Build </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu devsite-lower-tab-item"> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Build" track-name="build" > <span class="devsite-nav-text" tooltip menu="Build"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Build"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/docs/run" class="devsite-nav-title gc-analytics-event devsite-nav-has-children devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Run" track-name="run" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Run" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip menu="_book"> Run </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="_book"> </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu devsite-lower-tab-item"> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Run" track-name="run" > <span class="devsite-nav-text" tooltip menu="Run"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Run"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/docs/reference" class="devsite-nav-title gc-analytics-event " 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> </a> </li> <li class="devsite-nav-item"> <a href="/docs/samples" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Samples" track-name="samples" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Samples" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Samples </span> </a> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/community" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Community" track-name="community" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Community" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Community </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Community" track-name="community" > <span class="devsite-nav-text" tooltip menu="Community"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Community"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/support" class="devsite-nav-title gc-analytics-event " 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> </a> </li> <li class="devsite-nav-item"> <a href="//console.firebase.google.com" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Go to console" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Go to console </span> </a> </li> </ul> </div> <div class="devsite-mobile-nav-bottom"> <ul class="devsite-nav-list" menu="_book"> <li class="devsite-nav-item"><a href="/docs/run" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/run" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/run" ><span class="devsite-nav-text" tooltip>Overview</span></a></li> <li class="devsite-nav-item devsite-nav-divider devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Release</span> </div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Test Lab</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/test-lab" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/test-lab" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/test-lab" ><span class="devsite-nav-text" tooltip>Introduction</span></a></li><li class="devsite-nav-item"><a href="/docs/test-lab/flutter/integration-testing-with-flutter" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/test-lab/flutter/integration-testing-with-flutter" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/test-lab/flutter/integration-testing-with-flutter" ><span class="devsite-nav-text" tooltip>Integration testing with Flutter</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>iOS+</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/test-lab/ios/get-started" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/test-lab/ios/get-started" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/test-lab/ios/get-started" ><span class="devsite-nav-text" tooltip>Get started</span></a></li><li class="devsite-nav-item"><a href="/docs/test-lab/ios/robo-ux-test" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/test-lab/ios/robo-ux-test" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/test-lab/ios/robo-ux-test" ><span class="devsite-nav-text" tooltip>Run a Robo test</span></a></li><li class="devsite-nav-item"><a href="/docs/test-lab/ios/run-robo-scripts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/test-lab/ios/run-robo-scripts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/test-lab/ios/run-robo-scripts" ><span class="devsite-nav-text" tooltip>Run a Robo script</span></a></li><li class="devsite-nav-item"><a href="/docs/test-lab/ios/run-game-loop-test" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/test-lab/ios/run-game-loop-test" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/test-lab/ios/run-game-loop-test" ><span class="devsite-nav-text" tooltip>Run a Game Loop test</span></a></li><li class="devsite-nav-item"><a href="/docs/test-lab/ios/run-xctest" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/test-lab/ios/run-xctest" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/test-lab/ios/run-xctest" ><span class="devsite-nav-text" tooltip>Run an XCTest</span></a></li><li class="devsite-nav-item"><a href="/docs/test-lab/ios/firebase-console" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/test-lab/ios/firebase-console" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/test-lab/ios/firebase-console" ><span class="devsite-nav-text" tooltip>Test with the Firebase console</span></a></li><li class="devsite-nav-item"><a href="/docs/test-lab/ios/command-line" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/test-lab/ios/command-line" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/test-lab/ios/command-line" ><span class="devsite-nav-text" tooltip>Test with the gcloud CLI</span></a></li><li class="devsite-nav-item"><a href="/docs/test-lab/ios/available-testing-devices" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/test-lab/ios/available-testing-devices" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/test-lab/ios/available-testing-devices" ><span class="devsite-nav-text" tooltip>Test on available devices</span></a></li><li class="devsite-nav-item"><a href="/docs/test-lab/ios/analyzing-results" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/test-lab/ios/analyzing-results" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/test-lab/ios/analyzing-results" ><span class="devsite-nav-text" tooltip>Analyze test results</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Android</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/test-lab/android/get-started" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/test-lab/android/get-started" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/test-lab/android/get-started" ><span class="devsite-nav-text" tooltip>Get started</span></a></li><li class="devsite-nav-item"><a href="/docs/test-lab/android/instrumentation-test" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/test-lab/android/instrumentation-test" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/test-lab/android/instrumentation-test" ><span class="devsite-nav-text" tooltip>Run an instrumentation test</span></a></li><li class="devsite-nav-item"><a href="/docs/test-lab/android/robo-ux-test" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/test-lab/android/robo-ux-test" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/test-lab/android/robo-ux-test" ><span class="devsite-nav-text" tooltip>Run a Robo test</span></a></li><li class="devsite-nav-item"><a href="/docs/test-lab/android/run-robo-scripts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/test-lab/android/run-robo-scripts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/test-lab/android/run-robo-scripts" ><span class="devsite-nav-text" tooltip>Run a Robo script</span></a></li><li class="devsite-nav-item"><a href="/docs/test-lab/android/game-loop" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/test-lab/android/game-loop" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/test-lab/android/game-loop" ><span class="devsite-nav-text" tooltip>Run a Game Loop test</span></a></li><li class="devsite-nav-item"><a href="/docs/test-lab/android/firebase-console" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/test-lab/android/firebase-console" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/test-lab/android/firebase-console" ><span class="devsite-nav-text" tooltip>Test with the Firebase console</span></a></li><li class="devsite-nav-item"><a href="/docs/test-lab/android/command-line" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/test-lab/android/command-line" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/test-lab/android/command-line" ><span class="devsite-nav-text" tooltip>Test with the gcloud CLI</span></a></li><li class="devsite-nav-item"><a href="/docs/test-lab/android/android-studio" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/test-lab/android/android-studio" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/test-lab/android/android-studio" ><span class="devsite-nav-text" tooltip>Test with Android Studio</span></a></li><li class="devsite-nav-item"><a href="/docs/test-lab/android/available-testing-devices" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/test-lab/android/available-testing-devices" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/test-lab/android/available-testing-devices" ><span class="devsite-nav-text" tooltip>Test on available devices</span></a></li><li class="devsite-nav-item"><a href="/docs/test-lab/android/avds" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/test-lab/android/avds" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/test-lab/android/avds" ><span class="devsite-nav-text" tooltip>Test with virtual devices</span></a></li><li class="devsite-nav-item"><a href="/docs/test-lab/android/analyzing-results" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/test-lab/android/analyzing-results" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/test-lab/android/analyzing-results" ><span class="devsite-nav-text" tooltip>Analyze test results</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-new"><a href="/docs/test-lab/usage-quotas-pricing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/test-lab/usage-quotas-pricing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/test-lab/usage-quotas-pricing" ><span class="devsite-nav-text" tooltip>Usage, quotas, & pricing</span><span class="devsite-nav-icon material-icons" data-icon="new" data-title="New!" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/docs/test-lab/android/continuous" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/test-lab/android/continuous" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/test-lab/android/continuous" ><span class="devsite-nav-text" tooltip>Test with CI systems</span></a></li><li class="devsite-nav-item"><a href="/docs/test-lab/extend-with-functions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/test-lab/extend-with-functions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/test-lab/extend-with-functions" ><span class="devsite-nav-text" tooltip>Extend with Cloud Functions</span></a></li><li class="devsite-nav-item"><a href="/docs/test-lab/android/android-device-streaming" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/test-lab/android/android-device-streaming" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/test-lab/android/android-device-streaming" ><span class="devsite-nav-text" tooltip>Test with Android Device Streaming</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>Reference</span> </div></li><li class="devsite-nav-item"><a href="/docs/test-lab/android/robo-scripts-reference" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/test-lab/android/robo-scripts-reference" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/test-lab/android/robo-scripts-reference" ><span class="devsite-nav-text" tooltip>Robo scripts reference guide</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>REST API reference</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/test-lab/reference/testing/rest" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/test-lab/reference/testing/rest" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/test-lab/reference/testing/rest" ><span class="devsite-nav-text" tooltip>Testing (submit test & monitor)</span></a></li><li class="devsite-nav-item"><a href="/docs/test-lab/reference/toolresults/rest" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/test-lab/reference/toolresults/rest" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/test-lab/reference/toolresults/rest" ><span class="devsite-nav-text" tooltip>ToolResults (retrieve results)</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-new"><a href="/docs/test-lab/android/iam-permissions-reference" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/test-lab/android/iam-permissions-reference" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/test-lab/android/iam-permissions-reference" ><span class="devsite-nav-text" tooltip>Test Lab IAM permissions reference guide</span><span class="devsite-nav-icon material-icons" data-icon="new" data-title="New!" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-break"></li><li class="devsite-nav-item"><a href="/docs/test-lab/troubleshooting" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/test-lab/troubleshooting" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/test-lab/troubleshooting" ><span class="devsite-nav-text" tooltip>Troubleshooting & FAQ</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>App Distribution</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/app-distribution" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/app-distribution" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/app-distribution" ><span class="devsite-nav-text" tooltip>Introduction</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>Distribute iOS apps</span> </div></li><li class="devsite-nav-item"><a href="/docs/app-distribution/ios/distribute-console" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/app-distribution/ios/distribute-console" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/app-distribution/ios/distribute-console" ><span class="devsite-nav-text" tooltip>Use the Firebase console</span></a></li><li class="devsite-nav-item"><a href="/docs/app-distribution/ios/distribute-cli" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/app-distribution/ios/distribute-cli" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/app-distribution/ios/distribute-cli" ><span class="devsite-nav-text" tooltip>Use the Firebase CLI</span></a></li><li class="devsite-nav-item"><a href="/docs/app-distribution/ios/distribute-fastlane" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/app-distribution/ios/distribute-fastlane" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/app-distribution/ios/distribute-fastlane" ><span class="devsite-nav-text" tooltip>Use fastlane</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>Distribute Android apps</span> </div></li><li class="devsite-nav-item"><a href="/docs/app-distribution/android/distribute-console" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/app-distribution/android/distribute-console" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/app-distribution/android/distribute-console" ><span class="devsite-nav-text" tooltip>Use the Firebase console</span></a></li><li class="devsite-nav-item"><a href="/docs/app-distribution/android/distribute-cli" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/app-distribution/android/distribute-cli" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/app-distribution/android/distribute-cli" ><span class="devsite-nav-text" tooltip>Use the Firebase CLI</span></a></li><li class="devsite-nav-item"><a href="/docs/app-distribution/android/distribute-fastlane" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/app-distribution/android/distribute-fastlane" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/app-distribution/android/distribute-fastlane" ><span class="devsite-nav-text" tooltip>Use fastlane</span></a></li><li class="devsite-nav-item"><a href="/docs/app-distribution/android/distribute-gradle" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/app-distribution/android/distribute-gradle" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/app-distribution/android/distribute-gradle" ><span class="devsite-nav-text" tooltip>Use Gradle</span></a></li><li class="devsite-nav-item devsite-nav-beta"><a href="/docs/app-distribution/android-automated-tester" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/app-distribution/android-automated-tester" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/app-distribution/android-automated-tester" ><span class="devsite-nav-text" tooltip>Use Automated tester</span><span class="devsite-nav-icon material-icons" data-icon="beta" data-title="Beta" 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>Manage testers</span> </div></li><li class="devsite-nav-item"><a href="/docs/app-distribution/add-remove-search-testers" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/app-distribution/add-remove-search-testers" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/app-distribution/add-remove-search-testers" ><span class="devsite-nav-text" tooltip>Add, remove, and search for testers</span></a></li><li class="devsite-nav-item"><a href="/docs/app-distribution/import-testers-csv-files" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/app-distribution/import-testers-csv-files" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/app-distribution/import-testers-csv-files" ><span class="devsite-nav-text" tooltip>Import testers from CSV files</span></a></li><li class="devsite-nav-item"><a href="/docs/app-distribution/register-additional-devices" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/app-distribution/register-additional-devices" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/app-distribution/register-additional-devices" ><span class="devsite-nav-text" tooltip>Register additional iOS devices</span></a></li><li class="devsite-nav-item"><a href="/docs/app-distribution/create-invite-links" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/app-distribution/create-invite-links" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/app-distribution/create-invite-links" ><span class="devsite-nav-text" tooltip>Create invite links</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>Install & test apps</span> </div></li><li class="devsite-nav-item"><a href="/docs/app-distribution/get-set-up-as-a-tester" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/app-distribution/get-set-up-as-a-tester" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/app-distribution/get-set-up-as-a-tester" ><span class="devsite-nav-text" tooltip>Get set up as a tester</span></a></li><li class="devsite-nav-item devsite-nav-beta"><a href="/docs/app-distribution/collect-feedback-from-testers" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/app-distribution/collect-feedback-from-testers" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/app-distribution/collect-feedback-from-testers" ><span class="devsite-nav-text" tooltip>Collect feedback from testers</span><span class="devsite-nav-icon material-icons" data-icon="beta" data-title="Beta" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-beta"><a href="/docs/app-distribution/set-up-alerts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/app-distribution/set-up-alerts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/app-distribution/set-up-alerts" ><span class="devsite-nav-text" tooltip>Notify testers about new builds</span><span class="devsite-nav-icon material-icons" data-icon="beta" data-title="Beta" 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>Solutions</span> </div></li><li class="devsite-nav-item"><a href="/docs/app-distribution/best-practices-distributing-apple-apps-to-qa-testers-with-ci-cd-fastlane" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/app-distribution/best-practices-distributing-apple-apps-to-qa-testers-with-ci-cd-fastlane" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/app-distribution/best-practices-distributing-apple-apps-to-qa-testers-with-ci-cd-fastlane" ><span class="devsite-nav-text" tooltip>Best practices for distributing Apple apps to QA testers using CI/CD and fastlane</span></a></li><li class="devsite-nav-item"><a href="/docs/app-distribution/best-practices-distributing-android-apps-to-qa-testers-with-ci-cd" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/app-distribution/best-practices-distributing-android-apps-to-qa-testers-with-ci-cd" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/app-distribution/best-practices-distributing-android-apps-to-qa-testers-with-ci-cd" ><span class="devsite-nav-text" tooltip>Best practices for distributing Android apps to QA testers using CI/CD</span></a></li><li class="devsite-nav-item devsite-nav-break"></li><li class="devsite-nav-item"><a href="/docs/app-distribution/troubleshooting" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/app-distribution/troubleshooting" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/app-distribution/troubleshooting" ><span class="devsite-nav-text" tooltip>Troubleshooting & FAQ</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-divider devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Monitor</span> </div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Crashlytics</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/crashlytics" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/crashlytics" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/crashlytics" ><span class="devsite-nav-text" tooltip>Introduction</span></a></li><li class="devsite-nav-item"><a href="/docs/crashlytics/get-started" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/crashlytics/get-started" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/crashlytics/get-started" ><span class="devsite-nav-text" tooltip>Get started</span></a></li><li class="devsite-nav-item"><a href="/docs/crashlytics/ndk-reports" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/crashlytics/ndk-reports" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/crashlytics/ndk-reports" ><span class="devsite-nav-text" tooltip>Get Android NDK crash reports</span></a></li><li class="devsite-nav-item"><a href="/docs/crashlytics/test-implementation" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/crashlytics/test-implementation" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/crashlytics/test-implementation" ><span class="devsite-nav-text" tooltip>Test your implementation</span></a></li><li class="devsite-nav-item"><a href="/docs/crashlytics/get-deobfuscated-reports" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/crashlytics/get-deobfuscated-reports" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/crashlytics/get-deobfuscated-reports" ><span class="devsite-nav-text" tooltip>Get readable crash reports</span></a></li><li class="devsite-nav-item"><a href="/docs/crashlytics/customize-crash-reports" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/crashlytics/customize-crash-reports" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/crashlytics/customize-crash-reports" ><span class="devsite-nav-text" tooltip>Customize crash reports</span></a></li><li class="devsite-nav-item devsite-nav-new"><a href="/docs/crashlytics/crash-free-metrics" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/crashlytics/crash-free-metrics" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/crashlytics/crash-free-metrics" ><span class="devsite-nav-text" tooltip>Understand crash-free metrics</span><span class="devsite-nav-icon material-icons" data-icon="new" data-title="New!" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/docs/crashlytics/integrate-with-google-play" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/crashlytics/integrate-with-google-play" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/crashlytics/integrate-with-google-play" ><span class="devsite-nav-text" tooltip>Filter events by Play track</span></a></li><li class="devsite-nav-item"><a href="/docs/crashlytics/debug-anr-errors" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/crashlytics/debug-anr-errors" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/crashlytics/debug-anr-errors" ><span class="devsite-nav-text" tooltip>Debug ANR errors in Android app</span></a></li><li class="devsite-nav-item devsite-nav-new"><a href="/docs/release/release-monitoring" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/release/release-monitoring" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/release/release-monitoring" ><span class="devsite-nav-text" tooltip>Monitor your latest release</span><span class="devsite-nav-icon material-icons" data-icon="new" data-title="New!" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/docs/crashlytics/velocity-alerts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/crashlytics/velocity-alerts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/crashlytics/velocity-alerts" ><span class="devsite-nav-text" tooltip>Customize velocity alerts</span></a></li><li class="devsite-nav-item devsite-nav-new"><a href="/docs/crashlytics/ai-assistance" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/crashlytics/ai-assistance" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/crashlytics/ai-assistance" ><span class="devsite-nav-text" tooltip>Get AI assistance</span><span class="devsite-nav-icon material-icons" data-icon="new" data-title="New!" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/docs/crashlytics/bigquery-export" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/crashlytics/bigquery-export" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/crashlytics/bigquery-export" ><span class="devsite-nav-text" tooltip>Export data to BigQuery</span></a></li><li class="devsite-nav-item devsite-nav-new"><a href="/docs/crashlytics/upgrade-to-crashlytics-gradle-plugin-v3" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/crashlytics/upgrade-to-crashlytics-gradle-plugin-v3" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/crashlytics/upgrade-to-crashlytics-gradle-plugin-v3" ><span class="devsite-nav-text" tooltip>Upgrade to Gradle plugin v3</span><span class="devsite-nav-icon material-icons" data-icon="new" data-title="New!" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/docs/crashlytics/troubleshooting" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/crashlytics/troubleshooting" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/crashlytics/troubleshooting" ><span class="devsite-nav-text" tooltip>Troubleshooting & FAQ for setup</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Performance Monitoring</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/perf-mon" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/perf-mon" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/perf-mon" ><span class="devsite-nav-text" tooltip>Introduction</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Get started</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/perf-mon/get-started-ios" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/perf-mon/get-started-ios" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/perf-mon/get-started-ios" ><span class="devsite-nav-text" tooltip>iOS+</span></a></li><li class="devsite-nav-item"><a href="/docs/perf-mon/get-started-android" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/perf-mon/get-started-android" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/perf-mon/get-started-android" ><span class="devsite-nav-text" tooltip>Android</span></a></li><li class="devsite-nav-item devsite-nav-beta"><a href="/docs/perf-mon/get-started-web" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/perf-mon/get-started-web" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/perf-mon/get-started-web" ><span class="devsite-nav-text" tooltip>Web</span><span class="devsite-nav-icon material-icons" data-icon="beta" data-title="Beta" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/docs/perf-mon/flutter/get-started" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/perf-mon/flutter/get-started" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/perf-mon/flutter/get-started" ><span class="devsite-nav-text" tooltip>Flutter</span></a></li></ul></div></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>Learn about automatically collected data</span> </div></li><li class="devsite-nav-item"><a href="/docs/perf-mon/app-start-foreground-background-traces" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/perf-mon/app-start-foreground-background-traces" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/perf-mon/app-start-foreground-background-traces" ><span class="devsite-nav-text" tooltip>App start, foreground, background (iOS+ & Android)</span></a></li><li class="devsite-nav-item"><a href="/docs/perf-mon/screen-traces" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/perf-mon/screen-traces" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/perf-mon/screen-traces" ><span class="devsite-nav-text" tooltip>Screen rendering (iOS+ & Android)</span></a></li><li class="devsite-nav-item devsite-nav-beta"><a href="/docs/perf-mon/page-load-traces" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/perf-mon/page-load-traces" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/perf-mon/page-load-traces" ><span class="devsite-nav-text" tooltip>Page loading (web)</span><span class="devsite-nav-icon material-icons" data-icon="beta" data-title="Beta" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/docs/perf-mon/network-traces" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/perf-mon/network-traces" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/perf-mon/network-traces" ><span class="devsite-nav-text" tooltip>HTTP/S network requests</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>Customize data collection and aggregation</span> </div></li><li class="devsite-nav-item"><a href="/docs/perf-mon/custom-code-traces" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/perf-mon/custom-code-traces" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/perf-mon/custom-code-traces" ><span class="devsite-nav-text" tooltip>Add monitoring for specific code</span></a></li><li class="devsite-nav-item"><a href="/docs/perf-mon/custom-network-traces" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/perf-mon/custom-network-traces" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/perf-mon/custom-network-traces" ><span class="devsite-nav-text" tooltip>Add monitoring for specific network requests</span></a></li><li class="devsite-nav-item"><a href="/docs/perf-mon/custom-url-patterns" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/perf-mon/custom-url-patterns" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/perf-mon/custom-url-patterns" ><span class="devsite-nav-text" tooltip>Customize network request data aggregation</span></a></li><li class="devsite-nav-item"><a href="/docs/perf-mon/disable-sdk" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/perf-mon/disable-sdk" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/perf-mon/disable-sdk" ><span class="devsite-nav-text" tooltip>Disable Performance Monitoring</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>Track, view, and filter data</span> </div></li><li class="devsite-nav-item"><a href="/docs/perf-mon/console" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/perf-mon/console" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/perf-mon/console" ><span class="devsite-nav-text" tooltip>Overview of the console</span></a></li><li class="devsite-nav-item"><a href="/docs/perf-mon/attributes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/perf-mon/attributes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/perf-mon/attributes" ><span class="devsite-nav-text" tooltip>Filter data using attributes</span></a></li><li class="devsite-nav-item"><a href="/docs/perf-mon/alerts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/perf-mon/alerts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/perf-mon/alerts" ><span class="devsite-nav-text" tooltip>Set up alerts for performance issues</span></a></li><li class="devsite-nav-item"><a href="/docs/perf-mon/bigquery-export" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/perf-mon/bigquery-export" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/perf-mon/bigquery-export" ><span class="devsite-nav-text" tooltip>Export data to BigQuery</span></a></li><li class="devsite-nav-item devsite-nav-break"></li><li class="devsite-nav-item"><a href="/docs/perf-mon/troubleshooting" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/perf-mon/troubleshooting" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/perf-mon/troubleshooting" ><span class="devsite-nav-text" tooltip>Troubleshooting & FAQ</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-divider devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Iterate</span> </div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Remote Config</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/remote-config" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/remote-config" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/remote-config" ><span class="devsite-nav-text" tooltip>Introduction</span></a></li><li class="devsite-nav-item"><a href="/docs/remote-config/get-started" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/remote-config/get-started" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/remote-config/get-started" ><span class="devsite-nav-text" tooltip>Get started</span></a></li><li class="devsite-nav-item"><a href="/docs/remote-config/real-time" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/remote-config/real-time" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/remote-config/real-time" ><span class="devsite-nav-text" tooltip>Understand real-time Remote Config</span></a></li><li class="devsite-nav-item"><a href="/docs/remote-config/use-cases" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/remote-config/use-cases" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/remote-config/use-cases" ><span class="devsite-nav-text" tooltip>Explore use cases</span></a></li><li class="devsite-nav-item"><a href="/docs/remote-config/parameters" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/remote-config/parameters" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/remote-config/parameters" ><span class="devsite-nav-text" tooltip>Understand parameters and conditions</span></a></li><li class="devsite-nav-item"><a href="/docs/remote-config/templates" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/remote-config/templates" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/remote-config/templates" ><span class="devsite-nav-text" tooltip>Manage Remote Config templates</span></a></li><li class="devsite-nav-item"><a href="/docs/remote-config/automate-rc" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/remote-config/automate-rc" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/remote-config/automate-rc" ><span class="devsite-nav-text" tooltip>Modify Remote Config programmatically</span></a></li><li class="devsite-nav-item"><a href="/docs/remote-config/loading" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/remote-config/loading" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/remote-config/loading" ><span class="devsite-nav-text" tooltip>Explore loading strategies</span></a></li><li class="devsite-nav-item"><a href="/docs/remote-config/config-analytics" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/remote-config/config-analytics" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/remote-config/config-analytics" ><span class="devsite-nav-text" tooltip>Use Remote Config with Analytics</span></a></li><li class="devsite-nav-item"><a href="/docs/remote-config/extend-with-functions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/remote-config/extend-with-functions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/remote-config/extend-with-functions" ><span class="devsite-nav-text" tooltip>Extend with Cloud Functions</span></a></li><li class="devsite-nav-item"><a href="/docs/remote-config/case-studies" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/remote-config/case-studies" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/remote-config/case-studies" ><span class="devsite-nav-text" tooltip>Case studies</span></a></li><li class="devsite-nav-item devsite-nav-expandable devsite-nav-preview"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Rollouts</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/remote-config/rollouts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/remote-config/rollouts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/remote-config/rollouts" ><span class="devsite-nav-text" tooltip>Introduction</span></a></li><li class="devsite-nav-item"><a href="/docs/remote-config/rollouts/get-started" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/remote-config/rollouts/get-started" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/remote-config/rollouts/get-started" ><span class="devsite-nav-text" tooltip>Get started</span></a></li><li class="devsite-nav-item"><a href="/docs/remote-config/rollouts/about" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/remote-config/rollouts/about" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/remote-config/rollouts/about" ><span class="devsite-nav-text" tooltip>About Remote Config rollouts</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable devsite-nav-beta"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Personalization</span><span class="devsite-nav-icon material-icons" data-icon="beta" data-title="Beta" aria-hidden="true"></span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/remote-config/personalization" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/remote-config/personalization" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/remote-config/personalization" ><span class="devsite-nav-text" tooltip>Introduction</span></a></li><li class="devsite-nav-item"><a href="/docs/remote-config/personalization/get-started" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/remote-config/personalization/get-started" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/remote-config/personalization/get-started" ><span class="devsite-nav-text" tooltip>Get started</span></a></li><li class="devsite-nav-item"><a href="/docs/remote-config/personalization/about" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/remote-config/personalization/about" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/remote-config/personalization/about" ><span class="devsite-nav-text" tooltip>About Remote Config personalization</span></a></li><li class="devsite-nav-item"><a href="/docs/remote-config/personalization/use-cases" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/remote-config/personalization/use-cases" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/remote-config/personalization/use-cases" ><span class="devsite-nav-text" tooltip>Explore use cases</span></a></li><li class="devsite-nav-item"><a href="/docs/remote-config/personalization/bigquery" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/remote-config/personalization/bigquery" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/remote-config/personalization/bigquery" ><span class="devsite-nav-text" tooltip>Export to BigQuery</span></a></li><li class="devsite-nav-item"><a href="/docs/remote-config/personalization/csindex" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/remote-config/personalization/csindex" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/remote-config/personalization/csindex" ><span class="devsite-nav-text" tooltip>Case studies</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable devsite-nav-preview"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Server environments</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/remote-config/server" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/remote-config/server" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/remote-config/server" ><span class="devsite-nav-text" tooltip>Use Remote Config in server environments</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Solutions</span> </div></li><li class="devsite-nav-item"><a href="/docs/remote-config/solution-server" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/remote-config/solution-server" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/remote-config/solution-server" ><span class="devsite-nav-text" tooltip>Use server-side Remote Config with Cloud Functions and Vertex AI</span></a></li><li class="devsite-nav-item devsite-nav-new"><a href="/docs/remote-config/solutions/vertexai" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/remote-config/solutions/vertexai" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/remote-config/solutions/vertexai" ><span class="devsite-nav-text" tooltip>Dynamically update your Vertex AI in Firebase app with Remote Config</span><span class="devsite-nav-icon material-icons" data-icon="new" data-title="New!" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>API reference</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/reference/remote-config/rest" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/reference/remote-config/rest" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/reference/remote-config/rest" ><span class="devsite-nav-text" tooltip>REST API reference</span></a></li><li class="devsite-nav-item"><a href="/docs/remote-config/condition-reference" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/remote-config/condition-reference" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/remote-config/condition-reference" ><span class="devsite-nav-text" tooltip>Conditional expression reference</span></a></li><li class="devsite-nav-item"><a href="/docs/reference/android/com/google/firebase/remoteconfig/package-summary" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/reference/android/com/google/firebase/remoteconfig/package-summary" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/reference/android/com/google/firebase/remoteconfig/package-summary" ><span class="devsite-nav-text" tooltip>Android SDK reference</span></a></li><li class="devsite-nav-item"><a href="/docs/reference/swift/firebaseremoteconfig/api/reference/Classes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/reference/swift/firebaseremoteconfig/api/reference/Classes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/reference/swift/firebaseremoteconfig/api/reference/Classes" ><span class="devsite-nav-text" tooltip>Swift SDK reference</span></a></li><li class="devsite-nav-item"><a href="/docs/reference/ios/firebasecore/api/reference/Classes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/reference/ios/firebasecore/api/reference/Classes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/reference/ios/firebasecore/api/reference/Classes" ><span class="devsite-nav-text" tooltip>Obj-C SDK reference</span></a></li><li class="devsite-nav-item devsite-nav-external"><a href="https://pub.dev/documentation/firebase_remote_config/latest/" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: https://pub.dev/documentation/firebase_remote_config/latest/" track-type="bookNav" track-name="click" track-metadata-eventdetail="https://pub.dev/documentation/firebase_remote_config/latest/" ><span class="devsite-nav-text" tooltip>Flutter reference</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"><a href="/docs/reference/unity/namespace/firebase/remote-config" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/reference/unity/namespace/firebase/remote-config" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/reference/unity/namespace/firebase/remote-config" ><span class="devsite-nav-text" tooltip>Unity reference</span></a></li><li class="devsite-nav-item"><a href="/docs/reference/cpp/namespace/firebase/remote-config" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/reference/cpp/namespace/firebase/remote-config" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/reference/cpp/namespace/firebase/remote-config" ><span class="devsite-nav-text" tooltip>C++ reference</span></a></li><li class="devsite-nav-item"><a href="/docs/reference/js/remote-config" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/reference/js/remote-config" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/reference/js/remote-config" ><span class="devsite-nav-text" tooltip>Web modular reference</span></a></li><li class="devsite-nav-item"><a href="/docs/reference/js/v8/firebase.remoteconfig" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/reference/js/v8/firebase.remoteconfig" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/reference/js/v8/firebase.remoteconfig" ><span class="devsite-nav-text" tooltip>Web namespaced reference</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion devsite-nav-beta"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>A/B Testing</span><span class="devsite-nav-icon material-icons" data-icon="beta" data-title="Beta" aria-hidden="true"></span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/ab-testing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/ab-testing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/ab-testing" ><span class="devsite-nav-text" tooltip>Introduction</span></a></li><li class="devsite-nav-item"><a href="/docs/ab-testing/ab-concepts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/ab-testing/ab-concepts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/ab-testing/ab-concepts" ><span class="devsite-nav-text" tooltip>About Firebase A/B tests</span></a></li><li class="devsite-nav-item"><a href="/docs/ab-testing/abtest-config" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/ab-testing/abtest-config" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/ab-testing/abtest-config" ><span class="devsite-nav-text" tooltip>Create Remote Config Experiments with A/B Testing</span></a></li><li class="devsite-nav-item"><a href="/docs/ab-testing/abtest-with-console" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/ab-testing/abtest-with-console" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/ab-testing/abtest-with-console" ><span class="devsite-nav-text" tooltip>Create Messaging Experiments with A/B Testing</span></a></li><li class="devsite-nav-item"><a href="/docs/ab-testing/abtest-inappmessaging" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/ab-testing/abtest-inappmessaging" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/ab-testing/abtest-inappmessaging" ><span class="devsite-nav-text" tooltip>Create In-App Messaging Experiments with A/B Testing</span></a></li><li class="devsite-nav-item devsite-nav-new"><a href="/docs/ab-testing/bigquery" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/ab-testing/bigquery" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/ab-testing/bigquery" ><span class="devsite-nav-text" tooltip>Export to BigQuery</span><span class="devsite-nav-icon material-icons" data-icon="new" data-title="New!" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/docs/ab-testing/case-studies" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/ab-testing/case-studies" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/ab-testing/case-studies" ><span class="devsite-nav-text" tooltip>Case studies</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-divider devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Engage</span> </div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Analytics</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/analytics" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/analytics" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/analytics" ><span class="devsite-nav-text" tooltip>Introduction</span></a></li><li class="devsite-nav-item"><a href="/docs/analytics/get-started" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/analytics/get-started" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/analytics/get-started" ><span class="devsite-nav-text" tooltip>Get started</span></a></li><li class="devsite-nav-item"><a href="/docs/analytics/reports" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/analytics/reports" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/analytics/reports" ><span class="devsite-nav-text" tooltip>Understand your reports</span></a></li><li class="devsite-nav-item"><a href="/docs/analytics/events" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/analytics/events" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/analytics/events" ><span class="devsite-nav-text" tooltip>Log events</span></a></li><li class="devsite-nav-item"><a href="/docs/analytics/user-properties" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/analytics/user-properties" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/analytics/user-properties" ><span class="devsite-nav-text" tooltip>Set user properties</span></a></li><li class="devsite-nav-item"><a href="/docs/analytics/debugview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/analytics/debugview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/analytics/debugview" ><span class="devsite-nav-text" tooltip>Debug events</span></a></li><li class="devsite-nav-item"><a href="/docs/analytics/screenviews" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/analytics/screenviews" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/analytics/screenviews" ><span class="devsite-nav-text" tooltip>Measure screenviews</span></a></li><li class="devsite-nav-item"><a href="/docs/analytics/userid" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/analytics/userid" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/analytics/userid" ><span class="devsite-nav-text" tooltip>Set a user ID</span></a></li><li class="devsite-nav-item"><a href="/docs/analytics/measure-ecommerce" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/analytics/measure-ecommerce" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/analytics/measure-ecommerce" ><span class="devsite-nav-text" tooltip>Measure ecommerce</span></a></li><li class="devsite-nav-item"><a href="/docs/analytics/measure-ad-revenue" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/analytics/measure-ad-revenue" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/analytics/measure-ad-revenue" ><span class="devsite-nav-text" tooltip>Measure ad revenue</span></a></li><li class="devsite-nav-item"><a href="/docs/analytics/measure-in-app-purchases" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/analytics/measure-in-app-purchases" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/analytics/measure-in-app-purchases" ><span class="devsite-nav-text" tooltip>Measure in-app purchases</span></a></li><li class="devsite-nav-item"><a href="/docs/analytics/webview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/analytics/webview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/analytics/webview" ><span class="devsite-nav-text" tooltip>Use in a WebView</span></a></li><li class="devsite-nav-item"><a href="/docs/analytics/extend-with-functions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/analytics/extend-with-functions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/analytics/extend-with-functions" ><span class="devsite-nav-text" tooltip>Extend with Cloud Functions</span></a></li><li class="devsite-nav-item"><a href="/docs/analytics/configure-data-collection" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/analytics/configure-data-collection" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/analytics/configure-data-collection" ><span class="devsite-nav-text" tooltip>Configure data collection and usage</span></a></li><li class="devsite-nav-item"><a href="/docs/analytics/errors" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/analytics/errors" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/analytics/errors" ><span class="devsite-nav-text" tooltip>Error codes</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>C++</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/analytics/cpp/start" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/analytics/cpp/start" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/analytics/cpp/start" ><span class="devsite-nav-text" tooltip>Get started</span></a></li><li class="devsite-nav-item"><a href="/docs/analytics/cpp/events" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/analytics/cpp/events" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/analytics/cpp/events" ><span class="devsite-nav-text" tooltip>Log events</span></a></li><li class="devsite-nav-item"><a href="/docs/analytics/cpp/properties" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/analytics/cpp/properties" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/analytics/cpp/properties" ><span class="devsite-nav-text" tooltip>Set user properties</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Unity</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/analytics/unity/start" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/analytics/unity/start" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/analytics/unity/start" ><span class="devsite-nav-text" tooltip>Get started</span></a></li><li class="devsite-nav-item"><a href="/docs/analytics/unity/events" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/analytics/unity/events" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/analytics/unity/events" ><span class="devsite-nav-text" tooltip>Log events</span></a></li><li class="devsite-nav-item"><a href="/docs/analytics/unity/properties" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/analytics/unity/properties" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/analytics/unity/properties" ><span class="devsite-nav-text" tooltip>Set user properties</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Cloud Messaging</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/cloud-messaging" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging" ><span class="devsite-nav-text" tooltip>Introduction</span></a></li><li class="devsite-nav-item devsite-nav-new"><a href="/docs/cloud-messaging/migrate-v1" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/migrate-v1" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/migrate-v1" ><span class="devsite-nav-text" tooltip>Migrate to the HTTP v1 API</span><span class="devsite-nav-icon material-icons" data-icon="new" data-title="New!" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Concepts and best practices</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/cloud-messaging/fcm-architecture" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/fcm-architecture" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/fcm-architecture" ><span class="devsite-nav-text" tooltip>FCM Architectural Overview</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/concept-options" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/concept-options" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/concept-options" ><span class="devsite-nav-text" tooltip>About FCM messages</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/understand-delivery" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/understand-delivery" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/understand-delivery" ><span class="devsite-nav-text" tooltip>Understanding message delivery</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/scale-fcm" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/scale-fcm" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/scale-fcm" ><span class="devsite-nav-text" tooltip>Send messages at scale</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/manage-tokens" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/manage-tokens" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/manage-tokens" ><span class="devsite-nav-text" tooltip>Manage FCM registration tokens</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/ai-insights" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/ai-insights" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/ai-insights" ><span class="devsite-nav-text" tooltip>Get AI insights for messaging campaigns</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>iOS+</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/cloud-messaging/ios/client" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/ios/client" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/ios/client" ><span class="devsite-nav-text" tooltip>Set up an Apple platforms client</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/ios/first-message" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/ios/first-message" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/ios/first-message" ><span class="devsite-nav-text" tooltip>Send a test message</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/ios/send-multiple" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/ios/send-multiple" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/ios/send-multiple" ><span class="devsite-nav-text" tooltip>Send messages to multiple devices</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/ios/send-image" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/ios/send-image" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/ios/send-image" ><span class="devsite-nav-text" tooltip>Send an image in the notification payload</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/ios/receive" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/ios/receive" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/ios/receive" ><span class="devsite-nav-text" tooltip>Receive messages</span></a></li><li class="devsite-nav-item devsite-nav-new"><a href="/docs/cloud-messaging/ios/live-activity" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/ios/live-activity" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/ios/live-activity" ><span class="devsite-nav-text" tooltip>Get started with Live Activity</span><span class="devsite-nav-icon material-icons" data-icon="new" data-title="New!" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/ios/topic-messaging" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/ios/topic-messaging" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/ios/topic-messaging" ><span class="devsite-nav-text" tooltip>Send messages to topics</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/ios/device-group" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/ios/device-group" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/ios/device-group" ><span class="devsite-nav-text" tooltip>Send to device groups</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/ios/send-with-console" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/ios/send-with-console" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/ios/send-with-console" ><span class="devsite-nav-text" tooltip>Send messages with the Firebase Console</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Android</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/cloud-messaging/android/client" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/android/client" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/android/client" ><span class="devsite-nav-text" tooltip>Set up an Android client</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/android/first-message" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/android/first-message" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/android/first-message" ><span class="devsite-nav-text" tooltip>Send a test message</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/android/send-multiple" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/android/send-multiple" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/android/send-multiple" ><span class="devsite-nav-text" tooltip>Send messages to multiple devices</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/android/send-image" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/android/send-image" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/android/send-image" ><span class="devsite-nav-text" tooltip>Send an image in the notification payload</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/android/receive" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/android/receive" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/android/receive" ><span class="devsite-nav-text" tooltip>Receive messages</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/android/message-priority" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/android/message-priority" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/android/message-priority" ><span class="devsite-nav-text" tooltip>Set and manage message priority</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/android/topic-messaging" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/android/topic-messaging" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/android/topic-messaging" ><span class="devsite-nav-text" tooltip>Send messages to topics</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/android/device-group" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/android/device-group" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/android/device-group" ><span class="devsite-nav-text" tooltip>Send to device groups</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/android/upstream" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/android/upstream" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/android/upstream" ><span class="devsite-nav-text" tooltip>Send upstream messages</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/android/send-with-console" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/android/send-with-console" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/android/send-with-console" ><span class="devsite-nav-text" tooltip>Send messages with the Firebase Console</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Flutter</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/cloud-messaging/flutter/client" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/flutter/client" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/flutter/client" ><span class="devsite-nav-text" tooltip>Set up a Flutter client</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/flutter/first-message" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/flutter/first-message" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/flutter/first-message" ><span class="devsite-nav-text" tooltip>Send a test message</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/flutter/receive" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/flutter/receive" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/flutter/receive" ><span class="devsite-nav-text" tooltip>Receive messages</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/flutter/topic-messaging" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/flutter/topic-messaging" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/flutter/topic-messaging" ><span class="devsite-nav-text" tooltip>Subscribe to topics</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>C++</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/cloud-messaging/cpp/client" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/cpp/client" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/cpp/client" ><span class="devsite-nav-text" tooltip>Set up a C++ client</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/cpp/receive" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/cpp/receive" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/cpp/receive" ><span class="devsite-nav-text" tooltip>Receive messages</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/cpp/topic-messaging" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/cpp/topic-messaging" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/cpp/topic-messaging" ><span class="devsite-nav-text" tooltip>Send messages to topics</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/cpp/device-group" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/cpp/device-group" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/cpp/device-group" ><span class="devsite-nav-text" tooltip>Send to device groups</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/cpp/send-with-console" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/cpp/send-with-console" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/cpp/send-with-console" ><span class="devsite-nav-text" tooltip>Send messages with the Firebase Console</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Unity</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/cloud-messaging/unity/client" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/unity/client" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/unity/client" ><span class="devsite-nav-text" tooltip>Set up a Unity client</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/unity/receive" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/unity/receive" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/unity/receive" ><span class="devsite-nav-text" tooltip>Receive messages</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/unity/topic-messaging" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/unity/topic-messaging" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/unity/topic-messaging" ><span class="devsite-nav-text" tooltip>Send messages to topics</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/unity/device-group" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/unity/device-group" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/unity/device-group" ><span class="devsite-nav-text" tooltip>Send to device groups</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/unity/upstream" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/unity/upstream" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/unity/upstream" ><span class="devsite-nav-text" tooltip>Send upstream messages</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/unity/send-with-console" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/unity/send-with-console" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/unity/send-with-console" ><span class="devsite-nav-text" tooltip>Send messages with the Firebase Console</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Web (JavaScript)</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/cloud-messaging/js/client" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/js/client" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/js/client" ><span class="devsite-nav-text" tooltip>Set up a JavaScript client</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/js/first-message" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/js/first-message" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/js/first-message" ><span class="devsite-nav-text" tooltip>Send a test message</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/js/send-multiple" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/js/send-multiple" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/js/send-multiple" ><span class="devsite-nav-text" tooltip>Send messages to multiple devices</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/js/receive" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/js/receive" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/js/receive" ><span class="devsite-nav-text" tooltip>Receive messages</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/js/topic-messaging" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/js/topic-messaging" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/js/topic-messaging" ><span class="devsite-nav-text" tooltip>Send messages to topics</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/js/device-group" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/js/device-group" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/js/device-group" ><span class="devsite-nav-text" tooltip>Send to device groups</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/js/send-with-console" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/js/send-with-console" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/js/send-with-console" ><span class="devsite-nav-text" tooltip>Send messages with the Firebase Console</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Server environments</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/cloud-messaging/server" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/server" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/server" ><span class="devsite-nav-text" tooltip>Your server environment and FCM</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/migrate-v1" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/migrate-v1" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/migrate-v1" ><span class="devsite-nav-text" tooltip>Migrate to the HTTP v1 API</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/auth-server" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/auth-server" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/auth-server" ><span class="devsite-nav-text" tooltip>Authorize send requests</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/send-message" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/send-message" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/send-message" ><span class="devsite-nav-text" tooltip>Build send requests</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/receive-upstream" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/receive-upstream" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/receive-upstream" ><span class="devsite-nav-text" tooltip>Receive upstream messages</span></a></li><li class="devsite-nav-item"><a href="/docs/cloud-messaging/manage-topics" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/cloud-messaging/manage-topics" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/cloud-messaging/manage-topics" ><span class="devsite-nav-text" tooltip>Manage topics from the server</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion devsite-nav-beta"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>In-App Messaging</span><span class="devsite-nav-icon material-icons" data-icon="beta" data-title="Beta" aria-hidden="true"></span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/in-app-messaging" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/in-app-messaging" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/in-app-messaging" ><span class="devsite-nav-text" tooltip>Introduction</span></a></li><li class="devsite-nav-item"><a href="/docs/in-app-messaging/get-started" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/in-app-messaging/get-started" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/in-app-messaging/get-started" ><span class="devsite-nav-text" tooltip>Get started</span></a></li><li class="devsite-nav-item"><a href="/docs/in-app-messaging/explore-use-cases" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/in-app-messaging/explore-use-cases" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/in-app-messaging/explore-use-cases" ><span class="devsite-nav-text" tooltip>Explore use cases</span></a></li><li class="devsite-nav-item"><a href="/docs/in-app-messaging/compose-campaign" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/in-app-messaging/compose-campaign" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/in-app-messaging/compose-campaign" ><span class="devsite-nav-text" tooltip>Compose a campaign</span></a></li><li class="devsite-nav-item"><a href="/docs/in-app-messaging/modify-message-behavior" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/in-app-messaging/modify-message-behavior" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/in-app-messaging/modify-message-behavior" ><span class="devsite-nav-text" tooltip>Modify message behavior</span></a></li><li class="devsite-nav-item"><a href="/docs/in-app-messaging/customize-messages" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/in-app-messaging/customize-messages" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/in-app-messaging/customize-messages" ><span class="devsite-nav-text" tooltip>Customize messages</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Dynamic Links</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/dynamic-links" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/dynamic-links" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/dynamic-links" ><span class="devsite-nav-text" tooltip>Introduction</span></a></li><li class="devsite-nav-item"><a href="/docs/dynamic-links/operating-system-integrations" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/dynamic-links/operating-system-integrations" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/dynamic-links/operating-system-integrations" ><span class="devsite-nav-text" tooltip>Operating System Integrations</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Create Dynamic Links</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/dynamic-links/create-links" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/dynamic-links/create-links" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/dynamic-links/create-links" ><span class="devsite-nav-text" tooltip>Introduction</span></a></li><li class="devsite-nav-item"><a href="/docs/dynamic-links/ios/create" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/dynamic-links/ios/create" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/dynamic-links/ios/create" ><span class="devsite-nav-text" tooltip>iOS</span></a></li><li class="devsite-nav-item"><a href="/docs/dynamic-links/android/create" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/dynamic-links/android/create" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/dynamic-links/android/create" ><span class="devsite-nav-text" tooltip>Android</span></a></li><li class="devsite-nav-item"><a href="/docs/dynamic-links/flutter/create" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/dynamic-links/flutter/create" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/dynamic-links/flutter/create" ><span class="devsite-nav-text" tooltip>Flutter</span></a></li><li class="devsite-nav-item"><a href="/docs/dynamic-links/cpp/create" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/dynamic-links/cpp/create" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/dynamic-links/cpp/create" ><span class="devsite-nav-text" tooltip>C++</span></a></li><li class="devsite-nav-item"><a href="/docs/dynamic-links/unity/create" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/dynamic-links/unity/create" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/dynamic-links/unity/create" ><span class="devsite-nav-text" tooltip>Unity</span></a></li><li class="devsite-nav-item"><a href="/docs/dynamic-links/rest" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/dynamic-links/rest" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/dynamic-links/rest" ><span class="devsite-nav-text" tooltip>REST</span></a></li><li class="devsite-nav-item"><a href="/docs/dynamic-links/create-manually" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/dynamic-links/create-manually" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/dynamic-links/create-manually" ><span class="devsite-nav-text" tooltip>Manual URL Construction</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Receive Dynamic Links</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/dynamic-links/ios/receive" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/dynamic-links/ios/receive" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/dynamic-links/ios/receive" ><span class="devsite-nav-text" tooltip>iOS</span></a></li><li class="devsite-nav-item"><a href="/docs/dynamic-links/android/receive" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/dynamic-links/android/receive" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/dynamic-links/android/receive" ><span class="devsite-nav-text" tooltip>Android</span></a></li><li class="devsite-nav-item"><a href="/docs/dynamic-links/flutter/receive" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/dynamic-links/flutter/receive" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/dynamic-links/flutter/receive" ><span class="devsite-nav-text" tooltip>Flutter</span></a></li><li class="devsite-nav-item"><a href="/docs/dynamic-links/cpp/receive" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/dynamic-links/cpp/receive" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/dynamic-links/cpp/receive" ><span class="devsite-nav-text" tooltip>C++</span></a></li><li class="devsite-nav-item"><a href="/docs/dynamic-links/unity/receive" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/dynamic-links/unity/receive" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/dynamic-links/unity/receive" ><span class="devsite-nav-text" tooltip>Unity</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/docs/dynamic-links/custom-domains" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/dynamic-links/custom-domains" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/dynamic-links/custom-domains" ><span class="devsite-nav-text" tooltip>Use a Custom Domain</span></a></li><li class="devsite-nav-item"><a href="/docs/dynamic-links/analytics" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/dynamic-links/analytics" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/dynamic-links/analytics" ><span class="devsite-nav-text" tooltip>View Analytics Data</span></a></li><li class="devsite-nav-item"><a href="/docs/dynamic-links/debug" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/dynamic-links/debug" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/dynamic-links/debug" ><span class="devsite-nav-text" tooltip>Debug Dynamic Links</span></a></li><li class="devsite-nav-item"><a href="/docs/dynamic-links/link-previews" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/dynamic-links/link-previews" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/dynamic-links/link-previews" ><span class="devsite-nav-text" tooltip>Link Previews & Social Metadata</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Google AdMob</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/admob" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/admob" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/admob" ><span class="devsite-nav-text" tooltip>Introduction</span></a></li><li class="devsite-nav-item"><a href="/docs/admob/ios/quick-start" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/admob/ios/quick-start" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/admob/ios/quick-start" ><span class="devsite-nav-text" tooltip>Get started for iOS</span></a></li><li class="devsite-nav-item"><a href="/docs/admob/android/quick-start" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/admob/android/quick-start" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/admob/android/quick-start" ><span class="devsite-nav-text" tooltip>Get started for Android</span></a></li><li class="devsite-nav-item"><a href="/docs/admob/analytics-and-firebase" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/admob/analytics-and-firebase" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/admob/analytics-and-firebase" ><span class="devsite-nav-text" tooltip>Use Analytics and Firebase with AdMob apps</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>Use AdMob in a game</span> </div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>C++</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/admob/cpp/quick-start" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/admob/cpp/quick-start" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/admob/cpp/quick-start" ><span class="devsite-nav-text" tooltip>Get started</span></a></li><li class="devsite-nav-item"><a href="/docs/admob/cpp/admob-migration" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/admob/cpp/admob-migration" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/admob/cpp/admob-migration" ><span class="devsite-nav-text" tooltip>AdMob Migration Guide</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Unity</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-external"><a href="//developers.google.com/admob/unity/start" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: //developers.google.com/admob/unity/start" track-type="bookNav" track-name="click" track-metadata-eventdetail="//developers.google.com/admob/unity/start" ><span class="devsite-nav-text" tooltip>Get started</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Solutions</span> </div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Test adoption of new ad formats</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/tutorials/test-ad-format-adoption/solution-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/tutorials/test-ad-format-adoption/solution-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/tutorials/test-ad-format-adoption/solution-overview" ><span class="devsite-nav-text" tooltip>Solution overview</span></a></li><li class="devsite-nav-item"><a href="/docs/tutorials/test-ad-format-adoption" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/tutorials/test-ad-format-adoption" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/tutorials/test-ad-format-adoption" alt-paths=" /docs/tutorials/test-ad-format-adoption/step-1 /docs/tutorials/test-ad-format-adoption/step-2 /docs/tutorials/test-ad-format-adoption/step-3 /docs/tutorials/test-ad-format-adoption/step-4 /docs/tutorials/test-ad-format-adoption/step-5 "><span class="devsite-nav-text" tooltip>Solution tutorial</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Optimize ad frequency</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/tutorials/optimize-ad-frequency/solution-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/tutorials/optimize-ad-frequency/solution-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/tutorials/optimize-ad-frequency/solution-overview" ><span class="devsite-nav-text" tooltip>Solution overview</span></a></li><li class="devsite-nav-item"><a href="/docs/tutorials/optimize-ad-frequency" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/tutorials/optimize-ad-frequency" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/tutorials/optimize-ad-frequency" alt-paths=" /docs/tutorials/optimize-ad-frequency/step-1 /docs/tutorials/optimize-ad-frequency/step-2 /docs/tutorials/optimize-ad-frequency/step-3 /docs/tutorials/optimize-ad-frequency/step-4 /docs/tutorials/optimize-ad-frequency/step-5 "><span class="devsite-nav-text" tooltip>Solution tutorial</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Optimize hybrid monetization</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/tutorials/optimize-hybrid-monetization" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/tutorials/optimize-hybrid-monetization" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/tutorials/optimize-hybrid-monetization" alt-paths=" /docs/tutorials/optimize-hybrid-monetization/step-1 /docs/tutorials/optimize-hybrid-monetization/step-2 /docs/tutorials/optimize-hybrid-monetization/step-3 "><span class="devsite-nav-text" tooltip>Solution tutorial</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Google Ads</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/ads" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/ads" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/ads" ><span class="devsite-nav-text" tooltip>Introduction</span></a></li><li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Solutions</span> </div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Measure iOS Ads conversions</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/docs/tutorials/ads-ios-on-device-measurement" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/tutorials/ads-ios-on-device-measurement" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/tutorials/ads-ios-on-device-measurement" alt-paths=" /docs/tutorials/ads-ios-on-device-measurement/step-1 /docs/tutorials/ads-ios-on-device-measurement/step-2 /docs/tutorials/ads-ios-on-device-measurement/step-3 /docs/tutorials/ads-ios-on-device-measurement/step-4 "><span class="devsite-nav-text" tooltip>Solution tutorial</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-accordion"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>App Indexing</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-deprecated"><a href="/docs/app-indexing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /docs/app-indexing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/docs/app-indexing" ><span class="devsite-nav-text" tooltip>Overview</span><span class="devsite-nav-icon material-icons" data-icon="deprecated" data-title="Deprecated" aria-hidden="true"></span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-divider devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Related products</span> </div></li> <li class="devsite-nav-item"><a href="//firebase.google.com/docs/auth/" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: //firebase.google.com/docs/auth/" track-type="bookNav" track-name="click" track-metadata-eventdetail="//firebase.google.com/docs/auth/" ><span class="devsite-nav-text" tooltip>Authentication</span></a></li> <li class="devsite-nav-item"><a href="//firebase.google.com/docs/extensions/" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: //firebase.google.com/docs/extensions/" track-type="bookNav" track-name="click" track-metadata-eventdetail="//firebase.google.com/docs/extensions/" ><span class="devsite-nav-text" tooltip>Extensions</span></a></li> </ul> <ul class="devsite-nav-list" menu="Build" 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 > Build </span> </span> </li> <li class="devsite-nav-item"> <a href="/products-build" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Go to Build" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Go to Build </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Build Products </span> </span> </li> <li class="devsite-nav-item"> <a href="/products/app-check" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: App Check" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > App Check </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/app-hosting" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: App Hosting" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > App Hosting </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/auth" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Authentication" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Authentication </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/functions" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Cloud Functions" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Cloud Functions </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/storage" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Cloud Storage" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Cloud Storage </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/data-connect" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Data Connect" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Data Connect </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/extensions" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Extensions" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Extensions </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/ml" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Firebase ML" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Firebase ML </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/firestore" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Firestore" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Firestore </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/genkit" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Genkit" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Genkit </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/hosting" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Hosting" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Hosting </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/realtime-database" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Realtime Database" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Realtime Database </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/vertex-ai-in-firebase" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Vertex AI in Firebase" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Vertex AI in Firebase </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/generative-ai" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Generative AI" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Generative AI </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Run" 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 > Run </span> </span> </li> <li class="devsite-nav-item"> <a href="/products-run" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Go to Run" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Go to Run </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Run Products </span> </span> </li> <li class="devsite-nav-item"> <a href="/products/ab-testing" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: A/B Testing" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > A/B Testing </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/app-distribution" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: App Distribution" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > App Distribution </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/cloud-messaging" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Cloud Messaging" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Cloud Messaging </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/crashlytics" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Crashlytics" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Crashlytics </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/analytics" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Analytics" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Analytics </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/in-app-messaging" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: In-App Messaging" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > In-App Messaging </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/performance" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Performance Monitoring" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Performance Monitoring </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/remote-config" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Remote Config" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Remote Config </span> </a> </li> <li class="devsite-nav-item"> <a href="/products/test-lab" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Test Lab" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Test Lab </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Docs" aria-label="Side menu" hidden> <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: Overview" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Overview </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/guides" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Fundamentals" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Fundamentals </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/build" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Build" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Build </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/run" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Run" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Run </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/reference" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Reference" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Reference </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/samples" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Samples" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Samples </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Community" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/community/learn" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Learn" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Learn </span> </a> </li> <li class="devsite-nav-item"> <a href="/community/events" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Events" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Events </span> </a> </li> <li class="devsite-nav-item"> <a href="/community/stories" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Stories" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Stories </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Fundamentals" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/docs/ios/setup" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Add Firebase - Apple platforms (iOS+)" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Add Firebase - Apple platforms (iOS+) </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/android/setup" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Add Firebase - Android" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Add Firebase - Android </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/web/setup" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Add Firebase - Web" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Add Firebase - Web </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/flutter/setup" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Add Firebase - Flutter" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Add Firebase - Flutter </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/cpp/setup" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Add Firebase - C++" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Add Firebase - C++ </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/unity/setup" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Add Firebase - Unity" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Add Firebase - Unity </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/admin/setup" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Add Firebase - Server environments" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Add Firebase - Server environments </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/projects/learn-more" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Manage Firebase projects" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Manage Firebase projects </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/libraries" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Supported platforms & frameworks" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Supported platforms & frameworks </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/emulator-suite" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Use Emulator Suite" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Use Emulator Suite </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/gemini-in-firebase" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: AI assistance with Gemini in Firebase" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > AI assistance with Gemini in Firebase </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Build" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/docs/emulator-suite" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Emulator Suite" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Emulator Suite </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/auth" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Authentication" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Authentication </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/app-check" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: App Check" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > App Check </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/data-connect" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Data Connect" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Data Connect </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/firestore" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Firestore" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Firestore </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/database" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Realtime Database" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Realtime Database </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/storage" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Storage" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Storage </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/rules" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Security Rules" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Security Rules </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/app-hosting" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: App Hosting" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > App Hosting </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/hosting" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Hosting" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Hosting </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/functions" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Cloud Functions" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Cloud Functions </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/extensions" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Extensions" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Extensions </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/vertex-ai" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Vertex AI in Firebase" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Vertex AI in Firebase </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/genkit" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Genkit" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Genkit </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/ml" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: ML" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > ML </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Run" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/docs/test-lab" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Test Lab" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Test Lab </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/app-distribution" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: App Distribution" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > App Distribution </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/crashlytics" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Crashlytics" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Crashlytics </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/perf-mon" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Performance Monitoring" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Performance Monitoring </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/remote-config" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Remote Config" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Remote Config </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/ab-testing" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: A/B Testing" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > A/B Testing </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/analytics" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Analytics" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Analytics </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/cloud-messaging" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Cloud Messaging" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Cloud Messaging </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/in-app-messaging" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: In-App Messaging" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > In-App Messaging </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/dynamic-links" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Dynamic Links" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Dynamic Links </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/admob" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google AdMob" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google AdMob </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/ads" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Ads" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Ads </span> </a> </li> </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"><style> /* Styles inlined from /styles/docs.css */ .center { text-align: center } /* Used in AdMob code examples */ .oldcode { opacity: .40; /* IE 8 */ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)"; filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40); /* IE <= 7 */ filter:alpha(opacity=40); } .newcode { font-weight: bold; } /* Device Screenshots */ .deviceshot { max-width: 700px; max-height: 400px; } /* Start Changelog styles */ .badge { position: relative; top: -3px; border-radius: 16px; display: inline-block; width: 110px; height: 32px; line-height: 32px; margin-right: 10px; text-transform: uppercase; font-size: 13px; font-weight: 700; text-align: center; color: var(--tenant-inverted-text-color); } .checklist > ul { padding-left: 125px; } .checklist > ul > li { list-style-type: none; margin-bottom: 22px; } .changelog > ul { padding-left: 0; } .changelog > ul > li { list-style-type: none; margin-bottom: 22px; } .firebase-support-release-page .changelog > ul { list-style-type: none; padding-left: 125px; } .firebase-release-roundup .changelog > ul { list-style-type: disc outside; padding-left: 40px; } .firebase-release-roundup .changelog > ul > li { list-style-type: disc outside; margin-bottom: 12px; } .generic-android::before, .generic-ios::before, .generic-mobile::before, .generic-web::before, .generic-flutter::before, .generic-unity::before, .generic-cpp::before, .generic-all::before, .release-changed::before, .release-deprecated::before, .release-feature::before, .release-fixed::before, .release-important::before, .release-issue::before, .release-removed::before, .release-unchanged::before, .release-android::before, .release-android-bom::before, .release-ios::before, .release-javascript::before, .release-flutter::before, .release-unity::before, .release-cpp::before, .release-admin::before, .release-functions::before, .release-cli::before, .release-rules::before { display: block; float: left; width: 110px; height: 32px; margin-left: -125px; margin-right: 10px; border-radius: 16px; text-transform: uppercase; font-size: 13px; font-weight: 700; text-align: center; color: var(--tenant-inverted-text-color); } .generic-android::before { content: "Android"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #839e2e; } .generic-ios::before { text-transform: none; content: "iOS+"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #003fdd; } .generic-mobile::before { content: "Mobile"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #f4b400; } .generic-web::before { content: "Web"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #7e57c2; } .generic-flutter::before { content: "Flutter"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #29b6f6; } .generic-unity::before { content: "Unity"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #7f6545; } .generic-cpp::before { content: "C++"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #ff8c00; } .generic-all::before { content: "All"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #ccc; } .release-changed::before { content: "changed"; background-color: #ff6961; padding-top: 4px; } .release-deprecated::before { content: "deprecated"; background-color: #d70015; padding-top: 4px; } .release-feature::before { content: "feature"; background-color: #0f9d58; padding-top: 4px; } .release-fixed::before { content: "fixed"; background-color: #4285f4; padding-top: 4px; } .release-important::before { content: "important"; background-color: #d70015; padding-top: 4px; } .release-issue::before { content: "issue"; background-color: #d70015; padding-top: 4px; } .release-removed::before { content: "removed"; background-color: #546e7a; padding-top: 4px; } .release-unchanged::before { content: "no change"; background-color: #ccc; padding-top: 4px; } .release-android::before { content: "Android"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #839e2e; } .release-android-bom::before { content: "Android BoM"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #839e2e; } .release-ios::before { text-transform: none; content: "iOS+"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #003fdd; } .release-javascript::before { content: "JavaScript"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #7e57c2; } .release-flutter::before { content: "Flutter"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #29b6f6; } .release-unity::before { content: "Unity"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #7f6545; } .release-cpp::before { content: "C++"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #ff8c00; } .release-admin::before { content: "Admin"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #909090; } .release-functions::before { content: "Functions"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #2c384a; } .release-cli::before { text-transform: none; content: "CLI"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #f4b400; } .release-rules::before { content: "Rules"; color: var(--tenant-secondary-text-color); border: 5px solid; border-color: #002991; } /* End Changelog styles */ /* Docs Overview page styles */ .docs-android, .docs-ios, .docs-web, .docs-cpp, .docs-unity { height: 64px; width: 64px; margin: 10px 16px 0 -16px; } .firebase-docs-overview .devsite-landing-row h2 { margin: 80px 0 -40px; } .devsite-landing-row-3-up .docs-landing-row-item { width: calc((100% - 80px)/2); display: inline-block; } .docs-landing-icon { font-size: 48px; height: 48px; margin: 11px; width: 48px; } .firebase-reference-list { display: -ms-flex; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; list-style: none; margin: 0 0 40px; padding: 0; } .firebase-reference-list-item { -ms-flex: 0 0 50%; flex: 0 0 50%; margin: 40px 0 0; padding: 0; } .firebase-reference-list-item > a { -ms-flex-align: center; align-items: center; display: -ms-flex; display: flex; } .firebase-reference-list-item > a:not(:hover) h3 { color: var(--tenant-primary-text-color); } .firebase-reference-list-item > a:not(:hover) li, .firebase-reference-list-item > a:not(:hover) p { color: var(--tenant-secondary-text-color); } .firebase-reference-list-item .docs-landing-icon { -ms-flex-align: center; align-items: center; background-color: var(--tenant-docs-landing-icon-background, #f5f5f5); border-radius: 50%; -ms-flex: 0 0 88px; flex: 0 0 88px; height: 88px; -ms-justify-content: center; justify-content: center; margin: 0 16px 0 0; padding: 20px; } .firebase-reference-list-item h3 { -ms-flex: 0 0 auto; flex: 0 0 auto; font-size: 18px; line-height: 28px; margin: 0; } .firebase-reference-list-item ul { list-style: none; padding: 0; } .docs-android, .docs-ios, .docs-web, .docs-cpp, .docs-unity { height: 88px; width: auto; } .firebase-reference-list-item.docs-android .docs-landing-icon { color: #00bfa5; } .firebase-reference-list-item.docs-cpp .docs-landing-icon { color: #fd8c09; } .firebase-reference-list-item.docs-ios .docs-landing-icon { color: #16aaca; } .firebase-reference-list-item.docs-unity .docs-landing-icon { color: #000; } .firebase-reference-list-item.docs-web .docs-landing-icon { color: #c52062; } .firebase-reference-list-item.docs-http .docs-landing-icon { color: #3f51b5; } @media (max-width: 1000px) { .firebase-reference-list { -ms-flex-direction: column; flex-direction: column; } } /* end Docs Overview page styles */ /* Full-page platform selector for Crashlytics docs */ /* Note: h3 in selector content must include hide-from-toc */ .full-page-selector, .full-page-selector-content { border: none; font-size: inherit; } .full-page-selector > .kd-buttonbar { margin: 32px 0; } .full-page-selector > section { display: none; } .full-page-selector-content > .selected { padding: 0; font-size: inherit; } .full-page-selector-content > .kd-buttonbar { display: none; } .select-page { display: none; } .select-page + .ds-selector-tabs, .after-selection ~ .ds-selector-tabs { border: none; font-size: inherit; } .select-page + .ds-selector-tabs > .kd-buttonbar { margin: 32px 0; } .select-page + .ds-selector-tabs > section { display: none; } .after-selection ~ .ds-selector-tabs > .selected { padding: 0; font-size: inherit; } .after-selection ~ .ds-selector-tabs > section p { line-height: 24px; } .after-selection ~ .ds-selector-tabs > .kd-buttonbar { display: none; } /* End full-page platform selector */ /* Custom beta and alpha indicators */ .devsite-nav-icon[data-icon="alpha"]::before { content: url(data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'><path d='M13.2,15c-0.3-0.9-0.6-1.7-0.9-2.6L12.1,12c0-0.1-0.1-0.3-0.1-0.4c-1.2,2.1-2.4,2.9-4.5,2.9C4.8,14.5,3,12.6,3,9s1.8-5.5,4.5-5.5c2.1,0,3.4,0.8,4.5,2.9L12.1,6l0.1-0.4c0.4-1.1,0.7-1.9,0.9-2.6h2.2c-0.4,0.8-0.7,1.7-1.2,3.2L14,6.6c-0.3,0.8-0.5,1.6-0.8,2.4c0.3,0.7,0.6,1.5,0.8,2.4l0.1,0.4c0.5,1.5,0.8,2.4,1.2,3.2C15.4,15,13.2,15,13.2,15z M7.5,5.5C5.9,5.5,5,6.5,5,9s0.9,3.5,2.5,3.5C9,12.5,9.9,11.6,11,9C9.9,6.4,9,5.5,7.5,5.5z' fill='%2354617d'/></svg>); } .color-scheme--dark .devsite-nav-icon[data-icon="alpha"]::before { content: url(data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'><path d='M13.2,15c-0.3-0.9-0.6-1.7-0.9-2.6L12.1,12c0-0.1-0.1-0.3-0.1-0.4c-1.2,2.1-2.4,2.9-4.5,2.9C4.8,14.5,3,12.6,3,9s1.8-5.5,4.5-5.5c2.1,0,3.4,0.8,4.5,2.9L12.1,6l0.1-0.4c0.4-1.1,0.7-1.9,0.9-2.6h2.2c-0.4,0.8-0.7,1.7-1.2,3.2L14,6.6c-0.3,0.8-0.5,1.6-0.8,2.4c0.3,0.7,0.6,1.5,0.8,2.4l0.1,0.4c0.5,1.5,0.8,2.4,1.2,3.2C15.4,15,13.2,15,13.2,15z M7.5,5.5C5.9,5.5,5,6.5,5,9s0.9,3.5,2.5,3.5C9,12.5,9.9,11.6,11,9C9.9,6.4,9,5.5,7.5,5.5z' fill='%239eabc3'/></svg>); } .devsite-nav-icon[data-icon="beta"]::before { content: url(data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'><path d='M12.2,7.7c1.8,1.2,2.3,3.7,1.1,5.6c-0.7,1.1-2,1.8-3.3,1.8H7v2H5V4c0-1.1,0.9-2,2-2h2.5C11.4,2,13,3.6,13,5.5C13,6.3,12.7,7.1,12.2,7.7z M7,13h3c1.1,0,2-0.9,2-2s-0.9-2-2-2H7V13z M7,7h2.5C10.3,7,11,6.3,11,5.5S10.3,4,9.5,4H7V7z' fill='%2354617d'/></svg>); } .color-scheme--dark .devsite-nav-icon[data-icon="beta"]::before { content: url(data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'><path d='M12.2,7.7c1.8,1.2,2.3,3.7,1.1,5.6c-0.7,1.1-2,1.8-3.3,1.8H7v2H5V4c0-1.1,0.9-2,2-2h2.5C11.4,2,13,3.6,13,5.5C13,6.3,12.7,7.1,12.2,7.7z M7,13h3c1.1,0,2-0.9,2-2s-0.9-2-2-2H7V13z M7,7h2.5C10.3,7,11,6.3,11,5.5S10.3,4,9.5,4H7V7z' fill='%239eabc3'/></svg>); } .firebase-platform-label { font: 500 12px/24px Roboto,sans-serif; } /* Full-page platform selector dropdown */ /* Note: use menu variables in _elements.html file */ .full-page-selector-dropdown { border: none; position: relative; float: left; display: inline-block; } .full-page-selector-dropdown > .ds-selector-tabs { display: none; position: absolute; min-width: 160px; z-index: 1; } .full-page-selector-dropdown:hover .ds-selector-tabs { display: block; margin: 0; } .full-page-selector-dropdown:hover .kd-tabbutton { display: block; border: none; height: inherit; text-align: left; } .full-page-selector-dropdown:hover .kd-buttonbar { border: none; height: inherit; } .full-page-selector-dropdown h3:hover { color: var(--tenant-inverted-text-color); background-color: #039be5; } .full-page-selector-dropdown:hover .devsite-overflow-menu-button { display: none; } img.white-bg { padding: 5px; border-radius: 2px; background-color: #fff; } </style> <div class="devsite-banner devsite-banner-announcement nocontent" > <div class="devsite-banner-message"> <div class="devsite-banner-message-text"> <style> .devsite-banner-announcement a:link:not(.button), .devsite-banner-announcement a:visited:not(.button) { background: 0; } .devsite-banner-announcement a:hover, .devsite-banner-announcement a:focus { text-decoration: none; } .devsite-banner-announcement .devsite-banner-message-text { margin: 0 auto; } </style> Watch demos on how to build & run AI-powered apps with Firebase at Demo Day '24. <a href="https://firebase.google.com/demo-day/2024?utm_source=firesite&utm_medium=referral&utm_campaign=day_of_firesite_banner&utm_content=" target="_blank" rel="noreferrer noopener">Watch now.</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://firebase.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="Firebase" > Firebase </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://firebase.google.com/docs" 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="Firebase Documentation" > Documentation </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://firebase.google.com/docs/perf-mon" 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="Firebase Performance Monitoring" > Performance Monitoring </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://firebase.google.com/docs/run" 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="" > Run </a> </li> </ul> <devsite-thumb-rating position="header"> </devsite-thumb-rating> </div> <devsite-feedback position="header" project-name="Firebase Performance Monitoring" product-id="719752" bucket="" 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://firebase.google.com/support/troubleshooter/report" project-icon="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/firebase/images/touchicon-180.png" project-support-url="https://firebase.google.com/support/" > <button> Send feedback </button> </devsite-feedback> <h1 class="devsite-page-title" tabindex="-1"> Export Performance Monitoring data to BigQuery </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></p> <aside class="note"><strong>Note:</strong><span> Exporting <span class="notranslate">Performance Monitoring</span> data into <span class="notranslate">BigQuery</span> is currently only available for <strong>Apple and Android apps</strong>.</span></aside> <p>You can export <span class="notranslate">Performance Monitoring</span> data from Apple and Android apps into <a href="//bigquery.cloud.google.com" class="external"><span class="notranslate">BigQuery</span></a> for further analysis. <span class="notranslate">BigQuery</span> allows you to analyze the data using <span class="notranslate">BigQuery</span> SQL, export it to another cloud provider, and even use the data for your custom ML models.</p> <h2 id="enable_export" data-text="Enable BigQuery export" tabindex="-1">Enable <span class="notranslate">BigQuery</span> export</h2> <aside class="note"><strong>Note:</strong><span> Make sure that you have the <a href="/docs/projects/bigquery-export#permissions-and-roles">required level of access</a> to view or manage settings for data export to <span class="notranslate">BigQuery</span>.</span></aside> <ol> <li><p>Go to the <a href="//console.firebase.google.com/project/_/settings/integrations" class="external"><em>Integrations</em></a> page in the <span class="notranslate">Firebase</span> console, then click <strong>Link</strong> in the <strong>BigQuery</strong> card.</p></li> <li><p>Follow the on-screen instructions to enable <span class="notranslate">BigQuery</span>.</p> <p>When you enable <span class="notranslate">BigQuery</span> export for <span class="notranslate">Performance Monitoring</span>, the following occurs:</p> <ul> <li><p>Firebase <a href="#what-data-exported">exports a copy of your existing data</a> to <span class="notranslate">BigQuery</span>. The initial propagation of data for export may take up to 48 hours to complete.</p> <ul> <li>You can <a href="//cloud.google.com/bigquery/docs/working-with-transfers#setting_up_backfills_and_refresh_runs" class="external">manually schedule data backfills</a> up to the past 30 days or for the most recent date when you enabled <span class="notranslate">BigQuery</span> export (whichever is most recent).</li> </ul></li> <li><p>After the dataset is created, the location can't be changed, but you can copy the dataset to a different location or manually move (recreate) the dataset in a different location. To learn more, see <a href="/docs/projects/bigquery-export?product=perfmon#change-dataset-location">Change dataset location</a>.</p></li> <li><p>Firebase sets up regular syncs of your data from your Firebase project to <span class="notranslate">BigQuery</span>. These daily export operations usually finish in 24 hours after they are scheduled.</p></li> <li><p>By default, all apps in your project are linked to <span class="notranslate">BigQuery</span>. Any apps that you later add to the project are automatically linked to <span class="notranslate">BigQuery</span>. You can <a href="//support.google.com/firebase/answer/6318765#manage" class="external">manage which apps send data</a>.</p></li> </ul></li> </ol> <p>To deactivate <span class="notranslate">BigQuery</span> export, <a href="//support.google.com/firebase/answer/6318765#unlink" class="external">unlink your project</a> in the <span class="notranslate">Firebase</span> console.</p> <h2 id="what-data-exported" data-text="What data is exported to BigQuery?" tabindex="-1">What data is exported to <span class="notranslate">BigQuery</span>?</h2> <p>For each app in the project, the export creates a table that includes all the captured performance events. Each row in the table is a single performance event that can be one of the following:</p> <ul> <li><p><strong>Duration trace</strong> — traces that collect, by default, the metric of "duration", which include app start, app-in-foreground, and app-in-background, as well as any developer-instrumented custom code traces</p> <ul> <li><code translate="no" dir="ltr">event_type</code> is <code translate="no" dir="ltr">DURATION_TRACE</code></li> <li><code translate="no" dir="ltr">event_name</code> is the same as the trace name</li> </ul></li> <li><p><strong>Trace metric</strong> — custom metrics that are associated with developer-instrumented custom code traces</p> <ul> <li><code translate="no" dir="ltr">event_type</code> is <code translate="no" dir="ltr">TRACE_METRIC</code></li> <li><code translate="no" dir="ltr">event_name</code> is the name of the metric</li> <li><code translate="no" dir="ltr">parent_trace_name</code> is the trace name that contains this metric</li> </ul></li> <li><p><strong>Screen trace</strong> — traces spanning the lifetime of a screen (screen rendering traces)</p> <ul> <li><code translate="no" dir="ltr">event_type</code> is <code translate="no" dir="ltr">SCREEN_TRACE</code></li> <li><code translate="no" dir="ltr">event_name</code> is prefix <code translate="no" dir="ltr">_st_</code> plus the actual screen name</li> </ul></li> <li><p><strong>Network request</strong> — traces spanning the lifetime of a network request (HTTP network request traces)</p> <ul> <li><code translate="no" dir="ltr">event_type</code> is <code translate="no" dir="ltr">NETWORK_REQUEST</code></li> <li><code translate="no" dir="ltr">event_name</code> is the categorized pattern of the network request URL</li> </ul></li> </ul> <p>Each performance event contains attributes of the event (such as country and carrier of the client device), as well as event-specific information:</p> <ul> <li>Duration traces, trace metrics, and screen traces contain <code translate="no" dir="ltr">trace_info</code></li> <li>Trace metrics contain <code translate="no" dir="ltr">trace_info.metric_info</code></li> <li>Screen traces contain <code translate="no" dir="ltr">trace_info.screen_info</code></li> <li>Network traces contain <code translate="no" dir="ltr">network_info</code></li> </ul> <h3 id="detailed_data_schema" data-text="Detailed data schema" tabindex="-1">Detailed data schema</h3> <table> <thead> <tr> <th><strong>Field Name</strong></th> <th><strong>Type</strong></th> <th><strong>Description</strong></th> </tr> </thead> <tbody> <tr> <td>event_timestamp</td> <td>timestamp</td> <td>Timestamp since Epoch when event started on client device (trace start, network start, etc.)</td> </tr> <tr> <td>app_display_version</td> <td>string</td> <td>Display version of the application (for example, "4.1.7") <ul> <li>For Android — <code translate="no" dir="ltr">VersionName</code></li> <li>For iOS — <code translate="no" dir="ltr">CFBundleShortVersionString</code></li> </ul></td> </tr> <tr> <td>app_build_version</td> <td>string</td> <td>Build version of the application (for example, "1523456")<br> <ul> <li>For Android — <code translate="no" dir="ltr">VersionCode</code></li> <li>For iOS — <code translate="no" dir="ltr">CFBundleVersion</code></li> </ul></td> </tr> <tr> <td>os_version</td> <td>string</td> <td>OS version of the client device<br> <ul> <li>For Android — Android API level (for example "26")</li> <li>For iOS — iOS version (for example "11.4")</li> </ul></td> </tr> <tr> <td>device_name</td> <td>string</td> <td>Name of the client device (for example, "Google Pixel")</td> </tr> <tr> <td>country</td> <td>string</td> <td>Two-letter country code of the country from which the event took place (for example, "US", or "ZZ" for unknown country)</td> </tr> <tr> <td>carrier</td> <td>string</td> <td>Carrier of the client device</td> </tr> <tr> <td>radio_type</td> <td>string</td> <td>Active radio type when the event took place (for example, "WIFI")</td> </tr> <tr> <td>custom_attributes</td> <td>ARRAY<RECORD></td> <td>All custom attributes attached to this event</td> </tr> <tr> <td>custom_attributes.key</td> <td>string</td> <td>Key of the custom attribute</td> </tr> <tr> <td>custom_attributes.value</td> <td>string</td> <td>Value of the custom attribute</td> </tr> <tr> <td>event_type</td> <td>string</td> <td>Type of the event; possible values: <ul> <li><code translate="no" dir="ltr">DURATION_TRACE</code> — traces that collect, by default, the metric of "duration", which include app start, app-in-foreground, and app-in-background, as well as any developer-instrumented custom code traces <li><code translate="no" dir="ltr">SCREEN_TRACE</code> — traces spanning the lifetime of a screen (screen rendering traces) <li><code translate="no" dir="ltr">TRACE_METRIC</code> — custom metrics that are associated with developer-instrumented custom code traces <li><code translate="no" dir="ltr">NETWORK_REQUEST</code> — traces spanning the lifetime of a network request (HTTP network request traces) </li> </ul> </td> </tr> <tr> <td>event_name</td> <td>string</td> <td>Name of the event <ul> <li>For <code translate="no" dir="ltr">DURATION_TRACE</code> — trace name <li>For <code translate="no" dir="ltr">TRACE_METRIC</code> — custom metric name <li>For <code translate="no" dir="ltr">SCREEN_TRACE</code> — <code translate="no" dir="ltr">_st_</code> followed by the trace name <li>For <code translate="no" dir="ltr">NETWORK_REQUEST</code> — network request URL pattern </li> </ul> </td> </tr> <tr> <td>parent_trace_name</td> <td>string</td> <td>Name of the parent trace that carries the trace metric<br> Only present for <code translate="no" dir="ltr">TRACE_METRIC</code></td> </tr> <tr> <td>trace_info</td> <td>RECORD</td> <td>Only present for <code translate="no" dir="ltr">DURATION_TRACE</code>, <code translate="no" dir="ltr">SCREEN_TRACE</code>, and <code translate="no" dir="ltr">TRACE_METRIC</code></td> </tr> <tr> <td>trace_info.duration_us</td> <td>int64</td> <td> <ul> <li>For <code translate="no" dir="ltr">DURATION_TRACE</code> and <code translate="no" dir="ltr">SCREEN_TRACE</code> — Length of time ("duration") from the beginning to the end of the trace <li>For <code translate="no" dir="ltr">TRACE_METRIC</code> — length of time ("duration") from the beginning to the end of the parent trace </li> </ul> Unit: microsecond </td> </tr> <tr> <td>trace_info.screen_info</td> <td>RECORD</td> <td>Only present for <code translate="no" dir="ltr">SCREEN_TRACE</code></td> </tr> <tr> <td>trace_info.screen_info.slow_frame_ratio</td> <td>float64</td> <td>Ratio of slow frames for this screen trace, between 0 and 1 (for example, a value of 0.05 means 5% of the frames for this screen instance took more than 16ms to render)</td> </tr> <tr> <td>trace_info.screen_info.frozen_frame_ratio</td> <td>float64</td> <td>Ratio of frozen frames for this screen trace, between 0 and 1 (for example, a value of 0.05 means 5% of the frames for this screen instance took more than 700ms to render)</td> </tr> <tr> <td>trace_info.metric_info</td> <td>RECORD</td> <td>Only present for <code translate="no" dir="ltr">TRACE_METRIC</code></td> </tr> <tr> <td>trace_info.metric_info.metric_value</td> <td>int64</td> <td>Value of the trace metric</td> </tr> <tr> <td>network_info</td> <td>RECORD</td> <td>Only present for <code translate="no" dir="ltr">NETWORK_REQUEST</code></td> </tr> <tr> <td>network_info.response_code</td> <td>int64</td> <td>HTTP response code for the network response (for example, 200, 404)</td> </tr> <tr> <td>network_info.response_mime_type</td> <td>string</td> <td>MIME type of the network response (for example, "text/html")</td> </tr> <tr> <td>network_info.request_http_method</td> <td>string</td> <td>HTTP method of the network request (for example, "GET" or "POST")</td> </tr> <tr> <td>network_info.request_payload_bytes</td> <td>int64</td> <td>Size of the network request payload<br> Unit: byte</td> </tr> <tr> <td>network_info.response_payload_bytes</td> <td>int64</td> <td>Size of the network response payload<br> Unit: byte</td> </tr> <tr> <td>network_info.request_completed_time_us</td> <td>int64</td> <td>Microseconds after <code translate="no" dir="ltr">event_timestamp</code> when network request sending is complete<br> Unit: microsecond</td> </tr> <tr> <td>network_info.response_initiated_time_us</td> <td>int64</td> <td>Microseconds after <code translate="no" dir="ltr">event_timestamp</code> when network response is initiated<br> Unit: microsecond</td> </tr> <tr> <td>network_info.response_completed_time_us</td> <td>int64</td> <td>Microseconds after <code translate="no" dir="ltr">event_timestamp</code> when network response is completed<br> Unit: microsecond</td> </tr> </tbody> </table> <h2 id="what-can-you-do" data-text="What can you do with the exported data?" tabindex="-1">What can you do with the exported data?</h2> <p>The following sections offer examples of queries that you can run in <span class="notranslate">BigQuery</span> against your exported <span class="notranslate">Performance Monitoring</span> data.</p> <h3 id="match_the_data_seen_on_the_console" data-text="Match the data seen on the console" tabindex="-1">Match the data seen on the console</h3> <p>The Firebase dashboard aggregates daily data in <code translate="no" dir="ltr">America/Los_Angeles</code> timezone. To match what was seen on the console, date functions should explicitly set <code translate="no" dir="ltr">America/Los_Angeles</code> as the timezone otherwise the date function will <a href="https://cloud.google.com/bigquery/docs/reference/standard-sql/date_functions#date">default to using UTC</a>.</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="MySQL"><span class="devsite-syntax-k">SELECT</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">DATE</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">event_timestamp</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'America/Los_Angeles'</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">AS</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">daily_date</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">APPROX_QUANTILES</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">trace_info</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-n">duration_us</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-mi">100</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-err">[</span><span class="devsite-syntax-k">OFFSET</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-mi">90</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-err">]</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">/</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-mi">1000000</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">AS</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">p90_seconds</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-k">FROM</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n devsite-syntax-n-Quoted">`<var translate="no">TABLE_NAME</var>`</span> <span class="devsite-syntax-k">WHERE</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">DATE</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">event_timestamp</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'America/Los_Angeles'</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">>=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-nf">DATE_SUB</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">PARSE_DATE</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'%Y%m%d'</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'<var translate="no">YYYY-MM-DD</var>'</span><span class="devsite-syntax-p">),</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">INTERVAL</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-mi">7</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">DAY</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">AND</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">DATE</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">event_timestamp</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'America/Los_Angeles'</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-o"><=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">PARSE_DATE</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s1">'%Y%m%d'</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'<var translate="no">YYYY-MM-DD</var>'</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">AND</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">event_name</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s1">'_app_start'</span> <span class="devsite-syntax-k">GROUP</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">BY</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-mi">1</span> <span class="devsite-syntax-k">ORDER</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">BY</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-mi">1</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">DESC</span><span class="devsite-syntax-p">;</span></pre></devsite-code> <h3 id="view_average_app_start_latency_break-down_by_country" data-text="View average app start latency break-down by country" tabindex="-1">View average app start latency break-down by country</h3> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="MySQL"><span class="devsite-syntax-k">SELECT</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">AVG</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">trace_info</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-n">duration_us</span><span class="devsite-syntax-p">),</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">country</span> <span class="devsite-syntax-k">FROM</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n devsite-syntax-n-Quoted">`<var translate="no">TABLE_NAME</var>`</span> <span class="devsite-syntax-k">WHERE</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">_PARTITIONTIME</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">></span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">TIMESTAMP</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s2">"<var translate="no">YYYY-MM-DD</var>"</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-k">AND</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">event_type</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"DURATION_TRACE"</span> <span class="devsite-syntax-k">AND</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">event_name</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"_app_start"</span> <span class="devsite-syntax-k">GROUP</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">BY</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-mi">2</span><span class="devsite-syntax-p">;</span></pre></devsite-code> <h3 id="check_the_ratio_of_frozen_frames_against_various_conditions" data-text="Check the ratio of frozen frames against various conditions" tabindex="-1">Check the ratio of frozen frames against various conditions</h3> <p>For example, you can check the ratio of frozen frames alongside the amount of time users spend on each screen of your app when on different radio types (WiFi, 4G, etc.).</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="MySQL"><span class="devsite-syntax-k">SELECT</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">AVG</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">trace_info</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-n">duration_us</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">/</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-mi">1000000</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">AS</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">seconds_on_screen</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">AVG</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">trace_info</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-n">screen_info</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-n">frozen_frame_ratio</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">AS</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">frozen_frame_ratio</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">event_name</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">radio_type</span> <span class="devsite-syntax-k">FROM</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n devsite-syntax-n-Quoted">`<var translate="no">TABLE_NAME</var>`</span> <span class="devsite-syntax-k">WHERE</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">_PARTITIONTIME</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">></span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">TIMESTAMP</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s2">"<var translate="no">YYYY-MM-DD</var>"</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-k">AND</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">event_type</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"SCREEN_TRACE"</span> <span class="devsite-syntax-k">GROUP</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">BY</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">event_name</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">radio_type</span> <span class="devsite-syntax-k">ORDER</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">BY</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">event_name</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">radio_type</span><span class="devsite-syntax-p">;</span></pre></devsite-code> <h3 id="compute_cache_hit_rate_for_loading_certain_types_of_files_from_disk" data-text="Compute cache hit rate for loading certain types of files from disk" tabindex="-1">Compute cache hit rate for loading certain types of files from disk</h3> <p>This analysis assumes that you instrumented a custom code trace for loading from disk with a custom attribute named <code translate="no" dir="ltr">file-extension</code> and a custom metric (a <code translate="no" dir="ltr">TRACE_METRIC</code>) named <code translate="no" dir="ltr">cache-hit</code> that is set to <code translate="no" dir="ltr">1</code> if cache hit and <code translate="no" dir="ltr">0</code> if cache miss.</p> <p>For example, you can compute the cache hit rate for loading PNG files from disk:</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="MySQL"><span class="devsite-syntax-k">SELECT</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">AVG</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">trace_info</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-n">metric_info</span><span class="devsite-syntax-p">.</span><span class="devsite-syntax-n">metric_value</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">AS</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">cache_hit_rate</span> <span class="devsite-syntax-k">FROM</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n devsite-syntax-n-Quoted">`<var translate="no">TABLE_NAME</var>`</span> <span class="devsite-syntax-k">WHERE</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">_PARTITIONTIME</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">></span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">TIMESTAMP</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s2">"<var translate="no">YYYY-MM-DD</var>"</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-k">AND</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">event_type</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"TRACE_METRIC"</span> <span class="devsite-syntax-k">AND</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">event_name</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"cache-hit"</span> <span class="devsite-syntax-k">AND</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">parent_trace_name</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"loadFromDisk"</span> <span class="devsite-syntax-k">AND</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">STRUCT</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s2">"file-extension"</span><span class="devsite-syntax-p">,</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"png"</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">IN</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">UNNEST</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-n">custom_attributes</span><span class="devsite-syntax-p">);</span></pre></devsite-code> <h3 id="check_for_the_time_of_day_that_users_issue_network_requests" data-text="Check for the time of day that users issue network requests" tabindex="-1">Check for the time of day that users issue network requests</h3> <p>For example, you can check at what hour of the day users from the United States issue network requests from your app:</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded syntax="MySQL"><span class="devsite-syntax-k">SELECT</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nf">count</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-mi">1</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">AS</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">hourly_count</span><span class="devsite-syntax-p">,</span> <span class="devsite-syntax-w"> </span><span class="devsite-syntax-nf">EXTRACT</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-k">HOUR</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">FROM</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">event_timestamp</span><span class="devsite-syntax-p">)</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">AS</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">hour_of_day</span> <span class="devsite-syntax-k">FROM</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n devsite-syntax-n-Quoted">`<var translate="no">TABLE_NAME</var>`</span> <span class="devsite-syntax-k">WHERE</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">_PARTITIONTIME</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">></span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kt">TIMESTAMP</span><span class="devsite-syntax-p">(</span><span class="devsite-syntax-s2">"<var translate="no">YYYY-MM-DD</var>"</span><span class="devsite-syntax-p">)</span> <span class="devsite-syntax-k">AND</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">event_type</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"NETWORK_REQUEST"</span> <span class="devsite-syntax-k">AND</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-n">country</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-o">=</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"US"</span> <span class="devsite-syntax-k">GROUP</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">BY</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-mi">2</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">ORDER</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-k">BY</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-mi">2</span><span class="devsite-syntax-p">;</span></pre></devsite-code> <h3 id="take_your_data_anywhere" data-text="Take your Performance Monitoring data anywhere" tabindex="-1">Take your <span class="notranslate">Performance Monitoring</span> data anywhere</h3> <p>Sometimes you want to access your <span class="notranslate">Performance Monitoring</span> data server-side or push it to another third-party solution. There is currently no charge for exporting data.</p> <p>You can export your data by:</p> <ul> <li><p>Using the <span class="notranslate">BigQuery</span> web UI</p></li> <li><p>Running the CLI command <a href="//cloud.google.com/bigquery/docs/reference/bq-cli-reference#bq_extract" class="external"><code translate="no" dir="ltr">bq extract</code></a> </p></li> <li><p>Submitting an <a href="//cloud.google.com/bigquery/docs/reference/v2/jobs#configuration.extract" class="external">extract job</a> via the API or client libraries.</p></li> </ul> <h2 id="pricing" data-text="Pricing" tabindex="-1">Pricing</h2> <p>There is no charge for exporting data from <span class="notranslate">Performance Monitoring</span>, and <span class="notranslate">BigQuery</span> provides generous no-cost usage limits. For detailed information, refer to <a href="//cloud.google.com/bigquery/pricing" class="external"><span class="notranslate">BigQuery</span> pricing</a> or the <a href="//cloud.google.com/bigquery/docs/sandbox" class="external"><span class="notranslate">BigQuery</span> sandbox</a>.</p> <devsite-hats-survey class="nocontent" hats-id="Eo9GZTcG10ncf3CThQj0SEgFWynR" listnr-id="5244646"></devsite-hats-survey> </div> <devsite-thumb-rating position="footer"> </devsite-thumb-rating> <devsite-feedback position="footer" project-name="Firebase Performance Monitoring" product-id="719752" bucket="" 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://firebase.google.com/support/troubleshooter/report" project-icon="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/firebase/images/touchicon-180.png" project-support-url="https://firebase.google.com/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-21 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="Firebase Performance Monitoring" product-id="719752" bucket="" 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://firebase.google.com/support/troubleshooter/report" project-icon="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/firebase/images/touchicon-180.png" project-support-url="https://firebase.google.com/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-21 UTC."],[],[]] </template> </div> </devsite-content> </main> <devsite-footer-promos class="devsite-footer"> </devsite-footer-promos> <devsite-footer-linkboxes class="devsite-footer"> <nav class="devsite-footer-linkboxes nocontent" aria-label="Footer links"> <ul class="devsite-footer-linkboxes-list"> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Learn</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/docs/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Developer guides </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/docs/reference/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > SDK & API reference </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/docs/samples/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > Samples </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/docs/libraries/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > Libraries </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//github.com/firebase/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" > GitHub </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Stay connected</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="//firebase.blog" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Check out the blog </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//www.reddit.com/r/Firebase" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Find us on Reddit </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//x.com/Firebase" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > Follow on X </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//www.youtube.com/user/Firebase" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > Subscribe on YouTube </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/community/events" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" > Attend an event </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Support</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/support/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Contact support </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//stackoverflow.com/questions/tagged/firebase" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Stack Overflow </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//firebase.community/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > Slack community </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//groups.google.com/forum/#!forum/firebase-talk" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > Google group </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/support/releases" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" > Release notes </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/brand-guidelines/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)" > Brand guidelines </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/support/faq/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 7)" > FAQs </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> <source srcset="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/firebase/images/lockup-google-for-developers-dark-theme.svg" media="(prefers-color-scheme: none)" class="devsite-dark-theme" loading="lazy" alt="Google Developers"> <img class="devsite-footer-sites-logo" src="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/firebase/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="//developers.google.com/products/" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer All products Link" > All products </a> </li> </ul> </nav> <nav class="devsite-footer-utility-links" aria-label="Utility links"> <ul class="devsite-footer-utility-list"> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="/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> </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" >Português</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 > </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>[]</script> <script type="application/json" tag-management>{"at": "True", "ga4": [], "ga4p": [], "gtm": [{"id": "GTM-N84485", "purpose": 0}], "parameters": {"internalUser": "False", "language": {"machineTranslated": "False", "requested": "en", "served": "en"}, "pageType": "guide", "projectName": "Firebase Performance Monitoring", "signedIn": "False", "tenant": "firebase", "recommendations": {"sourcePage": "", "sourceType": 0, "sourceRank": 0, "sourceIdenticalDescriptions": 0, "sourceTitleWords": 0, "sourceDescriptionWords": 0, "experiment": ""}, "experiment": {"ids": ""}}}</script> </devsite-analytics> <devsite-badger></devsite-badger> <firebase-gtm></firebase-gtm> <firebase-utm></firebase-utm> <script nonce="e5vh6ruypiDNhRsnLHMWeW3YH7gvyA"> (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/firebase/js/app_loader.js', '[4,"en",null,"/js/devsite_app_module.js","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/firebase","https://firebase-dot-devsite-v2-prod.appspot.com",null,null,["/_pwa/firebase/manifest.json","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/images/video-placeholder.svg","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/firebase/images/favicon.png","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/firebase/images/lockup.svg","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","firebase.google.com","AIzaSyAQk0fBONSGUqCNznf6Krs82Ap1-NV6J4o","AIzaSyCCxcqdrZ_7QMeLCRY20bh_SXdAYqy70KY",null,null,null,["MiscFeatureFlags__enable_dark_theme","Search__enable_suggestions_from_borg","Profiles__enable_complete_playlist_endpoint","Cloud__enable_llm_concierge_chat","Significatio__enable_by_tenant","Cloud__enable_cloud_facet_chat","Experiments__reqs_query_experiments","DevPro__enable_cloud_innovators_plus","EngEduTelemetry__enable_engedu_telemetry","Cloud__enable_cloud_shell_fte_user_flow","Concierge__enable_concierge","Profiles__enable_dashboard_curated_recommendations","Profiles__enable_awarding_url","Search__enable_ai_eligibility_checks","Profiles__enable_developer_profiles_callout","MiscFeatureFlags__enable_project_variables","Analytics__enable_clearcut_logging","CloudShell__cloud_shell_button","MiscFeatureFlags__enable_view_transitions","Cloud__enable_cloud_shell","MiscFeatureFlags__developers_footer_image","Profiles__enable_page_saving","Profiles__enable_profile_collections","BookNav__enable_tenant_cache_key","Profiles__enable_recognition_badges","TpcFeatures__enable_mirror_tenant_redirects","Cloud__enable_legacy_calculator_redirect","Cloud__enable_cloudx_ping","MiscFeatureFlags__enable_firebase_utm","TpcFeatures__enable_required_headers","Profiles__enable_public_developer_profiles","Search__enable_ai_search_summaries","Cloud__enable_cloudx_experiment_ids","Profiles__enable_completecodelab_endpoint","Search__enable_page_map","MiscFeatureFlags__developers_footer_dark_image","MiscFeatureFlags__enable_variable_operator","Cloud__enable_cloud_dlp_service","Search__enable_dynamic_content_confidential_banner","Concierge__enable_pushui","CloudShell__cloud_code_overflow_menu","MiscFeatureFlags__emergency_css","DevPro__enable_developer_subscriptions","Profiles__enable_release_notes_notifications","Profiles__require_profile_eligibility_for_signin","Cloud__enable_free_trial_server_call","MiscFeatureFlags__enable_explain_this_code"],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",[4,"firebase","Firebase","firebase.google.com",null,"firebase-dot-devsite-v2-prod.appspot.com",null,null,[1,1,null,null,null,null,null,null,null,null,null,[1],null,null,null,null,null,null,[1],[1,null,null,[1]],null,null,null,[1,null,1],[1,1,null,null,1]],null,[68,null,null,null,null,null,"/images/lockup.svg","/images/touchicon-180.png",null,null,null,1,1,1,null,null,null,null,null,null,null,2,null,null,null,"/images/lockup.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,20,22,23,29,37],null,[[],[1,1]],[[null,null,null,null,["UA-24532603-9"],["GTM-N84485"],null,null,null,null,[["UA-24532603-9",1]],[["GTM-N84485",1]],1],[[46,8],[17,1],[36,4],[16,2],[2,5]],null,1],null,4],null,"pk_live_5170syrHvgGVmSx9sBrnWtA5luvk9BwnVcvIi7HizpwauFG96WedXsuXh790rtij9AmGllqPtMLfhe2RSwD6Pn38V00uBCydV4m"]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html>