Professional Documents
Culture Documents
SEA Playbook-2023Q4
SEA Playbook-2023Q4
SEA Playbook-2023Q4
SEA PLAYBOOK
Updated Q4 2023
Owner: Frankchenhua@
Proprietary + Confidential
ADMOB WEBINAR
Playbook Agenda
1. Starter Checklist
2. Market Report/Insights
3. Formats & Best practices
4. Admob Mediation & Platform Update
5. Showrate/Match Rate Optimization
6. Common Policy Clarifications
7. Quality & Rising Stars (Play)
8. Billing/Payment Profile Shift
9. Privacy Updates
10. Troubleshooting guide for common issue
Proprietary + Confidential
Starter Checklist
What does AdMob offer?
Demand
Publisher Brand Segmentation
Diversity and
Safety and targeting
Strength
and more!
Confidential + Proprietary
Demand Diversity and Strength
Offering What is it? External Links
SDK Required bidding sources 7 bidding sources currently require a 3p SDK to enable SDK Required bidding sources
Custom Events integrate networks not supported in the Setting up custom events in AdMob
Custom Events
UI into your mediation setup using custom parameters
Click to Accept contracting within Begin contracting with 3p networks without leaving the Bidding partners that offer contracting within
AdMob UI AdMob UI for faster turnaround times AdMob
Confidential + Proprietary
Publisher Brand Safety
Offering What is it? External Links
Correctly setup your app-ads.txt and ensure that your Setting up app-ads.txt in AdMob
App-ads.txt and troubleshooter
page is crawlable using our troubleshooter App-ads.txt troubleshooter
Confidential + Proprietary
Segmentation and targeting
Offering What is it? External Links
Setting the Ad Content Rating at app and
You can set the maximum ad content rating for a specific
account level
Ad Content Rating app, your entire account, or ad request within the AdMob
Setting Ad Content Rating at request level
user interface to ensure appropriate ads.
Android iOS Unity
Segmentation for Mediation groups by
Choose the targeting for your mediation groups based
Platform (iOS vs. Android), Format, Setup AdMob targeting within mediation groups
on request dimensions
IDFA vs. non-IDFA, country
Content mapping for apps enables you to deliver
contextually relevant ads to your users and helps ensure
Content Mapping Setting up content mapping in AdMob
ads are placed near content that’s suitable for your
advertisers.
Frequency capping at an ad unit and Frequency capping lets you limit the number of times ads Setting up app and ad unit level frequency
app level appear to the same person. capping
Confidential + Proprietary
Performance Test and Platform Migration
Offering What is it? Links
Pull performance information for your AdMob setup
Reporting API Developer Documentation
across a number of dimensions and metrics
Manage your AdMob setup programatically including
Platform Management API creating apps and ad units and modifying mediation Developer Documentation
groups and ad unit mappings
Quickly and easy test your AdMob mediation and bidding Creating A/B tests
Mediation A/B Testing
setup using the UI Analyzing A/B Tests
Receive information about the loaded ad including
Detailed response info mediation adapter, ad response id, latency and other Android iOS Unity
information
An in-app overlay that enables authorized devices to
Ad Inspector perform real-time analysis of test ad requests directly Android iOS
within a mobile app with no coding required.
Use test ads to check your AdMob implementation and
Test Ads Android iOS Unity
test devices to test with production ads
Manage test devices within the UI and add device
Test device management within the UI Setting up test devices in the UI
gestures to enable Ad Inspector
Confidential + Proprietary
Linking and reporting
Offering What is it? External Links
Link your AdMob app(s) to Firebase so that you can use Linking your apps to Firebase
Linking to Firebase
your linked Google Analytics account data in AdMob.
Enabling user metrics will give you access to new data and
User Metrics powerful reports that may help inform your monetization Enabling user metrics
strategy.
AdMob insights detects anomalies in your account and
notifies you about deviations in key business metrics.
Using the AdMob insights card to detect
AdMob Insights Insights can help you identify changes to make in your
anomalies
underperforming apps and identify successes in your
outperforming apps.
The variety of reports in AdMob allows publishers to AdMob Network Report
User Activity, Bidding, Mediation, AdMob analyze any part of their ad monetization strategy from Mediation Report
Network reports eCPM to user activity. The Serving Restriction dimension User Activity Report
allows publishers to analyze NPA traffic. Bidding Report
Linking your app to a supported store is an important step
Linking to app stores Linking your app to a store
in your app readiness process.
See account and app performance at a glance without
App and account overview Using the app and account overview
building additional reports
As long as you use the Google Mobile Ads SDK, you don't
SDK collected user data need to write any additional code to collect a number of Dimensions collected by the GMA SDK
user properties automatically.
Confidential + Proprietary
Direct deals and cross promotion
Offering What is it? External Links
Impression and click goals for direct Setup specific goal types based on number or
Choosing the right campaign goal type
sold and cross promotion campaigns percentage of clicks or impressions
Set up your campaign line items with mediated eCPMs to
Mediated campaign line items Selecting the Mediated Campaign goal type
serve within your mediation setup
Limit the number of impressions served by direct sold or
Frequency Cap Campaigns Setting frequency capping on campaigns
cross promotion campaigns at a campaign level
AdMob campaigns support a wide range of ad types
Supporting Text, Image, Video, HTML5, including Responsive Display Ads which automatically
Finding the right ad type for your campaigns
Responsive Display Ad creative types adjust their size, appearance, and format to fit available
ad formats.
Confidential + Proprietary
UA capability - ROAS measurement & optimization
Offering What is it? Links
iLTV pingback allows impression level LTV as part of the
Calculating LTV using Paid Events via ad response which can be aggregated to calculator user Understanding Life Time Value
iLTV Pingback level LTV. Integration with 3p AAPs including Adjust is Android iOS Unity
simple
Use the cohort report to gain insight into how your users
Cohort Report are behaving and being monetized since installing your Using the Cohort Report
app.
Confidential + Proprietary
AdMob setup and navigation
Offering What is it? External Links
Change history provides you with an overview of
historical changes to your account. It includes details
Change history Change history within AdMob
such as when and where the change was made and who
made it.
Manage user roles within AdMob, rather than AdSense,
User Management and set up your organization to ensure everyone has the Setting up user management
correct access
The AdMob Multiple Customer Management (MCM) tool
Multiple Customer Management lets you manage your clients’ AdMob accounts with the Using MCM within AdMob
same visibility and control as the publishers themselves.
Your AdMob account has maximum limits on areas like
the maximum number of active ad units you can have.
AdMob account limits While you'll likely never notice them, keep these limits in AdMob account limits
mind when planning monetization, campaigns, and
mediation in AdMob.
Confidential + Proprietary
Formats
Offering What is it? External Links
App open ad units appear when the user opens your app App Open Overview
App Open or switches back to your app. App open ad units appear App Open Guidance
on the loading or splash screen. Android iOS Unity
Banner ad units display rectangular ads that occupy a
Adaptive banner; Collapsible Banner; portion of an app's layout. They stay on screen while
Landscape adaptive banner; Exit users are interacting with the app, either anchored at the Android iOS Unity
Banner; top or bottom of the screen or inline with content as the
user scrolls.
Rewarded interstitial is a new type of incentivized ad
format that allows you to offer rewards, such as coins or Using Rewarded Interstitial
Rewarded Interstitial
extra lives, for ads that appear automatically during Android iOS Unity
natural app transitions.
Native ads match the look and feel of your site or app
Native Advanced; Full Screen Native Android iOS Unity
and provide a better user experience for your visitors.
Interstitial ads are full-screen ads that cover the interface
Interstitial Android iOS Unity
of their host app.
Rewarded ads are ads that users have the option of
Rewarded Android iOS Unity
interacting with in exchange for in-app rewards.
Confidential + Proprietary
Opt-in to revenue and performance growth tips
AdMob:
● Steps: Login to AdMob > Account> Settings > Email preferences > Tick on "Customized help and performance suggestions" > Save
● GIF
AdManager: Steps: AdMin > Access & Authorization > Select user > Under Notification settings turn toggle on for "Optimization tips, best
practices etc."
● GIF
AdSense: Steps: Click Account > Personal settings > In "Email preference" section, select "performance suggestions" > Click Save"
● GIF
Confidential + Proprietary
Proprietary + Confidential
Market
Report/Insights
Q3 Ads Growth by category
Q3 Top Genres and YoY Growth
Gaming Non-Gaming
Casual Games -3.32% United States Network Connectivity 51.28% United States
Puzzle Games 2.03% United States Calling & Messaging -3.55% United States
Weather 16.72% United States
Card Games -8.46% United States
News & Magazines -15.68% United States
Word Games 2.76% United States
News Aggregators 34.44% United States
Action Games -27.47% United States
Simulation Games -0.11% United States Painting & Drawing -3.61% United States
Barcode Scanners -4.68% United States
Sports Games -6.15% United States
TV & Movies 25.93% United States
Racing Games -22.71% United States
Caller ID -14.64% India
Role Playing Games 0.52% United States
Photo Editors -7.78% United States
Board Games -16.36% United States
Gaming Non-Gaming
Casual Games 27.40% United States Photo & Video Sharing 28.89% United States
Role Playing Games -8.21% Japan TV & Movies 4.24% United States
Strategy Games -34.30% United States Meet New People 22.40% United States
Action Games -32.10% United States Comics & Manga 30.74% Japan
Casino Games 8.50% United States Music Streaming -1.20% United States
Simulation Games -1.52% United States Photo Editors 40.20% United States
Puzzle Games 17.82% United States Storage & Backup 52.67% United States
Card Games 1.52% United States Calling & Messaging 10.77% United States
Board Games 279.72% United States Sports & Recreation 16.34% United States
Gaming Non-Gaming
Formats Best
Practices
Proprietary + Confidential
Adaptive Banner
Adaptive anchor
Proprietary + Confidential
examples Standard (non-adaptive) Smart Banner Adaptive Banner
Banner Full Screen Width (360) Slot size 414x65
Slot size 320x50 50 Height Ad size 414x65
Ad size 320x50
Adaptive in-line examples
Proprietary + Confidential
Implementation
references Follow the steps below to implement a simple adaptive anchor banner.
App-side Code
Remove or comment out any Smart Banner implementation code. Then, follow these steps to
create a simple Adaptive Banner in its place:
1. Create an AdView object and set your ad unit ID (or use a test ad unit ID).
2. Get an adaptive banner ad size. The size you get will be used to request your adaptive banner. To get
the adaptive ad size, make sure that you:
a. Get the width of the device in use, or set your own width if you don’t want to use the full width of
the screen.
b. Use the appropriate static methods on the ad size class, such as
AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(context, width) to get an
adaptive AdSizeobject for the chosen orientation.
c. Set the ad size on the banner ad view using AdView.setAdSize().
3. Create an AdRequest object and load your banner using the loadAd() method on your prepared
ad view, just like you would with a normal banner request.
For more information, review our implementation guide: Banner Ads | Android | Google Developers
Proprietary + Confidential
+20%*
expected eCPM increase when replacing traditional banner units
with adaptive banners in horizontal layouts
*While improved performance is expected, every implementation is unique and so the uplift is not guaranteed
Proprietary + Confidential
Levels
tracks
Garage
Controls Play
Proprietary + Confidential
150 5
Days
Daily Reward
Levels
tracks
Garage
CASE STUDY
200% Sustained
Boost in eCPM for their
User engagement
customized banner and retention
Proprietary + Confidential
1. Determine the screen width (less decorations) to use for the ad width
private AdSize getAdSize() {
WindowMetrics windowMetrics = getWindowManager().getCurrentWindowMetrics();
Rect bounds = windowMetrics.getBounds();
3. Load an ad
AdRequest request = new AdRequest.Builder().Build();
Banner ads
on splash screen
Proprietary + Confidential
● Unlocking new placement: This gives an opportunity to unlock a new placement opportunity for ads while
keeping the branding (name, logo, full page color theme) of the app intact on a large part of the screen thus
ensuring a better UI experience and brand recall
Proprietary + Confidential
It will be guided by the same policy as available for Banner Ads. Care should be taken to balance the ad
density to ensure there aren’t “More ads or paid promotional material than publisher-content”
Mediation support for banner ads on the splash screen will be the same as regular banners. Networks
supported will be the same as regular banners or adaptive banners. Please check the following link to find out
which networks are being supported for AdMob/ Ad Manager banners.
1. Determine the screen width (less decorations) to use for the ad width
3. Load an ad
FAQs
● My publisher is already using App Open, should they use Splash Banner?
If they have App Open on cold start, they should not shift to Splash Banner as this could lead to revenue
downside. However, if they are not using App Open on cold start but are using only for background to
foreground, they can use Splash Banner on cold start.
Banner ads
at exit placement
Proprietary + Confidential
● Step 1: Create a new banner for your app called “Exit banner_appname” and pre-cache it
● Step 2: Create a “Confirm Exit” dialog box which is triggered when the user clicks the back button to
exit
Collapsible Banner
Proprietary + Confidential
Enhanced revenue
Easy to implement performance Collapsible action
Upgrade existing banner ad 30-50%* higher CTR/CPM Only ad format with an option
units by adding a parameter than standard Banner to continue advertising
engagement after minimizing
■ No format maintenance Covering half the screen
■
the ad
■ Continuous user testing drives more engagement
and UX optimization and higher eCPMs
■ Continuous optimization
for latency
*An internal Google study shows that alpha publishers see approximately 30-50% CTR / CPM than standard banner. Performance may vary depending on detailed settings.
Proprietary + Confidential
Doc Converter
Doc Converter
Brain Sharper-Puzzle
Sharp your Mind
Level Up
Level Up
Level 002
Level 002
Your Score
Your Score
3200
3200
221 5
Replay
221 5
Casual Game with levels
Replay
Home Next
Home Next
Collapsible banner is placed at the end
of the gameplay where user is not
interrupted by and key main actions
Adventure Duck
Play Now!
How to implement
collapsible banner
Proprietary + Confidential
adRequest.Extras.Add("collapsible", "top");
bannerView.LoadAd(adRequest);
Proprietary + Confidential
1. When requesting a collapsible banner ad, you should request an ad that is the size you would like
to use in the regular (collapsed) banner state.
a. GAM/AdMob will automatically generate the expanded size on the backend based on the
screen size
2. Collapsible banner can only be anchored to either top or bottom of the screen
3. Publisher must manually disable the auto-refresh in the Frontend
4. Collapsible banner is only supported for SDK version 7.35.2+
5. Collapsible banner is not supported in landscape mode
6. Implement the format using the documentation for AdMob (link) or GAM (link)
7. Share feedback as you implement and test
a. What’s working and not working
b. Any questions / concerns, reach out directly to the Collapsible banner team via this form
Proprietary + Confidential
Notice: It is possible that you will get a normal banner back during testing. The reason is in reality, when
there is no ad source for collapsible banner, a normal banner will be returned.
Proprietary + Confidential
Banner Plugin
What is Banner Plugin?
A code script / library for publishers that help implement all different banner formats easily
Core functionality:
● Flexibility to change banner types without detail implementation needed knowledge
Benefit:
● Easy control. Control banner remotely with embedded Remote Config
● Easy testing. Support testing ability, with no extra coding required
Background
Problems to publishers:
Standard Banner
Adaptive Banner
Banner Plugin
Collapsible Banner
BannerPlugin(activity, findViewById(R.id.adViewContainer),
BannerPlugin.Config().apply {
this.defaultAdUnitId = "ca-app-pub-xxx"
this.defaultBannerType = BannerPlugin.BannerType.CollapsibleBottom
}
)
IOS (Swift)
RemoteConfig to control
the banner
BannerPlugin(activity, findViewById(R.id.adViewContainer),
BannerPlugin.Config().apply {
this.defaultAdUnitId = "ca-app-pub-xxx"
this.defaultBannerType = BannerPlugin.BannerType.CollapsibleBottom
this.configKey = "Name your remote config key here"
}
)
Special config for Collapsible Banner
Publisher is recommended to only request collapsible creative every 3 - 5 minutes for each
placement to balance revenue with user experience. The plugin currently follow that guidance.
By default, requests with type Collapsible banner are requested every 3 minutes (180 secs).
BannerPlugin(activity, findViewById(R.id.adViewContainer),
BannerPlugin.Config().apply {
this.defaultAdUnitId = "ca-app-pub-xxx"
this.defaultBannerType = BannerPlugin.BannerType.CollapsibleBottom
this.defaultCBFetchIntervalSec = 40
this.defaultRefreshRateSec = 20
Publisher can adjust the config if
}
necessary )
Estimated implementation time
Google team will follow up and provide support / update for this plugin. Any new banner formats will be planned to be
supported accordingly.
Proprietary + Confidential
Tip 1:
Be policy compliant when
implementing app open ads
Proprietary + Confidential
● Do not integrate an app open ad on an interstitial ad slot within your app content
Tip 2:
Pre-fetch app open ads
Proprietary + Confidential
● First open: If no cached app open ad to show, fetch app open ad #1 and store in cache.
● Second open: Show cached app open ad #1. Fetch app open ad #2 and store in cache.
● Third open: Show cached app open ad #2. Fetch app open ad #3 and store in cache.
Tip 3:
Control frequency cap of
app open ads
Proprietary + Confidential
Tip 4:
Consider ads expiration
Proprietary + Confidential
Additional tips
Proprietary + Confidential
Additional tips to help you get the most out of app open ads
● Show your first app open ad after your users have used your app a few times.
● App open ads perform best with apps that have a high frequency of opens per daily user.
● If you have a loading screen under the app open ad, and your loading screen completes loading
before the ad is dismissed, you may want to dismiss your loading screen in the
onAdDismissedFullScreenContent() method.
● Full documentations for iOS, Android
● Test your ads with Ads Inspector
Proprietary + Confidential
Rewarded
Proprietary + Confidential
The required action (e.g., “View this ad to receive 100 gold coins" or “View this ad to
receive a Sword of Slaying"). Icons may be used to describe the reward, so long as
such icons are clear to users of the app.
The in-app reward for completion of the action (e.g., “Get x2 the coins when you
watch a video with us"). Note that the reward must be redeemable from within the
app where the rewarded ad was placed
Simulation Games Rewarded Ads Best
Practices
Proprietary + Confidential
Simulation games
Simulation games
Success models
Model 1 Model 2 Model 3
Rewarded: permanently offered to choose Rewarded: 1-2+ ad units per session Rewarded: 2-3 ad units per session after
a new car always available extra time in the game passing every level (~every 3 minutes) to
gain extra time/currency
Interstitials: 3~5 interstitials per session: Interstitials: not visible
Interstitials: 2-3 ad units per session.
Shown after passing level in the game
When starting new game Banner: always shown at the bottom (~3 minutes after game launch)
no frequency/ refresh rate caps for any
No frequency caps on any ad units ad units
Mediation: using AdMob, FAN is the
Mediation: AdMob mediation with FAN second best performing network
Mediation: AdMob mediation with FAN
& Unity as top working networks
Proprietary + Confidential
Simulation games
Case study
rewarded
Pro tip - consistently visible rewarded ad!
During the car race, During the quest there During the gameplay as
there is an always-on is an always-on option boost, giving extra time
available option to to watch an ad for for the play to complete
watch ad for car extra tools the challenge
Proprietary + Confidential
Simulation games
Case study
rewarded
Pro tip - consider the best time to reward users!
Simulation games
Benchmarks
IAP vs Ad Revenue Share CPMs Ad Density (Impressions/DAU)
Android IOS Android IOS Android IOS
Market Top Apps Market Top Apps Market Top Apps Market Top Apps
Market Top Apps
IAP 69.22% 84.28% Rewarded $5.72 $6.91 $9.55 $11.25 Rewarded 0.01 0.05 0.01 0.04
Ad Revenue 30.78% 15.72% Interstitial $0.83 $2.09 $3.40 $4.93 Interstitial 0.07 0.04 0.05 0.06
Banner $0.43 $1.33 $1.53 $0.36 Banner 0.09 0.07 0.12 0.32
Native $0.22 $0.29 $0.53 $0.32 Native 0.00 0.02 0.02 0.00
Word games
Word games
Best practices
Ad Format Best Practice
Unlock a new complexity level or additional layout / topics for puzzles for watching an ad
Extra Occasionally offer new puzzle mechanics/weekly or monthly challenges as a limited offer to motivate loyal users
Provide extra energy/lives to dying characters to motivate users complete the level
Proprietary + Confidential
Word games
Success Models
Model 1 Model 2 Model 3
Interstitials:Using format between levels Interstitials: Top performing format (avg Rewarded: the best performing format
(avg eCPM €2.19, CTR 1.58%) eCPM €2.3, CTR 2.71%), used between the (eCPM €0.43, show rate 67.80%)
levels
Word games
Case study
rewarded
Pro tip - use rewarded as an additional
perk/hint!
Word games
Benchmarks
IAP vs Ad Revenue Share CPMs Ad Density (Impressions/DAU)
Android IOS Android IOS Android IOS
Market Top Apps Market Top Apps Market Top Apps Market Top Apps
Market Top Apps
IAP 63.69% 79.69% Rewarded $1.14 $3.53 $4.06 $9.42 Rewarded 0.06 0.10 0.05 0.10
Ad Revenue 36.13% 20.31% Interstitial $1.47 $2.75 $3.69 $5.06 Interstitial 0.15 0.16 0.13 0.32
Banner $0.10 $0.32 $0.13 $0.31 Banner 1.08 1.13 1.96 2.60
Native $0.18 $0.11 $0.72 $0.17 Native 0.00 0.02 0.01 0.04
1. User wishes to boost his 2. User opts to watch a 3. User views the 4. User gets more
profile to get new matches. rewarded video ad to boost rewarded video ad. matches in his profile.
his dating profile.
VivaVideo - Video Editor App
[Use case: Unlock new content (themes) in the app]
1. User wishes to unlock new theme 2.User gets prompted to 3. User views the 4.User unlocks the “Neon”
“Neon” by watching a rewarded watch a rewarded video ad rewarded video ad. theme after viewing the
video ad. to get that theme. rewarded video ad.
Malyalam Keyboard
[Use case: Unlock new themes in the app]
1. User wishes to 2.User gets prompted to 3. User views the 4.User unlocks theme for
unlock new theme watch a rewarded video ad rewarded video ad. 5 days after watching
to get that theme. rewarded video ad
SmartApps
[Use case: Unlock new games within the train booking app]
For the spenders For the non-spenders Rewarded & IAP options
Proprietary + Confidential
Admob Mediation
& Platform Update
Bidding partner update
Overview
What is it?
Google partner bidding (gBid) is an umbrella term for an in-development product that will allow Google to compete
in 3P RTB Apps auctions. The setup process is similar to mediation in that publishers will install a valid SDK and
create a partner bidding ad unit into their app. However, instead of competing in a mediation waterfall in app,
Google (Google Ads, Display & Video 360) will be able to compete in a 3P RTB ad auction for a specific ad
placement. Publishers that leverage AdMob for Google demand will be a fit.
Showrate/Matchrate
Optimization
Low Match Rate
Publishers can use following steps to troubleshoot their match rate issue
1. If account / app is created or started sending request less than 7 days, please wait.
2. Check if there are lots of blocking categories by using AdMob/AdSense blocking control?
a. Consider to unblock any suitable categories if possible
3. Any enabled Floor Setting / Google Optimized Floor?
a. Lower your floor price for better match rate
4. Check if all ad types (Image, Text, Video) are checked for the ad units
5. The app had app-ads.txt enabled in Play Store?
a. Make sure your app property is included in app app-ads.txt
6. Check your Policy Center or mailbox if there’s any notification from Google with regard of policy violation for noticed app / account.
Any policy violation will potentially cause the drop of Match Rate
a. Follow the steps that is described in the Policy Center page to have code change, update the app then press Fix button in
Policy Center page
7. App is Child Directed or Design For Family?
a. It is expected to see lower match rate on these apps
8. Check Error Code, Error Message for more information of actual error
9. If you still have any questions visit AdMob Help Center, or contact AdMob Support Team for assistance.
Proprietary + Confidential
Ads Cache
01
Ads Latency
Proprietary + Confidential
App
Started
Ad.load() onAdLoaded()
called
Ads Latency
Proprietary + Confidential
Impression Caught!
App
Started
Ads Latency
Proprietary + Confidential
Impression Lost!
Ad not loaded yet
App
Started
Ad.show()
Ad.load() onAdLoaded()
called
Ads Latency
Proprietary + Confidential
Impression Lost
=
Revenue Lost
Long activity start to Different Ad Formats If the Ad is requested Placements with high
first ad request expire after a fixed late, an impression opt-in should cache
latency interval oppt. is missed multiple Ads
02
Introduction to AdsCache
Proprietary + Confidential
Prefetching
Implementation Steps
3 Easy Steps
● Add the library as a Initialize the SDK with as little Just start showing Ads
dependency. as one line of code. wherever you wish.
● Updating the Example Example
AndroidMainfest file this.adsCache = new this.adsCache.showAd(AD_UNIT_ID
AdsCache(getApplicationContext( , MainActivity.this);
● Add a configuration file ));
to define Ads to cache
04
Testing Performance
#1 - Firebase A/B Testing [RECOMMENDED]
1 2 3 4 Final
Create a parameter in Fetch the parameter in the Run an A/B test on 25% Use Impressions/DAU and Use the library for all
Remote Config to switch App and based on it audience with a 50-50 ARPDAU as the key placements and release
between library and decide between the two between both strategies. metrics to compare. Use new build
existing logic methods. Release a build Use new ad unit ids for the show rate to find any
with default as the original both the variants to avoid anomaly.
method. Only for one historical data bias.
placement during the test.
#2 - Historical Comparison
1 2 3 4 Final
Integrate the library in the Monitor the performance Compare the Use Impressions/DAU and Use the library for all
app for 1 Ad Unit Id and of the Ad Unit active in the performance in AdMob for ARPDAU as the key placements and release
release the build library the Ad Unit Id for the two metrics to compare new build
app versions,
Proprietary + Confidential
Showrate/Renderrate
App Impression Counting Methodology
Proprietary + Confidential
Ad requests
ActiveView measurable
In app, the impression-counting methodology is such that impressions
are only counted when the creative begins to load in the viewport of the ActiveView viewable
user’s screen (Help Centre). This aligns with the IAB & MRC industry
standard.
Common Causes
Common Causes Glossary
Proprietary + Confidential
What describes why this causes is important and how it impact the overall publisher’s revenue.
Common Reasons provides a list of common reasons why such behaviour could occur.
Identify Method acts as a self-service guide for publisher’s developer and ad ops team to identify the
symptoms.
Action Items provides a list of actionable tasks that the publisher’s developer and ad ops can take to address
this causes.
Additional Notes
While removing excessive ad requests to improve render rate do not improve yield in the short term, sending only
inventories with higher viewable rate will improve yield in long term.
Long activity start to first ad request latency
Proprietary + Confidential
What: Determine the duration between activity start until the first ad request. The longer it took to make an ad request, the higher
chance for a user to scroll away from the slot before an ad shows up.
Common Reasons:
● Bad synchronous coding standard that blocks ad calls until all other processes are completed.
● Bad app loading strategy that focuses on heavy content loading and deprioritized ad calls.
Identify Method: Create an ads timeline with Charles Proxy to identify the gap between activity start and first ad request.
Action Items:
1. Determine the gap between activity start and ad
request.
2. Identify and assess all the operations that occur in the
gap.
3. Defer non-critical operation to load ads earlier.
Firebase Tips:
● Leverage Firebase analytics to log initial ad request
timestamp and compare with “session_start” event
timestamp to monitor the gap on ongoing basis. Ads Timeline (example)
Ad Rendering Bug
Proprietary + Confidential
What: Publishers get paid when a matched request turns into an impression. Due to bad coding or user interaction, a matched
request did not get rendered into an impression.
Common Reasons:
● Code logic prevents matched requests from display.
● Accidental duplicate ad request fired for the same ad unit.
Identify Method:
● Uses Ad Manager or AdMob report to identify a list of low render rate placement.
● Compare ad unit render rate against benchmark.
Action Items:
1. Review code logic to identify potential bugs preventing ads from displaying.
2. Ensure ad container is display correctly upon getting ad loaded event from GMA SDK (iOS, Android).
3. Review code logic to ensure no redundant ad requests fired for the same placement.
Avoid Expired Ads
Proprietary + Confidential
What: While prefetching ads is a great technique, it's important that publishers not keep old ads around forever without
displaying them. Any ad objects that have been held without display for longer than an hour should be discarded and replaced
with new ads from a new request. Publishers are paid for valid impressions and not for expired ads.
Common Reasons:
● Ads are not refreshed when the app comes from background to foreground after a long time gap.
● Subsequent pages are cached along with ads.
Identify Method:
● Review code logic or use Charles Log to
○ Check if Ad calls are initiated if the app comes in foreground from background.
○ Check if Ad calls are initiated if the app is in foreground but the phone is unlocked after an hour.
○ Check if Ad impression pings are fired for older ads (when App is opened after an hour).
Action Items:
1. Set up event tracking to record the time spent for cache ads.
2. Implement wrapper code logic in the rewarded ads object to automatically discard and request ads after an hour or any
activity lifecycle change.
Firebase Tips:
● Leverage Firebase analytics to log matched request timestamp to impressions timestamp to monitor cache
duration in an ongoing basis.
(Interstitial Ads) Un-optimized Ad Request Timing
Proprietary + Confidential
Action Items:
1. Optimize the affected interstitial ad units by adjusting the sequence of ad requests to only fire at the appropriate timing.
2. Reserve initial app launch ad requests to only the most critical and important ad units.
Firebase Tips:
● Leverage Firebase analytics to record the analyze time on page for user to optimize for interstitial request timing.
(Banner Ads) Ad Refresh
Proprietary + Confidential
What: Time based ad refresh might happen when the slot is not near / within the viewport, by refreshing off screen ad slots we
have the potential to inflate the denominator of ad request (matched ad request) . Publishers should initiate new ad requests for
the same slot only if the slot has been viewable for a considerable duration.
Common Reasons:
● Time based ad Refresh with no bearing on viewability.
● Ads are refreshed for subsequent tabs.
Identify Method:
● Uses Ad Manager / AdMob report to identify the render rate (impressions / matched request) based on the ad unit.
● Review code logic or use Charles Log to check if ad call are initiated for subsequent pages (non-viewport Ads) more than
one time.
Action Items:
1. Remove time based ad refresh set from Ad Manager /AdMob portal and apply more granular ad refresh logic through
application code.
2. Partner should initiate ad refresh when:
○ Application lifecycle change
○ Ad are shown more than 60 seconds
(Native Ads) Incorrect Native Formats Handling
Proprietary + Confidential
What: Native ad formats are handled differently from regular banner ads. Mishandling of native ads returned from AdMob or Ad
Manager causes revenue loss.
Common Reasons:
● Bug / incorrect native assets handling.
● Native format handling missing for certain format Ids.
Identify Method:
● Ad Manager
○ Use Ad Manager report to identify render rate based on ad unit and native ad format name.
○ Review code logic or use Charles Log to check if native ad format ID is included in ad requests.
● AdMob
○ Use AdMob report to identify low render rate native ad units.
Action Items:
1. Partner should review handling method for all native formats as per ad request.
○ AdMob (iOS, Android)
○ Ad Manager (iOS, Android)
2. (Ad Manager Only) Line items should be configured only with supported Native format Ids.
Insights
What: While Charles log monitor method provide a good view on the performance on an ad hoc basis, setting up a proper
tracking enable real-time tracking on user devices and take quicker action to address any issue.
Common Reasons: Real user measurement (RUM) is different from lab measurement. Firebase tracking helps us to understand
real user measurement, and make adjustments according to different user clusters.
Identify Method: Deploy firebase analytics to tracks ad lifecycle event
Action Items:
1. Sign up for Firebase account
2. Deploy Firebase analytics, guide is here
3. Use event tracking to measure ad lifecycle by using ad
listener events
4. Track ad events with Firebase analytics event (Android, iOS)
a. ad request (initial request)
b. onAdLoaded() → check if ads is loaded
c. onAdFailedToLoad() → check for failure
d. onAdImpression() → when ad is rendered
Summary
Proprietary + Confidential
● Ad rendering bug
Common Policy
Clarifications
Proprietary + Confidential
Interruptive ads
interstitials
Unexpected full screen interstitial image ads
that appear during game play at the beginning of
a level or during the beginning of a content
segment are disruptive to users, as users expect
to begin game play or engage in content and are
surprised to see an ad appear
Resizing/Missing ABG Request correct sizes for different placements on different devices
● Reward high-quality apps and games with increased user visibility (e.g.
higher ranking in user recommendations, and dedicated spaces for
featuring promotional content)
Confidential + Proprietary
SEA/AUNZ Play Partnerships 2023
Confidential + Proprietary
SEA/AUNZ Play Partnerships 2023
Unified Quality Framework
A high-quality app or game
Core value User experience Technical quality Privacy & security
Useful and/or fun Deligh ul to use Makes the most of premium Designed for safety
Goes beyond mobile devices
g.co/play/featuring developer.android.com/quality
Confidential + Proprietary
SEA/AUNZ Play Partnerships 2023
A closer look at quality
Deliver value to users by Delightful to use, evoking The stability, performance, Design for privacy by
being useful or fun, both on positive sentiments through and resource utilization of focusing on minimization.
first use and over time. considered and differentiated an app or game that makes Minimize permission
design the most the OS and device requests, minimize location
Addresses the needs of its hardware. access, and minimize data
target audience. visibility
Confidential + Proprietary
SEA/AUNZ Play Partnerships 2023
From good to great
Confidential + Proprietary
SEA/AUNZ Play Partnerships 2023 Google Play Rising Stars
An initiative to spot and support high potential developers (in terms of Play spend) early-on
● Nurture & Grow: Developers in this level will receive email-based, 1:1 business development support
with access to training materials and webinars
● Core: This level is for developers who are experienced and have demonstrated that they are high
potential leads
● Review Later: With self serve Google Play Getting Started Guide for the POCs to share with the
developers
Confidential + Proprietary
You will be able to track the status of your nominations at go/rising-stars-status updated fortnightly
Proprietary + Confidential
Billing/Payment
Profile Shift
Proprietary + Confidential
Natalie Do
Regional Head of Publisher Engagement
AnyMind Group
Revenue
Before After
16
© AnyMind Group. All Rights Reserved. Contact me at ngocddb@anymindgroup.com (Email) | +84 78 5038CONFIDENTIAL
148 (WhatsApp)
4
Difficulties to run UAC
Takes time to get the cash from the mediation Pakistan has the limitation on the money Developer needs to create multiple credit
network, but needs to run the campaign to gain transfer(30K USD / Year), and it will limit the card/Google Ads account. It will take the time for
the revenue. It has the huge risk to run the UAC possibilities to run the campaign, and test the new publisher and hard to focus on app production.
without having the budget for UAC. application for publishers.
16
© AnyMind Group. All Rights Reserved. Contact me at ngocddb@anymindgroup.com (Email) | +84 78 5038CONFIDENTIAL
148 (WhatsApp)
5
Overview of AnyCredit
Key Points
We upfront payment for UAC
campaigns, auto-deduct to your app Reduce your International transfer
Data-Driven
to almost ZERO per year.*
revenues and wire-transfer final profit
to you. All the transactions are
Immediately get access to unlimited
Data-Driven
operated by AnyMind.* UAC funds for your growth
16
© AnyMind Group. All Rights Reserved. Contact me at ngocddb@anymindgroup.com (Email) | +84 78 5038CONFIDENTIAL
148 (WhatsApp)
6
How does AnyCredit works?
UAC UAC
IAA
Payment from In-App Advertising
Payment for Revenue from Google/ Other Demands & Open Bidding
Partners will be transferred to AnyMind by Google & demands.
AnyMind will set the budget on UAC account based on the IAA
revenue and based on growth expectations. UAC
16
© AnyMind Group. All Rights Reserved. Contact me at ngocddb@anymindgroup.com (Email) | +84 78 5038CONFIDENTIAL
148 (WhatsApp)
8
Money Flow for AnyCredit when no new UAC budget added
UAC
5,000 USD 6,000 USD
Budget
Re-invest Based on monthly adjustment: Based on monthly adjustment: Based on monthly adjustment:
for Ad 5,000 USD 6,000 USD 6,000 USD
Budget
Profit processed
through AnyMind 3,750 USD 7,250 USD 9,000 USD
after Ad-budget No new investment No new investment No new investment
reinvesting &
Service charges
needed needed needed
16
© AnyMind Group. All Rights Reserved. Contact me at ngocddb@anymindgroup.com (Email) | +84 78 5038CONFIDENTIAL
148 (WhatsApp)
9
Money Flow for AnyCredit with new UAC budget added
UAC
UAC Budget 10,000 USD UAC Budget 14,000 USD
Budget
Top-up Top-up
Profit processed
through AnyMind ~3,750 USD ~2,000 USD ~19,800 USD
after Ad-budget With $5k UAC Budget With $4k UAC Budget
No new investment
reinvesting & Top-up and save $5k Top-up and save $10k
needed
Service charges International transfer International transfer
17
© AnyMind Group. All Rights Reserved. Contact me at ngocddb@anymindgroup.com (Email) | +84 78 5038CONFIDENTIAL
148 (WhatsApp)
0
Thank you!
Scan to book a
schedule with us!
Let us know if you need support in
- Monetization Growth
- Policy Violation Resolving
- UAC Growth
- Overcoming Payment challenges in PK
Let’s talk: TalkwithAnyMind
Natalie Do
Email ngocddb@anymindgroup.com
WhatsApp:+84 78 5038 148
Privacy Update
Proprietary + Confidential
Google Consent
Management Requirements
Proprietary + Confidential
Regardless, publishers must use a certified CMP when serving ads in the EEA/ UK
Proprietary + Confidential
Troubleshooting
guide for
common issues
Proprietary + Confidential
Ad Limit
Why do you face limit?
- Google may sometimes place a limit on the number of ads your AdMob account can show.
This might be a temporary ad serving limit to evaluate your traffic quality, or it might be
because we've identified invalid traffic concerns in your AdMob account.
- More information on invalid traffic: link
Situation:
1. Account level
What you could do:
1. We will monitor your traffic and update the serving status accordingly
2. Monitor your own traffic for suspicious traffic
3. Detailed Guide: https://support.google.com/admob/troubleshooter/12205649
Note:
- No appeal for ad limit or SPM support
- Ad limit typically last for < 30 days
Proprietary + Confidential
Payment deduction
Why do you face deduction?
- Your earnings may include deductions for various reasons. Google may adjust your
earnings if it detects invalid activity in your account or for activity that is not in
compliance with Google policies. Typically due to reasons such as invalid clicks or
policy violations that lead to inflated earnings
Notes
- Admob reserve the right to deduction and it cannot be appealed, for details:
https://support.google.com/admob/answer/7085268?hl=en#zippy=%2Cid-like-to-appe
al-the-deduction-can-i-do-so
- If you have yet to receive payment 10-15 business days after 21th of each month,
you could request for swift copy and track payment with your local bank.
https://support.google.com/admob/contact/swift_cuf_admob .If its within 10-15
working days, PLEASE WAIT
Proprietary + Confidential
What you could do if you have questions about your terminated play console accounts?:
1. Appeal to playteam : URL
Notes
- Any new account that you try to open will be terminated as well (without a refund of the
developer registration fee), so please do not attempt to register for a new Play Console account
while one of your other accounts are terminated.
Proprietary + Confidential
Notes:
- If your account is suspended, it’ll be placed on immediate payment hold and no ads will be displayed for
approximately 30 days for policy or spam. As soon as the suspension period has ended, we’ll automatically
re-enable your account, remove the payment hold, and begin displaying ads.Please note that we’ll continue
monitoring your account for compliance. If additional violations are accrued then we may need to disable
your entire account. If this occurs then we may withhold earnings associated with violations, up to your total
earnings in the past 60 days, in order to refund impacted advertisers (where appropriate and possible).
Proprietary + Confidential
Notes:
- Use firebase remote-config, such that you could make changes to your placement over the cloud in
all your past versions
- DO NOT DO THIS: Whenever a policy warning arises, remove all the ads placement hoping system
will approve your app and afterward add back the ads placement.
Proprietary + Confidential
eCPM Myth
Advise:
1. eCPM is a result of all the best practices highlighted in this playbook. There is no single explanation
to your eCPM fluctuations. Focus on adoption of best practices, premium format, publish in the right
market, result will eventually shown
2. eCPM is likely to be impacted by traffic because when you compare eCPM from today from eCPM two years
from now, you aren’t comparing the same thing because the makeup of your traffic will be different for these
two periods of time. There are cases where an app experiences a lot of international growth, and that
international traffic might not monetize as well as domestic traffic.
a. For example, one publisher who had seen a slight decrease in her eCPM over the years, despite the
uplift in revenue. What we saw was that a lot of the traffic was coming from countries outside of the US
such as Latin America and Asia and generally cost per click is driven by purchasing power of the user
in any given country. as a result, even though she was making more revenue, her eCPM had
decreased slightly but that was mostly because of the makeup of her traffic.
b. The way that user behavior can impact eCPM is based on how users interact with your app. So lets
say for example that your app grows quite a bit, and you have a lot of return users. return users are
less likely to click on ads than unique users (users who are coming to your app for the first time).How
users interact with your app impacts your eCPM, if you have a lot of return users vs unique users, they
aren’t as likely to click on ads as often as users who come one time. if you have a app with a lot of
regular users, they will click less than users who come for certain features and then leave immediately.
Proprietary + Confidential
Notes:
- Leverage on test devices for ads testing, guide can be found here: URL
-
Proprietary + Confidential
Notes:
- Leverage on test devices for ads testing, guide can be found here: URL
-
Proprietary + Confidential
Diminishing Clicks
Note
1. Google is protecting the digital ecosystem by ensuring that users engage with
ads on purpose.
Checklist
1. Check your format implementation is policy compliant, refer to slide 145/146
2. You could leverage Firebase & 1st party data to identify potential invalid users
who might have clicked ads more than the expected frequency. Create an
Audience and apply it towards Remote Config to achieve this use case.
3. Impose an ads frequency under the the ad unit setting for formats such as
rewarded and interstitial