UnityパッケージマネージャSDK統合ガイド

 

始める前にSDKの前提条件

1.SDKのインストール

警告: ".unitypackage"から"UPM"SDKバージョンにアップグレードしますか?以下に示すように、特定のアップグレード手順を実行する必要があります!
重要: UPM SDK のインストールを進める前に、以下のアップグレード手順を実行してください。

アップグレードを行うには、.unitypackageから非推奨の統合プロセスを使用してインポートされた既存のSingular SDKファイルを手動で削除する必要があります。
これは Unity Package Manager (UPM)でSDKをインポートする前に完了しておく必要があります!

Unity Package Manager(UPM)を使用してSDKを統合する前に、以下のファイルのリストを削除してください。特に注意して、ここに記載されているSingularファイルのみを削除してください:

  1. プロジェクトの/Codeフォルダから:
    unity_upgrade_code_folder_file_removal.png

  2. プロジェクトの/Codeフォルダから:プロジェクトの/Plugins/Androidフォルダから、AARとJARを削除します:
    unity_upgrade_plugin_android_folder_file_removal.png

  3. プロジェクトの/Plugins/iOSフォルダから、iOSの.hファイルと.mファイル、および.xcframeworkを削除します:
    unity_upgrade_plugin_ios_folder_file_removal.png

1.1.SDKパッケージのダウンロードとインポート

Unity Package Manager(UPM)を使用してSingular Unity SDKをインストールします
  1. Package Managerウィンドウで

重要:GoogleのEDM4Uを使用していない場合は、以下の手順に従ってください。
  1. SingularのS3バケットから必要な依存関係をダウンロードします。SDKバージョン5.2.1の場合、Plugins.zipは https://s3.us-west-2.amazonaws.com/maven.singular.net/unity/UPM-non-EDM4U/5.2.1/Plugins.zip。
  2. 解凍したファイルをProjectPluginsフォルダに移動する。

1.2.Android用の設定

ヒント: Unityを使用する場合、AndroidManifestをどのように更新しますか?
  1. Unity v2018.3以降では、PlayerウィンドウのCustom Main Manifestプロパティを有効にするだけで、独自のAndroidManifestファイルを追加できます(File > Build Settings > Player Settings > Publishing settingsでアクセスできます)。これにより、デフォルトのAndroidManifest.xmlファイルが生成され、編集することができます。

    このファイルはAssets/Plugins/Android/AndroidManifest.xmlの場所にあります。

    ソース:https://docs.unity3d.com/2023.2/Documentation/Manual/android-manifest.html

  2. UnityのカスタムMain Manifestファイルを使用する代わりに、Unityからアプリをエクスポートした後、Android StudioからAndroidManifest.xmlにアクセスすることもできます。

ヒント: Unity使用時にGradleの設定を更新する方法。
  1. Unity v2018.3以降では、PlayerウィンドウのCustom Gradle Templateプロパティを有効にするだけで、独自のGradleビルドファイルを追加できます(File > Build Settings > Player Settings > Publishing settingsでアクセスできます)。これは、あなたが編集するためのデフォルトのmainTemplate.gradleファイルを生成します。

    ファイルはAssets/Plugins/Android/mainTemplate.gradleになります。

    ソース: https://docs.unity3d.com/2023.2/Documentation/Manual/android-gradle-overview.html

  2. UnityのカスタムGradleビルドファイルを使用する代わりに、Unityからアプリをエクスポートした後、Android Studioからアプリのbuild.gradleにアクセスすることができます。

Proguard を使用していますか?

Proguard を使用している場合は、 proguard-unity.txt ファイルに以下のコードを追加します:

-keep class com.singular.sdk.** { *; }
-keep public class com.android.installreferrer.** { *; }
-keep public class com.singular.unitybridge.** { *; }

1.3.iOS 用のヒント

ヒント:Unityでビルドした後、Xcodeでビルドする前にCocoa Podsをアップデートしてください。

Podsがあるフォルダから以下のコマンドを実行することをお勧めします。

pod repo update
pod update
ヒント: applicationDidBecomeActive()からIDFV識別子をログに記録する。

iOSでテストする場合は、以下のコードを:Classes > UnityAppController > applicationDidBecomeActivefunction.

// Singular SDK コンソールで使用するための Xcode コンソールへのベンダ用識別子(IDFV)の印刷
NSLog(@"Singular === IDFV: %@", [[[UIDevice currentDevice] identifierForVendor] UUIDString]);

idfv.png

これにより、Xcode Logs の App Open でIDFV 識別子を取得できるようになります。Singular SDK コンソールでこの識別子を使用して、テストデバイスを追加します。

idfv3.png

ヒント: Deeplink サポートの注意事項
  1. Signing & Capabilities で Associated Domain を追加します。関連ドメインが正しく設定されていないと、Singularトラッキングリンクをクリックしてもアプリは開きません。

  2. チームIDがSingularプラットフォームのアプリのページにも追加されていることを確認してください。これにより、Singularはユニバーサルリンク機能を有効にするために必要なApple App Site Association Fileを作成し、ホストすることができます。

重要:上記の指示に従って、unitypackageからUPM SDKにアップグレードすることをお勧めします。このドロップダウンの内容は参考用です。

非推奨のSingular unitypackage SDKおよびKids SDK

レガシーSingular SDK ".unitypackage" のダウンロードとインポート

バージョン4.3.2以前からのアップグレードの場合

