診断

イベントとオーディエンスのアップロードの状態を確認し、データに関する問題を特定するためのおすすめのワークフローは次のとおりです。

  1. イベントを送信するリクエスト、 オーディエンス メンバーを送信または削除するリクエストを発行します。

  2. 各リクエストの全体的なステータスを確認します。リクエストが成功した場合、 Statuscode0(列挙値 OK、HTTP レスポンス 200 OK)になり、IngestEventsResponseIngestAudienceMembersResponse、または RemoveAudienceMembersResponse が返されます。

    リクエストが成功しなかった場合は、エラーに対処するようにリクエストを変更して、リクエストを再送信します。

    リクエストが成功した場合は、レスポンスの request_id を取得します。この ID は、次のステップで診断情報を取得するために使用します。

  3. 30 分待ってから、成功した request_idごとに RetrieveRequestStatusリクエストを送信します。

    各宛先の宛先 ステータスSUCCESSPARTIAL_SUCCESS、またはFAILUREになるまで、request_idごとにこの手順を定期的に繰り返します。各リクエストの間には、指数バックオフ アルゴリズムを使用して待機します。

  4. RetrieveRequestStatusResponse を確認して、 アップロードが正常に機能していることを確認し、データに関する問題を特定します。

  5. データの問題を修正します。

  6. ステップ 1 に戻り、アップロードに関するすべての問題に対処するまで繰り返します。

リクエストの送信

A RetrieveRequestStatusRequest には、1 つの request_id 値が必要です。取り込みリクエストが成功したときに取得したリクエスト ID ごとに、個別のステータス リクエストを送信します。

元のリクエストのすべての宛先で request_statusSUCCESSFAILURE、または PARTIAL_SUCCESS になるまで、指数バックオフ アルゴリズムを使用して RetrieveRequestStatusRequest を定期的に送信します。これには最大 24 時間かかる場合がありますが、Data Manager API は一部のリクエストを 30 分で処理できる場合があります。

以下に、ライブネスと割り当ての使用量のバランスを取る、適切な初期待機時間と再試行構成の例を示します。

設定
最初の診断リクエストまでの待機時間(分) 30
バックオフ乗数 1.3
バックオフの最大値(分) 60(1 時間)
合計最大時間(分) 1440(24 時間)

この構成でのリクエストと経過時間のシーケンスは次のとおりです。

グラフ

ポーリング戦略

データ

試行 取り込みリクエストからの経過時間(hh:mm) 試行までの遅延 メモ
1 00:30 30.0 分 ステータスが利用可能かどうかを最初に確認する
2 01:09 39.0 分
3 01:59 50.7 分
4 02:59 60.0 分 遅延は 1 時間に制限される
5 03:59 60.0 分
6 04:59 60.0 分
7 05:59 60.0 分
8 06:59 60.0 分
9 07:59 60.0 分
10 08:59 60.0 分
11 09:59 60.0 分
12 10:59 60.0 分
13 11:59 60.0 分 12 時間経過
14 12:59 60.0 分
15 13:59 60.0 分
16 14:59 60.0 分
17 15:59 60.0 分
18 16:59 60.0 分
19 17:59 60.0 分
20 18:59 60.0 分
21 19:59 60.0 分
22 20:59 60.0 分
23 21:59 60.0 分
24 22:59 60.0 分
25 23:59 60.0 分 合計最大時間 24 時間前の最後のリクエスト

バックオフ遅延に小さなランダムな ジッターを追加して、多くのクライアントが同時に再試行する「Thundering Herd」の問題を防ぎます。

回答を確認する

request_status_per_destination RetrieveRequestStatusResponseには、対応する取り込みリクエストの 宛先ごとに個別のエントリが含まれています。

たとえば、IngestAudienceMembersRequest に 3 つのエントリが含まれていて、destinations 3 つの異なる オーディエンスにデータを送信する場合、ステータス レスポンスの request_status_per_destination には 3 つのエントリ(オーディエンスごとに 1 つのエントリ)が含まれます。

