児童オンラインプライバシー保護法 (COPPA) コンプライアンス
Unity Analytics DataPrivacy API

Unity Analytics と EU の一般データ保護規則 (GDPR)

一般データ保護規則 (GDPR) は、EU 市民のデータプライバシーを規制する欧州連合 (EU) の規則です。 (https://www.eugdpr.org)

Unity と GDPR の一般的な情報については、 https://unity3d.com/legal/gdpr を参照してください。

Unity 独自のプライバシーポリシーについては、https://unity3d.com/legal/privacy-policy を参照してください。

Maintaining compliance with GDPR when you use Unity Analytics is a shared responsibility. Unity collects data to help you improve the player experience with ads and game play. Some of that data includes personally identifiable information (PII) regulated under GDPR. Unity provides tools a player can use to opt-out of the PII collection and to manage the personal data collected by Unity as required by the GDPR. Your responsibilities include showing an opt-out button and providing a link to Unity’s privacy policy from your own privacy policy.

Unity Ads を使用する場合、Unity は、最初に携帯電話に広告を表示するときにプレイヤーに通知を表示し、個人が特定できる情報収集のオプトインまたはオプトアウトの選択を可能にします。後続の広告には、プレイヤーがデータプライバシーオプションを管理するために使用するボタンも表示されます。 GDPR と Unity Ads SDK の詳細については、 GDPRコンプライアンス を参照してください。

Unity Ads と Unity Analytics の両方を使用する場合、Unity Ads によって提供されるオプトアウトの機能が両サービスに適用されます。

Unity Ads を使用せず、Unity Analytics、IAP、Multiplayer、Performance Reporting などの他の Unity Services を使用する場合は、Unity Data Privacy Plug-in を使用してプレイヤーにオプトアウトの選択肢を提供する必要があります。プラグインには、ゲームに加えることができるボタンが含まれています。これは、プレイヤーが自身のプライバシー設定を管理できる Unity のウェブページを開くためのものです。プレイヤーはゲームごと、デバイスごとに自身の選択に合わせて設定を管理します。Unity Analytics は、同じプレイヤーが Unity で作成された複数のゲームをプレイするのか、複数のデバイスで同じゲームをプレイするのかを追跡しません。

上記のオプションは、Unity が広告とプレイヤー向けサービスをカスタマイズするために収集したすべてのデータに及びます。ただし、ユーザーが個人を特定できる情報データを独自に収集する場合は、ユーザーにそのデータを保護し管理する責任があります。

推奨する実践方法

Unity Data Privacy Plug-in の使用

Unity Data Privacy Plug-in は、Unity Asset Store で入手できます。プラグインは以下のバージョンの Unity で使用可能です。

  • 4.7
  • 5.1 以降
  • 2017.1 以降
  • 2018.1 以降

このプラグインは、Linux、Windows Phone、Unity 5.5 より前のユニバーサル Windows プラットフォーム (UWP) 、Tizen、Apple TV、Blackberry のプラットフォームをサポートしていません。Unity Analytics は、これらのプラットフォーム上で実行するゲームから送信される個人を特定できる情報を自動的に削除します。 質問がある場合は、 DPO@unity3d.com までお問い合わせください。

注意: ゲームに Unity Ads ネットワークの広告を表示する場合は、Unity Ads SDK がデータ収集オプトアウトの選択肢をプレイヤーに表示する処理を既に行い、プレイヤーのデータプライバシーの選択に基づいて Unity Analytics を設定します。Unity Ads サービスを使用しない場合にのみ、Unity Data Privacy Plug-in を使用し必要な処理を行う必要があります。

Unity での Analytics Data Privacy の設定

Unity Ads を使用しない場合、Unity Data Privacy Plug-in を統合します。これにより、プレイヤーは Unity Analytics のデータ収集を制御できます。

プラグインを統合するには、以下の手順を行います。

  1. Unity Analytics Data Privacy アセットパッケージをプロジェクトにインポートします。

  2. ボタンやその他の UI 制御を使用して、プレイヤーにオプトアウトの選択肢を提供します。

Unity Analytics Data Privacy プラグイン には、現在のプレイヤーのオプトアウト状態を判断するために Unity Analytics に自動的にクエリするコードが含まれています。さらに、このプラグインは、プレイヤーの選択に基づいて Unity Analytics を設定します。このプラグインには、Unity UI ボタンプレハブも含まれます。このボタンはプレイヤー個人のデータプライバシーページを開き、プレイヤーはここで、Unity のデータ収集をオプトアウトし、Unity が過去に収集したデータを見ることができます。

重要: プレイヤーでブラウザーのポップアップブロックが有効になっている場合、ブラウザーのデータプライバシーページが開けない場合があります。一部のブラウザーでは、ページがブロックされていることを知らせますが、ブラウザーの中にはまったく通知しないものもあります。ポップアップブロックによってページが開けなくなる可能性をプレイヤーに知らせるために、メッセージをユーザーインターフェースに加えることを検討してください。

プロジェクトに Unity Data Privacy Plug-in をインポートする

プラグインをプロジェクトにインポートするには以下の手順を行います。

  1. Unity Asset Store の Unity Analytics Data Privacy Plug-in ページに移動します。

  2. ページの Add to My Assets ボタンをクリックします。

  3. In your Unity project, open the Asset Store window (menu: Window > General > Asset Store).

  4. ウィンドウの上部にある Downloads アイコンをクリックします。

  5. My Purchased を選択します。

  6. Unity Analytics Data Opt-Out Plugin の Download ボタンをクリックします。

  7. Import Unity Package ウィンドウで、 Import をクリックします。

プレイヤーにオプトアウトの選択肢を提供する

このプラグインには Unity UI ボタンプレハブも含まれます。プレイヤーがこのボタンをクリックすると、ウェブブラウザーで Player Data Privacy ページが開きます。また、独自のユーザーインターフェースを作成し、Data Privacy を手動で開くようにすることもできます。

Method 1: Using Unity UI

  1. プロジェクトにアセットパッケージをインポートします。

  2. Unity 5.1 以前のバージョンでプロジェクトをビルドする場合は、DataPrivacy.Initialize() を呼び出す必要があります。(Unity のそれより新しいバージョンでは、Initialize() は自動的に呼び出されます。)

  3. If you do not already have a Canvas object in the scene, add one. (An EventSystem is also required and should be added automatically when you add the Canvas.)

  4. Drag the DataPrivacyButton prefab to the Canvas object in the scene. Find the prefab in the Project window, in the DataPrivacy/Runtime folder.

  5. ボタンの位置、グラフィックス、テキストを調整します。

  6. ボタンは既に Data Privacy API に接続されているため、クリックするとプレイヤーの個人データ管理ページが開きます。このページはウェブブラウザーで開きます。

Method 2: Using you own UI

  1. ボタンに独自のユーザーインターフェースを使用するには、プレイヤーのデータオプトアウトページの URL をリクエストし、その URL をブラウザーまたは WebView で開くことができます。

  2. プロジェクトにアセットパッケージをインポートします。

  3. 独自の UI 制御を作成し、プレイヤーにデータ収集のオプトアウトが可能であることを知らせます。

    ノート: Data Privacy プラグインには DataPrivacy/Runtime フォルダーのアイコンが含まれています。Unity は、プレイヤーが Unity ゲームで Data Privacy の制御に遭遇した時に見た目ですぐわかるよう、このアイコンを Data Privacy ボタン (または、類似のボタン) に使用することを推奨します。

  4. Unity 5.1 以前のバージョンでプロジェクトをビルドする場合は、DataPrivacy.Initialize() を呼び出す必要があります。(Unity のそれより新しいバージョンでは、Initialize() は自動的に呼び出されます。)

  5. プレイヤーのクリックまたはこの制御とのインタラクションに応じて、DataPrivacy.FetchPrivacyUrl() 関数を呼び出します。この関数は、ネットワークリクエストが完了したときに呼び出される Action<string> オブジェクトを取ります。(オプションで、2番目の Action<string> 関数を渡して、失敗した場合を処理することもできます。)

  6. FetchPrivacyUrl() リクエストのハンドラーで、ブラウザーで受け取った URL を開きます。これは Application.OpenURL() で行うことができます。

例えば、次のスクリプトは任意のゲームオブジェクトのクリックに応答してプレイヤーの個人データ管理ページを開きます。

using System;
using UnityEngine;
using UnityEngine.Analytics;

public class OptOutHandler : MonoBehaviour {

    static void OnFailure(string reason)
    {
        Debug.LogWarning(String.Format("Failed to get data privacy page URL: {0}", reason));
    }

    void OnURLReceived(string url)
    {
        Application.OpenURL(url);
    }

    public void OpenDataURL()
    {
        DataPrivacy.FetchPrivacyUrl(OnURLReceived, OnFailure);
    }

    void OnMouseOver(){
        if(Input.GetMouseButtonDown(0)){
            OpenDataURL();
        }
    }
}

古いバージョンの Unity と Unity Analytics に Data Privacy プラグインを使用する

Unity 5.2 以前では、Unity は Unity Assets Store アセットパッケージを通して Unity Analytics のサポートを提供していました。 これらの古いバージョンの Unity Analytics でも Data Privacy プラグインを使用できます。ただし、他の関数を呼び出す前に (そしてプレイヤーがデータプライバシーボタンをクリックする前に) Data Privacy プラグインを初期化する必要があります。 プラグインを初期化する最も良いタイミングは、UnityAnalytics.StartSDK() を呼び出して Unity Analytics プラグインを初期化した直後です。

    using UnityEngine;
        using UnityEngine.Cloud.Analytics;
        using UnityEngine.Analytics;

        public class UnityAnalyticsIntegration : MonoBehaviour {

            void Start () {
                const string projectId = "SAMPLE-UNITY-PROJECT-ID";
                UnityAnalytics.StartSDK (projectId);
                DataPrivacy.Initialize ();
            }
        }

注意: DataPrivacy.Initialize() は Unity 5.2 以降では自動的に呼び出されます。Unity Analytics をサポートするために Asset Store パッケージを使用する場合を除き、自分で関数を呼び出す必要はありません。

Unity Analytics Data Privacy API

CLASS DataPrivacy

DataPrivacy クラスは、プレイヤーのデータプライバシー管理の選択に基づいて Unity Analytics を設定します。

名前空間: UnityEngine.Analytics

    public class DataPrivacy

DataPrivacy クラスは自動的にプレイヤーのデータプライバシー状況を取得し、それに応じて Unity Analytics を設定します。

FetchPrivacyUrl() 関数を使用して、プレイヤーの個人データ管理ページの URL を取得します。URL を開いて、プレイヤーにデータのプライバシー設定を管理するオプションを提供します。


Initialize()

Data Privacy API を使用するための準備をします。

宣言

    public static void Initialize()

備考

この関数は、非表示のゲームオブジェクトを作成し、DataPrivacy クラスのインスタンスをコンポーネントとして加えます。

Unity 5.1 以前では、アプリケーション起動の早い段階で、理想的には UnityAnalytics.StartSDK (projectId) を呼び出した直後に Initialize() を呼び出します。それより新しいバージョンの Unity では、Initialize() の呼び出しは自動的に行われます。


FetchOptOutStatus(Action<bool>)

プレイヤーの現在のオプトアウト状況を取得し、Unity Analytics を設定します。

宣言

    public static void FetchOptOutStatus(Action<bool> optOutAction = null)

パラメーター

  • [オプション] Action<bool> optOutAction — Unity がプレイヤーのオプトアウト状態を取得したときに呼び出す Action オブジェクト。プレイヤーが既に個人データ収集をオプトアウトしている場合、Action に渡される boolean パラメーターは true で、それ以外の場合は false です。

備考

この関数は、Unity Analytics をプレイヤーのデータ収集の選択に応じて適切に設定します。 その状況は、プレイヤーのコンピューターやデバイスがオフラインのときにも使用できるよう、キャッシュされます。

FetchOptOutStatus() は、ゲームの起動時に自動的に呼び出されます。また、データプライバシー管理の URL を開いた後に、プレイヤーがゲームに戻るときにもこの関数を呼び出す必要があります。そのページを開いている間にプレイヤーが行った変更をすぐに適用する必要があるからです。

また、FetchOptOutStatus() を使用して Action<bool> 関数パラメーターを渡すことで、プレイヤーのオプトアウト選択を取得することもできます。プラグインは、ネットワーク取得リクエストが完了したときに、指定した optOutAction 関数を呼び出します。 Action に渡される boolean 引数は、プレイヤーがオプトアウトしている場合は true、そうでなければ false です。プレーヤの状況を取得するネットワークリクエストが失敗した場合、キャッシュされた値で optOutAction 関数が呼び出されます (ステータスが設定されていない場合は false になります)。

    void OnOptOutStatus(bool optOut)
        {
            if(optOut)
            {
                Debug.Log("Player has opted-out of personal data collection.");
            }
        }

        // ...
        DataPrivacy.FetchOptOutStatus(OnOptOutStatus);

FetchPrivacyUrl(Action<String>, Action<String>)

プレイヤーの個人データ管理ページの URL を取得します。

宣言

    public static void FetchPrivacyUrl(Action<string> success, Action<string> failure = null)

パラメーター

  • Action<String> success — URL が正常に取得されたときに呼び出される Action オブジェクト。 Action に渡される文字列に URL を含みます。

  • [オプション ] Action<String> failure — URL を取得できない時に呼び出される Action オブジェクト。Action に渡される文字列に失敗した理由を含みます。

備考

成功した関数に渡された URL をブラウザーまたは WebView で開き、プレイヤーにデータ保護オプションを管理する機会を提供します。Application.OpenURL() を使用してページを開くことができます。

URL は短期間有効であるため、常に、開く直前に取得するようにしてください。

プレイヤーがゲームに戻ったら、FetchOptOutStatus() を呼び出して、すぐに変更を適用します。それ以外は、次回にプレイヤーがゲームを開始したときにデータ収集の変更が適用されます。


  • 2018–05–18 限られた 編集レビュー でパブリッシュされたページ
  • Data Privacy ボタンを加えるエディターメニューを削除。Data Privacy Button プレハブを追加
  • Unity 2018.1 の新機能
児童オンラインプライバシー保護法 (COPPA) コンプライアンス
Unity Analytics DataPrivacy API