Assets > Plugins > iOS に移動し、新しい unitypackage をインポートする前に以下のファイルを削除してください!

  • Attributes.h
  • Events.h
  • libSingular.a
  • Singular.h
  • SingularAdData.h
  • SingularConfig.h
  • SingularLinkParams.h
  1. 最新のSingular UnityパッケージSDK unitypackage v4.4.2ファイルをダウンロードしてください。
    またはSingular UnityKids SDK Version 4.2.0ファイルをダウンロードしてください。
  2. Unityメニューからに移動します:

    • Assets > Import Package > Custom package
    • ダウンロードしたunitypackageを選択します。
    • インポートを選択します。
  3. Kids SDKを使用しない場合: Android 12デバイスをサポートする予定ですか?

    ファイルを play-services-ads-identifier-18.0.1.aarファイルをAssets/Plugins/Android/ フォルダに追加し、Unity が Google Advertising Identifier をキャプチャするために必要な依存関係を含めるようにします。すでにこの依存関係がある場合は、この手順をスキップできます。

  4. AndroidManifest パーミッションの更新

    AndroidManifest.xml ファイルに、以下のパーミッションを追加します:

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="BIND_GET_INSTALL_REFERRER_SERVICE" />
    <uses-permission android:name="com.android.vending.CHECK_LICENSE" />
  5. Singular SDKのtransitive dependenciesを無効にしている場合は、アプリのbuild.gradleに以下を追加してください。

    implementation 'com.android.installreferrer:installreferrer:2.2'
    implementation 'com.google.android.gms:play-services-appset:16.0.0'
  6. Singular SDKにはGoogle Play Services APIs 17.0.0+の一部であるGoogle Mobile Ads APIが必要です。すでにGoogle Play Servicesをアプリに統合している場合は、要件を満たしています。そうでない場合は、アプリのbuild.gradleファイルに以下の依存関係を含めることで、Google Mobile Adsを個別に統合できます。

    implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1+'

    詳細については、 Google Play Servicesの設定に関するGoogleのガイドを参照してください。

  7. iOS用の追加設定

    Unityからビルドした後、以下のライブラリ/フレームワークをUnity XCodeプロジェクトにリンクします。UnityFrameworkTargetに移動し、Build Phases > Link Binary with Librariesを選択します。以下を追加します:

    • WebKit.framework
    • libsqlite3.0.tbd
    • libz.tbd
    • AdServices.framework (必ず追加する必要が ありますが、iOS 14.3以上のデバイスでのみ利用可能なため、Optionalとして マークしてください)。また、Apple Search Adsで実行する場合は必須です!

    重要: Apple Search Ad Campaignsを利用する予定で、アトリビューションをトラッキングしたい場合は、App BuildでAdServices.framework

  8. 次のセクションで、Non-Prefabの手順を使用してSingularSDKObjectを作成します。
  9. iOSの場合、Inspection Paneで 「Add to Embedded Bin 」オプションを有効にする必要があります。Assets > Plugins > iOSに移動し、Singular.xcframeworkファイルを選択し、Inspection Paneで 「Add to Embedded Bin 」オプションをチェックします。

    unity.png

2.SDKの統合

2.1.SingularSDKObjectの作成

階層へのSingularSDKObjectの追加

Singularプレハブオブジェクトを使ってSingularSDKObjectを追加します。

Singular プレハブオブジェクトを階層ペインに移動します。

  • プロジェクトペインから次の場所に移動します:Packages > Singular > SingularSDK > Prefabs.
  • SingularSDKObject を階層ペインに移動します。
    unity_prefab.png
プレハブのGameObject を使用しない場合は、以下の手順で "SingularSDKObject" GameObject を手動で追加してください。

階層ペインに

  1. メインシーンに空のGameObjectを作成します。
  2. GameObjectに名前を付ける:SingularSDKObjectと名付ける
    重要: SingularのSDKを機能させるには、GameObjectの名前を "SingularSDKObject "にする必要があります。
  3. SingularSDKObjectをクリックします。
  4. Inspection Paneに移動します。
  5. Inspectionペインから、Add Componentをクリックします。
  6. 検索フィールドに「Singular」と入力し、「Singular SDK」スクリプトを選択します。
    unity_add_script.png

SingularSDKObject の設定を構成します。

  1. SingularSDKObjectのInspectionペインで、Singular SDK KeyとSDK Secretをそれぞれのフィールドに貼り付けます。SDKキーとシークレットを取得するには、Singularアカウントにログインし、"Developer Tools > SDK Integration > SDK Keys"に進みます)。

    sdk_keys.png
    重要: Singular Reporting API Keyを使用しないでください。上記の手順に従って、適切なキーとシークレットを取得してください。
    unity_singularsdkobject_settings.png

    Singular SDKキーとシークレットが正しく適用されていない場合、データはSingularに送信されません。
    Singular SDKコンソールを使用して実装をテストし、正しい動作を確認してください。

注: SingularSDKObjectのデフォルトの検査ペイン設定

