위치 사용

앱에서 위치 지리적 위치 서비스를 사용하는 방법을 알아봅니다.

Adobe Experience Platform 데이터 수집 위치 서비스 는 위치를 인식하는 모바일 앱이 위치 컨텍스트를 이해할 수 있도록 해주는 지리적 위치 서비스입니다. 이 서비스는 유연한 관심 영역(POI) 데이터베이스를 동반하는 풍부하고 사용하기 쉬운 SDK 인터페이스를 사용합니다.

전제 조건

  • 모든 패키지 종속성은 Xcode 프로젝트에 있습니다.
  • AppDelegate에 등록된 확장입니다.
  • 개발 appId를 사용하도록 MobileCore를 구성했습니다.
  • 가져온 SDK.
  • 위의 변경 사항으로 앱을 빌드하고 실행했습니다.

학습 목표

이 단원에서는 다음과 같은 작업을 수행합니다

  • Places 서비스의 관심 영역을 정의하는 방법을 이해합니다.
  • Places 확장으로 태그 속성을 업데이트합니다.
  • 스키마를 업데이트하여 지리적 위치 이벤트를 캡처합니다.
  • Assurance에서 설정의 유효성을 검사합니다.
  • 앱을 업데이트하여 Places 확장을 등록합니다.
  • 앱의 위치 서비스에서 지리적 위치 추적을 구현합니다.

설정

Places 서비스가 앱 내에서 및 Mobile SDK 내에서 작동하려면 일부 설정을 수행해야 합니다.

위치 정의

Places 서비스에서 일부 관심 영역을 정의합니다.

  1. 데이터 수집 UI에서 위치 ​를 선택합니다.

  2. 자세히 를 선택하세요.

  3. 컨텍스트 메뉴에서 라이브러리 관리 ​를 선택합니다.

    라이브러리 관리 {modal="regular"}

  4. 라이브러리 관리 대화 상자에서 새로 만들기 ​를 선택합니다.

  5. 라이브러리 만들기 대화 상자에서 이름(예: Luma)을 입력하십시오.

  6. 확인 ​을 선택합니다.

    라이브러리 만들기 {modal="regular"}

  7. 라이브러리 관리 대화 상자를 닫으려면 닫기 ​를 선택합니다.

  8. POI 관리 ​로 돌아가서 POI 가져오기 ​를 선택하십시오.

  9. 위치 가져오기 대화 상자에서 시작 ​을 선택합니다.

  10. 라이브러리 목록에서 Luma ​을(를) 선택합니다.

  11. 다음 ​을 선택합니다.

    라이브러리 선택 {modal="regular"}

  12. Luma POIs ZIP 파일을 다운로드하고 컴퓨터의 위치에 추출합니다.

  13. 위치 가져오기 대화 상자에서 추출한 luma_pois.csv 파일을 CSV 파일 선택 - 파일 드래그 앤 드롭 ​에 끌어다 놓습니다. 유효성 검사 성공 - CSV 파일의 유효성을 검사했습니다 ​가 표시됩니다.

  14. 가져오기 시작 ​을 선택합니다. 성공 - 6개의 새 POI를 추가함 ​이 표시됩니다.

  15. 완료 ​를 선택합니다.

  16. POI 관리 ​에서 6개의 새로운 Luma 스토어가 목록에 추가됩니다. 목록 목록과 맵 맵 보기 간에 전환할 수 있습니다.

    위치 목록 {modal="regular"}

    .

위치 확장 설치

  1. 태그(으)로 이동하여 모바일 태그 속성을 찾은 다음 속성을 엽니다.

  2. 확장 ​을 선택하십시오.

  3. 카탈로그 ​를 선택하십시오.

  4. Places 확장을 검색합니다.

  5. 확장을 설치합니다.

    위치 추가

  6. 확장 설치 대화 상자에서:

    1. Luma ​라이브러리 선택​ 목록에서 ​을(를) 선택합니다.

    2. 작업 라이브러리(예: 초기 빌드)를 선택했는지 확인하십시오.

    3. 라이브러리에 저장 ​에서 라이브러리 및 빌드에 저장 ​을 선택합니다.

      위치 확장 설치 {modal="regular"}

      .

  7. 라이브러리가 다시 빌드되었습니다.

스키마 확인

