疑難排解即時動態 troubleshoot-mobile-live

在此頁面上:​系統化診斷您的Live活動無法出現、更新或結束的原因,以便您解決單一和廣播使用案例中的設定檔權杖、行銷活動設定、裝載和傳遞問題。

Adobe Journey Optimizer中的已上線活動可在iOS鎖定畫面和動態島嶼上啟用即時、動態更新。 它們只能透過API觸發的行銷活動來觸發和管理。

使用案例型別:

  • 單一:個別鎖定目標、異動(API觸發的異動行銷活動)
  • 廣播:以對象為目標、大量傳送(API觸發的行銷活動)

Live活動的一個常見挑戰是當API呼叫觸發或更新已上線活動傳回​成功回應(200 OK),但Live活動無法在使用者裝置上顯示或更新時。 API確認與實際裝置行為之間的這種中斷可能會發生在傳送管道中的多個點。 本指南提供系統的疑難排解方法,可識別傳送失敗的位置,透過裝置轉譯檢查API請求驗證的每個階段。

最常見的問題

症狀
使用案例
前往
API傳回「200確定」,但裝置上絕不會出現「即時」活動
兩者
案例1:設定檔或推播權杖問題
已上線活動出現,但不會更新或結束
單一(1:1)
案例4:更新權杖未同步
行銷活動和代號看起來正確,但傳送仍失敗
兩者
案例3:傳遞失敗和錯誤分析
裝載設定或API結構不清楚
兩者
案例2:行銷活動設定和裝載問題
特定對象成員未收到廣播
廣播
案例7:設定檔不在對象中或過時的快照集
需要以程式設計方式確認執行狀態
單一(1:1)
案例5:透過API檢查執行狀態
無Assurance存取權;需要生產層級的偵錯
兩者
進階:透過資料集查詢進行偵錯

瞭解這兩個使用案例

在偵錯之前,請確認哪個使用案例適用於您的行銷活動。 根本原因和偵錯路徑兩者之間差異極大。

單一(1:1)
廣播
AJO行銷活動型別
API觸發的交易式
API觸發的行銷
目標定位
透過recipients[].userId個別設定檔
透過audience.id的對象區段
要啟動的Token
推播至開始權杖(依設定檔)
input-push-channel (每個廣播執行個體)
要更新/結束的Token
更新Token (每個「已上線」活動執行個體)
與開始時間相同input-push-channel
對象新鮮度風險
不適用
長達24小時過時(批次評估)

術語辭彙表

術語
定義
推播至開始權杖
iOS 17+產生的APN代號,可讓AJO在裝置上遠端啟動即時活動,而不需開啟應用程式。 由行動SDK註冊並儲存在AEP設定檔中。
更新Token
當裝置上開始即時活動時產生的每個執行個體的APN代號。 單一updateend事件的必要專案。 每個已上線活動執行個體都有自己的唯一更新權杖。
input-push-channel
在Apple開發人員入口網站上為廣播直播活動建立的唯一管道識別碼。 做為廣播更新Token,訂閱此頻道的所有裝置都會收到相同的即時活動事件。
liveActivityData
Adobe SDK的LiveActivityAttributes通訊協定上的必要屬性。 單一包含liveActivityID;廣播包含channelID。 必須包含在啟動事件裝載的attributes欄位中。
廣播頻道識別碼
input-push-channel的值。 必須完全符合廣播承載中的liveActivityData.channelID
attributeType / attributes-type
Swift ActivityAttributes結構的名稱。 在AEP設定檔屬性中儲存為attributeType (駝峰式大小寫),並在APS JSON裝載中傳送為attributes-type (斷字)。 在不同的表示中,這些是相同的值。
liveActivityPushNotificationDetails
儲存裝置的推送至開始Token appIdplatformattributeType的AEP設定檔屬性。 必須存在且有效,遠端啟動才能運作。
APS承載
context.requestPayload.aps下的API要求內傳送的JSON結構。 包含已上線活動活動、content-stateattributes和控制欄位。
保證
Adobe Experience Platform Assurance,連線測試裝置的即時偵錯工具。 不適用於生產用一般使用者裝置。

先決條件

進行疑難排解之前,請確定您已:

適用於Live活動的Assurance外掛程式

Adobe Experience Platform Assurance中的「已上線活動」檢視可驗證應用程式的設定、檢查活動事件,並可讓您從遠端啟動、更新或結束測試工作階段中的活動。

note important
IMPORTANT
Assurance工作階段僅適用於測試和QA裝置。 一般使用者生產裝置未連線至Assurance。 對於生產診斷,請使用本指南結尾的進階:透過資料集查詢節進行偵錯。

需求

table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2
需求 詳細資料
iOS裝置 執行iOS 16.1或更新版本的實體裝置
Xcode模擬器 iOS 16.1或laterm 僅限本機啟動,模擬器不支援透過APN的遠端推播
從Assurance遠端啟動 iOS 17.1或更新版本、有效的推播開始代號,以及有效的管道設定
Mobile SDK Adobe Experience Platform Mobile SDK 5.11.0或更新版本
Session 作用中的Assurance工作階段

三個索引標籤

table 0-row-2 1-row-2 2-row-2 3-row-2
標記 它顯示的內容
使用者端資訊 裝置、設定檔和App Store憑證。 綠色檢查=設定正確;內嵌警報=建議修正的問題。 將直接對應至以下每個案例中的預先檢查。
活動 所選使用者端的已上線活動:型別(單一/廣播)、ID、狀態和事件計數。 子標籤:概覽(基本資訊+傳送更新按鈕)、活動流程(具有可檢查裝載的生命週期時間表)、事件詳細資料(每個事件的完整裝載檢查)。
活動 適用於使用者端的所有Assurance事件,包括即時活動開始、更新和結束事件。

從Assurance開始、更新和結束

啟動已上線活動。 開啟對話方塊以挑選註冊的活動型別、選擇單一或廣播、輸入廣播頻道ID (僅限廣播),以及編輯預先填寫的APS JSON裝載。 如果不符合開始推播權杖、iOS版本或頻道設定需求,按鈕會停用或傳回錯誤。

傳送更新。 從現有活動的Overview索引標籤,傳送更新(推送新內容)或結束事件。 為了統一,外掛程式會自動使用活動的更新Token。 如果是廣播,它會鎖定訂閱相同廣播頻道ID的所有裝置。 裝載必須是有效的JSON,並符合活動的屬性結構描述;否則會拒絕要求。

如需設定和工作階段連線步驟,請參閱Adobe Experience Platform Assurance檔案

收集API觸發的行銷活動詳細資料

