Implementar lances personalizados

Use a API Display & Video 360 para gerenciar implementações de lances personalizados. É possível criar algoritmos de lances personalizados, fazer upload e verificar scripts individuais e atribuir um algoritmo específico a um recurso como estratégia de lances.

Esta página descreve como criar, atualizar e atribuir algoritmos de lances personalizados com a API Display & Video 360. Cada seção fornece um exemplo de código.

Criar um algoritmo de lances personalizados

Um objeto CustomBiddingAlgorithm representa um algoritmo individual que pode ser atribuído a um item de linha para uso na estratégia de lances dele. Esse objeto tem detalhes sobre o algoritmo, como customBiddingAlgorithmType, entityStatus e customBiddingAlgorithmState. É possível criar objetos CustomBiddingScript como recursos filhos para o algoritmo usar.

Confira um exemplo de como criar um algoritmo de lances personalizados com base em script:

Python

# Create a custom bidding algorithm object.
custom_bidding_algorithm_obj = {
    'advertiserId': advertiser-id,
    'displayName': display-name,
    'entityStatus': 'ENTITY_STATUS_ACTIVE',
    'customBiddingAlgorithmType': 'SCRIPT_BASED'
}

# Create the custom bidding algorithm.
response = service.customBiddingAlgorithms().create(
    body=algorithm_obj
).execute()

# Display the new custom bidding algorithm.
print(f'The following Custom Bidding Algorithm was created: {response}')

Gerenciar o acesso ao algoritmo

Os algoritmos de lances personalizados podem ser de um parceiro ou de um anunciante. Os algoritmos de propriedade de um parceiro podem ser acessados e modificados por ele e por todos os anunciantes filhos listados no campo sharedAdvertiserIds. Os algoritmos de propriedade de um anunciante podem ser acessados e modificados por ele e pelo parceiro principal, mas não podem ser compartilhados com outros anunciantes.

Se você estiver usando o algoritmo para um único anunciante, atribua o anunciante como proprietário com o campo advertiserId. Caso contrário, atribua o parceiro principal dos anunciantes como proprietário com o campo partnerId e dê acesso aos anunciantes com o campo sharedAdvertiserIds.

Fazer upload de um script

Depois de criar um algoritmo de lances personalizados, crie um script para ele usar. Os algoritmos de lances personalizados baseados em script usam scripts fornecidos pelo usuário para avaliar o valor de uma impressão. Exemplos de scripts simples e uma lista de campos avançados estão disponíveis na Central de Ajuda do Display & Video 360.

As seções a seguir ensinam a adicionar um script novo ou atualizado a um algoritmo de lances personalizados.

Recuperar o local de um recurso de script

Primeiro, recupere um local de recurso disponível no recurso de algoritmo de lances personalizados com o método customBiddingAlgorithms.uploadScript. Essa solicitação retorna um objeto CustomBiddingScriptRef com um nome de recurso. Você pode fazer upload do arquivo de script para o local indicado pelo nome do recurso. Em seguida, use o objeto de referência do script de lances personalizados para criar o recurso de script.

Confira um exemplo de como recuperar um local de recurso disponível:

Python

# Retrieve a usable custom bidding script reference
# object.
custom_bidding_script_ref = service.customBiddingAlgorithms().uploadScript(
    customBiddingAlgorithmId=custom-bidding-algorithm-id,
    advertiserId=advertiser-id
).execute()

# Display the new custom bidding script reference object.
print('The following custom bidding script reference object was retrieved:'
      f'{custom_bidding_script_ref}')

Fazer upload de um arquivo de script

Depois de recuperar um local de recurso disponível, faça upload do arquivo de script para esse local no sistema do Display & Video 360 com o método media.upload. Esse método é compatível com um upload simples que exige o parâmetro de consulta uploadType=media.

Veja um exemplo de como fazer upload de um arquivo de script usando um objeto de referência de script de lances personalizados recuperado:

Python

# Create a media upload object.
media = MediaFileUpload(script-path)

# Create upload request.
upload_request = service.media().upload(
    resourceName=resource-name, media_body=media)

# Override response handler to expect null response.
upload_request.postproc = HttpRequest.null_postproc

# Upload script to resource location given in retrieved custom bidding
# script reference object.
upload_request.execute()

Criar um objeto de script

Depois que o arquivo de script for enviado, crie um recurso de script de lances personalizados com o método customBiddingAlgorithms.scripts.create. O objeto CustomBiddingScript transmitido na solicitação só deve incluir o objeto CustomBiddingScriptRef como o valor atribuído do campo script. Isso associa o arquivo de script enviado ao novo recurso de script.

Confira um exemplo de como criar um arquivo de script:

Python

# Create a custom bidding script object.
script_obj = {
    'script': custom-bidding-script-ref
}

# Create the custom bidding script.
response = service.customBiddingAlgorithms().scripts().create(
    customBiddingAlgorithmId=custom-bidding-algorithm-id,
    advertiserId=advertiser-id,
    body=script_obj).execute()

# Display the new custom bidding script object.
print(f'The following custom bidding script was created: {response}')

Depois que você cria um recurso de script de lances personalizados, o Display & Video 360 processa o script para garantir que ele possa ser usado com sucesso para pontuar impressões. Recupere o estado desse processamento usando o campo state do objeto de script. Depois que o novo script é aceito, o algoritmo de lances personalizados começa a usar o script para pontuar os valores de impressão. Isso acontece imediatamente. Portanto, tenha certeza de que você quer atualizar o algoritmo antes de criar um novo recurso de script.

Atribuir um algoritmo de lances personalizados

Depois de criar um algoritmo de lances personalizados, fazer upload de um script aceito e atender aos requisitos necessários, você pode atribuir o algoritmo à estratégia de lances de um item de linha ou pedido de inserção.

É possível usar algoritmos de lances personalizados nas estratégias de lances de maximizar gastos e meta de performance atribuindo BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO e o ID do algoritmo de lances personalizados aos campos performanceGoalType e customBiddingAlgorithmId, respectivamente. Dependendo da estratégia de lances, outros parâmetros podem estar disponíveis ou ser obrigatórios.

Confira um exemplo de como atualizar um item de linha para usar uma estratégia de lances de maximização de gastos com um determinado algoritmo de lances personalizados:

Python

# Create the new bid strategy object.
bidding_strategy = {
    'maximizeSpendAutoBid': {
        'performanceGoalType':
            'BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO',
        'customBiddingAlgorithmId': custom-bidding-algorithm-id
    }
}

# Create a line item object assigning the new bid strategy.
line_item_obj = {'bidStrategy': bidding_strategy}

# Update the line item with a new bid strategy.
response = service.advertisers().lineItems().patch(
    advertiserId=advertiser-id,
    lineItemId=line-item-id,
    updateMask='bidStrategy',
    body=line_item_obj).execute()

# Display the line item's new bid strategy
print(f'Line Item {response["name"]} is now using the following bid'
     f' strategy: {response["bidStrategy"]}.')