View in English

  • メニューを開く メニューを閉じる
  • Apple Developer
検索
検索を終了
  • Apple Developer
  • ニュース
  • 見つける
  • デザイン
  • 開発
  • 配信
  • サポート
  • アカウント
次の内容に検索結果を絞り込む

クイックリンク

5 クイックリンク

ビデオ

メニューを開く メニューを閉じる
  • コレクション
  • トピック
  • すべてのビデオ
  • 利用方法

その他のビデオ

ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。

  • 概要
  • トランスクリプト
  • AdAttributionKitについて

    AdAttributionKitは、プライバシーに配慮した広告アトリビューションのための新しいiOS向けフレームワークです。再エンゲージメント、クリックスルーアトリビューション(カスタムクリエイティブのサポートを含む)、JWS形式のインプレッションとポストバックなどをサポートしているAdAttributionKitの詳細を確認しましょう。AdAttributionKitの実装時のテストに関するインサイトや、AdAttributionKitの導入で利用できるコードスニペットおよびベストプラクティスに関する詳細な知識も得られます。

    関連する章

    • 0:00 - Introduction
    • 2:05 - Fetching ads
    • 3:55 - Displaying ads
    • 8:18 - Postbacks
    • 16:28 - Re-engagement
    • 21:09 - Testing AdAttributionKit

    リソース

    • AdAttributionKit
    • Attributing ads with SKAdNetwork and Private Click Measurement
    • Forum: App & System Services
      • HDビデオ
      • SDビデオ

    関連ビデオ

    WWDC25

    • AdAttributionKitの新機能

    WWDC22

    • SKAdNetworkの最新情報
  • このビデオを検索

    こんにちは Apple Store EngineeringのNikilです 本セッションでは AdAttributionKitについてご紹介します Appleはあらゆる事業において プライバシー保護を重視しています プライバシー保護型広告 アトリビューションにより ユーザーのプライバシーの保護と 広告の貢献度の測定を両立できます

    このタイプの広告アトリビューションは クラウドの匿名性を基盤としています

    大まかに言うと この匿名性が高いほど 広告ネットワークや広告主に返される データは少なくなり コンバージョンも減少します

    対象とするクラウドの規模が大きいほど 多くのデータが得られます

    クラウドの規模が最高レベルを超えると 広告ネットワークと広告主に 最大限の量のデータが返されます

    SKAdNetworkは クラウドの匿名性に基づく Apple初の プライバシー保護型の 広告アトリビューションフレームワークです 本セッションでは SKAdNetworkを基盤とする iOSとiPadOS向けの新しい 広告アトリビューションフレームワーク AdAttributionKitについてご紹介します まず 広告アトリビューションの 概要を説明します

    広告ネットワークは広告を生成し 署名して パブリッシャーアプリに提供します

    パブリッシャーアプリは ユーザーにその広告を表示します

    ユーザーは広告対象のアプリを インストールし その後の期間 そのアプリを利用します そして 測定期間が終了すると コンバージョン情報を収めたポストバックが 広告ネットワークに送られます

    本セッションでは 以上の流れを踏まえて 次のトピックを取り上げます 最初に説明するのは 広告を取得する方法と AdAttributionKitの新しい 広告インプレッションフォーマットです 次に 広告の表示について説明します その後 ポストバックについて説明します さらに 再エンゲージメントを取り上げ 最後に AdAttributionKitの テストについて手短にご紹介します

    広告の取得の説明から始めましょう 広告は アトリビューションフロー における入力にあたります パブリッシャーアプリは 広告データを 広告ネットワークから取得します この広告データは コンパクトなJWS形式です 各フィールドを見てみましょう これはJSON形式の 広告インプレッションです

    重要なフィールドについて説明します

    advertised-item-identifierは 広告対象のアプリのアプリIDです

    publisher-item-identifierは 広告を表示するアプリのアプリIDです

    source-identifierは 広告のキャンペーン関連情報を 表現するために使用する 4桁の整数です このフィールドの機能は SKAdNetwork 4.0の場合と同じです

    AdAttributionKitのドキュメントに JSON形式のフィールドの説明があります リンクは後ほどお伝えします

    この構造を踏まえて 広告インプレッションに移りましょう AppImpressionのインスタンスは 広告インプレッションを表します これらのインスタンスは 広告の コンパクトなJWS表現で初期化されます これについては先ほど説明しました

    次に appImpressionをコンパクトな JWSから作成する方法を解説します

    まず 広告のコンパクトな JWS表現を取得します fetchAdImpressionJWS()メソッドは 実装済みにはなっていません これは 広告プロバイダや 広告ネットワークとの統合の方法に 全面的に依存するためです

    このjwsStringをAppImpressionの イニシャライザに渡します このAppImpressionのインスタンスは 次のセクションで広告の表示について 説明する際に使用します

    AdAttributionKitは 広告表示の 3つの方法に対応しています 広告対象のアプリに表示する 各種の広告を見てみましょう

    1つ目の広告は クリックできる カスタムクリエイティブです カスタムのクリック広告をタップすると 広告対象のアプリをインストールできる マーケットプレイスへ移動します

    2つ目は 別の画面に表示される ビュースルー広告です この種類の広告コンテンツの例として 動画広告があります

    3つ目の広告タイプは 広告対象のアプリを シンプルに宣伝するものです このタイプでは SKOverlayを使用して アプリのコンテキストから離れずに バナーとして表示できます

    またSKStoreProductViewController を使えば 全画面表示のモデルも利用できますが この場合も アプリのコンテキストは維持されます SKOverlayと SKStoreProductViewControllerは いずれもiOSのデザイン言語を使用するため アプリへの導入や接続が非常に簡単です

    次に カスタムのクリック広告の 実装方法について説明します

    まず customAdViewを作成します

    次に UIEventAttributionViewの インスタンスを作成し 広告ビューのサブビューとして追加します

    なお UIEventAttributionViewは ユーザーが操作する最上部のビューに 配置する必要があります

    広告ビューの設定では 広告へのタップ操作を処理します ユーザーが広告ビューをタップすると appImpressionのインスタンスが取得され handleTap()メソッドが呼び出されます

    handleTapは appImpressionのインスタンスの初期化後 15分以内に呼び出す必要がある点に 注意が必要です 15分が経過した場合は 新規の appImpressionインスタンスを作成します

    広告がクリックされ handleTapメソッドが呼び出されると AdAttributionKitによって マーケットプレイスへと画面が遷移し 広告対象のアプリをインストールできます

    ビュースルー広告については 動画広告での使用について説明しましたが ビュースルー広告は あらゆる カスタム広告表示を扱うことができます

    簡潔なタイムラインを使用して イベントと それに関連するAPI呼び出しを 視覚化します

    広告表示の開始時に appImpressionのインスタンスに対して beginView() APIを呼び出し

    広告表示の終了時には appImpressionのインスタンスに対して endView() APIを呼び出します

    この例の動画ビュースルー広告では 動画再生の開始時に appImpressionのインスタンスに対し beginView()を呼び出し

    再生の終了時に appImpressionのインスタンスに対し endView()を呼び出します ビュースルー広告に関する注意点が いくつかあります カスタム広告のコンテンツは 2秒以上表示する必要があります つまり beginView()の呼び出しから endView()の呼び出しまでの時間は 2秒以上にする必要があります この種類の広告コンテンツに関する 業界標準に準拠するためです

    beginViewとendViewは appImpressionの同じインスタンスに 呼び出す必要があります

    また 単一の広告ネットワークで 同じアプリを広告対象とする 複数のビュースルー広告の表示を 同時に開くことはできません beginViewのすべての呼び出しは endViewの呼び出しと 対であるのが必須です

    次は SKOverlayの説明です

    SKOverlayは SKAdNetworkでの AdAttributionKitの実装と 同じ方法で実装します SKOverlayの設定には AppConfigurationの インスタンスを使用します

    appImpressionのインスタンスを 新しい AppConfigurationの appImpressionプロパティに設定します

    最後は SKStoreProductViewControllerです SKStoreProductViewControllerの 設定は SKAdNetworkでの設定と同様です

    loadProductメソッドを呼び出して プロダクトページに表示するUIを 準備します

    主な違いは loadProductメソッドの impressionパラメータです このパラメータに appImpressionのインスタンスを渡します

    次はポストバックです

    アトリビューションシステムの 出力にあたるのがポストバックです 広告ネットワークに送信される コンバージョンのシグナルであり 必要に応じて 広告対象のアプリの デベロッパにも送信されます

    AdAttributionKitが送信する ポストバックは 署名済みのコンパクトなJWSと 未署名のフィールドの組み合わせです これが署名済みの部分です

    いくつの重要なフィールドを見てみましょう

    conversion-typeフィールドには この ポストバックを作成したコンバージョンの タイプに関する情報があります このフィールドの値は download redownload re-engagementです

    marketplace-identifierフィールドは コンバージョンの発生元となった マーケットプレイスのIDが入ります この例では Apple App Storeからの ダウンロードであることから このフィールドの値は com.apple.AppStoreになっています

    publisher-item-identifierは 元の広告を表示していたアプリのIDです クラウドの匿名性が低い場合 これはポストバックに含まれません

    source-identifierは 2〜4桁の数字です クラウドの匿名性に応じて ポストバックの値の桁数が決まります

    ポストバックリクエストの本文の 残りの部分を見てみましょう

    jws-stringキーには 先ほど説明したJSONの コンパクトなJWS表現が保持されます ここでは 説明を簡潔にするために 実際の文字列ではなく プレースホルダを表示しています

    ad-interaction-typeキーには ユーザーが広告に対し どのような操作を行ったかを示す情報が 保持されます 入力される値はclickとviewです このキーについては 後のセクションで詳しく説明します

    conversion-valueキーには AdAttributionKitに対して APIを呼び出した 広告対象のアプリで決定された コンバージョン値が保持されます

    conversion-valueも クラウドの匿名性に基づいているため 必ずしも ポストバックに含まれるとは限りません

    クラウドの匿名性の程度に基づき データの許容度が高くないと判断されると conversion-valueではなく coarse-conversion-valueが 送信されることがあるほか

    そもそも コンバージョン値が 送信されないこともあります

    ポストバックリクエストの本文全体に戻って 2つのトピックを詳しく見ていきます conversion-valueと ad-interaction-typeです

    まず コンバージョン値は 広告の効果の測定に使用できます 言い換えると 広告キャンペーンが 広告主のニーズに対し どの程度の価値をもたらしたかを示します コンバージョン値は 広告の費用対効果(ROAS)に関する情報を もたらすという点でも有用です 今後の広告費用と関連する最適化について 判断する上で役立つ 極めて重要なヒューリスティック値です なお コンバージョン値は fineかcoarseのいずれかですが これはクラウドの匿名性によって決まります 次に 3つのシナリオについて ユーザーのエンゲージメントを測定し AdAttributionKitから conversion-valueを更新してみましょう

    1つ目はアカウント作成のシナリオです

    アプリでのアカウント作成を処理する メソッドを使用しているとします

    まず PostbackUpdateの 構造体を作成し 次に Postbackの型に対して updateConversionValue メソッドを呼び出し 更新を実行します

    PostbackUpdateの構造体の プロパティを詳しく見てみましょう

    1つ目の引数は fineConversionValueです 値は0〜63の正の整数です fineConversionValueの値は 広告キャンペーンの内容と その効果の測定方法について セマンティックな観点で 意味を成すものである必要があります 一般的に コンバージョン値のスキーマは 広告対象のアプリのデベロッパ 選択した広告ネットワーク 提携先として選択したMMPの間での 検討と計画を経て決定されます

    2つ目の引数は ポストバックをロックするための値です このロックは 特定のコンバージョン期間において コンバージョン値の 測定と記録が終了したことを AdAttributionKitに 通知するために使用します ロックを行うと AdAttributionKitで ポストバックが変更不可になり ただちにその送信スケジュールを 設定できます

    ロックを使用する状況としては 一刻も早く情報を得る必要があるような 極めて価値が高いイベントの発生が 挙げられます こうした状況では情報の速さが命であり そのコンバージョン期間の その他すべての情報の測定より優先されます この場合ロックを呼び出し ポストバックを変更不可にして スケジュールを設定するよう AdAttributionKitに伝えます

    アカウントの作成からは ポストバックのロックが必要になるような 大きな価値は得られないので ロックの引数はfalseにします

    最後の引数はcoarseコンバージョン値です low medium highの 3つの値のいずれかを指定できます 先ほど説明したように クラウドの匿名性に基づいて fine値を送信できないと 判断される場合は ポストバックで coarse値が送信されます

    ユーザーは 作成したアカウントで 最初の動画を視聴します これは価値の高いイベントと考えられるので fineConversionValueの値を 38に更新します

    ユーザーによる動画の視聴には ポストバックのロックを検討すべき 価値がないので 引数はfalseです

    クラウドの匿名性に基づいて fine値を送信できないと判断される場合は フォールバック測定として coarseConversionValueを mediumにします

    最後に ユーザーが動画をアップロードした場合 極めて価値の高い エンゲージメントと考えられるので fine値を42に更新します

    動画制作は 極めて価値の高いイベントなので ただちにポストバックを 受け取ることが望まれます そのため APIのlockPostbackの引数により ポストバックをロックします

    ポストバックをロックしても それが ただちに送信されるわけではありません 送信を遅延させることで ユーザーの プライバシー保護を強化しています

    ここでもフォールバックとして coarseConversionValueを highに設定します

    PostbackUpdateの構造体を使用すると アプリでの様々なシナリオにおいて コンバージョン値を設定できます

    ポストバックについて最後に説明するのは 広告インタラクションのタイプです

    AdAttributionKitは ユーザーによる広告のタップ操作と 広告の単なる閲覧を区別します コンバージョンにつながった広告を 特定する上では この区別が極めて重要です

    ポストバックでは 広告に対するユーザーの操作に応じて 広告インタラクションのタイプの値は clickまたはviewになります 様々な広告の表示方法に対応する このフィールドの値を見てみましょう

    カスタムのクリック広告では 閲覧だけでは インプレッションは発生しません

    広告をタップすると インタラクションの タイプはclickになります

    ビュースルー広告では 閲覧があれば インタラクションタイプはviewになります 広告をタップしても インプレッションは発生しません

    SKOverlayでは 広告が表示されると インタラクションタイプはviewになります 広告をタップするとclickになります

    SKStoreProductViewController でも同様に 広告インタラクションのタイプは 広告を表示するとview タップするとclickです

    コンバージョン値と インタラクションのタイプから アプリにおけるユーザーエンゲージメントと インストールにつながった広告に関する 詳細情報が得られます 次に より新しい概念である 再エンゲージメントをご紹介します 広告アトリビューションの主な目的は コンバージョンイベントを インプレッションイベントに 関連づけることです ここまでの説明では インストールを コンバージョンイベントとしてきました 多くの広告キャンペーンの最初の目標は アプリをインストールしてもらうことです アプリ利用のユーザージャーニーは インストールから始まるため この目標設定は妥当と言えます

    では コンバージョンイベントの 新しいタイプである 再エンゲージメントの 説明に移りましょう 再エンゲージメントの広告キャンペーンでは 広告対象のアプリへの 一度離れた ユーザーの関心を再喚起することが目標です

    例えば 広告対象のアプリを インストールしたユーザーが 利用を中止したとします 広告対象のアプリでは このユーザーの再獲得が望まれます

    そこで 期間限定オファーの 広告を実施します ユーザーがこの広告をタップすると AdAttributionKitにより 広告対象のアプリが起動され オファー画面が開き 再エンゲージメントが始まります

    これは 再エンゲージメントの 広告インプレッションです 再エンゲージメントのために ペイロードに eligible-for-re-engagement パラメータを新たに追加します

    これにより 広告インプレッションを 再エンゲージメントのコンバージョンに 算入するよう AdAttributionKitに指示できます

    eligible-for-re-engagement プロパティを設定した 広告インプレッションは 広告対象のアプリが インストール済みかどうかに基づき 再エンゲージメントか インストールのいずれかとして算入されます

    再エンゲージメントのオプトインがない 通常の広告インプレッションは インストールとしてのみ算入されます

    これは 再エンゲージメントを 開始するためのコードです

    jwsStringを使用して AppImpressionのインスタンスを作成します これは 再エンゲージメントを オプトインしたJWSインプレッションです

    次に 広告ビューのタップハンドラで まず 広告対象のアプリ内で ユーザーの移動先となる ユニバーサルリンクを取得します

    次に appImpressionインスタンスに対して handleTap()メソッドを呼び出し reengagementURLを渡します この呼び出しにより AdAttributionKitが 広告対象のアプリを開きます

    広告対象のアプリが開かれると 再エンゲージメントのURLが渡されます 再エンゲージメントのURLには クエリパラメータが追加されています 再エンゲージメントでは AdAttributionKitが このパラメータをURLに追加します

    広告対象のアプリは このパラメータに基づいて アプリが開かれたのが AdAttributionKitの 再エンゲージメントに起因するか判断します

    再エンゲージメントの実施は SKOverlayと SKStoreProductViewController でも可能です

    どちらの場合も 設定はインストールに類似しています

    広告対象のアプリで ユニバーサルリンクを開くには SKOverlayでは adAttributionReengagementURL プロパティを

    SKStoreProductViewControllerでは loadProductメソッドで reengagementURLパラメータを使用します 次は再エンゲージメントのコンバージョンで 送信されるポストバックの説明です

    ポストバックのコンバージョンタイプキーの 値は re-engagementになります

    再エンゲージメントのコンバージョンの インタラクションのタイプは clickのみです AdAttributionKitでは ビュースルーの 再エンゲージメントはサポート対象外です

    コンバージョン値を更新する 最初の呼び出しは コンバージョンから48時間以内に 実行する必要があります

    再エンゲージメントのポストバックは インストールのポストバックとは別に 選択的に更新できます その方法をお見せします

    先ほどのPostbackUpdateの構造体を 再度見てみましょう

    どのポストバックを更新するかは conversionTypesパラメータで制御します

    再エンゲージメントの ポストバックのみを更新する場合は conversionTypesの値を .reengagementにします

    インストールの ポストバックのみを更新する場合は conversionTypesの値を .installにします

    すべてのポストバックを更新する場合は conversionTypeの値を.installと .reengagementの両方にします conversionTypesのパラメータが nilの場合も AdAttributionKitは すべてのポストバックを更新します

    以上が再エンゲージメントの説明です これとインストールを合わせれば ユーザーによるアプリ利用のあり方の 全体像を把握できます AdAttributionKitのテストは 困難になる場合があります 原因は このキットがその要件と目的に 応えるために採用している非同期設計です

    この非同期性は プライバシー保護の強化を目的とした 時間のランダム化によって さらに強くなっています テストを容易にするために AdAttributionKitに 新たなデベロッパモードを追加しました

    デベロッパモードでは 時間のランダム化が適用されず 時間決定論的なシステムになります コンバージョン期間が短くなるので コンバージョン値の更新のテストを 3つの期間すべてにおいて テストしやすいスケジュールで実施できます

    デベロッパモードでは ポストバックの送信も 高速になるので テストに効果的です デベロッパモードを有効にする方法を 見てみましょう

    iOSの設定でメニューに移動し のスイッチまで下にスクロールします

    スイッチをオンにすると AdAttributionKitが デベロッパモードで機能するようになります システムでの所要時間が短くなり 迅速なテストが可能になります

    以上が AdAttributionKitに関する 本セッションの内容です プライバシーを保護する 新しい iOS/iPadOS向け広告アトリビューションの フレームワークについて説明しました

    広告ネットワークを SKAdNetworkで使用するために すでに登録済みの方は それ以外の登録は不要です 未登録であれば まず AdAttributionKitに 広告ネットワークをご登録ください

    登録できたら 新しいJWS形式の広告を出稿し AdAttributionKitで表示しましょう

    広告対象のアプリに 新しいAdAttributionKit APIを導入し コンバージョン値の更新に利用しましょう

    サーバ側では 受信する新しいJWS形式のポストバックを 解析し 有益な情報を取得しましょう

    本セッションでご紹介した AdAttributionKitのすべての機能は SKAdNetworkにフルに対応しています SKAdNetworkの詳細については WWDC22のセッション「What’s new with SKAdNetwork」をご覧ください

    最後に AdAttributionKitの導入を 始める際に役立つ 最適なリソースである AdAttributionKitのドキュメントも ぜひご覧ください ご視聴ありがとうございました