스키마 만들기에 정의된 대로 스키마에 POI 및 지리적 위치 데이터를 수집하는 데 필요한 필드 그룹 및 클래스가 포함되어 있는지 확인합니다.

  1. 데이터 수집 인터페이스로 이동하여 왼쪽 레일에서 스키마 ​를 선택합니다.

  2. 상단 표시줄에서 찾아보기 ​를 선택합니다.

  3. 스키마를 선택하여 엽니다.

  4. 스키마 편집기에서 소비자 경험 이벤트 ​를 선택합니다.

  5. POI 인터랙션 및 지리적 위치 데이터를 캡처할 개체 및 필드가 있는 placeContext 개체가 표시됩니다.

    스키마 위치 {modal="regular"}

    .

태그 속성 업데이트

태그에 대한 위치 확장 기능은 지리적 위치 이벤트를 모니터링하고 이러한 이벤트를 기반으로 작업을 트리거할 수 있는 기능을 제공합니다. 이 기능을 사용하면 앱에서 구현해야 하는 API 코딩을 최소화할 수 있습니다.

데이터 요소

먼저 여러 데이터 요소를 만듭니다.

  1. 데이터 수집 UI에서 태그 속성으로 이동합니다.

  2. 왼쪽 레일에서 데이터 요소 ​를 선택합니다.

  3. 데이터 요소 추가 ​를 선택합니다.

  4. 데이터 요소 만들기 화면에서 Name - Entered과(와) 같은 이름을 입력하십시오.

  5. 확장 목록에서 위치 ​를 선택합니다.

  6. 데이터 요소 형식 목록에서 이름 ​을(를) 선택하십시오.

  7. TARGET 아래에서 현재 POI ​를 선택하십시오.

  8. 라이브러리에 저장 ​을 선택합니다.
    데이터 요소 {modal="regular"}

  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 장소 이름 마지막으로 종료한 POI
    Category - Current 장소 카테고리 현재 POI
    Category - Exited 장소 카테고리 마지막으로 종료한 POI
    City - Current 장소 구/군/시 현재 POI
    City - Exited 장소 구/군/시 마지막으로 종료한 POI

    다음 데이터 요소 목록이 있어야 합니다.

    데이터 요소 목록 {modal="regular"}

규칙

그런 다음 이러한 데이터 요소로 작업할 규칙을 정의합니다.

  1. 태그 속성의 왼쪽 레일에서 규칙 ​을 선택합니다.

  2. 규칙 추가 ​를 선택합니다.

  3. 규칙 만들기 화면에서 규칙 이름(예: POI - Entry)을 입력하십시오.

  4. 이벤트 아래의 추가 ​를 선택하십시오.

    1. 확장 목록에서 위치 ​를 선택하고 이벤트 유형 목록에서 POI 입력 ​을 선택합니다.
    2. 변경 내용 유지 ​를 선택합니다.
      이벤트 태그 .
  5. 작업 아래의 추가 ​을(를) 선택하십시오.

    1. 확장 목록에서 Mobile Core ​를 선택하고 작업 유형 ​에서 데이터 첨부 ​를 선택합니다. 이 작업은 페이로드 데이터를 첨부합니다.

    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. 변경 내용 유지 ​를 선택합니다.
      태그 작업 {modal="regular"}

  6. Mobile Core - 데이터 첨부 작업 옆에 있는 추가 ​를 선택합니다.

    1. 확장 목록에서 Adobe Experience Platform Edge Network ​을 선택하고 Edge Network으로 이벤트 전달 ​을 선택합니다. 이 작업을 수행하면 이벤트 및 추가 페이로드 데이터가 Platform Edge Network에 전달됩니다.
    2. 변경 내용 유지 ​를 선택합니다.
  7. 규칙을 저장하려면 라이브러리에 저장 ​을 선택합니다.

    규칙 {modal="regular"}

다른 규칙을 만들어 보겠습니다

  1. 규칙 만들기 화면에서 규칙 이름(예: POI - Exit)을 입력하십시오.

  2. 이벤트 아래의 추가 ​를 선택하십시오.

    1. 확장 목록에서 위치 ​를 선택하고 이벤트 유형 목록에서 POI 종료 ​를 선택합니다.
    2. 변경 내용 유지 ​를 선택합니다.
  3. 작업 아래의 추가 ​을(를) 선택하십시오.

    1. 확장 목록에서 Mobile Core ​을 선택하고 작업 유형 목록에서 데이터 첨부 ​를 선택합니다.

    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. Mobile Core - 데이터 첨부 작업 옆에 있는 추가 ​를 선택합니다.

    1. 확장 목록에서 Adobe Experience Platform Edge Network ​을 선택하고 Edge Network으로 이벤트 전달 ​을 선택합니다.
    2. 변경 내용 유지 ​를 선택합니다.
  5. 규칙을 저장하려면 라이브러리에 저장 ​을 선택합니다.

    규칙 {modal="regular"}

