Singular SDK 連携のテスト方法

Singular SDK 連携のテスト

本番リリース前に、テスティングコンソール、エクスポートログ、SDK監査レポートを使用して Singular SDKおよびS2S連携を検証するための総合ガイドです。

アプリにSingular SDKを連携するか、サーバー間(S2S)連携を構築した後は、 本番リリース前にSingularへのデータ送信を確認することが不可欠です。

対象読者 開発者、QAエンジニア
前提条件
  • アプリにSingular SDKまたはS2S連携が実装済み
  • テスティングコンソールの検証用モバイル端末
  • SDK/シークレットキーで設定されたテスト環境

テストツールの概要

利用可能なテスト方法

Singularは連携検証のための3つの補完的なツールを提供しており、 それぞれが特定のテストフェーズと要件に対応しています。

ツール 目的 タイミング 最適な用途
テスティングコンソール 実装中の即時機能検証のために、テスト端末からリアルタイムデータをストリーミング リアルタイム アクティブな開発とデバッグ
エクスポートログ テスト後の詳細分析と検証のためにユーザーレベルデータをダウンロード 約3時間の遅延 履歴データ分析
SDK監査 解決のための実行可能な推奨事項とともに連携の問題を自動的に特定 過去3日間のデータ 包括的な検証

テスト戦略: 即時フィードバックのためにアクティブな開発中はテスティングコンソールを使用し、 詳細な検証にはエクスポートログを、本番リリース前の最終的な包括的検証には SDK監査を活用してください。


テスティングコンソール

即時の連携検証とデバッグのために、登録済みテスト端末からライブデータをストリーミングする リアルタイムテストツールです。

前提条件

テスティングコンソール使用前の準備

テスティングコンソールの検証を開始する前に、以下の要件を満たしていることを確認してください:

  • クリーンなテスト端末: 正確なインストールアトリビューションテストのために、 テストアプリがインストールされたことのない端末を使用してください。
  • イベントテスト計画: テストセッション中に検証するイベントと属性のリストを準備してください。
  • iOS ATTの認識: AppTrackingTransparency(ATT)プロンプトが表示されるかどうかを確認してください。 これはテスト用の識別子タイプ(IFDVとIDFA)に影響します。

重要な制限: テスティングコンソールは過去のレポートを提供しません。 イベントがコンソールに表示されるには、端末が選択され、🟢 ライブインジケーターが アクティブな状態で発生する必要があります。


ステップ1:テスト端末の追加

端末の登録

リアルタイムイベントストリーミングのために、適切な端末識別子を使用して テスティングコンソールにテスト端末を登録してください。

端末の追加方法

登録手順

  1. SingularプラットフォームでDeveloper Tools → テスティングコンソールに移動します。
  2. 端末を追加 ボタンをクリックします。
  3. ドロップダウンから 端末タイプ を選択します:
    • Android: 優先順位に従い、Google広告ID(GAID/aifa)、 AppSetID(asid)、またはAndroidID(andi)を使用してください。
    • iOS: 利用可能な場合はIDFAを使用します(ATT同意が必要)。 それ以外の場合はIDFVを使用します。
  4. 端末から取得した 端末ID を入力します。
  5. 識別しやすいわかりやすい 端末名 を入力します。
  6. 端末を保存 をクリックして登録を完了します。

Add Device to Testing Console

端末識別子の取得

Android端末識別子

推奨方法: Singular Device AssistアプリまたはSingular Device Assist( Android )を使用してGAID/aifaを取得します。

代替方法: Singular SDKのログを有効にして、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端末識別子

IDFAの取得: ATTフレームワークが実装されており、トラッキングが承認されている場合に使用します。

方法1: Singular Device Assistアプリ( iOS )- プロンプト表示時にトラッキング許可を付与します。

方法2: XcodeデバッグコンソールでIDFAをログに記録します:

SWIFT OBJECTIVE-C
// Example in Swift
print("IDFA", ASIdentifierManager.shared().advertisingIdentifier.uuidString)

