Singular SDKの統合をテストする方法

ドキュメント

Singular SDKをアプリに統合した後、またはサーバー間の統合を構築した後、新しいバージョンで稼働する前にSingularがデータを受信することを確認することが不可欠です。

開発者向けガイド 開発者向けガイド
前提条件
  • アプリにSingular SDKを実装するか、サーバー間(S2S)統合を設定します。
  • テストコンソールを使用する場合は、テスト用のモバイルデバイスを用意してください。

Singularには、統合をテストするための3つの主なツールがあります:

  • テスティングコンソール:機能を実装しながらリアルタイムでテストできます。
  • ログのエクスポート:ユーザーレベルのデータを最低1時間遅れでダウンロードします。
  • 監査レポート:統合における問題を自動的に特定します。

テストコンソールの使用

テストコンソールでは、テストデバイスを追加および選択することで、ライブのリアルタイムデータをストリーミングできます。履歴レポートは提供されません。開始するには、以下が必要です:

  • クリーンなテストデバイス:クリーンなテストデバイス: テストアプリケーションをインストールしたことのないデバイスを使用します。
  • テストするイベントと属性のリスト:検証する予定のイベントと属性を準備します。
  • iOSの場合:テストに IDFV 識別子を使用するか IDFA 識別子を使用するかを決定するため、App Tracking Transparency(ATT)プロンプトが表示されるかどうかに注意してください。

1

テストデバイスの追加

テストコンソールにデバイスを追加します:

  1. Singular プラットフォームで、Developer Tools > Testing Console に進みます。
  2. Add Device(デバイスの追加)をクリックします。

  3. Device Type を入力します。Androidの場合、利用可能であれば、Google Advertising ID(GAID/aifa)、AppSetID(asid)、AndroidID(andi)の順に入力することをお勧めします。iOSデバイスの場合は、利用可能な場合はIDFAを使用することをお勧めします。
  4. デバイスIDを入力してください。

    デバイスIDの取得

    Androidの場合は、Google Advertising ID(GAID/aifa)を使用することをお勧めします。Singular Device Assistアプリ(Android)で見つけることができます。

    aifaは、Singular設定のロギングが有効になっている場合、AndroidのLogCatでも見つかります。

    SingularConfig config = new SingularConfig(SdkKey, SdkSecret)
    .withLoggingEnabled()
    .withLogLevel(1);

    LogCat出力のサンプル:

    2023-06-01 15:48:32.224 27442-27560/com.singular.test D/Singular: DeviceInfo [worker] - andi : 8868adc2f7ffffff
    2023-06-01 15:48:32.224 27442-27560/com.singular.test D/Singular: DeviceInfo [worker] - asid : 12dc3652-5e46-f2bb-a93a-b3c092ffffff
    2023-06-01 15:48:32.224 27442-27560/com.singular.test D/Singular: DeviceInfo [worker] - aifa : 3bbc76b0-cebb-4a9f-b6ec-10ca1affffff

    iOSの場合、ATTフレームワークが導入され、トラッキングが許可されていれば、IDFAを使用できます。Wait For Tracking Authorization With Timeout Intervalも実装されていることを確認してください。それ以外の場合は、IDFVを使用する。

    IDFAは以下のいずれかの方法でキャプチャできます:

    • App StoreからSingular Device Assistアプリ(iOS)を使用する。必ずトラッキングの許可を与えてください。
    • Xcode のデバッグコンソールで IDFA をログに記録する。
    //Example in Swift
    print("IDFA", ASIdentifierManager.shared().advertisingIdentifier.uuidString)
                    
    //Example in Objective-C
    NSString *IDFA = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
    NSLog(@"IDFA: %@", IDFA);

    IDFVは Xcode のデバッグコンソールでキャプチャできます。

    //Example in Swift
    print("IDFV", UIDevice.current.identifierForVendor!.uuidString)
                    
    //Example in Objective-C
    NSString *IDFV = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
    NSLog(@"IDFV: %@", IDFV);
  5. 明確なDevice Name を 追加し、Save Device をクリックします。

    tc_01.png

2

初期化のテスト

最初にテストすることは、SDKインテグレーションが正常に初期化され、Singularに情報を送信できるかどうかです(つまり、あなたが探しているイベントはセッションと呼ばれます)。これにより、Singularはこのアプリのアトリビューションのトラッキングを開始します!

初期化をテストするには

  1. イベントログでデバイスドロップダウンからデバイス名を選択します。Liveインジケータを探します。

  2. テストプラットフォームからアプリを初期化し、アプリを開きます。
  3. セッションイベントが表示されたら、Singular SDKの初期化は完了です。

    tc_02.png

