使用Decisioning创建和显示优惠

了解如何使用Experience Platform Mobile SDK在移动应用程序中显示Journey Optimizer Decisioning提供的选件。

Journey Optimizer Decisioning是新一代选件管理,是决策管理的后继产品。 决策功能通过将集中的决策项目目录与强大的决策引擎相结合,使您能够提供个性化的营销优惠。 无论您是为个体受众定制内容,还是利用 AI 驱动的排名优化策略,决策功能都提供了大规模数据驱动决策的工具。 深入了解决策项、规则和政策等关键概念,探索这些元素如何协同工作以选择和优先排序您营销活动中的最佳内容。 从管理集合和投放位置到利用 Adobe Experience Platform 数据,本综合指南帮助您解锁更智能的个性化并推动有影响力的客户体验。

架构 {modal="regular"}

通过提供称为“决策项”的集中式营销产品建议目录和复杂的决策引擎,决策简化了个性化流程。 此引擎利用规则和排名标准来选择最相关的决策项并将其呈现给每个人。 这些决策项目可以无缝地集成到Adobe Journey Optimizer各个渠道的消息和体验中:基于代码的体验、电子邮件、短信、推送通知等。

在本课程中,重点介绍如何使用基于代码的体验渠道在移动设备应用程序中交付选件。 而不是深入解释Decisioning解决方案的所有功能。 有关详细信息,请参阅决策文档。

NOTE
本课程是可选的,仅适用于希望使用决策功能在移动应用程序中显示选件的Journey Optimizer用户。

先决条件

  • 在安装和配置SDK的情况下成功构建和运行应用程序。
  • 为Adobe Experience Platform设置应用程序。
  • 访问Journey Optimizer — 具有管理优惠和决策适当权限的Decisioning

学习目标

在本课程中,您将执行以下操作

  • 更新Edge的Decisioning配置。
  • 创建用于表示选件的架构。
  • 验证Assurance中的设置。
  • 配置基于代码的体验渠道配置。
  • 根据Journey Optimizer - Decisioning中的选件,创建基于代码的体验营销活动。
  • 在您的应用程序中实施来自Decisioning的选件。

设置

TIP
如果您已将环境设置为使用Target设置A/B测试课程的一部分,则您可能已经执行了此设置部分中的某些步骤。

更新数据流配置

要确保将从您的移动应用程序发送到Platform Edge Network的数据转发到Journey Optimizer - Decisioning,请更新您的数据流。

  1. 在数据收集UI中,选择​数据流,然后选择您的数据流,例如​Luma Mobile App

  2. 为​ Experience Platform ​选择 更多 ,然后从上下文菜单中选择 编辑 编辑

  3. 在​数据流 > 文件夹 > Adobe Experience Platform​屏幕中,确保启用了​Offer DecisioningEdge分段​和​Adobe Journey Optimizer

    • 如果您计划只参加此决策课程,而不参加决策管理课程,则无需启用​Offer Decisioning
    • 如果您要参加Target课程,请同时选择​Personalization目标。 有关详细信息,请参阅Adobe Experience Platform设置
  4. 要保存数据流配置,请选择​保存

    AEP数据流配置 {modal="regular"}

定义您的架构

  1. 导航到数据收集界面,然后从左边栏中选择​架构

  2. 从顶部栏中选择​浏览

  3. 打开​ 个性化优惠项目 — Experience Decisioning ​架构。 此架构是用于配置优惠项目、其属性和元数据的专用架构。

  4. 将其他字段组添加到您的架构中,这些字段组表示您希望如何在Decisioning中使用选件。 请参阅创建架构,了解如何创建架构。 在本课程中,将创建两个字段组作为​ _techmarketingdemos ​沙盒配置的一部分: 选件​和​选件元数据。 您可以在下文中看到架构的完整结构。

    • 所有​ mediaAssets ​字段(如​ image ​或​imageLowRes)的类型为​DesignAssets,并且自动具有​destinationURLedgePath存储库sourceURLtrackedURL​和​ type ​字符串字段。
    • 所有其他字段为​ Object ​类型(例如​offerMetadata)或​ String ​类型(例如​fullDescription)。

    架构体验决策 {modal="regular"}

    您可以按需要定义您的​ 个性化优惠项目 — Experience Decisioning ​架构。 上述结构只是本课程其余部分使用的示例。

  5. 请确保选择​ 保存 ​以保存您对​ 个性化优惠项目 — Experience Decisioning ​架构所做的任何更改。

