ドキュメント

サポート

Analytics

Analytics

バージョン 5.0.0 への移行

Update your code to migrate from Analytics SDK version 4.x to version 5.0.0.
読み終わるまでの所要時間 2 分最終更新 15日前

Analytics SDK の新しい 5.0.0 バージョンには、SDK の初期化と同意フローに対する多数の変更が含まれています。このガイドは、これらの変更のナビゲートに役立ちます。 従来の初期化フローには、プレイヤーの場所を調べて (GeoIP を使用)、データ収集の同意が必要かどうかや、明示的に拒否されるまではデータ収集が許可されるかどうかを判断するなど、いくつかの自動ステップが含まれていました。これは変更されています。 新しい初期化フローでは、SDK はプレイヤーの場所を 調べず、アクティビティを自動的には実行 しません。新しい初期化フローでは、
StartDataCollection()
メソッドを呼び出すことで SDK を明示的にアクティベートする必要があります。このメソッドは、以下のいずれかに当てはまる場合に のみ 呼び出されます。
  • 影響を及ぼす適切なデータプライバシー法の下でデータの収集に対する同意をプレイヤーに求め、同意を得た。
  • プレイヤーは、明示的な同意を必要としないデータプライバシー法の影響を受け、明示的にオプトアウトしていない。
  • プレイヤーは、どのデータプライバシー法の影響も受けない。
UnityServices.InitializeAsync()
を呼び出しても、Analytics SDK が初期化されます。ただし、この初期化は SDK をメモリに取り込むだけなので、
StartDataCollection()
の呼び出しで明示的にアクティベートするまで '休止' のままになります。同様に、
StopDataCollecton()
メソッドで SDK をアクティベート解除した場合、SDK はメモリに残るため、初期化後のある時点でプレイヤーが同意を提供または回復した場合にこれを再アクティベートできます。

初期化フロー

以前は、初期化フローは以下のようなものでした。
await UnityServices.InitializeAsync();List<string> requiredConsents = await AnalyticsService.Instance.CheckForRequiredConsents();if (consents.Count > 0){ // Show UI element asking the user for their consent // bool userGaveConsent = ... foreach (string legislationIdentifier in requiredConsents) { AnalyticsService.Instance.ProvideOptInConsent(identifier, userGaveConsent); }}
バージョン 5.0.0 より前のバージョンの SDK では、サービスの初期化により、プレイヤーの場所を調べる (また、プレイヤーが特定のプライバシー法の対象となる地域にいるかどうかを判断する) ウェブリクエストが行われます。このリクエストに失敗した場合は、
CheckForRequiredConsents()
呼び出しの内部で再試行されました。この 2 回めの試行に失敗した場合、SDK はデータを収集できませんでした。これは事実上、以前に同意があったかどうか、また接続が復元されたときにアップロードできるようにイベントをバッチ化して格納できるかどうかに関係なく、データを収集するためにアプリケーションがインターネット接続で初期化されることを必要としました。
新しい初期化フローは、ウェブリクエストを行いません。代わりに、プレイヤーが、特定のデータプライバシー法で要求されているため個人データの収集に同意が必要な地域にいるかどうかを判断する独自のロジックをビルドする必要があります。プレイヤーの同意があることを確認したら、
StartDataCollection()
メソッドを呼び出して SDK を有効にし、個人データの収集を開始します。プレイヤーが同意しない場合、SDK は
StartDataCollection()
信号が明示的に与えられるまで休止したままになるため、アクションは必要ありません。
初期化フローは以下のようになります。
await UnityServices.InitializeAsync();// Show UI element asking the user for their consent OR retrieve prior consent from storage //bool userGaveConsent = ...if (userGaveConsent){ AnalyticsService.Instance.StartDataCollection();}
サービスの初期化後、いつでも
StartDataCollection()
メソッドを呼び出して、データ収集を開始できます。アプリケーションの起動直後に呼び出す必要はありません。

オプトアウト

以前は、
OptOut()
メソッドは SDK を無効にしてメモリから削除し、プレイヤーのデータ削除のリクエストをトリガーしました。これにより、プレイヤーが後で考えを変えてデータ収集を再びオプトインすることが難しくなりました。SDK は '同意拒否' ステータスの知識を維持し、さらなる初期化を阻止するためです。個人データの収集をオプトアウトしているプレイヤーが必ずしも以前に収集したデータのパージも望んでいるとは限らないため、この時点でのデータ削除のリクエストも不要でした。
新しい
StopDataCollection()
メソッドを呼び出すと、これは SDK を無効にするだけで、必要に応じて後で再アクティベートできるようにメモリに残しておきます。SDK は、その時点までに記録されたイベントの最終アップロードを試行してから、それ以降のイベントを破棄します。
プレイヤーがバックエンドからのデータのパージもリクエストしたい場合は、
RequestDataDeletion()
メソッドを別途呼び出す必要があります。
プレイヤーがデータ削除をリクエストせずにオプトアウトした場合でも、後で
RequestDataDeletion()
メソッドを使用してデータのパージをリクエストできます。SDK がアクティブか休止中かにかかわらず、これはいつでも呼び出すことができます。