의사 결정 관리를 사용하여 오퍼 만들기 및 표시
Experience Platform Mobile SDK를 사용하여 모바일 앱에서 Journey Optimizer 의사 결정 관리의 오퍼를 표시하는 방법을 알아봅니다.
Journey Optimizer 의사 결정 관리를 사용하면 적절한 시기에 모든 접점에서 고객에게 최상의 오퍼와 경험을 제공할 수 있습니다. 디자인한 후에는 개인화된 오퍼로 대상을 타기팅하십시오.
의사 결정 관리를 사용하면 마케팅 오퍼의 중앙 라이브러리와 Adobe Experience Platform에서 만든 풍부한 실시간 프로필에 규칙과 제한을 적용하는 의사 결정 엔진을 통해 손쉽게 개인화할 수 있습니다. 따라서 고객에게 적절한 시기에 적절한 오퍼를 보낼 수 있습니다. 자세한 내용은 의사 결정 관리 정보를 참조하세요.
전제 조건
- SDK가 설치 및 구성된 앱을 빌드하고 실행했습니다.
- Adobe Experience Platform용 앱을 설정합니다.
- 여기에 설명된 대로 오퍼 및 결정을 관리할 수 있는 적절한 권한이 있는 Journey Optimizer - 의사 결정 관리에 액세스하십시오.
학습 목표
이 단원에서는 다음과 같은 작업을 수행합니다
- 의사 결정 관리에 사용할 Edge 구성을 업데이트합니다.
- Journey Optimizer - Decisioning 확장을 사용하여 태그 속성을 업데이트합니다.
- 스키마를 업데이트하여 제안 이벤트를 캡처합니다.
- Assurance에서 설정의 유효성을 검사합니다.
- Journey Optimizer - 의사 결정 관리의 오퍼를 기반으로 오퍼 의사 결정을 만듭니다.
- 앱을 업데이트하여 Optimizer 확장을 등록합니다.
- 앱에서 의사 결정 관리의 오퍼를 구현합니다.
설정
데이터 스트림 구성 업데이트
모바일 앱에서 플랫폼 Edge Network으로 전송된 데이터가 의사 결정 관리인 Journey Optimizer으로 전달되도록 하려면 데이터스트림을 업데이트합니다.
-
데이터 수집 UI에서 데이터스트림 을(를) 선택하고 데이터스트림(예: Luma Mobile App)을 선택합니다.
-
Experience Platform 에 대해 를 선택하고 상황에 맞는 메뉴에서 편집 을 선택합니다.
-
데이터스트림 > > Adobe Experience Platform 화면에서 Offer decisioning, Edge 세그멘테이션 및 Adobe Journey Optimizer 이 선택되었는지 확인하십시오. Target 단원을 수행하려면 Personalization 대상 도 선택하십시오. 자세한 내용은 Adobe Experience Platform 설정을 참조하세요.
-
데이터스트림 구성을 저장하려면 저장 을 선택합니다.
Journey Optimizer - Decisioning 태그 확장 설치
-
태그(으)로 이동하여 모바일 태그 속성을 찾은 다음 속성을 엽니다.
-
확장 을 선택하십시오.
-
카탈로그 를 선택하십시오.
-
Adobe Journey Optimizer - Decisioning 확장을 검색합니다.
-
확장을 설치합니다. 확장은 추가 구성이 필요하지 않습니다.
스키마 업데이트
- 데이터 수집 인터페이스로 이동하여 왼쪽 레일에서 스키마 를 선택합니다.
- 상단 표시줄에서 찾아보기 를 선택합니다.
- 스키마를 선택하여 엽니다.
- 스키마 편집기에서 필드 그룹 옆에 있는 추가 를 선택합니다.
- 필드 그룹 추가 대화 상자에서
을 통해
proposition
을(를) 검색하고 경험 이벤트 - 제안 상호 작용 을 선택하고 필드 그룹 추가 를 선택합니다. 이 필드 그룹은 오퍼와 관련된 경험 이벤트 데이터(제공 사항, 수집, 결정 및 기타 매개 변수의 일부)를 수집합니다(이 단원의 뒷부분 참조). 하지만 또한 그 제안은 어떻게 되어가고 있나요? 표시됩니까, 상호 작용합니까, 해제됩니까, 등입니다.
- 저장 을 선택하여 스키마에 변경 내용을 저장합니다.
Assurance에서 설정 확인
Assurance에서 설정을 확인하려면:
- Assurance UI로 이동합니다.
- 왼쪽 레일에서 구성 을 선택하고 ADOBE JOURNEY OPTIMIZER DECISIONING 아래의 설정 유효성 검사 옆에 있는 을 선택합니다.
- 저장 을 선택합니다.
- 왼쪽 레일에서 설정 유효성 검사 를 선택합니다. 애플리케이션의 데이터 스트림 설정과 SDK 설정이 모두 검증됩니다.
배치 생성
오퍼를 실제로 만들려면 먼저 모바일 앱에서 이러한 오퍼를 배치할 방법과 위치를 정의해야 합니다. 의사 결정 관리에서 이 목적을 위한 배치를 정의하고 JSON 페이로드를 지원하는 모바일 채널에 대한 배치를 정의합니다.
-
Journey Optimizer UI의 왼쪽 레일에서 의사 결정 관리 에서 구성 요소 를 선택합니다.
-
상단 표시줄에서 배치 를 선택합니다.
-
이름이 모바일 JSON, 모바일 이(가) 채널 유형, JSON 이(가) 콘텐츠 유형 인 배치가 나열되지 않으면 배치를 만들어야 합니다. 그렇지 않으면 오퍼 만들기를 계속하십시오.
모바일 JSON 배치를 만들려면 다음 작업을 수행하십시오.
-
배치 만들기를 선택하십시오.
- 세부 정보 섹션에서
Mobile JSON
을(를) 이름(으)로 입력하고 채널 유형 에서 모바일 을(를) 선택하고 콘텐츠 유형 에서 JSON 을(를) 선택합니다. - 배치를 저장하려면 저장 을 선택하십시오.
- 세부 정보 섹션에서
오퍼 만들기
-
Journey Optimizer UI의 왼쪽 레일에서 의사 결정 관리 에서 오퍼 를 선택합니다.
-
오퍼 화면에서 찾아보기 를 선택하여 오퍼 목록을 확인합니다.
-
오퍼 만들기 를 선택합니다.
-
새 오퍼 대화 상자에서 개인 맞춤화된 오퍼 을 선택하고 다음 을 클릭합니다.
-
새 맞춤형 오퍼 만들기 의 세부 정보 단계에서:
-
오퍼의 이름(예:
Luma - Juno Jacket
)을 입력하고 시작 날짜 및 시간 및 종료 날짜 및 시간 을 입력하십시오. 이 날짜 이외에는 Decisioning 엔진에서 오퍼를 선택하지 않습니다. -
다음 을 선택합니다.
-
-
새 맞춤형 오퍼 만들기 의 표시 추가 단계에서:
-
채널 목록에서 모바일 을 선택하고 배치 목록에서 모바일 JSON 을 선택합니다.
-
콘텐츠 에 대해 사용자 지정 을(를) 선택하십시오.
-
콘텐츠 추가 를 선택합니다. 개인화 추가 대화 상자에서:
-
모드 선택기를 사용할 수 있는 경우 JSON(으)로 설정되어 있는지 확인하십시오.
-
다음 JSON을 입력합니다.
code language-json { "title": "Juno Jacket", "text": "On colder-than-comfortable mornings, you'll love warming up in the Juno All-Ways Performance Jacket, designed to compete with wind and chill. Built-in Cocona™ technology aids evaporation, while a special zip placket and stand-up collar keep your neck protected.", "image": "https://luma.enablementadobe.com/content/dam/luma/en/products/women/tops/jackets/wj06-purple_main.jpg" }
-
저장 을 선택합니다.
-
-
다음 을 선택합니다.
-
-
개인 맞춤화된 새 오퍼 만들기 의 제약 조건 추가 단계에서:
-
우선 순위 을(를)
10
(으)로 설정합니다. -
한도 포함 을 해제합니다.
-
다음 을 선택합니다.
-
-
새 개인 맞춤화된 오퍼 만들기 의 검토 단계에서:
- 오퍼를 검토한 다음 마침 을 선택합니다.
- 오퍼 저장 대화 상자에서 저장 및 승인 을 선택합니다.
-
3~8단계를 반복하여 이름과 컨텐츠가 다른 오퍼를 4개 더 만듭니다. 다른 모든 구성 값(예: 시작 날짜 및 시간 또는 우선 순위)은 사용자가 만든 첫 번째 오퍼와 유사합니다. 중복 오퍼를 빠르게 만들고 편집할 수 있습니다.
-
Journey Optimizer UI의 왼쪽 레일에서 오퍼 를 선택한 다음 상단 막대에서 오퍼를 선택합니다.
-
생성한 오퍼의 행을 선택합니다.
-
오른쪽 창에서 추가 작업 을 선택하고 컨텍스트 메뉴에서 복제 을 선택합니다.
아래 표를 사용하여 네 개의 다른 오퍼를 정의합니다.
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 layout-fixed 오퍼 이름 JSON의 오퍼 콘텐츠 Luma - 물병 확인 { "title": "Affirm Water Bottle", "text": "You'll stay hydrated with ease with the Affirm Water Bottle by your side or in hand. Measurements on the outside help you keep track of how much you're drinking, while the screw-top lid prevents spills. A metal carabiner clip allows you to attach it to the outside of a backpack or bag for easy access.", "image": "https://luma.enablementadobe.com/content/dam/luma/en/products/gear/fitness-equipment/ug06-lb-0.jpg" }
Luma - Desiree 피트니스 티 { "title": "Desiree Fitness Tee", "text": "When you're too far to turn back, thank yourself for choosing the Desiree Fitness Tee. Its ultra-lightweight, ultra-breathable fabric wicks sweat away from your body and helps keeps you cool for the distance.", "image": "https://luma.enablementadobe.com/content/dam/luma/en/products/women/tops/tees/ws05-yellow_main.jpg" }
Luma - Adrienne Trek Jacket { "title": "Adrienne Trek Jacket", "text": "You're ready for a cross-country jog or a coffee on the patio in the Adrienne Trek Jacket. Its style is unique with stand collar and drawstrings, and it fits like a jacket should.", "image": "https://luma.enablementadobe.com/content/dam/luma/en/products/women/tops/jackets/wj08-gray_main.jpg" }
Luma - Aero 일일 피트니스 티 { "title": "Aero Daily Fitness Tee", "text": "Need an everyday action tee that helps keep you dry? The Aero Daily Fitness Tee is made of 100% polyester wicking knit that funnels moisture away from your skin. Don't be fooled by its classic style; this tee hides premium performance technology beneath its unassuming look.", "image": "https://luma.enablementadobe.com/content/dam/luma/en/products/men/tops/tees/ms01-black_main.jpg" }
-
-
마지막 단계로 고객에게 다른 오퍼에 대한 자격이 없는 경우 전송되는 대체 오퍼를 만들어야 합니다.
-
오퍼 만들기 를 선택합니다.
-
새 오퍼 대화 상자에서 개인 맞춤화된 오퍼 을 선택하고 다음 을 선택합니다.
-
새 대체 오퍼 만들기 의 세부 정보 단계에서 오퍼에 대한 이름(예:
Luma - Fallback Offer
)을 입력하고 다음 을(를) 선택합니다. -
새 대체 오퍼 만들기 의 표시 추가 단계에서:
-
채널 목록에서 모바일 을 선택하고 배치 목록에서 모바일 JSON 을 선택합니다.
-
콘텐츠 에 대해 사용자 지정 을(를) 선택하십시오.
-
콘텐츠 추가 를 선택합니다.
-
개인화 추가 대화 상자에서 다음 JSON을 입력하고 저장 을 선택합니다.
code language-json { "title": "Luma", "text": "Your store for sports wear and equipment.", "image": "https://luma.enablementadobe.com/content/dam/luma/en/logos/Luma_Logo.png" }
-
다음 을 선택합니다.
-
-
-
새 대체 항목 만들기 오퍼의 검토 단계에서:
- 오퍼를 검토한 다음 마침 을 선택합니다.
- 오퍼 저장 대화 상자에서 저장 및 승인 을 선택합니다.
이제 다음 오퍼 목록이 있어야 합니다.
컬렉션 만들기
모바일 앱 사용자에게 오퍼를 제공하려면 만든 하나 이상의 오퍼로 구성된 오퍼 컬렉션을 정의해야 합니다.
-
Journey Optimizer UI의 왼쪽 레일에서 오퍼 를 선택합니다.
-
상단 표시줄에서 컬렉션 을(를) 선택합니다.
-
컬렉션 만들기 를 선택합니다.
-
새 컬렉션 대화 상자에서 컬렉션에 사용할 이름(예:
Luma - Mobile App Collection
)을 입력하고 정적 컬렉션 만들기 를 선택한 후 다음 을 클릭합니다. -
Luma - Mobile App Collection 에서 컬렉션에 포함할 오퍼를 선택합니다. 이 자습서에서는 만든 오퍼 5개를 선택합니다. Luma 을(를) 입력하는 등의 방법으로 검색 필드를 사용하여 목록을 쉽게 필터링할 수 있습니다.
-
저장 을 선택합니다.
의사 결정 만들기
마지막 단계는 결정을 정의하는 것입니다. 이 결정은 하나 이상의 결정 범위와 대체 오퍼의 조합입니다.
의사 결정 범위는 특정 배치(예: 이메일의 HTML 또는 모바일 앱의 JSON)와 하나 이상의 평가 기준의 조합입니다.
평가 기준은 다음 두 가지를 결합한 것입니다.
- 오퍼 컬렉션,
- 자격 규칙: 예를 들어, 오퍼는 특정 대상에만 사용할 수 있습니다.
- 순위 방법: 여러 오퍼를 사용할 수 있는 경우 순위를 매기는 데 사용할 방법(예: 오퍼 우선 순위, 공식 또는 AI 모델 사용)을 선택합니다.
배치, 규칙, 등급, 오퍼, 표시, 컬렉션, 의사 결정 등이 서로 상호 작용하고 관계를 맺는 방식을 더 잘 이해하려면 오퍼를 만들고 관리하는 주요 단계를 참조하십시오. 이 단원은 Journey Optimizer - 의사 결정 관리 내에서 결정을 정의하는 유연성보다는 의사 결정의 결과를 사용하는 데에만 중점을 둡니다.
-
Journey Optimizer UI의 왼쪽 레일에서 오퍼 를 선택합니다.
-
상단 표시줄에서 결정 을 선택합니다.
-
결정 만들기 를 선택합니다.
-
새 오퍼 결정 만들기 의 세부 정보 단계에서:
- 결정에 대해 이름 을(를) 입력하십시오(예:
Luma - Mobile App Decision
). 시작 날짜 및 시간 및 종료 날짜 및 시간 을 입력하십시오. - 다음 을 선택합니다.
- 결정에 대해 이름 을(를) 입력하십시오(예:
-
새 오퍼 결정 만들기 의 결정 범위 추가 단계에서:
-
배치 목록에서 모바일 JSON 을(를) 선택하십시오.
-
평가 기준 타일에서 추가 를 선택합니다.
-
오퍼 컬렉션 추가 대화 상자에서 오퍼 컬렉션을 선택합니다. 예: Luma - Mobile App Collection.
-
추가 를 선택합니다.
-
-
자격 요건 에 대해 없음 을 선택하고 오퍼 우선 순위 를 순위 지정 방법 으로 선택하십시오.
-
다음 을 선택합니다.
.
-
-
새 오퍼 결정 만들기 의 대체 오퍼 추가 단계에서:
- 대체 오퍼(예: Luma - Fallback offer)를 선택하십시오.
- 다음 을 선택합니다.
-
새 오퍼 결정 만들기 의 요약 단계에서:
- 마침 을 선택합니다.
- 오퍼 결정 저장 대화 상자에서 저장 및 활성화 를 선택합니다.
- 결정 탭에서 Live 상태의 결정이 표시됩니다.
이제 오퍼 세트로 구성된 오퍼 결정을 사용할 준비가 되었습니다. 앱에서 의사 결정을 사용하려면 코드에서 의사 결정 범위를 참조해야 합니다.
-
Journey Optimizer UI에서 오퍼 를 선택합니다.
-
상단 표시줄에서 결정 을 선택합니다.
-
결정을 선택합니다(예: Luma - Mobile App Decision).
-
결정 범위 타일에서 복사 를 선택합니다.
-
상황별 메뉴에서 결정 범위 를 선택합니다.
-
텍스트 편집기를 사용하여 나중에 사용할 수 있도록 결정 범위를 붙여넣습니다. 결정 범위에는 다음과 같은 JSON 형식이 있습니다.
code language-json { "xdm:activityId":"xcore:offer-activity:xxxxxxxxxxxxxxx", "xdm:placementId":"xcore:offer-placement:xxxxxxxxxxxxxxx" }
앱에서 오퍼 구현
이전 단원에서 설명한 대로 모바일 태그 확장을 설치하면 구성만 제공됩니다. 그런 다음 Optimize SDK를 설치하고 등록해야 합니다. 이 단계가 명확하지 않으면 SDK 설치 섹션을 검토하십시오.
-
Xcode에서 패키지 종속 항목의 패키지 목록에 AEP 최적화가 추가되었는지 확인하십시오. Swift 패키지 관리자를 참조하세요.
-
Xcode 프로젝트 탐색기에서 Luma > Luma > AppDelegate(으)로 이동합니다.
-
AEPOptimize
이(가) 가져오기 목록의 일부인지 확인하십시오.code language-swift import AEPOptimize
-
Optimize.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 > Model > Data > 의사 결정(으)로 이동합니다. Journey Optimizer 인터페이스에서 복사한 결정 범위 세부 정보로
activityId
및placementId
값을 업데이트합니다. -
Xcode 프로젝트 탐색기에서 Luma > Luma > Utils > MobileSDK(으)로 이동합니다.
func updatePropositionOD(ecid: String, activityId: String, placementId: String, itemCount: Int) async
함수를 찾습니다. 다음 코드를 추가합니다.code language-swift // set up the XDM dictionary, define decision scope and call update proposition API Task { let ecid = ["ECID" : ["id" : ecid, "primary" : true] as [String : Any]] let identityMap = ["identityMap" : ecid] let xdmData = ["xdm" : identityMap] let decisionScope = DecisionScope(activityId: activityId, placementId: placementId, itemCount: UInt(itemCount)) Optimize.clearCachedPropositions() Optimize.updatePropositions(for: [decisionScope], withXdm: xdmData) }
이 함수:
-
오퍼를 제공해야 하는 프로필을 식별하는 ECID가 포함된 XDM 사전
xdmData
을(를) 설정합니다. -
decisionScope
을(를) 정의합니다. 이 개체는 Journey Optimizer - 의사 결정 관리 인터페이스에서 정의한 결정에 기반하며 의사 결정 만들기에서 복사한 의사 결정 범위를 사용하여 정의합니다. Luma 앱은 다음 JSON 형식을 기반으로 범위 매개 변수를 검색하는 구성 파일(decisions.json
)을 사용합니다.code language-swift "scopes": [ { "name": "name of the scope", "activityId": "xcore:offer-activity:xxxxxxxxxxxxxxx", "placementId": "xcore:offer-placement:xxxxxxxxxxxxxxx", "itemCount": 2 } ]
그러나 Optimize API가 적절한 매개 변수(
activityId
,placementId
및itemCount
)를 가져오도록 모든 종류의 구현을 사용하여 구현에 올바른DecisionScope
개체를 만들 수 있습니다.
참고:decisions.json
파일의 다른 키 값은 나중에 사용하기 위한 것이며 관련성이 없으며 현재 이 단원에서 자습서의 일부로 사용됩니다. -
Optimize.clearCachePropositions
및Optimize.updatePropositions
API를 호출합니다. 이러한 함수는 캐시된 모든 제안을 지우고 이 프로필에 대한 제안을 업데이트합니다.
-
-
Xcode 프로젝트 탐색기에서 Luma > Luma > Views > Personalization > EdgeOffersView(으)로 이동합니다.
func onPropositionsUpdateOD(activityId: String, placementId: String, itemCount: Int) async
함수를 찾아 이 함수의 코드를 검사합니다. 이 함수에서 가장 중요한 부분은Optimize.onPropositionsUpdate
API 호출입니다.- 의사 결정 범위(Journey Optimizer - 의사 결정 관리에서 정의함)를 기반으로 현재 프로필에 대한 제안을 검색합니다.
- 제안에서 오퍼를 검색합니다.
- 앱에서 제대로 표시될 수 있도록 오퍼의 콘텐츠를 래핑 해제합니다.
- 오퍼에 대한
displayed()
작업을 트리거하여 오퍼가 표시되었음을 알리는 이벤트를 Edge Network에 다시 보냅니다.
-
EdgeOffersView 에서
.onFirstAppear
한정자에 다음 코드를 추가하십시오. 이 코드는 오퍼를 업데이트하기 위한 콜백이 한 번만 등록되도록 합니다.code language-swift // Invoke callback for offer updates Task { await self.onPropositionsUpdateOD(activityId: decision.activityId, placementId: decision.placementId, itemCount: decision.itemCount) }
-
EdgeOffersView 에서
.task
한정자에 다음 코드를 추가하십시오. 이 코드는 보기를 새로 고칠 때 오퍼를 업데이트합니다.code language-swift // Clear and update offers await self.updatePropositionsOD(ecid: currentEcid, activityId: decision.activityId, placementId: decision.placementId, itemCount: decision.itemCount)
앱을 사용하여 유효성 검사
-
을 사용하여 시뮬레이터나 Xcode의 실제 장치에서 앱을 다시 빌드하고 실행합니다.
-
Personalisation 탭으로 이동합니다.
-
Edge Personalisation 를 선택합니다.
-
맨 위로 스크롤하면 DECISION LUMA - MOBILE APP DECISION 타일에서 정의한 컬렉션에서 두 개의 무작위 오퍼가 표시됩니다.
{width="300"}
모든 오퍼에 동일한 우선 순위를 부여했으므로 오퍼는 임의적이며 의사 결정 순위는 우선 순위를 기반으로 합니다.
Assurance에서 구현 유효성 검사
Assurance에서 오퍼 구현을 확인하려면 다음을 수행하십시오.
-
설치 지침 섹션을 검토하여 시뮬레이터 또는 장치를 Assurance에 연결하십시오.
-
왼쪽 레일에서 구성 을 선택하고 ADOBE JOURNEY OPTIMIZER DECISIONING 아래의 검토 및 시뮬레이션 옆에 있는 을 선택합니다.
-
저장 을 선택합니다.
-
왼쪽 레일에서 검토 및 시뮬레이션 을 선택합니다. 데이터 스트림 설정과 SDK 설정이 모두 애플리케이션에서 검증되었습니다.
-
상단 표시줄에서 요청 을(를) 선택합니다. 오퍼 요청이 표시됩니다.
-
시뮬레이션 및 이벤트 목록 탭을 탐색하여 추가 기능을 사용할 수 있습니다. Journey Optimizer 의사 결정 관리 설정을 확인하세요.
다음 단계
이제 Journey Optimizer - 의사 결정 관리 구현에 더 많은 기능을 추가할 수 있는 모든 도구를 보유해야 합니다. 예:
- 오퍼에 다른 매개 변수 적용(예: 우선 순위, 최대 가용량)
- 앱에서 프로필 특성을 수집하고(프로필 참조) 이 프로필 특성을 사용하여 대상자를 빌드합니다. 그런 다음 이러한 대상을 의사 결정의 자격 규칙의 일부로 사용합니다.
- 두 개 이상의 결정 범위를 결합합니다.
다음: A/B 테스트 수행