使用地標
瞭解如何在應用程式中使用Places地理位置服務。
Adobe Experience Platform Data Collection Places Service是一項地理位置服務,可讓具備位置感知功能的行動應用程式瞭解位置內容。 此服務使用豐富且簡單易用的SDK介面,並隨附彈性的興趣點資料庫(POI)。
先決條件
- 所有套件相依性都在Xcode專案中。
- AppDelegate中註冊的擴充功能。
- 已將MobileCore設定為使用您的開發appId。
- 匯入的SDK。
- 已順利建置並執行應用程式,包含上述變更。
學習目標
在本課程中,您將學習
- 瞭解如何在Places服務中定義地標。
- 使用Places擴充功能更新您的標籤屬性。
- 更新您的結構描述以擷取地理位置事件。
- 驗證Assurance中的設定。
- 更新您的應用程式以註冊Places擴充功能。
- 從應用程式中的Places服務實作地理位置追蹤。
設定
若要讓Places服務在您的應用程式和Mobile SDK中運作,您必須進行一些設定。
定義地標
您可以在Places服務中定義一些地標。
- 在資料收集UI中,選取 地點。
- 選取 。
- 從內容功能表中選取 管理資料庫。
- 在 管理資料庫 對話方塊中,選取 新增。
- 在 建立資料庫 對話方塊中,輸入 名稱,例如
Luma
。 - 選取 確認。
- 若要關閉 管理資料庫 對話方塊,請選取 關閉。
- 返回 POI管理,選取 匯入POI。
- 在 匯入地點 對話方塊中選取 開始。
- 從資料庫清單中選取 Luma,
- 選取 下一步。
- 下載Luma POIs ZIP檔案並將其解壓縮至您電腦上的位置。
- 在 匯入地點 對話方塊中,將擷取的
luma_pois.csv
檔案拖放到 選擇CSV檔案 — 拖放您的檔案。 您應該會看到 驗證成功 - 已成功驗證CSV檔案。 - 選取 開始匯入。 您應該會看到 成功 - 已成功新增6個POI。
- 選取 完成。
- 在 POI管理 中,您應該會看到清單中已新增六個新的Luma存放區。 您可以在
清單和
地圖檢視之間切換。
。
安裝Places擴充功能
-
導覽至 標籤 並尋找您的行動標籤屬性並開啟屬性。
-
選取 延伸模組。
-
選取 目錄。
-
搜尋 Places 延伸模組。
-
安裝擴充功能。
-
在 安裝擴充功能 對話方塊中:
-
從 選取資料庫 清單中選取 Luma。
-
請確定您已挑選您的工作程式庫,例如 初始組建。
-
從 儲存至程式庫 中選取 儲存至程式庫並建置。
。
-
-
已重建您的程式庫。
驗證您的結構描述
驗證您的結構描述(如建立結構描述中所定義)是否合併必要的欄位群組和類別,以收集POI和地理位置資料。
- 導覽至資料收集介面,然後從左側邊欄選取 結構描述。
- 從頂端列選取 瀏覽。
- 選取要開啟的結構描述。
- 在結構描述編輯器中,選取 消費者體驗事件。
- 您看到 placeContext 物件,其中包含要擷取POI互動與地理位置資料的物件和欄位。
。
更新您的標籤屬性
Tags的Places擴充功能提供監視地理位置事件的功能,可讓您根據這些事件觸發動作。 您可以使用此功能,將您必須在應用程式中實施的API編碼減至最少。
資料元素
您先建立數個資料元素。
-
前往資料收集UI中的標籤屬性。
-
從左側邊欄選取 資料元素。
-
選取 新增資料元素。
-
在 建立資料元素 畫面中,輸入名稱,例如
Name - Entered
。 -
從 擴充功能 清單中選取 地標。
-
從 資料元素型別 清單中選取 名稱。
-
選取 TARGET 底下的 目前POI。
-
選取 儲存至資料庫。
-
使用下表中的資訊重複步驟4至8,以建立其他資料元素。
table 0-row-4 1-row-4 2-row-4 3-row-4 4-row-4 5-row-4 名稱 擴充功能 資料元素型別 TARGET Name - Exited
地點 名稱 上次退出的POI Category - Current
地點 類別 目前POI Category - Exited
地點 類別 上次退出的POI City - Current
地點 城市 目前POI City - Exited
地點 城市 上次退出的POI 您應該有以下資料元素清單。
規則
接下來,您將定義處理這些資料元素的規則。
-
在您的標籤屬性中,從左側邊欄選取 規則。
-
選取 新增規則。
-
在 建立規則 畫面中,輸入規則的名稱,例如
POI - Entry
。 -
選取 EVENTS 底下的 。
-
從 擴充功能 清單中選取 地標,並從 事件型別 清單中選取 輸入POI。
-
選取 保留變更。
。
-
-
選取 ACTIONS 底下的 。
-
從 擴充功能 清單中選取 行動核心,從清單中選取 動作型別 中的 附加資料。 此動作會附加裝載資料。
-
在 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 PlatformEdge Network,然後選取 轉寄事件至Edge Network。 此動作可確保事件和其他裝載資料轉送至PlatformEdge Network。
- 選取 保留變更。
-
若要儲存規則,請選取 儲存至資料庫。
讓我們建立另一個規則
-
在 建立規則 畫面中,輸入規則的名稱,例如
POI - Exit
。 -
選取 EVENTS 底下的 。
- 從 擴充功能 清單中選取 地標,並從 事件型別 清單中選取 結束POI。
- 選取 保留變更。
-
選取 ACTIONS 底下的 。
-
從 擴充功能 清單中選取 行動核心,從 動作型別 清單中選取 附加資料。
-
在 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 PlatformEdge Network,然後選取 轉寄事件至Edge Network。
- 選取 保留變更。
-
若要儲存規則,請選取 儲存至資料庫。
若要確保標籤中的所有變更皆已發佈
- 選取 初始組建 作為要組建的程式庫。
- 選取 組建。
驗證Assurance中的設定
若要驗證Assurance中的設定:
- 前往Assurance UI。
- 如果左側邊欄中尚未提供,請在左側邊欄中選取 設定,然後選取 事件 旁的 以及 PLACES SERVICE 底下的 地圖和模擬。
- 選取「儲存」。
- 在左側邊欄中選取 地圖和模擬。
- 將地圖移至其中一個POI的位置。
- 選取 模擬負載POI。 您的POI會使用圓圈和圖釘來識別。
- 選取您的POI。
- 從快顯視窗中選取
模擬進入事件。
- 從左側邊欄選取 事件,您應該會看到模擬的事件。
在您的應用程式中實作地標
如先前課程所述,安裝行動標籤擴充功能僅會提供設定。 接下來,您必須安裝並註冊Places SDK。 如果未清除這些步驟,請檢閱安裝SDK區段。
-
在Xcode中,請確定已將AEP Places新增至套件相依性中的套件清單中。 請參閱Swift封裝管理員。
-
導覽至Xcode專案導覽器中的 Luma > Luma > AppDelegate。
-
請確定
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 ]
-
導覽至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服務。 -
導覽至Xcode專案導覽器中的 Luma > Luma > Views > Location > GeofenceSheet。
- 針對「輸入」按鈕,輸入下列代碼
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"},直到您看到類別和名稱出現在標籤中帶有pin的紅色位置為止。
-
點選POI的標籤,開啟 附近的POI 工作表。
{width="300"}
-
按下 登入 或 退出 按鈕,以模擬應用程式中的地理柵欄登入與地理柵欄退出事件。
{width="300"}
-
您應該會在Assurance UI中看到事件。
後續步驟
您現在應該有所有的工具,以便開始將更多功能新增至應用程式中的地理位置功能。 當您已將事件轉送至Edge Network時,一旦您為Experience Platform設定應用程式,您應該會看到應用程式中所使用設定檔中出現的體驗事件。
在本教學課程的Journey Optimizer區段中,您會看到體驗事件可用來觸發歷程(請參閱推播通知和使用Journey Optimizer的應用程式內傳訊)。 例如,當應用程式使用者進入實體商店的地理柵欄時,傳送推播通知給該使用者並進行某些產品促銷的常見範例。
您見過應用程式的功能實作,大多是由Places服務以及您在標籤屬性中定義的資料元素和規則所驅動。 因此,請儘可能減少應用程式中的程式碼。 或者,您可以使用Edge.sendEvent
API (如需詳細資訊,請參閱事件)直接在您的應用程式中實作相同的功能,XDM承載包含填入的placeContext
物件。