構造化データファイルをアップロードする

ディスプレイ&ビデオ 360 API を使用して構造化データファイルをアップロードすると、YouTube リソースなどのリソースをプログラムで一括作成、更新できます。このページでは、API を使用して構造化データ ファイルを準備してアップロードする方法について説明します。

Google Cloud プロジェクトで 1 日にアップロードできる構造化データファイルは、広告主 ID あたり 30 個のみです。

アップロードする構造化データファイルを準備する

アップロードする構造化データファイルは、同じファイル形式で同じ広告主から最近ダウンロードした構造化データファイルの変更バージョンである必要があります。ダウンロードした構造化データファイルをアップロード用に準備します。次の更新を行います。

  • 作成する新しいリソースのエントリを追加します。
  • 更新するリソースの既存のエントリを更新します。
  • ファイルサイズを縮小し、処理時間を短縮し、意図しない更新の可能性を排除するために、新規または更新されたエントリ以外のエントリを削除します。

ファイルをアップロードする前に、次のことを確認してください。

  • ファイルは CSV ファイルです。
  • ファイル内のすべてのエントリは、同じ親広告主のリソースを対象としています。
  • ファイルのエントリ数が 10,000 件を超えていない。

ファイルをアップロード

advertisers.sdfuploadtasks.upload メソッドを使用して、構造化データファイルをアップロードします。このリクエストは、SDF アップロード タスク Operation を作成します。この長時間実行オペレーションは、アップロードされたファイルを処理し、ファイルの内容に基づいてリソースを作成して更新し、成功した更新と失敗した更新を一覧表示する結果ファイルを生成します。

構造化データ ファイルをアップロードして、結果の Operation を取得する方法は次のとおりです。

# Import the object used as the media body for the upload request.
from apiclient.http import MediaFileUpload

# Provide the parent advertiser ID for the resources in the SDF.
# The ID value must be a str and not an int.
advertiser_id = advertiser-id

# Provide the filename and local path to the media file.
sdf_filename = sdf-filename
sdf_path = sdf-path

# Create the request body.
body = {
  'filename': sdf_filename,
  'advertiserId': advertiser_id
}

# Create the upload object and use a default MIME type if not identified.
media = MediaFileUpload(sdf_path)
if not media.mimetype():
  media = MediaFileUpload(sdf_filename,'application/octet-stream')

# Upload the structured data file.
upload_response = service.advertisers().sdfuploadtasks().upload(
  advertiserId=advertiser_id,
  body=body,
  media_body=media
).execute()

# Print resulting Operation name.
print(f'SDF was successfully uploaded. Operation {upload_response["name"]} was '
       'created to process the uploaded file.')