IDFVの取得: ATTが実装されていない場合、またはトラッキングが承認されていない場合に使用します。

SWIFT OBJECTIVE-C
// Example in Swift
print("IDFV", UIDevice.current.identifierForVendor!.uuidString)

ステップ2:SDKの初期化テスト

セッショントラッキングの検証

最初の検証ステップでは、セッションイベントの送信を確認することにより、 SDKが適切に初期化され、Singularプラットフォームと通信していることを確認します。

重要な最初のテスト: セッションイベントはSDKの初期化成功を示し、 Singularがアトリビューションをトラッキングできるようにするものたりません。 セッションイベントがないと、アトリビューションが機能しません。

初期化テストの手順

  1. イベントログ で、 端末 ドロップダウンから端末名を選択し、🟢 ライブインジケーターが表示されていることを確認します。
  2. テストプラットフォームからアプリを初期化するか、端末でアプリを開きます。
  3. イベントログに session イベントが表示されることを確認し、SDKの初期化成功を検証します。

Session Event in Testing Console


ステップ3:連携機能のテスト

機能別の検証

SDKの初期化を確認した後、テスティングコンソールのリアルタイムモニタリングを使用して 連携に実装された特定の機能を検証します。

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

目的

クロスデバイスのユーザートラッキングと分析のために、 カスタムユーザーIDがSingularに適切に送信されていることを検証します。


テスト手順

  1. テスティングコンソールに端末を登録します。
  2. テスト端末でアプリを開きます。
  3. 自動的に送信されない場合は、ユーザーIDを送信するアクション(例:ログイン)をトリガーします。
  4. テスティングコンソールでイベント詳細を展開し、 custom_user_id フィールドに期待値が含まれていることを確認します。

Custom User ID in Event Details


トラブルシューティング

カスタムユーザーIDが表示されない場合:

  • ユーザーIDを設定するメソッドがアプリフローの適切なタイミングで実際に呼び出されていることを確認します。
  • テスティングコンソールでの可視性向上のために、"setting_custom_user_id"という名前のSingular SDKイベントを追加します。
  • ユーザーIDの割り当て確認のためにSDKログを確認します。
イベントのテスト

目的

イベントトラッキングの実装が正しい名前と属性でイベントをSingularに送信していることを検証します。


テスト手順

SDK連携に実装された各イベントについて:

  1. アプリでイベントをトリガーし、テスティングコンソールに正しい名前でイベントが表示されることを確認します。
  2. イベント行をクリックして詳細を展開し、 イベントデータ セクションに期待する属性が含まれていることを確認します。

Events in Testing Console

Event Data Details


トラブルシューティング

イベントが表示されない場合:

  • テスティングコンソールに端末が完全に登録された後にアプリを開いたことを確認します。
  • エクスポートログ でイベントを確認します(約3時間の遅延後に利用可能)。
  • アプリでイベントのトリガーコードが適切に実行されたことを確認します。

参考リソース

収益のテスト

目的

収益トラッキングの実装が購入金額、通貨、および追加の収益詳細を 正しくレポートすることを検証します。


テスト手順

実装された各収益イベントタイプについて:

  1. アプリで収益イベントをトリガーし、テスティングコンソールにイベントが表示されることを確認します。
  2. イベント行を展開し、以下のフィールドが存在することを確認します:
    • pcc - 通貨コード(例:USD、EUR)
    • r - 収益金額
    • 実装されている場合は追加の収益イベント属性

デフォルト収益イベント名: 収益イベントにカスタム名が割り当てられていない場合、 __iap__ (デフォルトの収益イベント名)として表示されます。

Revenue Event Details


参考リソース

ディープリンクのテスト

目的

ディープリンクの実装がSingular Linksを正しく処理し、 ユーザーをアプリ内の意図した目的地に誘導することを検証します。

前提条件: このテストは、組織がキャンペーントラッキングに Singular Links を使用していることを前提とします。


