This article explains how to set up and run a pre-launch report. If you’ve run a pre-launch report and you want to know how to interpret the results, go to Understand your pre-launch report.
A pre-launch report is automatically generated when you publish an app to closed or open testing. It helps to identify issues proactively before your app reaches users. It includes tests for:
- Stability issues
- Android compatibility issues
- Performance issues
- Accessibility issues
- Security vulnerabilities
- Privacy issues
How the pre-launch report works
After you upload and publish a test Android App Bundle, we install it on a set of Android devices in our test lab. We then automatically launch and crawl your app for several minutes. The crawler performs basic actions such as typing, tapping, and swiping. You can also provide custom tests or test account credentials for the crawler to use.
After the crawl has finished, we compile your results in the pre-launch report. We also uninstall your app from all devices.
Assessing your app’s suitability for a pre-launch report
The pre-launch report will work as long as we are able to install and "crawl" your app. However, certain apps may require minor code modifications. Common examples include apps that require country validation or install validation. To learn more, go to our frequently asked questions.
Note that test devices can’t run tests on apps without a main launch activity, including launchers, widgets, keyboards, and watch faces.
Run a pre-launch report
Test your appTo generate your app's pre-launch report, publish your app on a closed or open test track.
You will automatically receive a pre-launch report for any app that you publish on a test track unless you opt-out. You'll usually receive test results within an hour of uploading your app bundle. In some cases, you'll receive results several hours after upload.
You can receive email notifications for available pre-launch reports by following these steps:
- Open Play Console > Notifications.
- Scroll down to "Pre-launch report" and tick the box next to it. You can choose to receive emails for all tests or only tests with issues.
Pre-launch reports are automatically generated when you publish an app on a closed or open test track. To disable all pre-launch reports for your app:
- Open Play Console> Pre-launch report > Settings.
- Scroll down to "Preferences," and untick the "Turn on pre-launch report" box to disable the report for your app.
- Click Save.
Customize your tests
You can customize your tests to make your pre-launch report more comprehensive and relevant to your app.
Step 1: Provide test account credentials if your app has a sign-in screen
If your app has a sign-in screen and you want the crawler to test the sign-in process or the content behind it, you need to provide account credentials.
Note: You do not need to provide credentials if your app supports "Sign-in with Google," (which enables the crawler to log in automatically), or if you've already provided credentials on the App content page.
Here are some important things to remember when testing credentials:
- The credentials you provide are used for testing purposes only.
- While we do our best to keep test credentials secure, we recommend that you don't add any official credentials into the pre-launch report. Instead, create a test account username and password.
- Credentials can only be automatically inserted into Android apps that use standard Android widgets. Credentials can't be used in apps that use OpenGL to render custom controls or apps that use a WebView for a web-based authentication flow.
- Google will log in automatically if your app supports "Sign-in with Google."
- Open Play Console.
- Select an app.
- On the left menu, select Testing > Pre-launch report > Settings.
- In the “Test account credentials” section, select Provide credentials.
- Enter the following:
- Username: The username associated with your test account.
- Password: The password associated with your test account.
- Click Save. These credentials will be used for all future tests unless edited.
- Open Play Console.
- Select an app.
- On the left menu, select Testing > Pre-launch report > Settings.
- Make your changes:
- To edit credentials: In the “Test account credentials” section, enter your updated credentials in the username and password fields.
- To remove credentials: In the “Test account credentials” section, select Don’t provide credentials.
- Note: If you remove your app's test credentials, you'll need to add new credentials before any future tests can sign in to your app.
- Click Save. These credentials will be used for all future tests unless edited.
Step 2: Provide a Robo script or game loop
If you want to control the steps that the crawler takes when testing your app, you can provide a Robo script or game loop.
Provide a Robo script to customize the test path of a Java appYou can control the steps that the crawler takes when testing your app by providing a Robo script to perform specific actions like testing a common user journey or a new section of your app.
When you run a test with a script attached, the crawler runs your pre-scripted actions first and then explores the app as usual.
To upload a script to your pre-launch report:
- Record your script using the Firebase tool in Android Studio (Android Studio > Tools > Firebase > Test Lab > Record Robo Script). For details, go to the Firebase Help Center.
- Note: You don't need a Firebase account to create a Robo script.
- When your script is ready, open Play Console.
- Select an app.
- Select Testing > Pre-launch report > Settings. In the "Control how pre-launch report explores your app" section, upload your script. You can drag and drop your file, or select Upload.
- Click Save.
If you’re testing a game or an app that uses OpenGL, you need to provide a game loop to get a good pre-launch report. A game loop defines the actions that you want the crawler to take. You can test more than one game loop in the same app.
To use game loops in your pre-launch report:
- Modify your game to do the following:
- Launch the loop
- Run the loop
- Close the loop (optional). You make these modifications in your development environment. For details, go to the Firebase Help Center.
- Note: You don't need a Firebase account to use game loops in the pre-launch report.
- Publish the version of your game with the game loop to a closed or open test track. The crawler will automatically detect and execute the game loop.
Step 3: Customize the test starting point with deep links
You can add up to three deep links to your pre-launch report to test additional entry points for your app.
The crawler works as usual for several minutes, then closes the app and visits each deep link in turn, crawling for a further 30 seconds. Any issues found during these extra crawls are included in the report as normal.
To learn how to create and test deep links for your app, visit the Android Developers site.
Step 4: View test reports for specific languages
If you'd like to view test results for specific languages, you can set up language preferences on the Pre-launch report settings page. You can select up to five languages.
Tip: Since the pre-launch report runs automatically when you upload a test app bundle, you can only add language preferences after the initial test completes.
Set up language preferences- Open Play Console.
- Select an app.
- On the left menu, select Testing > Pre-launch report > Settings.
- Under "Test your app in specific languages," select + Add language.
- Select up to five languages. For future tests, you'll only see test results from these languages.
- Note: If you don’t select any languages, we’ll automatically select languages in which your app has the most installs.
- Click Save.
View your pre-launch report
When your pre-launch report is available, you can view a test summary that includes the number of errors, warnings, and minor issues found during testing, categorized by issue type. You’ll also see a launch recommendation based on your app’s testing results.
View pre-launch report summaryTo view a summary of your pre-launch report:
- Open Play Console.
- Select an app.
- Select Testing > Pre-launch report > Overview.
- Review each section:
- Stability
- Performance
- Accessibility
- Security and trust
- If any section has an issue, select Show summary to expand.
- Select View details to see more granular information for your issues.
- To view previous pre-launch reports, scroll to the table in the “Report details” section at the bottom of the page.
Note: If you see "Testing in progress," your latest test hasn't finished yet. If your latest test couldn't run, you may see "Test failed." To run another test, publish another app bundle.
To view detailed results of your pre-launch report:
- Open Play Console.
- Select an app.
- Select Testing > Pre-launch report > Details.
- Review the Stability, Performance, Accessibility, Screenshots, and Security and trust tabs. On each page, you'll see full details of the results of your latest test, including stack traces, screenshots, and charts.
Note: If you see "Testing in progress," your latest test hasn't finished yet. If your latest test couldn't run, you may see "Test failed." To run another test, publish another app bundle.
Frequently asked questions
App tests
How long should the test take?You'll usually receive test results within an hour of uploading your app bundle. In some cases, you'll receive results several hours after upload. If the report is not complete after two days, try uploading your artifact again. This will trigger a new report.
Apps that run validation at launch
Can I run a pre-launch report for an app that performs country validation?You can still get a pre-launch report if you are happy to make minor modifications to your code.
Test devices are located in the United States. If your app uses geolocation or has content restrictions based on country, test devices can only show what's available in their location.
If you need to test your app on a geolocation outside of where test devices are located, you can publish an app bundle that removes location requirements for testing purposes. There are two ways you can detect that your pre-launch reports are running in Test Lab:
- You can allowlist the IP address blocks documented in this Firebase Test Lab Overview.
- You can check Modify instrumented test behavior for Test Lab by adding a system variable.
The test platform doesn't support apps that check whether a device has privileged control (root access) on Android.
Apps that have ads or purchasing options
My app has ads. How do I ensure that pre-launch report testing doesn't contribute towards my impressions and clicks (which my ad network might detect or be unhappy about)?Google ads already exclude traffic from the pre-launch report address ranges. For other ad networks, you need to specify the IP address ranges to be excluded.
For details on how to mitigate fraudulent ad revenue with automated app testing, review the Google Developers site.
Test devices aren't able to make purchases during testing. If your app offers subscriptions or in-app products to access some parts of your app, testing scenarios may be limited.
Other app behaviors
My code is obfuscated (Java) or stripped (native). Can I still use pre-launch reports?Yes. Pre-launch report tests will run regardless.
If your code is obfuscated or stripped, however, any crashes or ANRs found during testing will have stack traces that are also obfuscated or stripped. To enable us to make your stack traces easier to debug, we recommend that you upload a deobfuscation or symbolication file.
You can learn more about uploading deobfuscation or symbolication files.
No. The test platform doesn't support pre-loading devices with media or pre-installed apps.
However, if you want to run tests on an app with pre-loaded data, you can publish a test version of your app with your media files embedded in its app bundle.
If your app is in an open test or your app has been published to production, pre-launch report testing will use an ID that acts as if it's licensed for your app.
If your app is not in an open test and doesn't have an active app bundle published to production, your app will fail the licensing check. You'll still receive pre-launch report results, but your app will be in an unlicensed state. To run tests on these apps, you can publish a closed version of your app with licensing services disabled.
The test devices are predefined to run tests on fixed portrait page orientation by default. However, if your app is locked to landscape, you should see videos and screenshots in landscape mode.
Device selection
How do you decide what devices you will use to test my app?We choose test devices that provide a good breadth of coverage across the ecosystem, and take into account device popularity, crash frequency, screen resolutions, manufacturers, Android OS version, and more. The selection of test devices may vary.
If you have excluded some devices from targeting in your app manifest, then the pre-launch report will also exclude them in tests, but will not target any extra devices for your app.
The pre-launch report is powered by Firebase Test Lab. To customize the devices that are tested, consider conducting your own tests in the Firebase console.
Yes, we will run the app on an emulator and crawl it as we would with a physical device.
Our device set covers phones, tablets, Wear OS, and Desktop devices like Chromebooks. It is not possible to test apps directly on Android Auto or Android TV devices.
Our device set includes devices Android 9 and above.