# 5. Google Play publication

## Requirements

* [**Bravo Solo account**](https://www.bravostudio.app/pricing)
* [**Google Developer account**](https://play.google.com/apps/publish/signup/)

{% hint style="warning" %}
If you're a company, open a [Google developer account for your organization](https://support.google.com/googleplay/android-developer/answer/13628312?hl=en). The new personal developer accounts **require running a closed test with 20 testers for at least 14 days**, extending the publication process to over 2 weeks.
{% endhint %}

{% hint style="info" %}
If you don't have a Google Developer account yet, sign up [here](https://play.google.com/console/u/0/signup). There's a US$25 one-time registration fee.&#x20;
{% endhint %}

## 1. Create app

![Create app button](/files/-MhSowuYSJxOxQDOlwT6)

* Once registered, go to <https://play.google.com/apps/publish/> and press "**Create app**" button.
* Select your **preferred language**, enter your **App name**, indicate if it's an **App or a game**, and if it's **Free or paid**. &#x20;

![Create app - App details](/files/-MhSowuXpbIc2XiZCZI5)

* Scroll down and **accept both Developer Program Policies and US export laws**. Then click **Create app** button.&#x20;

## 2. Set up your app

Go to the Dashboard and find the **Set up your app** section. We will start by completing the tasks under **"MANAGE HOW YOUR APP IS ORGANISED AND PRESENTED":**

### 2.1. Set up your Store Listing

* Select "**Set up your store listing**".&#x20;
* Enter some information and assets in the "**App Details**" and "**Graphics**" subsections:&#x20;

![Set up your app - Set up your Store Listing](/files/ng1OlKtgXswIf6fQpDw4)

#### **App details**&#x20;

Complete the following fields: **App name**, a **short description** and a **full description** of your app.

* **Mandatory:**
  * [ ] App name: max 50 characters
  * [ ] Short description: max 80 characters
  * [ ] Full description: max 4000 characters

![Main store listing - App details](/files/-MhSowub-_tQyrPld2UP)

#### **Graphic assets**&#x20;

Add the **App icon**, **Feature graphic and Phone, Tablet** or/and **Chromebook screenshots.**

![Main store listing - Graphics](/files/-MhSowuWnliEGvB2enfh)

* **Mandatory:**
  * [ ] **Hi-res App icon**: 512 x 512, 32-bit PNG
  * [ ] **Feature Graphic**: 1024 w x 500 h, JPG or 24-bit PNG (no alpha)
  * [ ] **Screenshots (Phone, Tablet and Chromebook)**:&#x20;
    * JPEG or 24-bit PNG (no alpha). Min length for any side: 320px.&#x20;
    * Max length for any side: 3840px.&#x20;
    * **At least 2 screenshots are required** overall. Max 8 screenshots per type.&#x20;
    * Only screenshots in **Phone** section are mandatory.
* **Optional:**
  * [ ] **Promo Graphic**: 180 w x 120 h, JPG or 24-bit PNG (no alpha)
  * [ ] **Promo Video**: YouTube video URL

Once the mandatory information is ready, click **Save** and go back to **Dashboard - Set up your app** section.&#x20;

### 2.2. Select an app category and provide contact details

![Set up your app - Select an app category and provide contact details](/files/1UmLCQPhZ2k5zD6DbfY6)

<figure><img src="/files/M4Q7y10heCUx4wRnafqS" alt=""><figcaption><p>Store settings - App category - Store Listing contact details</p></figcaption></figure>

* Go to **Dashboard - Set up your app** and click on "**Select an app category and provide contact details"** section.&#x20;
* Click on the **Edit** button of the **App Category** and select a **Category** for your app.&#x20;
* You can also optionally include **Tags** to describe the content and functionality of your app.
* In **Store listing contact details,** click on the **Edit** button and enter an **Email**, which will be publicly displayed with your app. **Phone number** and **Website** fields are optional.
* Click **Save** button at the bottom right.

Now, we're filling out all the steps listed below "**LET US KNOW ABOUT THE CONTENT OF YOUR APP**" subsection.&#x20;

### 2.3. Privacy policy

<figure><img src="/files/AR2meFjzJIocS3hXTNo4" alt=""><figcaption><p>Privacy policy</p></figcaption></figure>

* Go to **Dashboard - Set up your app** and select "**Set Privacy policy**".&#x20;
* Enter your **Privacy policy URL.**
* Click on the **Save** button at the bottom right to proceed.

### 2.4. App access

<figure><img src="/files/o31fUVCjAjXHGYr9EppC" alt=""><figcaption><p>Set up your app - App access</p></figcaption></figure>

* Go to **Dashboard - Set up your app** and select "**App access**".
* Select "**All functionality in my app is available without any access restrictions**".
* Click on the bottom right **Save** button.

### 2.5. Ads

<figure><img src="/files/5iCwQ4WEVsE70YTKcEvz" alt=""><figcaption><p>Ads</p></figcaption></figure>

* Go to **Dashboard - Set up your app** and click on **Ads**.
* Select whether or not your app contains ads.&#x20;
* Click **Save** button.&#x20;

### 2.6. Content rating

![Content ratings questionnaire](/files/zF1098COdxtiWmc0YQcL)

* Go to **Dashboard - Set up your app,** select "**Content rating**".&#x20;
* Click **Start questionnaire** button to start the Content Rating Questionnaire.&#x20;
* Enter an **email address** which will be used to contact you about your content ratings.
* Select a **category**, and answer some questions about the contents of your app. &#x20;

![Content ratings](/files/iM9ZBOCZpkNvu1hC93B9)

{% hint style="info" %}
Questions will vary depending on the category previously selected. Normally, you should select **No** to all answers.
{% endhint %}

* Once ready, click **Save** and **Next** buttons at the bottom right.
* In the Summary page, click **Save**.

### 2.7. Target audience&#x20;

<figure><img src="/files/BnmNgmcXkYyaRUG3QXei" alt=""><figcaption><p>Target audience and content - Target age</p></figcaption></figure>

* Go to **Dashboard - Set up your app** and select "**Target audience**".&#x20;
* Select the age groups that you think your app is suitable for.

{% hint style="info" %}
It is safer to select **18 and over** to avoid [Google Play Family Policy](https://support.google.com/googleplay/android-developer/answer/9893335?hl=en) issues.
{% endhint %}

* Click **Next** at the bottom right to continu&#x65;**.**
* Select whether or not your store listing could unintentionally appeal to children.&#x20;
* Click **Next** to proceed and then, **Save.**&#x20;

<figure><img src="/files/WHDxunWh8w9zgj429IkO" alt=""><figcaption><p>Target audience and content - Store presence</p></figcaption></figure>

### 2.8. News apps

<figure><img src="/files/iXK3EKanx8PQwxKkthSA" alt=""><figcaption><p>News apps</p></figcaption></figure>

* Go to **Dashboard - Set up your app** and select "**News app**"
* Select if your app is a news app or not.&#x20;
* Then, click **Save**.

### 2.9. COVID-19 contact tracing and status apps

<figure><img src="/files/ftOxAyEHZQWRAXAQNAX0" alt=""><figcaption><p>COVID-19 contact tracing and status apps</p></figcaption></figure>

* Go to **Dashboard - Set up your app** and select "**COVID-19 contact tracing and status apps**"
* Select if your app is publicly available COVID-19 contact tracing or status app or not.
* Then, click **Save**.

### &#x20;2.10. Data safety

<figure><img src="/files/GYomqT0Qhgo5Ky89yvO4" alt=""><figcaption><p>Data Safety</p></figcaption></figure>

* Go to **Dashboard - Set your app** and select "**Data safety**".
* Read the Overview section and click **Next**.

#### **Data collection and security**

* Complete the **Data collection and security section** as follow&#x73;**:**
  * Answer **YES** to "Does your app collect or share any of the required user data types?"
  * Answer **YES** to "Is all of the user data collected by your app encrypted in transit?"

<figure><img src="/files/SNjJVfJrcJNmHqfssYKU" alt=""><figcaption><p>Data safety - Data collection and security</p></figcaption></figure>

#### **Delete account URL**

* Specify the method of account creation your app support.
* Add a **delete account URL** link.

{% hint style="info" %}
**How to find your delete account URL in Bravo?**

Select your **App** **>** **Publish > Android > Publication > Deletion account URL for Google Play** > **Copy URL.**&#x20;
{% endhint %}

<figure><img src="/files/m248FfS8RamfCb3D2uTx" alt=""><figcaption><p>User account creation and deletion URL</p></figcaption></figure>

#### **Data types**

* In Data types section, select the following:
  * Under **App info and performance**, select **Crash logs**.&#x20;
  * Under select **Device or other IDs**,  select **Device or other IDs.**
* Select any other that applies to your app (example: if it uses location)

![](/files/JtDmQB2WscoO6tBNdkzS)

#### **Data usage and handling**

* &#x20;In Data usage and handling, **Device or other IDs**, click on the **arrow** to continue.

![Data usage and handling - Device and other IDs](/files/JqNVwidRO6VViS3jnPQi)

* Fill out the options as in the following image:

![Device and other IDs](/files/z7vZDrxBqXWqgAd2n2Cw)

* Open the **App info and performance** dropdown. Click the arrow on **Crash logs.**

![](/files/Rg2kYVwVgtMv27vHvac2)

* Select exactly the same options as before and click **Save**.
* Click **Next**, then **Save** to finish this section.

![](/files/FaThpBEJORAQKK7gcbOe)

### 2.11. Government apps

<figure><img src="/files/HnyA0i2p53WyQQpXymnR" alt=""><figcaption><p>Governments apps</p></figcaption></figure>

* Go to **Dashboard - Set up your app** and select "**Government apps**".
* Confirm if your app is developed by or on behalf of a government.
* Click **Save** to proceed.

### 2.12. Financial features

<figure><img src="/files/ulEMcMZAID8nsoXXspb7" alt=""><figcaption><p>Financial features</p></figcaption></figure>

* Go to **Dashboard - Set up your app** and select "**Financial features**".
* Select all of the financial features your app provides or select "**My app doesn't provide any financial features**".
* Click **Next** and **Save** to proceed.

### 2.12. Advertising ID

* From the left hand side bar, scroll down to Policy and Programmes section and click on **App Content**.
* Find **Advertising ID** and click on **Manage** button.
* Under declaration: **Does your app use an advertising ID?**&#x20;
  * Select **Yes** and the checkbox **Analytics** in the list that appears below. This is needed for Firebase Analytics.
  * Select **No** only if your App has been declared that the [Target audience](#id-2.7.-target-audience) are kids.

<figure><img src="/files/DdWoIevdwNonKlCV81iU" alt=""><figcaption></figcaption></figure>

## 3. Release your app

Once completed the initial setup "Set up your app", go back to the Google Play Console **Dashboard** and now locate the **Release your app** section.&#x20;

<figure><img src="/files/UoZMozsikrmtoXWQgXid" alt=""><figcaption><p>Dashboard - Release your app</p></figcaption></figure>

### 3.1. Select countries and regions&#x20;

<figure><img src="/files/c9vyC3JS4XU13mz95nTe" alt=""><figcaption><p>Release your app - Select countries and regions</p></figcaption></figure>

* Tap on **Select countries and regions.**
* Click on **Add countries/regions** and the confirmation pop-up.  Then, select all the countries you want your app to be available for. You can click on the first checkbox, if you want availability for **all** the listed countries.&#x20;
* Do not forget to **Save** at the bottom right of the screen.

<figure><img src="/files/BerhmrK3caT2DGF5BnIU" alt=""><figcaption><p>Countries/regions</p></figcaption></figure>

### 3.2. Create a new release

{% hint style="info" %}
To complete this step, obtaining the **.aab file** is necessary. Learn how to get the AAB file [here](/app-publication/publishing-your-app/android-publication-complete-process/4.-get-the-aab-android-app-bundle-file-to-publish.md).
{% endhint %}

If it's your first time creating a production release, you'll see the screen below:<br>

<figure><img src="/files/Jy3B0N8ZJHBpr2G2rpJA" alt=""><figcaption></figcaption></figure>

To upload a bundle, provide a signing key or generate one using Play app signing. Click **Choose signing key**, then select **Use Google-generated key**. Wait a moment and refresh the page.

<figure><img src="/files/4lb0TSYU1McosO6wgpKG" alt=""><figcaption></figcaption></figure>

When you're ready to upload your first app bundle, you'll see the following screen.

![Release your app - Create a new release - App Integrity](/files/nnm6SYZNVQ1eOjYvDwe0)

* Go to **Dashboard** - **Release your app**, click on **Create a new release**.&#x20;
* Within the **App Integrity** section:&#x20;

  * Navigate to the **App bundles** subsection and proceed to **upload the `.aab` file** that Bravo provided.

  * Add the **Release name**. Suggested a name based on the first app bundle or APK in this release, but you can edit it.

  * Optionally, you can scroll down to "**Release notes**" subsection and enter release notes for each language. \
    \
    Here is a list of the supported languages: <https://support.google.com/googleplay/android-developer/table/4419860>\
    \
    For example, if you want release notes for English and Spanish, you would enter:<br>

    ```
    <en-US>
    Enter or paste your release notes for en-US here
    </en-US>

    <en-US>
    Introduce o pegue su información de release para es-ES aquí 
    </es-ES>
    ```

  * Click the **Save** button at the bottom right, and then **Review release** button.

  * You may see some warning messages, but you can ignore these. If you followed all the steps correctly, your app is ready to publish.&#x20;

  * Click the **Start rollout to Production** button, confirm the popup by clicking on **Rollout.**

That's it!  Your app will be live soon. For new apps, normally it takes around 3 days to go live.

Let us know in the [Bravo Community](https://community.bravostudio.app/c/made-with-bravo) know when your app goes live! We will add it to our "**Made with Bravo**" section. 💥


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.bravostudio.app/app-publication/publishing-your-app/android-publication-complete-process/google-play-publication.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