安装Journey Optimizer标记扩展

要使您的应用程序能够与Journey Optimizer配合使用,必须更新标记属性。

  1. 导航到​标记 > 扩展 > 目录
  2. 打开您的属性,例如​Luma Mobile App Tutorial
  3. 选择​目录
  4. 搜索​ Adobe Journey Optimizer ​扩展。
  5. 安装扩展。

当​ only ​在你的应用程序中使用基于Decisioning的优惠时,在​ 安装扩展 ​或​ 配置扩展 ​中,你不需要配置任何内容。 如果您已按照本教程中的推送通知课程进行操作,则会发现对于​ 开发 ​环境,已从​ 事件数据集 ​列表中选择​ AJO推送跟踪体验事件数据集 ​数据集。

在应用程序中实施Journey Optimizer

如前面的课程中所述,安装移动标记扩展仅提供配置。 接下来,您必须安装并注册消息传送SDK。 如果未清除这些步骤,请查看安装SDK部分。

NOTE
如果您已完成安装SDK部分,则表明已安装SDK,您可以跳过此步骤。
iOS
  1. 在Xcode中,确保将AEP消息添加到包依赖关系中的包列表中。 请参阅Swift包管理器

  2. 在Xcode项目导航器中导航到​Luma > Luma > AppDelegate

  3. 确保AEPMessaging是导入列表的一部分。

    import AEPMessaging

  4. 请确保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
  1. 在Android Studio中,确保aepsdk-messaging-android是​Android ChevronDown > Gradle脚本​中​ build.gradle.kts ​的依赖项的一部分。 查看Gradle

  2. 在Android Studio项目导航器中导航到​Android ChevronDown app > kotlin+java > com.adobe.luma.tutorial.android > LumaApplication

  3. 确保com.adobe.marketing.mobile.Messaging是导入列表的一部分。

    import import com.adobe.marketing.mobile.Messaging

  4. 请确保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设置。 Decisioning不使用特定的Experience Platform数据收集标记扩展,也不需要为您的应用程序提供额外的包。 Decisioning依赖于应用程序中的消息传送扩展,您应该已将该扩展作为本教程中的安装Adobe Experience Platform Mobile SDK创建和发送应用程序内消息课程的一部分添加。

创建基于代码的体验渠道配置

要在应用程序的屏幕中显示选件,您需要配置一个专用的基于代码的体验渠道。 此基于代码的体验渠道定义应用程序中用于显示选件的界面(位置)。

要创建基于代码的体验渠道,请执行以下操作:

  1. 在Journey Optimizer UI中,从左边栏中的​ 管理 ​中选择 渠道 渠道

  2. 从​ 常规设置 ​中选择​渠道配置

  3. 选择​创建渠道配置

  4. 在​ 渠道配置详细信息 ​中:

    渠道配置详细信息

    1. 输入​名称。 例如:LumaMobileAppCodeBased

    2. 输入​描述。 例如:Code-based experience for Luma app used in Mobile SDK tutorial

    3. 从​ 选择渠道 ​下拉菜单中选择​基于代码的体验

    4. 从​ 选择一个或多个营销操作 ​中选择一个或多个营销操作。 例如​现场Personalization

    5. 选择要为其配置基于代码的体验的平台。 在本教程中,请选择​ iOS ​或​Android,或同时选择两者。

      • 对于​iOS

        1. 输入所选的​应用程序ID。 例如,应用程序的标识符: com.adobe.luma.tutorial.swiftui
        2. 输入/为​ 位置或应用程序 ​内的路径选择位置。 例如:offersLocation
        3. 输入​预览URL。 例如:lumatutorialswiftui://
      • 对于​Android

        1. 输入所选的​应用程序ID。 例如,应用程序的标识符: com.adobe.luma.tutorial.android
        2. 输入/为​ 位置或应用程序 ​内的路径选择位置。 例如:offersLocation
        3. 输入​预览URL。 例如:lumatutorialandroid://default
      • 内容

        • 为​ 格式 ​选择​JSON
  5. 选择​ 提交 ​以提交您的基于代码的体验。

创建优惠

