このドキュメントでは、Adobe Experience Platform でのストリーミングの取り込みに関するよくある質問に対する回答を示します。他のPlatformサービスに関するご質問やトラブルシューティング(すべてのPlatform APIで遭遇するものを含む)については、Experience Platformトラブルシューティングガイドを参照してください。
Adobe Experience PlatformData Ingestionは、Experience Platformにデータを取り込むのに使用できるRESTful APIを提供します。 取り込んだデータは、個々の顧客プロファイルをほぼリアルタイムで更新するために使用され、パーソナライズされた関連性の高いエクスペリエンスを複数のチャネルで配信できます。サービスと様々な 取り込み方法の詳細については、データ取り込みの概要を参照してください。ストリーミング取り込み APIの使用方法に関する手順については、ストリーミング取り込みの概要を参照してください。
次に、ストリーミング取り込みに関するよくある質問に対する回答の一覧を示します。
Data Ingestion XDM Experience Data Model (XDM)スキーマを活用して、入力データの形式を検証します。事前に定義された XDM データの構造に準拠しないデータを送信すると、スキーマの取り込みに失敗します。XDMとExperience Platformでの使い方について詳しくは、XDMシステムの概要を参照してください。
ストリーミング取り込みでは、同期および非同期の 2 つの検証モードがサポートされます。それぞれの検証方法では、失敗したデータの処理方法が異なります。
開発プロセスでは、同期検証を使用する必要があります。検証に失敗したレコードは削除され、失敗理由を示すエラーメッセージが返されます(例:"Invalid XDM Message Format")。
実稼動環境では、非同期検証を使用する必要があります。検証に合格しない形式のデータは、失敗したバッチファイルとしてData Lakeに送信され、が後で取得され、以降の分析が必要になります。
同期検証と非同期検証について詳しくは、ストリーミング検証の概要を参照してください。検証に失敗したバッチを表示する手順については、失敗したバッチの取得に関するガイドを参照してください。
リクエストペイロードは、Platformに送信された後でのみ評価できます。 同期検証を実行すると、有効なペイロードは生成された JSON オブジェクト、無効なペイロードはエラーメッセージを返します。非同期検証中に、サービスは不正なデータを検出してData Lakeに送信し、の場所に送信します。この場合、分析のために後でデータを取得できます。 詳しくは、ストリーミング検証の概要を参照してください。
リクエストされた場所で同期検証がサポートされていない場合、501 エラー応答が返されます。同期検証について詳しくは、ストリーミング検証の概要を参照してください。
Experience Platform 保護されたデータ収集をサポートします。認証済みのデータ収集が有効な場合、クライアントは JSON Web トークン(JWT)と IMS 組織 ID をリクエストヘッダーとして送信する必要があります。認証済みデータをPlatformに送信する方法の詳細については、認証済みデータ収集のガイドを参照してください。
ストリームイベントは通常、60秒未満でReal-time Customer Profileに反映されます。 実際の待機時間は、データ量、メッセージサイズ、帯域幅の制限によって異なる場合があります。
複数のメッセージを1つの要求ペイロード内でグループ化し、Platformにストリーミングできます。 正しく使用した場合、1 つのリクエスト内で複数のメッセージをグループ化すると、データ操作をうまく最適化できます。詳細については、複数のメッセージを 1 件のリクエストで送信する方法のチュートリアルを参照してください。
Platformに送信されるすべてのデータ(正常またはその他)は、バッチファイルとして保存された後、データセットに保持されます。 バッチの処理ステータスは、送信先のデータセット内に表示されます。
Experience Platform ユーザーインターフェイスでデータセットのアクティビティを確認することで、データが正常に取り込まれたかどうかを確認できます。左側のナビゲーションで「データセット」をクリックし、データセットのリストを表示します。表示されたリストからストリーミング先のアクティビティセットを選択すると、そのデータセットアクティビティページを開き、選択した期間に送信されたすべてのバッチが表示されます。Experience Platformを使用してデータストリームを監視する方法について詳しくは、ストリーミングデータフローの監視に関するガイドを参照してください。
データを取り込めず、Platformから回復する場合は、Data Access APIにIDを送信して、失敗したバッチを取得できます。 詳しくは、失敗したバッチの取得に関するガイドを参照してください。
バッチ取り込みがData Lakeに届かない理由には、無効なフォーマット、データの欠落、システムエラーなど、様々な理由があります。 バッチが失敗した理由を判断するには、Data Ingestion Service APIを使用してバッチを取得し、その詳細を表示する必要があります。 失敗したバッチを取得する手順について詳しくは、失敗したバッチの取得に関するガイドを参照してください。
応答を解析するには、最初にサーバー応答コードをチェックし、要求が受け入れられたかどうかを確認します。成功応答が返された場合は、responses
配列オブジェクトを確認して、取り込みタスクのステータスを判断します。
成功した単一のメッセージ API リクエストは、ステータスコード 200 を返します。バッチ処理されたメッセージ API リクエストが成功(または部分的に成功)すると、ステータスコード 207 が返されます。
次の JSON は、2 つのメッセージを含む API リクエストの応答オブジェクトの例です。1 つは成功したもの、1 つは失敗したものです。正常にストリーミングされるメッセージは、xactionId
プロパティを返します。ストリーミングに失敗したメッセージは、statusCode
プロパティと応答 message
、および詳細情報が返されます。
{
"inletId": "9b0cb233972f3b0092992284c7353f5eead496218e8441a79b25e9421ea127f5",
"batchId": "1565638336649:1750:244",
"receivedTimeMs": 1565638336705,
"responses": [
{
"xactionId": "1565650704337:2124:92:3"
},
{
"statusCode": 400,
"message": "inletId: [9b0cb233972f3b0092992284c7353f5eead496218e8441a
79b25e9421ea127f5]
imsOrgId: [{IMS_ORG}]
Message has unknown xdm format"
}
]
}
Real-time Customer Profileがメッセージを拒否した場合、ID情報が正しくないことが原因の可能性が高くなります。 これは、ID に無効な値または名前空間を指定した結果です。
ID 名前空間には、デフォルトとカスタムの 2 タイプがあります。カスタム名前空間を使用する場合は、名前空間がIdentity Service内に登録されていることを確認してください。 デフォルトおよびカスタム名前空間の使用について詳しくは、ID 名前空間の概要を参照してください。
Experience Platform UI を使用して、メッセージの取り込みに失敗した理由の詳細を確認できます。左側のナビゲーションで「監視」をクリックし、「エンドツーエンドのストリーミング」タブを表示して、選択した期間にストリーミングされたメッセージバッチを表示します。