在Journey Optimizer中導覽至您的API觸發的行銷活動,並擷取:

  • 行銷活動名稱和ID
  • Campaign版本(如果適用)
  • 行銷活動型別: 異動 (單一)或​行銷 (廣播)
  • 表面設定:用於即時活動的iOS應用程式表面
  • 活動型別:在行銷活動中設定的AttributeType結構名稱
收集API請求資訊

發出API呼叫以觸發即時活動時,請儲存:

  • API要求裝載,包括設定檔識別碼和即時活動資料
  • API回應,包括狀態代碼、訊息ID、請求ID
  • 呼叫API的時間戳記
  • 使用的端點,例如/campaign/{CAMPAIGN_ID}/execute
識別測試設定檔

從您的API請求中擷取:

  • 設定檔名稱空間,例如ECID、電子郵件、客戶ID
  • API呼叫中使用的設定檔ID

確定您可以在Adobe Experience Platform中查詢此設定檔。 在Experience Platform檔案🔗中瞭解如何查詢設定檔。

裝置和應用程式資訊

從測試裝置收集下列專案:

  • 裝置型號,例如iPhone 14 Pro
  • iOS版本
  • 應用程式套件組合識別碼
  • APNs推播權杖
  • 測試時的網路連線狀態

常見案例

案例1:設定檔或推播權杖問題 scenario-1-profile-or-push-token-issues

[適用於單一和廣播使用案例]{class="badge positive"}

API傳回HTTP 200,但未顯示上線活動。 常見原因:

  • 設定檔不存在於Adobe Experience Platform中。
  • 即時活動推播權杖尚未同步至設定檔。
  • 已同步即時活動推播詳細資料,但包含不正確的設定,例如,錯誤的appIdattributeType

廣播使用案例的注意事項:如果對象中的某些設定檔遺失權杖,則只有這些設定檔將無法接收即時活動。 從您的對象中取樣數個設定檔,以診斷Token問題。 這僅適用於遠端開始事件,不適用於更新或結束事件。

預先檢查

  • iOS應用程式需求:

    • iOS 16.1+
    • Info.plist中將NSSupportsLiveActivities設定為YES
    • ActivityAttributes已正確實作。
  • 行動SDK整合:

    • Adobe Experience Platform Mobile SDK (傳訊SDK 5.11.0+)
    • 使用Live活動推播權杖實作及呼叫Messaging.registerLiveActivities

偵錯步驟

​1. 驗證Adobe Experience Platform中存在設定檔
  1. 在Journey Optimizer中,導覽至​客戶 > 設定檔
  2. 使用API請求的名稱空間和身分值來搜尋。
  3. 如果找不到設定檔,表示設定檔不存在或內嵌未完成。 在觸發上線活動之前,請建立設定檔或等待擷取。
  4. 如果找到設定檔,請繼續執行下方的步驟2以檢查推送代號是否已同步。
​2. 檢查即時活動推播權杖是否已同步

您可以使用Assurance來驗證Token註冊:

  1. 在Assurance中,從​ 事件 ​清單,篩選或搜尋事件eventType = "liveActivity.pushToStart"
  2. 選取​ 事件 ​並檢查裝載。
  3. 檢查權杖、appId和attributeType值是否存在。
  4. 確認事件是否成功傳送。

您也可以存取Adobe Experience Platform設定檔。

  1. 在Adobe Experience Platform中,從您的​ 設定檔 ​存取​ 事件 ​索引標籤。
  2. 搜尋liveActivity.pushToStart個事件。
  3. 檢查偶數時間戳記和承載。

如果找不到事件,表示您的行動應用程式無法正確呼叫Messaging.registerLiveActivity。 您需要修正SDK整合。

​3. 驗證設定檔上的Token詳細資料
  1. 從您的​設定檔,存取​ 屬性 ​標籤。

  2. 找到liveActivityPushNotificationDetails

  3. 驗證權杖設定:

    code language-json
    {
       "liveActivityPushNotificationDetails": [
       {
          "appId": "com.example.myapp",
          "token": "abc123def456...",
          "platform": "apns",
          "denylisted": false,
          "attributeType": "OrderTrackingAttributes",
          "identity": {}
       }
       ]
    }
    

驗證每個欄位:

table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3
欄位 需求 常見問題
appId 必須完全符合iOS套件組合識別碼 開發/生產套件組合ID不相符
attributeType 必須完全符合Swift ActivityAttributes結構名稱(區分大小寫) 拼寫錯誤或不正確的結構名稱
platform 必須為"apns""apnsSandbox" 錯誤的平台值
denylisted 必須為false 權杖標示為無效或使用者選擇退出
token 有效的APN推播權杖 Token已過期或重新安裝應用程式

如果任何欄位不正確:更新行動應用程式,使用Messaging.registerLiveActivities重新註冊,等待5到10分鐘,然後重新檢查。

如果liveActivityPushNotificationDetails遺失: Token尚未同步。 在Assurance中看到liveActivity.pushToStart事件後,請等待5至10分鐘。

案例2:促銷活動設定和裝載問題 scenario-2-campaign-configuration-and-payload-issues

[適用於單一和廣播使用案例]{class="badge positive"}

具有有效權杖的設定檔已存在,但未顯示即時活動。 這可能是由於:

  • 介面或通道設定錯誤。
  • API裝載結構不正確。
  • content-stateattributes不符合iOS ActivityAttributes實作。
  • 過時timestamp (更新/結束的關鍵)。

廣播使用案例的注意事項:行銷活動必須是​API觸發的行銷 (非異動)。 承載使用audience,而非個別profile。 請參閱此章節以取得廣播特定的裝載結構,並參閱Adobe Developer檔案以取得完整的API規格。

預先檢查

  • 行銷活動為​API觸發的交易式 (單一)或​API觸發的行銷 (廣播),且​ 高輸送量 ​選項必須為​未啟用,因為它與即時活動不相容。
  • 使用上述案例,確定設定檔存在且權杖已正確同步。

偵錯步驟

​1. 驗證行銷活動表面設定
  1. 在Journey Optimizer中,開啟您的​ 行銷活動 ​並導覽至​ 動作 ​功能表。
  2. 檢查您的​上線活動設定。 您必須使用符合設定檔liveActivityPushNotificationDetailsappId的套件組合識別碼,為iOS應用程式設定表面。 例如,如果您的設定檔有"appId": "com.example.myapp",則表面必須針對相同的應用程式。
  3. 檢查促銷活動組態中的​ 活動型別 ​是否與設定檔liveActivityPushNotificationDetails中的attributeType完全相符。 例如,如果您的設定檔有"attributeType": "FoodDeliveryLiveActivityAttributes",則行銷活動必須指定此相同的活動型別。
​2. 驗證API裝載結構

透過API執行行銷活動時,請確定裝載遵循正確結構。

單一承載:

