Recommendationsを使用して Places Service をテスト

最終更新日: 2022-10-25
  • トピック:
  • Places
    このトピックの詳細を表示

多くの顧客や組織が世界中で POI を定義するので、Places Service がアプリケーションとどのようにやり取りするかをシミュレートしテストする方法を持つことが重要です。 この情報は、定義した POI とユーザーの現在の場所に基づいて正しくトリガーされる Places Service のエントリと出口をテストし、検証する方法を理解するのに役立ちます。

環境変数は位置信号と精度の要因になる可能性があるので、まず開発者ツールとシミュレーションされた位置エントリを使用してローカルで作業し、ベースライン結果を確立することをお勧めします。 目標は、すべてのロケーションイベントが正しく機能していることを検証することです。 場所のイベントが正しく検証されたら、ソリューションの統合(Analytics、Target、Campaign など)をテストできます。 テストアクティビティを支援するには、ポストバックを使用してSlackWeb フックを設定し、個々の開発環境に GPX ファイルを読み込む必要があります。

重要

この計画では、POI が Places Service UI と、Places 拡張機能の最新バージョンがインストールされ、正しく設定されています。 アクティブな地域の監視を行う場合は、地域の監視ソリューションが実装されていると想定します。 詳しくは、 Places 拡張機能, CoreLocation ドキュメント (iOSの場合 )、または Android ロケーションドキュメント.

手順 説明 期待される結果
1 Android がトラッキングロケーションへのアクセス権を付与するために、適切なマニフェストキーが入力されていることを確認します。 確認済み
1a 場所の更新がiOSで設定されていることを確認します。 また、場所を追跡するためのユーザー権限をリクエストするために、iOSで適切な plist キーが設定されていることを確認してください。 確認済み
2 iOSに設定されている監視モードを確認します。 連続モードでは、精度と永続性が向上しますが、バッテリの寿命が大幅に短縮されます。 大幅な変更または継続的な変更
3 複数の POI ライブラリを使用する場合は、Places 拡張機能で適切なライブラリがExperience Platform Launchされていることを確認します。 確認済み
4 Mobile Core および Places の最新バージョンの拡張機能が、Gradle または CocoaPods を介してアプリにバンドルされていることを確認します。 確認済み — 最近の更新について詳しくは、 リリースノート。
5 テスト用に正しい環境が設定されていることを確認します。 Launch 環境 ID は、Launch 開発環境と一致する必要があります。 確認済み
6 テストする各 POI の GPX ファイルを作成します。 GPX ファイルは、場所のエントリをシミュレートするローカル開発環境で使用できます。 GPX ファイルの作成と使用について詳しくは、次を参照してください。
iOS Simulator の GPX ファイル [ 閉じました ]
https://mapstogpx.com/mobiledev.php
モバイルアプリでの場所のテスト
GPX ファイルが作成され、アプリケーションプロジェクトに読み込まれます。
7 他の操作を行わなくても、Android Studio または XCode からアプリケーションを起動し、適切なアラートを表示して、トラッキング場所のアクセスをリクエストできます。 次をクリック: 常に許可 権限。

