特異なSDK統合をテストする方法

Singular SDK/S2Sをアプリに統合した後、アプリの新バージョンを公開する前に、正しく動作することを確認することが重要です。

開発者向けガイド 開発者向けガイド
前提条件
  • Singular SDKまたはS2Sをアプリに実装していること。
  • テストコンソールを使用するには、テスト用のモバイルデバイスが必要です。

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

  • テスティングコンソール:リアルタイムで実装した様々な機能を手動でテストできます、
  • ユーザーレベルのデータを遅延後にダウンロードできるログエクスポート
  • 監査レポート:統合の問題点を自動的に特定します。

 

テストコンソールの使用

1

テストデバイスの追加

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

  1. Singular プラットフォームで、Developer Tools > Testing Console に進みます。
  2. Add Device をクリックします。

  3. デバイスタイプを入力します。 Androidの場合、利用可能であれば、Google Advertising ID(GAID/aifa)、AppSetID(asid)、AndroidID(andi)の順に使用することをお勧めします。iOSデバイスの場合は、IDFVを使用することをお勧めします。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 をログに記録する。
      // Swiftでの例
      print("IDFA", ASIdentifierManager.shared().advertisingIdentifier.uuidString)
                      
      // Objective-C の例
      NSString *IDFA = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
      NSLog(@"IDFA: %@", IDFA);

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

      // Swiftでの例
      print("IDFV", UIDevice.current.identifierForVendor!.uuidString)
                      
      // 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インテグレーションをテストしているにもかかわらず、イベントログに行が表示されない場合は、以下を再確認してください:

  • テストデバイスでアプリを開いたことを確認してください(ユーザーセッションを確認するため)。
  • アプリ内イベントを作成したことを確認してください(イベントをテストしたい場合)。
  • テストコンソールは、ライブイベントのみを表示します。つまり、選択したデバイスと 🟢 ライブインジケータのあるページにいるときです。 デバイスからの履歴イベントは検索されません。
  • ドロップダウンからデバイスを選択していることを確認してください:

device_dropdown.png

 

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. Testing Console を開き、ドロップダウンからデバイスを見つけ、Edit アイコンをクリックします。 開いた棚で、Delete Deviceをクリックし、このデバイスの属性を削除します。

     

ヒントリエンゲージメント無効ウィンドウを使用したテスト

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

3

特定の機能のテスト

[iOS] Apple iAdリファラーのテスト

iOSデバイスでは、SingularはiAdアトリビューションデータを受信しているはずです。 検証するには、コンソールにデバイスを追加し、アプリをインストールした後、テストコンソールをチェックし、"__iAd_Attribution__"イベントが表示されていることを確認してください。

 test7.png

注意事項

  • このイベントは、アプリがインストールされたときにのみ表示されます。アプリがインストールされてからしばらく経過している場合は、指示に従ってデバイスをリセットし、コンソールにデバイスを再追加してアプリを再インストールしてください。
  • イベントが表示されない場合は、デバイスがテストコンソールに完全に登録される前にアプリが開かれた可能性があります。 Singular static libraryを統合した場合は、iAD.frameworkをインポートしていることを確認してください。CocoaPodsを使用している場合は、すでに含まれています。
カスタムユーザーIDのテスト

SDKインテグレーションがカスタムユーザーIDをSingularに送信する場合、それをテストする方法を説明します。

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

     test8.png

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

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

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

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

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

  1. アプリからイベントをトリガーし、イベントに付けた名前でイベントログに表示されることを確認します。

     test9.png

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

     events_details_field.png

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

テスト収入

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

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

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

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

     events_details_field.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. デバイスからメールを開き、リンクをクリックします。アプリが開き、目的のページまたはコンテンツが表示されるはずです。

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

コンピューターでコマンドライン・ターミナルを開き、ディープリンクをトリガーする:

 test14.png

トラブルシューティング

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

android:launchMode="singleTask"

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

ディープリンクのテスト

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

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

     test15. png

  2. 上記のテストディープリンキングの説明に従って、テスト先とリンクを設定します。
  3. テストデバイスからアプリをアンインストールします。
  4. ディープリンクをデバイスに電子メールで送信し、デバイスから開きます。リンクからアプリストアに移動するはずです。アプリをインストールして開くと、目的のページまたはコンテンツが表示されるはずです。

     테스트16.gif

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

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

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

テストする前に、FCM/APNSトークンをSingularに送信していることを確認してください(Android SDKを参照してください:アンインストールのトラッキングと iOS SDKを参照してください:Tracking Uninstallsを参照してください)。

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

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

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

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

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

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

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

ベストプラクティス

  • データを取得する前に、日付、アプリ、サイトが適切に選択されていることを再確認してください。
  • エクスポートログのデータは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統合で発見された問題のリストです。

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

問題の深刻度

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