code language-json
{
   "campaignId": "your-campaign-id",
   "recipients": [{
      "type": "aep",
      "userId": "user@example.com",
      "namespace": "email",
      "context": {
      "requestPayload": {
         "aps": {
            "content-available": 1,
            "timestamp": 1756984054,
            "event": "start",
            "attributes-type": "FoodDeliveryLiveActivityAttributes",
            "content-state": { ... },
            "attributes": { ... }
         }
      }
      }
   }]
}

常見承載問題:

table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 6-row-3
欄位 需求 常見問題
attributes-type 必須符合行銷活動型別與設定檔attributeType 不符或拼寫錯誤
campaignId 必須符合啟用的行銷活動ID 行銷活動ID錯誤或遺失
content-available 必須為1 值遺失或錯誤
event 必須為"start""update""end" 無效的事件型別
timestamp 必須永遠為目前/最新的Unix紀元時間(以秒為單位) 使用舊的/快取的時間戳記
userId / namespace 必須與AEP中的現有設定檔相符 設定檔識別碼不相符

嚴重:一律使用最新的時間戳記

  • 進行每個API呼叫時,timestamp欄位必須​ 一律 ​為​目前的Unix紀元時間 (以秒為單位)。
  • 這適用於​所有事件型別startupdate以及​特別是end
  • 對更新/結束要求的影響:使用過時或舊時間戳記會導致更新及結束要求失敗或被裝置忽略。
  • 請​ ​重複使用先前請求的時間戳記,或使用快取的值。
  • 為每個API呼叫產生新的時間戳記。

選用欄位(所有事件型別):

  • requestId:追蹤的唯一識別碼(建議)。
  • alert:通知物件有titlebody (有助於提醒注意更新)。

關於dismissal-date

  • 包含Unix紀元時間(秒)的可選欄位。
  • 僅在event: "end"​時相關。
  • 指定何時應自動從裝置移除即時活動。
  • 如果未在最終事件中提供,則即時活動會維持可見,直到使用者將其解除為止。
  • 必須為未來的時間戳記(晚於timestamp)。
​3. 將裝載與iOS實作對齊

確認您的API裝載符合您的iOS應用程式的ActivityAttributes實作。 Adobe SDK的LiveActivityAttributes通訊協定擴充iOS ActivityAttributes,並需要liveActivityData屬性。

驗證對應:

  1. 您的ActivityAttributes必須實作Adobe的LiveActivityAttributes通訊協定。 範例:

    code language-swift
    struct FoodDeliveryLiveActivityAttributes: LiveActivityAttributes {
       public struct ContentState: Codable, Hashable {
          var orderStatus: String
          var estimatedDeliveryTime: String
       }
    
       // Adobe SDK requirement
       var liveActivityData: LiveActivityData
    
       // Your custom attributes
       var restaurantName: String
    }
    

    請注意 liveActivityData欄位是Adobe SDK的必要欄位,必須包含在所有實作中。

  2. 您的API裝載必須映象iOS結構:

    code language-json
    {
       "aps": {
          "event": "start",
          "timestamp": 1756984054,
          "attributes-type": "FoodDeliveryLiveActivityAttributes",
          "content-state": {
          "orderStatus": "Preparing",
          "estimatedDeliveryTime": "20 mins"
       },
       "attributes": {
          "liveActivityData": {
          "liveActivityID": "order-12345"
          },
          "restaurantName": "Pizza Palace"
       }
       }
    }
    

驗證檢查清單:

  • content-state中包含所有ContentState欄位(所有事件型別都需要)。

  • attributes中包含所有LiveActivityAttributes欄位(僅限開始事件),包括:

    • liveActivityData (必要;通常包含liveActivityID或類似的識別碼)
    • 結構中的所有自訂欄位
  • 完全符合欄位名稱(區分大小寫)。

  • 符合資料型別(String、Int、Bool、巢狀物件)。

  • 保留巢狀物件結構。

常見錯誤:

table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 6-row-3 7-row-3
問題 影響 修正
屬性中遺失liveActivityData 即時活動不會開始 一律在開始事件中包含liveActivityData物件
啟動事件中缺少必填欄位 即時活動不會開始 從iOS結構新增所有欄位
欄位名稱錯誤(拼寫錯誤/大小寫) 欄位被忽略或剖析錯誤 完全符合iOS欄位名稱
錯誤的資料型別 剖析錯誤 符合iOS資料型別
遺失巢狀物件 不完整的資料 包含所有巢狀結構
在更新/結束中包括attributes 不必要,但通常會忽略 在開始事件中僅包含attributes
更新/結束時的過時時間戳記 裝置忽略更新/結束 一律產生新的時間戳記

如需更多範例,請參閱建立即時活動頁面

​4. 使用Assurance進行測試

使用Assurance驗證API執行和裝載傳送:

  1. 開啟您的Assurance工作階段。

  2. 執行API呼叫以觸發上線活動。

  3. 在​ 事件清單 ​中,檢查:

    • 行銷活動執行事件。
    • 已上線的活動傳送活動。
    • 裝載驗證錯誤事件。
  4. 檢閱事件裝載以驗證:

    • 已正確處理承載。
    • 沒有發生驗證錯誤。
    • 已將上線活動傳送至APN。

案例3:傳送失敗和錯誤分析 scenario-3-delivery-failures-and-error-analysis

[適用於單一和廣播使用案例]{class="badge positive"}

在此案例中,所有先前的檢查均已通過:

但已上線的活動還是沒有如預期般出現、更新或結束。 問題可能是Adobe傳遞系統層級或推播通知服務提供者(APN)的問題。

廣播使用案例的注意事項:報表顯示所有對象成員的量度。 有些設定檔可能會成功,而有些設定檔則會失敗。

預先檢查

  • 已驗證的先前案例:

    • 具有正確liveActivityPushNotificationDetails的設定檔已存在
    • 行銷活動表面和活動型別正確
    • API裝載對目前時間戳記有效
    • 更新Token已同步(適用於更新/結束事件)
  • 已確認的API呼叫:

    • API呼叫傳回HTTP 200 (成功)
    • 行銷活動ID和收件者詳細資料正確

偵錯步驟

