Fazer upload do arquivo de dados estruturados

É possível criar e atualizar recursos, incluindo recursos do YouTube, de forma programática e em massa fazendo o upload de arquivos de dados estruturados usando a API Display & Video 360. Esta página discute como preparar e fazer upload de um arquivo de dados estruturados usando a API.

Apenas cinco arquivos de dados estruturados por ID de anunciante podem ser enviados por um projeto do Google Cloud em um dia.

Preparar um arquivo de dados estruturados para upload

Os arquivos de dados estruturados enviados precisam ser versões modificadas de arquivos baixados recentemente do mesmo tipo e do mesmo anunciante. Prepare o arquivo de dados estruturados baixado para upload fazendo as seguintes atualizações:

  • Adicione entradas para os novos recursos que você quer criar.
  • Atualize as entradas dos recursos que você quer atualizar.
  • Remova as entradas que não são novas ou atualizadas para reduzir o tamanho do arquivo, acelerar o tempo de processamento e eliminar a probabilidade de atualizações involuntárias.

Verifique o seguinte antes de fazer o upload do arquivo:

  • O arquivo é um CSV.
  • Todas as entradas no arquivo são de recursos do mesmo anunciante principal.

Carregar um arquivo

Faça upload de um arquivo de dados estruturados usando o método advertisers.sdfuploadtasks.upload. Essa solicitação cria uma tarefa de upload de SDF Operation. Essa operação de longa duração processa o arquivo enviado, cria e atualiza recursos com base no conteúdo do arquivo e gera arquivos de resultado que listam atualizações bem-sucedidas e com falha.

Saiba como fazer upload de um arquivo de dados estruturados e extrair o 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.')