1. テスト目的地の設定

  1. SingularプラットフォームでSettings → Appsに移動します。
  2. アプリを見つけてクリックして設定を開きます。
  3. SDK連携の目的地ハンドラーコードが認識するディープリンク目的地を追加します。

Add Deep Link Destination


2. テストリンクの作成

  1. Attribution → Manage Linksに移動してアプリを選択します。
  2. リンクを作成 をクリックします。
  3. リンクタイプ で"Custom Source"を選択し、 ソース名 で"Email"を選択します。
  4. リンク名を入力します。
  5. リンク設定とリダイレクト セクションを展開します。
  6. ディープリンク ドロップダウンからテスト目的地を選択します。
  7. 他のプラットフォーム用フォールバック先 フィールドにウェブサイトURLを入力します。
  8. 生成 をクリックし、 クリックスルートラッキングリンク フィールドからリンクをコピーします。

Generate Tracking Link


3. リンク機能のテスト

  1. テスト端末にアプリがインストールされていることを確認します。
  2. コピーしたリンクをテスト端末にメールで送信します。
  3. 端末からメールを開き、リンクをクリックします。アプリが開き、意図したページ/コンテンツが表示されるはずです。
  4. テスティングコンソールで、セッション引数にディープリンク値が表示されることを確認します。

Deep Link in Session Arguments


Androidテストの代替方法

コマンドライン検証のために ADB(Android Debug Bridge) を使用してAndroidディープリンクをテストします。

前提条件:

  • ADBのインストール(Android SDKプラットフォームツールに含まれる)
  • 端末で開発者オプションとUSBデバッグを有効化
  • USBで端末をコンピューターに接続

テストコマンド:

adb shell am start -W -a android.intent.action.VIEW -d "https://yourdomain.sng.link/xxxxx?_dl=yourapp://deeplink"

トラブルシューティング

問題: ディープリンクが既存のインスタンスに切り替わらず、新しいアプリインスタンスを開く場合。

解決策: AndroidManifest.xmlのアクティビティに以下を追加します:

android:launchMode="singleTask"

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

遅延ディープリンクのテスト

目的

遅延ディープリンク がアプリインストール前にクリックされたリンクを適切に処理し、 初回起動時にユーザーを意図した目的地に誘導することを検証します。


テスト手順

  1. テスティングコンソールのセッションイベントを確認し、遅延ディープリンクが有効になっていることを確認します。
  2. 上記のディープリンク手順に従って、テスト目的地とリンクを設定します。
  3. テスト端末からアプリをアンインストールします。
  4. 端末の広告識別子をリセットします。
  5. テスティングコンソールに新しい識別子を追加します。
  6. ディープリンクを端末にメールで送信し、端末からリンクをクリックします。
  7. リンクがアプリストアにリダイレクトされるはずです。アプリをインストールします(ローカルビルドの場合は、ストア版の代わりにAndroid StudioまたはXcodeからサイドロードします)。
  8. インストール後、アプリを開きます。ディープリンクで指定された意図したページ/コンテンツが表示されるはずです。
  9. テスティングコンソールで、 最初のセッション イベントに 遅延ディープリンク 値が表示されることを確認します。

Deferred Deep Linking Enabled

Deferred Deep Link in First Session

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

目的

アンインストールトラッキングの実装が解約分析のためにアプリのアンインストールを 正しく検出してレポートすることを検証します。

テストの複雑さ: アンインストールトラッキングの検証は他のSDK機能より複雑です。 SingularがアンインストールをレポートするためにGoogle/iOSのサービスに依存しているためです。 リアルタイムでアンインストールイベントを確認することも、 テスティングコンソールで検証することもできません。


前提条件

テスト前に以下を確認してください:


テスト手順

  1. 実機 (エミュレーターではない)にアプリをインストールします。
  2. アプリを開いて、インストールをSingularに登録します。
  3. 端末からアプリをアンインストールします。
  4. 以下のいずれかの方法でアンインストールイベントを確認します:

重要: アンインストールイベントの検証を待つ間は、端末IDをリセットしたり アプリを再インストールしたりしないでください。これにより、テスト結果が無効になります。


