Use the correct test identifier
Google's Android sample app ID is:
ca-app-pub-3940256099942544~3347511713
This is a public sample identifier for development, not your production app's registration. A banner demo ad-unit ID is a separate value and belongs in the ad request or view configuration for that format.
| Identifier | Typical role |
|---|---|
ca-app-pub-…~… |
SDK application identity |
ca-app-pub-…/… |
Ad placement identity |
| Android package name | Android app identity, such as com.example.app |
| Firebase app ID | Firebase project/app configuration, not an AdMob substitute |
Validate the delimiter before investigating more complicated SDK failures.
Put it in the selected SDK's configuration
The legacy Android SDK uses com.google.android.gms.ads.APPLICATION_ID metadata under <application>. The Next-Gen SDK uses its documented initialization configuration. Unity's plugin has its own editor settings that feed the native build.
Do not copy an XML snippet for one SDK family into another integration without checking its guide. A “Missing application ID” error should trigger inspection of the merged release manifest or initialization configuration, not random network retries.
Separate debug and release values
Use build variants or controlled configuration so development identifiers do not accidentally ship. Add a release check that searches the final configuration for public sample IDs and confirms the intended production app and placement pairing.
Conversely, do not test interactions with live ads merely because the release configuration is available. Register test devices when working with your own ad units.
Verify the final artifact
A configuration file edited in the project may be overridden during manifest merging or framework export. APKLint's advertising checker can help inspect the resulting metadata, but it cannot confirm ownership of an AdMob account.
Follow the official setup instructions and test-ad guide. Keep app identity, placement identity and test-device status as three separate checks so a successful test banner does not conceal a production configuration mistake.
Create two configuration rows before copying an identifier
Write down an application-level AdMob ID and a format-specific ad-unit ID as separate fields. The application ID contains a tilde; an ad-unit ID contains a slash. For an Android demo build, Google's public sample application ID is ca-app-pub-3940256099942544~3347511713. It identifies the sample app configuration, not a placement that can be passed directly to a banner request.
Consult the Android setup example for the selected SDK path and the test-ad reference for the placement. Keep these fields named clearly in build configuration, such as an app-ID setting and a banner-unit setting. A vague variable named adsId invites accidental interchange.
Verify which value survived resource merging
Suppose a development flavor overrides the app ID while the main manifest refers to a string resource. Inspect the merged manifest and resolved resource for that flavor, then inspect the release flavor separately. Looking only at the main manifest's resource name does not reveal which value the installed variant ultimately receives.
Intentionally exchange the two fields in a disposable configuration test and confirm that your build-time validation detects the mismatch. Restore the supported identifiers before making an ad request. This test is about configuration validation; an invented production identifier or a request against another publisher's unit provides no useful evidence.
Keep demo configuration clearly visible in the build's diagnostic screen or development log without exposing account credentials. When a tester reports an initialization failure, record the variant, SDK family and whether the app-level identifier was resolved. That information is more actionable than a screenshot showing an empty ad container.
Before distributing the intended production artifact, review its actual packaged configuration against the application's own registered settings. Do not infer that every sample value was replaced because one source-file search returned no result; generated resources and flavor overrides also participate. A sample app ID is public documentation data, but accidentally shipping it is still a release-configuration mistake that can invalidate the assumptions behind the advertising test.
Sources and further reading
- Google: Legacy Google Mobile Ads SDK setup
- Google: Enable test ads on Android
- Google Mobile Ads: Next-Gen Android SDK setup
Reference review: 29 September 2026. Examples illustrate the workflow; check your installed versions, release artifact and account-specific Console requirements before applying them. This guide is not a claim that APKLint executed your project or verified your private account.


