যদি আপনার টেকনিক্যাল অ্যাকাউন্ট ম্যানেজার আপনাকে ম্যানুয়ালি ডিল পরিবেশন করা শুরু করার অনুমতি দিয়ে থাকেন, তাহলে আমরা আপনাকে প্রোগ্রাম্যাটিক গ্যারান্টিড ডিলের সাথে যে ক্রিয়েটিভগুলো রাখতে চান, সেগুলো যোগ করার জন্য buyers.finalizedDeals.addCreative মেথডটি ব্যবহার করার পরামর্শ দিচ্ছি।
চূড়ান্ত চুক্তিতে যোগ করার জন্য যখন আপনি কোনো ক্রিয়েটিভ নির্দিষ্ট করবেন, তখন আপনাকে অবশ্যই রিয়েল-টাইম বিডিং এপিআই-এর buyers.creatives রিসোর্স থেকে ক্রিয়েটিভের নামটি ব্যবহার করতে হবে।
buyers.finalizedDeals.setReadyToServe কল করার আগে আপনার ক্রিয়েটিভ যোগ করা উচিত।
আপনি শুধুমাত্র প্রোগ্রাম্যাটিক গ্যারান্টিযুক্ত ডিলের জন্য addCreative ব্যবহার করতে পারবেন। অন্যান্য ডিল টাইপের জন্য addCreative একটি ত্রুটি দেখায়।
বিশ্রাম
অনুরোধ
POST https://authorizedbuyersmarketplace.googleapis.com/v1/buyers/12345678/finalizedDeals/1840860:addCreative?alt=json Authorization: Bearer ACCESS_TOKEN Content-Type: application/json
প্রতিক্রিয়া
{
"name": "buyers/12345678/finalizedDeals/1840860",
"deal": {
"name": "buyers/12345678/proposals/MP8642048/deals/1840860",
"createTime": "2031-03-26T05:53:33.053Z",
"updateTime": "2031-03-27T05:54:33.442Z",
"displayName": "test-pg-deal-4",
"buyer": "buyers/12345678",
"publisherProfile": "buyers/12345678/publisherProfiles/PP12345",
"flightStartTime": "2032-03-31T16:00:00Z",
"flightEndTime": "2032-03-31T18:59:00Z",
"targeting": {
"inventorySizeTargeting": {
"targetedInventorySizes": [
{
"width": "200",
"height": "200",
"type": "PIXEL"
},
{
"width": "234",
"height": "60",
"type": "PIXEL"
},
{
"width": "240",
"height": "400",
"type": "PIXEL"
},
{
"width": "300",
"height": "250",
"type": "PIXEL"
},
{
"width": "300",
"height": "600",
"type": "PIXEL"
},
{
"width": "300",
"height": "1050",
"type": "PIXEL"
}
]
}
},
"creativeRequirements": {
"creativePreApprovalPolicy": "SELLER_PRE_APPROVAL_NOT_REQUIRED",
"creativeSafeFrameCompatibility": "COMPATIBLE",
"programmaticCreativeSource": "ADVERTISER",
"creativeFormat": "DISPLAY"
},
"deliveryControl": {
"deliveryRateType": "EVENLY"
},
"billedBuyer": "buyers/12345678",
"dealType": "PROGRAMMATIC_GUARANTEED",
"programmaticGuaranteedTerms": {
"guaranteedLooks": "1",
"fixedPrice": {
"type": "CPM",
"amount": {
"currencyCode": "USD",
"nanos": 10000000
}
},
"reservationType": "STANDARD"
},
"sellerTimeZone": {
"id": "Asia/Shanghai"
}
},
"dealServingStatus": "ENDED",
"dealPausingInfo": {
"pausingConsented": true
},
"rtbMetrics": {},
"readyToServe": false
}জাভা
/* * Copyright 2022 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * https://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.google.api.services.samples.authorizedbuyers.marketplace.v1.buyers.finalizedDeals; import com.google.api.services.authorizedbuyersmarketplace.v1.AuthorizedBuyersMarketplace; import com.google.api.services.authorizedbuyersmarketplace.v1.model.AddCreativeRequest; import com.google.api.services.authorizedbuyersmarketplace.v1.model.FinalizedDeal; import com.google.api.services.samples.authorizedbuyers.marketplace.v1.Utils; import java.io.IOException; import java.security.GeneralSecurityException; import net.sourceforge.argparse4j.ArgumentParsers; import net.sourceforge.argparse4j.inf.ArgumentParser; import net.sourceforge.argparse4j.inf.ArgumentParserException; import net.sourceforge.argparse4j.inf.Namespace; /** * This sample illustrates how to add a creative to a given finalized deal that will be used in * bids. * * <p>It is recommended that those configuring programmatic guaranteed deals use this method to * associate at least one creative that is ready to be placed in bids with the deal before signaling * that the deal is ready to begin serving with finalizedDeals.setReadyToServe. * * <p>A buyer's creatives can be viewed with the Real-time Bidding API: * https://developers.google.com/authorized-buyers/apis/realtimebidding/reference/rest/v1/buyers.creatives */ public class AddCreativeToFinalizedDeals { public static void execute(AuthorizedBuyersMarketplace marketplaceClient, Namespace parsedArgs) { Long accountId = parsedArgs.getLong("account_id"); String creativeId = parsedArgs.getString("creative_id"); Long dealId = parsedArgs.getLong("deal_id"); String name = String.format("buyers/%d/finalizedDeals/%d", accountId, dealId); String creativeName = String.format("buyers/%d/creatives/%s", accountId, creativeId); AddCreativeRequest addCreativeRequest = new AddCreativeRequest(); addCreativeRequest.setCreative(creativeName); FinalizedDeal finalizedDeal = null; try { finalizedDeal = marketplaceClient .buyers() .finalizedDeals() .addCreative(name, addCreativeRequest) .execute(); } catch (IOException ex) { System.out.printf("Marketplace API returned error response:%n%s", ex); System.exit(1); } System.out.printf( "Adding creative with name \"%s\" to finalized deal with name \"%s\":%n", creativeName, name); Utils.printFinalizedDeal(finalizedDeal); } public static void main(String[] args) { ArgumentParser parser = ArgumentParsers.newFor("AddCreativeToFinalizedDeals") .build() .defaultHelp(true) .description(("Adds a creative to a given finalized deal that will be used in bids.")); parser .addArgument("-a", "--account_id") .help( "The resource ID of the buyers resource under which the finalized was created. This" + " will be used to construct the parent used as a path parameter for the" + " finalizedDeals.addCreative request, as well as the creative name included in" + " the request body.") .required(true) .type(Long.class); parser .addArgument("-c", "--creative_id") .help( "The resource ID of the buyers.creatives resource that the buyer is adding to a" + " finalized deal. This will be used to construct the creative name included in" + " the request body.") .required(true); parser .addArgument("-d", "--deal_id") .help( "The resource ID of the buyers.finalizedDeals resource that the creative is being " + "added to. This will be used to construct the name used as a path parameter " + "for the finalizedDeals.addCreative request.") .required(true) .type(Long.class); Namespace parsedArgs = null; try { parsedArgs = parser.parseArgs(args); } catch (ArgumentParserException ex) { parser.handleError(ex); System.exit(1); } AuthorizedBuyersMarketplace client = null; try { client = Utils.getMarketplaceClient(); } catch (IOException ex) { System.out.printf("Unable to create Marketplace API service:%n%s", ex); System.out.println("Did you specify a valid path to a service account key file?"); System.exit(1); } catch (GeneralSecurityException ex) { System.out.printf("Unable to establish secure HttpTransport:%n%s", ex); System.exit(1); } execute(client, parsedArgs); } }