はじめにSKAdNetworkとSKAN
SingularのiOS SDKはSKAdNetworkとの統合を簡素化し、マルチポストバック、階層的ソースID、粗視化変換値などのSKAN 4.0の機能をサポートします。SingularのオープンソースSKAN標準に基づき、簡単なセットアップと広告ネットワークとの互換性を保証します。セットアップの詳細については、SingularのSKAdNetworkガイドをご覧ください。
SKAdNetworkトラッキングのサポート
ヒント:Singular SDKを使用する場合、SKAdNetworkトラッキングはデフォルトで有効になっています。
SKAdNetworkのサポートを無効またはオフにするには:
- SingularConfigオブジェクトをビルドする際に、skAdNetworkEnabled設定メソッドをFALSE 。
AppTrackingTransparency(ATT)の処理
iOS 14.5+(iOS 18を含む)では、ATTrackingManager 、トラッキングのためにIDFAにアクセスする前にユーザーの同意を求めます。SingularのiOS SDK (v12.x)はATTをサポートし、同意前の初期化を許可し、同意が得られるかタイムアウトが発生するまでイベントを遅らせます。これにより、Appleのプライバシールールに準拠し、SKAdNetwork (SKAN) 4.0との互換性が保証されます。
実装
-
ATTフレームワークを追加する:
- あなたのXcodeプロジェクトにAppTrackingTransparency 。
- Info.plist をNSUserTrackingUsageDescription で更新してください(例:"This app uses tracking to personalize ads.")。
-
ATTの同意を求める:
- UX戦略に基づいて、アプリの起動時またはオンボーディング後に同意を求めます。
- SingularのSDKを使用して、同意前の初期化を処理します。
-
Singular SDKを設定します:
- SingularConfigオブジェクトをビルドする際にwatetForTrackingAuthorizationWithTimeoutInterval設定メソッドを設定し、ATT同意が解決されるかタイムアウト(例えば30秒)が切れるまでイベントを遅らせます。
Flutterを使用する場合、App Tracking Transparencyを実装するためにサードパーティパッケージに依存する必要があります。例:Flutterへのapp_tracking_transparencyプラグイン
ヒント:初期化遅延を設定すると、アプリの流れは次のようになります:
- アプリが開くと、Singular SDKはセッションとユーザーイベントの記録を開始しますが、Singularサーバーにはまだ送信しません。
- App Tracking Transparencyの同意が許可/拒否されるか、設定された時間が経過すると、SDKはセッションとキューに入ったイベントをSingularサーバーに送信します(IDFAの有無は問いません)。
- その後Singularは、IDFAが利用可能であればそれを利用してアトリビューションプロセスを開始します。
次の表は、この統合を使用したシナリオをまとめたものです:
シナリオ | IDFAの利用可能性 |
ユーザーが同意ダイアログを表示し、設定された時間が経過する前に同意する。 | IDFAが利用可能 |
ユーザーが同意ダイアログを表示し、設定時間が経過する前に同意を拒否する。 | IDFAが利用できない |
設定時間が経過し、同意ダイアログが表示され、同意する。 | IDFA は、同意の後に報告されるユーザーイベントでのみ利用可能である。 |
設定時間が経過し、同意ダイアログが表示され、同意が拒否される。 | IDFA は利用できない |
ユーザが同意ダイアログを表示し、アクションを起こさずにアプリを終了し、設定時間が経過した後にアプリを開いて同意を与えた。 | アプリが再び開かれると、キューに入れられたイベントがSingularサーバーに送信されます。IDFAはこれらのイベントでは使用できません。同意が付与された後に追跡されるイベントには、IDFAが関連付けられます。 |
ユーザーは同意ダイアログを表示され、アクションを起こさずにアプリを終了し、後でアプリを開いて同意を拒否します。 | キューに入れられたイベントは、アプリが再び開かれたときにSingularサーバーに送信されます。IDFAは、これらのイベントやその後に追跡されるイベントでは使用できません。 |
ベストプラクティス
- プロンプトタイミング:アプリの起動時にATT同意を要求してIDFAの利用可能性を最大化するか、オンボーディングの後まで遅らせてユーザーのコンテキストを改善します。同意率とUXのバランスをとるために両方をテストしてください。
- タイムアウト:waitForTrackingAuthorizationWithTimeoutInterval を30~300秒に設定します。タイムアウト後、SingularはSKAN 4.0のアトリビューションで処理を進めます(IDFAは使用しません)。
- SKAN 4.0の統合:SKANのポストバックを最適化するために、コンバージョン値の更新がATTの同意と一致するようにします(例えば、イベントを値0~63にマッピングするためにSingularのダッシュボードを使用します)。
- エラー処理:restricted (ペアレンタルコントロールなど) またはnotDetermined の状態についてATTrackingManager.trackingAuthorizationStatus をチェックし、分析のためにログを記録する。
手動変換値の処理
マネージドモード
デフォルトでは、SKAdNetworkの実装はSingularサーバーサイドから直接変換値を管理します。
これにより、クライアントサイドのコードを変更することなく、Singularプラットフォームを通してコンバージョン値を設定・変更することができ、最大限の柔軟性が得られます。
このサーバー側の管理モードは、SKAdNetworkのタイマーの処理にも役立ちます。SKAdNetworkでは、SKAdNetworkへの登録から24時間以内にコンバージョン値を更新することができます。コンバージョン値の更新を呼び出すと、タイマーはさらに24時間延長されます。そのため、コンバージョンイベントを選択する際は、その更新ウィンドウ内でイベントが発生するようにする必要があります。マネージドモードでは、アプリの新しいバージョンをリリースすることなく、いつでもコンバージョンイベントの設定を変更することができます。
手動モード
自分で変換値を更新したい場合:
- SingularConfigオブジェクトを構築する際に、manualSkanConversionManagement設定メソッドを設定します。
- その後、コンバージョン値を更新するには、アプリのライフサイクルの必要なところで、skanUpdateConversionValueメソッドを使用します。
- または、SKAdNetwork 4.0 の変換値を手動で更新するには、アプリのライフサイクルの必要な場所でskanUpdateConversionValuesメソッドを使用します。
注意: 初期化時にSDKを手動更新に設定していない場合、skanUpdateConversionValueメソッドは機能しません。
変換値の取得
現在の変換値を取得するには、skanGetConversionValueメソッドを使用します。このメソッドは、マネージドモードでもマニュアルモードでも機能します。