​1. 檢查行銷活動報告
  1. 導覽至您的​即時活動行銷活動

  2. 按一下​ 報表 ​按鈕。

  3. 選取​檢視所有時間報表

  4. 檢閱下列章節:

    1. 檢查​ 傳送統計資料 ​量度以瞭解傳送成功:

      table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3
      量度 其含義 要尋找的內容
      已鎖定目標 符合對象資格的設定檔數 應該包含您的測試設定檔
      傳送 嘗試的推播通知總數 應該符合您的API呼叫
      已傳遞 已成功傳遞至裝置 與傳送比較以檢視成功率
      傳送錯誤 無法傳送的推播通知 高數字
      傳送排除專案 Adobe Journey Optimizer排除的設定檔 檢查您的設定檔是否已排除
    2. 如果傳送錯誤> 0,請檢查​ 錯誤原因 ​資料表以取得特定的錯誤碼和訊息:

      table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3
      常見錯誤 含義 解決方法
      權杖無效 推播權杖無效或過期 從裝置重新註冊即時活動權杖
      找不到語彙基元 沒有與設定檔相關聯的有效權杖 驗證liveActivityPushNotificationDetails是否存在
      已拒絕APN Apple推播通知服務已拒絕推播 檢查APNs憑證、套件ID、環境
      網路逾時 無法連線APN 暫時性問題;請重試API呼叫
    3. 如果​傳送排除專案 > 0,請檢查​ 排除的原因 ​資料表:

      table 0-row-3 1-row-3 2-row-3 3-row-3
      常見排除 含義 解決方法
      設定檔已選擇退出 使用者已選擇退出通知 檢查設定檔同意狀態
      權杖已加入封鎖清單 標籤為無效的權杖 重新註冊Token或檢查封鎖清單狀態
      設定檔不合格 設定檔不符合行銷活動條件 檢閱行銷活動對象規則

即時活動行銷活動報告頁面瞭解更多。

​2. 檢查設定檔中的訊息回饋事件
  1. 導覽至Journey Optimizer中的​客戶 > 設定檔

  2. 搜尋並開啟設定檔。

  3. 選取​ 事件 ​標籤。

  4. 篩選或搜尋具有eventType = "message.feedback"的事件。

  5. 尋找與您上線活動的liveActivityIDevent型別相符的意見反應事件。

  6. 檢閱下列重要欄位:

    table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3
    欄位 可能的值 其含義
    feedbackStatus sent, error, denylist 來自服務提供者的傳遞結果
    serviceProvider apns/apnsSandbox 應該是iOS Live活動的APN
    errorCode 數值代碼或null APNs專屬錯誤碼(若失敗)
    errorMessage 錯誤描述或null 人類看得懂的錯誤訊息
  7. feedbackStatus: "error"

    • 檢查errorCodeerrorMessage是否有特定的APN錯誤
    • 常見的APN錯誤包括過期的權杖、無效的憑證、錯誤的套件組合識別碼
  8. 如果找不到意見反應事件:

    • 可能尚未嘗試推播通知
    • 如上述步驟1所述,檢查促銷活動報表中是否排除設定檔。
​3. 驗證Assurance中傳送至APN的即時活動
  1. 開啟您的Assurance工作階段,它必須在API呼叫期間作用中。

  2. 執行API呼叫(開始、更新或結束)。

  3. 在​ 活動清單 ​中,尋找已上線活動傳遞活動。

  4. 搜尋與APN推送傳遞相關的事件。

  5. 檢查下列指標:

    • 推送要求至APN:確認Adobe已傳送推送要求至Apple的伺服器
    • APN回應:顯示APN是否接受或拒絕推播
    • 傳遞狀態:成功或失敗指示
  6. 如果發現問題,請參閱以下常見的APN傳送問題:

    table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3
    問題 Assurance中的症狀 解決方法
    APNs憑證已過期 驗證錯誤 更新及上傳新的APNs憑證
    錯誤的環境(開發環境vs生產環境) 權杖不符錯誤 確保憑證符合應用程式建置型別
    套件組合ID不相符 無效的套件組合識別碼 驗證憑證套件組合ID是否與應用程式相符
    權杖已到期 來自APN的InvalidToken錯誤 重新註冊即時活動權杖
    速率限制 請求次數過多 降低API呼叫頻率
​4. 繼續其他診斷檢查
  1. 檢查行銷活動報告中的即時活動生命週期量度。

    在行銷活動報告中,檢閱​ 即時活動生命週期 ​區段:

    table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2
    量度 檢查內容
    遠端啟動 應該顯示API觸發的開始計數
    更新 應該顯示更新事件的計數
    結束 應該顯示結束事件的計數
    總計計數 整體已上線活動活動量度

    如果這些量度為零或不符合您的API呼叫,則Adobe與APN之間會發生傳送問題。

  2. 如果Adobe顯示傳送成功,但裝置未顯示已上線的活動:

    • 檢查iOS裝置記錄檔中的即時活動錯誤。
    • 驗證應用程式在前景或背景(未終止)。
    • 確認裝置具有網路連線。
    • 在多個裝置上測試以排除裝置特定問題。
    • 確認iOS版本為16.1或更新版本。
​5. 提升至Adobe支援

如果您已完成所有步驟,但問題仍未解決,請聯絡Adobe客戶服務,聯絡:

必要資訊:

  • 行銷活動 ID 和名稱
  • 設定檔名稱空間和ID
  • 來自API裝載liveActivityID
  • API呼叫的時間戳記
  • 熒幕擷圖:
  • 行銷活動報告(傳送統計資料、錯誤原因、排除的原因)
  • 設定檔事件(liveActivity.updateTokenmessage.feedback)
  • 顯示傳遞事件的Assurance工作階段
  • 完成API請求裝載
  • APNs憑證詳細資料(到期、環境、套件組合ID)

單一特定案例

案例4:即時活動更新Token未同步 scenario-4-live-activity-update-token-not-synced

裝置上的即時活動已成功啟動,但後續updateend API呼叫(傳回HTTP 200)無法更新或解除即時活動。 當​ 即時活動更新Token ​未正確同步至Adobe的系統時,就會發生這種情況。

瞭解更新Token

當上線活動在裝置上開始時,iOS會為該特定上線活動執行個體產生唯一的更新權杖。 下列專案需要此代號:

  • 傳送更新至已上線活動
  • 從遠端結束即時活動

每個已上線活動執行個體都有自己的唯一更新權杖。 Adobe需要此Token才能傳遞更新和結束事件。

預期行為

若要讓更新與結束事件運作,必須發生下列情況:

  1. 裝置上的即時活動已成功啟動。
  2. 裝置產生該即時活動執行個體的更新權杖。
  3. 行動SDK會擷取更新Token並將其傳送至Adobe。
  4. 更新Token會同步並儲存在Adobe的系統中。
  5. 針對更新/結束的後續API呼叫會使用此權杖進行傳送。

預先檢查:

  • 使用者許可權:首次在裝置上啟動即時活動時,iOS會顯示系統提示:「允許[應用程式名稱]提供即時活動更新?」 使用者​ 必須點選[允許] ​才能產生並同步更新權杖。 如果使用者點選「不允許」,則不會建立任何更新Token,且更新/結束請求將失敗。 這是每個應用程式的一次性許可權。
  • 設定檔和促銷活動驗證:完成案例1案例2檢查,以確保設定檔、代號和促銷活動設定正確無誤。

