Stay organized with collections
Save and categorize content based on your preferences.
Display an H5 gaming interstitial ad
This example displays a gaming interstitial ad using the Google Publisher Tag
(GPT) library. Gaming interstitials are GPT-managed, full-page ads that you
display to users playing web-based games based on a manual trigger. For more
information about gaming interstitials, see
Display an H5 gaming interstitial ad.
To display and interact with gaming interstitial ads, use the following GPT
events:
The user closed a previously displayed gaming interstitial ad.
Use this event to run custom logic whenever a gaming interstitial is closed.
Game structures
Gaming interstitial ads can display either fullscreen or inside the frame of
your game, depending on how your game is structured. For more details, see
H5 Game structures.
The sample implementation assumes that the H5 game renders directly into the
top-most window, using the Fullscreen structure. In this scenario, the
gaming interstitial ad also renders fullscreen.
However, this same code also works when placed inside of a child frame, using
the iFrame/WebView structure. To constrain the gaming interstitial ad to the
H5 game canvas, place the game in an iFrame, as shown in the following example:
<!doctype html>
<html>
<head>
<!-- The Google Publisher Tag here, if any, will only be responsible for serving ads outside of the H5 game. -->
<title>Page for this example H5 game</title>
<!-- Your <head> content here. -->
</head>
<body>
<span id="example-text">Example H5 game</span>
<!-- Sample code is served here. The Google Publisher Tag loaded in this frame will only be used within the H5 game. -->
<iframe src="https://www.example.com" title="Example game" allow="autoplay"></iframe>
</body>
</html>
Usage notes
To ensure an optimal user experience, GPT only requests gaming
interstitial ads on pages that properly support the format. Due to this
restriction, defineOutOfPageSlot() may return null. You must check for
this case to ensure you're not doing any unnecessary work.
Only request gaming interstitial ads on pages or environments where you
want an interstitial to appear. Gaming interstitial ads are eligible to
serve to desktop, tablet, and mobile devices.
Gaming interstitial ads generate their own ad slot. Unlike other ad
types, it's not necessary to define a <div> for gaming interstitial ads.
These ads automatically create and insert their own container into the page
when an ad fills.
Gaming interstitial ads are one-time use. You cannot refresh a gaming
interstitial ad slot. Instead, you must destroy the slot and re-create it,
as shown in the sample implementation.
Gaming interstitial ads have a fixed frequency cap. The frequency cap
prevents the gamingInterstitialSlotReady event from firing more than once
every 30 seconds.
If using single-request architecture (SRA) on a page with multiple slots,
don't call display() until static ad slots divs are created. As
explained in Ads Best Practices, the first call to display()
requests every ad slot defined before that point. Although gaming
interstitial slots don't require a predefined <div>, static ad slots do.
Calling display() before these elements are present on the page can result
in lower quality signals. We recommend delaying the initial call until after
static slots are defined.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],[],[],[],null,["# Display an H5 gaming interstitial ad\n====================================\n\n| **Important:** Gaming interstitial ads are a limited-access format. For more information, see [Display an H5 gaming interstitial ad](//support.google.com/admanager/answer/14640119).\n\nThis example displays a gaming interstitial ad using the Google Publisher Tag\n(GPT) library. Gaming interstitials are GPT-managed, full-page ads that you\ndisplay to users playing web-based games based on a manual trigger. For more\ninformation about gaming interstitials, see\n[Display an H5 gaming interstitial ad](//support.google.com/admanager/answer/14640119).\n\nTo display and interact with gaming interstitial ads, use the following GPT\nevents:\n\n| Event | Fired when... |\n|------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| [`GamingInterstitialSlotReady`](//developers.google.com/publisher-tag/reference#googletag.events.GameManualInterstitialSlotReadyEvent) | A gaming interstitial ad is ready to display to the user. To display the interstitial, call [`makeGameManualInterstitialVisible()`](//developers.google.com/publisher-tag/reference#googletag.events.GameManualInterstitialSlotReadyEvent.makeGameManualInterstitialVisible) on the provided event object. |\n| [`GamingInterstitialSlotClosed`](//developers.google.com/publisher-tag/reference#googletag.events.GameManualInterstitialSlotClosedEvent) | The user closed a previously displayed gaming interstitial ad. Use this event to run custom logic whenever a gaming interstitial is closed. |\n\nGame structures\n---------------\n\nGaming interstitial ads can display either fullscreen or inside the frame of\nyour game, depending on how your game is structured. For more details, see\n[H5 Game structures](//support.google.com/admanager/answer/14637831#h5-game-structures).\n\nThe sample implementation assumes that the H5 game renders directly into the\ntop-most window, using the **Fullscreen** structure. In this scenario, the\ngaming interstitial ad also renders fullscreen.\n\nHowever, this same code also works when placed inside of a child frame, using\nthe **iFrame/WebView** structure. To constrain the gaming interstitial ad to the\nH5 game canvas, place the game in an iFrame, as shown in the following example: \n\n \u003c!doctype html\u003e\n \u003chtml\u003e\n \u003chead\u003e\n \u003c!-- The Google Publisher Tag here, if any, will only be responsible for serving ads outside of the H5 game. --\u003e\n \u003ctitle\u003ePage for this example H5 game\u003c/title\u003e\n \u003c!-- Your \u003chead\u003e content here. --\u003e\n \u003c/head\u003e\n \u003cbody\u003e\n \u003cspan id=\"example-text\"\u003eExample H5 game\u003c/span\u003e\n\n \u003c!-- Sample code is served here. The Google Publisher Tag loaded in this frame will only be used within the H5 game. --\u003e\n \u003ciframe src=\"https://www.example.com\" title=\"Example game\" allow=\"autoplay\"\u003e\u003c/iframe\u003e\n \u003c/body\u003e\n \u003c/html\u003e\n\nUsage notes\n-----------\n\n- **To ensure an optimal user experience, GPT only requests gaming\n interstitial ads on pages that properly support the format.** Due to this\n restriction, `defineOutOfPageSlot()` may return null. You must check for\n this case to ensure you're not doing any unnecessary work.\n\n- **Only request gaming interstitial ads on pages or environments where you\n want an interstitial to appear.** Gaming interstitial ads are eligible to\n serve to desktop, tablet, and mobile devices.\n\n | **Note:** You can use Chrome DevTools mobile simulation to test gaming interstitial ads on mobile from a desktop environment.\n- **Gaming interstitial ads generate their own ad slot.** Unlike other ad\n types, it's not necessary to define a `\u003cdiv\u003e` for gaming interstitial ads.\n These ads automatically create and insert their own container into the page\n when an ad fills.\n\n- **Gaming interstitial ads are one-time use.** You cannot refresh a gaming\n interstitial ad slot. Instead, you must destroy the slot and re-create it,\n as shown in the sample implementation.\n\n- **Gaming interstitial ads have a fixed frequency cap.** The frequency cap\n prevents the `gamingInterstitialSlotReady` event from firing more than once\n every 30 seconds.\n\n- **If using single-request architecture (SRA) on a page with multiple slots,\n don't call `display()` until static ad slots divs are created.** As\n explained in [Ads Best Practices](//developers.google.com/publisher-tag/guides/ad-best-practices#use_single_request_architecture_correctly), the first call to `display()`\n requests every ad slot defined before that point. Although gaming\n interstitial slots don't require a predefined `\u003cdiv\u003e`, static ad slots do.\n Calling `display()` before these elements are present on the page can result\n in lower quality signals. We recommend delaying the initial call until after\n static slots are defined.\n\nSample implementation\n---------------------\n\n[View demo](https://googleads.github.io/google-publisher-tag-samples/display-gaming-interstitial-ad/js/demo.html) \n\n### JavaScript\n\nLoading...\n----------\n\nLoading...\n----------\n\n[Improve this sample](https://github.com/googleads/google-publisher-tag-samples/tree/main/dist/display-gaming-interstitial-ad/js) [Report an issue](https://github.com/googleads/google-publisher-tag-samples/issues/new?labels=documentation&template=sample-feedback.md&title=Sample+feedback%3A+display-gaming-interstitial-ad/js)\n\n### TypeScript\n\nLoading...\n----------\n\nLoading...\n----------\n\n[Improve this sample](https://github.com/googleads/google-publisher-tag-samples/tree/main/dist/display-gaming-interstitial-ad/ts) [Report an issue](https://github.com/googleads/google-publisher-tag-samples/issues/new?labels=documentation&template=sample-feedback.md&title=Sample+feedback%3A+display-gaming-interstitial-ad/ts)"]]