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