WWDC Quick Look 💓 By SwiftGGTeam
Meet privacy-preserving ad attribution

Meet privacy-preserving ad attribution

元の動画を見る

ハイライト

PCM と SKAdNetwork により、広告帰属のためにユーザーを追跡する必要がなくなります。すべての属性の計算はデバイス上で実行され、レポートはランダムな遅延と IP 保護を伴って送信されます。

主な内容

広告のアトリビューションはデジタル マーケティングの基礎です。広告主は次のことを知る必要があります: 資金を投資した広告はコンバージョンをもたらしましたか?しかし、従来のアトリビューション方法は、ユーザーのプライバシーを侵害するクロスサイト追跡(Cookie、IDFA)に依存しています。

Apple のソリューションは 2 つの行に分かれています。

プライベート クリック測定 (PCM) は Web 広告のアトリビューションを処理します。ユーザーは広告をクリックし、ターゲット Web サイトで購入を完了します。広告主はプロセス全体を通じてユーザーの ID を確認できません。ブラウザはデバイス上のクリックとコンバージョンを記録し、24 ~ 48 時間後に集計レポートをランダムに送信します。レポートにはキャンペーン ID とコンバージョン タイプのみが含まれ、ユーザー ID は含まれません。

SKAdNetwork はアプリのインストール属性を処理します。ユーザーが広告をクリックして App Store にジャンプし、アプリをインストールして開くと、広告ネットワークが集計レポートを受け取ります。レポートには、広告ネットワーク ID、パブリッシャー アプリ ID、キャンペーン ID、コンバージョン値が含まれますが、これもユーザー ID は含まれません。

これら 2 つのソリューションの中心的な考え方は同じです。つまり、アトリビューションの計算をサーバーからデバイスに移動し、情報エントロピーの制限とデータ遅延を使用してプライバシーを保護します。

詳細

PCM: Web 広告のプライバシー帰属

PCM は W3C Privacy Community Group が提案した標準であり、Apple がそれを Safari に初めて実装しました (05:57)。

Web 間のアトリビューション プロセス

ユーザーは検索サイトの広告をクリックします。

<!-- 広告リンクに 2 つの属性を追加します -->
<a href="https://longboardshop.biz/products/lemon-yellow"
   attributionsourceid="55"
   attributiondestination="https://longboardshop.biz">
   Lemon Yellow Longboard
</a>

キーポイント:

  • attributionsourceid: 8ビットエントロピー、ロゴ広告キャンペーン (07:08)
  • attributiondestination:変換対象サイト(07:16)
  • データはブラウザにローカルに保存され、アップロードされません (07:19)

ユーザーはターゲット Web サイトで変換を完了します。

# ターゲット Web サイトがコンバージョンをトリガーします。ソース Web サイトに GET リクエストを送信します。
GET /pixel?trigger-data=15&priority=6
Host: searchforlongboard.biz

# 源网站 302 重定向到 well-known 路径
HTTP/1.1 302 Found
Location: /.well-known/private-click-measurement/trigger-attribution/
    ?trigger-data=15&priority=6

キーポイント:

  • trigger-data: 変換タイプを識別する 4 桁のエントロピー (カートに追加 = 15 など) (07:37)
  • priority: 6 ビット、高優先度は低優先度の変換をオーバーライドできます (09:31)
  • 従来のピクセルと互換性のあるデザインでアクセスコストを削減 (09:38)

ブラウザは 24 ~ 48 時間後にレポートをランダムに送信します。

{
  "source_id": 55,
  "trigger_data": 15,
  "source_site": "searchforlongboard.biz",
  "destination_site": "longboardshop.biz"
}

キーポイント:

  • レポートの送信先/.well-known/private-click-measurement/report-attribution/(09:45)
  • ランダムな遅延により、時間の経過とともにユーザー ID がリンクされなくなります (08:16)
  • iOS 15 / macOS 12 は、指紋追跡を防ぐために IP アドレス保護を追加します (08:28)
  • レポートにはユーザーを特定する情報が含まれていません (08:51)

アプリからウェブへのアトリビューション

アプリに広告を表示し、クリックすると Safari で変換が完了します。

// Info.plist 中添加报告端点
// NSAdvertisingAttributionReportEndpoint = https://myapp.example.com

// 広告にオーバーレイするアトリビューション ビューを作成する
let attributionView = UIEventAttributionView()
attributionView.frame = adButton.frame
view.addSubview(attributionView)

// ユーザーが広告をクリックしたときにアトリビューション オブジェクトを作成する
let attribution = UIEventAttribution(
    sourceIdentifier: 55,
    destinationURL: URL(string: "https://longboardshop.biz")!,
    sourceDescription: "Lemon Yellow Longboard Ad",
    purchaser: "SocialAdNet"
)

// Scene-based 生命周期
let options = UIScene.OpenExternalURLOptions()
options.eventAttribution = attribution
UIApplication.shared.open(url, options: options) { _ in }

キーポイント:

  • UIEventAttributionViewユーザーのジェスチャーを検証して誤った帰属を防止する (12:02)
  • UIEventAttributionソース ID、宛先 URL、コンテンツの説明、購入者情報が含まれます (12:21)
  • Info.plist 内NSAdvertisingAttributionReportEndpointレポートの送信先を決定する (11:27)
  • 変換側は Web-to-Web とまったく同じです (11:00)

不正防止メカニズム

