위치 사용
작성 대상:
- 초급
- 중간
- 개발자
앱에서 위치 지리적 위치 서비스를 사용하는 방법을 알아봅니다.
Adobe Experience Platform 데이터 수집 위치 서비스 는 위치를 인식하는 모바일 앱이 위치 컨텍스트를 이해할 수 있도록 해주는 지리적 위치 서비스입니다. 이 서비스는 유연한 관심 영역(POI) 데이터베이스를 동반하는 풍부하고 사용하기 쉬운 SDK 인터페이스를 사용합니다.
전제 조건
- 모든 패키지 종속성은 Xcode 프로젝트에 있습니다.
- AppDelegate에 등록된 확장입니다.
- 개발 appId를 사용하도록 MobileCore를 구성했습니다.
- 가져온 SDK.
- 위의 변경 사항으로 앱을 빌드하고 실행했습니다.
학습 목표
이 단원에서는 다음과 같은 작업을 수행합니다
- Places 서비스의 관심 영역을 정의하는 방법을 이해합니다.
- Places 확장으로 태그 속성을 업데이트합니다.
- 스키마를 업데이트하여 지리적 위치 이벤트를 캡처합니다.
- Assurance에서 설정의 유효성을 검사합니다.
- 앱을 업데이트하여 Places 확장을 등록합니다.
- 앱의 위치 서비스에서 지리적 위치 추적을 구현합니다.
설정
Places 서비스가 앱 내에서 및 Mobile SDK 내에서 작동하려면 일부 설정을 수행해야 합니다.
위치 정의
Places 서비스에서 일부 관심 영역을 정의합니다.
- 데이터 수집 UI에서 위치 를 선택합니다.
-
- 컨텍스트 메뉴에서 라이브러리 관리 를 선택합니다.
- 라이브러리 관리 대화 상자에서 새로 만들기 를 선택합니다.
- 라이브러리 만들기 대화 상자에서 이름(예:
Luma
)을 입력하십시오. - 확인 을 선택합니다.
- 라이브러리 관리 대화 상자를 닫으려면 닫기 를 선택합니다.
- POI 관리 로 돌아가서 POI 가져오기 를 선택하십시오.
- 위치 가져오기 대화 상자에서 시작 을 선택합니다.
- 라이브러리 목록에서 Luma 을(를) 선택합니다.
- 다음 을 선택합니다.
- Luma POIs ZIP 파일을 다운로드하고 컴퓨터의 위치에 추출합니다.
- 위치 가져오기 대화 상자에서 추출한
luma_pois.csv
파일을 CSV 파일 선택 - 파일 드래그 앤 드롭 에 끌어다 놓습니다. 유효성 검사 성공 - CSV 파일의 유효성을 검사했습니다 가 표시됩니다. - 가져오기 시작 을 선택합니다. 성공 - 6개의 새 POI를 추가함 이 표시됩니다.
- 완료 를 선택합니다.
- POI 관리 에서 6개의 새로운 Luma 스토어가 목록에 추가됩니다.
위치 확장 설치
-
태그(으)로 이동하여 모바일 태그 속성을 찾은 다음 속성을 엽니다.
-
확장 을 선택하십시오.
-
카탈로그 를 선택하십시오.
-
Places 확장을 검색합니다.
-
확장을 설치합니다.
-
확장 설치 대화 상자에서:
-
Luma 라이브러리 선택 목록에서 을(를) 선택합니다.
-
작업 라이브러리(예: 초기 빌드)를 선택했는지 확인하십시오.
-
라이브러리에 저장 에서 라이브러리 및 빌드에 저장 을 선택합니다.
-
-
라이브러리가 다시 빌드되었습니다.
스키마 확인
스키마 만들기에 정의된 대로 스키마에 POI 및 지리적 위치 데이터를 수집하는 데 필요한 필드 그룹 및 클래스가 포함되어 있는지 확인합니다.
- 데이터 수집 인터페이스로 이동하여 왼쪽 레일에서 스키마 를 선택합니다.
- 상단 표시줄에서 찾아보기 를 선택합니다.
- 스키마를 선택하여 엽니다.
- 스키마 편집기에서 소비자 경험 이벤트 를 선택합니다.
- POI 인터랙션 및 지리적 위치 데이터를 캡처할 개체 및 필드가 있는 placeContext 개체가 표시됩니다.
태그 속성 업데이트
태그에 대한 위치 확장 기능은 지리적 위치 이벤트를 모니터링하고 이러한 이벤트를 기반으로 작업을 트리거할 수 있는 기능을 제공합니다. 이 기능을 사용하면 앱에서 구현해야 하는 API 코딩을 최소화할 수 있습니다.
데이터 요소
먼저 여러 데이터 요소를 만듭니다.
-
데이터 수집 UI에서 태그 속성으로 이동합니다.
-
왼쪽 레일에서 데이터 요소 를 선택합니다.
-
데이터 요소 추가 를 선택합니다.
-
데이터 요소 만들기 화면에서
Name - Entered
과(와) 같은 이름을 입력하십시오. -
확장 목록에서 위치 를 선택합니다.
-
데이터 요소 형식 목록에서 이름 을(를) 선택하십시오.
-
TARGET 아래에서 현재 POI 를 선택하십시오.
-
라이브러리에 저장 을 선택합니다.
-
아래 표의 정보를 사용하여 4~8단계를 반복하여 추가 데이터 요소를 만듭니다.
이름확장 기능데이터 요소 유형TARGETName - Exited
장소이름마지막으로 종료한 POICategory - Current
장소카테고리현재 POICategory - Exited
장소카테고리마지막으로 종료한 POICity - Current
장소구/군/시현재 POICity - Exited
장소구/군/시마지막으로 종료한 POI다음 데이터 요소 목록이 있어야 합니다.
규칙
그런 다음 이러한 데이터 요소로 작업할 규칙을 정의합니다.
-
태그 속성의 왼쪽 레일에서 규칙 을 선택합니다.
-
규칙 추가 를 선택합니다.
-
규칙 만들기 화면에서 규칙 이름(예:
POI - Entry
)을 입력하십시오. -
-
확장 목록에서 위치 를 선택하고 이벤트 유형 목록에서 POI 입력 을 선택합니다.
-
변경 내용 유지 를 선택합니다.
-
-
-
확장 목록에서 Mobile Core 를 선택하고 작업 유형 에서 데이터 첨부 를 선택합니다. 이 작업은 페이로드 데이터를 첨부합니다.
-
JSON 페이로드 에 다음 페이로드를 붙여 넣습니다.
{ "xdm": { "eventType": "location.entry", "placeContext": { "geo": { "city": "{%%City - Current%%}" }, "POIinteraction": { "poiDetail": { "name": "{%%Name - Current%%}", "category": "{%%Category - Current%%}" }, "poiEntries": { "value": 1 } } } } }
{%% ... %%}
데이터 -
변경 내용 유지 를 선택합니다.
-
-
- 확장 목록에서 Adobe Experience Platform Edge Network 을 선택하고 Edge Network으로 이벤트 전달 을 선택합니다. 이 작업을 수행하면 이벤트 및 추가 페이로드 데이터가 Platform Edge Network에 전달됩니다.
- 변경 내용 유지 를 선택합니다.
-
규칙을 저장하려면 라이브러리에 저장 을 선택합니다.
다른 규칙을 만들어 보겠습니다
-
규칙 만들기 화면에서 규칙 이름(예:
POI - Exit
)을 입력하십시오. -
- 확장 목록에서 위치 를 선택하고 이벤트 유형 목록에서 POI 종료 를 선택합니다.
- 변경 내용 유지 를 선택합니다.
-
-
확장 목록에서 Mobile Core 을 선택하고 작업 유형 목록에서 데이터 첨부 를 선택합니다.
-
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 을 선택하고 Edge Network으로 이벤트 전달 을 선택합니다.
- 변경 내용 유지 를 선택합니다.
-
규칙을 저장하려면 라이브러리에 저장 을 선택합니다.
태그의 모든 변경 사항이 게시되도록 하려면
- 빌드할 라이브러리로 초기 빌드 를 선택합니다.
- 빌드 를 선택합니다.
Assurance에서 설정 유효성 검사
Assurance에서 설정의 유효성을 검사하려면:
- Assurance UI로 이동합니다.
- 왼쪽 레일에서 아직 사용할 수 없는 경우 왼쪽 레일에서 구성 을 선택하고
- 저장 을 선택합니다.
- 왼쪽 레일에서 맵 및 시뮬레이션 을 선택합니다.
- 지도를 POI 중 하나의 위치로 이동합니다.
-
- POI를 선택합니다.
- 팝업에서
- 왼쪽 레일에서 이벤트 를 선택하면 시뮬레이션한 이벤트가 표시됩니다.
앱의 위치 구현
이전 단원에서 설명한 대로 모바일 태그 확장을 설치하면 구성만 제공됩니다. 그런 다음 Places SDK을 설치하고 등록해야 합니다. 이 단계가 명확하지 않으면 SDK 설치 섹션을 검토하십시오.
-
Xcode에서 패키지 종속 항목의 패키지 목록에 AEP Places이(가) 추가되었는지 확인하십시오. Swift 패키지 관리자를 참조하세요.
-
Xcode 프로젝트 탐색기에서 Luma > Luma > AppDelegate(으)로 이동합니다.
-
AEPPlaces
이(가) 가져오기 목록의 일부인지 확인하십시오.import AEPPlaces
-
Places.self
이(가) 등록 중인 확장 배열의 일부인지 확인하십시오.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
함수를 찾습니다. 다음 코드를 추가합니다.// Process geolocation event Places.processRegionEvent(regionEvent, forRegion: region)
이
Places.processRegionEvent
API는 지리적 위치 정보를 Places 서비스에 전달합니다. -
Xcode의 프로젝트 탐색기에서 Luma > Luma > Views > Location > GeofenceSheet(으)로 이동합니다.
- [입력] 단추에 다음 코드를 입력합니다
// Simulate geofence entry event Task { await MobileSDK.shared.processRegionEvent(regionEvent: .entry, forRegion: region) }
- Exit 단추에 다음 코드를 입력합니다
// Simulate geofence exit event Task { await MobileSDK.shared.processRegionEvent(regionEvent: .exit, forRegion: region) }
앱을 사용하여 유효성 검사
-
장치 또는 시뮬레이터에서 앱을 엽니다.
-
위치 탭으로 이동합니다.
-
맵을 이동하고(드래그) POI 중 하나(예: 런던) 위에 파란색 중간 원이 있는지 확인합니다.
-
누르기
범주와 이름이 빨간색 위치에 있는 레이블에 표시될 때까지(pin 사용). -
POI의 레이블을 탭하여 주변 POI 시트를 엽니다.
-
시작 또는 종료 단추를 눌러 앱에서 지오펜스 시작 및 지오펜스 종료 이벤트를 시뮬레이션합니다.
-
Assurance UI에 이벤트가 표시됩니다.
다음 단계
이제 앱에서 지리적 위치 기능에 더 많은 기능을 추가하려면 모든 도구가 있어야 합니다. 이벤트를 Edge Network으로 전달했으므로 Experience Platform에 대한 앱을 설정한 후에는 앱에 사용된 프로필에 대해 경험 이벤트가 표시되는 것을 볼 수 있습니다.
이 자습서의 Journey Optimizer 섹션에서 여정을 트리거하는 데 경험 이벤트를 사용할 수 있습니다(푸시 알림 및 Journey Optimizer을 사용한 인앱 메시지 참조). 예를 들어 앱 사용자가 실제 스토어의 geofence에 들어오면 일부 제품 프로모션과 함께 푸시 알림을 전송하는 일반적인 사례입니다.
주로 태그 속성에서 정의한 Places 서비스 및 데이터 요소와 규칙에 의해 앱에 대한 기능이 구현된 것을 보았습니다. 따라서 앱의 코드를 최소화합니다. 또는 채워진 Edge.sendEvent
개체가 포함된 XDM 페이로드와 함께API(자세한 내용은이벤트placeContext
참조)를 사용하여 앱에서 직접 동일한 기능을 구현할 수 있습니다.