Sube un archivo de datos estructurados

Puedes crear y actualizar recursos, incluidos los de YouTube, de forma programática y masiva. Para ello, sube archivos de datos estructurados con la API de Display & Video 360. En esta página, se explica cómo preparar y subir un archivo de datos estructurados con la API.

Un proyecto de Google Cloud solo puede subir treinta archivos de datos estructurados por ID de anunciante al día.

Prepara un archivo de datos estructurados para subirlo

Los archivos de datos estructurados subidos deben ser versiones modificadas de los archivos de datos estructurados descargados recientemente del mismo tipo de archivo y del mismo anunciante. Prepara el archivo de datos estructurados descargado para subirlo realizando las siguientes actualizaciones:

  • Agrega entradas para los recursos nuevos que quieras crear.
  • Actualiza las entradas existentes de los recursos que quieras actualizar.
  • Quita las entradas que no sean nuevas ni estén actualizadas para reducir el tamaño del archivo, acelerar el tiempo de procesamiento y evitar actualizaciones no intencionales.

Verifica lo siguiente antes de subir el archivo:

  • El archivo es de tipo CSV.
  • Todas las entradas del archivo corresponden a recursos del mismo anunciante principal.
  • El archivo no tiene más de 10,000 entradas.

Subir un archivo

Sube un archivo de datos estructurados con el método advertisers.sdfuploadtasks.upload. Esta solicitud crea una tarea de carga de SDF Operation. Esta operación de larga duración procesa el archivo subido, crea y actualiza recursos según el contenido del archivo, y genera archivos de resultados que enumeran las actualizaciones exitosas y las que fallaron.

Sigue estos pasos para subir un archivo de datos estructurados y recuperar el Operation resultante:

# 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.')