テスティングコンソールのトラブルシューティング

よくある問題

イベントが表示されないのはなぜですか?

よくある原因

端末が登録されているのにイベントログにイベントが表示されない場合、 以下を確認してください:

  • ライブモニタリングが必要: テスティングコンソールは、端末が選択され🟢 ライブインジケーターが表示されている場合のみ、 ライブでイベントを表示します。過去のイベントは取得しません。
  • アプリを開く: セッションイベントを生成するためにテスト端末でアプリを開いたことを確認します。
  • イベントのトリガー: 特定のイベントをテストしている場合は、アプリでトリガーアクションが実行されたことを確認します。
  • 端末IDの正確性: テスティングコンソールに入力した端末IDが正しいことをダブルチェックします。
  • 端末IDのタイプ: ATTプロンプトのないiOSの場合、IDFAは使用できません。代わりにIDFVを使用する必要があります。
_InstallReferrerイベントが見つからないのはなぜですか?

SDKバージョン12.0.0以降

Singular SDK 12.0.0以降は、 _InstallReferrer イベントをテストする必要はありません。アプリがストアにプッシュされると、 SDKは自動的に最初のセッションに_InstallReferrerデータを含めます。 テスティングコンソールにセッションが表示されることを確認するだけで十分です。


SDKバージョン <12.0.0>

古いAndroid SDKバージョンの場合、適切なインストールアトリビューションのために テスティングコンソールで _InstallReferrer イベントを確認する必要があります。

iOSのIDFAがテスティングコンソールに表示されない場合

確認手順

IDFAの正確性を再確認:

  • トラッキング許可が付与されたSingular Device Assistアプリ(iOS)を使用
  • XcodeデバッグコンソールでIDFAをログに記録
  • "App Tracking Transparencyステータス"フィールドでエクスポートログを確認(1時間以上後)- 値が0(未定)の場合、ATTプロンプトが表示されていないことを意味します。

設定の確認

  1. 端末設定: Settings → Privacy → Trackingで"Allow Apps to Request to Track"が 有効になっていることを確認します。
  2. ATTプロンプト: テスト中にATTプロンプトが表示されたことを確認します。 表示されていない場合、IDFAはトラッキングされません。
  3. IDFAのリセット: 端末が以前に使用されている場合は、Settings → Privacy → Trackingから 広告識別子をリセットします。
  4. SDKバージョン: 最新のSingular SDKバージョンが正しく連携されていることを確認します。
  5. SDKの初期化: ドキュメントに従い、SDKがAppDelegateまたはSceneDelegateで 初期化されていることを確認します。
  6. エラーの確認: SDKの初期化またはトラッキングエラーについてXcodeコンソールを確認します。

手順に従った後も問題が解決しない場合は、 Apple ATTドキュメント を参照するか、Singularの連携エンジニアに連絡してください。

端末を削除する方法

削除手順

  1. テスティングコンソールの端末の横にある編集アイコンをクリックします。
  2. 表示されるサイドバーで 端末を削除 をクリックします。
  3. 削除するとすべてのイベントログが消去され、Singularから端末のアトリビューションデータが削除されます。

参照: インストールアトリビューションテストのための端末のリセット方法

再テストのための端末のリセット方法

リセット要件

同じ端末でSDK連携を再テストするには、端末からローカルキャッシュデータを削除し、 Singularプラットフォームで端末のアトリビューションをクリアする必要があります。


Androidのリセット手順

  1. アプリを閉じて実行されていないことを確認します(可能な場合は 強制停止 を使用)。
  2. 設定 メニューに移動します。
  3. アプリ に移動し、アプリを長押しして アプリ情報 を選択します。
  4. ストレージ を選択して キャッシュを消去 データを消去 をクリックします。
  5. テスティングコンソールで端末を選択して編集アイコンをクリックし、 端末を削除 してアトリビューションを削除します。

Device Dropdown

Delete Device


