กฎการอัปโหลด

อัลกอริทึมที่อิงตามกฎจะกำหนดโดยออบเจ็กต์ AlgorithmRules JSON อัปโหลดกฎไปยัง Display & Video 360 ผ่านไฟล์ JSON

หากใช้อัลกอริทึมที่อิงตามสคริปต์ ให้ไปที่หน้าอัปโหลด สคริปต์

สร้างออบเจ็กต์กฎ

อัลกอริทึมการเสนอราคาที่กําหนดเองตามกฎจะใช้กฎเพื่อประเมิน มูลค่าของสัญญาณการตอบกลับ

ออบเจ็กต์ AlgorithmRules ประกอบด้วยชุดกฎอย่างน้อย 1 ชุด ชุดกฎแต่ละชุดจะประเมินสัญญาณการตอบกลับประเภทต่างๆ เช่น การแสดงผล ชุดกฎแต่ละชุดมีรายการกฎ กฎแต่ละข้อจะประเมินสัญญาณเทียบกับเงื่อนไขที่ตั้งไว้ และแสดงค่า กฎทั้งหมดในชุดจะประเมินสัญญาณ จากนั้นระบบจะรวมค่าที่ส่งคืนโดยแต่ละกฎ ซึ่งส่งผลให้ ค่าการประเมินสำหรับสัญญาณ

บันทึกออบเจ็กต์ AlgorithmRules ไว้ในเครื่องเป็นไฟล์ JSON

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

ออบเจ็กต์อ้างอิงใช้เพื่อเชื่อมโยงไฟล์ที่อัปโหลดกับทรัพยากรกฎ สร้างออบเจ็กต์อ้างอิงภายใต้อัลกอริทึมโดยใช้คำขอ uploadRules

วิธีสร้างออบเจ็กต์อ้างอิงกฎมีดังนี้

Java

// Provide the ID of the advertiser that owns the algorithm.
long advertiserId = advertiser-id;

// Provide the ID of the algorithm.
long customBiddingAlgorithmId = algorithm-id;

// Generate an AlgorithmRules reference object under the algorithm.
CustomBiddingAlgorithmRulesRef response =
    service
        .customBiddingAlgorithms()
        .uploadRules(customBiddingAlgorithmId)
        .setAdvertiserId(advertiserId)
        .execute();

// Display the generated resource path.
System.out.printf(
    "The generated AlgorithmRules reference object provided the following resource path: %s.",
    response.getResourceName());

Python

# Provide the ID of the advertiser that owns the algorithm.
advertiser_id = advertiser-id

# Provide the ID of the algorithm.
algorithm_id = algorithm-id

# Generate an AlgorithmRules reference object under the algorithm.
custom_bidding_algorithm_rules_ref = (
    service.customBiddingAlgorithms()
    .uploadRules(
        customBiddingAlgorithmId=algorithm_id,
        advertiserId=advertiser_id
    )
    .execute()
)

# Print the resource path provided in the generated rules reference object.
print(
    "The generated rules reference object provided the following resource"
    f' path: {custom_bidding_algorithm_rules_ref["resourceName"]}.'
)

PHP

// Provide the ID of the advertiser that owns the algorithm.
$advertiserId = advertiser-id;

// Provide the ID of the algorithm.
$algorithmId = algorithm-id;

$uploadRulesOptParams = array(
    'advertiserId' => $advertiserId
);

try {
  // Generate an AlgorithmRules reference object under the algorithm.
    $rulesRefResponse =
        $this->service->customBiddingAlgorithms->uploadRules(
            $customBiddingAlgorithmId,
            $uploadRulesOptParams
        );
} catch (\Exception $e) {
    $this->renderError($e);
    return;
}

// Print the retrieved resource path.
printf(
    '<p>The generated AlgorithmRules reference object provided the '
        . 'following resource path: %s</p>',
    $rulesRefResponse->getResourceName()
);

อัปโหลดไฟล์ AlgorithmRules

ใช้คำขอสื่อ upload เพื่ออัปโหลดไฟล์กฎไปยัง เส้นทางทรัพยากรในออบเจ็กต์อ้างอิง ใช้การอัปโหลด แบบง่ายที่มีพารามิเตอร์การค้นหา uploadType=media

วิธีอัปโหลดไฟล์กฎมีดังนี้

Java

// Provide the local path to the AlgorithmRules file to upload.
String rulesPath = rules-path;

// Provide the resource path to upload the AlgorithmRules file to.
String resourcePath = resource-path;

// Create media object.
GoogleBytestreamMedia media = new GoogleBytestreamMedia();
media.setResourceName(resourcePath);

// Create input stream for the Algorithm file.
InputStreamContent rulesFileStream =
    new InputStreamContent(null, new FileInputStream(rulesPath));

