Display e L'API Video 360 ti consente di gestire completamente le offerte personalizzate implementazioni. Puoi creare algoritmi per le offerte personalizzate, caricare e verificare singoli script e assegnare un algoritmo specifico a una risorsa come offerta strategia.
In questa pagina viene descritto come creare, aggiornare e assegnare gli algoritmi per le offerte personalizzate con l'app Display & l'API Video 360. Ogni sezione fornisce un esempio di codice.
Creare un algoritmo di offerte personalizzate
Un oggetto CustomBiddingAlgorithm
rappresenta un individuo
algoritmo che puoi assegnare a un elemento pubblicitario per utilizzarlo nella relativa strategia di offerta. Questo
presenta dettagli sull'algoritmo, come
customBiddingAlgorithmType
e
entityStatus
, oltre ai
readinessState
e suspensionState
per
il modello generato da ogni inserzionista pertinente. Puoi creare
CustomBiddingScript
e
gli oggetti CustomBiddingAlgorithmRules
come risorse figlio per
l'algoritmo da utilizzare.
Ecco un esempio di come creare un algoritmo di offerte personalizzate basato su script:
Java
// Create the custom bidding algorithm structure.
CustomBiddingAlgorithm customBiddingAlgorithm =
new CustomBiddingAlgorithm()
.setAdvertiserId(advertiser-id)
.setDisplayName(display-name)
.setEntityStatus("ENTITY_STATUS_ACTIVE")
.setCustomBiddingAlgorithmType("SCRIPT_BASED");
// Configure the create request.
CustomBiddingAlgorithms.Create request =
service.customBiddingAlgorithms().create(customBiddingAlgorithm);
// Create the custom bidding algorithm.
CustomBiddingAlgorithm response = request.execute();
// Display the new custom bidding algorithm name.
System.out.printf(
"Custom bidding algorithm %s was created.%n",
response.getName()
);
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=custom_bidding_algorithm_obj
).execute()
# Display the new custom bidding algorithm.
print(f'The following Custom Bidding Algorithm was created: {response}')
PHP
// Create a custom bidding algorithm object.
$customBiddingAlgorithm =
new Google_Service_DisplayVideo_CustomBiddingAlgorithm();
$customBiddingAlgorithm->setAdvertiserId(advertiser-id);
$customBiddingAlgorithm->setDisplayName(display-name);
$customBiddingAlgorithm->setEntityStatus('ENTITY_STATUS_ACTIVE');
$customBiddingAlgorithm->setCustomBiddingAlgorithmType('SCRIPT_BASED');
// Create the custom bidding algorithm.
$result =
$this->service->customBiddingAlgorithms->create($customBiddingAlgorithm);
// Display the new custom bidding algorithm name.
printf('Custom Bidding Algorithm %s was created.\n', $result['name']);
Gestisci l'accesso all'algoritmo
Gli algoritmi delle offerte personalizzate possono essere di proprietà di un partner o di un inserzionista. Algoritmi
di proprietà di un partner è accessibile e modificabile da quest'ultimo e da qualsiasi figlio
inserzionisti elencati nel campo sharedAdvertiserIds
.
Gli algoritmi di proprietà di un inserzionista sono accessibili e modificabili
l'inserzionista e il partner principale, ma non può essere condiviso con altri inserzionisti.
Se utilizzi l'algoritmo per un solo inserzionista, assegna
l'inserzionista come proprietario con il campo advertiserId
.
Altrimenti, assegna il partner principale degli inserzionisti come proprietario con
partnerId
e concedere agli inserzionisti l'accesso con
sharedAdvertiserIds
.
Carica logica dell'algoritmo
A seconda del tipo di algoritmo delle offerte personalizzate, il passaggio successivo consiste nel creare un oggetto script o rules in cui puoi forniscono la logica per l'utilizzo dell'algoritmo.
Carica uno script
Gli algoritmi di offerte personalizzate basate su script utilizzano script per valutare il valore di un'impressione. Esempi di script semplici e un elenco di campi avanzati sono disponibili tramite Display e Centro assistenza Video 360.
Le seguenti sezioni insegnano come aggiungere uno script nuovo o aggiornato a uno script algoritmo di offerta.
Recupera una località delle risorse dello script
Innanzitutto, recupera una posizione delle risorse disponibile nell'ambito delle offerte personalizzate
risorsa di algoritmo con
customBiddingAlgorithms.uploadScript
. Questo
restituisce un oggetto CustomBiddingScriptRef
con un
nome risorsa. Puoi
carica il file di script nella posizione indicata dal
del nome della risorsa. Poi utilizza l'oggetto di riferimento dello script di offerte personalizzate
crea la risorsa script.
Ecco un esempio di come recuperare una località delle risorse disponibile:
Java
// Retrieve a usable custom bidding script
// reference.
CustomBiddingScriptRef scriptRef =
service
.customBiddingAlgorithms()
.uploadScript(custom-bidding-algorithm-id)
.setAdvertiserId(advertiser-id)
.execute();
// Display the custom bidding script reference resource path.
System.out.printf(
"The script can be uploaded to the following resource path: %s%n",
scriptRef.getResourceName()
);
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}')
PHP
// Set parent advertiser ID of custom bidding
// algorithm in optional parameters array for request.
$optParams = array('advertiserId' => advertiser-id);
// Retrieve a usable custom bidding script reference.
$scriptRefResponse = $this->service->customBiddingAlgorithms->uploadScript(
custom-bidding-algorithm-id,
$optParams
);
// Display the new custom bidding script reference object.
printf(
'The script can be uploaded to the following resource path: %s\n',
$scriptRefResponse->getResourceName()
);
Carica un file di script
Dopo aver recuperato una posizione delle risorse disponibile, carica il file di script al suo interno
in Display & Il sistema Video 360 con
media.upload
. Questo metodo supporta
caricamento semplice che richiede il parametro di query
uploadType=media
.
Di seguito è riportato un esempio di come caricare un file di script in base a un account personalizzato recuperato Oggetto di riferimento dello script di offerta:
Java
// Create media object.
GoogleBytestreamMedia media = new GoogleBytestreamMedia();
media.setResourceName(resource-name);
// Create input stream for the script file.
InputStreamContent scriptFileStream =
new InputStreamContent(
null, new FileInputStream(script-path));
// Create media.upload request.
Media.Upload uploadRequest =
service
.media()
.upload(
resource-name,
media,
scriptFileStream);
// Retrieve uploader from the request and set it to us a simple
// upload request.
MediaHttpUploader uploader = uploadRequest.getMediaHttpUploader();
uploader.setDirectUploadEnabled(true);
// Execute the upload using an Upload URL with the destination resource
// name.
uploader
.upload(
new GenericUrl(
"https://displayvideo.googleapis.com/upload/media/"
+ resource-name));
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()
PHP
// Create a media object.
$mediaBody = new Google_Service_DisplayVideo_GoogleBytestreamMedia();
$mediaBody->setResourceName(resource-name);
// Set parameters for upload request.
$optParams = array(
'data' => file_get_contents(script-path),
'uploadType' => 'media',
'resourceName' => resource-name
);
// Upload script file to given resource location.
$this->service->media->upload(
resource-name,
$mediaBody,
$optParams
);
cURL
curl --request POST 'https://displayvideo.googleapis.com/upload/media/resource-name?uploadType=media'
-H 'authorization: Bearer access-token'
-H 'Content-Type: text/plain'
--data-binary @script-path
Creare un oggetto script
Una volta caricato il file di script, crea una risorsa dello script di offerte personalizzate con
il metodo customBiddingAlgorithms.scripts.create
. La
L'oggetto CustomBiddingScript
passato nella richiesta deve essere eseguito solo
includi l'oggetto CustomBiddingScriptRef
come oggetto assegnato
del campo script
. In questo modo viene associato
del file di script con la nuova risorsa di script.
Ecco un esempio di come creare una risorsa di script:
Java
// Create the custom bidding script structure.
CustomBiddingScript customBiddingScript =
new CustomBiddingScript()
.setScript(custom-bidding-script-ref);
// Create the custom bidding script.
CustomBiddingScript response =
service
.customBiddingAlgorithms()
.scripts()
.create(custom-bidding-algorithm-id, customBiddingScript)
.setAdvertiserId(advertiser-id)
.execute();
// Display the new script resource name
System.out.printf(
"The following script was created: %s%n",
response.getName());
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}')
PHP
// Create the custom bidding script object.
$customBiddingScript =
new Google_Service_DisplayVideo_CustomBiddingScript();
$customBiddingScript->setScript(custom-bidding-script-ref);
// Set parameters for create script request.
$optParams = array(
'advertiserId' => advertiser-id
);
// Create the custom bidding script.
$result = $this->service->customBiddingAlgorithms_scripts->create(
custom-bidding-algorithm-id,
$customBiddingScript,
$optParams
);
// Display the new script resource name.
printf('The following script was created: %s.\n', $result->getName());
Dopo aver creato una risorsa per lo script di offerte personalizzate, Video 360 elabora
per assicurarti che possa essere utilizzato correttamente per assegnare un punteggio alle impressioni.
Recupera lo stato di questa elaborazione tramite il metodo
state
. Una volta accettato il nuovo script,
all'algoritmo di offerta inizia a utilizzare lo script per assegnare un punteggio ai valori delle impressioni. Questo
avvengono immediatamente, quindi assicurati di voler aggiornare l'algoritmo prima
creando una nuova risorsa di script.
Regole di caricamento
Gli algoritmi delle offerte personalizzate basate su regole utilizzano la logica fornita in una
AlgorithmRules
per valutare il valore di un'impressione.
Gli oggetti AlgorithmRules
vengono caricati in un file JSON e poi
associati a un algoritmo di offerte personalizzate
CustomBiddingAlgorithmRules
.
Recupera una località delle risorse delle regole
Innanzitutto, recupera una posizione delle risorse disponibile nell'ambito delle offerte personalizzate
risorsa di algoritmo con
customBiddingAlgorithms.uploadRules
. Questo
restituisce un oggetto CustomBiddingAlgorithmsRulesRef
con un nome risorsa. Puoi caricare le regole
nella posizione dettata dal nome della risorsa. Poi
utilizza l'oggetto di riferimento delle regole dell'algoritmo delle offerte personalizzate per creare le regole
risorsa.
Ecco un esempio di come recuperare una località delle risorse disponibile:
Java
// Create the custom bidding algorithm structure.
CustomBiddingAlgorithmRulesRef rulesRef =
service
.customBiddingAlgorithms()
.uploadRules(custom-bidding-algorithm-id)
.setAdvertiserId(advertiser-id)
.execute();
System.out.printf(
"The rules can be uploaded to the following resource path: %s%n",
rulesRef.getResourceName()
);
Python
# Retrieve a usable custom bidding algorithm rules reference
# object.
custom_bidding_algorithm_rules_ref = service.customBiddingAlgorithms().uploadRules(
customBiddingAlgorithmId=custom-bidding-algorithm-id,
advertiserId=advertiser-id
).execute()
# Display the new custom bidding algorithm rules reference object.
print('The following custom bidding algorithm rules reference object was retrieved:'
f' {custom_bidding_algorithm_rules_ref}')
PHP
// Set parent advertiser ID of custom bidding algorithm
// in optional parameters array for request.
$optParams = array('advertiserId' => advertiser-id);
// Retrieve a usable custom bidding algorithm rules reference.
$rulesRefResponse = $this->service->customBiddingAlgorithms->uploadRules(
custom-bidding-algorithm-id,
$optParams
);
// Display the new custom bidding algorithm rules reference object resource path.
printf(
'The rules can be uploaded to the following resource path: %s\n',
$rulesRefResponse->getResourceName()
);
Carica un file AlgorithmRules
Dopo aver recuperato una località delle risorse disponibile, carica il file delle regole al suo interno.
in Display & Il sistema Video 360 con
media.upload
. Questo metodo supporta
caricamento semplice che richiede il parametro di query
uploadType=media
.
Ecco un esempio di come caricare un file AlgorithmRules
dato un recupero
Oggetto di riferimento delle regole dell'algoritmo delle offerte personalizzate:
Java
// Create media object.
GoogleBytestreamMedia media = new GoogleBytestreamMedia();
media.setResourceName(resource-name);
// Create input stream for the rules file.
InputStreamContent rulesFileStream =
new InputStreamContent(
null, new FileInputStream(rules-file-path));
// Create media.upload request.
Media.Upload uploadRequest =
service
.media()
.upload(
resource-name,
media,
rulesFileStream);
// Retrieve uploader from the request and set it to us a simple
// upload request.
MediaHttpUploader uploader = uploadRequest.getMediaHttpUploader();
uploader.setDirectUploadEnabled(true);
// Execute the upload using an Upload URL with the destination resource
// name.
uploader
.upload(
new GenericUrl(
"https://displayvideo.googleapis.com/upload/media/"
+ resource-name));
Python
# Create a media upload object.
media = MediaFileUpload(rules-file-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 rules file to resource location given in retrieved custom bidding
# algorithm rules reference object.
upload_request.execute()
PHP
// Create a media object.
$mediaBody = new Google_Service_DisplayVideo_GoogleBytestreamMedia();
$mediaBody->setResourceName(resource-name);
// Set parameters for upload request.
$optParams = array(
'data' => file_get_contents(rules-file-path),
'uploadType' => 'media',
'resourceName' => resource-name
);
// Upload rules file to given resource location.
$this->service->media->upload(
resource-name,
$mediaBody,
$optParams
);
cURL
curl --request POST 'https://displayvideo.googleapis.com/upload/media/resource-name?uploadType=media'
-H 'authorization: Bearer access-token'
-H 'Content-Type: text/plain'
--data-binary @rules-file-path
crea un oggetto regole
Dopo aver caricato il file JSON AlgorithmRules
, crea un'offerta personalizzata
di regole dell'algoritmo con
customBiddingAlgorithms.rules.create
. La
L'oggetto CustomBiddingAlgorithmRules
passato nella richiesta deve
includi solo l'oggetto CustomBiddingAlgorithmRulesRef
come
il valore assegnato del campo rules
. In questo modo viene associato
caricato AlgorithmRules
file JSON con la nuova risorsa delle regole.
Ecco un esempio di come creare una risorsa regole:
Java
// Create the custom bidding algorithm rules structure.
CustomBiddingAlgorithmRules customBiddingAlgorithmRules =
new CustomBiddingAlgorithmRules()
.setRules(custom-bidding-algorithm-rules-ref);
// Create the rules resource.
CustomBiddingAlgorithmRules response =
service
.customBiddingAlgorithms()
.rules()
.create(custom-bidding-algorithm-id, customBiddingAlgorithmRules)
.setAdvertiserId(advertiser-id)
.execute();
// Display the new rules resource name.
System.out.printf(
"The following custom bidding algorithm rules object was created: %s%n",
response.getName());
Python
# Create the custom bidding algorithm rules object.
rules_obj = {
'rules': custom-bidding-algorithm-rules-ref
}
# Create the rules resource.
response = service.customBiddingAlgorithms().rules().create(
customBiddingAlgorithmId=custom-bidding-algorithm-id,
advertiserId=advertiser-id,
body=rules_obj).execute()
# Display the new custom bidding algorithm rules object.
print(f'The following custom bidding algorithm rules resource was created: {response}')
PHP
// Create the custom bidding algorithm rules object.
$customBiddingAlgorithmRules =
new Google_Service_DisplayVideo_CustomBiddingAlgorithmRules();
$customBiddingAlgorithmRules->setRules(custom-bidding-algorithm-rules-ref);
// Set parameters for create rules request.
$optParams = array(
'advertiserId' => advertiser-id
);
// Create the custom bidding algorithm rules resource.
$result = $this->service->customBiddingAlgorithms_rules->create(
custom-bidding-algorithm-id,
$customBiddingAlgorithmRules,
$optParams
);
// Display the new custom bidding algorithm rules resource name.
printf('The following rules resource was created: %s.\n', $result->getName());
Una volta creata una risorsa di regole, Display & Video 360 elabora il set di regole per
di poter essere usata correttamente per assegnare un punteggio alle impressioni. Recupera lo stato
di questa elaborazione tramite il campo state
dell'oggetto regole.
Una volta accettate le nuove regole, l'algoritmo delle offerte personalizzate inizia a utilizzare
per assegnare immediatamente un punteggio ai valori delle impressioni.
Se le regole vengono rifiutate, recupera il motivo del rifiuto dalle regole
error
dell'oggetto. In caso di rifiuto, aggiorna il tuo
AlgorithmRules
oggetto per correggere l'errore e ripetere la procedura di caricamento iniziando
dal recupero dell'oggetto di riferimento delle regole.
Assegnare un algoritmo di offerte personalizzate
Dopo aver creato un algoritmo delle offerte personalizzate, caricare la logica accettata e soddisfare requisiti necessari, puoi assegnare la tua configurazione l'algoritmo di offerta alla strategia di offerta di un elemento pubblicitario o di un ordine di inserzione.
Puoi utilizzare gli algoritmi delle offerte personalizzate
massimizzare la spesa e
strategie di offerta obiettivo di rendimento assegnando BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO
e l'ID algoritmo delle offerte personalizzate alla
performanceGoalType
e
customBiddingAlgorithmId
.
A seconda della strategia di offerta, potrebbero essere disponibili altri parametri di offerta oppure
obbligatorio.
Di seguito è riportato un esempio di come aggiornare un elemento pubblicitario per utilizzare un'offerta Massimizza la spesa con un determinato algoritmo di offerte personalizzate:
Java
// Create the line item structure.
LineItem lineItem = new LineItem();
// Create and set the bidding strategy structure.
BiddingStrategy biddingStrategy = new BiddingStrategy();
MaximizeSpendBidStrategy maxSpendBidStrategy =
new MaximizeSpendBidStrategy()
.setPerformanceGoalType(
"BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO")
.setCustomBiddingAlgorithmId(custom-bidding-algorithm-id);
biddingStrategy.setMaximizeSpendAutoBid(maxSpendBidStrategy);
lineItem.setBidStrategy(biddingStrategy);
// Configure the patch request and set update mask to only update
// the bid strategy.
LineItems.Patch request =
service
.advertisers()
.lineItems()
.patch(advertiser-id, line-item-id, lineItem)
.setUpdateMask("bidStrategy");
// Update the line item.
LineItem response = request.execute();
// Display the custom bidding algorithm ID used in the new
// bid strategy.
System.out.printf(
"LineItem %s now has a bid strategy utilizing custom "
+ "bidding algorithm %s%n",
response.getName(),
response
.getBidStrategy()
.getMaximizeSpendAutoBid()
.getCustomBiddingAlgorithmId());
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"]}.')
PHP
// Create the line item structure.
$lineItem = new Google_Service_DisplayVideo_LineItem();
// Create and set the bidding strategy structure.
$biddingStrategy = new Google_Service_DisplayVideo_BiddingStrategy();
$maximizeSpendBidStrategy =
new Google_Service_DisplayVideo_MaximizeSpendBidStrategy();
$maximizeSpendBidStrategy->setPerformanceGoalType(
'BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO'
);
$maximizeSpendBidStrategy->setCustomBiddingAlgorithmId(
custom-bidding-algorithm-id
);
$biddingStrategy->setMaximizeSpendAutoBid($maximizeSpendBidStrategy);
$lineItem->setBidStrategy($biddingStrategy);
// Set update mask.
$optParams = array('updateMask' => 'bidStrategy');
// Update the line item.
$result = $this->service->advertisers_lineItems->patch(
advertiser-id,
line-item-id,
$lineItem,
$optParams
);
// Display the custom bidding algorithm ID used in the new bid strategy.
printf(
'Line Item %s now has a bid strategy utilizing custom bidding algorithm %s.\n',
$result['name'],
$result['bidStrategy']['maximizeSpendBidStrategy']['customBiddingAlgorithmId']
);