場所を使用

アプリでPlaces位置情報サービスを使用する方法を説明します。

Adobe Experience Platform Data Collection Places Serviceは、位置情報サービスであり、位置情報を認識したモバイルアプリが位置情報のコンテキストを把握できるようにします。 このサービスでは、使いやすい豊富なSDKインターフェイスと、柔軟性の高いPOI (Point of Interest)データベースを利用できます。

前提条件

  • すべてのパッケージの依存関係は、Xcode プロジェクト内に配置されます。
  • AppDelegateに登録済みの拡張機能。
  • 開発appIdを使用するようにMobileCoreを設定しました。
  • インポートしたSDK:
  • 上記の変更でアプリを正常に構築し、実行しました。

学習目標

このレッスンでは、次のことをおこないます

  • Places サービスでPOIを定義する方法について説明します。
  • Places拡張機能を使用してタグプロパティを更新します。
  • 位置情報イベントを取得するためにスキーマを更新します。
  • Assuranceで設定を検証します。
  • Places拡張機能を登録するには、アプリを更新します。
  • アプリのPlaces サービスから位置情報トラッキングを実装します。

セットアップ

Places サービスがアプリ内およびモバイル SDK内で機能するには、設定を行う必要があります。

場所を定義

Places サービスでは、いくつかの位置情報を定義します。

  1. データ収集UIで、Places​を選択します。
  2. 詳細を選択します。
  3. コンテキストメニューから、ライブラリの管理​を選択します。
    ​ ライブラリの管理 {modal="regular"}
  4. ライブラリの管理 ダイアログで、新規​を選択します。
  5. ライブラリを作成 ダイアログで、名前​を入力します(例:Luma)。
  6. 「確認」を選択します。
    ​ ライブラリを作成 {modal="regular"}
  7. ライブラリの管理 ダイアログを閉じるには、閉じる​を選択します。
  8. POI Management​に戻り、POIsの読み込み​を選択します。
  9. 場所の読み込み ダイアログで「開始」を選択します。
  10. ライブラリのリストから​ Luma ​を選択します。
  11. 「次へ」を選択します。
    ​ ライブラリを選択 {modal="regular"}
  12. Luma POIs ZIP ファイル ​をダウンロードし、コンピューター上の場所に抽出します。
  13. 場所を読み込み ダイアログで、抽出したluma_pois.csv ファイルを​ CSV ファイルを選択 – ファイルをドラッグ&ドロップ ​します。 検証の成功 - が表示され、CSV ファイルが正常に検証されました。
  14. 「インポートを開始」を選択します。 成功 - 新しいPOIが6つ追加されました。
  15. 完了​を選択します。
  16. POI Management​では、新しい6つのLuma ストアがリストに追加されます。 リスト ​ リスト ​とマップビュー を切り替えることができます。
    場所リスト ​ {modal="regular"}。

Places拡張機能のインストール

  1. Tags​に移動し、モバイル タグ プロパティを見つけて、プロパティを開きます。

  2. 拡張機能​を選択します。

  3. カタログ​を選択します。

  4. Places​拡張機能を検索します。

  5. 拡張機能をインストールします。

    場所を追加

  6. 拡張機能のインストール ダイアログで、次の操作を行います。

    1. 「ライブラリを選択」リストから「Luma」を選択します。
    2. 作業ライブラリが選択されていることを確認します(例:初期ビルド)。
    3. 「ライブラリに保存」を選択し、​​ ライブラリに保存​​ から ​をビルドします。
      Places拡張機能をインストールします {modal="regular"}。
  7. ライブラリが再構築されます。

スキーマの検証

​ スキーマの作成で定義されているスキーマに、POIと位置情報データを収集するために必要なフィールドグループとクラスが組み込まれているかどうかを確認します。

  1. データ収集インターフェイスに移動し、左側のパネルから「スキーマ」を選択します。
  2. 上部バーから「参照」を選択します。
  3. スキーマを選択して開きます。
  4. スキーマエディターで、コンシューマーエクスペリエンスイベント​を選択します。
  5. オブジェクトとフィールドを持つ​placeContext オブジェクトが表示され、POIのインタラクションと位置情報データを取得できます。
    ​ スキーマの場所 {modal="regular"}

タグプロパティを更新する

Places拡張機能には、位置情報イベントを監視する機能が用意されており、これらのイベントに基づいてアクションをトリガーできます。 この機能を使用すると、アプリに実装する必要があるAPI コーディングを最小限に抑えることができます。

データ要素

