Ad Network Guide

Playable Ads for Google Ads & AdMob

Google Ads and AdMob give mobile app advertisers access to the largest advertising inventory in the world, spanning Google Search, Google Display Network, YouTube, and the AdMob in-app network. Google's App campaign format consolidates placement across all of these surfaces under a single campaign configuration: machine learning automatically allocates budget toward the placements and audiences most likely to drive installs or in-app events. For gaming advertisers, AdMob's in-app inventory alone covers hundreds of millions of daily active users across Android and iOS globally.

ZIP (index.html + main.js)Size limit: 5 MBNot used — ExitApi

Playable ads on Google use a different technical mechanism than other networks: instead of MRAID, Google provides its own ExitApi (you load exitapi.js in the head and call ExitApi.exit()) which triggers the store redirect when the player taps your CTA. ExitApi.exit() is the exit Google documents, so a creative that only calls mraid.open() has no store exit Google reads, which is why a Google export is not interchangeable with an MRAID network's export. The Playable Ads Maker swaps the CTA call for you when you select the Google preset.

The Playable Ads Maker's Google export is a ZIP with two files at the root: index.html, which loads exitapi.js and carries the ad.orientation meta tag, and main.js, which carries the playable itself with every asset inlined. You then create an App campaign in Google Ads, add a Playable as an asset type, and upload the ZIP. Google places it from there: you do not pick placements or set bids per publisher, and delivery is optimised across Search, Display, YouTube and AdMob at once.

Export specifications

SpecificationValue
Accepted formatZIP
Playable Ads Maker exportsZIP (index.html + main.js)
Published size limit5 MB
Playable Ads Maker builds to5 MB
MRAIDNot used — ExitApi
Store-exit callExitApi.exit()
External requestsNone allowed at runtime
Files inside the ZIPNo more than 512 (Google)
Supported orientationsPortrait and landscape (ad.orientation meta tag)
Networks coveredAdMob, Google Ads App campaigns, Google Display Network
Review time estimateMost ads are reviewed within 1 business day (Google)

Size, format, MRAID and store-exit rows are taken from Google Ads / AdMob’s own documentation; “Playable Ads Maker builds to” is our exporter’s own target. Every network side by side: playable ad size limits by network.

If you already have a build, drop the ZIP into the free Playable Ad Spec Checker and it will grade it against these Google Ads / AdMob requirements (size, packaging, MRAID and the store-exit call) in your browser, with nothing uploaded.

Check my Google Ads / AdMob playable ad

How to upload to Google Ads / AdMob

  1. Build your playable in the Playable Ads Maker. Google's store exit is ExitApi.exit() rather than MRAID, so the Google / AdMob export is a separate build from the MRAID networks'. Select it rather than reusing another network's file.
  2. Select the Google / AdMob preset in the Export modal. The exporter automatically replaces mraid.open() with Google's ExitApi.exit(), loads exitapi.js in the head, and generates both index.html and main.js.
  3. Export to download a ZIP archive. Open it and verify that index.html and main.js are at the root level of the ZIP with no sub-folders containing the main files.
  4. Verify the .ZIP itself is 5 MB or smaller and holds no more than 512 files. Google states the limit against the .ZIP you upload (About HTML5/Playable ads for App campaigns).
  5. In Google Ads, create a new App campaign, choose your app from the store, and proceed to the Assets step. Select Upload a new creative and choose Playable as the asset type.
  6. Upload the ZIP file using the file picker in the Assets step. Google's validator analyses the ZIP structure and checks for the ExitApi call. Any validation error will display inline with specific guidance.
  7. Complete the campaign configuration (budget, bidding strategy, geo targeting) and submit for review. Google will notify you via email and dashboard alert when the playable is approved.

File size tip

Google Ads / AdMob publishes a limit of 5 MB; Playable Ads Maker builds Google Ads / AdMob exports to 5 MB. If your export is too large, reduce image resolution, switch to WebP at 75–80% quality, or trim animation frame counts in the Playable Ads Maker Export modal. The live size estimate updates as you adjust each setting.

Tips for Google Ads / AdMob playable ads

