อัลกอริทึมที่อิงตามกฎจะกำหนดโดยออบเจ็กต์ 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']);