まず、いくつかのデータ要素を作成します。

  1. データ収集UIでタグプロパティに移動します。

  2. 左側のパネルから「データ要素」を選択します。

  3. 「データ要素を追加」を選択します。

  4. データ要素を作成​画面で、名前(例:Name - Entered)を入力します。

  5. 拡張機能 リストから​ 場所 ​を選択します。

  6. データ要素タイプ リストから​ 名前 ​を選択します。

  7. TARGET​の下の​ 現在のPOI ​を選択します。

  8. 「ライブラリに保存」を選択します。
    データ要素 {modal="regular"}

  9. 以下の表の情報を使用して、手順4~8を繰り返し、追加のデータ要素を作成します。

    table 0-row-4 1-row-4 2-row-4 3-row-4 4-row-4 5-row-4
    名前 拡張機能 データ要素タイプ ターゲット
    Name - Exited Places 名前 前回離脱したPOI
    Category - Current Places カテゴリ 現在の POI
    Category - Exited Places カテゴリ 前回離脱したPOI
    City - Current Places 市区町村 現在の POI
    City - Exited Places 市区町村 前回離脱したPOI

    次のデータ要素のリストが必要です。

    ​ データ要素のリスト ​ {modal="regular"}

ルール

次に、これらのデータ要素を操作するルールを定義します。

  1. タグプロパティで、左側のパネルから「ルール」を選択します。

  2. 「ルールを追加」を選択します。

  3. ルールを作成​画面で、ルールの名前(例:POI - Entry)を入力します。

  4. 「イベント」の下の「 追加」を選択します。

    1. 拡張機能 リストから​ Places ​を選択し、イベントタイプ リストから​ Enter POI ​を選択します。
    2. 「変更を保持」を選択します。
      ​ タグイベント ​ 。
  5. 「アクション」の下の「 追加」を選択します。

    1. 「拡張機能」リストから「モバイルコア」を選択し、リスト「アクションタイプ」から「データを添付」を選択します。 このアクションは、ペイロードデータを添付します。

    2. JSON ペイロード​に、次のペイロードを貼り付けます。

      code language-json
      {
          "xdm": {
              "eventType": "location.entry",
              "placeContext": {
                  "geo": {
                      "city": "{%%City - Current%%}"
                  },
                  "POIinteraction": {
                      "poiDetail": {
                          "name": "{%%Name - Current%%}",
                          "category": "{%%Category - Current%%}"
                      },
                      "poiEntries": {
                          "value": 1
                      }
                  }
              }
          }
      }
      

      Dataを選択して、{%% ... %%}個のデータ要素プレースホルダー値をJSONに挿入することもできます。 ポップアップダイアログでは、作成した任意のデータ要素を選択できます。

    3. 「変更を保持」を選択します。
      ​ タグ アクション ​ {modal="regular"}

  6. 「モバイルコア – データを添付」アクションの横にある「 追加」を選択します。

    1. 拡張機能 リストから​ Adobe Experience Platform Edge Network ​を選択し、Edge Network​にイベントを転送します。 このアクションにより、イベントとその他のペイロードデータがPlatform Edge Networkに確実に転送されます。
    2. 「変更を保持」を選択します。
  7. ルールを保存するには、ライブラリに保存​を選択します。

    ​ ルール ​ {modal="regular"}

別のルールを作成してみましょう

  1. ルールを作成​画面で、ルールの名前(例:POI - Exit)を入力します。

  2. 「イベント」の下の「 追加」を選択します。

    1. 拡張機能 リストから​ 場所 ​を選択し、イベントタイプ リストから​ POI ​を終了します。
    2. 「変更を保持」を選択します。
  3. 「アクション」の下の「 追加」を選択します。

    1. 「拡張機能」リストから「モバイルコア」を選択し、「アクションタイプ」リストから「データを添付」を選択します。

    2. JSON ペイロード​に、次のペイロードを貼り付けます。

      code language-json
      {
          "xdm": {
              "eventType": "location.exit",
              "placeContext": {
                  "geo": {
                      "city": "{%%City - Exited%%}"
                  },
                  "POIinteraction": {
                      "poiExits": {
                          "value": 1
                      },
                      "poiDetail": {
                          "name": "{%%Name - Exited%%}",
                          "category": "{%%Category - Exited%%}"
                      }
                  }
              }
          }
      }
      
    3. 「変更を保持」を選択します。

  4. 「モバイルコア – データを添付」アクションの横にある「 追加」を選択します。

    1. 拡張機能 リストから​ Adobe Experience Platform Edge Network ​を選択し、Edge Network​にイベントを転送します。
    2. 「変更を保持」を選択します。
  5. ルールを保存するには、ライブラリに保存​を選択します。

    ​ ルール ​ {modal="regular"}