テストコンソールでイベントログを読むには?

デバイスを登録し、いくつかのイベントを送信すると、そのイベントが Testing Console ページのイベントログに表示され始めます。

tc_04.png

行をクリックすると、アプリから送信されたイベントの詳細が表示されます。

events_details.png

テストコンソールのイベントログにイベントが表示されないのはなぜですか?

テストデバイスを登録し、ガイドに従って SDK の統合をテストしているにもかかわらず、イベントログに行が表示されない場合は、以下を再確認してください:

  • テストコンソールはライブイベントのみを表示します。つまり、選択したデバイスと🟢ライブインジケータがあるページにいるときです。 デバイスからの過去のイベントは検索されません。デバイスを選択する前にイベントを発生させると、コンソールに表示されません。
  • テストデバイスでアプリを開いたことを確認してください(ユーザーセッションを見るため)。
  • アプリ内イベントを作成したことを確認してください(イベントをテストしたい場合)。
  • 正しいデバイスIDを入力したことを再確認してください。
  • 正しいデバイスIDタイプを使用していることを再確認してください(iosの場合、ATTプロンプトが表示されなければ、IDFAを使用することはできません)。

Singular SDK 12.0.0以上でアプリをテストすると、_InstallReferrerイベントが見つからないのはなぜですか?

Singular SDK 12.0.0以降では、_InstallReferrerイベントをテストする必要はありません。アプリがストアにプッシュされると、SDKが最初のセッションに_InstallReferrerデータを配置します。テストコンソールにセッションが表示されるかどうかを確認するだけです。

旧バージョンのAndroid SDKを使用している場合は、テストコンソールで_InstallReferrerイベントを確認する必要があります。

コンソールからデバイスを削除する方法は?

デバイスの削除

トラッキングリストからデバイスを削除するには、Edit アイコンをクリックし、表示されるシェルフでDelete Device をクリックします。これにより、ページからすべてのイベントログが消去され、Singularはデバイスの属性に関する内部データを削除します。

こちらも参照してください:デバイスをリセットしてアトリビューション情報をクリアし、再度アトリビューションのインストールテストに使用するには?

デバイスをリセットしてアトリビューション情報を消去し、再度インストールアトリビューションをテストするにはどうすればいいですか?

SDKの統合を同じデバイスで再度テストしたい場合、Singularプラットフォームでデバイスのアトリビューションをクリアするだけでなく、デバイスからローカルにキャッシュされたデータをすべて削除する必要があります。

Androidデバイスの手順

  1. アプリを終了し、起動していないことを確認します(オプションがある場合は、設定メニューから強制停止を使用します)。
  2. 通知ウィンドウまたはアプリメニューのホイールアイコンをタップして、設定メニューに移動します。
  3. アプリ]に移動し、テストするアプリを選択し、アプリを長押しして[アプリ情報]を選択します。
  4. Storageを選択し、Clear Cacheと Clear Dataを選択します。
  5. Singular Testing Consoleで、ドロップダウンからデバイスを選択し、編集(鉛筆)アイコンをクリックします。開いた棚で、Delete Device(デバイスの削除)をクリックし、このデバイスの属性を削除します。

    device_dropdown.png

    device_delete.png

iOS デバイスの手順

  1. アプリを終了し、アンインストールします。
  2. テストコンソールを開き、ドロップダウンでデバイスを見つけ、Edit(編集)アイコンをクリックします。開いた棚で、「デバイスの削除」をクリックし、このデバイスの属性を削除します。

ヒント:再エンゲージメントの非アクティブウィンドウを使用したテスト

非アクティブウィンドウは、ユーザーが再エンゲージメントのアトリビューションの対象となるまでに、どれだけの期間非アクティブでなければならないかを決定する設定です。キャンペーンを開始する前にリエンゲージメントアトリビューションをテストする場合、非アクティブウィンドウを使用することは難しくなります。これが、テストデバイス(テストコンソールに追加され、目のアイコンが有効になっているデバイス)が非アクティブウィンドウから除外される理由です。

IDFAでテストしていますが、iOSがテストコンソールに表示されません。どうすればいいですか?

