使用地标

了解如何在应用程序中使用Places地理位置服务。

Adobe Experience Platform数据收集位置服务是一种地理位置服务,它使具有位置感知的移动应用程序能够了解位置上下文。 该服务使用丰富且易于使用的SDK接口,并随附了灵活的兴趣点(POI)数据库。

先决条件

  • 所有包依赖项都已放置在Xcode项目中。
  • 在AppDelegate中注册的扩展。
  • 已将MobileCore配置为使用开发appId。
  • 导入的SDK。
  • 通过上述更改成功构建并运行应用程序。

学习目标

在本课程中,您将执行以下操作

  • 了解如何在Places服务中定义目标点。
  • 使用Places扩展更新您的标记属性。
  • 更新您的架构以捕获地理位置事件。
  • 验证Assurance中的设置。
  • 更新您的应用程序以注册Places扩展。
  • 从应用程序中的Places服务实施地理位置跟踪。

设置

要使Places服务在您的应用程序和Mobile SDK中正常工作,您必须进行一些设置。

定义地标

您可以在Places服务中定义一些目标点。

  1. 在数据收集UI中,选择​ 地标
  2. 选择 更多
  3. 从上下文菜单中选择​ 管理库
    管理库
  4. 在​ 管理库 ​对话框中,选择​ 新建
  5. 在​ 创建库 ​对话框中,输入​ 名称,例如Luma
  6. 选择​ 确认
    创建库
  7. 要关闭​ 管理库 ​对话框,请选择​ 关闭
  8. 返回​ POI管理,选择​ 导入POI
  9. 在​ 导入地标 ​对话框中选择​ 开始
  10. 从库列表中选择​ Luma
  11. 选择​ 下一步
    选择库
  12. 下载Luma POI ZIP文件并将其解压缩到计算机上的某个位置。
  13. 在​ 导入地标 ​对话框中,将提取的luma_pois.csv文件拖放到​ 选择CSV文件 — 拖放您的文件。 您应会看到​ 验证成功 - 已成功验证CSV文件
  14. 选择​ 开始导入。 您应该看到​ 成功 - 已成功添加6个新POI
  15. 选择​ 完成
  16. 在​ POI管理 ​中,您应该会看到六个新的Luma商店已添加到列表中。 您可以在 列表 列表和 映射 映射视图之间切换。
    地标列表

Install Places扩展

  1. 导航到​ 标记,找到您的移动标记属性并打开该属性。

  2. 选择​ 扩展

  3. 选择​ 目录

  4. 搜索​ Places ​扩展。

  5. 安装扩展。

    添加Decisioning扩展

  6. 在​ 安装扩展 ​对话框中:

    1. 从​ 选择库 ​列表中选择​ Luma

    2. 请确保已选择您的工作库,例如​ 初始内部版本

    3. 从​ 保存到库 ​中选择​ 保存到库并生成

      安装Places扩展

  7. 已重建您的库。

验证您的架构

验证您的架构(如创建架构中所定义)是否合并了必要的字段组和类以收集POI和地理位置数据。

  1. 导航到数据收集界面,然后从左边栏中选择​ 架构
  2. 从顶部栏中选择​ 浏览
  3. 选择您的架构以将其打开。
  4. 在架构编辑器中,选择​ 使用者体验事件
  5. 您看到​ placeContext ​对象,其中包含用于捕获POI交互和地理位置数据的对象和字段。
    架构位置

更新您的标记属性

适用于标记的Places扩展提供了用于监视地理位置事件的功能,并允许您根据这些事件触发操作。 您可以使用此功能最大程度地减少必须在应用程序中实施的API编码。

数据元素

首先创建多个数据元素。

  1. 转到数据收集UI中的标记属性。

  2. 从左边栏中选择​ 数据元素

  3. 选择​ 添加数据元素

  4. 在​ 创建数据元素 ​屏幕中,输入名称,例如Name - Entered

  5. 从​ 扩展 ​列表中选择​ 地标

  6. 从​ 数据元素类型 ​列表中选择​ 名称

  7. 选择​ TARGET ​下的​ 当前POI

  8. 选择​ 保存到库
    数据元素

  9. 使用下表中的信息重复步骤4 - 8以创建其他数据元素。

    table 0-row-4 1-row-4 2-row-4 3-row-4 4-row-4 5-row-4
    名称 扩展 数据元素类型 TARGET
    Name - Exited Places 名称 上次退出的POI
    Category - Current Places 类别 当前POI
    Category - Exited Places 类别 上次退出的POI
    City - Current Places 城市 当前POI
    City - Exited Places 城市 上次退出的POI

    您应该拥有以下数据元素列表。

    数据元素列表

规则

