ใช้การเสนอราคาที่กําหนดเอง

คุณสามารถใช้ Display & Video 360 API เพื่อจัดการ การใช้งานการเสนอราคาที่กําหนดเอง โดยสามารถสร้างอัลกอริทึมการเสนอราคาที่กําหนดเอง อัปโหลดและยืนยันสคริปต์แต่ละรายการ รวมถึงกำหนดอัลกอริทึมที่เฉพาะเจาะจงให้กับทรัพยากรเป็นกลยุทธ์การเสนอราคาได้

หน้านี้อธิบายวิธีสร้าง อัปเดต และกำหนดอัลกอริทึมการเสนอราคาที่กําหนดเองด้วย Display &Video 360 API โดยแต่ละส่วนจะมีตัวอย่างโค้ด

สร้างอัลกอริทึมการเสนอราคาที่กําหนดเอง

ออบเจ็กต์ CustomBiddingAlgorithm แสดงถึงอัลกอริทึมแต่ละรายการ ที่คุณกำหนดให้กับรายการโฆษณาเพื่อใช้ในกลยุทธ์การเสนอราคา ออบเจ็กต์นี้มีรายละเอียดเกี่ยวกับอัลกอริทึม เช่น customBiddingAlgorithmType, entityStatus และ customBiddingAlgorithmState คุณสามารถสร้าง CustomBiddingScriptออบเจ็กต์เป็นทรัพยากรย่อยเพื่อให้อัลกอริทึม ใช้ได้

ตัวอย่างวิธีสร้างอัลกอริทึมการเสนอราคาที่กําหนดเองซึ่งอิงตามสคริปต์มีดังนี้

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}')

จัดการสิทธิ์เข้าถึงอัลกอริทึม

อัลกอริทึมการเสนอราคาที่กําหนดเองอาจเป็นของพาร์ทเนอร์หรือผู้ลงโฆษณาก็ได้ พาร์ทเนอร์ที่เป็นเจ้าของอัลกอริทึม จะเข้าถึงและแก้ไขอัลกอริทึมดังกล่าวได้ รวมถึงผู้ลงโฆษณาย่อย ที่ระบุไว้ในช่อง sharedAdvertiserIds ผู้ลงโฆษณาที่เป็นเจ้าของอัลกอริทึมจะเข้าถึงและแก้ไขอัลกอริทึมดังกล่าวได้ รวมถึงพาร์ทเนอร์หลัก แต่จะแชร์กับผู้ลงโฆษณารายอื่นไม่ได้

หากใช้เฉพาะอัลกอริทึมสำหรับผู้ลงโฆษณารายเดียว ให้กำหนด ผู้ลงโฆษณารายนั้นเป็นเจ้าของด้วยช่อง advertiserId แต่หากใช้สำหรับผู้ลงโฆษณาหลายราย ให้กำหนดพาร์ทเนอร์หลักของผู้ลงโฆษณารายดังกล่าวเป็นเจ้าของด้วยช่อง partnerId และให้สิทธิ์เข้าถึงแก่ผู้ลงโฆษณาด้วยช่อง sharedAdvertiserIds

อัปโหลดสคริปต์

เมื่อสร้างอัลกอริทึมการเสนอราคาที่กําหนดเองแล้ว ให้สร้างสคริปต์เพื่อให้อัลกอริทึมนั้นใช้ อัลกอริทึมการเสนอราคาที่กําหนดเองซึ่งอิงตามสคริปต์จะใช้สคริปต์ที่ผู้ใช้ระบุ สคริปต์เพื่อประเมินมูลค่าของการแสดงผล ตัวอย่างสคริปต์อย่างง่ายและรายการ ช่องขั้นสูงมีให้บริการผ่าน ศูนย์ช่วยเหลือของ Display & Video 360

ส่วนต่อไปนี้จะสอนวิธีเพิ่มสคริปต์ใหม่หรืออัปเดตสคริปต์ลงในอัลกอริทึมการเสนอราคาที่กําหนดเอง

ดึงข้อมูลตําแหน่งทรัพยากรสคริปต์

