이벤트 데이터 추적
모바일 앱에서 이벤트를 추적하는 방법에 대해 알아봅니다.
Edge Network 확장은 Platform Edge Network에게 경험 이벤트를 전송하기 위한 API를 제공합니다. 경험 이벤트 는 XDM ExperienceEvent 스키마 정의를 따르는 데이터가 포함된 개체입니다. 보다 간단하게, 모바일 앱에서 사람들이 하는 작업을 캡처합니다. Platform Edge Network이 데이터를 수신하면 데이터 스트림에 구성된 애플리케이션 및 서비스(예: Adobe Analytics 및 Experience Platform)로 전달할 수 있습니다. 제품 설명서에서 경험 이벤트에 대해 자세히 알아보세요.
전제 조건
- 모든 패키지 종속성은 Xcode 프로젝트에 있습니다.
- AppDelegate 에 등록된 확장입니다.
- 개발
appId
을(를) 사용하도록 MobileCore 확장을 구성했습니다. - 가져온 SDK.
- 위의 변경 사항으로 앱을 빌드하고 실행했습니다.
학습 목표
이 단원에서는 다음과 같은 작업을 수행합니다
- 스키마를 기반으로 XDM 데이터를 구성하는 방법을 이해합니다.
- 표준 필드 그룹을 기반으로 XDM 이벤트를 전송합니다.
- 사용자 지정 필드 그룹을 기반으로 XDM 이벤트를 보냅니다.
- XDM 구매 이벤트를 보냅니다.
- Assurance을 사용하여 확인합니다.
경험 이벤트 구성
Adobe Experience Platform Edge 확장은 이전에 정의한 XDM 스키마 다음에 오는 이벤트를 Adobe Experience Platform Edge Network에 보낼 수 있습니다.
프로세스는 다음과 같습니다.
-
추적하려는 모바일 앱 상호 작용을 식별합니다.
-
스키마를 검토하고 적절한 이벤트를 식별합니다.
-
스키마를 검토하고 이벤트를 설명하는 데 사용해야 하는 추가 필드를 식별합니다.
-
데이터 개체를 구성하고 채웁니다.
-
이벤트를 만들고 전송합니다.
-
유효성 검사.
표준 필드 그룹
표준 필드 그룹의 경우 프로세스는 다음과 같습니다.
-
스키마에서 수집하려는 이벤트를 식별합니다. 이 예제에서는 상거래 경험 이벤트(예: 제품 보기(productViews) 이벤트)를 추적합니다.
-
앱에서 경험 이벤트 데이터를 포함하는 개체를 만들려면 다음과 같은 코드를 사용합니다.
code language-swift var xdmData: [String: Any] = [ "eventType": "commerce.productViews", "commerce": [ "productViews": [ "value": 1 ] ] ]
eventType
: 발생한 이벤트를 설명합니다. 가능한 경우 알려진 값을(를) 사용하십시오.commerce.productViews.value
: 이벤트의 숫자 또는 부울 값입니다. 부울(또는 Adobe Analytics의 "카운터")인 경우 값은 항상 1로 설정됩니다. 숫자 또는 통화 이벤트인 경우 값은 1보다 클 수 있습니다.
-
스키마에서 상거래 제품 보기 이벤트와 관련된 추가 데이터를 식별합니다. 이 예제에서는 상거래 관련 이벤트에 사용되는 표준 필드 집합인 productListItems 을(를) 포함합니다.
- productListItems 은(는) 배열이므로 여러 제품을 제공할 수 있습니다.
-
이 데이터를 추가하려면
xdmData
개체를 확장하여 보조 데이터를 포함하십시오.code language-swift var xdmData: [String: Any] = [ "eventType": "commerce.productViews", "commerce": [ "productViews": [ "value": 1 ] ], "productListItems": [ [ "name": productName, "SKU": sku, "priceTotal": priceString, "quantity": 1 ] ] ]
-
이제 이 데이터 구조를 사용하여
ExperienceEvent
을(를) 만들 수 있습니다.code language-swift let productViewEvent = ExperienceEvent(xdm: xdmData)
-
sendEvent
API를 사용하여 Platform Edge Network에 이벤트와 데이터를 보냅니다.code language-swift Edge.sendEvent(experienceEvent: productViewEvent)
Edge.sendEvent
API는 MobileCore.trackAction
및 MobileCore.trackState
API 호출에 해당하는 AEP Mobile SDK입니다. 자세한 내용은 Analytics 모바일 확장에서 Adobe Experience Platform Edge Network으로 마이그레이션을 참조하십시오.
이제 Xcode 프로젝트에서 이 코드를 실제로 구현합니다.
앱에 서로 다른 상거래 제품 관련 작업이 있으며 사용자가 수행한 다음 작업에 따라 이벤트를 전송하려고 합니다.
-
보기: 사용자가 특정 제품을 볼 때 발생합니다.
-
장바구니에 추가: 사용자가 탭할 때 제품 세부 정보 화면의
{width="20"}
,
-
나중에 저장: 사용자가 탭할 때 제품 세부 정보 화면의
{width="15"}
,
-
구매: 사용자가 탭할 때 제품 세부 정보 화면의
{width="20"}
.
재사용 가능한 방식으로 상거래 관련 경험 이벤트 전송을 구현하려면 전용 함수를 사용합니다.
-
Xcode Project 탐색기에서 Luma > Luma > Utils > MobileSDK(으)로 이동한 다음
func sendCommerceExperienceEvent(commerceEventType: String, product: Product)
함수에 추가합니다.code language-swift // Set up a data dictionary, create an experience event and send the event. let xdmData: [String: Any] = [ "eventType": "commerce." + commerceEventType, "commerce": [ commerceEventType: [ "value": 1 ] ], "productListItems": [ [ "name": product.name, "priceTotal": product.price, "SKU": product.sku ] ] ] let commerceExperienceEvent = ExperienceEvent(xdm: xdmData) Edge.sendEvent(experienceEvent: commerceExperienceEvent)
이 함수는 상거래 경험 이벤트 유형 및 제품을 매개 변수로 사용합니다.
- 함수의 매개 변수를 사용하여 XDM 페이로드를 사전으로 설정합니다.
- 사전을 사용하여 경험 이벤트를 설정합니다.
Edge.sendEvent
API를 사용하여 경험 이벤트를 보냅니다.
-
Xcode Project 탐색기의 Luma > Luma > Views > Products > ProductView(으)로 이동하고
sendCommerceExperienceEvent
함수에 다양한 호출을 추가합니다.-
.task
한정자에서ATTrackingManager.trackingAuthorizationStatus
폐쇄 내에 있습니다. 이.task
한정자는 제품 보기가 초기화되어 표시될 때 호출되므로 특정 시점에 제품 보기 이벤트를 보내려고 합니다.code language-swift // Send productViews commerce experience event MobileSDK.shared.sendCommerceExperienceEvent(commerceEventType: "productViews", product: product)
-
각 버튼에 대해( {width="15"}, {width="20"} 및 {width="20"}) 도구 모음에서
ATTrackingManager.trackingAuthorizationStatus == .authorized
종료 내에 관련 호출을 추가합니다.-
대상 {width="15"}:
code language-swift // Send saveForLater commerce experience event MobileSDK.shared.sendCommerceExperienceEvent(commerceEventType: "saveForLaters", product: product)
-
대상 {width="20"}:
code language-swift // Send productListAdds commerce experience event MobileSDK.shared.sendCommerceExperienceEvent(commerceEventType: "productListAdds", product: product)
-
대상 {width="20"}:
code language-swift // Send purchase commerce experience event MobileSDK.shared.sendCommerceExperienceEvent(commerceEventType: "purchases", product: product)
-
-
java.util.Map
)을 기본 인터페이스로 사용하여 XDM 페이로드를 구성합니다.사용자 정의 필드 그룹
앱 자체에서 화면 보기 및 상호 작용을 추적한다고 상상해 보십시오. 이 유형의 이벤트에 대해 사용자 정의 필드 그룹을 정의했음을 기억하십시오.
-
스키마에서 수집하려는 이벤트를 식별합니다.
-
객체 구성을 시작합니다.
note note NOTE -
표준 필드 그룹은 항상 오브젝트 루트에서 시작합니다.
-
사용자 지정 필드 그룹은 이 예제에서 Experience Cloud 조직
_techmarketingdemos
에 고유한 개체에서 항상 시작됩니다.
앱 상호 작용 이벤트의 경우 다음과 같은 개체를 구성합니다.
code language-swift let xdmData: [String: Any] = [ "eventType": "application.interaction", "_techmarketingdemos": [ "appInformation": [ "appInteraction": [ "name": "login", "appAction": [ "value": 1 ] ] ] ] ]
화면 추적 이벤트의 경우 다음과 같은 개체를 구성합니다.
code language-swift var xdmData: [String: Any] = [ "eventType": "application.scene", "_techmarketingdemos": [ "appInformation": [ "appStateDetails": [ "screenType": "App", "screenName": "luma: content: ios: us: en: login", "screenView": [ "value": 1 ] ] ] ] ]
-
-
이제 이 데이터 구조를 사용하여
ExperienceEvent
을(를) 만들 수 있습니다.code language-swift let event = ExperienceEvent(xdm: xdmData)
-
이벤트와 데이터를 Platform Edge Network에 보냅니다.
code language-swift Edge.sendEvent(experienceEvent: event)
여기서도 Xcode 프로젝트에서 이 코드를 실제로 구현해 보겠습니다.
-
편의를 위해 MobileSDK 에서 두 개의 함수를 정의합니다. Xcode 프로젝트 탐색기에서 Luma > Luma > Utils > MobileSDK(으)로 이동합니다.
-
앱 상호 작용을 위한 것입니다. 이 코드를
func sendAppInteractionEvent(actionName: String)
함수에 추가합니다.code language-swift // Set up a data dictionary, create an experience event and send the event. let xdmData: [String: Any] = [ "eventType": "application.interaction", tenant : [ "appInformation": [ "appInteraction": [ "name": actionName, "appAction": [ "value": 1 ] ] ] ] ] let appInteractionEvent = ExperienceEvent(xdm: xdmData) Edge.sendEvent(experienceEvent: appInteractionEvent)
이 함수는 작업 이름을 매개 변수로 사용하고,
- 함수의 매개 변수를 사용하여 XDM 페이로드를 사전으로 설정합니다.
- 사전을 사용하여 경험 이벤트를 설정합니다.
Edge.sendEvent
API를 사용하여 경험 이벤트를 보냅니다.
-
그리고 화면 추적을 위한 것도 있습니다. 이 코드를
func sendTrackScreenEvent(stateName: String)
함수에 추가합니다.code language-swift // Set up a data dictionary, create an experience event and send the event. let xdmData: [String: Any] = [ "eventType": "application.scene", tenant : [ "appInformation": [ "appStateDetails": [ "screenType": "App", "screenName": stateName, "screenView": [ "value": 1 ] ] ] ] ] let trackScreenEvent = ExperienceEvent(xdm: xdmData) Edge.sendEvent(experienceEvent: trackScreenEvent)
이 함수는 상태 이름을 매개 변수로 사용하고,
- 함수의 매개 변수를 사용하여 XDM 페이로드를 사전으로 설정합니다.
- 사전을 사용하여 경험 이벤트를 설정합니다.
Edge.sendEvent
API를 사용하여 경험 이벤트를 보냅니다.
-
-
Luma > Luma > Views > General > LoginSheet(으)로 이동합니다.
-
로그인 단추 닫기에 다음과 같은 강조 표시된 코드를 추가합니다.
code language-swift // Send app interaction event MobileSDK.shared.sendAppInteractionEvent(actionName: "login")
-
onAppear
한정자에 다음 강조 표시된 코드를 추가하십시오.code language-swift // Send track screen event MobileSDK.shared.sendTrackScreenEvent(stateName: "luma: content: ios: us: en: login")
-
유효성 검사
-
설치 지침 섹션을 검토하여 시뮬레이터 또는 장치를 Assurance과 연결하십시오.
-
Assurance 아이콘을 왼쪽으로 이동합니다.
-
탭 표시줄에서 홈 을(를) 선택하고 홈 화면에 ECID, 이메일 및 CRM ID 이 표시되는지 확인하십시오.
-
탭 표시줄에서 Products 을(를) 선택합니다.
-
제품을 선택합니다.
-
선택 {width="15"}.
-
선택 {width="20"}.
-
선택 {width="15"}.
{width="300"}
-
-
Assurance UI에서 com.adobe.edge.konductor 공급업체에서 hitReceived 이벤트를 찾습니다.
-
이벤트를 선택하고 messages 개체에서 XDM 데이터를 검토합니다. 또는 원시 이벤트 복사 를 사용하고 원하는 텍스트 또는 코드 편집기를 사용하여 이벤트를 붙여 넣고 검사할 수 있습니다.
다음 단계
이제 앱에 데이터 수집을 추가할 수 있는 모든 도구가 있어야 합니다. 사용자가 앱에서 제품과 상호 작용하는 방식에 더 많은 인텔리전스를 추가하고 앱에 더 많은 앱 상호 작용 및 화면 추적 호출을 추가할 수 있습니다.
- 앱에 주문, 체크아웃, 빈 장바구니 및 기타 기능을 구현하고 이 기능에 관련 상거래 경험 이벤트를 추가합니다.
- 사용자가 다른 앱 상호 작용을 추적하려면 적절한 매개 변수를 사용하여
sendAppInteractionEvent
에 대한 호출을 반복합니다. - 앱에서 사용자가 본 화면을 추적하려면 적절한 매개 변수를 사용하여
sendTrackScreenEvent
에 대한 호출을 반복합니다.
Analytics 및 Platform에 이벤트 보내기
이벤트를 수집하여 플랫폼 Edge Network으로 보냈으므로 데이터스트림에 구성된 응용 프로그램 및 서비스로 전송됩니다. 이후 단원에서는 이 데이터를 Adobe Analytics, Adobe Experience Platform 및 Adobe Target 및 Adobe Journey Optimizer과 같은 기타 Adobe Experience Cloud 솔루션에 매핑합니다.
다음: WebViews 처리