次の方法で共有


Bidders - BSS アップロードのトラブルシューティング

このトピックのメソッドを使用して、セグメント データのアップロードに関する問題を診断できます。

Batch Segment Service のさまざまなフェーズ

このセクションでは、問題が発生している可能性がある場所を理解できるように、アップロードのフェーズについて説明します。

開始 - アップロード URL とジョブ ID を要求する

このフェーズでは、クライアントはアップロード URL とジョブ ID を要求します。 このステージは 5 分でタイムアウトします。 ジョブがこのフェーズでスタックしている場合、クライアントは URL を要求したが、割り当てられた時間内に何もアップロードできなかったことを示します。

アップロード

このフェーズでは、クライアントは指定された URL にファイルをアップロードします。 1 分あたり 1 回のアップロードを超えないようにすることをお勧めします。 クライアントが任意の時点で処理を待機しているジョブが 200 を超える場合、追加のジョブのアップロードは禁止されます。

検証と処理

クライアントがファイルをアップロードすると、次のフェーズでファイルの処理が行われ、セグメント ID とユーザー ID の検証が実行されます。レコードに無効なセグメント ID またはユーザー ID が含まれている場合、プラットフォームはレコードを処理しません。 クライアントがジョブの状態を確認すると、無効なユーザーの数に関する統計情報を表示できるようになります。

完了

このフェーズでは、ファイルのデータがプラットフォームに正常にアップロードされ、ターゲット設定に使用できます。

アップロード エラーの可能性

0.5 GB を超えるファイルをアップロードしようとしています