在此部分中,您将为Decisioning创建选件。

  1. 在Journey Optimizer UI中,从左边栏中的​ Decisioning ​中选择 DecisionItems 目录

  2. 从​ 目录 ​中选择​ 选件 ​以查看​ 选件 ​的列表。

  3. 选择​创建项

    1. 在创建优惠(决策项)的➊ 属性​步骤中:

      Decisioning中的优惠的 属性 {modal="regular"}

      1. 在​ 标准属性 ​部分中:

        1. 输入​选件名称。 例如:Luma - Desiree Fitness Tee
        2. 输入​ 开始日期 ​或使用 日历 选择开始日期。 例如:7/1/2026, 12:00 AM
        3. 输入​ 结束日期 ​或使用 日历 选择一个结束日期。 例如:12/31/2026, 12:00 AM
        4. 输入​优先级。 例如:10
        5. 从​ 标记 ​下拉菜单中选择一个或多个适当的标记。 例如:Luma — 移动设备应用程序
      2. 在​ 自定义属性 ​部分中,输入选件内容和元数据的值。 您可以输入哪些数据以及如何输入该数据完全取决于您为选件定义架构的方式。 在本教程中,您需要为每个选件提供标题、文本和图像。

        1. 在​ 选件 ​容器的​ Media Assets ​子容器中:

          1. 为​ 图像 ​选择​ 从URL ​添加,并为E​ n源URL ​输入适当的值。 例如:https://newluma.enablementadobe.com/images/ws05-yellow_main.jpg
          2. 为​ 图像(高分辨率) ​选择​ 从URL ​添加,并为​ 输入源URL ​输入适当的值。 例如:https://newluma.enablementadobe.com/images/ws05-yellow_main.jpg
        2. 在​ 选件 ​容器的​ 文本 ​子容器中:

          1. 输入​ 完整描述 ​的值。 例如: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
          2. 输入​ 标题 ​的值。 例如:Desiree Fitness Tee
      3. 选择​下一步

    2. 在创建优惠(决策项)的➋ 资格​步骤中:

      创建优惠项目 — 资格 {modal="regular"}

      1. 在​ 资格 ​中,确保选中​所有访客
      2. 您不需要在​ 上限 ​分区中创建上限。
      3. 选择​下一步
    3. 在创建优惠(决策项)的➌审核步骤中:

      创建选件项 — 审核 {modal="regular"}

      1. 查看选件。 您可以使用 编辑 更改​标准属性客户属性​或​配置文件约束
      2. 选择​保存
  4. 对以下附加选件重复步骤3(创建项目):

    table 0-row-4 1-row-4 2-row-4 3-row-4 4-row-4
    名称 标题 完整描述 图像和图像(高分辨率)
    Luma - Affirm Water Bottle Affirm Water Bottle 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. https://newluma.enablementadobe.com/images/ug06-lb-0.jpg
    Luma - Aero Daily Fitness Tee Aero Daily Fitness Tee 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. https://newluma.enablementadobe.com/images/ms01-black_main.jpg
    Luma - Adrienne Trek Jacket Adrienne Trek Jacket 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. https://newluma.enablementadobe.com/images/wj08-gray_main.jpg
    Luma - Juno Jacket Juno Jacket On 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

    对于所有选件,以及基于您为第一个选件定义的内容,上表中未明确定义的所有其他值(如​开始日期结束日期优先级上限资格​以及其他值)应该是相同的。

现在,您应该拥有以下选件列表:

选件列表 {modal="regular"}

创建收藏集

要向移动设备应用程序用户展示选件,您必须创建一个选件收藏集,其中包含您创建的一个或多个选件。 您可以使用规则选择属于某个收藏集的选件。

  1. 在Journey Optimizer UI中,从左边栏中的​ Decisioning ​中选择 DecisionItems 目录

  2. 从​ 目录 ​中选择​ 收藏集 ​以查看​ 收藏集 ​的列表。

  3. 选择​创建收藏集

  4. 在​ 详细信息 ​部分中:

    1. 输入集合的​名称。 例如:Luma - Mobile App Collection
    2. 输入集合的​描述。 例如: Collection of Luma mobile app offers
  5. 在​ 集合规则 ​部分的​ NUMBER OF ITEMS ​下:

    1. 选择​单击以创建决策项……

    2. 使用​ 选择属性 ​以选择属性。

      1. 在​ 选择属性 ​对话框中,选择​决策属性。 例如​选件名称
      2. 选择​保存
    3. 使用​ 等于 ​下拉菜单选择条件。 例如,开头为

    4. 在文本字段中输入条件的值。 例如:Luma -。 此值将选择名称以Luma -开头的所有优惠作为集合的一部分。 您可以使用 AddCircle Add规则创建任何类型的规则,也可以合并规则。

  6. 选择​ 创建 ​以创建集合。

    优惠 — 收藏集 {modal="regular"}