IDFAが正しいか再確認してください。いくつかの方法があります:

  • Singularを使用する App StoreからSingular Device Assistアプリ(iOS)を使用します。必ずトラッキングの許可を与えてください。
  • Xcodeのデバッグコンソールで IDFAを記録する。
  • すでに1時間以上前にテストを行った場合は、ログをエクスポートして、イベントがキャプチャされているかどうかを確認できます。エクスポートログから IDFA/IDFV を引き出すことができます。エクスポート・ログから取得する場合は、レポートに「App Tracking Transparency status」も追加してみてください。0 - 未確定、ATTプロンプトが表示されなかったことを意味します(通常、一般設定がブロックしているか、タイムアウトが発生したため)。詳しくはこちらをご覧ください

その他の確認事項

  1. デバイス設定を確認します:デバイスの広告識別子(IDFA)が制限されていないことを確認します。デバイスの「Settings Privacy Tracking(プライバシー・トラッキングの設定)」を開き、「Allow Apps to Request to Track(アプリによるトラッキングの要求を許可する)」オプションが有効になっていることを確認する。テスト中にATTのプロンプトが表示されたことを確認してください。表示されなかった場合は、IDFAをトラッキングしていません。
  2. 広告識別子をリセットします:デバイスをテストに使用したことがある場合は、広告識別子をリセットしてください。設定]の[プライバシー追跡]に移動し、IDFAをリセットしてください。
  3. 正しい実装:Singular SDKがお客様のアプリに正しく統合されていること、およびSDKの最新バージョンを使用していることを確認してください。
  4. データが表示されるまで待ちます:テストコンソールにデータが表示されるのに時間がかかることはありません。1分以上待たされる場合は、何かが正しくセットアップされていません。
  5. SDKの初期化を確認します:アプリのコード、特にアプリのアーキテクチャによってAppDelegateまたはSceneDelegateでSingular SDKが正しく初期化されているか確認してください。
  6. エラーをチェックする:Xcodeコンソールで、SDKの初期化やイベントトラッキングの問題を示す可能性のあるエラーを探します。

これらのステップを踏んでも問題が解決しない場合は、詳細なインテグレーションガイドを確認するか、Singular のインテグレーションエンジニアに確認する必要があるかもしれません。

3

特定の機能のテスト

カスタムユーザーIDのテスト

SDKインテグレーションがカスタムユーザーIDをSingularに送信する場合、それをテストする方法は以下の通りです。

  1. テストコンソールにデバイスを登録します。
  2. アプリを開きます。
  3. 必要であれば、アプリ内でユーザーIDを送信するアクション(ログインなど)をトリガーします。アクションの性質は実装によって異なります。
  4. 次に Singular に送信されるイベントで、テスティングコンソールでイベントの詳細を展開し、詳細に "custom_user_id" の値が含まれていることを確認します。

    customUserID.png

ユーザーIDが表示されない場合

  • ユーザーIDを設定するメソッドが、アプリ内で実際に呼び出されるタイミングになっているか確認してください。
  • Singular SDKイベントを追加し、"setting custom user id "と呼んで、テストコンソールにイベントが表示されるようにしてください。
テストイベント

SDKインテグレーションにイベントトラッキングまたは収益トラッキングを実装した場合、以下の手順に従ってテストしてください。

イベントの詳細については、以下を参照してください:

SDKインテグレーションに実装したすべてのイベントについて、以下の手順を実行してください:

  1. アプリからイベントをトリガーし、テストコンソールのログにイベント名で表示されることを確認します。

    Events.png

  2. イベントと一緒に追加データを送信している場合は、テストコンソールでイベントの行をクリックしてイベントの詳細を展開し、「イベントデータ」にデータが含まれていることを確認してください。

    EventData.png

イベントが表示されない場合、デバイスがテスティングコンソールに完全に登録される前にアプリが開かれた可能性があります。イベントのエクスポートログを確認してください。

テスト収入

SDKインテグレーションで実装した収益イベントの各タイプについて:

  1. アプリで収益イベントをトリガーし、イベントログを確認します。イベント名の行が表示されるはずです。

    注意: イベント名にカスタム名を付けなかった場合、収益イベントのデフォルト名"__iap__"を受け取ります。

  2. 行をクリックして展開し、通貨("pcc")、金額("r")、およびイベントのその他の詳細が受信されていることを確認します。

    revenue.png

ディープリンクのテスト

SDKインテグレーションにディープリンクを実装した場合、以下の手順に従ってディープリンク機能をテストしてください。

注: この記事は、あなたの組織が Singular Linksを使用していることを前提としています。

1.テスト先を設定する

Singularプラットフォームで、[設定] > [アプリ]に進み、アプリを見つけて、ディープリンク先を追加します。

デスティネーションは、SDK統合のハンドラーコードが認識し、処理できるディープリンクデスティネーションの1つでなければなりません。

 test12.png