{"response":{"status":"ERROR","error_code":"FILESIZE_LIMIT_EXCEEDED","errors":["Member
            exceeds maximum byte size allowed for a file"]}}

バッチ セグメントアップロード ジョブのエラー コード

""batch_segment_upload_job": {
      "phase": "error",
      "start_time": "2015-08-13 18:40:32",
      "uploaded_time": null,
      "validated_time": null,
      "completed_time": null,
      "error_code": "uploading-error",
      "time_to_process": "0.00",
      "percent_complete": 0,
      "num_valid": 0,
      "num_invalid_format": 0,
      "num_valid_user": 0,
      "num_invalid_user": 0,
      "num_invalid_segment": 0,
      "num_invalid_timestamp": 0,
      "num_unauth_segment": 0,
      "num_past_expiration": 0,
      "num_inactive_segment": 0,
      "num_other_error": 0,
      "error_log_lines": null,
      "segment_log_lines": null,
      "id": 11661553,
      "job_id": "Pm3oCUf5CSVKIOt4mAqOzdt6K3qInj1431542432",
      "member_id": 958,
      "created_on": "2015-05-13 18:40:32",
      "last_modified": "2015-05-13 18:40:33"
    }

次のエラーは、次の場合に発生する可能性があります。

  1. 次の 4 つのアップロード制限のいずれかに達しました。

    • 日単位のバイト数
    • 時間単位のバイト数
    • 日次行、または
    • 時間単位の行

    1 日あたりのバイト アップロード制限を超えようとしている

    {"response":{"status":"ERROR","error_code":"RATE_LIMIT_EXCEEDED","errors":["Member
                      exceeds maximum allowed bytes per day"]}}
    

    1 時間あたりのバイトアップロード制限を超えようとしている

    {"response":{"status":"ERROR","error_code":"RATE_LIMIT_EXCEEDED","errors":["Member
                      exceeds maximum allowed bytes per hour"]}}
    

    1 日あたりのアップロード制限を超えようとしている

    {"response":{"status":"ERROR","error_code":"RATE_LIMIT_EXCEEDED","errors":["Member
                      exceeds maximum allowed number of lines per day"]}} 
    

    1 時間あたりのアップロード制限を超えようとしている

    {"response":{"status":"ERROR","error_code":"RATE_LIMIT_EXCEEDED","errors":["Member
                      exceeds maximum allowed number of lines per hour"]}}
    
  2. アップロードを取り消しました。

  3. アップロード フェーズが 90 分を超えています。

    アップロードまでの最大時間を超える

    {"response":{"status":"ERROR","error_code":"RATE_LIMIT_EXCEEDED","errors":["Maximum
                      upload time exceeded"]}}
    

発生する可能性のある処理エラー

無効な形式

num_invalid_format フィールドの値が"0"より大きい場合は、error_log_lines フィールドの値を確認します。

次の例では、 num_invalid_format フィールドに "1" の値が表示され、詳細は error_log_lines フィールドに示されています。

[ error_log_lines ] フィールドで、次の手順を実行します。

  • num_invalid_format は、アップロードされたファイル内の行の解析に問題が発生したことを示します。
  • "failed with an illegal number of fields" は、 segment_fields ブロック内のフィールドの数が、バッチ セグメント構成で定義されたものと一致しなかったことを示します (詳細については、「 初期 BSS アカウントのセットアップ」を参照してください)。

この場合、構成では、 SEG_IDVALUEEXPIRATIONの 3 つのフィールドがブロックで定義されることを想定していますが、パーサーで見つかったフィールドは、 SEG_IDVALUEの 2 つだけであるため、エラーが表示されます。

num_invalid_formatとerror_log_linesの例

"batch_segment_upload_job": {
phase": "completed",
"error_code": null,
"time_to_process": "0.01",
"percent_complete": 100,
"num_valid": 0,
"num_invalid_format": 1,
"num_valid_user": 0,
"num_invalid_user": 0,
"num_invalid_segment": 0,
"num_invalid_timestamp": 0,
"num_unauth_segment": 0,
"num_past_expiration": 0,
"num_inactive_segment": 0,
"num_other_error": 0,
"error_log_lines": "num_invalid_format-WINDOWSADID-USER-ID;SEG_ID:VALUE~9 failed with an illegal number of fields",
"segment_log_lines": null,
"start_time": "2015-08-13 18:40:32",
"uploaded_time": "2015-08-13 18:42:32",
"validated_time": "2015-08-13 18:42:32",
"completed_time": "2015-08-13 18:42:33",
"id": 123412341234,
"job_id": "Pm3oCUf5CSVKIOt4mAqOzdt6K3qInj1431542432",
"member_id": 958,
"created_on": "2015-08-13 18:40:32",
"last_modified": "2015-08-13 18:42:33"
}

ファイルのアップロード履歴を表示する

過去 30 日以内のすべてのセグメント ファイルのアップロードに関するメタデータを表示するには、クエリ文字列にmember_idを指定してサービスをGET呼び出します。 JSON 応答には、 batch_segment_upload_job オブジェクトの配列が含まれます。

batch_segment_upload_job オブジェクトの特定のフィールドの詳細については、「JSON フィールド」を参照してください。

注:

ファイルのアップロード履歴は、過去 30 日間のみ使用できます。

$ curl -b cookies 'https://api.appnexus.com/batch-segment?member_id=456'
{
   "response" : {
      "batch_segment_upload_job" : [
         {
           "phase": "completed",
            "start_time": "2012-05-22 16:48:55",
            "uploaded_time": "2012-05-22 16:48:56",
            "validated_time": "2012-05-22 16:49:01",
            "completed_time": "2012-05-22 16:49:01",
            "error_code": null,
            "time_to_process": "0.04",
            "percent_complete": 100,
            "num_valid": 0,
            "num_invalid_format": 0,
            "num_invalid_user": 2,
            "num_invalid_segment": 0,
            "num_unauth_segment": 1,
            "num_past_expiration": 0,
            "num_inactive_segment": 0,
            "num_other_error": 0,
            "error_log_lines": " \n\nnum_unauth_segment-4013681496264948522;5013:0,5014:1550\nnum_invalid_user-7652266028043224430;5848:0,5849:1440,5850:1440\nnum_invalid_user-8802117132500293405;5851:0,5847:-1",
            "id": 98,
            "job_id": "T1v98eIOlCZndeLGSXD0nrs57L8ES11337705335",
            "member_id": 456,
            "created_on": "2012-05-22 16:48:55",
            "last_modified": "2012-05-22 16:49:01"
         },
         ...
    }
  }
}

注:

API では、改ページを使用して応答を 100 個のオブジェクトに制限します。 API 呼び出しに次のいずれかを追加することで、追加のオブジェクトを表示できます。

  • &start_element=101
  • &sort=last_modified.desc

改ページの詳細については、こちらのドキュメント ポータルを参照 してください

それでも技術的な問題が発生している場合は、 カスタマー サポート ポータルで要求を送信できます。 サポート リクエストにジョブ ID を含めるのを忘れないでください。

JSON フィールド

HTTP メソッド エンドポイント 説明
GET https://api.appnexus.com/batch-segment/meta この呼び出しを使用して、フィルター処理および並べ替え可能なフィールドを確認します。
フィールド 種類 説明
batch_segment_upload_job object これは、アップロードジョブと処理ジョブを記述するメタデータを含むフィールドを持つオブジェクトです。 Impbus API を使用している場合、これは 1 つのオブジェクトを含む配列になります。 詳細については、「 Batch Segment Upload Job 」を参照してください。
id int これは、この要求に関連付けられている batch_segment_upload_job オブジェクトの ID です。
既定値: 自動的に生成された数値。
status string API 呼び出しの状態。成功した呼び出しは "OK"を返します。

バッチ セグメントのアップロード ジョブ

処理ジョブの状態を要求すると、システムは batch_segment_upload_job オブジェクトを返します (データ プロバイダーの場合、これは 1 つのオブジェクトを含む配列になります)。 サービスに対して行う要求に応じて、次のメタデータの一部またはすべてが含まれます。

注:

ほとんどのメタデータは、 "phase": "completed"ときにのみ存在します。

フィールド 種類 説明
completed_time date ファイル処理が完了した時刻。
created_on date このオブジェクトの作成日。
error_code int "phase": "error"場合、このエラー コードは発生したエラーの種類を記述します。 エラー コードは、ファイル自体のアップロード、検証、または処理でエラーが発生した場合にのみ表示されることに注意してください (つまり、無効な形式や無効なセグメント エラーは含まれません)。 一般的なエラーは、読み取り不可能なファイルと定義されたオブジェクトの制限を超えていることが原因で発生します。 エラーが見つからなかった場合 null を返します。
error_log_lines string 改行で区切られた行を含む文字列。 各行には、ファイルのアップロード中に検証エラーまたはエラーの理由が一覧表示されます。 このフィールドに表示される行の数を選択できます。
既定値: 200 行
id int このオブジェクトの一意識別子。
job_id string このファイルに関連付けられている処理ジョブを一意に識別する英数字の文字列。
last_modified date このオブジェクトの最新の変更日 (通常は POST経由)。
member_id int メンバー ID。
必須:PUTPOST
num_inactive_segment int ファイル内の非アクティブなセグメントの数。 重複除去。
num_invalid_format int 書式設定エラーを含むアップロードされた行の数。 これは、特定のファイル形式の構成によって異なります。 重複する行も無効な形式と見なされます。
num_invalid_segment int ファイル内の無効なセグメントの数。 重複除去。
num_invalid_timestamp int ファイル内の無効なタイムスタンプの数。
num_invalid_user int 無効なユーザーまたは存在しないユーザーを持つ一意の入力行の数。
num_other_error int これは、現在使用されていないプレースホルダー値です。
num_past_expiration int ファイル内の期限切れのセグメントの数。 重複除去。
num_unauth_segment int アクセスが許可されていないファイル内のセグメントの数。 重複除去。
num_valid int アップロードされたファイル内の有効な行数。 各ユーザー/セグメントの組み合わせは、1 行と見なされます。
num_valid_user int 有効なユーザー ID を持つ一意の入力行の数。
percent_complete int 要求時の現在の phase を指定した、完了した処理の割合。
phase 列挙 現在の処理状態。 次のいずれかの値を返します。
- error
- starting
- uploading
- validating
- processing
- completed
segment_log_lines string セグメント ID と、正常に追加または削除されたユーザーの数で構成される改行で区切られた行を含む文字列。 このフィールドの既定値は 200 行です。
形式は ... added: SEG_ID:COUNT SEG_ID:COUNT ... removed:SEG_ID:COUNT です。ここで、 SEG_ID はセグメント ID、 COUNT は正常に追加または削除されたユーザーの数です。 SEG_ID:COUNT ペアは、 COUNT (降順) で並べ替えられます。
例:
added: 15889133:386221 15547290:186227 removed: 15889278:369734 15889206:255307 15889179:232831
start_time date ファイルのアップロードが開始された時刻。
time_to_process decimal セグメント ファイルの処理にかかった時間 (分単位)。
upload_url string セグメント データ ファイルをアップロードする URL。
uploaded_time date このジョブ ID に関連付けられているファイルがアップロードされた時刻。
validated_time date ファイル検証が完了した時刻。