Skip to content
Development
Skill

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

Migrates Android applications from the old, legacy Google Mobile

From plugin
skills
22k178 skills1 MCP

Claude Code

$ npx -y skills add google/skills --skill google-mobile-ads-android-migrate-to-next-gen --agent claude-code

SKILL.md

google-mobile-ads-android-migrate-to-next-gen.SKILL.md
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:

        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: VideoOptions)`
  • **Removal**: Delete all "Mute This Ad" logic; it is unsupported in GMA

Next-Gen SDK.

  • **MediaView**: `NativeAd` no longer has a direct `mediaView` variable; use

`registerNativeAd(nativeAd, mediaView)` to associate the ad with the view.

Ad preloading

  • Unless specified in the mapping table, ad preloading methods in the GMA

Next-Gen SDK retain the same API signatures and parameters as the Old SDK.

API Mapping

This table covers the main classes and their GMA Next-Gen SDK equivalents.

| Feature | Old SDK Import (`com.google.android.gms.ads...`) | GMA Next-Gen SDK Import (`com.google.android.libraries.ads.mobile.sdk...` ) | |:---------------------------|:-------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | **Core** | | | | Initialization | `MobileAds` | `MobileAds`, `initialization.InitializationConfig` | | Initialization Listener | `initialization.OnInitializationCompleteListener` | `initialization.OnAdapterInitializationCompleteListener`

Read more
@google
Ships withskills

This repository contains Agent Skills for Google products and technologies, including Google Cloud.

22k178 skills1 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
21.7k
Star history of google/skills on GitHub, a chart by star-history.com

Other skills on skills.

finding-google-skills

finding-google-skills

Google platform decision and setup guidance, loaded on demand from Google's skill catalog. Use when a developer is choosing or…

@google@googleInstall Skill
gcloud

gcloud

Provides safety-critical validation, guardrails, and data reduction for gcloud CLI operations across Google Cloud Platform (GCP)…

@google@googleInstall Skill
google-cloud-recipe-auth

google-cloud-recipe-au…

Provides expert guidance on Identity and Access Management (IAM) and authenticating and authorizing to Google Cloud services and…

@google@googleInstall Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills11d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc12d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react1d252k
@facebook@facebookInstall Skill

Questions about google-mobile-ads-android-migrate-to-next-gen.

Which coding agents can use google-mobile-ads-android-migrate-to-next-gen?
google-mobile-ads-android-migrate-to-next-gen installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.