偵錯步驟

驗證Assurance中的更新權杖同步
  1. 開啟您的Assurance工作階段。

  2. 確定工作階段在裝置上開始即時活動時處於作用中狀態。

  3. 篩選或搜尋具有eventType = "liveActivity.updateToken"的事件。

  4. 選取事件並檢查裝載:

    • 請確認token欄位包含有效的更新Token字串。
    • 檢查liveActivityID是否與您的即時活動執行個體相符。
    • 確認activityType符合您的attributes-type
  5. 如果找不到事件:

    • SDK未產生或擷取更新Token。
    • 檢查使用者是否已授與上線活動許可權。
    • 確認已在裝置上成功啟動上線活動。
    • 確認行動SDK已正確整合以擷取更新Token。
  6. 如果找到事件,請繼續進行步驟2。

​2. 驗證設定檔事件中的更新權杖
  1. 導覽至Journey Optimizer中的​客戶 > 設定檔

  2. 搜尋並開啟設定檔。

  3. 選取​ 事件 ​標籤。

  4. 尋找liveActivity.updateToken個事件。

  5. 檢查事件詳細資料:

    • 驗證時間戳記是否為最近(符合上線活動開始的時間)。
    • 確認tokenliveActivityID是否存在。
    • 請確定activityType正確。
  6. 如果在設定檔中找不到事件:

    • 更新Token事件可能尚未內嵌至設定檔。
    • 等待5到10分鐘,然後重新檢查。
    • 如果15分鐘後仍然遺失,則可能是事件擷取問題。
  7. 如果找到事件,則表示更新Token已同步。 您可以繼續進行步驟3。

​3. 檢查Assurance中的即時活動傳送事件
  1. 在您的Assurance工作階段中,執行更新或結束API呼叫。

  2. 在​ 事件清單 ​中,尋找已上線活動傳遞事件(APNs推播事件)。

  3. 檢查事件以指出:

    • 推播通知已傳送至APN。
    • APN的回應(成功或錯誤)。
    • 傳遞確認。
  4. 如果APNs傳送事件存在:已傳送推播通知。 如果裝置仍未更新,則問題可能出在裝置端(應用程式未處理推播、網路問題等)。

  5. 如果APN傳遞事件遺失:更新Token可能無法正確儲存,或與Adobe系統中的設定檔建立關聯。

  6. 如果出現錯誤事件:檢查錯誤詳細資料以找出特定的失敗原因(無效的Token、拒絕的APN等)。

案例5:透過API檢查執行狀態 scenario-5-checking-execution-status-via-the-api

[僅套用至單一(1:1)使用案例]{class="badge informative"}

觸發單一即時活動後,GET訊息執行API​會傳回執行的目前狀態。 使用它來確認執行是否已排入佇列、進行中、完成或失敗,而不等待意見反應事件進入資料集。

executionId是觸發程式回應中傳回的訊息ID。 對於單一執行,其前置詞為HUOC-

端點和範例要求

端點GET https://cjm.adobe.io/imp/message/executions/{executionId}

curl --location 'https://cjm.adobe.io/imp/message/executions/HUOC-123456' \
  --header 'x-gw-ims-org-id: <IMS_ORG_ID>' \
  --header 'Authorization: Bearer <ACCESS_TOKEN>' \
  --header 'x-sandbox-name: <SANDBOX_NAME>' \
  --header 'x-sandbox-id: <SANDBOX_UUID>' \
  --header 'x-api-key: <API_KEY>'

HTTP回應代碼

程式碼
含義
200 OK
找到執行並成功傳回
401未獲授權
持有人權杖遺失或無效
403禁止
有效的Token,但許可權不足
404找不到
執行識別碼不存在

執行狀態值

200回應中的status欄位表示執行進度:

狀態
說明
PENDING
執行已佇列但尚未開始
INPROGRESS
目前正在處理執行
COMPLETED
執行已成功完成
FAILED
執行發生錯誤

200回應也傳回executionTypeunitarybatch)、executionRunModedefaulttest)以及含有將執行繫結回觸發行銷活動或歷程的中繼資料(campaignIdjourneyIdbatchInstanceId、資產資訊)的source區塊。

廣播特定案例

案例6:廣播行銷活動設定和裝載問題 broadcast-config

[僅套用至廣播使用案例]{class="badge informative"}

本節說明廣播直播活動專屬的疑難排解案例,這些案例需要與單一行銷活動不同的偵錯方法。

當設定檔具有有效的權杖,但受眾成員的即時活動未出現、更新或按預期行事時,問題通常源於以下問題之一:

  • 行銷活動未設定為API觸發的行銷。
  • API承載使用不正確的廣播結構(遺失audienceinput-push-channel)。
  • content-stateattributes欄位不符合iOS ActivityAttributes實作。
  • 未在Apple開發人員入口網站上正確建立input-push-channel

此疑難排解案例適用於廣播行銷活動中的所有即時活動事件: startupdateend

預先檢查:

  • 促銷活動型別

    • 確認行銷活動建立為API觸發的行銷活動(廣播/對象型行銷活動的必要專案)。
    • 確認對象已定義於行銷活動設定中。
  • 設定檔和權杖驗證:從對象中取樣多個設定檔,以驗證它們是否具有有效的liveActivityPushNotificationDetails。 如需詳細的驗證步驟,請遵循案例1

偵錯步驟

​1. 驗證Campaign對象設定
  1. 在Journey Optimizer中開啟​API觸發的行銷活動

  2. 導覽至​ 對象 ​區段並驗證:

    • 已為行銷活動選取閱聽眾。
    • 對象ID符合您的API裝載中使用的對象ID。
    • 對象包含預期的設定檔。
  3. 導覽至​ 動作 ​區段。

  4. 檢查​上線活動設定

    • 必須使用正確的套件識別碼為iOS應用程式設定設定。
    • 活動型別必須符合您API承載中的attributes-type。 例如,如果您的裝載包含"attributes-type": "AirplaneTrackingAttributes",則行銷活動必須指定此相同的活動型別。
​2. 驗證廣播API裝載結構

廣播裝載結構與單一行銷活動不同。 確認您的裝載是否遵循正確的廣播格式。

廣播的必要欄位:

code language-json
{
   "campaignId": "878a11d4-b519-47bd-8313-fecfee19857b",
   "audience": {
      "id": "8c3dbdea-2957-401f-acf0-3966fba1601e"
   },
   "context": {
      "requestPayload": {
      "aps": {
         "input-push-channel": "FEt0NgvLEfEAAOqA6AXdIQ==",
         "content-available": 1,
         "timestamp": 1771829292,
         "event": "update",
         "attributes-type": "AirplaneTrackingAttributes",
         "content-state": { ... },
         "attributes": { ... }
      }
      }
   }
}