タグのすべての変更が公開されるようにするには

  1. ビルドするライブラリとして​ Initial Build ​を選択します。
  2. ビルド​を選択します。
    ​ ライブラリを作成 {modal="regular"}

Assuranceでの設定の検証

Assuranceで設定を検証するには:

  1. Assurance UIに移動します。

  2. 左側のパネルで利用できない場合は、左側のパネルで「設定」を選択し、イベント​の横の「 追加」を選択し、PLACES サービス​の下の「マップとシミュレート」を選択します。

  3. 「保存」を選択します。

  4. 左側のパネルで「マップとシミュレート」を選択します。

  5. マップをPOIの1つの場所に移動します。

  6. ​ ギア ​を選択してPOIの読み込みをシミュレーションします。 POIは円とピンで識別されます。

  7. POIの選択。

  8. ポップアップから、 歯車 エントリイベントをシミュレート​を選択します。

    ​ エントリイベントをシミュレート ​ {modal="regular"}

  9. 左側のパネルから「イベント」を選択すると、シミュレートしたイベントが表示されます。

    AJO Decisioningの検証 {modal="regular"}

アプリにPlacesを実装する

前のレッスンで説明したように、モバイルタグ拡張機能をインストールすると、設定のみが提供されます。 次に、Places SDKをインストールして登録する必要があります。 これらの手順が明確でない場合は、SDKのインストール ​ セクションを確認してください。

NOTE
Install SDKs セクションを完了した場合、Places SDKは既にインストールされているため、この手順をスキップできます。
IMPORTANT
アプリでMaps SDK for Androidを設定するには、使用に伴う費用が発生する場合に請求を設定する必要があります。 一意のアプリケーション IDとSHA-1 キーを使用して、コストを制限できます。 詳しくは、Android用SDKのマッピング ​を参照してください。 請求やコストの発生を設定しない場合は、このレッスンをスキップしてください。
iOS
  1. Xcodeで、AEP Placesがパッケージ依存関係のパッケージのリストに追加されていることを確認します。 Swift パッケージマネージャーを参照してください。

  2. Xcode プロジェクトナビゲーターで​Luma > Luma > AppDelegate​に移動します。

  3. AEPPlacesがインポートのリストに含まれていることを確認してください。

    code language-swift
    import AEPPlaces
    
  4. Places.selfが登録中の拡張機能の配列の一部であることを確認してください。

    code language-swift
    let extensions = [
        AEPIdentity.Identity.self,
        Lifecycle.self,
        Signal.self,
        Edge.self,
        AEPEdgeIdentity.Identity.self,
        Consent.self,
        UserProfile.self,
        Places.self,
        Messaging.self,
        Optimize.self,
        Assurance.self
    ]
    
  5. Xcode プロジェクトナビゲーターの​Luma > Luma > Utils > MobileSDK​に移動して、func processRegionEvent(regionEvent: PlacesRegionEvent, forRegion region: CLRegion) async関数を見つけます。 次のコードを追加します。

    code language-swift
    // Process geolocation event
    Places.processRegionEvent(regionEvent, forRegion: region)
    

    このPlaces.processRegionEvent APIは、位置情報をPlaces サービスに通信します。

  6. Xcodeのプロジェクトナビゲーターで​Luma > Luma > Views > Location > GeofenceSheet​に移動します。

    1. 「エントリ」ボタンに、次のコードを入力します。

      code language-swift
      // Simulate geofence entry event
      Task {
          await MobileSDK.shared.processRegionEvent(regionEvent: .entry, forRegion: region)
      }
      
    2. 「終了」ボタンに、次のコードを入力します。

      code language-swift
      // Simulate geofence exit event
      Task {
          await MobileSDK.shared.processRegionEvent(regionEvent: .exit, forRegion: region)
      }
      