ขั้นแรก ให้ดึงข้อมูลตําแหน่งทรัพยากรที่ใช้ได้ภายใต้ทรัพยากรอัลกอริทึมการเสนอราคาที่กําหนดเอง ด้วยเมธอด customBiddingAlgorithms.uploadScript คําขอนี้ จะแสดงผลออบเจ็กต์ CustomBiddingScriptRef ที่มี ชื่อทรัพยากร คุณสามารถ อัปโหลดไฟล์สคริปต์ไปยังตําแหน่งที่ ชื่อทรัพยากรกําหนด จากนั้นใช้ออบเจ็กต์การอ้างอิงสคริปต์การเสนอราคาที่กําหนดเองเพื่อ สร้างทรัพยากรสคริปต์

ตัวอย่างวิธีดึงข้อมูลตําแหน่งทรัพยากรที่ใช้ได้มีดังนี้

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}')

อัปโหลดไฟล์สคริปต์

หลังจากดึงข้อมูลตําแหน่งทรัพยากรที่ใช้ได้แล้ว ให้อัปโหลดไฟล์สคริปต์ไปยังตําแหน่งดังกล่าวในระบบ Display & Video 360 ด้วยเมธอด media.upload เมธอดนี้รองรับการอัปโหลดอย่างง่ายที่ต้องใช้พารามิเตอร์การค้นหา uploadType=media

ตัวอย่างวิธีอัปโหลดไฟล์สคริปต์เมื่อได้รับออบเจ็กต์การอ้างอิงสคริปต์การเสนอราคาที่กําหนดเองแล้วมีดังนี้

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()

สร้างออบเจ็กต์สคริปต์

เมื่ออัปโหลดไฟล์สคริปต์แล้ว ให้สร้างทรัพยากรสคริปต์การเสนอราคาที่กําหนดเองด้วย เมธอด customBiddingAlgorithms.scripts.create ออบเจ็กต์ CustomBiddingScript ที่ส่งในคําขอควรมีเพียง ออบเจ็กต์ CustomBiddingScriptRef เป็นค่าที่กำหนด ของช่อง 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}')

เมื่อคุณสร้างทรัพยากรสคริปต์การเสนอราคาที่กําหนดเองแล้ว Display &Video 360 จะประมวลผลสคริปต์เพื่อให้แน่ใจว่าสามารถใช้ให้คะแนนการแสดงผลได้สําเร็จ ดึงข้อมูลสถานะการประมวลผลนี้ผ่านช่อง state ของออบเจ็กต์สคริปต์ เมื่อระบบยอมรับสคริปต์ใหม่แล้ว อัลกอริทึมการเสนอราคาที่กําหนดเองจะเริ่มใช้สคริปต์เพื่อให้คะแนนมูลค่าการแสดงผล ซึ่งจะเกิดขึ้นทันที ดังนั้นโปรดตรวจสอบว่าคุณต้องการอัปเดตอัลกอริทึมก่อนที่จะสร้างทรัพยากรสคริปต์ใหม่

กำหนดอัลกอริทึมการเสนอราคาที่กําหนดเอง

หลังจากสร้างอัลกอริทึมการเสนอราคาที่กําหนดเอง อัปโหลดสคริปต์ที่ระบบยอมรับ และเป็นไปตาม ข้อกําหนดที่จําเป็นแล้ว คุณสามารถกำหนดอัลกอริทึมการเสนอราคาที่กําหนดเอง ให้กับกลยุทธ์การเสนอราคาของรายการโฆษณาหรือใบสั่งซื้อการใส่โฆษณา

คุณสามารถใช้อัลกอริทึมการเสนอราคาที่กําหนดเองใน กลยุทธ์การเสนอราคาเพื่อเพิ่มการใช้จ่ายสูงสุดและ กลยุทธ์การเสนอราคาตามเป้าหมายประสิทธิภาพโดยกำหนด BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO และรหัสอัลกอริทึมการเสนอราคาที่กําหนดเองให้กับช่อง performanceGoalTypeและ customBiddingAlgorithmIdตามลําดับ พารามิเตอร์การเสนอราคาอื่นๆ อาจพร้อมใช้งานหรือจําเป็น ทั้งนี้ขึ้นอยู่กับกลยุทธ์การเสนอราคา

ตัวอย่างวิธีอัปเดตรายการโฆษณาให้ใช้กลยุทธ์การเสนอราคาเพื่อเพิ่มการใช้จ่ายสูงสุดด้วยอัลกอริทึมการเสนอราคาที่กําหนดเองมีดังนี้

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"]}.')