Singular SDK統合のテスト
本番リリース前に、テストコンソール、エクスポートログ、SDK監査レポートを使用してSingular SDKとS2S統合を検証するための包括的なガイドです。
Singular SDKをアプリに統合した後、またはサーバー間統合を構築した後、本番リリース前にSingularへのデータ送信を検証することは不可欠です。
| 対象者 | 開発者、QAエンジニア |
| 前提条件 |
|
テストツールの概要
利用可能なテスト方法
Singularは統合検証用に3つの補完的なツールを提供しており、それぞれが特定のテストフェーズと要件に対応しています。
| ツール | 目的 | タイミング | 最適 |
|---|---|---|---|
| テストコンソール | テストデバイスからリアルタイムでライブデータをストリーミングし、導入時に即座に機能検証を行うことができます。 | リアルタイム | アクティブな開発とデバッグ |
| ログのエクスポート | テスト後に詳細な分析と検証のためにユーザーレベルのデータをダウンロード | ~約3時間の遅延 | 履歴データ分析 |
| SDK監査 | 統合の問題を自動的に特定し、解決のための実用的な推奨事項を提示 | 直近3日間のデータ | 包括的な検証 |
テスト戦略:テストコンソールをアクティブな開発中に使用して即座にフィードバックし、ログをエクスポートして詳細な検証を行い、SDK Audit を本番リリース前の最終的な包括的検証に使用します。
テストコンソール
登録されたテストデバイスからライブデータをストリーミングするリアルタイムテストツール。
前提条件
テスティングコンソールを使用する前に
Testing Console の検証を開始する前に、以下の要件が満たされていることを確認してください:
- クリーンなテストデバイス:正確なインストール帰属テストのために、テストアプリケーションをインストールしたことのないデバイスを使用する。
- イベントテストプラン:テストセッション中に検証するイベントと属性のリストを準備する。
- iOSのATT認識:App Tracking Transparency(ATT)プロンプトが表示されるかどうかを判断し、テストの識別子タイプ(IDFV対IDFA)に影響を与える。
重要な制限事項:Testing Console は履歴レポートを提供しません。コンソールに表示するには、デバイスが選択され、🟢 Live インジケータがアクティブになっている間にイベントが発生する必要があります。
ステップ 1:テストデバイスの追加
デバイスの登録
リアルタイムのイベントストリーミングに適切なデバイス識別子を使用して、テストコンソールにテストデバイスを登録します。
登録ステップ
- Singular プラットフォームのDeveloper Tools → Testing Consoleに移動します。
- Add Deviceボタンをクリックします。
-
ドロップダウンからデバイスタイプを選択
- Androidを選択します:Google Advertising ID (GAID/aifa)、AppSetID (asid)、AndroidID (andi)の順に選択してください。
- iOS:利用可能な場合はIDFAを使用(ATTの同意が必要)、そうでない場合はIDFVを使用
- デバイスから取得したデバイスIDを入力
- 識別しやすいように特徴的なデバイス名を入力
- デバイスを保存]をクリックして登録を完了します。
Androidデバイス識別子
推奨される方法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 を記録する:
// Example in Swift
print("IDFA", ASIdentifierManager.shared().advertisingIdentifier.uuidString)
// Example in Objective-C
NSString *IDFA = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
NSLog(@"IDFA: %@", IDFA);
IDFV キャプチャ:ATTが実装されていないか、トラッキングが許可されていない場合に使用する。
// Example in Swift
print("IDFV", UIDevice.current.identifierForVendor!.uuidString)
// Example in Objective-C
NSString *IDFV = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
NSLog(@"IDFV: %@", IDFV);
ステップ 2: SDK の初期化をテストする
セッショントラッキングの検証
最初の検証ステップでは、SDKが適切に初期化され、セッションイベントの送信を検証することにより、Singularプラットフォームと通信していることを確認します。
重要な最初のテストセッションイベントはSDKの初期化が成功したことを示し、Singularがアトリビューションをトラッキングできるようにします。セッションイベントがなければ、アトリビューションは機能しません。
初期化テストのステップ
- イベントログで、デバイスドロップダウンからデバイス名を選択し、確認 🟢 ライブインジケータが表示される
- テストプラットフォームからアプリを初期化するか、デバイスでアプリを開きます。
- SDKの初期化が成功したことを示すセッションイベントがEvents Logに表示されることを確認します。
ステップ 3: 統合機能のテスト
機能固有の検証
SDK の初期化を確認した後、Testing Console のリアルタイムモニタリングを使用して、統合に実装された特定の機能を検証します。
目的
クロスデバイスのユーザートラッキングとアナリティクスのために、カスタムユーザーIDがSingularに正しく送信されることを検証します。
テスト手順
- テストコンソールにデバイスを登録
- テストデバイスでアプリを開く
- 自動的に送信されない場合は、ユーザーID(ログインなど)を送信するアクションをトリガーする
-
テストコンソールでイベントの詳細を展開し、
custom_user_idフィールドに期待される値が含まれていることを確認する。
トラブルシューティング
カスタムユーザーIDが表示されない場合:
- ユーザーIDを設定するメソッドが、アプリフローの適切なタイミングで実際に呼び出されることを確認する。
- テスティングコンソールで見えるように、"setting_custom_user_id "という名前の Singular SDK イベントを追加する。
- ユーザーIDの割り当てを確認するためにSDKのログをチェックする
目的
イベントトラッキングの実装が正しい名前と属性のイベントを Singular に送信することを確認する。
テスト手順
SDKインテグレーションで実装された各イベントについて
- アプリでイベントをトリガーし、テストコンソールに正しい名前でイベントが表示されることを確認します。
- イベント行をクリックして詳細を展開し、イベントデータセクションに期待される属性が含まれていることを確認します。
トラブルシューティング
イベントが表示されない場合
- デバイスがテストコンソールに完全に登録された後にアプリが開いたことを確認する。
- イベントのエクスポートログを確認する(~3時間の遅延の後に利用可能
- イベントをトリガーするコードがアプリ内で適切に実行されたことを確認する。
その他のリソース
目的
収益トラッキングの実装が、購入金額、通貨、追加の収益詳細を正しくレポートすることを検証する。
テスト手順
実装された各収益イベントタイプについて
- アプリで収益イベントをトリガーし、テストコンソールにイベントが表示されることを確認します。
-
イベント行を展開し、以下のフィールドが存在することを確認します:
-
pcc- 通貨コード(例:USD、EUR -
r- 収益金額 - 追加収益イベント属性(実装されている場合
-
デフォルトの収益イベント名:収益イベントにカスタム名が割り当てられていない場合、__iap__ (デフォルト収益イベント名)と表示されます。
その他のリソース
目的
ディープリンクの実装がシングラーリンクを正しく処理し、ユーザーを意図したアプリ内目的地に誘導することを確認します。
前提条件このテストでは、キャンペーントラッキングにシンギュラーリンクを使用している組織を想定しています。
1.テスト先の設定
- Settings(設定) →SingularプラットフォームのApps(アプリ)に移動する。
- アプリを見つけ、クリックして設定を開きます。
- SDK統合で認識されたデスティネーションハンドラコードに一致するディープリンクデスティネーションを追加します。
2.テストリンクを作成する
- Attribution → Manage Linksに移動し、アプリを選択します。
- Create Linkをクリックします。
- リンクタイプ]で[カスタムソース]を選択し、[ソース名]で[メール]を選択します。
- リンク名を入力
- リンク設定とリダイレクトセクションを展開する
- ディープリンクのドロップダウンからテスト先を選択
- 他のプラットフォームのフォールバック先フィールドにウェブサイトのURLを入力する。
- 生成]をクリックし、[クリックスルー追跡リンク]フィールドからリンクをコピーします。
3.リンク機能のテスト
- アプリがテストデバイスにインストールされていることを確認します。
- コピーしたリンクをテスト端末にメールで送信
- デバイスから電子メールを開き、リンクをクリックします。
- テストコンソールで、セッション引数にディープリンクの値が表示されることを確認する。
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>ドキュメントを参照してください。
目的
遅延ディープリンクがアプリのインストール前にクリックされたリンクを適切に処理し、初回起動時にユーザーを意図した目的地に誘導することを検証する。
テスト手順
- テストコンソールでセッションイベントを確認し、遅延ディープリンクが有効になっていることを確認する。
- 上記のディープリンクの手順に従って、テスト先とリンクを設定します。
- テストデバイスからアプリをアンインストールする
- デバイスの広告識別子をリセットする
- テストコンソールに新しい識別子を追加する
- ディープリンクをデバイスに電子メールで送信し、デバイスからリンクをクリックする
- リンクはアプリストアにリダイレクトされるはずです - アプリをインストールしてください(ローカルビルドの場合、ストアバージョンの代わりにAndroid StudioまたはXcodeからサイドロードしてください)。
- インストール後、アプリを開く - ディープリンクで指定された目的のページ/コンテンツが表示されるはずです。
- テストコンソールで、延期されたディープリンクの値が最初のセッションイベントに表示されることを確認してください。
目的
アンインストール追跡の実装が、解約分析のためにアプリのアンインストールを正しく検出し、レポートすること を検証すること。
テストの複雑さ:アンインストール追跡の検証は、Singular がアンインストールを報告する Google/iOS サービスに依存しているため、他の SDK 機能よりも複雑です。アンインストールイベントをリアルタイムで確認したり、検証に Testing Console を使用したりすることはできません。
前提条件
テストの前に、以下を確認してください:
- Singularに送信されたFCM/APNSトークン(Android SDKを参照してください:アンインストールのトラッキングと iOS SDK を参照してください:アンインストールのトラッキング)
- アプリの設定ページに入力されたFCMサーバーキー(Android)またはiOSプッシュ証明書
テスト手順
- アプリを実際のデバイス(エミュレータではない)にインストールする。
- アプリを開き、Singularに登録されたアプリをインストールする
- デバイスからアプリをアンインストールする
-
以下のいずれかの方法でアンインストールイベントを確認する:
- 属性ログをエクスポートし、アンインストールイベントを見つける(表示されるまでに数日かかる場合があります)。
- 内部 BI システムにポストバックが設定されている場合、アンインストールに関するポストバックを受信する
- 検証については、Singular サポートまたはカスタマーサクセスマネージャーにお問い合わせください。
重要:アンインストールイベントの検証を待つ間、デバイス ID をリセットしたり、アプリを再インストールしたりしないでください。
テストコンソールのトラブルシューティング
よくある問題
よくある原因
デバイスが登録され、イベントがイベントログに表示されない場合、以下を確認してください:
- ライブモニタリングが必要です:テストコンソールは、デバイスが選択され、🟢ライブインジケータが表示されている場合にのみ、イベントをライブ表示します。過去のイベントを取得しない
- アプリが開いている:セッション・イベントを生成するためにテスト・デバイスでアプリが開かれていること。
- イベントのトリガー:特定のイベントをテストする場合は、アプリでトリガーアクションが実行されていることを確認する。
- デバイス ID の正確さ:テストコンソールに入力されたデバイスIDが正しいことを再確認する。
- デバイスIDタイプ:ATTプロンプトのないiOSでは、IDFAを使用できません。
SDKバージョン12.0.0以上
Singular SDK 12.0.0から、_InstallReferrerイベントをテストする必要がなくなりました。アプリがストアにプッシュされると、SDKは自動的に_InstallReferrerデータを最初のセッションに配置します。テストコンソールでセッションが表示されることを確認するだけです。
SDKバージョン <12.0.0>
旧バージョンのAndroid SDKの場合、テストコンソールで_InstallReferrerイベントを確認し、適切なインストール属性を確認する必要があります。
検証ステップ
IDFA の精度を再確認する:
- トラッキング許可を付与した Singular Device Assist アプリ(iOS)を使用する。
- XcodeのデバッグコンソールでIDFAのログを取る
- App Tracking Transparency status "フィールドでエクスポートログ(1時間以上後)をチェック - 値0(Undetermined)は、ATTプロンプトが表示されないことを意味する。
設定のチェック
- デバイスの設定:設定 → プライバシー → トラッキングで "Allow Apps to Request to Track "が有効になっていることを確認。
- ATTプロンプト:テスト中にATTプロンプトが表示されたことを確認 - 表示されない場合、IDFAはトラッキングされていない
- IDFAのリセット:デバイスが以前に使用されていた場合、設定 → プライバシー → トラッキングで広告識別子をリセットする。
- SDKバージョン:最新のSingular SDKバージョンが正しく統合されていることを確認
- SDKの初期化:SDKがドキュメントに従ってAppDelegateまたはSceneDelegateで初期化されていることを確認します。
- エラーの確認:SDKの初期化やトラッキングエラーをXcodeコンソールで確認する。
以下の手順を行っても問題が解決しない場合は、Apple ATTのドキュメントを参照するか、Singularインテグレーションエンジニアに連絡してください。
削除プロセス
- テストコンソールでデバイスの横にある編集アイコンをクリックします。
- 表示されるサイドバーで、デバイスの削除をクリックします。
- 削除すると、すべてのイベントログが消去され、Singular からデバイスのアトリビューションデータが削除されます。
要件のリセット
同じデバイスでSDKインテグレーションを再テストするには、デバイスからローカルにキャッシュされたデータを削除し、Singularプラットフォームでデバイスのアトリビューションをクリアします。
Androidリセット手順
- アプリを終了し、実行中でないことを確認します。
- 設定メニューに移動します。
- アプリ」に移動し、アプリを長押しして「アプリ情報」を選択します。
- ストレージ]を選択し、[キャッシュの消去]と[データの消去]をクリックします。
- Testing Consoleでデバイスを選択し、Editアイコンをクリックし、Delete Deviceをクリックして属性を削除します。
iOSリセットの手順
- アプリを終了し、デバイスからアンインストールします。
- テストコンソールで、デバイスを選択し、「Edit(編集)」アイコンをクリックし、「Delete Device(デバイスの削除)」をクリックして属性を削除します。
再エンゲージメントテスト:テストデバイス(テストコンソールでアイアイコンを有効にしたもの)は、非アクティブウィンドウの要件から除外されるため、非アクティブ期間を待たずに、より簡単に再エンゲージメントのアトリビューションテストを行うことができます。
イベントログのインターフェース
デバイスを登録し、イベントを送信すると、テストコンソールのイベントログにイベントがリアルタイムで表示されます。
イベントの詳細
イベント行をクリックすると、アプリから送信されたイベントの詳細(すべてのパラメータと属性を含む)が表示されます。
iOS TestFlight の制限:Testing Console は、iOS TestFlight アプリをサポートしていません。TestFlight ビルドは、起動のたびに IDFV をリセットするため、ライブイベントのキャプチャができません。
ログのエクスポート
イベント発生から約 1 時間遅れで、テスト後に詳細な統合検証のためにユーザーレベルのデータをダウンロードします。
ログのエクスポートの概要
目的とタイミング
ログのエクスポート機能は、包括的な統合検証のために、コンバージョン(インストール)、イベント、セッション、属性の詳細を含むユーザーレベルのデータを手動でダウンロードできるようにします。
ベストプラクティス
- 日付の選択:データをダウンロードする前に、日付、アプリ、およびサイトが適切に選択されていることを再確認してください。
- データの遅延:ログデータのエクスポートは、リアルタイムより約3時間遅れます。
- ドキュメント:Export Logsの完全な使用手順については、Export Logs and User-Level Data FAQを参照してください。
ログをエクスポートする
データ取得プロセス
- SingularプラットフォームのAttribution → Export Logsに移動します。
- テスト期間の日付範囲を選択
- データをエクスポートするアプリとサイトを選択
- データタイプを選択(コンバージョン、イベント、セッションなど)
- 検証のために関連するフィールドを含むように列を設定します。
- ダウンロードをクリックして、ユーザーレベルのデータを含むCSVファイルを受け取る
検証の使用例
検証内容
- イベントのトラッキング:すべてのトリガーされたイベントが正しい名前とタイムスタンプで表示されることを確認する。
- イベント属性:イベント属性が期待される値で正しく送信されることを確認
- 収益トラッキング:収益金額、通貨コード、購入明細の検証
- カスタム・ユーザーID:デバイスに正しく関連付けられたカスタム・ユーザーIDを確認
- デバイス識別子:正しいデバイス識別子(IDFA、IDFV、GAID)がキャプチャされていることを確認します。
- アトリビューションデータ:アトリビューションソースとキャンペーンパラメータが正しいことを確認
SDK監査レポート
自動化された統合検証ツールで、本番リリース前に解決可能な推奨事項とともに実装上の問題を特定します。
SDK監査の概要
目的と範囲
SDK Audit Reportは、過去3日間にアプリから受信したデータを分析し、統合の問題を自動的に検出し、トラブルシューティングのガイダンスを提供します。
監査チェック
- セッション追跡:ユーザーセッションを報告するアプリを検証します(帰属を可能にする基本的なSDK/S2S機能)。
- イベントトラッキング:アプリがアプリ内イベントと収益を正しく報告しているか確認します。
- 収益のベストプラクティス:収益トラッキングが推奨される実装パターンに従っていることを検証します。
- ディファード・ディープ・リンキングDDL有効化ステータスの確認
- オプション機能:トラッキング機能を強化するオプション機能の欠落を確認します。
SDK監査の実行
監査実行ステップ
| 1 |
監査レポートの実行
|
| 2 |
レビューと問題解決
問題の優先順位付け:実装された機能によっては、すべての問題が重要または関連するとは限らない。バリデーション名を確認し、実装しないことを選択したオプション機能かどうかを判断する。 |
監査レポートを理解する
レポートの構造
SDK監査レポートは、トラブルシューティングと解決のためのコンテキスト情報とともに、統合問題のリストを表示します。
| 列 | 説明 |
|---|---|
| アプリ名 | Singularプラットフォームで設定されたアプリ名 |
| アプリバンドル | アプリバンドル識別子(例:com.example.appname) |
| プラットフォーム | iOS、Android、またはAmazon |
| アプリのバージョン | あればアプリのバージョン番号 |
| バリデーション名 | 問題が見つかった統合エリア(例:"カスタムユーザーID"、"収益イベント") |
| タイプ |
問題の深刻度レベル
|
| エラーの説明 | 問題の詳細情報と推奨される解決手順 |
問題解決ガイドライン
優先度レベル
解決優先度
本番リリース前に解決する必要があります- これらの問題はコア機能を妨げます。
一般的なエラーの問題
- セッションが受信されません:SDKが初期化されていないか、Singularにデータを送信していない
- 無効なSDKキー:SDKキーまたはシークレットが正しく設定されていない
- プラットフォームの不一致:アプリが誤ったプラットフォーム識別子を報告している
解決方法
- 具体的なガイダンスについては、エラーの説明を確認してください。
- 該当するプラットフォームのSDK統合ガイドを参照する
- SDKの構成と初期化コードを確認する
- 修正後、テスティングコンソールを使用して再テスト
- 新しいSDK Auditを実行して解決を確認する
解決優先度
ベストプラクティスのために解決すべきである。
よくある警告の問題
- カスタムユーザIDがない:クロスデバイス追跡のためのカスタムユーザーIDが実装されていない
- 収益トラッキングの問題収益イベントがベストプラクティスに従っていない
- イベント属性の欠落:推奨属性なしでトラッキングされたイベント
解決方法
- 欠落している機能がビジネスに与える影響を評価する
- 機能の実装ドキュメントをレビューする
- 要件に合致する機能があれば実装する
- テストコンソールを使用して実装をテストする
解決優先度
レビューと決定- 特定のユースケースに適用されないかもしれないオプション機能。
よくある情報の問題
- ディファード・ディープ・リンクの無効:DDL がマーケティング戦略に関連しない可能性がある
- アンインストール追跡が設定されていない:アンインストールトラッキングが設定されていない: アンインストールトラッキングは、要件に基づくオプションです。
- オプションの SDK 機能:基本機能にとって重要でない追加機能
解決方法
- 検証名をレビューしてオプション機能を特定する
- ビジネス要件に関連する機能かどうかを判断する
- 関連性がない場合、問題を無視する
- 関連性がある場合、SDKドキュメントに従って実装する
追加リソース
SDKの統合、テスト、トラブルシューティングのための完全なドキュメント。
関連ドキュメント
- Testing Console API Reference [BETA]- Programmatic Testing Consoleへのアクセス
- デバイスの帰属を検証する方法- 帰属の検証手順
- エクスポートログとユーザーレベルデータ FAQ- エクスポートログ使用ガイド
- Singular SDK/S2Sを始める- 初期統合の前提条件