Select platform: [Android (beta)
![New](https://developers.google.com/static/admob/images/new.svg)](https://developers.google.com/admob/android/next-gen/quick-start "View this page for the Android (beta) platform docs.") [Android](https://developers.google.com/admob/android/quick-start "View this page for the Android platform docs.") [iOS](https://developers.google.com/admob/ios/quick-start "View this page for the iOS platform docs.") [Unity](https://developers.google.com/admob/unity/quick-start "View this page for the Unity platform docs.") [Flutter](https://developers.google.com/admob/flutter/quick-start "View this page for the Flutter platform docs.")

<br />

Integrating Google Mobile Ads SDK into an app is the first step toward displaying ads
and earning revenue. Once you've integrated the SDK, you can choose an ad
format (such as native or rewarded video) and follow the steps to implement it.

## Before you begin

To prepare your app, complete the steps in the following sections.

### App prerequisites

- Make sure that your app's build file uses the following values:

  - Minimum SDK version of `23` or higher
  - Compile SDK version of `35` or higher

### Set up your app in your AdMob account

Register your app as an AdMob app by completing the following steps:

1. [Sign in to](https://admob.google.com/home/) or [sign up
   for](https://support.google.com/admob/answer/7356219) an AdMob account.

2. [Register your app with AdMob](https://support.google.com/admob/answer/2773509).
   This step creates an AdMob app with a unique [AdMob App
   ID](https://support.google.com/admob/answer/7356431) that is needed later in this
   guide.

## Configure your app

1. In your Gradle settings file, include the
   [Google's Maven repository](https://maven.google.com/web/index.html) and
   [Maven central repository](https://search.maven.org/artifact):

   ### Kotlin

   ```kotlin
   pluginManagement {
     repositories {
       google()
       mavenCentral()
       gradlePluginPortal()
     }
   }

   dependencyResolutionManagement {
     repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
     repositories {
       google()
       mavenCentral()
     }
   }

   rootProject.name = "My Application"
   include(":app")
   ```

   ### Groovy

   ```groovy
   pluginManagement {
     repositories {
       google()
       mavenCentral()
       gradlePluginPortal()
     }
   }

   dependencyResolutionManagement {
     repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
     repositories {
       google()
       mavenCentral()
     }
   }

   rootProject.name = "My Application"
   include ':app'
   ```
2. Add the dependencies for Google Mobile Ads SDK to your app-level build file:

   ### Kotlin

   ```kotlin
   dependencies {
     implementation("com.google.android.gms:play-services-ads:24.9.0")
   }
   ```

   ### Groovy

   ```groovy
   dependencies {
     implementation 'com.google.android.gms:play-services-ads:24.9.0'
   }
   ```
3. Click **Sync Now** . For details on syncing, see
   [Sync projects with Gradle files](https://developers.android.com/build#sync-files).

4. Add your AdMob app ID, as
   [identified in the AdMob web interface](https://support.google.com/admob/answer/7356431),
   to your app's `AndroidManifest.xml` file. To do so, add a `<meta-data>` tag
   with `android:name="com.google.android.gms.ads.APPLICATION_ID"`. You can find
   your **app ID** in the AdMob web interface. For
   `android:value`, insert your own AdMob app ID,
   surrounded by quotation marks.

       <manifest>
         <application>
           \<!-- Sample AdMob app ID: ca-app-pub-3940256099942544\~3347511713 --\>
       \<meta-data
       android:name="com.google.android.gms.ads.APPLICATION_ID"
       android:value="<var class="readonly" translate="no">SAMPLE_APP_ID</var>"/\>
         </application>
       </manifest>

   Replace <var class="readonly" translate="no">SAMPLE_APP_ID</var> with your AdMob app ID. While
   testing, use the sample app ID shown in the previous example.

   Also, note that failure to add the `<meta-data>` tag exactly as shown results
   in a crash with the message:  

       Missing application ID.

   #### (Optional) Declare
   `AD_ID` permission for previous versions to work with Android
   13.

   If your app uses Google Mobile Ads SDK version **20.4.0** or
   higher, you can skip this step since the SDK automatically declares the
   `com.google.android.gms.permission.AD_ID` permission and is able
   to access the Advertising ID whenever it's available.

   For apps that use Google Mobile Ads SDK version **20.3.0** or
   lower and are targeting Android 13, you must add the
   `com.google.android.gms.permission.AD_ID` permission in the
   `AndroidManifest.xml` file for Google Mobile Ads SDK to access the
   Advertising ID:  

   ```xml
   <manifest>
    <application>
      <meta-data
          android:name="com.google.android.gms.ads.APPLICATION_ID"
          android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>

      <!-- For apps targeting Android 13 or higher & GMA SDK version 20.3.0 or lower -->
      <uses-permission android:name="com.google.android.gms.permission.AD_ID"/>

    </application>
   </manifest>
   ```

   To learn more about the
   `com.google.android.gms.permission.AD_ID` permission declaration,
   including how to disable it, refer to this [Play
   Console article](https://support.google.com/googleplay/android-developer/answer/6048248).

## Initialize the Google Mobile Ads SDK

Before loading ads, initialize Google Mobile Ads SDK by calling [`MobileAds.initialize()`](https://developers.google.com/admob/android/reference/com/google/android/gms/ads/MobileAds#initialize(android.content.Context,%20com.google.android.gms.ads.initialization.OnInitializationCompleteListener)).

This method initializes the SDK and calls a completion listener once both
Google Mobile Ads SDK and adapter initializations have completed, or after a
30-second timeout. This needs to be done only once, ideally at app launch.

If you're using AdMob
Mediation, wait until the
completion handler is called before loading ads. This ensures that all
mediation adapters are initialized.

**Ads may be preloaded by Google Mobile Ads SDK or mediation partner SDKs
upon initialization.** If you need to obtain consent from users in the European
Economic Area (EEA), set any request-specific flags, such as

[`setTagForChildDirectedTreatment()`](https://developers.google.com/admob/android/reference/com/google/android/gms/ads/RequestConfiguration.Builder#setTagForChildDirectedTreatment(int))
or
[`setTagForUnderAgeOfConsent()`](https://developers.google.com/admob/android/reference/com/google/android/gms/ads/RequestConfiguration.Builder#setTagForUnderAgeOfConsent(int)),

or
otherwise take action before loading ads, ensure you do so before initializing
Google Mobile Ads SDK.

Here's an example of how to call the `initialize()` method on a background
thread within an Activity:  

### Java

    new Thread(
            () -> {
              // Initialize the Google Mobile Ads SDK on a background thread.
              MobileAds.initialize(this, initializationStatus -> {});
            })
        .start();  
    https://github.com/googleads/googleads-mobile-android-examples/blob/6252f89e35ae5b73053ed3f74bf551114920b7ad/java/admob/BannerExample/app/src/main/java/com/google/android/gms/example/bannerexample/MyActivity.java#L208-L217

### Kotlin

    CoroutineScope(Dispatchers.IO).launch {
      // Initialize the Google Mobile Ads SDK on a background thread.
      MobileAds.initialize(this@MainActivity) {}
    }  
    https://github.com/googleads/googleads-mobile-android-examples/blob/6252f89e35ae5b73053ed3f74bf551114920b7ad/kotlin/admob/BannerExample/app/src/main/java/com/google/android/gms/example/bannerexample/MainActivity.kt#L176-L185

## Select an ad format

Google Mobile Ads SDK is now imported and you're ready to implement an ad.
AdMob offers a number of different ad formats, so
you can choose the one that best fits your app's user experience.

### Banner

![](https://developers.google.com/static/admob/images/format-banner.svg)

Banner ad units display rectangular ads that occupy a portion of an app's
layout. They can refresh automatically after a set period of time. This means
users view a new ad at regular intervals, even if they stay on the same
screen in your app. They're also the simplest ad format to implement.  

[Implement banner ads](https://developers.google.com/admob/android/banner)

### Interstitial

![](https://developers.google.com/static/admob/images/format-interstitial.svg)

Interstitial ad units show full-page ads in your app. Place them at natural
breaks and transitions in your app's interface, such as after level completion
in a gaming app.  

[Implement interstitial ads](https://developers.google.com/admob/android/interstitial)

### Native

![](https://developers.google.com/static/admob/images/format-native.svg)

Native ads are ads where you can customize the way assets such as headlines and
calls to action are presented in your apps. By styling the ad yourself, you can
create a natural, unobtrusive ad presentations that can add to a rich user
experience.  

[Implement native ads](https://developers.google.com/admob/android/native)

### Rewarded

![](https://developers.google.com/static/admob/images/format-rewarded.svg)

Rewarded ad units enable users to play games, take surveys, or watch videos to
earn in-app rewards, such as coins, extra lives, or points. You can set
different rewards for different ad units, and specify the reward values and
items the user received.  

[Implement rewarded ads](https://developers.google.com/admob/android/rewarded)

### Rewarded interstitial

![](https://developers.google.com/static/admob/images/format-rewarded-interstitial.svg)

Rewarded interstitial is a new type of incentivized ad format that lets you
offer rewards, such as coins or extra lives, for ads that appear automatically
during natural app transitions.

Unlike rewarded ads, users aren't required to opt in to view a rewarded
interstitial.

Instead of the opt-in prompt in rewarded ads, rewarded interstitials require an
intro screen that announces the reward and gives users a chance to opt out if
they want to do so.  

[Implement rewarded interstitial ads](https://developers.google.com/admob/android/rewarded-interstitial)

### App open

![](https://developers.google.com/static/admob/images/format-app-open.svg)

App open is an ad format that appears when users open or switch back to your
app. The ad overlays the loading screen.  

[Implement app open ads](https://developers.google.com/admob/android/app-open)

## Additional resources

The [Google Mobile Ads repository](https://github.com/googleads/googleads-mobile-android-examples) on GitHub demonstrates
how to use the different ad formats that this API offers.