ampproject / ampproject/amphtml
Intent to Implement: contentpass - a cross-site subscription for ad and tracking free access
- 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
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