iOSのリセット手順

  1. アプリを閉じて端末からアンインストールします。
  2. テスティングコンソールで端末を見つけて編集アイコンをクリックし、 端末を削除 してアトリビューションを削除します。

リエンゲージメントのテスト: テスト端末(テスティングコンソールで目のアイコンが有効になっている端末)は 非アクティブ期間 の要件から除外されており、非アクティブ期間を待たずにリエンゲージメントアトリビューションテストを容易に行えます。

イベントログの読み方

イベントログのインターフェース

端末を登録してイベントを送信すると、イベントはリアルタイムの更新とともに テスティングコンソールのイベントログに表示されます。

Events Log


イベント詳細

イベント行をクリックして展開すると、すべてのパラメーターと属性を含む、 アプリから送信された完全なイベント詳細を表示できます。

Event Details

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


エクスポートログ

イベント発生からおよそ1時間の遅延後に、テスト後の詳細な連携検証のために ユーザーレベルデータをダウンロードします。

エクスポートログの概要

目的とタイミング

エクスポートログ機能を使用すると、包括的な連携検証のために、 コンバージョン(インストール)、イベント、セッション、アトリビューション詳細を含む ユーザーレベルデータを手動でダウンロードできます。

ベストプラクティス:

  • 日付の選択: データをダウンロードする前に、日付、アプリ、サイトが適切に選択されていることを ダブルチェックしてください。
  • データの遅延: エクスポートログのデータはリアルタイムから約3時間遅れています。 検証前にテスト後は十分な時間を取ってください。
  • ドキュメント: エクスポートログの完全な使用方法については、 エクスポートログとユーザーレベルデータFAQ を参照してください。

エクスポートログの使用

データ取得プロセス

  1. SingularプラットフォームでAttribution → エクスポートログに移動します。
  2. テスト期間をカバーする日付範囲を選択します。
  3. データエクスポートのアプリとサイトを選択します。
  4. データタイプ(コンバージョン、イベント、セッションなど)を選択します。
  5. 検証に関連するフィールドを含むように列を設定します。
  6. ダウンロード をクリックして、ユーザーレベルデータを含むCSVファイルを受け取ります。

検証のユースケース

確認すべき事項

  • イベントトラッキング: トリガーされたすべてのイベントが正しい名前とタイムスタンプで表示されることを確認します。
  • イベント属性: イベント属性が期待値で正しく送信されていることを検証します。
  • 収益トラッキング: 収益金額、通貨コード、購入詳細を検証します。
  • カスタムユーザーID: カスタムユーザーIDが端末に適切に関連付けられていることを確認します。
  • 端末識別子: 正しい端末識別子(IDFA、IDFV、GAID)が取得されていることを検証します。
  • アトリビューションデータ: アトリビューションソースとキャンペーンパラメーターが正しいことを確認します。

SDK監査レポート

本番リリース前に実行可能な解決推奨事項とともに実装の問題を特定する 自動化された連携検証ツールです。

SDK監査の概要

目的と範囲

SDK監査レポートは過去3日間にアプリから受信したデータを分析し、 連携の問題を自動的に検出してトラブルシューティングガイダンスを提供します。

監査項目:

  • セッショントラッキング: アプリがユーザーセッションをレポートしていることを確認します (アトリビューションを可能にする基本的なSDK/S2S機能)。
  • イベントトラッキング: アプリがアプリ内イベントと収益を正しくレポートしていることを確認します。
  • 収益のベストプラクティス: 収益トラッキングが推奨される実装パターンに従っていることを検証します。
  • 遅延ディープリンク: DDLの有効化状況を確認します。
  • オプション機能: トラッキング機能を向上させる可能性のある不足しているオプション機能を特定します。

SDK監査の実行

監査実行手順

1

監査レポートの実行

  1. Developer Tools → テスティングコンソールに移動します。
  2. 右上隅の 監査を実行 ボタンをクリックします。
  3. 監査が分析を完了するまで待ちます(通常数分かかります)。

Run SDK Audit

2