宛先の全体的なステータスを確認する

まず、request_status フィールドを確認して、 Data Manager API が RequestStatusPerDestinationdestination のデータの処理を完了したかどうかを判断します。

request_status の値は次のいずれかになります。

  • PROCESSING: 宛先のデータはまだ処理中です。この段階では、宛先に対して 警告とエラーは入力されません 。

  • SUCCESS: 宛先のリクエスト処理がエラーなしで完了しました。処理中にフラグが設定された警告がないか確認します

  • FAILURE: エラーにより、宛先のすべてのレコードが失敗しました。 警告とエラーを確認して、すべてのレコード が失敗した理由を特定します。処理中にフラグが設定された警告がないかどうかも確認します。

  • PARTIAL_SUCCESS: 宛先のレコードの一部は成功しましたが、エラーにより失敗したレコードもあります。エラーを確認して、一部のレコードが失敗した理由を 特定します。処理中にフラグが設定された警告がないかどうかも確認します。

宛先ごとのイベントまたはオーディエンスのステータスを確認する

取り込みリクエストのタイプに対応するステータス フィールドを確認します。各 RequestStatusPerDestination に設定されるフィールドは、次のうちの 1 つだけです。

イベントの取り込みステータス

リクエストが IngestEventsRequestの場合、events_ingestion_status フィールドが入力されます。

IngestEventStatusrecord_count を確認して、受信したレコードの合計数が想定どおりであることを確認します。record_count には、成功したレコードと失敗したレコードの両方が含まれます。

オーディエンス メンバーの取り込みステータス

audience_members_ingestion_status フィールドは、リクエストが IngestAudienceMembersRequestの場合に入力されます。オーディエンス データのタイプごとに確認する IngestAudienceMembersStatus フィールドは次のとおりです。これらのフィールドのうち 1 つだけが設定されます。

composite_data_ingestion_status

IngestCompositeDataStatusrecord_count を確認して、 受信したレコードの合計数が想定どおりであることを確認します。record_count には、成功したレコードと失敗したレコードの両方が含まれます。

data_type_counts を確認して、識別子の数が想定どおりであることを確認します。このリストには、DataTypeが受信したすべての識別子(メールアドレス、電話番号、住所、IP アドレスなど)の内訳が記載されています。

リクエストに十分な数のレコードが含まれている場合、 upload_match_rate_range にはリクエスト内のレコードの 一致率 範囲 が含まれます。

google_user_id_data_ingestion_status

IngestGoogleUserIdDataStatusrecord_count を確認して、受信したレコードの合計数が想定どおりであることを確認します。record_count には、成功したレコードと失敗したレコードの両方が含まれます。

google_user_id_count を確認して、受信した Google ユーザー ID の数が想定どおりであることを確認します。

mobile_data_ingestion_status

IngestMobileDataStatusrecord_count を確認して、 受信したレコードの合計数が想定どおりであることを確認します。record_count には、成功したレコードと失敗したレコードの両方が含まれます。

mobile_id_count を確認して、受信したモバイル ID の数が想定どおりであることを確認します。

pair_data_ingestion_status

IngestPairDataStatusrecord_count を確認して、受信したレコードの合計 数が想定どおりであることを確認します。record_count には、成功したレコードと失敗したレコードの両方が含まれます。

pair_id_count を確認して、受信した PAIR ID の数が想定どおりであることを確認します。

partner_provided_id_data_ingestion_status

IngestPartnerProvidedIdDataStatusrecord_count を確認して、受信したレコードの合計数が想定どおりであることを確認します。 record_count には、成功したレコードと失敗したレコードの両方が含まれます。

partner_provided_id_count を確認して、受信したパートナー提供 ID の数が想定どおりであることを確認します。

ppid_data_ingestion_status

IngestPpidDataStatusrecord_count を確認して、受信したレコードの合計 数が想定どおりであることを確認します。record_count には、成功したレコードと失敗したレコードの両方が含まれます。

ppid_count を確認して、受信した PPID の数が想定どおりであることを確認します。