태그의 모든 변경 사항이 게시되도록 하려면

  1. 빌드할 라이브러리로 초기 빌드 ​를 선택합니다.

  2. 빌드 ​를 선택합니다.

    라이브러리 빌드 {modal="regular"}

Assurance에서 설정 유효성 검사

Assurance에서 설정의 유효성을 검사하려면:

  1. Assurance UI로 이동합니다.

  2. 왼쪽 레일에서 아직 사용할 수 없는 경우 왼쪽 레일에서 구성 ​을 선택하고 이벤트 옆의 추가 ​을(를) 선택한 다음 장소 서비스 아래의 맵 및 시뮬레이션 ​을(를) 선택합니다.

  3. 저장 ​을 선택합니다.

  4. 왼쪽 레일에서 맵 및 시뮬레이션 ​을 선택합니다.

  5. 지도를 POI 중 하나의 위치로 이동합니다.

  6. 톱니바퀴 부하 POI를 시뮬레이션하도록 선택합니다. POI는 원과 핀을 사용하여 식별됩니다.

  7. POI를 선택합니다.

  8. 팝업에서 톱니바퀴 시작 이벤트 시뮬레이션 ​을 선택합니다.

    시작 이벤트 시뮬레이션 {modal="regular"}

  9. 왼쪽 레일에서 이벤트 ​를 선택하면 시뮬레이션한 이벤트가 표시됩니다.

    AJO 의사 결정 유효성 검사 {modal="regular"}

앱의 위치 구현

이전 단원에서 설명한 대로 모바일 태그 확장을 설치하면 구성만 제공됩니다. 그런 다음 Places SDK을 설치하고 등록해야 합니다. 이 단계가 명확하지 않으면 SDK 설치 섹션을 검토하십시오.

NOTE
SDK 설치 섹션을 완료한 경우 위치 SDK이 이미 설치되어 있으므로 이 단계를 건너뛸 수 있습니다.
IMPORTANT
앱에서 Android용 맵 SDK을 설정하려면 사용량에 따른 비용 발생으로 결제를 설정해야 합니다. 고유한 애플리케이션 ID와 SHA-1 키를 사용하여 비용을 제한할 수 있습니다. 자세한 내용은 Android용 SDK 매핑을 참조하십시오. 청구 설정을 하지 않거나 비용이 발생하지 않도록 하려면 이 단원을 건너뜁니다.
iOS
  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)
      }
      
    2. 종료 단추에 다음 코드를 입력합니다.

      code language-swift
      // Simulate geofence exit event
      Task {
          await MobileSDK.shared.processRegionEvent(regionEvent: .exit, forRegion: region)
      }
      
Android
  1. Android Studio에서 aepsdk-places-android이(가) Android:app V자 축소​ Gradle Scripts 의 build.gradle.kts(모듈 ) ​에 있는 종속성의 일부인지 확인하십시오. Gradle을(를) 참조하세요.

  2. Android Studio 프로젝트 탐색기에서 Android VDown > app > kotlin+java > com.adobe.luma.tutorial.android > LumaApplication ​으로 이동합니다.

  3. com.adobe.marketing.mobile.Messaging이(가) 가져오기 목록의 일부인지 확인하십시오.

    import import com.adobe.marketing.mobile.Places

  4. Places.EXTENSION이(가) 등록 중인 확장 배열의 일부인지 확인하십시오.

    code language-kotlin
    val extensions = listOf(
        Identity.EXTENSION,
        Lifecycle.EXTENSION,
        Signal.EXTENSION,
        Edge.EXTENSION,
        Consent.EXTENSION,
        UserProfile.EXTENSION,
        Places.EXTENSION,
        Messaging.EXTENSION,
        Optimize.EXTENSION,
        Assurance.EXTENSION
    )
    
  5. Android Studio 프로젝트 탐색기에서 Android VDown > app > kotlin+java > com.adobe.luma.tutorial.android > 모델 > MobileSDK(으)로 이동합니다. suspend fun processGeofence(geofence: Geofence?, transitionType: Int) 함수를 찾습니다. 다음 코드를 추가합니다.

    code language-kotlin
    // Process geolocation event
    Places.processGeofence(geofence, transitionType)
    

    Places.processRegionEvent API는 지리적 위치 정보를 Places 서비스에 전달합니다.

  6. Android Studio 프로젝트 탐색기에서 Android VDown > app > kotlin+java > com.adobe.luma.tutorial.android > 보기 > LocationView.k(으)로 이동합니다.

    1. [입력] 단추에 다음 코드를 입력합니다.

      code language-kotlin
      // Simulate geofence entry event
      coroutineScope.launch {
          MobileSDK.shared.processGeofence(
             region,
             Geofence.GEOFENCE_TRANSITION_ENTER
          )
      }
      
    2. 종료 단추에 다음 코드를 입력합니다.

      code language-kotlin
      // Simulate geofence entry event
      coroutineScope.launch {
          MobileSDK.shared.processGeofence(
              region,
              Geofence.GEOFENCE_TRANSITION_EXIT
          )
      }
      

