ampproject / ampproject/amphtml

I2I Web interstitial ads

Open
#35,345 5 comments 0 reactions 0 assignees View on GitHub
INTENT TO IMPLEMENT Stale
Dominant language
JavaScript
Stars
14.9k
Forks
4.1k
PR merge metrics
No merged PRs in 30d

Description

### Summary

Web interstitial ads has been a really good ads format currently available on non-AMP pages (https://www.pubgalaxy.com/blog/ad-tech/web-interstitial-ads-what-are-they-and-how-to-use-them/). We want to bring this ads format to the AMP world, allowing publishers a greater monetization potential while preserving as much as possible good user experience.

### Design Document
Flowchart is shown below.

Ad load
- [AMP] Check the eligibility of web interstitial ad of the current page view. For example, if there are links on the page that can be intercepted.
- [AMP] Wait for user interaction on the page (click, scroll). The intention here is to yield to content rendering so the ad does not harm core web vitals like LPS and FID.
- [AMP] Start a cross-origin iframe to load a web interstitial ad tag.
- [Ad frame] Run its own frequency cap and maybe load ad.
- [Ad frame] Once the ad response is back, send its corresponding status to AMP. It could be either “READY” or “EMPTY”

Ad display
- [AMP] Wait for a navigation event (user clicking on a link)
- [AMP] Run through a “link filtering algorithm” and decide if we want to intercept and display the ad
- [AMP] Display the ad iframe meantime send an “exposure” signal to the ad iframe
- [Ad frame] upon receiving the “visible” signal, start its animation (if any) and report “impression”.

Ad close
- [AMP] Wait for the “close” event then send a “close” signal to the ad iframe. Close the popup and navigate to the next page.

### Open questions
#### Which links will trigger ads
Currently, we are planning on showing the ads when
1. navigating to a page in the same domain, and
2. attempting to open the link on the same window

Therefore, opening a link in the new window will not trigger the ads.

It is also possible to trigger ads for cross domain links. We might also consider a list of disallowed buttons (e.g. login) that, for user experience reasons, we do not want ads to show up.

#### Performance
We are loading the ads after content on the page has been loaded on the background. We aim to minimize the impact of this types of ads on the content loading. If, at the time of click, ads has not been loaded, we will not display the ads but rather navigate directly.

### Motivation

We want to open up AMP pages to this new kind of advertisement opportunity that has a very high revenue potential.

### Alternative Solutions

N/A

### Launch Tracker

_No response_

### Notifications

/cc @ampproject/wg-approvers

Contributor guide

Open the contributing guide

Research direction

No files, tests, or implementation entry points are named. Start by reviewing the proposed ad-load, display, and close flows and resolving the open questions about link filtering, cross-domain navigation, disallowed buttons, and performance. Done requires an agreed implementation scope and launch plan.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
frontend, web-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.