Before launching an application that requests user credentials for the
Data Manager API to external users, your Google Cloud project must
undergo [Google OAuth app verification](https://support.google.com/cloud/answer/7454865).

> [!NOTE]
> **Note:** Google OAuth verification isn't required if your integration uses service accounts with Application Default Credentials (ADC), or in certain other scenarios such as internal applications. See [When is verification not needed](https://support.google.com/cloud/answer/13464323) for details, or [Deploy to production](https://developers.google.com/data-manager/api/devguides/concepts/deploy) for server-to-server workloads.

This guide covers the recommended [Audience](https://console.cloud.google.com/auth/audience) configuration
transitions during development and the steps to complete Google OAuth app
verification.

## App audience phases

Depending on your stage of development, configure the
[Audience page](https://console.cloud.google.com/auth/audience) in the Google Cloud console with
different [**User type** and **Publishing status**
settings](https://support.google.com/cloud/answer/15549945). Follow these phases for a smooth transition
from initial testing to production launch.

### Phase 1: Initial development (Testing)

When starting development and testing basic API requests:

- **Publishing status** : Set to **Testing**.

- **User type**:

  If your Google Cloud project
  belongs to a Google Workspace organization and only users in your
  organization use the app, select **Internal**.

  Otherwise, select **External**.
- **Test users** : If you set **User type** to **External** , click
  **Add users** to manually add the Google Accounts you use to generate
  credentials. Only the listed Google Accounts can authorize the app, and
  [testing limits and token expiration rules](https://support.google.com/cloud/answer/15549945#publishing-status-testing) apply.

Verification isn't required during testing. If you use **External** , test users
see a warning screen confirming they have test access to an
[unverified app](https://support.google.com/cloud/answer/7454865#unverified-apps) before proceeding to the consent screen.

### Phase 2: Near launch (Verification submission)

When your integration is complete, your user interface is built, and you plan to
launch within the next month:

1. Update the [Audience page](https://console.cloud.google.com/auth/audience) settings:

   - **Publishing status** : Transition to **In production**.

   - **User type** : Set to **External** if your app serves customers outside
     your organization, such as advertiser clients.

2. [Submit your app for verification](https://developers.google.com/data-manager/api/devguides/concepts/oauth-verification#requirements). The Google OAuth app
   verification process can take several weeks, so submit as early as possible
   once your UI is ready.

> [!NOTE]
> **Note:** During the verification review, your app remains unverified for external users. If you need to onboard early beta testers, inform them that they will encounter the [unverified app screen](https://support.google.com/cloud/answer/7454865#unverified-apps), and instruct them to proceed by clicking **Advanced** and then **Go to <var translate="no">YOUR_APP_NAME</var> (unsafe)**.

#### App verification requirements

To submit your app for verification in the
[Verification Center](https://console.cloud.google.com/auth/verification), configure your
[Google Auth Platform](https://support.google.com/cloud/topic/15540269) settings and prepare the required
verification materials.

##### Branding and privacy policy

On the [Branding page](https://console.cloud.google.com/auth/branding) in the Google Cloud
console, verify the following details before submitting:

- **Application homepage**: Your homepage must be publicly accessible and
  include a visible link to your application's privacy policy.

- **Privacy policy link** : The privacy policy URL configured on the
  [Branding page](https://console.cloud.google.com/auth/branding) must match the privacy policy URL linked on
  your application's homepage.

##### Verification scopes

On the [Data Access page](https://console.cloud.google.com/auth/scopes), request only the scopes your
application requires. The Data Manager API uses sensitive scopes:

- `https://www.googleapis.com/auth/datamanager` (Primary scope)

- `https://www.googleapis.com/auth/datamanager.partnerlink` (For partner
  links)

In your verification submission, provide a detailed written explanation of why
your application requires access to the requested scopes.

##### Contact information

The Google OAuth verification team sends all communication to the
**project owners** and **project editors** configured in your
Google Cloud project. Keep these contact details up to date in
the Google Cloud console so you don't miss requests for
information.

If the verification team sends follow-up questions or requests updates (such as
changes to your demonstration video or consent screen settings), the review
pauses until you respond. If your submission has been pending for more than a
few weeks without an update, check the email inboxes (including spam and junk
folders) of all project owners and project editors.

##### Demonstration video

Provide a link to a publicly accessible demonstration video (such as an
unlisted YouTube video or a public Google Drive link) showing how your
application uses the requested scopes.

Make sure the video meets all of the
[App functionality demonstration video requirements](https://support.google.com/cloud/answer/13464321#demo-video-requirement),
including these Data Manager API checks:

- **End-to-end user journey and OAuth grant**: Show the full user journey in
  your application, starting from the user initiating sign-in or authorization
  through completing the OAuth grant flow.

- **Matching app identity** : Make sure the application name, logo, and
  branding shown in the video match the [Branding page](https://console.cloud.google.com/auth/branding)
  configuration in the Google Cloud console.

- **Complete OAuth consent screen in English** : Show the entire OAuth consent
  screen with the language selector in the lower-left corner set to
  **English**, and make sure the screen displays the exact Data Manager API
  scopes your app requests.

- **Scope usage in your app's UI**: Demonstrate the app features that use the
  requested scopes (for example, creating a partner link, creating an
  audience list, or configuring data ingestion in your application's UI).

### Phase 3: Ready to launch (Verified)

Once the Google OAuth verification team notifies you that they have approved
your app verification request, no action is required. Your app is now verified,
and external users can authorize it without encountering the unverified app
warning screen.