以下のオプションが検査ペインで有効になっています:

  • Initialize On Awake(チェック済み)

    この設定により、UnityはアプリのAwakeステータスに基づいてSingular SDKの初期化を制御できます。

    アプリ要件のプライバシーコンプライアンスに従い、必要に応じてこのオプションを更新してください。このオプションのチェックを外すと、Singular SDKのAwake状態での初期化が無効になり、手動での初期化が必要になります。

  • SKAN有効(チェック済み)

    Unity SDKバージョン4.0.17から、 SKAdNetworkはデフォルトで有効になっています。 マネージドモード(Singularダッシュボードで選択したコンバージョンモデルを使用してSKANコンバージョン値をSingularが更新する)では有効です。

  • トラッキング認証を待つWait For Tracking Authorization)、0に設定(オフ

    アプリがApp Tracking Transparency(ATT)プロンプトを表示している場合、このタイムアウトを300秒に設定することを推奨します。このタイムアウトを追加すると、Singular SDKのセッションが遅延し、ユーザーがSingularのサーバーにイベントをログする前にAppTrackingTransparency Consentを承認/拒否できるようになります。ユーザーがATTプロンプトに応答すると、Singular SDKは遅延なく続行します。これにより、同意が提供されたときに、インストール帰属のためのIDFA識別子をキャプチャすることができます。ATTを表示しない場合、このオプションのデフォルト値は0(待機なし)のままにしてください。

  • ログを有効にする(チェック)

    Singular SDKからのログを有効にします。Log Level"オプションと一緒に使用する必要があります。
    "Log Level "は以下のenumマッピングで指定された "int "数値で指定する必要があります。この範囲の数字が小さいほど、ログはより詳細になります。

    //Android Logger.javaのログレベル列挙型に基づく:android.util.Log
    public enum LogLevel {
       Verbose = 2,
       Debug   = 3,
       Info    = 4,
       Warn    = 5,
       Error   = 6,
       Assert  = 7
       }

    注: 現在、ほとんどのログはAndroidでのみ利用可能です。

  • Ddlタイムアウト秒数を0に設定

    デフォルトでは、"0 "の設定は60秒のタイムアウトを使用します。これは、Singular サーバーに、最後のタッチアトリビューションに関連付けられたディープリンクの値を検索する時間を指定します。遅延ディープリンクが見つかった場合、SDKセッションリクエストのレスポンスでアプリに返され、SingularLinkHandlerで処理されます。60秒以内に遅延ディープリンクが見つからない場合、サーバーは検索を停止します。

  • セッションタイムアウト秒数を0に設定

    これは、アプリがバックグラウンドになり、フォアグラウンドに戻ったときにSingular SDKが新しいセッションを登録するまでのタイムアウト(秒)です。デフォルトでは、"0 "の設定は60秒のタイムアウトを使用します。必要に応じて、この設定を調整してより大きなウィンドウを使用することもできます。

  • ショートリンク・リゾルブのタイムアウトを0に設定

    デフォルトでは、"0 "の設定は10秒間のタイムアウトを使用します。このタイムアウトはユーザーエクスペリエンスを保護します。指定されたショートリンクが指定された時間内に解決されない場合、Singular SDKはディープリンクハンドラーをトリガーしません。

その他の検査ペインオプション

Facebookを有効にする(META Install Referrer)

META Install Referrer Attributionメソッドをサポートするには、SingularSDKObjectのInspection PaneにFacebook App IDを追加します。

  1. メインシーンで SingularSDKObject をクリックします。
  2. Inspection Paneを開き、"Facebook App ID "フィールドを見つけます。
  3. Facebook App IDを追加します。

2.2.SKAdNetworkの使用

Unity SDKバージョン4.0.17から、 SKAdNetworkはデフォルトで有効になっています。 マネージドモード(Singularダッシュボードで選択したコンバージョンモデルを使用して、SKANコンバージョン値をSingularが更新するモード)で有効になります。

SKAdNetworkを使用するには、最新のSDKを使用している限り、他に何かを設定したり、コードを追加したりする必要はありません。

追加情報

古いバージョンのSDKでSKAdNetworkを有効にする

古いバージョンのSDKを使用している場合、以下のいずれかの方法でSKAdNetworkを有効にする必要があります:

  • SingularSDKObjectに移動し、SKANEnabledを Trueに設定します。
  • アプリのコードでSingularSDK.SkanRegisterAppForAdNetworkAttribution() を呼び出します。
手動モードでSKAdNetworkを使用する(上級者向け)

ロジックを使用してSKAN変換値を手動で管理する場合は、以下を実行する必要があります:

  • SingularSDKObjectに移動し、manualSKANConversionManagementを Trueに設定します。
  • コード内で以下のメソッドを使用して、変換値を設定および取得します。
SingularSDK.SkanUpdateConversionValue メソッド
説明

SKAdNetworkの変換値を更新します。

注意: このメソッドは、SKAdNetwork 変換値を手動で更新することを選択した場合に使用します。このメソッドは、manualSKANConversionManagementTrue に設定されている場合にのみ動作します。

シグネチャ public void SkanUpdateConversionValue(int value)
使用例
// サイン会開催
Singular.Event("SignUp");

// 変換値を7に更新
SingularSDK.SkanUpdateConversionValue(7);
SingularSDK.SkanGetConversionValueメソッド
説明 Singular SDKによって追跡されている現在の変換値を取得します。
シグネチャ public int?SkanGetConversionValue()
使用例
int? value = SingularSDK.SkanGetConversionValue();
SingularSDK.SetConversionValueUpdatedHandlerメソッド
説明 変換値が更新されたときに通知を受け取るハンドラを設定します。
シグネチャ public void SetConversionValueUpdatedHandler(SingularConversionValueUpdatedHandler)
使用例
public class Main : MonoBehaviour, SingularConversionValueUpdatedHandler {
  void Awake() {
    SingularSDK.SetConversionValueUpdatedHandler(this);
  }

  void OnConversionValueUpdated(int value) {
    // 変換値を使用する
  }
}

2.3.iOSのApp Tracking Transparency(ATT)同意の処理

App Tracking Transparency(ATT)プロンプトを表示していますか?

iOS 14.5から、アプリはトラッキング目的に役立つデバイスのIDFAを含むいくつかのユーザーデータにアクセスして共有する前に、(App Tracking Transparencyフレームワークを使用して)ユーザーの同意を求める必要があります。

Singularとアドネットワークは、デバイスを識別し、インストールアトリビューションを実行するためにIDFAを持つことで大きな利益を得ます(IDFAなしでこれを行う方法もありますが)。 IDFAの取得にはユーザーの同意を得ることを強くお勧めします

ユーザーがATTプロンプトに応答するまで、Singular SDKの初期化を遅らせることをお勧めします。

デフォルトでは、Singular SDKは初期化時にユーザーセッションを送信します。新しいデバイスからセッションが送信されると、Singularのアトリビューションプロセスが直ちにトリガーされます。そのため、Singular SDKが最初のセッションを送信する前に同意を求め、IDFAを取得することが重要です。

ヒント: アプリがApp Tracking Transparency(ATT)プロンプトを表示している場合は、タイムアウトを300秒に設定することを推奨します。ATTを表示していない場合、このオプションのデフォルト値は0(待機なし)のままにしてください。

waitForTrackingAuthorizationWithTimeoutIntervalを設定するには、SingularSDKObject Inspection ペインの設定オプションを調整します。これは、Singularのサーバーにイベントを記録する前に、ユーザーがAppTrackingTransparency Consentを承認/拒否するのをSingular SDKが待つ最大時間(秒)を設定します。

2.4.ディープリンクの処理

ディープリンクは、ユーザーをアプリ内の特定のコンテンツに誘導するURLです。アプリがインストールされているデバイスでユーザーがディープリンクをクリックすると、アプリが開き、特定の製品や体験が表示されます。

シングルトラッキングリンクは、ディープリンクと ディファードディープリンクの両方を組み込むことができます。詳細については、ディープリンクFAQと シンギュラーリンクFAQを参照してください。

注意事項

プラットフォームのサポートとハンドラコードの詳細については、以下のセクションを参照してください:

Androidでのディープリンクのサポート

Androidでのディープリンクのサポート

  1. Project > Assets > Plugins > Android > AndroidManifest.xmlファイルをエディタで開きます。
  2. アクティビティ名のプロパティをデフォルトから更新します:
    <activity android:name="com.unity3d.player.UnityPlayerActivity"

    から

    <activity android:name="com.singular.unitybridge.SingularUnityActivity"

    または

    重要: カスタムアクティビティを実装している場合:
    1. onNewIntentを実装しているSingularUnityBridgeの インポート文を追加します。

      import com.singular.unitybridge.SingularUnityBridge;
    2. アクティビティのonNewIntentメソッドからSingularUnityBridge.onNewIntent(intent);を呼び出します:

      @Override
      protected void onNewIntent(Intent intent) {
          setIntent(intent);
      
          // カスタム・アクティビティからonNewIntentでこのメソッドを呼び出します。
          SingularUnityBridge.onNewIntent(intent);
      }

    警告:アプリ用にカスタムアクティビティを作成し、それがUnity Playerアクティビティを継承していない場合は、現在のアクティビティオブジェクトがNULLである可能性がある場合に対処するために、onNewIntentメソッドにガードを追加することを検討してください。

  3. 適切なアクティビティにIntent Filterを追加して、選択したスキームでAndroid App Schemeディープリンクをサポートします。
    • Singularは、アプリを開くためのAndroid App Schemeテクノロジーをサポートしています。柔軟性を高めるため、HOST属性を使用しないことをお勧めします。
    • Singularのアプリ設定からアプリを探し、Androidアプリの詳細設定を展開し、Androidアプリスキームフィールドに値を貼り付けます。これにより、ディープリンクが有効になっているSingularトラッキングリンクのリダイレクト中に、Singularがインテントとしてスキームを提供できるようになります。
      SingularプラットフォームのスキームがAndroidManifest.xmlのインテント・フィルター設定と一致しない場合、Singularトラッキングリンクはアプリを開きません。特定のスキームとホストの組み合わせを使用する場合は、同じ組み合わせをSingularプラットフォームで設定する必要があります。
    <!-- 特異なAndroidスキームのディープリンクにインテント・フィルタを追加 -->
    <!-- singular-exampleをあなたの値に置き換える -->
    
    <intent-filter> <data android:scheme="singular-example"/> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> </intent-filter>
iOSでのディープリンクのサポート

iOSでのディープリンクのサポート

SingularはiOSユニバーサルリンクと アプリスキームを使ってiOS上でディープリンクします。以下の手順に従って、Singular LinksでiOSユニバーサルリンクとアプリスキームのディープリンクを使用できるようにしてください。

  1. SingularのAttribution > Manage Linksページで、リンク用に少なくとも1つのサブドメインを設定します。詳細については、Singular Links FAQを参照してください。
  2. ユニバーサルリンク(iOSでのディープリンク)を設定するには:
    • Apple Developer Portalにログインします。
    • Identifiersに移動し、Universal Linksサポートを追加したいアプリを選択します。

      identifiers.png

    • Capabilitiesメニューで、Associated Domainsチェックボックスをチェックし、Saveをクリックします。

      associateddomains.png

  3. Associated Domains "権限をアプリに追加します:
    • XCodeで、Project settings > Capabilities > Associated Domainsに進みます。

    • Singular Linksドメインを追加します。

      associateddomains2.png

  4. Apple Developer Portalから「App Prefix」(別名「Team ID」)をコピーします。
  5. SingularでApps Configurationに行き、アプリを見つけ、iOS App Advanced Settingsを展開し、Team IDフィールドに値を貼り付けます。 これにより、Singularはユニバーサルリンク用の apple-app-site-associationファイルをSingularドメインでホストできるようになります。

    mceclip3.png

  6. 注意:このステップは、Universal Linksがディープリンクできない場合に必要です。
    チームID」の下に、iOSの「アプリスキーム」を入力し、ユニバーサルリンクのディープリンクのフォールバックとして、従来のアプリスキームのディープリンクを有効にします。
    mceclip4.png

    あなたのアプリがディープリンクのためにiOSアプリスキームをサポートするのが初めての場合、アプリスキームがあなたのXcodeプロジェクトで "URLタイプ "として登録されていることを確認してください:
    Screenshot of Xcode showing the URL Types section with a URL that reads "com.example.myphotoapp."

    iOS アプリのアプリスキームのサポートに関する詳細については、このトピックに関する Apple の開発者向けヘルプ記事を参照してください。

2.5.SDKの初期化

注意:Singular SDKを実装する際には、GDPR、CCPA、COPPAなど、ビジネスを行う地域で制定されているさまざまなプライバシー法を遵守することを忘れないでください。詳しくはSDKのオプトインとオプトアウトをご覧ください。

SDK初期化コードは、アプリを開くたびに呼び出される必要があります。これはすべてのSingularアトリビューション機能の前提条件であり、新しいセッションをSingularに送信し、ユーザー保持の計算に使用されます。

デフォルトでは、SingularSDK.csはAwakeメソッドを通してシーンが作成されたときに自動的にSDKを初期化します。

手動での初期化

アプリの実行の後の時点でSDKを手動で初期化したい場合は、次のようにしてください:

  1. SingularSDKオブジェクトの検査ペインのInitialize on Awakeオプションを無効にします。
  2. SingularSDK.InitializeSingularSDK静的メソッドを使用してSDKを初期化します:
SingularSDK.InitializeSingularSDK メソッド
説明 SingularSDKがAwake時に初期化されていない場合、初期化します。
シグネチャ
public void InitializeSingularSDK()
使用例
// SDKキーとSDKシークレットは、SingularSDKに関連付けられたゲームオブジェクトに設定されます。
SingularSDK.InitializeSingularSDK();

スレッドセーフに関する注意: Singular Unity SDKは、他のUnityメソッドを呼び出すのと同様に、常に同じスレッドから呼び出す必要があります。

2.6.セッションタイムアウトの設定(オプション)

デフォルトでは、アプリがバックグラウンドで60秒以上実行されてからフォアグラウンドに戻ると、Singular SDKは新しいセッションを登録します。SingularSDKObjectのSession Timeout Secプロパティを変更することで、デフォルトのタイムアウト値を変更できます。

2.7.ユーザーIDをSingularに送信する(オプション)

Singular SDKのメソッドを使用して、内部ユーザーIDをSingularに送信することができます。

注意: Singularのクロスデバイスソリューションを使用する場合は、すべてのプラットフォームでユーザーIDを収集する必要があります。

  • ユーザーIDはどのような識別子でもかまいませんが、PII(個人を特定できる情報)を公開すべきではありません。例えば、ユーザーのメールアドレス、ユーザー名、電話番号は使用しないでください。Singularは、ファーストパーティデータにのみユニークなハッシュ値を使用することを推奨します。
  • Singularに渡すユーザーIDは、すべてのプラットフォーム(ウェブ/モバイル/PC/コンソール/オフライン)で同じ内部ユーザーIDを使用する必要があります。
  • Singularはユーザーレベルのエクスポート、ETL、内部BIポストバック(設定されている場合)にユーザーIDを含めます。ユーザーIDはファーストパーティデータであり、Singularが他者と共有することはありません。
  • Singular SDKメソッドで設定されたユーザーIDの値はUnsetCustomUserId メソッドで設定が解除されるか、アプリがアンインストールされるまで保持されます。アプリを終了または再起動しても、ユーザーIDはアンセットされません。

ユーザーIDを設定するには、SetCustomUserId メソッドを使用します。設定を解除するには(ユーザがアカウントから「ログアウト」した場合など)、UnsetCustomUserId を呼び出してください。

注:複数のユーザが1つのデバイスを使用する場合、ログインとログアウトのたびにユーザIDを設定および解除するログアウトフローを実装することを推奨します。

アプリを開いたときにすでにユーザーIDがわかっている場合は、Singular SDKを初期化する前にSetCustomUserId 。こうすることで、Singularは最初のセッションからユーザーIDを取得できます。しかし、ユーザーIDは通常、ユーザーが登録するかログインを実行するまで取得できません。その場合は、登録フローが完了した後にSetCustomUserId

SingularSDK.SetCustomUserId メソッド
説明 ユーザーIDをSingularに送信します。
シグネチャ public void SetCustomUserId(string customUserId)
使用例
SingularSDK.SetCustomUserId("custom_user_id");
SingularSDK.UnsetCustomUserId メソッド
説明 Singular に送信されたユーザー ID の設定を解除します。
シグネチャ public void UnsetCustomUserId()
使用例
SingularSDK.UnsetCustomUserId();

オプション:カスタムユーザーID デバイスマッピング

重要:この高度なエンタープライズ機能は、例外的な場合にのみ使用できます。実装する前にSingularのソリューションエンジニアにご相談ください。

Singularはサーバー間の統合により、追加のモバイルイベント追跡データを受け取ることができます。この機能を利用するには、ユーザーIDをSingularのモバイルデバイス追跡識別子にマッピングする必要があります。

注意:Singular SDKを初期化した後、またはユーザーIDを取得した後、できるだけ早くこのメソッドを呼び出してください。

SingularSDK.SetDeviceCustomUserId メソッド
説明 ログインと同じカスタムユーザーIDを設定し、Singularのトラッキング識別子にマッピングします。
シグネチャ public void SetDeviceCustomUserId(string customUserId)
使用例
SingularSDK.SetDeviceCustomUserId('CustomUserId');

3.イベントと収益のトラッキング

3.1.イベントのトラッキング(非収益)

Singularはアプリ内イベントに関するデータを収集し、キャンペーンのパフォーマンス分析やKPIの測定に役立てることができます。例えば、ゲームアプリでユーザーのログイン、登録、チュートリアルの完了、レベルアップなどのデータを収集したい場合があります。

Singularは様々な 標準イベントをサポートしています。広告ネットワークは多くの場合、レポートや最適化のために一般的に使用されるこれらのイベントをサポートしています。もう一つの利点は、標準的なイベント名を使用すると、Singularが自動的に認識し、手動で定義しなくてもイベントリストに追加されることです。可能な限り標準イベントを使用することをお勧めします。

Singularに送信されるイベントのリスト(付随する属性付き)は、組織のマーケティングKPIに基づいてUA/マーケティング/ビジネスチームが作成する必要があります。ビジネスチームはHow to Track In-App Eventsに従うことができます:Guide For Singular Attribution Customers.

追跡するイベントごとに、さまざまな属性を渡すことができます。イベントごとの推奨標準属性を参照してください。

コード内の event または eventWithArgs メソッドを使用して、標準イベントを Singular に送信します。

注:標準イベントの場合は、Unity SDK List of Standard Events and Attributesに表示されているイベントのUnity名を使用します(例:sngLogin)。

SingularSDK.Event(Events.sngLogin);

カスタムイベント(Singularの標準イベントのどれにも一致しない、あなたの組織が測定したいイベント)の場合は、任意のカスタム名(最大32文字)を使用してください。最適化のためにSingularからイベントを受け取る可能性のある広告ネットワークパートナーとの互換性のために、英語の名前を使用することをお勧めします。

SingularSDK.Event メソッド
説明 トラッキングのためにユーザーイベントをSingularに送信します。
シグネチャ
public static void Event(string name)
public static void Event(string name, params object[] args)
public static void Event(Dictionary<string, object> args,
string name)
注意:辞書を渡す場合、辞書の値は以下のいずれかの型でなければなりません: string, int, long, float, double, null, ArrayList, Dictionary<string, object>.

使用例

// 1) 標準イベントを送信 ログイン
SingularSDK.Event(Events.sngLogin);
// 2) 2つのキーと値のペアを渡すカスタム・イベントの例
SingularSDK.Event("myEventName", "Key1", "Value1", "Key2", 1234);
// 3) 辞書を渡すJSONイベントの例
// 属性辞書の作成
Dictionary<string, object> attributes = new Dictionary<string, object>();

// 属性の追加
attributes["key1"] = "value1";
attributes["key2"] = "value2";
attributes["key3"] = "value3";
// 必要に応じて属性を追加する

SingularSDK.Event(attributes, "myEventName");

3.2.収益の追跡

Singularはアプリを通じて得た収益に関するデータを収集し、キャンペーンのパフォーマンスやROIの分析に役立てることができます。Singularはレポート、ログエクスポート、ポストバックでデータを利用できるようにします。

注意事項 異なる通貨で報告された収益は、Singularアカウントで設定された組織の優先通貨に自動変換されます。

UnityのビルトインIAP(アプリ内課金)オブジェクトを使って収益イベントをトラッキングできます。こうすることで、Singularは購入に関するすべての情報を取得し、より豊富なレポートを作成できます。Singularは購入レシートも取得し、これをバックエンドで使用して購入を検証し、アトリビューション詐欺を除外します。

SingularSDK.InAppPurchaseメソッド
説明 購入イベントを追跡するために、Singular に IAP 製品を送信します。
署名
public static void InAppPurchase(Product product,
Dictionary<string, object> attributes, bool isRestored = false)
public static void InAppPurchase(string eventName,
Product product, Dictionary<string, object> attributes,
bool isRestored = false)
public static void InAppPurchase(IEnumerable<Product> products,
Dictionary<string, object> attributes, bool isRestored = false)
public static void InAppPurchase(string eventName,
IEnumerable<Product> products, Dictionary<string, object>
attributes, bool isRestored = false)

注釈

  • productはIAPから受け取ったproductオブジェクトです:UnityEngine.Purchasing.Productです。
  • 属性です: Singularに追加情報を渡すには、このパラメータを使用します。渡す属性がない場合はnull を渡してください。
  • isRestored: トランザクションが復元されるかどうかを示します。デフォルト:false。
使用例
// 単品でIAP、追加属性なし
SingularSDK.InAppPurchase(myProduct, null);
// 単一の製品と属性を持つIAP
var attr = new Dictionary<string, object>() {
["my_first_attribute"] = "value1",
["my_second_attribute"] = "value2"};
 
SingularSDK.InAppPurchase(myProduct, attr);
// 単一製品、追加属性なし、カスタム・イベント名のIAP

SingularSDK.InAppPurchase("MyCustomProduct",
myProduct, null);
// 製品リスト付きIAP、余分な属性なし
SingularSDK.InAppPurchase(myProductList, null);
// 商品リスト、余分な属性なし、カスタム・イベント名を持つIAP

SingularSDK.InAppPurchase("MyCustomProducts",
myProductList, null);
収益を追跡する別の方法:Revenue メソッドと CustomRevenue メソッド

Unity IAPを使用できない場合、Singular SDKは購入に関する情報を "手動で "Singularに渡すための2つのメソッドを提供します:

  • Revenueを使用すると、トランザクションの通貨、金額、その他のオプションの詳細情報をSingularに渡すことができます。
  • CustomRevenueも同様ですが、イベントにカスタム名を付けることができます。

注意:InAppPurchaseの代わりにRevenue/CustomRevenueを使用すると、Singularは購入レシートを確認できません。

SingularSDK.Revenueメソッド
説明 収益イベントをSingularに送信します。
署名
public static void Revenue(string currency, double amount)
public static void Revenue(string currency, double amount, string productSKU, string productName, string productCategory, int productQuantity, double productPrice)
public static void Revenue(string currency, double amount, Dictionary<string, object> attributes)
注意:通貨は "USD"、"EUR"、"INR "のような3文字のISO 4217通貨コードで渡します。
使用例
// 商品詳細のない収益イベントを送信する
SingularSDK.Revenue("USD", 1.99);
// 商品詳細を含む収益イベントを送信する
SingularSDK.Revenue("USD", 4.99, "coin_package_abc123", "Coin Pack 5", "Bundles", 1, 4.99);
// 属性用JSONディクショナリで収益イベントを送信する
Dictionary<string, object> attributes = new Dictionary<string, object>();

// 属性の追加 attributes["productSKU"] = "coin_package_abc123"; attributes["productName"] = "Coin Pack 5"; attributes["productCategory"] = "Bundles"; attributes["productQuantity"] = 2; attributes["productPrice"] = 4.99;
SingularSDK.Revenue("USD", 9.98, attributes);
SingularSDK.CustomRevenueメソッド
説明 カスタム名の収益イベントを Singular に送信します。
署名
public static void CustomRevenue(string eventName, string currency, double amount)
public static void CustomRevenue(string eventName, string currency, double amount, string productSKU, string productName, string productCategory, int productQuantity, double productPrice)
public static void CustomRevenue(string eventName, string currency, double amount, Dictionary<string, object> attributes)
注意:通貨は、"USD"、"EUR"、"INR" のような 3 文字の ISO 4217 通貨コードで渡します。
使用例
// カスタム名で収益イベントを送信する
SingularSDK.CustomRevenue("MyCustomRevenue", "USD", 9.99);
// カスタム名+商品詳細で収益イベントを送信する
SingularSDK.CustomRevenue("MyCustomRevenue", "USD", 50.50, "abc123", "myProductName", "myProductCategory", 2, 25.50);
// カスタム名+属性用JSON辞書で収益イベントを送信する
// 属性辞書の作成
Dictionary<string, object> attributes = new Dictionary<string, object>();

// 属性の追加 attributes["productSKU"] = "coin_package_abc123"; attributes["productName"] = "Coin Pack 5"; attributes["productCategory"] = "Bundles"; attributes["productQuantity"] = 2; attributes["productPrice"] = 4.99; // 必要に応じて属性を追加する SingularSDK.CustomRevenue("MyCustomRevenue", "USD", 9.98, attributes);

3.3.ハイブリッドイベント追跡(上級者向け)

Singularは、アプリに統合されたSingular SDKを通してすべてのイベントと収益を送信することを推奨しています。しかし、Singularは他のソースからイベントや収益を収集することもできます。

Singular SDKから送信されないイベントは、Singularのサーバー間イベントドキュメンテーション要件に準拠し、イベントの属性を正しく設定するために一致するデバイス識別子を提供する必要があります。

重要です:

Server-to-Server イベントリクエストで使用されるデバイス識別子がSingularで一致しない場合、不一致が発生します。以下の可能性に注意してください:

  • イベントリクエストがSingular SDKがアプリセッションからデバイス識別子を記録する「前」に受信された場合、そのイベントリクエストは未知のデバイスの「最初のセッション」とみなされ、Singularはそのデバイスをオーガニックアトリビューションとしてアトリビュートします。
  • Singular SDK がデバイス識別子を記録したが、Singular SDK の識別子が Server-to-Server Event リクエストで指定されたデバイス識別子と異なる場合、イベントの帰属は正しくありません

ハイブリッド・イベント追跡ガイド

内部サーバーからのイベントの送信

Singularはお客様のサーバーから収益に関するデータを収集し、キャンペーンのパフォーマンスやROIの分析に役立てることができます。

要件

  • アプリ内登録またはログインイベントから、デバイス識別子を取得して渡し、このデータをユーザーIDと共にサーバーに保存します。デバイス識別子はユーザーによって変更される可能性があるため、ユーザーがアプリセッションを生成する際には必ず識別子を更新してください。これにより、サーバー側イベントが正しいデバイスに帰属することが保証されます。
  • サーバー側イベントはプラットフォーム固有であるため、デバイスプラットフォーム(iOS デバイスの IDFA または IDFV など)に一致するデバイス識別子のみを使用して送信する必要があります。
  • Singular 内部 BI ポストバック メカニズムを使用して、内部エンドポイントにリアルタイムでイベントをプッシュすると、サーバー側でデータセットを更新できます。内部 BI ポストバック FAQ を参照してください。
  • 詳細については、『サーバー間統合』ガイドの「収益の追跡」セクションを参照してください。
収益プロバイダからのイベントの送信
RevenueCatや adaptyのようなサードパーティプロバイダーは、Singularに購入収益や購読収益を提供することができます。

これらのパートナーを有効にする方法の詳細については、以下のリンクを参照してください。

セグメントからのイベント送信

SingularSDKと並行してSegmentからSingularにイベントを送信するには、Segmentに"Cloud-Mode "Destinationを追加する必要があります。こちらのガイドに従ってください。

4.詳細オプション

4.1.ショートリファラーリンクの作成

注:この機能はSDKバージョン4.0.16以上で利用可能です。

ショートリンクを使用すると、パラメータがいっぱいの長いシンギュラーリンクを、共有に便利な短くて安全なリンクに変換できます。

通常、ショートリンクを動的に作成し、アプリのユーザーが友達と共有してアプリの使用を招待できるようにします。

ショートリンクを作成するには

  • アプリのダウンロードにつながるSingularリンクSingularリンクのFAQを参照してください)。
  • リンクに必要なパラメータを動的に追加することができます(オプションのリストはトラッキングリンクパラメータをご覧ください)。
  • 新規アプリのインストールを、リンクを共有したユーザーにさかのぼって追跡したい場合は、参照元ユーザーのリファラー名とリファラーIDを指定する必要があります。

