ライブアクティビティのトラブルシューティング troubleshoot-mobile-live
Adobe Journey Optimizerのライブアクティビティにより、iOSのロック画面やダイナミック諸島でリアルタイムかつダイナミックに更新できます。 トリガーおよび管理できるのは、API トリガーキャンペーンのみです。
ユースケースの種類:
- 単一:個別にターゲティングされたトランザクション (API トリガーのトランザクションキャンペーン)
- ブロードキャスト:オーディエンスをターゲットにした一括配信(API トリガーによるマーケティングキャンペーン)
ライブアクティビティに関する頻繁な課題は、ライブアクティビティをトリガーまたは更新するAPI呼び出しが 成功したレスポンス(200 OK) を返すが、ライブアクティビティがユーザーのデバイスに表示または更新されない場合です。 API確認と実際のデバイス動作の間のこの断絶は、配信パイプラインの複数のポイントで発生する可能性があります。 このガイドでは、API リクエストの検証からデバイスのレンダリングに至るまで、各ステージを調べて、配信が失敗している場所を特定するための体系的なトラブルシューティングのアプローチを提供します。
前提条件
トラブルシューティングを行う前に、次の項目を確認してください。
-
accordion Assurance セッションの設定 Assurance セッションを設定して、SDK イベントをキャプチャし、配信パイプラインを調べます。 Assuranceでは、次の項目を可視化できます。
- Edge Networkのリクエストと応答
- プロファイル選定イベント
- プッシュトークン登録
- ライブアクティビティライフサイクルイベント
Assuranceの設定方法については、Adobe Experience Platform Assurance ドキュメント を参照してください。
メモ: iOS Live アクティビティの場合、アプリが物理的なiOS デバイス(iOS 16.1以降)またはXcode Simulator (iOS 16.1以降)で動作していることを確認します。
-
accordion API トリガーキャンペーンの詳細の収集 Journey OptimizerでAPI Triggered Campaignに移動し、次を取得します。
- キャンペーン名
- URLまたはキャンペーンプロパティで見つかったキャンペーン ID
- キャンペーンバージョン(該当する場合)
- サーフェス設定、ライブアクティビティに使用されるiOS アプリサーフェス
-
accordion API リクエスト情報の収集 ライブアクティビティをトリガーするAPI呼び出しを行う際に、次を保存します。
- プロファイル識別子やライブアクティビティデータを含むAPI リクエストペイロード
- ステータスコード、メッセージ ID、リクエスト IDを含むAPI応答
- APIが呼び出されたときのタイムスタンプ
- 使用されているエンドポイント (例:
/campaign/{CAMPAIGN_ID}/execute)
-
accordion テストプロファイルの特定 API リクエストから、次を取得します。
- プロファイル名前空間(例:ECID、電子メール、顧客ID)
- API呼び出しで使用されるプロファイル ID
Adobe Experience Platformでこのプロファイルを検索できることを確認します。 プロファイルを検索する方法については、Experience Platform ドキュメント を参照してください。
-
accordion デバイスとアプリ情報 テストデバイスから以下を収集します。
- デバイスモデル(例:iPhone 14 Pro)
- iOS版
- アプリバンドル識別子
- APNs プッシュトークン
- テスト時のネットワーク接続ステータス
一般的なシナリオ
プロファイルまたはプッシュトークンの問題 profile-issue
[単一とブロードキャストの両方のユースケースに適用]{class="badge positive"}
APIはHTTP 200を返しますが、Live アクティビティは表示されません。 一般的な原因:
- Adobe Experience Platformにプロファイルが存在しません。
- ライブアクティビティプッシュトークンがプロファイルに同期されていません。
- ライブアクティビティのプッシュの詳細は同期されますが、誤った設定(例:
appIdまたはattributeType)が含まれています。
ブロードキャストのユースケースに関する注意:オーディエンス内の一部のプロファイルにトークンがない場合、それらのプロファイルのみがライブアクティビティを受信できません。 トークンの問題を診断するために、オーディエンスからいくつかのプロファイルをサンプルします。 これは、リモート開始イベントにのみ適用され、更新イベントや終了イベントには適用されません。
事前確認
-
iOS アプリの要件:
- iOS 16.1以降
NSSupportsLiveActivitiesがYESでInfo.plistに設定されましたActivityAttributesが正しく実装されました。
-
モバイルSDKとの連携:
- Adobe Experience Platform Mobile SDK(メッセージング SDK 5.11.0以降)
Messaging.registerLiveActivitiesが実装され、ライブアクティビティプッシュトークンで呼び出されました。
デバッグ手順
-
accordion Adobe Experience Platformにプロファイルが存在することを確認する - Journey Optimizerで、Customer
>Profilesに移動します。 - API リクエストの名前空間とID値を使用して検索します。
- プロファイルが見つからない場合は、プロファイルが存在しないか、取り込みが完了していません。 プロファイルを作成するか、取り込みを待ってからライブアクティビティをトリガーします。
- プロファイルが見つかった場合は、以下の手順2に進んで、プッシュトークンが同期されているかどうかを確認します。
- Journey Optimizerで、Customer
-
accordion ライブアクティビティプッシュトークンが同期されているかどうかを確認する Assuranceを使用して、トークン登録を検証できます。
- Assuranceでは、イベント リストから、イベント
eventType = "liveActivity.pushToStart"をフィルタリングまたは検索します。 - イベントを選択し、ペイロードを調べます。
- トークン、appId、attributeTypeの値が存在することを確認します。
- イベントが正常に送信されたかどうかを確認します。
Adobe Experience Platformのプロフィールもご覧いただけます。
- Adobe Experience Platformで、プロファイルから「イベント」タブにアクセスします。
liveActivity.pushToStartイベントを検索します。- 偶数タイムスタンプとペイロードを確認します。
イベントが見つからない場合、モバイルアプリが
Messaging.registerLiveActivityを正しく呼び出していません。 SDKとの連携を修正する必要があります。 - Assuranceでは、イベント リストから、イベント
-
accordion プロファイルのトークン詳細の検証 -
プロファイルから、属性 タブにアクセスします。
-
liveActivityPushNotificationDetailsを探します。 -
トークン設定を確認します。
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 フィールド 要件 共通イシュー appIdIOS バンドル IDと完全に一致する必要があります 開発バンドル IDと実稼動バンドル IDが一致しません attributeTypeSwift ActivityAttributes構造体名と完全に一致する必要があります(大文字と小文字を区別)タイプミスまたは構造体名が正しくない platform"apns"または"apnsSandbox"である必要があります誤ったプラットフォーム値 denylistedfalseでなければなりません無効またはユーザーがオプトアウトとしてマークされたトークン token有効なAPNs プッシュトークン トークンの有効期限が切れているか、アプリが再インストールされています いずれかのフィールドが正しくない場合:モバイルアプリを更新し、
Messaging.registerLiveActivitiesを使用して再登録し、5 ~ 10分待ってから、もう一度確認します。liveActivityPushNotificationDetailsが見つからない場合:トークンがまだ同期されていません。 AssuranceでliveActivity.pushToStartイベントを見てから5 ~ 10分待ちます。 -
キャンペーン設定とペイロードの問題 payload-issues
[単一とブロードキャストの両方のユースケースに適用]{class="badge positive"}
有効なトークンを持つプロファイルは存在しますが、ライブアクティビティは表示されません。 これは、次の原因で発生する可能性があります。
- サーフェスまたはチャネルの設定が正しくありません。
- 誤ったAPI ペイロード構造。
content-stateとattributesはiOSActivityAttributesの実装と一致しません。- 古い
timestamp(更新/終了に重要)。
ブロードキャストのユースケースに関する注意: キャンペーンはAPI トリガーのマーケティング (トランザクションではない)である必要があります。 ペイロードは、個別のaudienceではなくprofileを使用します。 ブロードキャスト固有のペイロード構造についてはこのセクション を参照し、完全なAPI仕様についてはAdobe Developer ドキュメント を参照してください。
事前確認
- CampaignはAPI トリガーのトランザクション (単一)またはAPI トリガーのマーケティング (ブロードキャスト)であり、高スループット オプションは not 有効にする必要があります。ライブアクティビティと互換性がありません。
- プロファイルが存在し、上記の シナリオ を使用してトークンが正しく同期されていることを確認します。
デバッグ手順
-
accordion キャンペーンサーフェス設定の確認 - Journey Optimizerで キャンペーン を開き、アクション メニューに移動します。
- ライブアクティビティ設定を確認します。 IOS アプリのサーフェスは、プロファイルの
appIdのliveActivityPushNotificationDetailsと一致するバンドル IDで設定する必要があります。 例えば、プロファイルに"appId": "com.example.myapp"がある場合、サーフェスは同じアプリをターゲットにする必要があります。 - キャンペーン設定の アクティビティタイプ が、プロファイルの
attributeTypeのliveActivityPushNotificationDetailsと正確に一致することを確認します。 例えば、プロファイルに"attributeType": "FoodDeliveryLiveActivityAttributes"がある場合、キャンペーンはこの同じアクティビティタイプを指定する必要があります。
-
accordion 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-available1でなければなりません値が見つからないか間違っています event"start"、"update"または"end"である必要があります無効なイベントタイプ timestamp常に最新のUnixのエポックタイムを秒単位にする必要があります 古い/キャッシュされたタイムスタンプの使用 userIdまたはnamespaceAEPの既存のプロファイルと一致する必要があります プロファイル IDが一致しません 重要:常に最新のタイムスタンプを使用
timestampフィールドは、各API呼び出しが行われた時点で always が現在のUnix エポックタイム (秒単位)である必要があります。- これは、すべてのイベントタイプに適用されます:
start、update、特にend。 - 更新/終了リクエストに対する影響:古いタイムスタンプまたは古いタイムスタンプを使用すると、更新リクエストと終了リクエストが失敗するか、デバイスによって無視されます。
- 以前のリクエストのタイムスタンプを NOT で再利用するか、キャッシュされた値を使用します。
- API呼び出しごとに新しいタイムスタンプを生成します。
任意フィールド (すべてのイベントタイプ):
requestId: トラッキング用の一意のID (推奨)。alert:titleとbodyを持つオブジェクト (更新に注意を引くために便利です)。
について
dismissal-date:- Unix エポック時間(秒)を含むオプションフィールド。
event: "end"の場合にのみ関連します。- ライブアクティビティをデバイスから自動的に削除するタイミングを指定します。
- エンドイベントで指定しない場合、ユーザーがアクティビティを却下するまでライブアクティビティは表示されたままになります。
- 将来のタイムスタンプである必要があります(
timestamp以降)。
-
accordion ペイロードとiOSの実装の整合 API ペイロードがiOS アプリの
ActivityAttributes実装と一致していることを確認します。 Adobe SDKのLiveActivityAttributesプロトコルは、iOSActivityAttributesを拡張し、liveActivityDataプロパティを必要とします。マッピングを検証:
-
お使いの
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で必要であり、すべての実装に含める必要があります。 -
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" } } }
検証チェックリスト:
-
すべての
ContentStateフィールドをcontent-stateに含めます(すべてのイベントタイプに必須)。 -
次を含むすべての
LiveActivityAttributesフィールドをattributesに含めます(開始イベントのみ)。liveActivityData(必須。通常はliveActivityIDまたは類似の識別子が含まれます)- 構造体のすべてのカスタムフィールド
-
フィールド名を正確に一致させます(大文字と小文字を区別します)。
-
データタイプ(文字列、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のみを含める更新/終了時の古いタイムスタンプ デバイスで更新/終了が無視されました 常に新しいタイムスタンプを生成 詳細な例については、 ライブアクティビティページの作成を参照してください。
-
-
accordion Assuranceでテスト Assuranceを使用して、APIの実行とペイロードの配信を検証します。
-
Assurance セッションを開きます。
-
API呼び出しを実行して、ライブアクティビティをトリガーします。
-
イベントリストで、次を確認します。
- キャンペーン実行イベント:
- ライブアクティビティ配信イベント:
- ペイロード検証エラーイベント。
-
イベントペイロードを確認して、以下を確認します。
- ペイロードが正しく処理されました。
- 検証エラーは発生しませんでした。
- ライブアクティビティがAPNに送信されました。
-
配信エラーとエラー分析
[単一とブロードキャストの両方のユースケースに適用]{class="badge positive"}
このシナリオでは、以前のすべてのチェックに合格しました。
- プロファイルは有効なライブアクティビティプッシュトークン で存在します
- Campaignは適切なペイロードで正しく設定されています
- 更新トークンが同期されます (更新/終了イベントの場合、単一ユースケースのみ)
ただし、ライブアクティビティは、期待どおりに表示、更新、終了されません。 この問題は、Adobe配信システムレベルまたはプッシュ通知サービスプロバイダー(APN)で発生する可能性があります。
ブロードキャストのユースケースに関するメモ:すべてのオーディエンスメンバーに関する指標をレポートに表示します。 成功するプロファイルもあれば、失敗するプロファイルもあります。
事前確認
-
検証済みの以前のシナリオ:
- 正しい
liveActivityPushNotificationDetailsのプロファイルが存在します - キャンペーンサーフェスとアクティビティタイプが正しい
- API ペイロードは現在のタイムスタンプで有効です
- 更新トークンが同期されます(更新/終了イベントの場合)
- 正しい
-
API呼び出しが確認されました:
- API呼び出しでHTTP 200 (成功)が返されました
- キャンペーン IDと受信者の詳細が正しい
デバッグ手順
-
accordion キャンペーンレポートの確認 -
ライブアクティビティキャンペーンに移動します。
-
「レポート」ボタンをクリックします。
-
「すべての時間レポートを表示」を選択します。
-
次のセクションを確認します。
-
配信の成功について理解するには、送信統計指標を確認してください。
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 指標 意味 ビジネスの成長を促進するための ターゲット オーディエンスに適格なプロファイルの数 テストプロファイルを含める必要があります 送信数 試行されたプッシュ通知の合計 API呼び出しと一致する必要があります 配信済み デバイスへの正常な配信 送信数と比較して成功率を確認する 送信エラー 送信できなかったプッシュ通知 大きい数値 除外を送信 Adobe Journey Optimizerによって除外されたプロファイル プロファイルが除外されたかどうかを確認する -
送信エラーが0を超える場合は、エラーの理由 テーブルで特定のエラーコードとメッセージを確認します。
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 共通エラー 意味 解決策 無効なトークン プッシュトークンが無効または期限切れです デバイスからのライブアクティビティトークンの再登録 トークンが見つかりません プロファイルに関連付けられた有効なトークンがありません liveActivityPushNotificationDetailsが存在することを確認APNsが拒否されました Apple プッシュ通知サービスはプッシュを拒否しました APNs証明書、バンドル ID、環境の確認 ネットワークタイムアウト APNに到達できない 一時的な問題。API呼び出しを再試行してください -
除外を送信 > 0の場合、除外された理由 テーブルを確認します。
table 0-row-3 1-row-3 2-row-3 3-row-3 共通の除外 意味 解決策 プロファイルがオプトアウトされました ユーザーが通知をオプトアウトしました プロファイルの同意ステータスを確認 トークンをブロックリストに加える 無効としてマークされたトークン トークンの再登録またはブロックリストステータスの確認 プロファイルは対象外です プロファイルがキャンペーン条件を満たしていません キャンペーンオーディエンスのルールの確認
-
詳しくは、 ライブアクティビティキャンペーンレポートページ を参照してください。
-
-
accordion プロファイル内のメッセージフィードバックイベントの確認 -
Journey OptimizerのCustomer > Profilesに移動します。
-
プロファイルを検索して開きます。
-
「イベント」タブを選択します。
-
eventType = "message.feedback"のイベントをフィルタリングまたは検索します。 -
ライブアクティビティの
liveActivityIDとeventの種類に一致するフィードバックイベントを探します。 -
次のキーフィールドを確認します。
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 フィールド 使用可能な値 意味 feedbackStatussent、error、denylistサービスプロバイダーからの配信の結果 serviceProviderapns/apnsSandboxIOS Live アクティビティのAPNであるべき errorCode数値コードまたは null失敗した場合のAPNs固有のエラーコード errorMessageエラーの説明または null人間が判読可能なエラーメッセージ -
場合
feedbackStatus: "error":- 特定のAPNs エラーについては、
errorCodeとerrorMessageを確認してください - APNの一般的なエラーには、期限切れのトークン、無効な証明書、間違ったバンドル IDなどがあります
- 特定のAPNs エラーについては、
-
フィードバックイベントが見つからない場合:
- プッシュ通知が試行されていない可能性があります
- 上記の手順1で説明したように、キャンペーンレポートでプロファイルが除外されたかどうかを確認します。
-
-
accordion AssuranceのAPNへのライブアクティビティ配信を確認する -
Assurance セッションを開きます。API呼び出し中にアクティブにする必要があります。
-
API呼び出しを実行します(開始、更新、終了)。
-
イベントリストで、ライブアクティビティ配信イベントを探します。
-
APN プッシュ配信に関連するイベントを検索します。
-
次のインジケーターを確認します。
- APNsへのプッシュリクエスト: AdobeがAppleのサーバーにプッシュを送信したことを確認します
- APNs応答: APNがプッシュを承認したか拒否したかを示します
- 配信ステータス:成功または失敗の兆候
-
問題が見つかった場合は、次の一般的なAPNの配信の問題を参照してください。
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 問題 Assuranceの症状 解決策 APNs証明書の有効期限 認証エラー 新しいAPNs証明書の更新とアップロード 環境が正しくない(開発環境と実稼動環境) トークンの不一致エラー 証明書がアプリのビルドタイプに一致することを確認する バンドル IDの不一致 無効なバンドル ID 証明書バンドル IDがアプリと一致することを確認する トークン期限切れ APNsからのInvalidToken エラー ライブアクティビティトークンの再登録 レート制限 リクエストが多すぎます API呼び出し頻度の削減
-
-
accordion 追加の診断チェックに進みます -
Campaign レポートのライブアクティビティライフサイクル指標を確認します。
キャンペーンレポートで、ライブアクティビティライフサイクル セクションを確認します。
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 指標 確認すべきこと リモートスタート API トリガー開始回数を表示する必要があります アップデート 更新イベント数を表示する必要があります 終了 終了イベント数を表示する必要があります 合計数 ライブアクティビティイベントの全体的な量 これらの指標が0であるか、API呼び出しに一致しない場合は、AdobeとAPNの間に配信の問題があります。
-
Adobeが正常に配信されたが、デバイスにライブアクティビティが表示されない場合:
- IOS デバイスログでライブアクティビティエラーを確認します。
- アプリが前景または背景にあることを確認します(終了しません)。
- デバイスにネットワーク接続があることを確認します。
- 複数のデバイスをテストして、デバイス固有の問題を除外します。
- IOSのバージョンが16.1以降であることを確認します。
-
-
accordion Adobe サポートへのエスカレーション すべての手順を完了しても問題が解決しない場合は、Adobe カスタマーサポートにお問い合わせください。
必要な情報:
-
キャンペーン ID と名前
-
プロファイルの名前空間とID
- API ペイロードからの
liveActivityID
- API ペイロードからの
-
API呼び出しのタイムスタンプ
-
スクリーンショット:
- キャンペーンレポート(送信統計、エラー理由、除外された理由)
- プロファイルイベント (
liveActivity.updateToken,message.feedback) - 配信イベントを示すAssuranceのセッション
-
完全なAPI リクエストペイロード
-
APNs証明書の詳細(有効期限、環境、バンドル ID)
-
単一に固有のシナリオ
ライブアクティビティ更新トークンが同期されていません token-not-synced
ライブアクティビティはデバイスで正常に開始されますが、後続のupdateまたはend API呼び出し(HTTP 200を返します)はライブアクティビティの更新または却下に失敗します。 これは、ライブアクティビティ更新トークンがAdobeのシステムに正しく同期されていない場合に発生します。
更新トークンについて
デバイスでライブアクティビティが開始されると、iOSは、その特定のライブアクティビティインスタンスに対して一意の更新トークンを生成します。 このトークンは、次の場合に必要です。
- ライブアクティビティへの更新の送信
- ライブアクティビティをリモートで終了する
各ライブアクティビティインスタンスには、それぞれ固有の更新トークンがあります。 Adobeでは、更新イベントと終了イベントを配信するためにこのトークンが必要です。
期待される動作
更新イベントと終了イベントを機能させるには、次の操作が必要です。
- デバイスでライブアクティビティが正常に開始されます。
- デバイスは、そのライブアクティビティインスタンスの更新トークンを生成します。
- Mobile SDKは、更新トークンをキャプチャし、Adobeに送信します。
- 更新トークンは同期され、Adobeのシステムに保存されます。
- 更新/終了に対する後続のAPI呼び出しは、このトークンを配信に使用します。
プリチェック:
デバッグ手順
-
accordion Assuranceで更新トークンの同期を確認する -
Assurance セッションを開きます。
-
ライブアクティビティがデバイスで開始されたときに、セッションがアクティブであることを確認します。
-
eventType = "liveActivity.updateToken"のイベントをフィルタリングまたは検索します。 -
イベントを選択し、ペイロードを調べます。
tokenフィールドに有効な更新トークン文字列が含まれていることを確認します。liveActivityIDがライブアクティビティインスタンスと一致することを確認します。activityTypeがattributes-typeと一致することを確認します。
-
イベントが見つからない場合:
- 更新トークンは、SDKによって生成またはキャプチャされませんでした。
- ユーザーがライブアクティビティ権限を付与したかどうかを確認します。
- 実際にデバイスで正常に開始されたことを確認します。
- 更新トークンを取得するために、モバイル SDKが適切に統合されていることを確認します。
-
イベントが見つかった場合は、手順2に進みます。
-
-
accordion プロファイルイベントでの更新トークンの検証 -
Journey OptimizerのCustomer > Profilesに移動します。
-
プロファイルを検索して開きます。
-
「イベント」タブを選択します。
-
liveActivity.updateTokenイベントを探します。 -
イベントの詳細を確認します。
- タイムスタンプが最新であることを確認します(ライブアクティビティが開始されたときに一致)。
tokenとliveActivityIDが存在することを確認します。activityTypeが正しいことを確認します。
-
プロファイルにイベントが見つからない場合:
- 更新トークンイベントはまだプロファイルに取り込まれていない可能性があります。
- 5~10分待って、もう一度確認してください。
- 15分経過しても見つからない場合は、イベント取り込みの問題が発生している可能性があります。
-
イベントが見つかった場合、更新トークンは同期されています。 手順3に進みます。
-
-
accordion Assuranceのライブアクティビティ配信イベントの確認 -
Assurance セッションで、更新または終了API呼び出しを実行します。
-
イベントリストで、ライブアクティビティ配信イベント(APNs プッシュイベント)を探します。
-
次を示すイベントを確認します。
- プッシュ通知がAPNに送信されました。
- APNからの応答(成功またはエラー)。
- 配達確認。
-
APNs配信イベントが存在する場合:プッシュ通知が送信されました。 それでもデバイスが更新されない場合、問題はデバイス側にある可能性があります(アプリがプッシュやネットワークの問題を処理しない場合など)。
-
APNs配信イベントが見つからない場合:更新トークンが正しく保存されていないか、Adobe システムのプロファイルに関連付けられていない可能性があります。
-
エラーイベントが存在する場合:特定のエラーの理由(無効なトークン、APNが拒否されたなど)について、エラーの詳細を調べます。
-
放送固有のシナリオ
ブロードキャストキャンペーンの設定とペイロードの問題 broadcast-config
この節では、ブロードキャストライブアクティビティに固有のトラブルシューティングのシナリオについて説明します。これらのシナリオでは、単一キャンペーンとは異なるデバッグアプローチが必要です。
プロファイルに有効なトークンが含まれていても、ライブアクティビティがオーディエンスメンバーに表示されない、更新されない、または想定どおりに動作しない場合、問題は通常、次のいずれかに起因します。
- キャンペーンがAPI トリガーマーケティングとして設定されていません。
- API ペイロードで正しくないブロードキャスト構造が使用されています(
audienceまたはinput-push-channelがありません)。 content-stateとattributesフィールドがiOSActivityAttributesの実装と一致しません。- Apple Developer Portalで
input-push-channelが正しく作成されませんでした。
このトラブルシューティングのシナリオは、ブロードキャストキャンペーンのすべてのライブアクティビティイベント(start、update、およびend)に適用されます。
プリチェック:
-
キャンペーンタイプ:
- キャンペーンがAPI トリガーマーケティングとして作成されていることを確認します(ブロードキャスト/オーディエンスベースのキャンペーンに必要)。
- キャンペーン設定でオーディエンスが定義されていることを確認します。
-
プロファイルとトークンの検証:オーディエンスから複数のプロファイルをサンプルして、有効な
liveActivityPushNotificationDetailsを持っていることを確認します。 詳細な検証手順については、 シナリオ 1に従ってください。
デバッグ手順
-
accordion キャンペーンオーディエンス設定の確認 -
Journey Optimizerで API Triggered Marketing Campaign を開きます。
-
「オーディエンス」セクションに移動して、次を確認します。
- キャンペーン用にオーディエンスが選択されます。
- オーディエンス IDは、API ペイロードで使用されるIDと一致します。
- オーディエンスには、想定されるプロファイルが含まれています。
-
「アクション」セクションに移動します。
-
ライブアクティビティ設定を確認します。
- IOS アプリの設定は、正しいバンドル IDを使用して設定する必要があります。
- アクティビティの種類は、API ペイロードの
attributes-typeと一致する必要があります。 例えば、ペイロードに"attributes-type": "AirplaneTrackingAttributes"が含まれている場合、キャンペーンはこの同じアクティビティタイプを指定する必要があります。
-
-
accordion ブロードキャスト 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.idAEPの既存オーディエンスと一致する必要があります 間違ったオーディエンス IDまたはオーディエンスが存在しない input-push-channelブロードキャストに必須 – このブロードキャストインスタンスの一意の識別子 channelIDのliveActivityDataが見つからないか、一致しませんtimestamp常に最新のUnixのエポックタイムを秒単位にする必要があります 古い/キャッシュされたタイムスタンプの使用 event"start"、"update"または"end"である必要があります無効なイベントタイプ attributes-typeキャンペーンアクティビティタイプに一致する必要があります 不一致またはタイプミス content-available1でなければなりません値が見つからないか間違っています 重要なブロードキャスト固有のフィールド:
-
input-push-channel:- すべてのブロードキャストライブアクティビティに必要です。
- この特定のブロードキャストインスタンスの一意の識別子として機能します。
- オーディエンス内のすべてのプロファイルは、このチャネルにリンクされたライブアクティビティを受け取ります。
channelIDのliveActivityData.channelIDと一致する必要があります(手順3を参照)。- クライアントがApple Developer Portal上の
appID用に作成する必要があります。 - 特定の
appID用に作成されたチャネルのみを、そのアプリのライブアクティビティのブロードキャストに使用できます。
-
audience.id:- Adobe Experience Platformで作成された有効なオーディエンスセグメントを参照する必要があります。
- このオーディエンス内のすべてのプロファイルは、ライブアクティビティを対象としています。
- オーディエンスをアクティブ化し、有効な
liveActivityPushNotificationDetailsのプロファイルを含める必要があります。
常に最新のタイムスタンプを使用:
timestampフィールドは、常にAPI呼び出しごとに現在のUnix エポック時間(秒単位)である必要があります。- この要件は、すべてのイベントタイプ(
start、update、およびend)に適用されます。 - 更新/終了に重要:古いタイムスタンプを使用すると、更新リクエストと終了リクエストが失敗します。
- ブロードキャスト API呼び出しごとに新しいタイムスタンプを生成します。
任意フィールド:
dismissal-date:自動却下のUnixのエポックタイム(endイベントにのみ関連)alert:通知用にtitleとbodyを含むオブジェクト
完全なAPI仕様については、Adobe Journey Optimizer Messaging API ドキュメント を参照してください。
-
-
accordion IOSを活用して、content-state、attributes、input-push-channelの連携を強化 ペイロードフィールドがiOS アプリの
ActivityAttributes実装と一致していること、およびinput-push-channelがchannelIDのliveActivityDataと一致していることを確認してください。- 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 }- IOS フィールドをブロードキャスト API ペイロードにマッピングします。
すべてのイベントに対して、
attributesとcontent-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と一致する必要がありますinput-push-channelのルートのaps値は、channelIDのliveActivityDataと完全に一致する必要があります。- 上記の例では、両方の値は
"FEt0NgvLEfEAAOqA6AXdIQ=="です。 - このマッチングにより、ブロードキャストインスタンスがライブアクティビティデータにリンクされます。
- 不一致が発生すると、配信エラーが発生します。
主要な検証ポイント:
- すべてのイベントタイプに対して、
ContentStateにすべてのcontent-stateフィールドを含めます。 - 開始イベントに対してのみ、
LiveActivityAttributesにすべてのカスタムattributesフィールドを含めます。 - 開始イベントの場合、
liveActivityData.channelIDはinput-push-channelと一致する必要があります。 - フィールド名は大文字と小文字が区別され、正確に一致する必要があります。
- データ型は一致する必要があります(String、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のフィールド名と正確に一致 更新/終了時の古いタイムスタンプ デバイスが更新/終了を無視 常に新しいタイムスタンプを生成 -
accordion Assuranceでテスト Assuranceを使用して、APIの実行とペイロードの配信を検証します。
-
オーディエンスの一部であるテストデバイスでAssurance セッションを開きます。
-
ブロードキャスト API呼び出しを実行します。
-
イベントリストで、次を探します。
- キャンペーン実行イベント:
- ライブアクティビティ配信イベント:
- ペイロード検証エラーを示すエラーイベント。
-
イベントペイロードを調べて確認します。
- ペイロードが正しく処理されました。
input-push-channelが存在します。- 検証エラーは発生しませんでした。
- ライブアクティビティは、オーディエンスメンバー向けにAPNに送信されました。
-
プロファイルがオーディエンスまたは古いオーディエンスのスナップショットにありません
このシナリオでは、キャンペーンとペイロードは正しく設定されますが、特定のプロファイルはライブアクティビティを受信しません。 これは通常、次の場合に発生します。
- プロファイルは、キャンペーンにリンクされたオーディエンスのメンバーではありません。
- オーディエンスはバッチオーディエンスで、プロファイルデータの古いスナップショットが含まれています。
- プロファイルのライブアクティビティトークンは最近追加されましたが、オーディエンススナップショットにはまだ反映されていません。
このトラブルシューティングのシナリオは、オーディエンスベースのターゲティングを使用するブロードキャストキャンペーンに特に適用されます。
オーディエンスの評価について
Adobe Experience Platformでは、プロファイルの更新がオーディエンスに反映されるタイミングを決定するために、様々なオーディエンス評価方法を使用します。
プリチェック:
-
キャンペーンとペイロードの検証:
- このシナリオ のチェックを完了して、キャンペーンとペイロードが正しいことを確認します。
- API ペイロードの
audience.idがキャンペーン設定と一致することを確認します。
-
プロファイルが存在します:有効な
liveActivityPushNotificationDetailsのプロファイルがAEPに存在することを確認します。
デバッグ手順
-
accordion プロファイルがオーディエンスにあることを確認 まず、ライブアクティビティを受け取るプロファイルが実際にオーディエンスの一部であるかどうかを確認します。
-
Adobe Experience Platformの Audiences に移動します。
-
キャンペーンの
audience.idを使用してオーディエンスを検索し、開きます。 -
参照または サンプルプロファイル をクリックして、オーディエンスメンバーを表示します。
-
名前空間とID値を使用して、テストプロファイルを検索します。
-
オーディエンスにプロファイルが見つからない場合:
- プロファイルがオーディエンスの基準またはセグメントルールを満たしていません。
- オーディエンス定義を確認して、メンバーシップ要件を理解します。
- プロファイルデータまたはオーディエンス定義を更新して、プロファイルを含めます。
- オーディエンスの評価が完了するのを待ちます(手順2を参照)。
-
オーディエンスにプロファイルが見つかった場合: ステップ 2に進んで、データの鮮度を確認します。
-
-
accordion オーディエンスの評価の種類とスケジュールを確認する オーディエンスがバッチ評価とストリーミング評価のどちらを使用しているかを特定し、データの鮮度を判断します。
-
オーディエンスの詳細 ページで、評価方法を確認します。
- バッチ:毎日1回、スケジュールに従って評価されます。
- ストリーミング: プロファイルの更新時にリアルタイムで評価されます。
- Edge: リアルタイムでエッジの場所で評価されました。
評価方法に基づく適切なトラブルシューティング手順に従います。
オーディエンスがバッチ評価を使用している場合:
-
バッチオーディエンスの制限について:
- バッチオーディエンスは、1日に1回(通常は毎晩)評価されます。
- オーディエンスのスナップショットは、最大で24時間前になる場合があります。
- プロファイルが最近登録したライブアクティビティトークンの場合、これらのトークンは現在のスナップショットにない可能性があります。
- プロファイルの更新は、次のバッチ評価まで反映されません。
-
最後の評価が発生した際の確認:
- オーディエンスの詳細で、最終評価 タイムスタンプを探します。
- プロファイルの
liveActivityPushNotificationDetailsがこのタイムスタンプの後に更新された場合、オーディエンスには古いデータがあります。
-
古いデータを解決:
-
オプション 1:スケジュールされたバッチ評価を待つ
- 次のバッチ評価には、更新されたプロファイルデータが含まれます。
- これは1日に1回自動的に行われます。
- 緊急性の低いシナリオに最適:
-
オプション 2: オンデマンドのオーディエンス評価のトリガー
- AEPの Audiences に移動します。
- オーディエンスを選択します。
- 今すぐ評価または オンデマンドでアクティベート をクリックします。
- 評価が完了するまで待ちます(オーディエンスサイズによっては数分から数時間かかる場合があります)。
- プロファイルがオーディエンススナップショットのデータを更新したことを確認します。
- ブロードキャスト API呼び出しを再試行します。
-
オーディエンスがストリーミング評価を使用している場合:
-
ストリーミングオーディエンスの動作について:
- ストリーミングオーディエンスは、プロファイルの更新が発生したときにリアルタイムで評価されます。
- 新しいプロファイル: セグメントの条件を満たす場合は、作成後すぐに選定します。
- 更新されたプロファイル:更新された直後に選定または選定を解除しました。
- 既存の変更されていないプロファイル:更新が発生しない限り、再評価されません。
-
問題の特定:
- プロファイルが既に存在し、セグメント条件を満たしていても、そのプロファイルに更新が発生しない場合は、新しく作成されたストリーミングオーディエンスに追加できない可能性があります。
- プロファイルは、トリガーの再評価に対する更新(属性の変更)を受け取る必要があります。
-
問題の解決:
-
新しいプロファイルの場合:条件が満たされると、自動的に選定されます。 行動は必要ありません。
-
最近更新されていない既存のプロファイルの場合:
- プロファイルのマイナーな更新(例:タイムスタンプフィールドの更新)を行います。
- ストリーミング評価がトリガーされ、プロファイルがオーディエンスに追加されます。
- 代替案:既存のプロファイルにバッチオーディエンスまたはエッジオーディエンスを使用します。
-
-