Skill detail

google-mobile-ads-android-migrate-to-next-gen

Migrates Android applications from the old, legacy Google Mobile Ads (GMA) SDK (com.google.android.gms:play-services-ads) to the new GMA Next-Gen SDK (com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk). Provides comprehensive mapping tables for imports, classes, and method signatures to help determine migration steps. Use when migrating an existing Android codebase from the old, legacy GMA SDK to GMA Next-Gen SDK.

Why we recommend it: Android-specific migration of Google Mobile Ads SDK, directly Android development work.

MatchDirectRecommended for Android Development
Sourcegoogle/​skillsExternal source
Reported installsNot reportedPopularity signal only

Inspect before use

Read the source instructions and check the requirements before you install this skill.

Saved source preview

SKILL.md

The saved excerpt is a snapshot from when this skill was listed. The external source remains the complete and most current version.

---
name: google-mobile-ads-android-migrate-to-next-gen
description: Migrates Android applications from the old, legacy Google Mobile
  Ads (GMA) SDK (com.google.android.gms:play-services-ads) to the new GMA
  Next-Gen SDK (com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk).
  Provides comprehensive mapping tables for imports, classes, and method
  signatures to help determine migration steps. Use when migrating an existing
  Android codebase from the old, legacy GMA SDK to GMA Next-Gen SDK.
metadata:
  version: 1.1.0
  category: GoogleAds
---
# AI Migration Agent Instructions for the Google Mobile Ads SDK

## Migration Workflow

Use this checklist to track your migration progress:

*   **Configure Gradle**:
    -   [ ] Replace `com.google.android.gms:play-services-ads` with the latest
        stable version of
        `com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk`. If you
        cannot access Maven directly, run the following command to fetch the
        latest version. The version returned in the `latest` tag is the latest
        version of the GMA Next-Gen SDK:

        ```bash
        curl -sS https://dl.google.com/dl/android/maven2/com/google/android/libraries/ads/mobile/sdk/ads-mobile-sdk/maven-metadata.xml | sed -n 's/.*<latest>\(.*\)<\/latest>.*/\1/p'
        ```

    -   [ ] Update `minSdk` (24+) and `compileSdk` (34+).
    -   [ ] Exclude `play-services-ads` and `play-services-ads-lite` from all
        dependencies globally in the app-level build file to avoid duplicate
        symbol errors.
    -   [ ] Sync Gradle before moving on to the next step.
*   **Per-File Migration**:
    -   [ ] Refactor the codebase following the API Mapping and Method Mapping
        tables to migrate imports, class names, and method signature to GMA
        Next-Gen SDK.
*   **Verify and Build**:
    -   [ ] Run `gradle build -x test` to confirm a successful clean build.
        Resolve any GMA SDK related compile errors.

## Core Migration Rules

*   **App ID Usage**: **Always** use the value of the
    `com.google.android.gms.ads.APPLICATION_ID` meta-data tag from
    `AndroidManifest.xml` for the `applicationId` in `InitializationConfig`.
    *   *Constraint*: Preserve the `<meta-data>` tag in the manifest; it is
        still required for publishers using the User Messaging Platform SDK.
*   **Initialization Sequence**:
    1.  Call `MobileAds.initialize()` on a background thread.
    2.  Ensure `initialize()` is called **before** any other SDK methods.
    3.  If using `RequestConfiguration`, bundle it into
        `InitializationConfig.Builder.setRequestConfiguration()`. **Do not**
        call `MobileAds.setRequestConfiguration()` before initialization.
*   **UI Threading**: **MANDATORY**: Callbacks in GMA-Next Gen SDK are invoked
    on a background thread. **ALL UI-RELATED OPERATIONS** (e.g., Toasts, View
    updates, Fragment transactions) **MUST** be wrapped in `runOnUiThread {}` or
    `Dispatchers.Main.launch {}` within GMA SDK callbacks. SKIPPING THIS STEP
    WILL CAUSE THE APPLICATION TO CRASH.
*   **Mediation**: Classes implementing
    `com.google.android.gms.ads.mediation.Adapter` MUST continue using
    `com.google.android.gms.ads`.

## Format Specifics

### Banner Ads

*   Use `com.google.android.libraries.ads.mobile.sdk.banner.AdView` for loading
    GMA Next-Gen SDK banners.
*   The following API checks if a banner is collapsible:
    `adView.getBannerAd().isCollapsible()`.

### Native Ads

*   **NativeAdLoader**: `NativeAdLoader` is abstract and cannot be instantiated.
    It is used statically (e.g., `NativeAdLoader.load(...)`).
*   The following APIs are now set on the `NativeAdRequest.Builder`:
    *   `.setCustomFormatIds(customFormatIds: List<String>)`
    *   `.disableImageDownloading()`
    *   `.setMediaAspectRatio(mediaAspectRatio: NativeMediaAspectRatio)`
    *   `.setAdChoicesPlacement(adChoicesPlacement: AdChoicesPlacement)`
    *   `.setVideoOptions(videoOptions: VideoOption
Read the full source on GitHub (opens external page)
Context

Related work