user_data_ingestion_status

IngestUserDataStatusrecord_count を確認して、受信したレコードの合計 数が想定どおりであることを確認します。record_count には、成功したレコードと失敗したレコードの両方が含まれます。

user_identifier_count を確認して、受信した ユーザー識別子の数が想定どおりであることを確認します。

リクエストに十分な数のレコードが含まれている場合、 upload_match_rate_range にはリクエスト内のレコードの 一致率 範囲 が含まれます。

user_id_data_ingestion_status

IngestUserIdDataStatusrecord_count を確認して、受信したレコードの合計 数が想定どおりであることを確認します。record_count には、成功したレコードと失敗したレコードの両方が含まれます。

user_id_count を確認して、受信したユーザー ID の数が想定どおりであることを確認します。

オーディエンス メンバーの削除ステータス

audience_members_removal_status フィールドは、リクエストが RemoveAudienceMembersRequestの場合に入力されます。オーディエンス データのタイプごとに確認する RemoveAudienceMembersStatus フィールドは次のとおりです。これらのフィールドのうち 1 つだけが設定されます。

composite_data_removal_status
複合データの削除ステータス
google_user_id_data_removal_status
Google ユーザー ID データの削除ステータス
mobile_data_removal_status
モバイルデータの削除ステータス。
pair_data_removal_status
PAIR データの削除ステータス。
partner_provided_id_data_removal_status
パートナー提供 ID データの削除ステータス
ppid_data_removal_status
PPID データの削除ステータス。
user_data_removal_status
ユーザーデータの削除ステータス。
user_id_data_removal_status
ユーザー ID データの削除ステータス

record_count を確認して、受信したレコードの合計数が想定どおりであることを確認します。record_count には、成功したレコードと失敗したレコードの両方が含まれます。

さらに、user_identifier_countmobile_id_countpair_id_countppid_countuser_id_countgoogle_user_id_count、または partner_provided_id_countを確認して、 受信した識別子の合計数を確認します。

複合データの場合は、data_type_counts を確認して、識別子の数が想定どおりであることを確認します。このリストには、DataTypeが受信したすべての識別子(メールアドレス、電話番号、住所、IP アドレスなど)の内訳が示されています。

警告とエラーを確認する

宛先とリクエストのタイプのステータス フィールドに加えて、 RetrieveRequestStatusResponse にはリクエストの 警告とエラーの内訳が含まれています。

  • エラーは、API がレコードを完全に拒否したことを示します。
  • 警告は、API がレコードを拒否しなかったものの、レコードのデータの一部を無視する必要があったことを示します。

たとえば、Event に暗号化された UserIdentifier データと AdIdentifiers などの gclid が含まれていて、 UserIdentifier データを復号化できない場合でも、Data Manager API は レコードを AdIdentifiers を使用して処理しますが、警告 PROCESSING_WARNING_REASON_USER_IDENTIFIER_DECRYPTION_ERROR を返します。

ただし、EventAdIdentifiers が含まれておらず、UserIdentifier データを復号化できない場合、有効な Event には ad_identifiers または user_data のいずれかが 1 つ以上必要であるため、Data Manager API はレコード全体を拒否し、エラー PROCESSING_ERROR_REASON_USER_IDENTIFIER_DECRYPTION_ERROR を報告します。

警告とエラーの情報を含むレスポンス フィールドは次のとおりです。これらの フィールドは、宛先の全体的なステータスSUCCESSPARTIAL_SUCCESS、または FAILURE に達すると入力されます。

warning_info

WarningCount オブジェクトのリスト。各 WarningCount には、警告のタイプを示す reason と、そのタイプの警告があったレコードの数を示す record_count が含まれています。

宛先の全体的な ステータスSUCCESS であっても、warning_info を確認してください。

error_info

ErrorCount オブジェクトのリスト。各 ErrorCount には、エラーのタイプを示す reason と、そのタイプのエラーにより失敗したレコードの数を示す record_count が含まれています。