常見承載問題:

table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 6-row-3 7-row-3
欄位 需求 常見問題
campaignId 必須符合已啟用的行銷活動ID 錯誤的行銷活動ID或使用異動行銷活動
audience.id 必須符合AEP中的現有對象 錯誤的對象ID或對象不存在
input-push-channel 廣播必填 — 此廣播執行個體的唯一識別碼 遺失或不符合liveActivityData中的channelID
timestamp 必須永遠為目前/最新的Unix紀元時間(以秒為單位) 使用舊的/快取的時間戳記
event 必須為"start""update""end" 無效的事件型別
attributes-type 必須符合行銷活動活動型別 不符或拼寫錯誤
content-available 必須為1 值遺失或錯誤

重要廣播特定欄位:

  • input-push-channel:

    • 所有廣播Live活動皆需要。
    • 作為此特定廣播執行個體的唯一識別碼。
    • 對象中的所有設定檔都會收到連結至此管道的已上線活動。
    • 必須符合liveActivityData.channelID中的channelID (請參閱步驟3)。
    • 使用者端必須在Apple開發人員入口網站上為appID建立。
    • 只有為特定appID建立的頻道才能用來廣播該應用程式上的即時活動。
  • audience.id:

    • 必須參考在Adobe Experience Platform中建立的有效對象區段。
    • 此對象中的所有設定檔都是上線活動的目標。
    • 必須啟用對象,並包含具有有效liveActivityPushNotificationDetails的設定檔。

一律使用最新的時間戳記:

  • timestamp欄位一律為每個API呼叫的目前Unix紀元時間(以秒為單位)。
  • 此要求適用於所有事件型別: startupdateend
  • 更新/結束的關鍵:使用過時的時間戳記會導致更新和結束要求失敗。
  • 為每個廣播API呼叫產生新的時間戳記。

選用欄位:

  • dismissal-date:自動解除的Unix紀元時間(僅與end個事件相關)
  • alert:通知物件有titlebody

如需完整API規格,請參閱Adobe Journey Optimizer傳訊API檔案

​3. 讓內容狀態、屬性和輸入推播通道與iOS實作一致

確認承載欄位符合您的iOS應用程式的ActivityAttributes實作,且input-push-channel符合liveActivityData中的channelID

  1. 檢閱您的iOS ActivityAttributes定義。

您的自訂ActivityAttributes結構必須實作Adobe的LiveActivityAttributes通訊協定:

code language-swift
struct AirplaneTrackingAttributes: LiveActivityAttributes {
   public struct ContentState: Codable, Hashable {
      var journeyProgress: Int
   }

   // Adobe SDK requirement
   var liveActivityData: LiveActivityData

   // Your custom attributes
   var arrivalAirport: String
   var departureAirport: String
   var arrivalTerminal: String
}
  1. 將iOS欄位對應至廣播API裝載。

對於所有事件,同時包含attributescontent-state

code language-json
      {
      "aps": {
         "input-push-channel": "FEt0NgvLEfEAAOqA6AXdIQ==",
         "event": "start",
         "timestamp": 1771829292,
         "attributes-type": "AirplaneTrackingAttributes",
         "content-state": {
         "journeyProgress": 0
         },
         "attributes": {
         "arrivalAirport": "DEL",
         "departureAirport": "MUM",
         "arrivalTerminal": "T1",
         "liveActivityData": {
            "channelID": "FEt0NgvLEfEAAOqA6AXdIQ=="
         }
         }
      }
      }

嚴重: input-push-channel必須符合channelID

  • aps根目錄中的input-push-channel值必須與liveActivityData中的channelID完全相符。
  • 在上述範例中,兩個值均為"FEt0NgvLEfEAAOqA6AXdIQ=="
  • 此比對會將廣播例項連結至即時活動資料。
  • 不相符會導致傳遞失敗。

關鍵驗證點:

  • 包含所有事件型別content-state中的所有ContentState欄位。
  • 僅針對開始事件在attributes中包含所有自訂LiveActivityAttributes欄位。
  • 對於開始事件,liveActivityData.channelID必須符合input-push-channel
  • 欄位名稱會區分大小寫,且必須完全相符。
  • 資料型別必須相符(字串、Int、Bool、巢狀物件等)。
  • 對於更新/結束事件,請使用與原始開始事件相同的input-push-channel

常見錯誤:

table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 6-row-3 7-row-3
問題 影響 修正
遺失input-push-channel 廣播無法運作 為每個廣播新增唯一的頻道ID
input-push-channel不符合channelID 即時活動不會開始 確定兩個值相同
更新/結束的不同input-push-channel 更新/結束將不會到達已上線活動 在整個生命週期中使用相同的管道ID
遺失liveActivityData.channelID 即時活動將不會連結到廣播 在開始事件的屬性中包含channelID
啟動事件中缺少必填欄位 即時活動不會開始 從iOS結構新增所有欄位
欄位名稱錯誤(拼寫錯誤/大小寫) 欄位被忽略或剖析錯誤 完全符合iOS欄位名稱
更新/結束時的過時時間戳記 裝置忽略更新/結束 一律產生新的時間戳記
​4. 使用Assurance進行測試

使用Assurance驗證API執行和裝載傳送:

  1. 在屬於閱聽眾的測試裝置上開啟Assurance工作階段。

  2. 執行廣播API呼叫。

  3. 在​ 事件清單 ​中尋找:

    • 行銷活動執行事件。
    • 已上線的活動傳送活動。
    • 指示裝載驗證失敗的錯誤事件。
  4. 檢查事件裝載以確認:

    • 已正確處理承載。
    • input-push-channel已存在。
    • 沒有發生驗證錯誤。
    • 已將上線活動傳送至對象成員的APN。

案例7:設定檔不在對象中或過時的對象快照 scenario-7-profile-not-in-audience-or-stale-audience-snapshot

在此案例中,行銷活動和裝載已正確設定,但特定設定檔不會接收即時活動。 這通常發生在以下情況:

  • 設定檔不是連結至行銷活動的對象成員。
  • 對象是批次對象,並包含設定檔資料的過時快照。
  • 設定檔的即時活動權杖最近已新增,但尚未反映在對象快照中。

此疑難排解案例尤其適用於使用受眾型定位的廣播行銷活動。

瞭解對象評估

Adobe Experience Platform使用不同的對象評估方法,判斷設定檔更新何時會反映在對象中:

方法
評估頻率
資料新鮮度
最適合
批次
每日(已排程)一次
可能長達24小時已過時
大型受眾,不區分時間
串流
即時(設定檔變更)
更新的設定檔近乎即時
時效性,需要設定檔更新