デバイスシミュレーターを使用する代わりに、コンピューターに接続された実際のデバイスを使用することをお勧めします。
IDE を介して読み込まれたアプリケーションに、場所の要求プロンプトが表示されます
8 場所権限が許可された後。 Places SDK はデバイスの現在の場所を取得し、地域監視コードは、現在の場所から最も近い 20 個の POI の監視を開始する必要があります 表の下のログサンプルを参照してください。
9 XCode または Android Studio の異なる場所を切り替えると、特定の POI のエントリイベントが発生する必要があります。 POI へのエントリ時には、次のログが必要になります。 表の下のログサンプルを参照してください。
10 地域モニターが近くの POI を見つけたら、場所 ping を送信してテストする必要があります。 Launch で、 Places 拡張機能を使用してジオフェンスエントリに基づくトリガーを作成する新しいルールを作成します。 次に、Mobile Core を使用してポストバックを送信し、新しいアクションを作成します。 SlackWebhook アプリを作成すると、場所のエントリと出口を確認できます。 SlackWebhook アプリの作成について詳しくは、 受信ウェブフックを使用してメッセージを送信する。
10a Launch で、Places 拡張機能に次のデータ要素を追加したことを確認します。
現在の POI 名
現在の POI 緯度
現在の POI が長い
最終入力日
最後に入力した値
最終入力日時(長)
最後の出口名
前回の離脱
最後の終了(長)
タイムスタンプ
10b Event = Places → POI を入力を使用して新しいルールを作成します。
10c アクションの作成= Mobile Core → Postback
10d Slackアプリの Webhook URL を使用します ( 例:https://hooks.slack.com/services/TKN5FKS68/BNFP7SVD…)。
10e 投稿の本文は次のようになります。 {text: User is in POI - {%%Last Entered POI Name%%} in {%%Last Entered POI City%%} additional information: Radius:{%%Last Entered POI Radius%%} Timestamp: {%%timestamp%%}}.
ここで作成した特定のデータ要素を使用していることを確認します。
10f Launch で、すべての新しいデータ要素およびルールの変更を公開するようにしてください。 (Launch インターフェイスの右上にある作業用開発ライブラリを選択する必要があります)。
11 開発者 IDE で GPX の場所を反転して、アプリケーションを起動し、再びテストします。 開発環境で異なるSlackを選択すると、各 POI のエントリを示すロケーション通知が表示されるようになりました。
クイックサマリポイント
​特定の POI の場所に移動する必要なく、このテストをすべてローカルで実行できます。 検証テストは、アプリケーションが正しく設定され、その場所に対する正しい権限を受け取っていることを確認するのに役立ちます。

また、この検証は、定義された POI がお使いの地域監視の実装で正しく機能しているかどうかの信頼性を提供します。 この手順の後、Campaign でのメッセージのテストを開始し、POI の入口と出口に基づいて適切なメッセージが表示されるかどうかを確認します。
Places Service を使用したAdobe Campaign Standardのアプリ内メッセージのテスト
12 メインの Campaign ダッシュボードで、新しいアプリ内メッセージを設定します(タイプ= broadcast)。
12a 「トリガー」で、 Places イベントタイプ —トリガーとしての入口.
12b 選択 Places カスタムメタデータ 追加のフィルターとして、「POI タイプ=最後に入力された POI 」を使用します。
当社は 最終入力日 を POI タイプとして使用するのは、ほとんどの場合、 最終入力日 は、 現在の POI.

現在の POI ​​は、重複する POI ジオフェンスがある場合にのみ使用してください。 この場合、これらの POI をランク付けし、​現在の POI ​​は、ユーザーが現在いる可能性のある 2 つまたは 3 つのジオフェンスのうち、上位のランクの POI を表示します。
12c メッセージを受け取る POI を絞り込むのに役立つカスタムメタデータキーを選択します。
12d 頻度と期間は、1 ~ 2 日に制限します。これにより、条件が望ましくない場合は、短い期間でトリガーの有効期限が切れます。
12e 「常に/1 回」または「クリックスルーまで」で、 常に 複数の場所でテストできるようにします。 適切なメタデータ条件を満たす場所の変更をシミュレートすると、アプリ内メッセージが常に表示されます。
12f 表示の場合は、「ローカル通知」以外のオプションを選択します。 これにより、アプリをフォアグラウンドでテストする際に、より簡単に確認できます )。
12g アプリ内メッセージを準備/確認し、デプロイします。
13 開発環境で、新しいキャンペーンルールをダウンロードするには、終了してアプリケーションを再度起動します。 新しい Campaign ルールファイルをデバイスにダウンロードするには、アプリケーションを再度完全に起動する必要があります。
14 開発アプリケーションで、以前に作成した GPX ファイルを使用して場所を切り替えます。 設定した前の条件に基づいて、アプリ内メッセージが表示されます。
15 次のテストでは、基本的に以前と同じ手順をコピーしますが、今回は LOCAL NOTIFICATION をテストします。 期待される結果は、一致する条件が満たされるたびにローカル通知が表示されることです。
16 新しい In-App-Message を設定します(タイプ= broadcast)。
16a 「トリガー」で、 Places イベントタイプ - エントリをトリガー.
16b 追加のフィルターとして「 Places カスタムメタデータ」を選択します(を使用)。 POI タイプ = 最後に入力した POI.
16c メッセージを受け取る POI を絞り込むのに役立つカスタムメタデータキーを選択します。
16d 頻度と期間については、1 ~ 2 日のみを保持し、条件が望ましくない場合は、短い期間でトリガーの有効期限が切れるようにします。
16e 「常に/1 回」または「クリックスルーまで」の場合、 常に.
16f 表示タイプとして、「 」を選択します。 ローカル通知.
16g アプリ内メッセージを準備/確認し、デプロイします。
17 開発者環境で、デバイスに接続し、 再生 をビルドに追加します。 その場所が機能していることを確認したら、アプリケーションをバックグラウンドにして、Xcode または Android Studio で場所の切り替えを続行します。 場所の変更を示すコンソール読み取りアウトが引き続き表示され、トリガーで設定した条件に応じて、ローカル通知も表示されます。 (1 ~ 2 秒の遅延が生じる場合があります)。 期待される結果は、一致する条件を満たすたびにローカル通知が表示されることです。
概要ポイント
この段階では、ローカル環境に POI エントリが表示されます。 また、POI の仕組みに基づくキャンペーンからのメッセージも表示されます。 エラーが発生した場合は、Slack通知が発生しなかったかどうかを確認します。 Slackメッセージがない場合は、新しい場所のエントリが記録されていない可能性があるので、アプリケーションコンソールを確認します。 結果が正常に完了した場合は、アプリケーションが正しく実行されていること、および Places Service と Campaign のメッセージングサービスも正しく動作していることを確認できます。
オンサイトテスト
場所でテストする際には、それほど変更しないでください。 Slack ポストバックをアクティブにしておくと、デバイスがその場所のエントリと終了を取得しているかどうかを把握するのに役立ちます。
18 Wi-Fi および携帯電話が無効になっているデバイスでテストを実施し、POI 地域で 1 回有効にします。 エラーが発生した場合は、ジオフェンスのエントリと通知をSlackで受け取るかどうかをメモしておきます。 タイムスタンプ通知のSlackとは
19 携帯電話のみを有効にし、Wi-Fi をオフにしてテストを実施します。
20 携帯電話と Wi-Fi の両方をオンにしてテストを実施します。
概要ポイント
オンサイトテストは、開発テストと密接に一致する必要があります。 POI ジオフェンスでの滞在時間、セル信号の可用性、周辺の Wi-Fi アクセスポイントの強さなど、ユーザーの場所の決定に役立つ環境要因が存在することに注意してください。

ログサンプル

手順 8 : 場所の更新中に予期されるiOSおよび Android のログ

iOS

[AdobeExperienceSDK DEBUG <Places>]: Requesting 20 nearby POIs for device location (<lat>, <longitude>)
[AdobeExperienceSDK DEBUG <Places>]: Response from Places Query Service contained <n> nearby POIs

Android

PlacesExtension - Dispatching nearby places event with n POIs

手順 9 : イベント中に予期されるiOSおよび Android のログ

iOS

[AdobeExperienceSDK TRACE <Places>]: Dispatching Places region entry event for place ID <poiId>

Android

PlacesExtension -  Dispatching Places Region Event for <poi name> with eventType entry

このページ