PCM は、帰属の偽造を防ぐために RSA ブラインド署名を使用します (13:37):

  1. ブラウザはソース Web サイトの公開鍵を取得します (14:00)
  2. ブラウザは帰属メッセージを「エンベロープ」(隠しコンテンツ)に入れる (14:15)
  3. ソース Web サイトは封筒に署名し、ブラウザに返信します (14:23)
  4. ブラウザは、ソース Web サイトの署名付きのメッセージを取得します (14:36)
  5. レポートは署名付きで送信され、受信者は公開鍵で検証できます (14:46)

キーポイント:

  • ソース サイトでは元のメッセージが表示されず、クリックとコンバージョンを関連付けることができません (15:02)
  • ブラインド署名により、プライバシーを損なうことなく信頼できるレポートが保証されます (13:48)

デバッグモード

Safari の [開発] メニューで [プライベート クリック測定デバッグ モード] をオンにします (15:23)。

  • Web Inspector の強化されたログ出力 (15:38)
  • レポート送信間隔が 24 ~ 48 時間から 10 秒 (15:40) に短縮されました。

SKAdNetwork: アプリのインストール アトリビューション

SKAdNetwork には、広告ネットワーク、発行者アプリ、広告対象アプリの 3 者が関与します (16:14)。

基本的なプロセス

  1. ユーザーにはソーシャル アプリでロングボード アプリの広告が表示されます
  2. 広告をクリックして、AdNetwork ID、サイト運営者アプリ ID、キャンペーン ID などのレポート データを生成します。
  3. App Store に移動し、Longboard アプリをインストールして起動します
  4. Longboard アプリは StoreKit API を呼び出してアトリビューション レポートをトリガーします
  5. 広告ネットワークに送信されるレポート

バージョン更新

バージョン最小システム新機能
2.1iOS 14.6以降256 ビット公開鍵、より強力な署名検証 (18:09)
2.2iOS 14.6以降ビュースルー アトリビューションのサポート (18:35)
2.2iOS 14.6以降複数のポストバックと IP 保護 (19:14)
2.2iOS 14.6+Postback to Developer(19:48)

ビュースルー アトリビューション

ディスプレイ広告には次のような要因も考えられます。

let impression = SKAdImpression()
impression.adNetworkIdentifier = "socialadnet.example"
impression.campaignIdentifier = 55
impression.sourceAppStoreItemIdentifier = 1234567890
impression.advertisedAppStoreItemIdentifier = 9876543210
impression.signature = generatedSignature
impression.timestamp = Date()
impression.version = "2.2"

SKAdNetwork.startImpression(impression)
// 広告表示終了
SKAdNetwork.endImpression(impression)

キーポイント:

  • startImpression / endImpressionショーの開始と終了をマークする (18:42)
  • ビュースルーの忠実度タイプは 0 で、クリック アトリビューションの 1 より低くなります (18:55)
  • 忠実度の高い帰属のレポートを優先する (19:07)

複数のポストバックと IP 保護

iOS 14.6以降でサポート:

  • 優勝ネットワークと最大 5 つの候補ネットワークがレポートを受け取ります (19:22)
  • 勝利したネットワークはクラウド匿名性制御値 (sourceApp、コンバージョン値) を受け取る可能性があります (19:36)
  • 候補ネットワークはこれらの機密値を受信しません (19:41)
  • IP アドレス保護を追加します (19:17)

Postback to Developer

勝利アトリビューション レポートは、宣伝されたアプリの開発者にも送信されます。

<!-- Info.plist -->
<key>NSAdvertisingAttributionReportEndpoint</key>
<string>https://myapp.example.com</string>

キーポイント:

  • 使用NSAdvertisingAttributionReportEndpointエンドポイントの構成 (20:04)
  • レポートの送信先/.well-known/パス (20:16)
  • PCM app-to-web と同じ構成キーを共有します (20:07)

テストのベスト プラクティス

  • 不正行為を防ぐために、各インプレッションのノンスは一意である必要があります (20:29)
  • 署名を作成するときはパラメーターの順序が重要です。確認するにはドキュメントを参照してください (20:39)
  • 開発署名されたソース アプリを使用してポストバックをテストし、ソース アプリ ID を 0 に設定します (20:53)
  • テスト プロファイルをダウンロードしてポストバック送信を高速化します (21:01)

重要ポイント

  1. PCM には ATT 認証は必要ありません。アプリ/Web サイト全体でのユーザーの追跡が含まれないため、PCM を使用するときにアプリ追跡の透明性権限をリクエストする必要はありません。
  2. SKAdNetwork のコンバージョン値はできるだけ早く設定する必要があります。iOS 15 のポストバックには時間枠があり、その時間が終了すると更新されたコンバージョン値は失われます。ユーザーの主要な行動ポイント (インストール、登録、支払い) ですぐに電話することをお勧めします。updateConversionValue
  3. PCM と従来のアトリビューションの両方を移行としてサポート。PCM は現在 Safari でのみサポートされており、Chrome/Firefox には独自のソリューションがあります。両方を同時に実装し、ブラウザの機能に応じて選択することをお勧めします。
  4. デバッグ モードを使用してテストを高速化します。PCM の 24 ~ 48 時間の遅延により、デバッグ モードがオンになってからレポートが発行されるまでに 10 秒かかるため、デバッグが面倒になります。
  5. SKAdNetwork 2.2 の View-Through はアトリビューション シナリオを拡張します。ディスプレイ広告も貢献できるようになり、クリックよりも優先度は低くなりますが、より多くのユーザー タッチポイントをカバーします。

関連セッション

コメント

GitHub Issues · utterances