預先檢查:

  • 行銷活動和承載驗證

    • 完成此情境中的檢查,以確保行銷活動和承載正確。
    • 確認API承載中的audience.id符合行銷活動設定。
  • 設定檔存在:確認設定檔存在於AEP中,且有效liveActivityPushNotificationDetails

偵錯步驟

​1. 驗證設定檔位於對象中

首先,確認應接收上線活動的設定檔是否實際屬於對象。

  1. 導覽至Adobe Experience Platform中的​對象

  2. 使用行銷活動中的audience.id搜尋並開啟對象。

  3. 按一下​ 瀏覽 ​或​ 範例設定檔 ​以檢視對象成員。

  4. 使用名稱空間和身分值搜尋您的測試設定檔。

  5. 如果在對象中找不到設定檔:

    • 設定檔不符合對象條件或區段規則。
    • 檢閱對象定義以瞭解成員資格要求。
    • 更新設定檔資料或對象定義,以包含設定檔。
    • 等待對象評估完成(請參閱步驟2)。
  6. 如果在對象中找到設定檔:​請繼續執行步驟2以檢查資料的時效性。

​2. 檢查對象評估型別和排程

識別對象是使用批次還是串流評估,因為這決定了資料的時效性。

  1. 在​ 對象詳細資料 ​頁面上,檢查​評估方法

    • 批次:依排程每日評估一次。
    • 串流:在發生設定檔更新時即時評估。
    • Edge:在邊緣位置即時評估。

根據評估方法,遵循適當的疑難排解步驟:

如果對象使用批次評估:

  1. 瞭解批次對象限制:

    • 批次對象每天評估一次(通常隔夜)。
    • 對象快照可能長達24小時之前。
    • 如果設定檔最近註冊了即時活動權杖,這些權杖可能不會在目前的快照中。
    • 在下次批次評估前不會反映設定檔的更新。
  2. 檢查上次評估發生的時間:

    • 在對象詳細資訊中,尋找​ 上次評估 ​時間戳記。
    • 如果設定檔的liveActivityPushNotificationDetails在此時間戳記之後更新,則對象具有過時資料。
  3. 解析過時資料:

    1. 選項1:等候排定的批次評估

      • 下一個批次評估將包含更新的設定檔資料。
      • 此作業每天自動進行一次。
      • 最適合非緊急情況。
    2. 選項2:觸發隨選對象評估

      1. 導覽至AEP中的​對象
      2. 選取您的客群。
      3. 按一下​ 立即評估 ​或​依需求啟用
      4. 等候評估完成(根據對象人數而定,這可能需要幾分鐘到幾小時的時間)。
      5. 確認設定檔現在已更新對象快照中的資料。
      6. 重試廣播API呼叫。

如果對象使用串流評估:

  1. 瞭解串流對象行為:

    • 當設定檔更新發生時,串流對象會即時評估。
    • 新設定檔:如果設定檔符合區段條件,建立後即符合資格。
    • 已更新設定檔:更新後不久即符合或取消資格。
    • 現有未變更的設定檔:除非進行更新,否則不會重新評估。
  2. 識別問題:

    • 如果設定檔已存在並符合區段標準,但該設定檔未發生更新,則可能無法將其新增到新建立的串流受眾。
    • 設定檔必須接收更新(任何屬性變更),才能觸發重新評估。
  3. 解決問題:

    • 對於新設定檔:如果符合條件,它們會自動符合條件。 不需要採取任何動作。

    • 對於沒有最近更新的現有設定檔:

      • 對設定檔進行微幅更新(例如,更新時間戳記欄位)。
      • 這會觸發串流評估,並將設定檔新增至對象。
      • 替代方案:針對現有設定檔使用批次對象或邊緣對象。

進階:透過資料集查詢進行偵錯 advanced-debugging-via-dataset-queries

對象:開發人員和資料工程師。 需要透過Adobe Experience Platform查詢服務以SQL方式存取Journey Optimizer資料集。

何時使用: Assurance僅限於測試在使用中工作階段期間連線的裝置。 使用資料集查詢來調查生產作業一般使用者回報的問題,或在事後稽核傳遞歷史記錄。 資料集會顯示與Assurance外掛程式相同的生命週期和失敗資訊。

找到資料集

  1. 在Journey Optimizer中導覽至​資料管理 > 資料集

  2. 啟用​ 顯示系統資料集 ​切換功能,並開啟​AJO訊息回饋事件資料集

請注意詳細資訊頁面上顯示的確切表格名稱。 下列查詢使用ajo_message_feedback_event_dataset,如果它不同,請以實際資料表名稱取代。

依已上線活動ID查詢

如果您知道即時活動ID (例如訂單UUID或出貨追蹤ID),並想要讓每個回饋事件在整個生命週期中與其連結,請使用此選項。

SELECT
  timestamp,
  identitymap,
  _experience.customerJourneyManagement
    .messageDeliveryfeedback.feedbackStatus AS status,
  _experience.customerJourneyManagement
    .messageDeliveryfeedback.messageFailure.reason AS failure_reason,
  _experience.customerJourneyManagement
    .pushChannelContext.liveActivity.event AS la_event,
  _experience.customerJourneyManagement
    .messageExecution.campaignID AS campaign_id,
  _experience.customerJourneyManagement
    .messageExecution.batchInstanceID AS batch_id,
  _id
FROM ajo_message_feedback_event_dataset
WHERE
  _experience.customerJourneyManagement
    .pushChannelContext.liveActivity.liveActivityID
    = '<YOUR_LIVE_ACTIVITY_ID>'
  AND eventtype = 'message.feedback'
ORDER BY timestamp ASC

依ECID查詢

當受影響設定檔的ECID已知時,請使用此選項。 以從設定檔擷取的ECID值取代<YOUR_ECID>

SELECT
  timestamp,
  _experience.customerJourneyManagement
    .messageDeliveryfeedback.feedbackStatus AS status,
  _experience.customerJourneyManagement
    .messageDeliveryfeedback.messageFailure.reason AS failure_reason,
  _experience.customerJourneyManagement
    .pushChannelContext.liveActivity.event AS la_event,
  _experience.customerJourneyManagement
    .pushChannelContext.liveActivity.liveActivityID AS la_id,
  _experience.customerJourneyManagement
    .messageExecution.campaignID AS campaign_id,
  _id
FROM ajo_message_feedback_event_dataset
WHERE
  identityMap['ECID'][0].id = '<YOUR_ECID>'
  AND eventtype = 'message.feedback'
ORDER BY timestamp ASC
NOTE
identityMap是結構化MAP型別,不是字串。 使用上述陣列和結構存取子語法。 LIKE之類的字串函式將傳回DATATYPE_MISMATCH錯誤。

feedbackStatus值