创建选择策略

选择策略是可重复使用的,并且包括与资格限制相关联的集合以及确定在决策策略中被选择时要显示的优惠的排名方法。 决策策略包含在创建营销活动部分中。

在我们的实施中,选择策略被保持尽可能的简单。

  1. 在Journey Optimizer UI中,从左边栏中的​ Decisioning ​中选择 策略 策略设置

  2. 选择​选择策略

  3. 选择​创建选择策略。 在​ 创建选择策略 ​对话框中:

    1. 输入​选择策略名称。 例如:Luma - Mobile App Selection Strategy

    2. 使用​ 选择集合 ​为选择策略选择集合。

      1. 在​ 集合 ​对话框中,选择一个集合。 例如:Luma — 移动应用集合
      2. 选择​保存
    3. 确保为​ 资格 ​选择​所有访客

    4. 确保为​ 排名方法 ​选择了​优惠优先级

  4. 选择​ 创建 ​以创建选择策略。

    创建选择策略

创建营销活动

您现在可以创建同时使用选件收藏集和基于代码的体验配置渠道的营销活动。 营销活动是协调的营销操作,可跨一个或多个渠道向特定受众提供内容。

在营销策划中,您还可以创建决策策略。 决策策略是产品建议的容器,利用决策引擎动态返回将会为每个受众成员提供的最佳内容。 其目标是为每个用户档案选择最佳优惠,而营销活动/历程创作允许您指示应如何显示选定的决策项目,包括要包含在消息中的项目属性。

  1. 在Journey Optimizer UI中,从左边栏中的​ 历程管理 ​中选择 Claxon 营销活动

  2. 选择​创建营销活动

  3. 在​ 创建营销活动 ​对话框中,选择​ 计划 — 营销 ​作为要创建的营销活动类型。

  4. 选择​确认

  5. 在​ 营销活动 — 时间戳​ ​屏幕的​ 属性​ ​选项卡中:

    1. 输入营销活动的​名称。 例如:Luma - Mobile App Offers
    2. 或者,输入​描述
  6. 选择​操作

    1. 在​ 操作 ​部分中:

      1. 选择 添加 添加操作。 从下拉菜单中选择 代码 基于代码的体验
      2. 在​ 基于代码的体验 ​操作配置部分中,从​ 基于代码的体验渠道配置 ​下拉菜单中选择基于代码的体验渠道配置​LumaMobileAppCodeBased
    2. 保留​优化语言​和​ 冲突管理 ​的所有其他设置不变。

  7. 选择​内容

    1. 在​ 基于代码的体验 ​屏幕中,选择 编辑 编辑代码

    2. 在​ 基于代码的体验中 |渠道配置:LumaMobileAppCodeBased ​屏幕:

      1. 在编辑器中,键入以下JSON:

        code language-json
        {
           "version": "1.0",
           "offers": [
           ]
        }
        
      2. 从第二个左边栏中选择 DecisionItemsConfiguration Decision policy

        1. 选择 DecisionItemsConfiguration 添加决策策略

        2. 在​ 创建决策策略 ​对话框向导的➊ 详细信息​步骤中:

          1. 输入决策策略的​名称。 例如:Luma - Mobile App Decision Policy
          2. 选择或输入2作为​项数。 此条目可确保返回两个选件。
          3. 选择​下一步
        3. 在​ 创建决策策略 ​对话框向导的➋ 策略​步骤中:

          1. 在​ 策略序列 ​中,选择 AddCircle Add​以添加策略序列。

          2. 从上下文菜单中选择​选择策略

            1. 在​ 添加选择策略 ​对话框中,选择您之前创建的选择策略Luma — 移动设备应用程序选择策略
            2. 选择​保存
          3. 选择​下一步

        4. 在​ 创建决策策略 ​对话框向导的➌ 审核​步骤中,审核您的决策策略。

          1. 选择​ 创建 ​以创建决策策略。
      3. 现在,决策策略已可用,您可以使用​ Luma — 移动设备应用程序决策策略 ​边栏将该决策策略中的相应元素插入到JSON编辑器中。

        1. 在JSON编辑器中,添加介于[]之间的新行。

        2. 从​ Luma — 移动设备应用程序决策策略 ​边栏:

          1. 选择 添加 插入策略​以在编辑器中将决策策略作为JSON插入。
          2. 将光标在编辑器中位于结束{{/each}}之前的行上.
          3. 选择​tenant-name (例如: _techmarketingdemos> 选件 > 文本内容 > 标题,然后选择​+。 这会将选件的标题作为title元素添加到JSON中。
          4. 选择​tenant-name > 选件 > 文本内容 > 完整描述,然后选择​+。 这会将选件的描述作为text元素添加到JSON中。
          5. 选择​tenant-name > 选件 > 媒体资产 > 图像 > 源URL,然后选择​+。 这会将选件的高分辨率图像的源URL作为image元素添加到JSON中。

          您的最终JSON应类似于下文,其中包含决策策略标识符和租户名称的更新值。

          决策策略的 最终JSON

          使用{ }确保将您的titletextimage JSON元素包装为对象。 并且您确实在该对象之后并在{{/each}}之前插入, 在JSON中。

      4. 使用 FileCode Validate​验证JSON。

      5. 选择​保存并关闭

  8. 选择要激活的​审阅

  9. 要激活的审核(Luma — 移动设备应用程序选件)​屏幕提供了您的营销活动的概览。

    查看以激活

  10. 如果没有看到任何警告或错误,请选择​ 激活 ​以激活营销活动。 在确认对话框中,再次选择​激活

  11. 在营销活动列表中,您应该看到营销活动的状态从 StatusOrange Activating​更改为 StatusOrange Processing​更改为 StatusBlue Live

现在,您的基于代码的体验促销活动已上线,您可以更新移动设备应用程序以使用基于代码的体验促销活动在基于代码的体验渠道配置中定义的位置或表面上呈现选件。

在应用程序中实施选件

如前面的课程中所述,安装移动标记扩展仅提供配置。 接下来,您必须确保为您的应用程序配置消息传送扩展。 如果未清除这些步骤,请查看安装SDK部分。

iOS
  1. 在Xcode中,确保将AEP消息添加到包依赖关系中的包列表中。 请参阅Swift包管理器

  2. 在Xcode项目导航器中导航到​Luma > Luma > AppDelegate

  3. 确保AEPMessaging是导入列表的一部分。

    code language-swift
    import AEPMessaging
    
  4. 请确保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
    ]
    
  5. 在Xcode项目导航器中导航到​Luma > Luma > Model > Data > general。 请确保在config部分中,showDecisioning设置为trueshowPersonalization设置为false

    code language-json
    ...
    "showPersonalisation": false,
    "showDecisioning": true,
    ...
    

    这些设置可确保将Decisioning用于应用程序的​ 个性化 ​选项卡中的选件。

  6. 在Xcode项目导航器中导航到​Luma > Luma > Model > Data > general。 确保配置了带surface元素的decisioning部分,以确定您为基于代码的体验渠道配置的位置或表面。 例如:offersLocation

    code language-json
    "decisioning": {
       "surface": "offersLocation"
    },
    
  7. 在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")
    

    此函数:

    • 获取曲面的建议。

    在此实现中,仅配置和使用一个表面。 如果要处理多个已配置的曲面,则代码需要更新。

  8. 在Xcode项目导航器中导航到​Luma > Luma > Views > Personalization > EdgeDecisioningOffersView。 查找func fetchPropositions() async函数并检查此函数的代码。 此函数最重要的部分是Messaging.getPropositionsForSurfaces([surface]) { propositionsDict, error in API调用,它用于

    • 基于曲面检索当前轮廓的建议,
    • 从建议中检索优惠,
    • 解包选件的内容(使用parseCodeBasedContent函数),以便该选件能在应用程序中正确显示。
  9. 仍在​ EdgeDecisioningOffersView ​中,请参阅。task中的方法 修饰符:

    1. 使用self.updatePropositionsForSurface()更新建议。
    2. Edge网络会实施短暂的等待,以响应并缓存建议。
    3. 使用await self.fetchPropositions获取缓存的建议。
Android
  1. 在Android Studio中,确保aepsdk-optimize-android是​Android ChevronDown > Gradle脚本​中​ build.gradle.kts (模块:app) ​的依赖项的一部分。 查看Gradle

  2. 在Android Studio导航器中导航到​Android ChevronDown > app > kotlin+java > com.adobe.luma.tutorial.android > MainActivity

  3. 确保Optimize是导入列表的一部分。

    code language-kotlin
    import com.adobe.marketing.mobile.optimize.Optimize
    
  4. 请确保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
    )
    
  5. 在项目导航器中导航到​Android V形向下 > app > assets > data > general.json。 请确保在config部分中,showDecisioning设置为trueshowPersonalization设置为false

    code language-json
    ...
    "showPersonalisation": false,
    "showDecisioning": true,
    ...
    

    这些设置可确保将Decisioning用于应用程序的​ 个性化 ​选项卡中的选件。

  6. 在项目导航器中导航到​Android V形向下 > app > assets > data > general.json。 确保配置了带surface元素的decisioning部分,以确定您为基于代码的体验渠道配置的位置或表面。 例如:offersLocation

    code language-json
    "decisioning": {
       "surface": "offersLocation"
    },
    
  7. 在Android Studio导航器中导航到​Android ChevronDown > 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")
    }
    

    此函数:

    • 获取曲面的建议。

    在此实现中,仅配置和使用一个表面。 如果要处理多个已配置的曲面,则代码需要更新。

  8. 在项目导航器中导航到​Android ChevronDown > 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函数),以便该选件能在应用程序中正确显示。
  9. 仍在​ EdgeDecisioningOffersView.kt ​中,请参阅LaunchedEffect函数中的方式:

    1. 使用MobileSDK.shared.updatePropositionsForSurfaces(listOf(surface))更新建议。
    2. 对Edge网络实施短暂的延迟,以响应和缓存建议。
    3. 使用fetchPropositionsForSurface(surface)获取缓存的建议。