Developer Footer

  • ビデオ
  • WWDC24
  • AdAttributionKitについて
  • メニューを開く メニューを閉じる
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    Open Menu Close Menu
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • SF Symbols
    メニューを開く メニューを閉じる
    • アクセシビリティ
    • アクセサリ
    • App Extension
    • App Store
    • オーディオとビデオ(英語)
    • 拡張現実
    • デザイン
    • 配信
    • 教育
    • フォント(英語)
    • ゲーム
    • ヘルスケアとフィットネス
    • アプリ内課金
    • ローカリゼーション
    • マップと位置情報
    • 機械学習
    • オープンソース(英語)
    • セキュリティ
    • SafariとWeb(英語)
    メニューを開く メニューを閉じる
    • 英語ドキュメント(完全版)
    • 日本語ドキュメント(一部トピック)
    • チュートリアル
    • ダウンロード(英語)
    • フォーラム(英語)
    • ビデオ
    Open Menu Close Menu
    • サポートドキュメント
    • お問い合わせ
    • バグ報告
    • システム状況(英語)
    メニューを開く メニューを閉じる
    • Apple Developer
    • App Store Connect
    • Certificates, IDs, & Profiles(英語)
    • フィードバックアシスタント
    メニューを開く メニューを閉じる
    • Apple Developer Program
    • Apple Developer Enterprise Program
    • App Store Small Business Program
    • MFi Program(英語)
    • News Partner Program(英語)
    • Video Partner Program(英語)
    • セキュリティ報奨金プログラム(英語)
    • Security Research Device Program(英語)
    Open Menu Close Menu
    • Appleに相談
    • Apple Developer Center
    • App Store Awards(英語)
    • Apple Design Awards
    • Apple Developer Academy(英語)
    • WWDC
    Apple Developerアプリを入手する
    Copyright © 2025 Apple Inc. All rights reserved.
    利用規約 プライバシーポリシー 契約とガイドライン