Android
  1. Android Studioで、aepsdk-places-androidが​Android ChevronDown Gradle Scripts​の​ build.gradle.kts (モジュール :app) ​の依存関係の一部であることを確認します。 Gradleを参照してください。

  2. Android Studio プロジェクトナビゲーターで、Android ChevronDown > app > kotlin+java > com.adobe.luma.tutorial.android > LumaApplication​に移動します。

  3. com.adobe.marketing.mobile.Messagingがインポートのリストに含まれていることを確認してください。

    import import com.adobe.marketing.mobile.Places

  4. Places.EXTENSIONが登録中の拡張機能の配列の一部であることを確認してください。

    code language-kotlin
    val extensions = listOf(
        Identity.EXTENSION,
        Lifecycle.EXTENSION,
        Signal.EXTENSION,
        Edge.EXTENSION,
        Consent.EXTENSION,
        UserProfile.EXTENSION,
        Places.EXTENSION,
        Messaging.EXTENSION,
        Optimize.EXTENSION,
        Assurance.EXTENSION
    )
    
  5. Android Studio プロジェクトナビゲーターで、Android ChevronDown > app > kotlin+java > com.adobe.luma.tutorial.android > models > MobileSDK​に移動します。 suspend fun processGeofence(geofence: Geofence?, transitionType: Int)関数を検索します。 次のコードを追加します。

    code language-kotlin
    // Process geolocation event
    Places.processGeofence(geofence, transitionType)
    

    このPlaces.processRegionEvent APIは、位置情報をPlaces サービスに通信します。

  6. Android Studio プロジェクトナビゲーターで、Android ChevronDown > app > kotlin+java > com.adobe.luma.tutorial.android > views > LocationView.k​に移動します。

    1. 「エントリ」ボタンに、次のコードを入力します。

      code language-kotlin
      // Simulate geofence entry event
      coroutineScope.launch {
          MobileSDK.shared.processGeofence(
             region,
             Geofence.GEOFENCE_TRANSITION_ENTER
          )
      }
      
    2. 「終了」ボタンに、次のコードを入力します。

      code language-kotlin
      // Simulate geofence entry event
      coroutineScope.launch {
          MobileSDK.shared.processGeofence(
              region,
              Geofence.GEOFENCE_TRANSITION_EXIT
          )
      }
      

アプリを使用して検証

アプリの位置情報の機能を検証するには:

iOS
  1. デバイスまたはシミュレーターでアプリを開きます。

  2. 「場所」タブに移動します。

  3. マップを移動(ドラッグ)して、青い中央の円がPOIの1つ(例:ロンドン)の上にあることを確認します。

  4. タップ {width="20"}が表示されるまで、カテゴリと名前が赤い場所のラベルにピンで表示されます。

  5. POIのラベルをタップすると、近くのPOI シートが開きます。

    {width="300"}

  6. Entry​または​Exit ボタンを押して、アプリからジオフェンスのエントリとジオフェンスの終了イベントをシミュレートします。

    {width="300"}

  7. Assurance UIにイベントが表示されます。 Places サービスイベントの両方で使用できます。

Android
  1. 「場所」タブに移動します。

  2. ジオフェンスを使用またはシミュレート​を選択します。

  3. 表示される赤い丸の中のどこかをタップします。

    {width="300"}

  4. Entry​または​Exit ボタンを押して、アプリからジオフェンスのエントリとジオフェンスの終了イベントをシミュレートします。

    {width="300"}

  5. Assurance UIにイベントが表示されます。

次の手順

これで、アプリの位置情報に新しい機能を追加するためのツールがすべて揃いました。 イベントをEdge Networkに転送した後、Experience Platform用にアプリを設定すると、アプリで使用されているプロファイルにエクスペリエンスイベントが表示されます。

このチュートリアルの「Journey Optimizer」セクションでは、エクスペリエンスイベントを使用してジャーニーをトリガーできることがわかります(「​ プッシュ通知」および「​ アプリ内メッセージ ​」と「Journey Optimizer」を参照)。 例えば、実店舗のジオフェンスに入った際に、プッシュ通知を製品プロモーションと共にアプリのユーザーに送信する通常の例です。

このアプリの位置情報機能の実装は、コードを最小限に抑えています。 タグプロパティで定義したPlaces サービス、データ要素およびルールは、ほとんどの機能を提供します。 または、入力されたplaceContext オブジェクトを含むXDM ペイロードを使用して、Edge.sendEvent API (​ イベント ​を参照)を使用して、アプリに同じ機能を直接実装することもできます。

SUCCESS
Experience Platform Mobile SDKのPlaces拡張機能を使用して、位置情報サービス用のアプリを有効にしました。
Adobe Experience Platform Mobile SDKについて学ぶために時間を割いていただきありがとうございます。 ご質問がある場合、一般的なフィードバックを共有したい場合、または今後のコンテンツに関する提案がある場合は、このExperience League コミュニティのディスカッション投稿で共有してください。

次:データをAdobe Analyticsにマッピング

recommendation-more-help
platform-learn-help-tutorial-mobile-sdk