問題のレビューと解決

  1. 完成した監査レポートをCSV形式でダウンロードします。
  2. すべてのアプリとプラットフォームにわたって特定された問題のリストをレビューします。
  3. 問題タイプ(エラー、警告、情報)と機能の関連性に基づいて修正の優先順位を付けます。
  4. エラー説明 フィールドの推奨事項に従って問題を解決します。

問題の優先順位付け: 実装された機能によっては、すべての問題が重大または関連するわけではありません。 検証名 を確認して、実装しないことを選択したオプション機能かどうかを判断してください。 その場合は、エラーメッセージを安全に無視できます。


監査レポートの理解

レポートの構造

SDK監査レポートは、トラブルシューティングと解決のための文脈情報とともに 連携の問題のリストを表示します。

SDK Audit Report Structure

説明
アプリ名 Singularプラットフォームで設定されたアプリ名
アプリバンドル アプリバンドル識別子(例:com.example.appname)
プラットフォーム iOS、Android、またはAmazon
アプリバージョン 利用可能な場合のアプリバージョン番号
検証名 問題が見つかった連携エリア(例:"カスタムユーザーID"、"収益イベント")
タイプ

問題の重要度レベル:

  • エラー: 連携の機能を妨げる重大な問題 - 本番リリース前に必ず修正する必要があります (例:ユーザーセッションが受信されない)。
  • 警告: 連携は機能するがベストプラクティスに違反している - 最適なトラッキングのために修正を推奨します(例:カスタムユーザーIDの欠如)。
  • 情報: 実装されていないオプション機能 - 要件に基づいて意図的である場合があります(例:DDLが有効でない)。
エラー説明 詳細な問題情報と推奨される解決手順

問題解決ガイドライン

優先度レベル

エラータイプの問題(重大)

解決の優先度

本番リリース前に必ず解決してください - これらの問題はコア機能を妨げます。


よくあるエラー問題

  • セッションが受信されない: SDKが初期化されていないか、Singularにデータを送信していない
  • 無効なSDKキー: 誤ったSDKキーまたはシークレットが設定されている
  • プラットフォームの不一致: アプリが誤ったプラットフォーム識別子をレポートしている

解決方法

  1. 具体的なガイダンスについてエラー説明を確認します。
  2. 影響を受けるプラットフォームのSDK連携ガイドを参照します。
  3. SDK設定と初期化コードを検証します。
  4. 修正後にテスティングコンソールを使用して再テストします。
  5. 新しいSDK監査を実行して解決を確認します。
警告タイプの問題(推奨)

解決の優先度

ベストプラクティスのために解決を推奨 - 連携は機能するが改善が推奨されます。


よくある警告問題

  • カスタムユーザーIDなし: クロスデバイストラッキングのカスタムユーザーIDが実装されていない
  • 収益トラッキングの問題: 収益イベントがベストプラクティスに従っていない
  • イベント属性の欠如: 推奨属性なしでイベントがトラッキングされている

解決方法

  1. 不足機能のビジネスインパクトを評価します。
  2. 機能の実装ドキュメントを確認します。
  3. 機能が要件に合致する場合は実装します。
  4. テスティングコンソールを使用して実装をテストします。
情報タイプの問題(オプション)

解決の優先度

確認して決定してください - 特定のユースケースに適用されない場合があるオプション機能です。


よくある情報問題

  • 遅延ディープリンクが無効: DDLがマーケティング戦略に関連しない場合がある
  • アンインストールトラッキングが未設定: 要件に基づいてアンインストールトラッキングがオプションの場合
  • オプションのSDK機能: 基本機能には重要でない追加機能

解決方法

  1. 検証名を確認してオプション機能を特定します。
  2. 機能がビジネス要件に関連しているかどうかを判断します。
  3. 関連しない場合は、問題を安全に無視します。
  4. 関連する場合は、SDKドキュメントに従って実装します。

参考リソース

SDK連携、テスト、トラブルシューティングのための完全なドキュメントです。

関連ドキュメント