یک الگوریتم مبتنی بر قوانین توسط یک شیء JSON AlgorithmRules تعریف میشود. قوانین را از طریق یک فایل JSON در Display & Video 360 بارگذاری کنید.
اگر از الگوریتم مبتنی بر اسکریپت استفاده میکنید، به صفحه آپلود اسکریپت بروید.
ساخت یک شیء قوانین
الگوریتمهای پیشنهاد قیمت سفارشی مبتنی بر قوانین، از قوانینی برای ارزیابی ارزش یک سیگنال پاسخ استفاده میکنند.
یک شیء AlgorithmRules از یک یا چند مجموعه قانون تشکیل شده است. هر مجموعه قانون، نوع متفاوتی از سیگنال پاسخ، مانند یک برداشت، را ارزیابی میکند. هر مجموعه قانون، فهرستی از قوانین دارد. هر قانون، یک سیگنال را در برابر شرایط تعیینشده ارزیابی میکند و یک مقدار را برمیگرداند. یک سیگنال توسط تمام قوانین موجود در یک مجموعه ارزیابی میشود. سپس مقادیر برگردانده شده توسط هر قانون با هم ترکیب میشوند. این منجر به یک مقدار ارزیابی برای سیگنال میشود.
شیء AlgorithmRules خود را به صورت محلی به عنوان یک فایل JSON ذخیره کنید.
ایجاد یک شیء مرجع قوانین
یک شیء مرجع برای مرتبط کردن یک فایل آپلود شده با یک منبع قوانین استفاده میشود. با استفاده از یک درخواست uploadRules یک شیء مرجع تحت الگوریتم خود ایجاد کنید.
در اینجا نحوه تولید یک شیء مرجع قوانین آمده است:
جاوا
// 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());
پایتون
# 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"]}.' )
پی اچ پی
// 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 استفاده کنید.
نحوه آپلود فایل قوانین به شرح زیر است:
جاوا
// 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));
پایتون
# 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()
پی اچ پی
// 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 برای ایجاد یک شیء قوانین تحت الگوریتم خود استفاده کنید.
در اینجا نحوه ایجاد یک شیء قوانین آمده است:
جاوا
// 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());
پایتون
# 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"]}.' )
پی اچ پی
// 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']);