以下の例のように、createReferrerShortLinkメソッドを使用してショートリンクを作成します。

void callback(string shortLinkURL, string error){
    // shortLinkURL が NULL でない場合、ここに共有ロジックを追加する 
// エラーが発生した場合、再試行/中止/パラメータを変更するロジックを追加する。
// エラーの原因に応じて、関数に渡されたパラメータを変更するロジックを追加します。 } SingularSDK.createReferrerShortLink( "https://sample.sng.link/B4tbm/v8fp?_dl=https%3A%2F%2Fabc.com", "John Doe", // 紹介者名 "342", // リファラーID new Dictionary<string, string>() { // 追加したいパラメータを含む辞書オブジェクト {"channel", "sms"} }, callback );

4.2.広告収入アトリビューションサポートの追加

SingularはGoogle AdMob、AppLovin、Unity LevelPlay (IronSource)、TradPlusなどの広告収益アトリビューション用のメディエーションプラットフォームと統合されています。また、Singularは一般的な広告収益SDKの統合により、他のメディエーションプラットフォームもサポートしています。

メディエーションプラットフォームから広告収益アトリビューションデータを取得するには、Singular SDKインテグレーションにコードスニペットを追加します。これにより、SKAdNetworkキャンペーンの広告収入データを取得することもできます。

メディエーションプラットフォームからユーザーレベルの広告収益を取得することで、Singularはこのデータを受け入れることができるメディアソースにアトリビューションされた広告収益を送り返し、AdROASキャンペーンを実施することができます。

SDKの実装方法とコードスニペットはこちら[HERE]をご覧ください。

4.3.アンインストールのトラッキング

注意:アンインストールのトラッキングは、エンタープライズのお客様のみご利用いただけます。

Android アンインストール追跡

Android アプリのアンインストールトラッキングを有効にするには、まず、 アンインストールトラッキングの設定の詳細に従って、Singular プラットフォームでアプリを設定します。その後、以下の手順に従ってください。

注: Googleは2018年4月にGCM APIを廃止しました。アンインストールトラッキングにはFCMを使用してください。

Firebase Cloud Messaging (FCM) を使用してアンインストールトラッキングを有効にする:

1.FCM と統合します:

アンインストールをトラッキングするには、Firebase Cloud Messaging (FCM) プラットフォームのサービスを利用できます。FCM をまだ使用していない場合は、 Android で Firebase Cloud Messaging クライアントアプリをセットアップする方法について Google の説明に従ってください。

FCMの要件(ソース)

FCMクライアントには、Google PlayストアアプリがインストールされたAndroid 4.1以上のデバイス、またはGoogle APIがインストールされたAndroid 4.1が動作するエミュレータが必要です。なお、AndroidアプリのデプロイはGoogle Playストアに限定されません。

サポートされているバージョンのAndroidで動作していないユーザー/デバイスは、Singularのアンインストールトラッキングをご利用いただけません。

2.AndroidManifest.xml ファイルを更新します:

AndroidManifest.xml ファイルを更新して、アプリに必要なインテント フィルタを追加します(MyFirebaseMessagingService を Firebase Service を実装するクラスで置き換えます):

<service android:name=".java.MyFirebaseMessagingService" android:exported="false">
  <intent-filter>
    <action android:name="com.google.firebase.MESSAGING_EVENT" />
  </intent-filter> 
</service>

3.FCM デバイストークンを登録し、送信します:

FCM トークンを取得したら、'RegisterTokenForUninstall' メソッドにパラメータとして渡します:

SingularSDK.RegisterTokenForUninstall(String fcmDeviceToken);

RegisterTokenForUninstall' メソッドは、'SingularSDK.InitializeSingularSDK()' メソッドの前に呼び出します

iOS のアンインストールトラッキング

iOS のアンインストールトラッキングは、Apple のプッシュ通知技術に基づいています。アプリがプッシュ通知に対応していない場合は、Apple の ガイドを参照してください。アプリがすでにプッシュ通知をサポートしている場合は、SDK の初期化後に RegisterTokenForUninstall メソッドを使用して APNS から返されたデバイストークンを渡す必要があります。

SingularSDK.RegisterTokenForUninstall メソッド
説明 APNS から返されたデバイストークンを渡します。APNS トークンは通常ネイティブ形式のバイナリデータですが、文字列として渡す必要があります。
シグネチャ
public static void RegisterTokenForUninstall
(string APNSToken)
使用例
// APNSトークンを16進文字列として渡す。
  SingularSDK.RegisterTokenForUninstall("ba85ab31a7c7
f5c2f012587f29fb0e596d4b67e7b7b2838fa1a8582c1f7dbdee");

4.4.グローバル・プロパティの追加

アプリから送信されるセッションやイベントごとに、Singular SDKではSingularサーバーに送信する追加のカスタムプロパティを定義できます。 これらのプロパティは、ユーザーやアプリのモード、ステータスなど、あらゆる情報を表すことができます。これらのプロパティを設定すると、レポートのディメンションとして利用できるようになり、データを分解するために使用することができます。

例えば、ゲームアプリがある場合、"Level "というプロパティを定義し、初期値として "0 "を設定することができます。アプリから送信されるすべてのセッションとイベントは、"Level":"0".ユーザがレベルアップしたら、プロパティを "1 "にリセットします。そうすると、セッション、イベント数、収益データなどのレポートをユーザーレベル別に取得することができます。

  • グローバル・プロパティは5つまで定義できます。
  • これらのプロパティは、あなたが設定を解除するか、ユーザーがアプリをアンインストールするまで、アプリの実行間で(あなたが与えた最新の値で)永続します。
  • 各プロパティ名と値の長さは200文字までです。これより長いプロパティ名や値を渡すと、200文字に切り詰められます。
  • グローバル・プロパティにはアクセス可能で、ユーザレベルのエクスポートと ポストバックで使用できます。将来的には、集計レポートのサポートが追加される予定です。グローバルプロパティのサポートに関するご質問やアップデートにご興味がある場合は、Singularカスタマーサクセスマネージャーにお知らせください!

初期化前のグローバルプロパティの設定

SDKを初期化する前に、SetGlobalProperty メソッドを使用してSingularSDKを通してグローバルプロパティを設定することができます。グローバルプロパティをセッションに含めたい場合は、'Initialize On awake'フラグをオフにしてください。

グローバルプロパティとその値はアプリの実行間で持続するため、設定するプロパティはすでに別の値に設定されている可能性があります。overrideExistingパラメータを使用して、既存のプロパティを新しい値で上書きするかどうかをSDKに指示します。

初期化後のグローバル・プロパティの設定

以下のメソッドを使用して、アプリの実行中にいつでもグローバルプロパティを設定、解除、取得できます。

SingularSDK.SetGlobalPropertyメソッド
説明

グローバルプロパティを指定された値に設定します。

注意事項

  • プロパティがまだ存在せず、他のグローバルプロパティがすでに 5 つある場合、そのプロパティは追加されません。
  • プロパティが既に設定されている場合、overrideExistingパラメータは、既存の値がオーバーライドされるかどうかを決定します。
  • このメソッドは、プロパティが正常に設定された場合はtrue を返し、そうでない場合はfalse を返します。
シグニチャ public static bool SetGlobalProperty(string key, string value, bool overrideExisting)
使用例
bool result = SingularSDK.SetGlobalProperty("key", "value", false);
SingularSDK.GetGlobalProperties メソッド
説明 すべてのグローバル プロパティとその現在の値を Map として取得します。
シグネチャ public static Dictionary<string, string> GetGlobalProperties()
使用例
Dictionary<string, string> props = SingularSDK.GetGlobalProperties();
SingularSDK.UnsetGlobalProperty メソッド
説明 グローバルプロパティを削除します。
シグネチャ public static void UnsetGlobalProperty(string key)
使用例
SingularSDK.UnsetGlobalProperty(“test_key”);
SingularSDK.ClearGlobalProperties メソッド
説明 すべてのグローバルプロパティを削除します。
シグネチャ public static void ClearGlobalProperties()
使用例
SingularSDK.clearGlobalProperties();

4.5.古い Android 端末でのインストールリファラの収集

Android では、インストールリファラーはアトリビューションを決定し、Singular が不正行為の検出と分析を行うための最も正確なツールです。これはGoogle Playストアが提供する識別子で、ユーザーがアプリをインストールする前にクリックした広告を指します。

最新のGoogle Playストアのバージョンを持つデバイスでは、Singular SDKが自動的にインストールリファラーの値を収集します(Singularは最新のGoogle Play Referrer APIと統合されているため)。

古いデバイスでインストールリファラーを収集するには、Android SDKガイドの指示に従ってください。

5.データプライバシー法の遵守

5.1.データ共有の制限

Singularは、GDPRやCCPA(カリフォルニア州消費者プライバシー法)などの消費者プライバシー法を遵守している可能性のあるパートナーに協力するためのプライバシー保護機能を提供しています。このようなパートナーは、エンドユーザーが個人情報の共有に同意した場合に通知されることを望んでいます。

データ共有の制限

ユーザーに情報共有の同意を求める方法を実装している場合は、limitDataSharingメソッドを使用してユーザーの選択をSingularに通知します:

  • limitDataSharing:NO を使用して、ユーザーが情報の共有に同意した (オプトインした) ことを示します。
  • ユーザーが同意しなかった場合はlimitDataSharing:YESを使用します。

Singularは「ユーザープライバシーのポストバック」でLimitDataSharingを使用し、関連法規を遵守するために必要なパートナーにこの情報を渡します。詳しくは「ユーザーのプライバシーとデータ共有の制限」をご覧ください。

注意:このメソッドの使用は任意ですが、ユーザーがオプトインしたことが特に通知された場合に限り、パートナーはSingularとアトリビューション情報を共有することができます。

SingularSDK.LimitDataSharingメソッド
シグネチャ SingularSDK.LimitDataSharing(boolshouldLimitDataSharing)
説明 個人データの共有に関するユーザーの同意(オプトイン)をSingularに通知します。Limit Data Sharing(データ共有の制限)メソッドは、アプリがユーザーデータをサードパーティに送信するかどうかを制御するオプションを提供します。これは、ユーザーの好みやプライバシー要件に基づいてデータ共有を制限したい場合に便利です。
使用例
// ユーザーがデータ共有に同意した
SingularSDK.LimitDataSharing(false);

5.2.GDPR準拠のための追加メソッド

Singular SDKは、GDPRポリシーに準拠し、トラッキングに対するユーザーの同意または非同意についてSingularに知らせるためのメソッドをいくつか提供しています。

SingularSDK.TrackingOptInメソッド
説明 トラッキングに対するユーザーの同意(オプトイン)をSingularに通知する。TrackingOptIn()メソッドは、「gdpr 」イベントをSingularサーバーに送信するために使用されます。このメソッドを呼び出さない場合、アプリはユーザーが同意したかのようにトラッキングを続けますが、特にGDPRオプトインとしてマークされることはありません。アプリがGDPR(一般データ保護規則)に準拠する必要がある場合は、ユーザーの同意が適切に記録されるように、この関数を呼び出す必要があります。
使用例
SingularSDK.TrackingOptIn();
SingularSDK.StopAllTrackingメソッド
説明 このアプリでのこのユーザーのすべてのトラッキング活動を停止します。
注意: このメソッドは、アプリが再起動した後でも、SDKを効果的に無効にします(状態は永続的です)!トラッキングを再度有効にする唯一の方法は、resumeAllTracking()を呼び出すことです。
使用例
SingularSDK.StopAllTracking();
SingularSDK.ResumeAllTrackingメソッド
説明 このアプリのこのユーザのトラッキングを再開します。
使用例
SingularSDK.ResumeAllTracking();
SingularSDK.IsAllTrackingStopped メソッド
説明 このアプリのこのユーザーのトラッキング状況を確認します。StopAllTracking()を使用してトラッキングが停止され、再開されていない場合はtrueを返します。
使用例
SingularSDK.IsAllTrackingStopped();