2.テスト用リンクの作成

リンク先が決まったら、ディープリンクを作成しよう。

  1. Attribution > Manage Linksに進み、サイドバーからアプリを選択します。
  2. リンクの作成」をクリックします。
  3. リンクタイプ]で[カスタムソース]を選択し、[ソース名]で [メール]を選択します。
  4. リンクに名前を付けます。
  5. リンクの設定とリダイレクト」セクションをクリックして展開します。
  6. ディープリンクのドロップダウンリストで、先ほど作成したリンク先を選択します。
  7. 他のプラットフォームのフォールバック先]テキストボックスに、ウェブサイトのURLを入力します。
  8. 生成]をクリックし、[クリックスルー追跡リンク]フィールドからリンクをコピーします。

     test13.gif

3.リンクをテストする

リンクをテストするには

  1. アプリがテスト用デバイスにインストールされていることを確認してください。
  2. コピーしたリンクをテスト端末にメールで送信します。
  3. デバイスからメールを開き、リンクをクリックします。アプリが開き、目的のページまたはコンテンツが表示されるはずです。
  4. テスト中に SDK テストコンソールを使用している場合は、セッション引数にディープリンクが表示されます:

    deeplink.png

リンクをテストする別の方法(Android のみ):

ADB(Android Debug Bridge)を使用してAndroidのディープリンクをテストすることは、アプリがディープリンクを正しく処理することを確認するための一般的な方法です。ここでは、ディープリンクテストのためにADBをセットアップして使用する方法について、ステップバイステップで説明します:

前提条件

  • ADBのインストール:ADBがインストールされていることを確認してください。これはAndroid SDKプラットフォーム・ツールに含まれており、Android開発者向けウェブサイトからダウンロードできます。
  • 開発者向けオプションを有効にする:Androidデバイスで、開発者向けオプションとUSBデバッグを有効にします。
  • 設定電話についてに進み、ビルド番号を7回タップして開発者向けオプションを有効にします。
  • 設定>開発者向けオプションに進み、USBデバッグを有効にします。
  • デバイスを接続します:USB経由でAndroidデバイスをコンピュータに接続します。ADBを実行して認識されていることを確認します:

    コンピュータのターミナルから以下を実行します:

    adb devices

    このコマンドでデバイスが表示されるはずです。

ADBを使用したディープリンクのテスト

  • ADBを使用してディープリンクを送信します:ディープリンクをテストするには、adb shell am startコマンドを使用します。このコマンドは、ブラウザまたは他のアプリでディープリンクをクリックすることをシミュレートします。

    一般的な構文は次のとおりです:

    adb shell am start -W -a android.intent.action.VIEW -d "your_deep_link_url"
  • コンピュータのターミナルからリンクをトリガーします:

    adb shell am start -W -a android.intent.action.VIEW -d "https://seteam.sng.link/Bnuq6/i428?_dl=androidkotlinapplication%3A%2F%2Fmy_deeplink"

トラブルシューティング

"私のアプリがすでに実行されている場合、ディープリンクは既存のアプリに切り替えるのではなく、アプリの新しいインスタンスを開きます。"これを回避するには、マニフェストファイルを編集し、アクティビティに以下を追加してください:

android:launchMode="singleTask"

launchModeオプションの詳細については、Googleの<activity>ドキュメントを参照してください。

ディープリンクのテスト

ディファードディープリンクが有効になっていることを確認する:

  1. テストコンソールでセッションイベントを確認する。

    ddlEnabled.png

  2. 上記のテストディープリンキングの説明に従って、テスト先とリンクを設定します。
  3. テストデバイスからアプリをアンインストールします。
  4. デバイスの Advertising Identifier をリセットします。
  5. 新しい Identifier を Testing Console に追加します。
  6. ディープリンクをデバイスに電子メールで送信し、リンクをクリックします。

  7. リンクからアプリストアに移動します。注意: ローカルビルドでテストする場合は、ストアバージョンをインストールせず、Android StudioまたはXcodeからアプリをサイドロードしてください。アプリをインストールして開くと、目的のページやコンテンツが表示されるはずです。

  8. テストにSDKコンソールを使用している場合、最初のセッションイベントで遅延されたディープリンクの値が見つかるはずです。
    deferreddeeplink.png

テストアンインストールトラッキング

SDKインテグレーションにアンインストールトラッキングを実装した場合は、以下の手順に従ってテストしてください。