앱을 사용하여 유효성 검사

앱의 지리적 위치 기능을 확인하려면:

iOS
  1. 장치 또는 시뮬레이터에서 앱을 엽니다.

  2. 위치 탭으로 이동합니다.

  3. 맵을 이동하고(드래그) 파란색 가운데 원이 POI 중 하나(예: 런던) 위에 있는지 확인합니다.

  4. 누르기 {width="20"} 범주와 이름이 빨간색 위치에 있는 레이블에 표시될 때까지(pin 사용).

  5. POI의 레이블을 탭하여 주변 POI 시트를 엽니다.

    {width="300"}

  6. 시작 또는 종료 단추를 눌러 앱에서 지오펜스 시작 및 지오펜스 종료 이벤트를 시뮬레이션합니다.

    {width="300"}

  7. Assurance UI에 이벤트가 표시됩니다. 이벤트 및 위치 서비스 이벤트에서 모두.

Android
  1. 위치 탭으로 이동합니다.

  2. 지오펜스 사용 및/또는 시뮬레이션 ​을 선택합니다.

  3. 나타나는 빨간색 원 안의 아무 곳이나 탭합니다.

    {width="300"}

  4. 시작 또는 종료 단추를 눌러 앱에서 지오펜스 시작 및 지오펜스 종료 이벤트를 시뮬레이션합니다.

    {width="300"}

  5. Assurance UI에 이벤트가 표시됩니다.

다음 단계

이제 앱에서 지리적 위치 기능에 더 많은 기능을 추가하려면 모든 도구가 있어야 합니다. 이벤트를 Edge Network으로 전달했으므로 Experience Platform에 대한 앱을 설정한 후에는 앱에 사용된 프로필에 대해 경험 이벤트가 표시되는 것을 볼 수 있습니다.

이 자습서의 Journey Optimizer 섹션에서 여정을 트리거하는 데 경험 이벤트를 사용할 수 있습니다(Journey Optimizer으로 푸시 알림인앱 메시지 참조). 예를 들어 앱 사용자가 실제 스토어의 geofence에 들어오면 일부 제품 프로모션과 함께 푸시 알림을 전송하는 일반적인 사례입니다.

앱에 대한 지리적 위치 기능의 이러한 구현으로 코드가 최소화됩니다. 태그 속성에서 정의한 Places 서비스, 데이터 요소 및 규칙은 대부분의 기능을 제공합니다. 또는 채워진 Edge.sendEvent 개체가 포함된 XDM 페이로드와 함께API(자세한 내용은이벤트placeContext 참조)를 사용하여 앱에서 직접 동일한 기능을 구현할 수 있습니다.

SUCCESS
이제 Experience Platform Mobile SDK에서 위치 확장 기능을 사용하여 지리적 위치 서비스용 앱을 활성화했습니다.
Adobe Experience Platform Mobile SDK에 대해 학습하는 데 시간을 투자해 주셔서 감사합니다. 질문이 있거나 일반적인 피드백을 공유하고 싶거나 향후 콘텐츠에 대한 제안이 있는 경우 이 Experience League 커뮤니티 토론 게시물에서 공유하십시오.

다음: Adobe Analytics에 데이터 매핑

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