ペイウォール・テクノロジー用語集

いわゆるWebメディア向けにペイウォール機能を提供するSaasの新規開発に携わることになったため、自分向けに用語集にまとめました。

# 前提
- 日経新聞電子版などに代表されるWebメディアのペイウォールに関連する用語および要素技術が対象範囲です。
- 自分が調べたまたは人から聞いた内容をまとめただけですので、内容の正確さは保証しません。（間違い・違和感などは指摘下さい！）

# 基本用語
## ペイウォール
Webメディアの記事（コンテンツ）を有料化して、課金したユーザーのみが閲覧できるようにすること。

ペイウォールを導入しているWebメディアの提供企業としては、出版社や新聞社あるいは紙媒体を持たないいわゆるオンラインメディアがある。各種メーカーが提供するオウンドメディアは基本的には課金を目的にしていないので、ペイウォールを導入している例は2020年時点で存在していない（はず）。

代表例
- 新聞社：日経新聞電子版、朝日新聞デジタル
- 出版社：週刊東洋経済Plus、ダイヤモンド・オンライン

また、ペイウォールには以下のように様々な方式がある。

## 課金形式による分類
### メーター制ペイウォール
無料会員が一定期間に読める記事数に上限を設けて、有料会員登録（課金）をすると上限に関係なく読めるようになる形式。後述のハードペイウォールに対してソフトペイウォールと呼ぶこともある。

### ハードペイウォール
有料会員登録（課金）をしないと一切の記事を読むことができない（強気な）形式。

### フリーミアム型ペイウォール
これはペイウォールの種類というよりはサブスクリプションモデルの種類だと思うがあえて含める。ベーシックな記事や基本的な機能は無料にして、一部記事や機能に対して有料会員登録（課金）を必要とする形式。

### ダイナミックペイウォール
ユーザーの行動ログによって動的にペイウォールの形式を変えること。例えば金融カテゴリの記事ばかり見ているユーザーに対しては、金融記事の無料閲覧メーターの上限を変更する、という風にメディア運営側で設定する形式。（2020年時点で日本国内に導入事例はない？）

## 実装方法による分類
### ブラウザサイドペイウォール
記事全文をWebサーバから返すが、無課金ユーザーに対してはブラウザ側のJavaScript・CSSを使って記事の一部しか見れないようにするペイウォール。

- 記事全文を取得しているので、ブラウザ操作によるすり抜けを防ぐことができない。

### サーバサイドペイウォール
無課金ユーザーに対して記事の全文ではなく一部だけをWebサーバから返して、続きを見るには課金してくださいとアナウンスするペイウォール。

- 記事のセキュリティが高い（後述するペイウォールブロッカーを考慮しなくていい）
- 記事全文が検索エンジンにインデックスされないので、SEO効果が弱まる可能性がある。

## ペイウォール・ブロッカー
前述したブラウザサイドペイウォールを回避する目的で作られたソフトウェア。ブラウザ拡張として提供されているものが多い。

またわざわざこういったソフトウェアを使わずとも、各種ブラウザのdeveloper向けツールでHTMLなどを操作することで、ブラウザサイドペイウォールは回避できる。メーター制ペイウォールにおける記事閲覧数などのデータがCookieに保存されている場合、それを削除することで容易に回避できてしまったりする。

# 関連用語
## GDPR
General Data Protection Regulation（一般データ保護規則）

2018年5月25日にEUで施行された、企業が個人情報の取得および利用を制限するための法律。大まかに言うと、「個人情報を取得する際には、ユーザーの同意が必須」になる。Cookieを元に配信広告を決定するシステムを提供するいわゆるアドテク企業と同様、Webメディアにペイウォールを提供する場合には頭に入れておく必要がある。

## IAB
Interactive Advertising Bureau（ネット広告業界団体）

後述する `Safe Frame` や `Friendly iFrame` の仕様を定義（提唱？）している団体。

