ดิสเพลย์และ Video 360 API ช่วยให้คุณจัดการการเสนอราคาที่กำหนดเองได้อย่างเต็มรูปแบบ การนำไปใช้งานจริง คุณสามารถสร้างอัลกอริทึมการเสนอราคาที่กําหนดเอง อัปโหลด และยืนยันได้ แต่ละสคริปต์ และกำหนดอัลกอริทึมเฉพาะให้กับทรัพยากรเพื่อทำการเสนอราคา ของคุณ
หน้านี้จะอธิบายวิธีสร้าง อัปเดต และกำหนดอัลกอริทึมการเสนอราคาที่กําหนดเอง พร้อมจอแสดงผลและ API ของวิดีโอ 360 แต่ละส่วนมีตัวอย่างโค้ด
สร้างอัลกอริทึมการเสนอราคาที่กําหนดเอง
ออบเจ็กต์ CustomBiddingAlgorithm
แสดงถึงบุคคลธรรมดา
ที่คุณสามารถกำหนดให้กับรายการโฆษณาเพื่อใช้ในกลยุทธ์การเสนอราคา ช่วงเวลานี้
มีรายละเอียดเกี่ยวกับอัลกอริทึม เช่น
customBiddingAlgorithmType
และ
entityStatus
รวมทั้ง
readinessState
และ suspensionState
สำหรับ
รูปแบบที่ผู้ลงโฆษณาที่เกี่ยวข้องแต่ละรายสร้างขึ้น คุณสามารถสร้าง
CustomBiddingScript
และ
CustomBiddingAlgorithmRules
ออบเจ็กต์ในฐานะทรัพยากรย่อยสำหรับ
ในการทำงาน
ตัวอย่างวิธีการสร้างอัลกอริทึมการเสนอราคาที่กําหนดเองตามสคริปต์มีดังนี้
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']);
จัดการการเข้าถึงอัลกอริทึม
พาร์ทเนอร์หรือผู้ลงโฆษณาจะเป็นเจ้าของอัลกอริทึมการเสนอราคาที่กําหนดเองได้ อัลกอริทึม
พาร์ทเนอร์รายนั้นและพาร์ทเนอร์รายใดรายหนึ่งสามารถเข้าถึงและแก้ไขได้โดยพาร์ทเนอร์รายนั้น
ผู้ลงโฆษณาที่มีรายชื่อในฟิลด์ sharedAdvertiserIds
เท่านั้น
อัลกอริทึมที่ผู้ลงโฆษณาเป็นเจ้าของจะเข้าถึงและแก้ไขได้ด้วยอัลกอริทึมดังกล่าว
ผู้ลงโฆษณา และพาร์ทเนอร์หลัก แต่ไม่สามารถแชร์กับผู้ลงโฆษณารายอื่นได้
หากคุณใช้เฉพาะอัลกอริทึมสำหรับผู้ลงโฆษณารายเดียว ให้กำหนด
ผู้ลงโฆษณาเป็นเจ้าของด้วยช่อง advertiserId
มิเช่นนั้น ให้มอบหมายพาร์ทเนอร์หลักของผู้ลงโฆษณาเป็นเจ้าของ
partnerId
และให้สิทธิ์การเข้าถึงแก่ผู้ลงโฆษณาด้วย
sharedAdvertiserIds
อัปโหลดตรรกะอัลกอริทึม
ต่อไปคุณจะต้องสร้าง สคริปต์หรือออบเจ็กต์กฎ ซึ่งคุณจะ ระบุตรรกะที่อัลกอริทึมจะใช้
อัปโหลดสคริปต์
อัลกอริทึมการเสนอราคาที่กําหนดเองตามสคริปต์ใช้ที่ผู้ใช้ระบุ scripts เพื่อประเมินมูลค่าของการแสดงผล ตัวอย่างสคริปต์แบบง่ายและลิสต์ ฟิลด์ขั้นสูงมีให้บริการผ่าน ดิสเพลย์และ ศูนย์ช่วยเหลือของ Video 360
ส่วนต่อไปนี้จะสอนวิธีเพิ่มสคริปต์ใหม่หรือสคริปต์ที่อัปเดตในส่วน อัลกอริทึมการเสนอราคา
เรียกข้อมูลตำแหน่งทรัพยากรสคริปต์
ก่อนอื่น ให้ดึงตำแหน่งทรัพยากรที่ใช้ได้ภายใต้การเสนอราคาที่กำหนดเอง
ที่มี
customBiddingAlgorithms.uploadScript
ช่วงเวลานี้
แสดงออบเจ็กต์ CustomBiddingScriptRef
ที่มี
ชื่อทรัพยากร คุณสามารถ
อัปโหลดไฟล์สคริปต์ไปยังตำแหน่งที่กำหนดโดย
ชื่อทรัพยากร จากนั้นใช้ออบเจ็กต์อ้างอิงสคริปต์การเสนอราคาที่กําหนดเองเพื่อ
สร้างทรัพยากรสคริปต์
ตัวอย่างของวิธีเรียกข้อมูลตำแหน่งทรัพยากรที่มีอยู่มีดังนี้
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()
);
อัปโหลดไฟล์สคริปต์
หลังจากเรียกข้อมูลตำแหน่งทรัพยากรที่มีอยู่แล้ว ให้อัปโหลดไฟล์สคริปต์ไปยังตำแหน่งดังกล่าว
ตำแหน่งในหน้าจอและ ระบบ Video 360 ที่มี
media.upload
เมธอดนี้รองรับ
การอัปโหลดแบบง่ายที่ต้องใช้พารามิเตอร์การค้นหา
uploadType=media
ต่อไปนี้คือตัวอย่างของวิธีอัปโหลดไฟล์สคริปต์สำหรับ ออบเจ็กต์อ้างอิงสคริปต์การเสนอราคา:
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
สร้างออบเจ็กต์สคริปต์
เมื่ออัปโหลดไฟล์สคริปต์แล้ว ให้สร้างทรัพยากรสคริปต์การเสนอราคาที่กำหนดเองด้วย
เมธอด customBiddingAlgorithms.scripts.create
CustomBiddingScript
ออบเจ็กต์ที่ส่งในคำขอควร
รวมออบเจ็กต์ CustomBiddingScriptRef
เป็นออบเจ็กต์ที่มอบหมาย
ของช่อง 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());
เมื่อคุณสร้างทรัพยากรสคริปต์การเสนอราคาที่กำหนดเอง เครือข่ายดิสเพลย์และ Video 360 จะประมวลผล
เพื่อตรวจสอบว่าสามารถใช้สคริปต์ในการให้คะแนนการแสดงผลได้สำเร็จ
เรียกสถานะของการประมวลผลนี้ผ่านทางออบเจ็กต์สคริปต์
state
เมื่อยอมรับสคริปต์ใหม่แล้ว ระบบจะกำหนดค่า
อัลกอริทึมการเสนอราคาจะเริ่มใช้สคริปต์เพื่อให้คะแนนมูลค่าการแสดงผล ช่วงเวลานี้
ให้เกิดขึ้นทันที ดังนั้นโปรดอัปเดตอัลกอริทึมก่อน
การสร้างทรัพยากรสคริปต์ใหม่
กฎการอัปโหลด
อัลกอริทึมการเสนอราคาที่กําหนดเองซึ่งอิงตามกฎใช้ตรรกะที่ให้ไว้ใน
AlgorithmRules
เพื่อประเมินมูลค่าของการแสดงผล
ระบบจะอัปโหลดออบเจ็กต์ AlgorithmRules
ในไฟล์ JSON จากนั้น
ที่เชื่อมโยงกับอัลกอริทึมการเสนอราคาที่กําหนดเองผ่าน
ออบเจ็กต์ CustomBiddingAlgorithmRules
เรียกข้อมูลตำแหน่งทรัพยากรกฎ
ก่อนอื่น ให้ดึงตำแหน่งทรัพยากรที่ใช้ได้ภายใต้การเสนอราคาที่กำหนดเอง
ที่มี
customBiddingAlgorithms.uploadRules
ช่วงเวลานี้
คำขอแสดงผลออบเจ็กต์ CustomBiddingAlgorithmsRulesRef
ด้วยชื่อทรัพยากร คุณสามารถอัปโหลดกฎ
ไปยังตำแหน่งที่กำหนดโดยชื่อทรัพยากร จากนั้น
ใช้ออบเจ็กต์อ้างอิงกฎอัลกอริทึมการเสนอราคาที่กำหนดเองเพื่อสร้างกฎของคุณ
แหล่งข้อมูล
ตัวอย่างของวิธีเรียกข้อมูลตำแหน่งทรัพยากรที่มีอยู่มีดังนี้
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()
);
อัปโหลดไฟล์ AlgorithmRules
หลังจากเรียกข้อมูลตำแหน่งทรัพยากรที่ใช้ได้แล้ว ให้อัปโหลดไฟล์กฎไปยังตำแหน่งดังกล่าว
ตำแหน่งในหน้าจอและ ระบบ Video 360 ที่มี
media.upload
เมธอดนี้รองรับ
การอัปโหลดแบบง่ายที่ต้องใช้พารามิเตอร์การค้นหา
uploadType=media
ตัวอย่างวิธีอัปโหลดไฟล์ AlgorithmRules
ที่ได้รับมีดังนี้
ออบเจ็กต์อ้างอิงกฎอัลกอริทึมการเสนอราคาที่กำหนดเอง:
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
สร้างออบเจ็กต์กฎ
เมื่ออัปโหลดไฟล์ JSON AlgorithmRules
แล้ว ให้สร้างการเสนอราคาที่กำหนดเอง
แหล่งข้อมูลกฎอัลกอริทึม
customBiddingAlgorithms.rules.create
CustomBiddingAlgorithmRules
ออบเจ็กต์ที่ส่งในคำขอควร
รวมเฉพาะออบเจ็กต์ CustomBiddingAlgorithmRulesRef
เป็น
ค่าที่กำหนดไว้ของช่อง rules
ซึ่งเชื่อมโยง
อัปโหลดไฟล์ JSON AlgorithmRules
ไฟล์พร้อมทรัพยากรกฎใหม่
ตัวอย่างวิธีสร้างแหล่งข้อมูลกฎมีดังนี้
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());
เมื่อคุณสร้างทรัพยากรกฎ Display และ Video 360 จะประมวลผลชุดกฎเพื่อทำให้
ตรวจสอบว่าสามารถใช้ URL เพื่อทำการให้คะแนนการแสดงผลได้สำเร็จ ดึงข้อมูลรัฐ
ของการประมวลผลนี้ผ่านช่อง state
ของออบเจ็กต์กฎ
เมื่อยอมรับกฎใหม่ อัลกอริทึมการเสนอราคาที่กำหนดเองจะเริ่มใช้
เพื่อให้คะแนนค่าการแสดงผลทันที
หากกฎถูกปฏิเสธ ให้เรียกข้อมูลเหตุผลของการปฏิเสธจากกฎ
error
ของออบเจ็กต์ ในกรณีที่ถูกปฏิเสธ ให้อัปเดต
AlgorithmRules
รายการเพื่อแก้ไขข้อผิดพลาดและเริ่มกระบวนการอัปโหลดซ้ำ
จากการเรียกออบเจ็กต์อ้างอิงกฎ
กำหนดอัลกอริทึมการเสนอราคาที่กำหนดเอง
หลังจากที่คุณสร้างอัลกอริทึมการเสนอราคาที่กําหนดเองแล้ว ให้อัปโหลดตรรกะที่ยอมรับ และทําตาม ข้อกำหนดที่จำเป็น คุณสามารถกำหนด กับกลยุทธ์การเสนอราคาของรายการโฆษณาหรือใบสั่งซื้อการใส่โฆษณา
คุณสามารถใช้อัลกอริทึมการเสนอราคาที่กําหนดเองได้ใน
เพิ่มการใช้จ่ายสูงสุดและ
เป้าหมายประสิทธิภาพโดยการมอบหมาย BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO
และรหัสอัลกอริทึมการเสนอราคาที่กำหนดเองลงใน
performanceGoalType
และ
customBiddingAlgorithmId
ตามลำดับ
อาจมีพารามิเตอร์ราคาเสนออื่นๆ ให้ใช้งาน ทั้งนี้ขึ้นอยู่กับกลยุทธ์การเสนอราคานั้นๆ หรือ
ต้องระบุ
ตัวอย่างวิธีอัปเดตรายการโฆษณาเพื่อใช้การเสนอราคาแบบเพิ่มการใช้จ่ายสูงสุด ที่มีอัลกอริทึมการเสนอราคาที่กำหนดเองต่อไปนี้
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']
);