アンインストールトラッキングのテストは他のSDK機能のテストよりも複雑です。なぜならSingularはアンインストールを報告するためにGoogle/iOSのサービスに依存しており、そのプロセスには時間がかかるからです。Singularプラットフォームではアンインストールイベントをリアルタイムで見ることはできませんし、テストコンソールを使用することもできません。

テストする前に、FCM/APNSトークンをSingularに送信していることを確認してください(Android SDK: Tracking UninstallsおよびiOS SDK: Tracking Uninstallsを参照してください)。

また、アプリの設定ページでFCMサーバーキー(Android用)またはiOSプッシュ証明書を入力したことを再確認してください。

アンインストールのトラッキングをテストするには

  1. 実際のデバイス(エミュレータではない)を使用して、デバイスにアプリをインストールします。
  2. インストールが登録されるようにアプリを開きます。
  3. アプリをアンインストールします。
  4. Singular がアンインストールイベントを受信したかどうかを確認するには、いくつかのオプションがあります:

注: アンインストールイベントの検証を待っている間は、デバイス ID をリセットしたり、アプリを再インストールしたりしないでください。

注:テストコンソールは、iOS TestFlight アプリを サポートしていません。TestFlight ビルドでは、アプリを起動するたびに IDFV がリセットされるため、ライブイベントをキャプチャできません。

ログのエクスポートの使用

属性 > ログをエクスポート(Attribution > Export Logs)を使用して、遅延を伴うテスト結果を検証することもできます。ログのエクスポート機能を使用すると、コンバージョン(インストール)、イベントなどのユーザーレベルのデータを手動でダウンロードできます。

ベストプラクティス

  • データを取得する前に、日付、アプリ、サイトが適切に選択されていることを再確認してください。
  • エクスポートログのデータは3時間遅れです。
  • 詳細については、このFAQを参照してください。

SDK監査の実行

SingularはSDK監査レポートを提供し、お客様のSDKとS2S統合が正しく実装されているかをテストします。この監査では、発見されたすべての問題のリストと解決方法のヒントが出力されます。SDK監査レポートを使用するには

1

SDK監査レポートの実行

Developer Tools] > [Testing Console]に移動し、右上の[Run Audit]をクリックします。

tc_03.png

2

レポートをダウンロードし、関連する問題を修正します。

レポートの実行が完了したら、CSV形式でダウンロードできます。

レポートはSDKとS2S統合で見つかった問題のリストです。どの機能を実装したかによって、全ての問題が重要であったり、関連するわけではありません。

レポート内の問題を確認し、「Error Description」フィールドのヒントに従って修正してください。

警告/情報タイプの問題 バリデーション名を確認し、遅延ディープリンク(DDL)など、実装しないことを選択したオプションのSDK機能であるかどうかを確認します。そうであれば、エラーメッセージを無視できます。

SDK監査はどのように動作し、どのようなデータに対して実行されますか?

SDK監査は過去3日間にアプリから受信したデータを調べます。データが期待通りに見えるかどうかをチェックします:

  • アプリがユーザーセッションを報告しているかどうか(これはSDK/S2S統合の最も基本的な機能で、Singularがアトリビューションを追跡できるようにするものです)。
  • アプリがアプリ内イベントと収益を報告しているかどうか
  • ベストプラクティスを使用して収益が報告されているかどうか
  • ディファードディープリンクが有効かどうか
SDK監査レポートの読み方は?

 Screen_Shot_2021-11-11_at_18.28.27.png

レポートはSDKとS2S統合で発見された問題のリストです。

説明
アプリ名 Singularで設定されたアプリの名前。
アプリバンドル Singularで設定したアプリのバンドル(例:com.example.appname)。
プラットフォーム iOS、Android、またはAmazon。
アプリのバージョン アプリのバージョン番号。
検証名 問題が見つかった統合の領域(例:"カスタムユーザID "または "収益イベント")。
タイプ

問題の深刻度

  • エラー: この問題によって統合が機能しないため、アプリを公開する前に修正する必要があります。例えば、Singularがアプリからユーザーセッションを受信していません。ユーザーセッションがないと、アトリビューションを実行できません。
  • 警告:ベストプラクティスに従い、Singularのアトリビューショントラッカーを最大限に活用したいのであれば、修正する必要があります。例えば、アプリがカスタムユーザーIDを送信していないとします。カスタムユーザーIDはオプション機能ですが、強くお勧めします。
  • 情報 この問題は、統合に実装しないことを選択したオプション機能に関するものです。たとえば、アプリでディファード・ディープ・リンク(DDL)が有効になっていません。DDLは単にマーケティング戦略に関連していないだけかもしれません。
エラーの説明 問題の詳細と修正方法。