// Create media.upload request.
Media.Upload uploadRequest = service.media().upload(resourcePath, 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/" + resourcePath));

Python

# Import HTTP objects used for file upload.
from apiclient.http import HttpRequest
from apiclient.http import MediaFileUpload

# Provide the local path to the AlgorithmRules file to upload.
rules_path = rules-path

# Provide the resource path to upload the AlgorithmRules file to.
resource_path = resource-path

# Create a media upload object.
media = MediaFileUpload(rules_path)

# Create upload request.
upload_request = service.media().upload(
    resourceName=resource_path, media_body=media
)

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

# Upload AlgorithmRules to given resource path.
upload_request.execute()

PHP

// Provide the local path to the AlgorithmRules file to upload.
$rulesPath = rules-path;

// Provide the resource path to upload the AlgorithmRules file to.
$resourcePath = resource-path;

// Create the media body.
$mediaBody = new Google_Service_DisplayVideo_GoogleBytestreamMedia();
$mediaBody->setResourceName($resourceName);

// Build params array for the upload request.
$mediaUploadOptParams = array(
    'data' => file_get_contents($rulesPath),
    'uploadType' => 'media',
    'resourceName' => $resourceName
);

try {
    // Call the API, uploading the rules file to Display & Video 360.
    $this->service->media->upload(
        $resourceName,
        $mediaBody,
        $mediaUploadOptParams
    );
} catch (\Exception $e) {
    $this->renderError($e);
}

สร้างออบเจ็กต์กฎ

ใช้คำขอ create เพื่อสร้างออบเจ็กต์ rules ภายใต้อัลกอริทึม

วิธีสร้างออบเจ็กต์กฎมีดังนี้

Java

// Provide the ID of the advertiser that owns the parent algorithm.
long advertiserId = advertiser-id;

// Provide the ID of the parent algorithm.
long algorithmId = algorithm-id;

// Provide the resource path the AlgorithmRules file was uploaded to.
String resourcePath = resource-path;

// Create the custom bidding algorithm rules structure.
CustomBiddingAlgorithmRules customBiddingAlgorithmRules =
    new CustomBiddingAlgorithmRules()
        .setRules(new CustomBiddingAlgorithmRulesRef().setResourceName(resourcePath));

// Create the custom bidding algorithm rules.
CustomBiddingAlgorithmRules response =
    service
        .customBiddingAlgorithms()
        .rules()
        .create(algorithmId, customBiddingAlgorithmRules)
        .setAdvertiserId(advertiserId)
        .execute();

// Print ID of new custom bidding algorithm rules.
System.out.printf("Rules were created with ID %s.", response.getCustomBiddingAlgorithmRulesId());

Python

# Provide the ID of the advertiser that owns the parent algorithm.
advertiser_id = advertiser-id

# Provide the ID of the parent algorithm.
algorithm_id = algorithm-id

# Provide the resource path the AlgorithmRules file was uploaded to.
resource_path = resource-path

# Build algorithm rules object.
rules_obj = {"rules": {"resourceName": resource_path}}

# Build and execute request.
rules_response = (
    service.customBiddingAlgorithms()
    .rules()
    .create(
        customBiddingAlgorithmId=algorithm_id,
        advertiserId=advertiser_id,
        body=rules_obj,
    )
    .execute()
)

# Print ID of new custom bidding algorithm rules.
print(
    f'Rules were created with ID {rules_response["customBiddingAlgorithmRulesId"]}.'
)

PHP

// Provide the ID of the advertiser that owns the parent algorithm.
$advertiserId = advertiser-id;

// Provide the ID of the parent algorithm.
$algorithmId = algorithm-id;

// Provide the resource path the AlgorithmRules file was uploaded to.
$resourcePath = resource-path;

// Build algorithm rules object.
$customBiddingRules = new Google_Service_DisplayVideo_CustomBiddingAlgorithmRules();
$rulesRef = new Google_Service_DisplayVideo_CustomBiddingAlgorithmRulesRef();
$rulesRef->setResourceName($resourcePath);
$customBiddingRules->setRules($rulesRef);

$createRulesOptParams = array(
    'advertiserId' => $advertiserId
);

// Call the API, creating the custom bidding algorithm rules using the
// rules file and under the custom bidding algorithm given.
try {
    $result = $this->service->customBiddingAlgorithms_rules->create(
        $customBiddingAlgorithmId,
        $algorithmId,
        $createRulesOptParams
    );
} catch (\Exception $e) {
    $this->renderError($e);
    return;
}

// Print ID of new custom bidding algorithm rules.
printf('<p>Rules was created with ID %s.</p>', $result['customBiddingAlgorithmRulesId']);