接下来,您将定义用于这些数据元素的规则。

  1. 在标记属性中,从左边栏选择​ 规则

  2. 选择​ 添加规则

  3. 在​ 创建规则 ​屏幕中,输入规则的名称,例如POI - Entry

  4. 选择​ EVENTS ​下的 添加

    1. 从​ 扩展 ​列表中选择​ 地标,并从​ 事件类型 ​列表中选择​ 输入POI

    2. 选择​ 保留更改

      标记事件

  5. 选择​ ACTIONS ​下的 添加

    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
                      }
                  }
              }
          }
      }
      

      您还可以通过选择 数据 在JSON中插入{%% ... %%}数据元素占位符值。 弹出对话框允许您选择创建的任何数据元素。

    3. 选择​ 保留更改

      标记操作

  6. 选择​ 移动核心 — 附加数据 ​操作旁边的 添加

    1. 从​ 扩展 ​列表中选择​ Adobe Experience PlatformEdge Network,然后选择​ 将事件转发到Edge Network。 此操作确保将事件和其他有效负载数据转发到PlatformEdge Network。
    2. 选择​ 保留更改
  7. 要保存规则,请选择​ 保存到库

    规则

让我们再创建一个规则

  1. 在​ 创建规则 ​屏幕中,输入规则的名称,例如POI - Exit

  2. 选择​ EVENTS ​下的 添加

    1. 从​ 扩展 ​列表中选择​ 地标,并从​ 事件类型 ​列表中选择​ 退出POI
    2. 选择​ 保留更改
  3. 选择​ ACTIONS ​下的 添加

    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 PlatformEdge Network,然后选择​ 将事件转发到Edge Network
    2. 选择​ 保留更改
  5. 要保存规则,请选择​ 保存到库

    规则

要确保发布标记中的所有更改,请执行以下操作

  1. 选择​ 初始生成 ​作为要生成的库。
  2. 选择​ 生成
    生成库

验证Assurance中的设置

要在Assurance中验证设置,请执行以下操作:

  1. 转到Assurance UI。
  2. 如果左边栏中尚不可用,请在左边栏中选择​ 配置,然后选择​ 事件 ​旁边的 添加 和​ PLACES SERVICE ​下的​ 映射和模拟
  3. 选择​ 保存
  4. 在左边栏中选择​ 映射和模拟
  5. 将地图移动到某个POI的位置。
  6. 选择 齿轮 模拟加载POI。 使用圆圈和pin标识您的POI。
  7. 选择您的POI。
  8. 从弹出窗口中,选择 齿轮 模拟进入事件
    模拟进入事件
  9. 从左边栏中选择​ 事件,您应该会看到模拟的事件。
    AJO Decisioning验证

在应用程序中实施地标

如前面的课程中所述,安装移动标记扩展仅提供配置。 接下来,您必须安装并注册Places SDK。 如果未清除这些步骤,请查看安装SDK部分。

NOTE
如果您已完成安装SDK部分,则表明已安装Places SDK,您可以跳过此步骤。
  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)
    }
    
    1. 对于“退出”按钮,输入以下代码
    code language-swift
    // Simulate geofence exit event
    Task {
        await MobileSDK.shared.processRegionEvent(regionEvent: .exit, forRegion: region)
    }
    

使用应用程序进行验证

  1. 在设备或模拟器中打开您的应用程序。

  2. 转到​ 位置 ​选项卡。

  3. 四处移动(拖动)地图,以确保蓝色中间圆圈位于某个POI的上方,例如伦敦。

  4. 点按 {width="20"},直到您看到类别和名称显示在带有pin的红色位置的标签中。

  5. 点按POI的标签,这将打开​ 附近POI ​工作表。

    {width="300"}

  6. 按​ 进入 ​或​ 退出 ​按钮以模拟来自应用程序的地理围栏进入和退出事件。

    {width="300"}

  7. 您应会在Assurance UI中看到这些事件。

后续步骤

您现在应该拥有所有工具,以便开始在应用程序中为地理位置功能添加更多功能。 由于您已将事件转发给Edge Network,因此,在为Experience Platform设置应用程序后,您应该会看到应用程序中使用的配置文件所显示的体验事件。

在本教程的Journey Optimizer部分中,您将看到体验事件可用于触发历程(请参阅推送通知和使用Journey Optimizer的应用程序内消息传送)。 例如,通常情况下,当用户进入实体商店的地理围栏时,向应用程序用户发送推送通知并促销某些产品。

您已看到应用程序功能的实施,这些功能主要由Places服务以及您在标记属性中定义的数据元素和规则驱动。 因此,请最大限度地减少应用程序中的代码。 或者,您可以使用包含填充的placeContext对象的XDM有效负载,通过Edge.sendEvent API(有关详细信息,请参阅事件)直接在您的应用程序中实施相同的功能。

SUCCESS
现在,您已使用Experience PlatformMobile SDK中的Places扩展为地理定位服务启用应用程序。
感谢您投入时间学习Adobe Experience Platform Mobile SDK。 如果您有疑问、希望共享一般反馈或有关于未来内容的建议,请在此Experience League社区讨论帖子上共享它们。

下一步:将数据映射到Adobe Analytics

recommendation-more-help
9fed61f5-c338-47ad-8005-0b89a5f4af8b