> For the complete documentation index, see [llms.txt](https://wiki.playgama.com/playgama/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.playgama.com/playgama/guides/monetization/best-practices.md).

# Best practices

This guide provides a framework for implementing ads effectively while maintaining high player retention

Systemic, well-timed ads are the backbone of web game monetization. Many games still underuse ads or place them poorly, which reduces revenue and hurts retention.

This guide summarizes Playgama's practical recommendations for implementing ads without damaging the player experience. The rules ads must follow are in the [Advertising and Payments Requirements](/playgama/game-requirements/advertising-requirements.md); where this guide and the rules differ, the rules apply.

## Interstitial ads

Interstitial ads are full-screen advertisements that appear periodically during a game session. Every game shows them (item 2.1.2), and they are the steady base of a game's ad revenue.

Request an interstitial with [`showInterstitial()`](/playgama/bridge-sdk/api/advertisement/interstitial.md#show-interstitial) at every natural pause: between levels, after a game over, when the player resumes from pause. The Bridge decides when an ad is actually shown: it holds back the first one so it never interrupts the first seconds of play, and it spaces out the rest. Do not add your own timers or level counters on top of it.

Good moments are win or fail screens, inventory screens, or shortly after the player presses restart. A game without levels — an endless or idle game — creates its own pauses: a results screen after a run, a visit to the shop, a return from the pause menu. Never interrupt active gameplay with an ad (item 2.1.3).

{% columns %}
{% column %}

<figure><img src="https://1088849411-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5ukgSPDBOdbQp4FYtbz1%2Fuploads%2FJgqjXJW56pYLMMCV0RrG%2Fimage.png?alt=media&amp;token=2d158b11-e760-437d-85a4-c2fbdb476219" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

<figure><img src="https://1088849411-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5ukgSPDBOdbQp4FYtbz1%2Fuploads%2FftzZKr0Uca2Ea9Ktck4Q%2Fimage.png?alt=media&amp;token=7ce7936b-b297-4240-8418-410c7f71e9b9" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

While any full-screen ad is open, gameplay and sound are paused (item 2.1.6). Follow the [interstitial state](/playgama/bridge-sdk/api/advertisement/interstitial.md#interstitial-state): pause on `opened`, resume on `closed` or `failed` — see [Sound](/playgama/guides/game-development/sound.md) for one way to keep the volume right.

{% hint style="info" %}
The interval between interstitials is set on the platform side, typically 120 to 240 seconds for web games depending on the genre. If ads appeared more often, players would leave; if less often, the game would lose money. That is why the game only marks the pauses and leaves the timing to the Bridge.
{% endhint %}

## Rewarded ads

Rewarded ads are user-initiated and provide an immediate benefit in exchange for a view. They function as an organic part of the gameplay cycle: effort leads to reward. The rules for them are section 2.2 of the [Advertising and Payments Requirements](/playgama/game-requirements/advertising-requirements.md). Show the button only when [`isRewardedSupported`](/playgama/bridge-sdk/api/advertisement/rewarded.md#is-rewarded-supported) is `true`, and grant the reward only in the `rewarded` [state](/playgama/bridge-sdk/api/advertisement/rewarded.md#rewarded-state).

Here are rewarded ad patterns that usually perform well:

#### After a fail

1. **The "Second Chance" Trigger:** In endless runners or difficult platformers, the "Revive" or "Second Chance" ad is a "life-saving" mechanic — offer it at most once per attempt. The value of the reward increases as the player gets closer to a high score or a level end.
2. **Checkpoint Access:** Allow players to continue from the last checkpoint to avoid replaying large sections of a level.
3. **Skip Level:** Offer a level skip if a player fails multiple times (2+) on the same challenge to prevent frustration.

{% columns %}
{% column %}

<figure><img src="https://1088849411-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5ukgSPDBOdbQp4FYtbz1%2Fuploads%2F452s4zEojQuIhkketCe1%2Fimage.png?alt=media&amp;token=d49d57fb-856e-461a-982f-e32c2634475d" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

<figure><img src="https://1088849411-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5ukgSPDBOdbQp4FYtbz1%2Fuploads%2FZqW8SrbhChNRYrRlbUdE%2Fimage.png?alt=media&amp;token=f44518f7-29f8-40e8-9ce9-d8f60be7eaf9" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

<figure><img src="https://1088849411-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5ukgSPDBOdbQp4FYtbz1%2Fuploads%2F7Zr9wrQYvveod2VuocSq%2Fimage.png?alt=media&amp;token=f4d3d2a4-b109-4a2c-8247-e62355bcc0d4" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

#### Progress Acceleration

1. **Level Completion:** This is the most effective time for a rewarded multiplier. After a player finishes a challenge, they are in a state of positive reinforcement. Offering to "Double Your Winnings" by watching a short video has exceptionally high conversion rates.
2. **Booster and Hint Offers:** In mentally challenging genres like puzzles, word games, or strategy, offering a "Hint" or a "Booster" when the player has been stagnant for a certain period (e.g., 30 seconds of inactivity) provides immediate utility.
3. **Timer Skips:** Allow players to bypass waiting times for building or crafting.

{% columns %}
{% column %}

<figure><img src="https://1088849411-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5ukgSPDBOdbQp4FYtbz1%2Fuploads%2FHIFRIwLxmw9iC3UOtySB%2Fimage.png?alt=media&amp;token=f8788df5-d35b-4ab8-922e-f6555924e1ac" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

<figure><img src="https://1088849411-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5ukgSPDBOdbQp4FYtbz1%2Fuploads%2FQTKfhWG8VIzgOaaV8EqR%2Fimage.png?alt=media&amp;token=b68fde05-2e45-4bf3-97be-a6b8da53f831" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

<figure><img src="https://1088849411-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5ukgSPDBOdbQp4FYtbz1%2Fuploads%2FTuP5kFktFHVfAHViMJZP%2Fimage.png?alt=media&amp;token=ab2a9db9-6537-4309-8eaa-a7e2155f534b" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

<figure><img src="https://1088849411-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5ukgSPDBOdbQp4FYtbz1%2Fuploads%2FaJ7FeMg4Qtpe8ywIxitp%2Fimage.png?alt=media&amp;token=545ac2f4-c389-4828-ab8a-2151dbfed06c" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

#### Daily rewards & meta loops

1. **Daily Bonuses:** Offer to double the daily login reward.
2. **Exclusive Access:** Provide temporary access to bonus levels or premium character skins.

{% columns %}
{% column %}
![](https://1088849411-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5ukgSPDBOdbQp4FYtbz1%2Fuploads%2F6CB0VHeuzUkB59hQZF7u%2Funknown.png?alt=media\&token=4fe6ee90-36e6-4f32-9157-9b3fb8f7f28a)
{% endcolumn %}

{% column %}

<figure><img src="https://1088849411-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5ukgSPDBOdbQp4FYtbz1%2Fuploads%2FTFCWexWM7tHwdhPm3Mjy%2Fimage.png?alt=media&amp;token=e43d3196-4b9d-4180-ac6e-691afddab512" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

#### Grind Alternatives

1. **Currency & Resources:** Provide rare resources or the small amount of currency a player lacks for an upgrade.
2. **Hard Currency Alternative:** Allow players to use an ad view for a "retry" instead of spending premium currency.

{% columns %}
{% column %}

<figure><img src="https://1088849411-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5ukgSPDBOdbQp4FYtbz1%2Fuploads%2F56WnfZX8TPSfVW3KOL8p%2Fimage.png?alt=media&amp;token=bc1c0a8a-63a2-449d-8a67-5e58768491b0" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

<figure><img src="https://1088849411-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5ukgSPDBOdbQp4FYtbz1%2Fuploads%2F7UyUZUzxemJEnsOIhrjV%2Fimage.png?alt=media&amp;token=ecb08cac-5579-4301-a914-ba40175720b1" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

Specific triggers can detect when a player is likely to quit. Offer rewarded video after multiple failed attempts, long periods of being stuck on one level, or repeated exits at the same point.

{% hint style="info" %}
Always show the reward before the ad. Use clear call-to-action labels such as "Watch & Get a Hint", make sure the ad button has a clear icon or label, and always let the player decline.
{% endhint %}

Rewarded ads work because every side receives clear value: the player gets a useful bonus, the developer earns revenue, and the advertiser gets a voluntary view. This fits naturally into the gameplay loop: the player makes an effort, gets stuck or reaches a milestone, and chooses a reward.

To make the reward more appealing, let the player experience it once for free, then offer it through a rewarded ad. Make sure it remains a bonus, not a requirement for core progress (item 2.2.3), and offer a rescue — a revive, extra moves, extra time — at most once per attempt (item 2.2.4).

{% hint style="info" %}
How many rewarded ads on average should a player watch per session? For a successful project, we look for at least 3–5 views per average session.

What percentage of players actually click the button? A good benchmark is 30–40% of all players. If it's lower, either the button is "invisible" or the reward is too weak.
{% endhint %}

## Banner ads

Banner advertisements provide a steady baseline of revenue without disrupting immersion. In specific genres like board or puzzle games, banners can contribute nearly as much revenue as interstitials due to constant visibility.

Banners are particularly effective on loss screens where a full video ad might be too frequent. Use only Bridge [sticky](/playgama/bridge-sdk/api/advertisement/banner.md) or [advanced](/playgama/bridge-sdk/api/advertisement/advanced-banners.md) banners — full-screen banners are not allowed (item 2.3.1). Keep a "safe zone" in the layout so banners do not overlap interactive game elements (item 2.3.2, see [Responsive layout](/playgama/guides/game-development/responsive-layout.md)). Put banners on screens the player stays on for a few seconds at least, such as menus, pause and results.

{% hint style="info" %}
Avoid placing more than one banner on a single screen. To keep a healthy balance between fill rate and eCPM, the ad refresh rate should not exceed once every 90 seconds.
{% endhint %}

{% columns %}
{% column width="50%" %}

<figure><img src="https://1088849411-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5ukgSPDBOdbQp4FYtbz1%2Fuploads%2FAf6Nwc2mmBv45BhCTXiB%2Fimage.png?alt=media&amp;token=bcc523ad-62fe-44d5-abb4-18612714401b" alt=""><figcaption></figcaption></figure>

The ad banner does not interfere with the gameplay.
{% endcolumn %}

{% column %}

<figure><img src="https://1088849411-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5ukgSPDBOdbQp4FYtbz1%2Fuploads%2FqKNTeuGlAwSYDon4KOYr%2Fimage.png?alt=media&amp;token=44920cd0-358a-473b-bba8-3c738608e17d" alt=""><figcaption></figcaption></figure>

The ad banner is blocking important game elements.
{% endcolumn %}
{% endcolumns %}

In addition to standard banners, Playgama also supports **advanced banners**. These allow more flexible control over when and where ads appear. You can trigger them at specific game moments (e.g., pause, win/lose screens) and define multiple on-screen zones where banners can be placed.

This approach enables better integration with your game UI and helps maximize revenue while preserving a smooth player experience.

{% columns %}
{% column width="50%" %}

<figure><img src="https://1088849411-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5ukgSPDBOdbQp4FYtbz1%2Fuploads%2Fw1csKkZWeJr0cVHrCCr7%2Fimage.png?alt=media&amp;token=c31ebd3b-1846-40a5-9ffa-c6719cfd10fa" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

<figure><img src="https://1088849411-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5ukgSPDBOdbQp4FYtbz1%2Fuploads%2FbIsmPJbSiVrdpumBM9ER%2Fimage.png?alt=media&amp;token=ecd7cdd2-99c4-4bf1-8e05-cba3349463c9" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

## In-App Purchases (IAP)

While advertisements are the foundation of web game revenue, In-App Purchases allow developers to monetize the small percentage of highly engaged players (often <2%) who are willing to pay for premium content. The Bridge [payments module](/playgama/bridge-sdk/api/payments.md) gives one purchase API for every platform that supports payments; the integration steps are in [In-game purchases](/playgama/guides/monetization/in-game-purchases.md), and the rules in section 2.4 of the [Advertising and Payments Requirements](/playgama/game-requirements/advertising-requirements.md).

#### Consumables vs. Permanents: Designing a Catalog

A successful IAP strategy requires a mix of items that cater to different player needs:

* **Consumables:** These are single-use items like virtual currency (gems, coins), boosters, or energy refills. They are the primary revenue driver in mid-core and simulation games.
* **Permanents:** These are one-time purchases that provide long-term value, such as "Ad-Free Mode," permanent character skins, or new level packs. The "Ad-Free" purchase is often the highest-converting item in casual games, as it provides a clear "quality of life" improvement.

{% columns %}
{% column %}

<figure><img src="https://1088849411-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5ukgSPDBOdbQp4FYtbz1%2Fuploads%2F4VWjavB0SZE75BwYOyLM%2Fimage.png?alt=media&amp;token=b1b7cc5c-9c3e-401e-aa2d-85f0f10f1821" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

<figure><img src="https://1088849411-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5ukgSPDBOdbQp4FYtbz1%2Fuploads%2Fj6gZtiqqQbr13jZP2iLl%2Fimage.png?alt=media&amp;token=6b976a7c-8017-4c91-a310-492f7a2daadb" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

#### Pricing Strategy and the Hybrid Approach

Browser game price points should generally remain low, between $0.99 and $4.99, to reflect the casual nature of the platform. Implementing a "Hybrid Model" — where players can choose between watching a rewarded ad or making a small purchase for the same item — is highly effective. This ensures that every player contributes to the economy, regardless of their willingness to spend real money.

A few catalog patterns that work in casual games:

* **Starter pack.** A one-time, clearly better-value bundle offered after the first session, not on the first screen.
* **Remove ads.** A permanent purchase that turns off interstitials and banners; rewarded ads stay available because the player chooses them.
* **Few, clear options.** Three to five currency packs with growing value per unit are easier to choose from than a long list.
* **Prices from the catalog.** Show prices exactly as [`getCatalog()`](/playgama/bridge-sdk/api/payments.md#catalog-of-all-items) returns them, in the platform's currency (item 2.4.2) — never hard-code them.

## Intrinsic ads

Intrinsic ads are non-disruptive placements that exist natively within the game world. Examples include a billboard on a racetrack, a poster on the wall of a city-building game, or a screen inside a virtual arena. Unlike standard banners, these units are programmatically filled with brand campaigns that update based on the player's region and current advertising demand.

The main advantage is that intrinsic ads do not interrupt gameplay. The developer chooses where to place them and how visible they should be, so they can make the game world feel more realistic instead of adding another overlay. This native approach can increase revenue compared with standard interstitial and rewarded ads, but direct integration can be complex. Playgama helps handle that setup and distribution.

{% columns %}
{% column %}

<figure><img src="https://1088849411-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5ukgSPDBOdbQp4FYtbz1%2Fuploads%2F3ELvUlWnCvMPwttVR0FL%2Fimage.png?alt=media&amp;token=058bb50a-7c31-445b-8eb2-4d1645560aac" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

<figure><img src="https://1088849411-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5ukgSPDBOdbQp4FYtbz1%2Fuploads%2FBIDAvzzHbNFvFQVn4ssO%2Fimage.png?alt=media&amp;token=f30dd558-d50d-4410-bf5d-5f34a3b2677b" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

## Platform-Triggered Ads (Smart Ads)

Platforms may utilize automated systems that analyze game processes and user sessions in real time to optimize revenue. It is important to understand that the platform portal often decides when to enable these features to help better monetize promising releases.

* **Dynamic load:** The platform may increase ad load by adding extra interstitial calls based on the user's progress and session length. Data shows earnings can rise by up to 100% with these optimizations.
* **Technical requirement:** The game must handle events from the portal. It should automatically pause gameplay and mute audio whenever the platform starts an advertisement — through the [pause](/playgama/bridge-sdk/api/platform.md#pause) and [audio](/playgama/bridge-sdk/api/platform.md#is-audio-enabled) state of the Bridge (item 3.3.4).

{% hint style="success" %}
This feature is active on Playgama for games that listen to the pause and audio state events through the [Playgama Bridge SDK](/playgama/bridge-sdk/getting-started.md).
{% endhint %}

## Gameplay and playtime

Ads are one of the main ways to monetize a web game, but even the best ad setup will not work without engaged players. Track the metrics that correlate with engagement: CTR, playtime, and retention.

The best way to improve these metrics is still to make a strong game: one that gives players a reason to keep playing, return the next day, and tolerate ads as part of the experience. See [Loading and first session](/playgama/guides/game-development/first-session.md) for the first minutes that decide most of it, and send your own events with [`analytics.send`](/playgama/bridge-sdk/api/analytics.md) to see where players stop.

***

Ultimately, ad monetization is a balance. The goal is a seamless experience where ads feel like a fair exchange, not a burden. Use logical pauses for interstitials, create high-value rewarded placements, add native intrinsic ads where they fit, and use data for A/B testing and ad caps. Start experimenting in the [Playgama Developer portal](https://developer.playgama.com/).