含義
sent
已移交給APN — 不確認裝置轉譯(請參閱下面的附註)
error
傳遞錯誤 — 檢查failure_reason以取得詳細資料
exclude
傳送前已排除設定檔(遺失權杖、同意問題或型別規則)
delay
傳遞已延遲;將重試
NOTE
對於la_event欄位,資料集記錄的是初始傳遞事件的remotestart,而不是start。 依事件型別進行查詢時,請適當的篩選。

解譯已傳送狀態

sentfeedbackStatus確認Journey Optimizer已成功將通知傳遞至APN。 它​ ​會確認已在裝置上轉譯即時活動。

當通知離開APN時,iOS不提供回呼。 無法從資料集中觀察裝置端失敗,例如作業系統限制、APN與裝置之間的網路中斷,或達到8小時的即時活動持續時間限制。 如果feedbackStatussent,但裝置上未出現任何上線活動,則問題不屬於Journey Optimizer管道。 使用Assurance外掛程式或應用程式層級記錄來診斷裝置端行為。

AI Knowledge Reference

This section contains structured knowledge intended to support interpretation, retrieval, and question answering related to this topic.

For complete understanding, this information should be combined with the documentation on this page. Neither source is intended to stand alone; the page describes the feature, while this section provides additional context that helps disambiguate terminology, intent, applicability, and constraints.

  • TL;DR: This page provides a systematic approach to diagnose why Live activities fail to appear, update, or end even when the API returns HTTP 200, covering profile and token, campaign configuration, payload, and delivery issues for unitary and broadcast use cases.

Intents:

  • Distinguish the unitary (API-triggered Transactional) and broadcast (API-triggered Marketing) debugging paths
  • Verify profile existence and Live activity push token sync (Scenario 1)
  • Validate campaign surface, Activity type, and API payload structure (Scenario 2)
  • Analyze delivery failures via campaign reports and message.feedback events (Scenario 3)
  • Diagnose unsynced update tokens (Scenario 4) and check execution status via the GET Message Execution API (Scenario 5)
  • Troubleshoot broadcast payload and audience-freshness issues (Scenarios 6 and 7) and query the feedback dataset directly (Advanced)

Glossary:

  • Push-to-start token: An APNs token generated by iOS 17+ that allows AJO to remotely start a Live activity without the app being open; registered by the mobile SDK and stored on the AEP profile (product-specific)
  • Update token: A per-instance APNs token generated when a Live activity starts; required for unitary update and end events (product-specific)
  • input-push-channel: A unique channel identifier created on the Apple Developer Portal for broadcast Live activities; acts as the broadcast update token (product-specific)
  • liveActivityData: A required property on the Adobe SDK LiveActivityAttributes protocol; contains liveActivityID for unitary or channelID for broadcast (product-specific)
  • Broadcast Channel ID: The value of input-push-channel; must exactly match liveActivityData.channelID (product-specific)
  • attributeType / attributes-type: The name of the Swift ActivityAttributes struct; stored as attributeType (camelCase) on the profile and sent as attributes-type (hyphenated) in APS JSON — the same value in different representations (product-specific)
  • liveActivityPushNotificationDetails: The AEP profile attribute that stores a device’s push-to-start token, appId, platform, and attributeType (product-specific)
  • APS payload: The JSON structure sent under context.requestPayload.aps, containing the event, content-state, attributes, and control fields (product-specific)
  • Assurance: Adobe Experience Platform Assurance, a real-time debugging tool for connected test devices; not available for production end-user devices (product-specific)

Guardrails:

  • Live activities can only be triggered and managed through API Triggered Campaigns.
  • The High Throughput option must not be enabled, since it is incompatible with Live activity.
  • Assurance sessions are for test and QA devices only; end-user production devices are not connected to Assurance.
  • Requirements: a physical iOS device on iOS 16.1 or later; the Xcode Simulator supports local start only (remote push via APNs is not supported on Simulator); remote start from Assurance requires iOS 17.1 or later, a valid push-to-start token, and a valid channel configuration; Adobe Experience Platform Mobile SDK 5.11.0 or later.
  • Batch audiences may be up to 24 hours stale (batch evaluation, once daily); this audience-freshness risk is not applicable to unitary use cases.
  • The first time a Live activity starts on a device, iOS shows a one-time permission prompt; the user must tap “Allow” for update tokens to be generated and synced.
  • input-push-channel must exactly match liveActivityData.channelID; a mismatch causes delivery failures.
  • A feedbackStatus of sent confirms hand-off to APNs only, not device rendering; device-side failures and the 8-hour Live activity duration limit are not observable from the dataset.

Terminology:

  • Canonical name: API Triggered Campaign — Acronym: n/a — variants: API-triggered Transactional (unitary), API-triggered Marketing (broadcast)
  • Synonyms: “attributeType” = “attributes-type” (the same value; camelCase on the profile, hyphenated in APS JSON)
  • Synonyms: “Broadcast Channel ID” = “input-push-channel
  • Do not confuse: “Push-to-start token” (starts a Live activity, per profile) ≠ “Update token” (updates or ends a unitary instance, per instance)
  • Do not confuse: “Unitary” (API-triggered Transactional, individual profile) ≠ “Broadcast” (API-triggered Marketing, audience segment)
  • Do not confuse: execution statuses “PENDING” ≠ “INPROGRESS” ≠ “COMPLETED” ≠ “FAILED
  • Do not confuse: feedbackStatussent” ≠ “error” ≠ “exclude” ≠ “delay
  • Do not confuse: la_event value “remotestart” (recorded in the dataset for initial delivery) ≠ “start” (the event field value in the payload)

FAQ:

  • Q: Why does the API return 200 OK but the Live activity does not appear? — A 200 confirms the request was accepted, but delivery can still fail at the profile/token, campaign configuration, payload, or APNs stage; work through Scenarios 1 to 3.
  • Q: Can I use Assurance for production end-user devices? — No; Assurance sessions are for test and QA devices only. For production diagnostics, use the dataset queries.
  • Q: Why do update and end calls fail after the Live activity started? — The per-instance update token may not be synced; the user must have tapped “Allow” on the one-time permission prompt for update tokens to be generated (Scenario 4).
  • Q: How do I check execution status programmatically? — Use the GET Message Execution API; for unitary executions the executionId is prefixed with HUOC-, and the status field returns PENDING, INPROGRESS, COMPLETED, or FAILED.
  • Q: What does a feedbackStatus of sent mean? — It confirms Journey Optimizer successfully handed the notification to APNs; it does not confirm that the Live activity was rendered on the device.
  • Q: Why are some audience members not receiving a broadcast? — The profile may not be in the audience, or a batch audience snapshot may be up to 24 hours stale; trigger on-demand evaluation or ensure a streaming update occurs (Scenario 7).
recommendation-more-help
journey-optimizer-help