使用Decisioning建立和顯示優惠方案
瞭解如何使用Experience Platform Mobile SDK在行動應用程式中顯示Journey Optimizer Decisioning的優惠。
Journey Optimizer Decisioning是新一代的優惠方案管理,也是決定管理的後繼方案。 決策功能可讓您將集中的決策專案目錄與強大的決策引擎相結合,以提供個人化行銷優惠方案。 無論您是針對個別客群量身打造內容,還是透過 AI 驅動的排名最佳化策略,決策都能提供進行大規模資料導向決策的工具。 深入了解決策項目、規則和原則等主要概念,並探索這些元素如何共同運作,為您的行銷活動選取最佳內容並設定優先順序。 從管理集合和刊登版位到運用 Adobe Experience Platform 資料,本全方位指南可幫助您解鎖更智慧的個人化,並帶來具影響力的客戶體驗。
Decisioning 會透過提供集中行銷產品建議目錄,又稱為「決策項目」,還有複雜的決策引擎,設法簡化個人化。 此引擎運用規則與排名標準來選取並呈現最相關的決策項目給每個人。 這些決策專案可順暢地整合至跨Adobe Journey Optimizer通道的訊息和體驗:程式碼型體驗、電子郵件、簡訊、推播通知等。
在本課程中,重點是使用程式碼型體驗管道在行動應用程式中提供選件。 而且不會深入說明決策解決方案的所有功能。 如需詳細資訊,請參閱決策檔案。
先決條件
- 成功建立並執行應用程式,且已安裝並設定SDK。
- 為Adobe Experience Platform設定應用程式。
- 存取Journey Optimizer — 具有管理優惠和決定適當許可權的決定。
學習目標
在本課程中,您將學習
- 更新Edge的決策設定。
- 建立結構描述來代表選件。
- 驗證Assurance中的設定。
- 設定程式碼型體驗通道設定。
- 根據Journey Optimizer — 決策中的選件,建立程式碼型體驗行銷活動。
- 在您的應用程式中實施來自Decisioning的優惠。
設定
更新資料流設定
為確保將從您的行動應用程式傳送到Platform Edge Network的資料轉送到Journey Optimizer — 決策,請更新您的資料流。
-
在資料收集UI中,選取資料串流,然後選取您的資料串流,例如Luma Mobile App。
-
選取 Experience Platform 的
,並從內容功能表選取 編輯。 -
在資料串流 >
> Adobe Experience Platform畫面中,確定Offer Decisioning、Edge分段和 Adobe Journey Optimizer 已啟用。- 如果您只打算執行此決策課程,而非決策管理課程,則不需要啟用Offer Decisioning。
- 如果您進行Target課程,請同時選取Personalization目的地。 如需詳細資訊,請參閱Adobe Experience Platform設定。
-
若要儲存資料流設定,請選取「儲存」。
{modal="regular"}
定義您的結構描述
-
導覽至資料收集介面,然後從左側邊欄選取結構描述。
-
從頂端列選取瀏覽。
-
開啟 個人化優惠專案 — Experience Decisioning 結構描述。 此結構描述是用來設定優惠方案專案、其屬性和中繼資料的專用結構描述。
-
將其他欄位群組新增至您的綱要,代表您想如何在決定中使用選件。 請參閱建立結構描述以瞭解如何建立結構描述。 在本課程中,已建立兩個欄位群組作為 _techmarketingdemos 沙箱組態的一部分: 選件和選件中繼資料。 您可以在下方看到結構的完整結構。
- 所有 mediaAssets 欄位(例如 image 或imageLowRes)都是型別DesignAssets,而且會自動有destinationURL、edgePath、存放庫、sourceURL、trackedURL和 type 字串欄位。
- 所有其他欄位屬於型別物件 (例如offerMetadata)或字串 (例如fullDescription)。
{modal="regular"}
您可以依您想要的方式,定義您的 個人化優惠專案 — Experience Decisioning 結構描述。 上述結構只是用於本課程其餘部分的範例。
-
請確定您選取「儲存」以儲存您對 個人化優惠專案 — Experience Decisioning 結構描述所做的任何變更。
安裝Journey Optimizer標籤擴充功能
若要讓應用程式與Journey Optimizer搭配使用,您必須更新標籤屬性。
- 導覽至標籤 > 擴充功能 > 目錄。
- 開啟您的屬性,例如Luma Mobile App Tutorial。
- 選取目錄。
- 搜尋 Adobe Journey Optimizer 擴充功能。
- 安裝擴充功能。
當 only 使用應用程式中根據Decisioning的優惠方案時,在 安裝擴充功能 或 設定擴充功能 中,您不需要設定任何專案。 如果您已按照教學課程中的推播通知課程進行,您會看到針對 開發 環境,已從 事件資料集 清單中選取 AJO推播追蹤體驗事件資料集 資料集。
在應用程式中實作Journey Optimizer
如先前課程所述,安裝行動標籤擴充功能僅會提供設定。 接下來,您必須安裝並註冊傳訊SDK。 如果未清除這些步驟,請檢閱安裝SDK區段。
-
在Xcode中,請確定已將AEP訊息新增至套件相依性中的套件清單中。 請參閱Swift封裝管理員。
-
導覽至Xcode專案導覽器中的Luma > Luma > AppDelegate。
-
請確定
AEPMessaging是匯入清單的一部分。import AEPMessaging -
請確定
Messaging.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 ]
-
在Android Studio中,確定aepsdk-messaging-android是Android
> Gradle Scripts中 build.gradle.kts 的相依性的一部分。 請參閱Gradle。 -
在Android Studio專案導覽器中,導覽至Android
app > kotlin+java > com.adobe.luma.tutorial.android > LumaApplication。 -
請確定
com.adobe.marketing.mobile.Messaging是匯入清單的一部分。import import com.adobe.marketing.mobile.Messaging -
請確定
Messaging.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 )
驗證Assurance中的設定
您不需要驗證Assurance中決策的設定。 Decisioning不使用特定的Experience Platform資料收集標籤擴充功能,也不需要為您的應用程式提供額外的套件。 Decisioning仰賴您應用程式中的Messaging擴充功能,您應該已將此擴充功能新增至本教學課程的安裝Adobe Experience Platform Mobile SDK和建立和傳送應用程式內訊息課程。
建立程式碼型體驗通道設定
若要在應用程式的畫面中顯示選件,您需要設定專用的程式碼型體驗頻道。 此程式碼型體驗管道會定義應用程式中顯示選件的表面(位置)。
建立程式碼式體驗管道。
-
在Journey Optimizer UI中,從左側邊欄的 管理 中選取
管道。 -
從 一般設定 中選取通道設定。
-
選取建立通道組態。
-
在 頻道設定詳細資料 中:
-
輸入名稱。 例如:
LumaMobileAppCodeBased。 -
輸入描述。 例如:
Code-based experience for Luma app used in Mobile SDK tutorial。 -
從 選取管道 下拉式功能表中選取程式碼型體驗。
-
從 選取一或多個行銷動作 中選取一或多個行銷動作。 例如現場Personalization。
-
選取您要設定程式碼型體驗的平台。 在本教學課程中,請選取 iOS 或Android,或兩者皆選。
-
針對iOS:
- 輸入選取的應用程式ID。 例如,應用程式的識別碼:
com.adobe.luma.tutorial.swiftui。 - 輸入/為 位置或應用程式 內的路徑選取位置。 例如:
offersLocation。 - 輸入預覽URL。 例如:
lumatutorialswiftui://。
- 輸入選取的應用程式ID。 例如,應用程式的識別碼:
-
針對Android:
- 輸入選取的應用程式ID。 例如,應用程式的識別碼:
com.adobe.luma.tutorial.android。 - 輸入/為 位置或應用程式 內的路徑選取位置。 例如:
offersLocation。 - 輸入預覽URL。 例如:
lumatutorialandroid://default。
- 輸入選取的應用程式ID。 例如,應用程式的識別碼:
-
內容
- 選取 格式 的JSON。
-
-
-
選取 提交 以提交您的程式碼型體驗。
建立優惠
您可以在此區段中建立Decisioning的優惠方案。
-
在Journey Optimizer UI中,從左側邊欄的 決策 中選取
目錄。 -
從 目錄 中選取 選件 以檢視 選件 的清單。
-
選取建立專案。
-
在建立優惠的➊ 屬性步驟中(決定專案):
Decisioning中優惠方案的
{modal="regular"}
-
在 標準屬性 區段中:
- 輸入選件名稱。 例如:
Luma - Desiree Fitness Tee。 - 輸入 開始日期 或使用
選取開始日期。 例如:7/1/2026, 12:00 AM。 - 輸入 結束日期 或使用
選取結束日期。 例如:12/31/2026, 12:00 AM。 - 輸入優先順序。 例如:
10。 - 從 標籤 下拉式功能表中選取一或多個適當的標籤。 例如: Luma — 行動應用程式。
- 輸入選件名稱。 例如:
-
在 自訂屬性 區段中,輸入選件內容和中繼資料的值。 您可以輸入哪些資料以及如何輸入該資料,完全取決於您為優惠方案定義結構描述的方式。 在本教學課程中,您想要為每個選件提供標題、文字和影像。
-
在 選件 容器的 Media Assets 子容器內:
- 選取 影像 的 從URL 新增,並為E nter來源URL 輸入適當的值。 例如:
https://newluma.enablementadobe.com/images/ws05-yellow_main.jpg。 - 選取 影像(高解析度) 的 從URL 加入,並為 輸入來源URL 輸入適當的值。 例如:
https://newluma.enablementadobe.com/images/ws05-yellow_main.jpg。
- 選取 影像 的 從URL 新增,並為E nter來源URL 輸入適當的值。 例如:
-
在 選件 容器的 文字 子容器內:
- 輸入 完整說明 的值。 例如:
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。 - 輸入 標題 的值。 例如:
Desiree Fitness Tee。
- 輸入 完整說明 的值。 例如:
-
-
選取下一步。
-
-
在建立優惠(決定專案)的➋ 資格步驟中:
{modal="regular"}
- 在 資格 中,確定已選取所有訪客。
- 您不需要在 上限 區段中建立上限。
- 選取下一步。
-
在➌檢閱步驟中,選擇建立優惠(決定專案):
{modal="regular"}
- 檢閱選件。 您可以使用
來變更標準屬性、客戶屬性或設定檔限制。 - 選取「儲存」。
- 檢閱選件。 您可以使用
-
-
針對下列其他選件重複步驟3 (建立專案):
table 0-row-4 1-row-4 2-row-4 3-row-4 4-row-4 名稱 標題 完整說明 影像和影像(高解析度) Luma - Affirm Water BottleAffirm Water BottleYou'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.https://newluma.enablementadobe.com/images/ug06-lb-0.jpgLuma - Aero Daily Fitness TeeAero Daily Fitness TeeNeed 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.https://newluma.enablementadobe.com/images/ms01-black_main.jpgLuma - Adrienne Trek JacketAdrienne Trek JacketYou'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.https://newluma.enablementadobe.com/images/wj08-gray_main.jpgLuma - Juno JacketJuno JacketOn colder-than-comfortable mornings, you'll love warming up in the Juno All-Ways Performanc 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.https://newluma.enablementadobe.com/images/wj06-purple_main.jpg所有其他值(例如開始日期、結束日期、優先順序、上限、資格以及上表未明確定義的其他SDK)在所有優惠方案中,以及根據您為第一個優惠方案定義的內容,都應該是相同的。
您現在應該擁有下列優惠方案清單:
建立集合
若要向行動應用程式使用者呈現優惠方案,您必須建立優惠方案集合,其中包含您建立的一或多個優惠方案。 您可以使用規則來選取哪些優惠方案屬於某個集合。
-
在Journey Optimizer UI中,從左側邊欄的 決策 中選取
目錄。 -
從 目錄 中選取 集合 以檢視 集合 的清單。
-
選取建立集合。
-
在 詳細資料 區段中:
- 輸入集合的名稱。 例如:
Luma - Mobile App Collection。 - 輸入集合的描述。 例如:
Collection of Luma mobile app offers。
- 輸入集合的名稱。 例如:
-
在 集合規則 區段中,在 NUMBER OF ITEMS 下方:
-
選取按一下以建立決定專案……
-
使用 選取屬性 來選取屬性。
- 在 選取屬性 對話方塊中,選取決定屬性。 例如選件名稱。
- 選取「儲存」。
-
使用 等於 下拉式功能表來選取條件。 例如,開頭為。
-
在文字欄位中輸入條件的值。 例如:
Luma -。 此值將選取名稱以Luma -開頭的所有優惠方案作為集合的一部分。 您可以使用 Add規則來建立任何型別的規則,也可以合併規則。
-
-
選取 建立 以建立集合。
{modal="regular"}
建立選取策略
選擇策略可重複使用,包括與資格限制關聯的集合,以及用於決定在決定策略中選取時顯示的優惠的排名方法。 決定原則包含在建立行銷活動區段中。
在我們的實作中,儘可能簡化選取策略。
-
在Journey Optimizer UI中,從左側邊欄的 決策 中選取
策略設定。 -
選取選取策略。
-
選取建立選擇策略。 在 建立選擇策略 對話方塊中:
-
輸入選取策略名稱。 例如:
Luma - Mobile App Selection Strategy。 -
使用 選取集合 來選取選取策略的集合。
- 在 集合 對話方塊中,選取集合。 例如: Luma — 行動應用程式集合。
- 選取「儲存」。
-
請確定已選取 所有訪客 以符合資格。
-
確定已針對 排名方法 選取優惠優先順序。
-
-
選取 建立 以建立選擇策略。
建立行銷活動
您現在可建立同時使用優惠方案集合和程式碼型體驗設定通道的促銷活動。 行銷活動是經過協調的行銷動作,可跨一或多個管道將內容傳送給特定對象。
在行銷活動中,您也會建立決定原則。 決策原則是產品建議的容器,可運用決策引擎以動態方式傳回最佳內容,以傳送給每個客群成員。 其目標是為每個設定檔選取最佳優惠方案,而行銷活動/歷程製作可讓您指示應如何顯示選取的決策專案,包括要包含在訊息中的專案屬性。
-
在Journey Optimizer UI中,從左側邊欄的 歷程管理 中選取
行銷活動。 -
選取建立行銷活動。
-
在 建立行銷活動 對話方塊中,選取 排程 — 行銷 作為您要建立的行銷活動型別。
-
選取確認。
-
在 行銷活動 — 時間戳記 畫面的 屬性 索引標籤中:
- 輸入行銷活動的名稱。 例如:
Luma - Mobile App Offers。 - 選擇性地輸入描述。
- 輸入行銷活動的名稱。 例如:
-
選取動作。
-
在 動作 區段中:
- 選取
新增動作。 從下拉式功能表中,選取 程式碼型體驗。 - 在 程式碼型體驗 動作設定區段中,從 程式碼型體驗通道設定 下拉式功能表中選取程式碼型體驗通道設定LumaMobileAppCodeBased。
- 選取
-
保留最佳化、語言和 衝突管理 的所有其他設定不變。
-
-
選取內容。
-
在 程式碼型體驗 畫面中,選取
編輯程式碼。 -
在 程式碼型體驗中 |頻道設定: LumaMobileAppCodeBased 畫面:
-
在編輯器中,輸入以下JSON:
code language-json { "version": "1.0", "offers": [ ] } -
從第二個左側邊欄選取
決定原則。-
選取
新增決定原則。 -
在 建立決定原則 對話方塊精靈的➊ 詳細資料步驟中:
- 輸入決定原則的名稱。 例如:
Luma - Mobile App Decision Policy。 - 選取或輸入 專案數 的
2。 此專案可確保傳回兩個選件。 - 選取下一步。
- 輸入決定原則的名稱。 例如:
-
在 建立決定原則 對話方塊精靈的➋ 策略步驟中:
-
在 策略序列 中,選取
Add以新增策略序列。 -
從內容功能表中,選取選取策略。
- 在 新增選擇策略 對話方塊中,選取您先前建立的選擇策略,Luma — 行動應用程式選擇策略。
- 選取「儲存」。
-
選取下一步。
-
-
在 建立決定原則 對話精靈的➌ 檢閱步驟中,檢閱您的決定原則。
- 選取 建立 以建立決定原則。
-
-
現在決定原則已可供使用,您可以使用 Luma — 行動應用程式決定原則 邊欄,將該決定原則的適當元素插入JSON編輯器中。
-
在JSON編輯器中,新增介於
[和]之間的新行。 -
從 Luma — 行動應用程式決定原則 邊欄:
- 選取
插入原則,將決定原則作為JSON插入編輯器中。 - 將游標置於編輯器中的結束
{{/each}}前的一行上. - 選取tenant-name (例如: _techmarketingdemos) > 選件 > 文字內容 > 標題,然後選取+。 這會將選件的標題作為
title元素新增至JSON。 - 選取租使用者名稱稱 > 選件 > 文字內容 > 完整說明,然後選取+。 這會將選件的說明以
text元素的形式新增至JSON。 - 選取租使用者名稱稱 > 選件 > 媒體資產 > 影像 > 來源URL,然後選取+。 這會將選件高解析度影像的來源URL以
image元素的形式新增至JSON。
您的最終JSON看起來應該類似以下,其中包含決定原則識別碼和租使用者名稱稱的更新值。
使用
{ },確定您的title、text和imageJSON元素已包裝為物件。 而且您確實在該物件之後且在{{/each}}之前插入,JSON中的。 - 選取
-
-
使用
驗證來驗證JSON。 -
選取儲存並關閉。
-
-
-
選取 檢閱 以啟動。
-
檢閱以啟動(Luma — 行動應用程式選件)畫面會提供您行銷活動的概覽。
-
如果您沒有看到任何警告或錯誤,請選取「啟動」以啟動行銷活動。 在確認對話方塊中,再次選取啟動。
-
在行銷活動清單中,您應該會看到行銷活動的狀態從
Activating變更為 Processing變更為 Live。
現在您的程式碼型體驗行銷活動已上線,您可以更新行動應用程式,使用程式碼型體驗行銷活動在程式碼型體驗頻道設定中定義的位置或表面上呈現選件。
在您的應用程式中實作選件
如先前課程所述,安裝行動標籤擴充功能僅會提供設定。 接下來,您必須確保已針對您的應用程式設定Messaging擴充功能。 如果未清除這些步驟,請檢閱安裝SDK區段。
-
在Xcode中,請確定已將AEP訊息新增至套件相依性中的套件清單中。 請參閱Swift封裝管理員。
-
導覽至Xcode專案導覽器中的Luma > Luma > AppDelegate。
-
請確定
AEPMessaging是匯入清單的一部分。code language-swift import AEPMessaging -
請確定
Messaging.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 > 一般。 請確定
config區段中的showDecisioning已設為true且showPersonalization已設為false。code language-json ... "showPersonalisation": false, "showDecisioning": true, ...這些設定可確保Decisioning用於應用程式 個人化 標籤中的選件。
-
導覽至Xcode專案導覽器中的Luma > Luma > Model > Data > 一般。 確定已設定包含
surface元素的decisioning區段,識別您已為程式碼型體驗通道設定的位置或介面。 例如:offersLocation。code language-json "decisioning": { "surface": "offersLocation" }, -
導覽至Xcode專案導覽器中的Luma > Luma > Utils > MobileSDK。 尋找
func updatePropositionsForSurface()函式。 新增下列程式碼:code language-swift // get the propositions for the surfaces configured. Logger.aepMobileSDK.info("MobileSDK - updatePropositionsForSurfaces: Updating \(surfaces.count) surface(s)") for surface in surfaces { Logger.aepMobileSDK.info("MobileSDK - updatePropositionsForSurfaces: Surface URI: \(surface.uri)") } // Call the Messaging extension API to fetch propositions Messaging.updatePropositionsForSurfaces(surfaces) Logger.aepMobileSDK.info("MobileSDK - updatePropositionsForSurfaces: Update triggered successfully")此函式:
- 取得曲面的主張。
在此實作中,僅會設定並使用一個表面。 如果您想要處理多個已設定的曲面,程式碼需要更新。
-
在Xcode專案導覽器中導覽至Luma > Luma > Views > Personalization > EdgeDecisioningOffersView。 尋找
func fetchPropositions() async函式並檢查此函式的程式碼。 此函式最重要的部分是Messaging.getPropositionsForSurfaces([surface]) { propositionsDict, error inAPI呼叫,此呼叫- 根據曲面擷取目前輪廓的主張,
- 從主張中擷取優惠方案,
- 取消包裝選件的內容(使用
parseCodeBasedContent函式),以便應用程式中可正確顯示內容。
-
仍在 EdgeDecisioningOffersView 中,請參閱。
task修飾元:- 使用
self.updatePropositionsForSurface()更新建議。 - 會為Edge網路實作短暫的等待,以回應和快取主張。
- 已使用
await self.fetchPropositions擷取快取的主張。
- 使用
-
在Android Studio中,確定aepsdk-optimize-android是Android
> Gradle指令碼中 build.gradle.kts (模組:app) 的相依性的一部分。 請參閱Gradle。 -
在Android Studio導覽器中,導覽至Android
> app > kotlin+java > com.adobe.luma.tutorial.android > MainActivity。 -
請確定
Optimize是匯入清單的一部分。code language-kotlin import com.adobe.marketing.mobile.optimize.Optimize -
請確定
Optimize.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 ) -
導覽至專案導覽器中的Android
> app > assets > data > general.json。 請確定config區段中的showDecisioning已設為true且showPersonalization已設為false。code language-json ... "showPersonalisation": false, "showDecisioning": true, ...這些設定可確保Decisioning用於應用程式 個人化 標籤中的選件。
-
導覽至專案導覽器中的Android
> app > assets > data > general.json。 確定已設定包含surface元素的decisioning區段,識別您已為程式碼型體驗通道設定的位置或介面。 例如:offersLocation。code language-json "decisioning": { "surface": "offersLocation" }, -
在Android Studio導覽器中導覽至Android
> app > kotlin+java > com.adobe.luma.tutorial.android > 模型 > MobileSDK。 尋找suspend fun updatePropositionsForSurfaces(surfaces: List<Surface>)函式。 新增下列程式碼:code language-kotlin // get the propositions for the surfaces configured withContext(Dispatchers.IO) { Log.i("MobileSDK", "updatePropositionsForSurfaces: Updating ${surfaces.size} surface(s)") surfaces.forEach { surface -> Log.i("MobileSDK", "updatePropositionsForSurfaces: Surface URI: ${surface.uri}") } Messaging.updatePropositionsForSurfaces(surfaces) Log.i("MobileSDK", "updatePropositionsForSurfaces: Update triggered successfully") }此函式:
- 取得曲面的主張。
在此實作中,僅會設定並使用一個表面。 如果您想要處理多個已設定的曲面,程式碼需要更新。
-
導覽至專案導覽器中的Android
> app > kotlin+java > com.adobe.luma.tutorial.android > 檢視 > EdgeDecisioningOffersView.kt。 尋找suspend fun fetchPropositionsForSurface(surface: Surface): DecisioningResult = withContext(Dispatchers.IO)函式並檢查此函式的程式碼。 此函式最重要的部分是Messaging.getPropositionsForSurfaces(listOf(surface)) { propositionsMap -> propositionsMap[surface]?.let { propositions ->API呼叫,此呼叫- 根據曲面擷取目前輪廓的主張,
- 從主張中擷取優惠方案,
- 取消包裝選件的內容(使用
parseCodeBasedContent函式),以便應用程式中可正確顯示內容。
-
仍在 EdgeDecisioningOffersView.kt 中,檢視
LaunchedEffect函式中的方式:- 使用
MobileSDK.shared.updatePropositionsForSurfaces(listOf(surface))更新建議。 - Edge網路會實施短暫的延遲,以回應和快取主張。
- 已使用
fetchPropositionsForSurface(surface)擷取快取的主張。
- 使用
使用應用程式進行驗證
-
使用
,在模擬器中或在Xcode的實體裝置上重建並執行應用程式。 -
前往 Personalization 標籤。
-
捲動至頂端,您會看到在 Surface Offers Location 圖磚中定義的集合中,顯示兩個隨機選件。
{width="300"}
優惠方案是隨機的,因為您已為所有優惠方案指定相同的優先順序,而優惠方案的排名會根據優先順序而定。
-
使用
,在模擬器中或在Android Studio的實體裝置上重建並執行應用程式。 -
前往 Personalization 標籤。
-
捲動至頂端,您會看到上方方塊中顯示的兩個隨機選件,來自您在 Surface Offers Location 圖磚中定義的集合。
{width="300"}
優惠方案是隨機的,因為您已為所有優惠方案指定相同的優先順序,而優惠方案的排名會根據優先順序而定。
驗證Assurance中的實作
若要驗證Assurance中的優惠方案實作:
-
檢閱設定指示區段,將您的模擬器或裝置連線到Assurance。
-
在左側邊欄中選取事件。
-
在事件清單中尋找 訊息主張回應 事件。
-
在右窗格中,展開這類事件: ACPExtensionEventData > 主張 > 0 > 專案 > 0 > 資料 > 內容 > 選件。 您看到兩個選件 0 和1,每個都具有您期望的資料。
後續步驟
您現在應該已具備所有工具,可以開始將更多功能新增至您的Journey Optimizer - Decisioning實作。 例如:
- 套用不同引數至您的選件(例如,優先順序、上限)
- 收集應用程式中的設定檔屬性(請參閱設定檔),並使用這些設定檔屬性來建立對象。 然後使用這些對象作為您決策中的適用性規則的一部分。
- 組合多個曲面。
下一步: 執行A/B測試