使用应用程序进行验证

iOS
  1. 使用 Play ,在模拟器中或在Xcode的物理设备上重建并运行应用程序。

  2. 转到 Personalization 选项卡。

  3. 滚动到顶部,您会看到在​ Surface Offers Location ​图块中定义的收藏集中显示的两个随机选件。

    {width="300"}

    这些选件是随机的,因为您已为所有选件指定相同的优先级,且选件的排名基于优先级。

Android
  1. 使用 Play ,在模拟器中或在Android Studio的物理设备上重建并运行应用程序。

  2. 转到 Personalization 选项卡。

  3. 滚动到顶部,您会看到在​ Surface Offers Location ​图块中定义的集合的上方框中显示的两个随机选件。

    {width="300"}

    这些选件是随机的,因为您已为所有选件指定相同的优先级,且选件的排名基于优先级。

验证Assurance中的实施

要验证Assurance中的选件实施,请执行以下操作:

  1. 查看设置说明部分以将模拟器或设备连接到Assurance。

  2. 在左边栏中选择​事件

  3. 在事件列表中查找​ 消息建议响应 ​事件。

  4. 在右窗格中,展开此类事件: ACPExtensionEventData > 建议 > 0 > > 0 > 数据 > 内容 > 选件。 您看到两个包含所需数据的选件​ 0 ​和​1

    决策服务保证

后续步骤

您现在应该拥有所有工具,以便开始向Journey Optimizer - Decisioning实施添加更多功能。 例如:

  • 将不同的参数应用于选件(例如,优先级、上限)
  • 收集应用程序中的配置文件属性(请参阅配置文件),并使用这些配置文件属性构建受众。 然后,将这些受众用作决策中资格规则的一部分。
  • 组合多个表面。
SUCCESS
您已使应用程序能够使用Decisionion显示选件。
感谢您投入时间学习Adobe Experience Platform Mobile SDK。 如果您有任何疑问、希望分享一般反馈或有关于未来内容的建议,请在此Experience League社区讨论帖子上分享这些内容。

下一步: 执行A/B测试

recommendation-more-help
platform-learn-help-tutorial-mobile-sdk