ampproject / ampproject/amphtml

Intent to Implement: contentpass - a cross-site subscription for ad and tracking free access

Open
#37,521 4 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

This proposes an `amp-access-contentpass` extension for the [contentpass](https://my.contentpass.net) service.

First some context. In the EU, many sites use the so called PUR model (pur is German for pure) where people can pay a small amount of money to disable ads and tracking. The user ends up with a consent screen with either the option to accept all ads and tracking, or create a PUR account and pay a monthly fee for ad and tracking free access. The model has nothing to do with premium content, it is completely orthogonal to that. It is really just ad and tracking free access to content that is free either way.

Contentpass offers this PUR model as a cross-site subscription. A user can register for a contentpass once and get ad and tracking free access to all partner sites (list can be found here: https://my.contentpass.net/publications).

Technically, we integrate into the CMP (ConsentManager, OneTrust, Usercentrics, SourcePoint, etc.) and use them for managing the consent (accept all or deny all). Usually, we hide the CMP's wall and display our own IAB-compliant wall. But we also allow usage of the CMP wall if it supports integrating our SDK. If a user logs in via Contentpass, we revoke all consent. All others have to give full consent.

### Design Document

_No response_

### Motivation

There is the `amp-consent` extension that already supports the [CMPs](https://github.com/ampproject/amphtml/blob/main/extensions/amp-consent/0.1/cmps.js) we support as well.

And there are `amp-access` based extensions for cross-site subscriptions, e.g. `amp-access-scroll` which has (actually, had, before they were bought by twitter) a very similar business model to ours.

But there is no extension yet that offers the choice of using a subscription or giving full consent. Therefore, I'd like to propose the `amp-access-contentpass` extension which does it:

* Connect to the existing `amp-consent` extension and use it for managing the consent
* Display the choice of either "accept all" or "login with contentpass"
* Allow users managing their consent using the `amp-consent` module as usual
* Watch for consent changes and display the choice again if a non-contentpass user revoked some/all consent

### Alternative Solutions

A potential alternative is to ask all CMP vendors to modify their AMP prompts (the `promptUISrc` entries listed in [cmps.js](https://github.com/ampproject/amphtml/blob/main/extensions/amp-consent/0.1/cmps.js)) to include Contentpass integration and just rely on the `amp-consent` extension. This would require though that a user can be sent to our signup/login funnel from within the consent prompt, which I doubt is possible with the current implementation.

We also did not go down this path in the normal web version. We don't want to wait for all CMPs to modify their product and integrate us, but we just use the already existing API to hook into the according events. Therefore, it is not a path we want to go with AMP either.

### Launch Tracker

_No response_

### Notifications

/cc @ampproject/wg-approvers

Contributor guide

Open the contributing guide

Research direction

Start by reading extensions/amp-consent/0.1/cmps.js and the existing amp-access-based extensions, including amp-access-scroll, to understand the integration points. Define the extension design and verify that it connects to amp-consent, offers accept-all or Contentpass login, and responds to later consent changes; the issue has no design document or launch tracker.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
frontend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.