ExitApi.exit() does nothing outside Google's container, and that is expected

The exported bundle loads Google's exitapi.js from tpc.googlesyndication.com, so opening index.html in a browser for final QA does define ExitApi and the CTA tap raises no error. It goes nowhere, because the store redirect only happens inside Google's ad container. A silent CTA in Chrome is therefore not a bug and needs no stub; what you should check locally is that the tap is registered and the End Card behaves, and leave the destination to Google.

Let Google's ML choose placements rather than restricting them

Google App campaigns are designed for full automation. The algorithm decides in real time whether your playable should run on AdMob, Display Network, or YouTube based on which placement gives the highest probability of your chosen conversion event. Restricting placements manually typically reduces ML signal and increases your effective CPI. Start with all placements enabled, monitor performance by channel in the campaign report after one week, and only exclude specific placements if a channel is performing significantly below your CPA threshold.

Keep the ZIP structure flat, with no nested asset folders

Google measures the .ZIP and allows no more than 512 files inside it, and a ZIP that wraps its entry file in a folder is a common cause of a confusing upload error. The Playable Ads Maker inlines every asset into main.js as data URIs, so the exported ZIP is two files at the root (index.html and main.js) and nowhere near the file-count limit. If you modify the HTML after export, double-check that you have not added any external asset references.

Playable Ads Maker does the Google Ads / AdMob packaging (ZIP (index.html + main.js)), wires the ExitApi.exit() store exit and inlines every asset when you export.

Build your playable ad

Frequently asked questions

Why does Google use ExitApi instead of MRAID for playable ads?

Google built its own lightweight SDK bridge for AdMob and Google Ads because it gives Google full control over the store redirect flow, attribution, and SKAdNetwork handling on iOS. MRAID is a standard defined by the IAB Tech Lab and requires a third-party SDK implementation in the publisher app. Google chose to use its own GMA (Google Mobile Ads) SDK instead, which provides the ExitApi. This means Google playables are not compatible with MRAID-based networks without re-exporting.

What is the 5 MB size limit measured against: the ZIP or the unzipped content?

The .ZIP. Google's own page says to "upload your asset as a .ZIP file with a maximum size of 5MB and no more than 512 files within the .ZIP", so it is the archive you upload that is measured, and the file count matters as much as the size. The Playable Ads Maker's export modal shows the estimated size before you build, and its Google export inlines assets rather than shipping them as separate files, so a Google bundle is two files at the root and never approaches the 512-file limit.

Does my playable run on both AdMob and Google Display Network simultaneously?

Yes. When you upload a playable in a Google Ads App campaign, Google's ML automatically distributes it across AdMob (in-app), Google Display Network (mobile web and app), and YouTube (pre-roll and in-stream) based on which placement is expected to drive your target conversion. You cannot restrict to only AdMob without switching to a manual campaign type, which loses the ML optimisation benefits.

Can I test the Google ExitApi call before uploading?

Partly. The exported bundle loads Google's exitapi.js, so ExitApi.exit() exists and can be called wherever you open the file, but the redirect itself only happens inside Google's ad container, so locally the tap is registered and nothing navigates. The real test is after upload: Google previews the creative in the Google Ads interface, and it re-checks the bundle at upload time and reports problems inline.

How long does Google App campaign playable review take?

Google publishes one number for this: "Most ads are reviewed within one business day" (The ad review process). Some take longer, and Google does not publish a separate figure for playables, so treat anything beyond a day as possible rather than promised. Google checks that the playable gameplay matches the advertised app and that the experience does not contain prohibited content. Creatives that accurately represent the app's core mechanic (without exaggerating difficulty or adding gameplay elements not present in the real app) tend to clear review fastest.

Building for Google Ads / AdMob: strategy guides

Related ad networks

Social

Meta (Facebook & Instagram)

ZIP (index.html + main.js) · 2 MB HTML (5 MB ZIP)

Social

TikTok Ads

ZIP (index.html + main.js + config.json) · 5 MB

Mobile DSP

InMobi

Single HTML file · 5 MB

← Back to all ad networks