使用地标
了解如何在应用程序中使用Places地理位置服务。
Adobe Experience Platform数据收集位置服务是一种地理位置服务,它使具有位置感知的移动应用程序能够了解位置上下文。 该服务使用丰富且易于使用的SDK接口,并随附了灵活的兴趣点(POI)数据库。
先决条件
- 所有包依赖项都已放置在Xcode项目中。
- 在AppDelegate中注册的扩展。
- 已将MobileCore配置为使用开发appId。
- 导入的SDK。
- 通过上述更改成功构建并运行应用程序。
学习目标
在本课程中,您将执行以下操作
- 了解如何在Places服务中定义目标点。
- 使用Places扩展更新您的标记属性。
- 更新您的架构以捕获地理位置事件。
- 验证Assurance中的设置。
- 更新您的应用程序以注册Places扩展。
- 从应用程序中的Places服务实施地理位置跟踪。
设置
要使Places服务在您的应用程序和Mobile SDK中正常工作,您必须进行一些设置。
定义地标
您可以在Places服务中定义一些目标点。
- 在数据收集UI中,选择 地标.
- 选择 .
- 从上下文菜单中,选择 管理库.
- 在 管理库 对话框,选择 新建.
- 在 创建库 对话框输入 名称 例如
Luma
. - 选择 确认.
- 要关闭 管理库 对话框,选择 关闭.
- 返回 POI管理,选择 导入POI.
- 选择 开始 在 导入位置 对话框。
- 选择 Luma 从图书馆名单上,
- 选择 下一步。
- 下载 Luma POI ZIP文件 然后将其提取到您计算机上的某个位置。
- 在 导入位置 对话框,拖放提取的
luma_pois.csv
文件到 选择CSV文件 — 拖放文件. 您应该看到 验证成功 - 已成功验证CSV文件. - 选择 开始导入. 您应该看到 成功 - 已成功添加6个新POI.
- 选择 完成。
- 在 POI管理,您应该会看到六个新的Luma商店已添加到列表中。 您可以在以下内容之间切换:
列表和
映射视图。
.
Install Places扩展
-
导航到 标记 并找到您的移动标记资产并打开该资产。
-
选择 扩展.
-
选择 目录.
-
搜索 地标 扩展。
-
安装扩展。
-
在 安装扩展 对话框:
-
选择 Luma 从 选择库 列表。
-
确保已选取工作库,例如 初始构建.
-
选择 保存到库并生成 从 保存到库.
.
-
-
已重建您的库。
验证您的架构
验证您的架构是否如中定义 创建架构,整合了收集POI和地理位置数据所需的字段组和类。
- 导航到数据收集界面并选择 架构 从左边栏开始。
- 选择 浏览 从顶部栏中。
- 选择您的架构以将其打开。
- 在架构编辑器中,选择 使用者体验事件.
- 您看到 placeContext 对象和字段,用于捕获POI交互和地理位置数据。
.
更新您的标记属性
适用于标记的Places扩展提供了用于监视地理位置事件的功能,并允许您根据这些事件触发操作。 您可以使用此功能最大程度地减少必须在应用程序中实施的API编码。
数据元素
首先创建多个数据元素。
-
转到数据收集UI中的标记属性。
-
选择 数据元素 从左边栏开始。
-
选择 添加数据元素。
-
在 创建数据元素 屏幕,输入名称,例如
Name - Entered
. -
选择 地标 从 扩展名 列表。
-
选择 名称 从 数据元素类型 列表。
-
选择 当前POI 下 TARGET.
-
选择 保存到库.
-
使用下表中的信息重复步骤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 您应该拥有以下数据元素列表。
规则
接下来,您将定义用于这些数据元素的规则。
-
在标记属性中,选择 规则 从左边栏开始。
-
选择 添加规则.
-
在 创建规则 屏幕中,输入规则的名称,例如
POI - Entry
. -
选择 下 活动.
-
选择 地标 从 扩展名 列出并选择 输入POI 从 事件类型 列表。
-
选择 保留更改。
.
-
-
选择 下 操作.
-
选择 移动核心 从 扩展名 列表,选择 附加数据 从 操作类型 列表。 此操作附加有效负荷数据。
-
在 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中的数据元素占位符值,方法是选择 . 弹出对话框允许您选择创建的任何数据元素。 -
选择 保留更改。
-
-
选择 旁边的 移动核心 — 附加数据 操作。
- 选择 Adobe Experience Platform边缘网络 从 扩展名 列出并选择 将事件转发到Edge Network. 此操作确保将事件和其他有效负载数据转发到Platform Edge Network。
- 选择 保留更改。
-
要保存规则,请选择 保存到库.
让我们再创建一个规则
-
在 创建规则 屏幕中,输入规则的名称,例如
POI - Exit
. -
选择 下 活动.
- 选择 地标 从 扩展名 列出并选择 退出POI 从 事件类型 列表。
- 选择 保留更改。
-
选择 下 操作.
-
选择 移动核心 从 扩展名 列表,选择 附加数据 从 操作类型 列表。
-
在 JSON有效负载,粘贴以下有效负载:
code language-json { "xdm": { "eventType": "location.exit", "placeContext": { "geo": { "city": "{%%City - Exited%%}" }, "POIinteraction": { "poiExits": { "value": 1 }, "poiDetail": { "name": "{%%Name - Exited%%}", "category": "{%%Category - Exited%%}" } } } } }
-
选择 保留更改。
-
-
选择 旁边的 移动核心 — 附加数据 操作。
- 选择 Adobe Experience Platform边缘网络 从 扩展名 列出并选择 将事件转发到Edge Network.
- 选择 保留更改。
-
要保存规则,请选择 保存到库.
要确保发布标记中的所有更改,请执行以下操作
- 选择 初始构建 作为要生成的库。
- 选择 生成.
验证Assurance中的设置
要在Assurance中验证设置,请执行以下操作:
- 转到Assurance UI。
- 如果左边栏中尚不可用,请选择 配置 在左边栏中选择 旁边 活动 和 映射和模拟 下 PLACES服务.
- 选择 保存。
- 选择 映射和模拟 在左边栏中。
- 将地图移动到某个POI的位置。
- 选择 模拟加载POI。 使用圆圈和pin标识您的POI。
- 选择您的POI。
- 从弹出窗口中,选择
模拟进入事件.
- 选择 活动 从左边栏中,您应该会看到模拟的事件。
在应用程序中实施地标
如前面的课程中所述,安装移动标记扩展仅提供配置。 接下来,您必须安装并注册Places SDK。 如果这些步骤不明确,请查阅 安装SDK 部分。
-
在Xcode中,确保 AEP Places 会添加到包依赖关系中的包列表中。 请参阅 Swift包管理器.
-
导航到 Luma > Luma > AppDelegate 在Xcode项目导航器中。
-
确保
AEPPlaces
是导入列表的一部分。code language-swift import AEPPlaces
-
确保
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 ]
-
导航到 Luma > Luma > Utils > MobileSDK 在Xcode项目导航器中查找
func processRegionEvent(regionEvent: PlacesRegionEvent, forRegion region: CLRegion) async
函数。 添加以下代码:code language-swift // Process geolocation event Places.processRegionEvent(regionEvent, forRegion: region)
此
Places.processRegionEvent
API将地理位置信息传递给Places服务。 -
导航到 Luma > Luma > Views > Location > GeofenceSheet 在Xcode的项目导航器中。
- 对于“输入”按钮,输入以下代码
code language-swift // Simulate geofence entry event Task { await MobileSDK.shared.processRegionEvent(regionEvent: .entry, forRegion: region) }
- 对于“退出”按钮,输入以下代码
code language-swift // Simulate geofence exit event Task { await MobileSDK.shared.processRegionEvent(regionEvent: .exit, forRegion: region) }
使用应用程序进行验证
-
在设备或模拟器中打开您的应用程序。
-
转到 位置 选项卡。
-
四处移动(拖动)地图,以确保蓝色中间圆圈位于某个POI的上方,例如伦敦。
-
点按 {width="20"} 直到您看到类别和名称显示在带有图钉的红色位置的标签中。
-
点按POI的标签,这会打开 附近POI 工作表。
{width="300"}
-
按 登入 或 退出 按钮来模拟应用程序中的地理围栏进入和地理围栏退出事件。
{width="300"}
-
您应会在Assurance UI中看到这些事件。
后续步骤
您现在应该拥有所有工具,以便开始在应用程序中为地理位置功能添加更多功能。 在设置应用程序后,由于已将事件转发到边缘网络, Experience Platform时,您应该会看到应用程序中所用用户档案所显示的体验事件。
在本教程的Journey Optimizer部分中,您将看到体验事件可用于触发历程(请参阅 推送通知 和 应用程序内消息传送 Journey Optimizer)。 例如,通常情况下,当用户进入实体商店的地理围栏时,向应用程序用户发送推送通知并促销某些产品。
您已看到应用程序功能的实施,这些功能主要由Places服务以及您在标记属性中定义的数据元素和规则驱动。 因此,请最大限度地减少应用程序中的代码。 或者,您可以使用直接在应用程序中实施相同的功能 Edge.sendEvent
API(请参阅 活动 ,以了解更多信息),XDM有效负载中包含填充的 placeContext
对象。