## ITP
Intelligent Tracking Prevention（インテリジェントトラッキング防止機能）

AppleのブラウザSafariにおける `Cookie`（特に `3rd Party Cookie` ） や `LocalStorage` の利用を制限する機能。厳しくなる方向で段階的なバージョンアップを重ねていて、2020年3月時点の最新バージョン2.3では「一部 `LocalStorage` の制限」「リファラのダウングレード（広告をクリックして表示したLPで取得されるリファラからサブドメインなどが削られる）」といった内容が含まれる。

`3rd Party Cookie` 制限への対策としては `Storage Access API` を使うことを推奨している。

公式ドキュメント
- [ITP2.3 Webkitの解説ブログ](https://webkit.org/blog/9521/intelligent-tracking-prevention-2-3/)
※WebkitはSafariなど色々なブラウザで使われているオープンソースのレンダリングエンジン。

# 要素技術
## iframe
他サイトのHTMLを自分のWebサイトに埋め込むことができるHTMLタグ。ドメインが異なるサイトを埋め込んだ場合 `window.postMessage()` メソッドを使用しないと互いに通信できないため、「埋め込んだiframeの高さを調節する、Webメディア側のCookieを取得する」といったことができない。

## Safe Frame
`IAB` が提唱している、通常のiframeでできないクロスドメイン通信をセキュアに実現するためのiframe。`window.postMessage()` メソッドをラップしたAPIが提供される。Googleサイト運営者タグ(GPT)という、広告を取得・表示できるGoogle製ライブラリはデフォルトで `Safe Frame` を使うようになっている。

公式ドキュメント
- [【IAB】Safe Frameガイドライン](https://www.iab.com/guidelines/safeframe/)
- [【IAB】Safe Frame Githubリポジトリ](https://github.com/InteractiveAdvertisingBureau/safeframe)

## Friendly iFrame
`IAB` が提唱している、iframeタグを動的に生成することで同一ドメインとなる性質を利用して、Webメディア側のDOM操作などを可能にしたifameの種類。広告技術として使う場合はWebメディア側視点で見たセキュリティが低いと言われている。（Cookie取得やDOM操作などなんでもできるので）

公式ドキュメント
- [【IAB】リッチメディア広告のベストプラクティス（Friendly iFrameのガイドライン）](https://www.iab.com/wp-content/uploads/2015/09/rich_media_ajax_best_practices.pdf)

## Storage Access API
ユーザーが特定のWebサイトを表示しているときに、サードパーティが `1st Party Cookie` を利用できるようにするAPI実装。これを実装すると、`Cookie` の利用を許可しますか？というポップアップがユーザーに表示される。`Safari` と `Firefox` で実装されている。

公式ドキュメント
- [MDN Storage Access API](https://developer.mozilla.org/en-US/docs/Web/API/Storage_Access_API)

# 参考
- [メーター制からダイナミックへ、ペイウォール戦略の最前線](https://digiday.jp/publishers/new-york-media-paywall-subscriptions-flexible/)
- [海外メディアのサブスクリプション、4種の”定石”モデルを解説します](https://note.com/ximerainc/n/n47c3eae1fe99)
- [GDPR（General Data Protection Regulation：一般データ保護規則）](https://www.ppc.go.jp/enforcement/infoprovision/laws/GDPR/)
- [Dynamic async Friendly IFrameの話](https://www.slideshare.net/shoishihara1/dynamic-async-friendly-iframe)
- [Google サイト運営者タグの概要](https://support.google.com/admanager/answer/181073?hl=ja)
- [SafeFrame ver1.1 仕様読解、媒体側の実装例](https://qiita.com/nag4/items/de044690dd227865a134)
- [真のJavaScript非同期読み込み](http://tokkono.cute.coocan.jp/blog/slow/wp-content/uploads/true-async/sample2.html)
- [今からはじめるITP2.4(?)対応](https://note.com/martech/n/nff9965bfda05)