地理位置可協助您透過經緯度和 iOS 應用程式中預先定義的地標,來測量位置資料。
各 trackLocation
呼叫均會傳送下列項目:
在 Adobe Mobile Services 中定義之地標 (POI) 的經緯度和位置。
此資訊會傳遞至行動解決方案變數以進行自動報告。
以內容資料傳遞之與中心的距離和精確度。
系統不會自動擷取上述變數。您必須透過以下傳送其他資料一節中的指示,對應此類內容資料變數。
自 4.2 版開始,POI 皆會在 Adobe Mobile 介面中定義,並會動態同步至應用程式設定檔案。此同步作業須使用 ADBMobile.json
檔案中的 analytics.poi
設定,該設定位於:
“analytics.poi”: “https://assets.adobedtm.com/…/yourfile.json”,
如需詳細資訊,請參閱 ADBMobile JSON 設定。
如果尚未設定此項目,則必須下載更新版本的 ADBMobile.json
檔案,並將其新增至您的應用程式。如需詳細資訊與指示,請參閱開始之前中的下載 SDK 和測試工具。
新增資料庫至您的專案與實施生命週期。
如需詳細資訊,請參閱核心實作與生命週期中的新增 SDK 和設定檔至您的專案。
匯入資料庫:
#import "ADBMobile.h"
呼叫 trackLocation
以追蹤目前位置:
CLLocation *currentLocation = location;
[ADBMobile trackLocation: currentLocation data: nil];
您可以隨時呼叫 trackLocation
。
若要判斷傳遞至 trackLocation
呼叫的位置,請使用取得使用者位置。
此外,如果該位置經判斷位於定義的 POI 半徑範圍內,則 a.loc.poi
內容資料變數將會與 trackLocation
點擊一併傳入,並會在「位置」報表中報告為 POI。a.loc.dist
內容變數也會以公尺為單位傳送來自定義座標的距離。
除了位置資料之外,您還可以隨著每次追蹤位置呼叫傳送其他內容資料:
NSMutableDictionary *contextData = [NSMutableDictionary dictionary];
[contextData setObject:@"GPS" forKey:@"myapp.location.LocationSource"];
[ADBMobile trackLocation: currentLocation data:contextData];
內容資料值必須對應至自訂變數:
經緯度會分別透過三種不同內容資料參數傳送,且各參數代表不同程度的精準度,其中共有六個內容資料參數。
例如,座標 lat = 40.93231、lon = -111.93152 以 1 公尺精準度呈現位置。此位置會根據下列變數的精準度來分割:
a.loc.lat.a
= 040.9a.loc.lat.b
= 32a.loc.lat.c
= 31a.loc.lon.a
= -111.9a.loc.lon.b
= 31a.loc.lon.c
= 52視目前位置準確度而定,部分精準度可能會顯示為「00」。例如,如果該位置目前準確程度至 100 公尺,則 a.loc.lat.c
和 a.loc.lon.c
將會填入「00」。
請記住以下資訊:
trackLocation
要求會在 trackAction
呼叫的同等項中傳送。
系統不會在一般 trackAction
和 trackState
呼叫過程中傳遞 POI,因此您必須使用 trackLocation
呼叫來追蹤 POI。
必要時,您應經常呼叫 trackLocation
以追蹤位置和 POI。
建議您根據應用程式需求,在應用程式啟動時呼叫 trackLocation
,並在隨後視需要再次進行。
POI 只有在已於應用程式設定檔案中完成定義後,才會填入。
POI 不會套用至先前已傳送的歷史 trackLocation
呼叫。
trackLocation
呼叫支援傳送與 trackAction
呼叫類似的其他內容資料。
當兩個 POI 的直徑範圍重疊時,會使用包含目前位置的第一個 POI。
當您的 POI 重疊時,您應依最高精細度至最低精細度的順序列出 POI,以確保報告最精細的 POI。