Вы можете использовать следующие методы для просмотра завершенных сделок для вашего аккаунта и любого из ваших клиентов .
Посмотреть отдельную сделку
Вы можете использовать метод buyers.finalizedDeals.get
для получения конкретной FinalizedDeal
связанной с вашей учетной записью или одним из ваших клиентов.
В следующем примере показано, как можно получить отдельный FinalizedDeal
с помощью метода get
.
Запрос
GET https://authorizedbuyersmarketplace.googleapis.com/v1/buyers/12345678/finalizedDeals/1840860?alt=json Authorization: BearerACCESS_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-26T05: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
*
* http://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.
*/
using Google.Apis.AuthorizedBuyersMarketplace.v1;
using Google.Apis.AuthorizedBuyersMarketplace.v1.Data;
using Mono.Options;
using System;
using System.Collections.Generic;
namespace Google.Apis.AuthorizedBuyersMarketplace.Examples.v1.Buyers.FinalizedDeals
{
/// <summary>
/// Gets a single finalized deal for the given buyer and deal IDs.
///
/// Note that deal IDs for finalized deals are identical to those of
/// non-finalized deals–when a deal becomes finalized, its deal ID will not
/// change.
/// </summary>
public class GetFinalizedDeals : ExampleBase
{
private AuthorizedBuyersMarketplaceService mkService;
/// <summary>
/// Constructor.
/// </summary>
public GetFinalizedDeals()
{
mkService = Utilities.GetAuthorizedBuyersMarketplaceService();
}
/// <summary>
/// Returns a description about the code example.
/// </summary>
public override string Description
{
get => "This code example gets a finalized deal for given buyer and deal IDs.";
}
/// <summary>
/// Parse specified arguments.
/// </summary>
protected override Dictionary<string, object> ParseArguments(List<string> exampleArgs) {
string[] requiredOptions = new string[] {"account_id", "deal_id"};
bool showHelp = false;
string accountId = null;
string dealId = null;
OptionSet options = new OptionSet {
"Get a finalized deal for the given buyer and deal IDs.",
{
"h|help",
"Show help message and exit.",
h => showHelp = h != null
},
{
"a|account_id=",
("[Required] The resource ID of the buyers resource under which the auction " +
"package is being retrieved. This will be used to construct the name used " +
"as a path parameter for the auctionPackages.get request."),
a => accountId = a
},
{
"d|deal_id=",
("[Required] The resource ID of the buyers.finalizedDeals resource that " +
"is being retrieved. This will be used to construct the name used as a " +
"path parameter for the finalizedDeals.get request."),
d => dealId = d
},
};
List<string> extras = options.Parse(exampleArgs);
var parsedArgs = new Dictionary<string, object>();
// Show help message.
if (showHelp == true)
{
options.WriteOptionDescriptions(Console.Out);
Environment.Exit(0);
}
// Set optional arguments.
parsedArgs["account_id"] = accountId;
parsedArgs["deal_id"] = dealId;
// Validate that options were set correctly.
Utilities.ValidateOptions(options, parsedArgs, requiredOptions, extras);
return parsedArgs;
}
/// <summary>
/// Run the example.
/// </summary>
/// <param name="parsedArgs">Parsed arguments for the example.</param>
protected override void Run(Dictionary<string, object> parsedArgs)
{
string accountId = (string) parsedArgs["account_id"];
string dealId = (string) parsedArgs["deal_id"];
string name = $"buyers/{accountId}/finalizedDeals/{dealId}";
BuyersResource.FinalizedDealsResource.GetRequest request =
mkService.Buyers.FinalizedDeals.Get(name);
FinalizedDeal response = null;
Console.WriteLine("Getting finalized deal with name: {0}", name);
try
{
response = request.Execute();
}
catch (Exception exception)
{
throw new ApplicationException(
$"Marketplace API returned error response:\n{exception.Message}");
}
Utilities.PrintFinalizedDeal(response);
}
}
}
/* * 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.FinalizedDeal; import com.google.api.services.samples.authorizedbuyers.marketplace.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 get a finalized deal for the given buyer and deal IDs. * * <p>Note that deal IDs for finalized deals are identical to those of non-finalized deals–when a * deal becomes finalized, its deal ID will not change. */ public class GetFinalizedDeals { public static void execute(AuthorizedBuyersMarketplace marketplaceClient, Namespace parsedArgs) { Long accountId = parsedArgs.getLong("account_id"); Long dealId = parsedArgs.getLong("deal_id"); String name = String.format("buyers/%d/finalizedDeals/%d", accountId, dealId); FinalizedDeal finalizedDeal = null; try { finalizedDeal = marketplaceClient.buyers().finalizedDeals().get(name).execute(); } catch (IOException ex) { System.out.printf("Marketplace API returned error response:%n%s", ex); System.exit(1); } System.out.printf( "Found finalized deal with ID \"%d\" for buyer account ID \"%d\":%n", dealId, accountId); Utils.printFinalizedDeal(finalizedDeal); } public static void main(String[] args) { ArgumentParser parser = ArgumentParsers.newFor("GetFinalizedDeals") .build() .defaultHelp(true) .description(("Get a finalized deal for the given buyer account ID and deal ID.")); parser .addArgument("-a", "--account_id") .help( "The resource ID of the buyers resource under which the finalized deal exists. " + "This will be used to construct the parent used as a path parameter for the " + "finalizedDeals.get request.") .required(true) .type(Long.class); parser .addArgument("-d", "--deal_id") .help( "The resource ID of the buyers.finalizedDeals resource that is being retrieved. " + "This will be used to construct the name used as a path parameter for the " + "finalizedDeals.get 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); } }
#!/usr/bin/python # # Copyright 2021 Google Inc. All Rights Reserved. # # 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 # # http://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. """Gets a single finalized deal for the given account and deal IDs.""" import argparse import os import pprint import sys sys.path.insert(0, os.path.abspath('../../..')) from googleapiclient.errors import HttpError import util _FINALIZED_DEALS_NAME_TEMPLATE = 'buyers/%s/finalizedDeals/%s' DEFAULT_BUYER_RESOURCE_ID = 'ENTER_BUYER_RESOURCE_ID_HERE' DEFAULT_FINALIZED_DEAL_RESOURCE_ID = 'ENTER_DEAL_RESOURCE_ID_HERE' def main(marketplace, args): finalized_deal_name = _FINALIZED_DEALS_NAME_TEMPLATE % ( args.account_id, args.deal_id) print(f'Get finalized deal with name "{finalized_deal_name}":') try: # Construct and execute the request. response = marketplace.buyers().finalizedDeals().get( name=finalized_deal_name).execute() except HttpError as e: print(e) sys.exit(1) pprint.pprint(response) if __name__ == '__main__': try: service = util.get_service(version='v1') except IOError as ex: print(f'Unable to create marketplace service - {ex}') print('Did you specify the key file in util.py?') sys.exit(1) parser = argparse.ArgumentParser( description=('Get a finalized deal for the given buyer account ID and ' 'deal ID.')) # Required fields. parser.add_argument( '-a', '--account_id', default=DEFAULT_BUYER_RESOURCE_ID, help=('The resource ID of the buyers resource for which the finalized ' 'deal is being accessed. This will be used to construct the ' 'name used as a path parameter for the finalizedDeals.get ' 'request.')) parser.add_argument( '-d', '--deal_id', default=DEFAULT_FINALIZED_DEAL_RESOURCE_ID, help=('The resource ID of the buyers.finalizedDeals resource that is ' 'being accessed. Note that this will be identical to the ' 'resource ID of the corresponding buyers.proposals.deals ' 'resource. This will be used to construct the name used as a ' 'path parameter for the finalizedDeals.get request.')) main(service, parser.parse_args())
Перечислите сделки в качестве участника торгов
Вы можете использовать метод bidders.finalizedDeals.list
для просмотра всех завершенных сделок, которые были заключены любым покупателем или клиентом, связанным с вашей учетной записью участника торгов.
Вы можете использовать этот метод для широкого поиска по нескольким учетным записям.
В следующем примере показано, как составить список завершенных сделок с помощью метода list
.
Запрос
GET https://authorizedbuyersmarketplace.googleapis.com/v1/bidders/12345678/finalizedDeals?filter=deal.dealType+%3D+PROGRAMMATIC_GUARANTEED&orderBy=deal.flightStartTime+desc&pageSize=3&alt=json Authorization: BearerACCESS_TOKEN Content-Type: application/json
Ответ
{ "finalizedDeals": [ { "name": "buyers/12345678/finalizedDeals/2809704", "deal": { "name": "buyers/12345678/proposals/MP24462282/deals/2809704", "createTime": "2031-05-10T21:12:10.586Z", "updateTime": "2031-08-18T16:23:35.087Z", "displayName": "test-pg-deal-1", "buyer": "buyers/12345678", "publisherProfile": "buyers/12345678/publisherProfiles/PP62461", "flightStartTime": "2031-12-14T16:00:00Z", "flightEndTime": "2031-03-07T15:59:00Z", "targeting": { "inventorySizeTargeting": { "targetedInventorySizes": [ { "width": "1", "height": "1", "type": "NATIVE" } ] } }, "creativeRequirements": { "creativePreApprovalPolicy": "SELLER_PRE_APPROVAL_NOT_REQUIRED", "creativeSafeFrameCompatibility": "COMPATIBLE", "programmaticCreativeSource": "ADVERTISER", "creativeFormat": "DISPLAY" }, "deliveryControl": { "deliveryRateType": "FRONT_LOADED" }, "billedBuyer": "buyers/12345678", "dealType": "PROGRAMMATIC_GUARANTEED", "programmaticGuaranteedTerms": { "guaranteedLooks": "1000", "fixedPrice": { "type": "CPM", "amount": { "currencyCode": "CNY", "units": "20" } }, "reservationType": "STANDARD" }, "sellerTimeZone": { "id": "Asia/Shanghai" } }, "dealServingStatus": "PAUSED_BY_SELLER", "dealPausingInfo": { "pausingConsented": true, "pauseRole": "SELLER" }, "rtbMetrics": {} }, { "name": "buyers/12345678/finalizedDeals/1537354", "deal": { "name": "buyers/39382167/proposals/MP14640061/deals/1537354", "createTime": "2031-06-11T15:03:25.412Z", "updateTime": "2031-06-11T15:18:34.209Z", "displayName": "test-pg-deal-2", "buyer": "buyers/39382167", "publisherProfile": "buyers/39382167/publisherProfiles/PP382992", "flightStartTime": "2032-12-13T16:00:00Z", "flightEndTime": "2034-03-06T15:59:00Z", "targeting": { "inventorySizeTargeting": { "targetedInventorySizes": [ { "width": "1", "height": "1", "type": "NATIVE" } ] } }, "creativeRequirements": { "creativePreApprovalPolicy": "SELLER_PRE_APPROVAL_NOT_REQUIRED", "creativeSafeFrameCompatibility": "COMPATIBLE", "programmaticCreativeSource": "ADVERTISER", "creativeFormat": "DISPLAY" }, "deliveryControl": { "deliveryRateType": "FRONT_LOADED" }, "billedBuyer": "buyers/39382167", "dealType": "PROGRAMMATIC_GUARANTEED", "programmaticGuaranteedTerms": { "guaranteedLooks": "1000", "fixedPrice": { "type": "CPM", "amount": { "currencyCode": "CNY", "units": "20" } }, "reservationType": "STANDARD" }, "sellerTimeZone": { "id": "Asia/Shanghai" } }, "dealServingStatus": "ACTIVE", "dealPausingInfo": { "pausingConsented": true }, "rtbMetrics": {}, "readyToServe": true }, { "name": "buyers/6524914/finalizedDeals/3126325", "deal": { "name": "buyers/6524914/proposals/MP17820211/deals/1518325", "createTime": "2031-05-11T15:16:49.903Z", "updateTime": "2031-05-11T15:21:34.162Z", "displayName": "test-pg-deal-3", "client": "buyers/6524914/clients/19823764", "publisherProfile": "buyers/6524914/publisherProfiles/2109413", "flightStartTime": "2032-04-11T16:00:00Z", "flightEndTime": "2032-10-13T15:59:00Z", "targeting": { "inventorySizeTargeting": { "targetedInventorySizes": [ { "width": "1", "height": "1", "type": "NATIVE" } ] } }, "creativeRequirements": { "creativePreApprovalPolicy": "SELLER_PRE_APPROVAL_NOT_REQUIRED", "creativeSafeFrameCompatibility": "COMPATIBLE", "programmaticCreativeSource": "ADVERTISER", "creativeFormat": "DISPLAY" }, "deliveryControl": { "deliveryRateType": "FRONT_LOADED" }, "billedBuyer": "buyers/6524914", "dealType": "PROGRAMMATIC_GUARANTEED", "programmaticGuaranteedTerms": { "guaranteedLooks": "1000", "fixedPrice": { "type": "CPM", "amount": { "currencyCode": "CNY", "units": "18" } }, "reservationType": "STANDARD" }, "sellerTimeZone": { "id": "Asia/Shanghai" } }, "dealServingStatus": "ACTIVE", "dealPausingInfo": {}, "rtbMetrics": {}, "readyToServe": true } ], "nextPageToken": "CAMQy_DV1qLx9gIYy_DV1qLx9gI=" }
/* 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
*
* http://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.
*/
using Google.Apis.AuthorizedBuyersMarketplace.v1;
using Google.Apis.AuthorizedBuyersMarketplace.v1.Data;
using Mono.Options;
using System;
using System.Collections.Generic;
namespace Google.Apis.AuthorizedBuyersMarketplace.Examples.v1.Bidders.FinalizedDeals
{
/// <summary>
/// Lists finalized deals for the given bidder, their buyers, and clients.
/// </summary>
public class ListFinalizedDeals : ExampleBase
{
private AuthorizedBuyersMarketplaceService mkService;
/// <summary>
/// Constructor.
/// </summary>
public ListFinalizedDeals()
{
mkService = Utilities.GetAuthorizedBuyersMarketplaceService();
}
/// <summary>
/// Returns a description about the code example.
/// </summary>
public override string Description
{
get => "This code example lists finalized deals for a given bidder, their buyers, " +
"and clients.";
}
/// <summary>
/// Parse specified arguments.
/// </summary>
protected override Dictionary<string, object> ParseArguments(List<string> exampleArgs) {
string[] requiredOptions = new string[] {"account_id"};
bool showHelp = false;
string accountId = null;
string filter = null;
string orderBy = null;
int? pageSize = null;
string defaultFilter = "deal.dealType = PROGRAMMATIC_GUARANTEED";
string defaultOrderBy = "deal.flightStartTime desc";
OptionSet options = new OptionSet {
"List finalized deals for the given bidder, their buyers, and clients.",
{
"h|help",
"Show help message and exit.",
h => showHelp = h != null
},
{
"a|account_id=",
("[Required] The resource ID of the bidders resource under which the " +
"finalized deals are being retrieved. This will be used to construct the " +
"parent used as a path parameter for the finalizedDeals.list request."),
a => accountId = a
},
{
"f|filter=",
("Query string to filter finalized deals. By default, this example will " +
"fitler by deal type to retrieve programmatic guaranteed deals to " +
"demonstrate usage."),
f => filter = f
},
{
"o|order_by=",
("Query string used to sort the response of the list method. By default, " +
"this example will return deals in descending order of their flight start " +
"time to demonstrate usage. To learn more about the syntax for this " +
"parameter, see: " +
"https://cloud.google.com/apis/design/design_patterns#sorting_order"),
o => orderBy = o
},
{
"p|page_size=",
("The number of rows to return per page. The server may return fewer rows " +
"than specified."),
(int p) => pageSize = p
},
};
List<string> extras = options.Parse(exampleArgs);
var parsedArgs = new Dictionary<string, object>();
// Show help message.
if (showHelp == true)
{
options.WriteOptionDescriptions(Console.Out);
Environment.Exit(0);
}
// Set arguments.
parsedArgs["account_id"] = accountId;
parsedArgs["filter"] = filter ?? defaultFilter;
parsedArgs["order_by"] = orderBy ?? defaultOrderBy;
parsedArgs["pageSize"] = pageSize ?? Utilities.MAX_PAGE_SIZE;
// Validate that options were set correctly.
Utilities.ValidateOptions(options, parsedArgs, requiredOptions, extras);
return parsedArgs;
}
/// <summary>
/// Run the example.
/// </summary>
/// <param name="parsedArgs">Parsed arguments for the example.</param>
protected override void Run(Dictionary<string, object> parsedArgs)
{
string accountId = (string) parsedArgs["account_id"];
string parent = $"bidders/{accountId}";
string pageToken = null;
Console.WriteLine(@"Listing finalized deals for bidder account ""{0}""", parent);
do
{
BiddersResource.FinalizedDealsResource.ListRequest request =
mkService.Bidders.FinalizedDeals.List(parent);
request.Filter = (string) parsedArgs["filter"];
request.OrderBy = (string) parsedArgs["order_by"];
request.PageSize = (int) parsedArgs["pageSize"];
request.PageToken = pageToken;
ListFinalizedDealsResponse page = null;
try
{
page = request.Execute();
}
catch (Exception exception)
{
throw new ApplicationException(
$"Marketplace API returned error response:\n{exception.Message}");
}
var finalizedDeals = page.FinalizedDeals;
pageToken = page.NextPageToken;
if (finalizedDeals == null)
{
Console.WriteLine("No finalized deals found for bidder account.");
}
else
{
foreach (FinalizedDeal finalizedDeal in finalizedDeals)
{
Utilities.PrintFinalizedDeal(finalizedDeal);
}
}
}
while(pageToken != null);
}
}
}
/* * 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.bidders.finalizedDeals; import com.google.api.services.authorizedbuyersmarketplace.v1.AuthorizedBuyersMarketplace; import com.google.api.services.authorizedbuyersmarketplace.v1.model.FinalizedDeal; import com.google.api.services.authorizedbuyersmarketplace.v1.model.ListFinalizedDealsResponse; import com.google.api.services.samples.authorizedbuyers.marketplace.Utils; import java.io.IOException; import java.security.GeneralSecurityException; import java.util.List; 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 list finalized deals for a given bidder, their buyers, and * clients. */ public class ListFinalizedDeals { public static void execute(AuthorizedBuyersMarketplace marketplaceClient, Namespace parsedArgs) { Long accountId = parsedArgs.getLong("account_id"); Integer pageSize = parsedArgs.getInt("page_size"); String parentBidderName = String.format("bidders/%d", accountId); String pageToken = null; System.out.printf("Found finalized deals for bidder account ID '%d':%n", accountId); do { List<FinalizedDeal> finalizedDeals = null; try { ListFinalizedDealsResponse response = marketplaceClient .bidders() .finalizedDeals() .list(parentBidderName) .setFilter(parsedArgs.getString("filter")) .setOrderBy(parsedArgs.getString("order_by")) .setPageSize(pageSize) .setPageToken(pageToken) .execute(); finalizedDeals = response.getFinalizedDeals(); pageToken = response.getNextPageToken(); } catch (IOException ex) { System.out.printf("Marketplace API returned error response:%n%s", ex); System.exit(1); } if (finalizedDeals == null) { System.out.println("No finalized deals found."); } else { for (FinalizedDeal finalizedDeal : finalizedDeals) { Utils.printFinalizedDeal(finalizedDeal); } } } while (pageToken != null); } public static void main(String[] args) { ArgumentParser parser = ArgumentParsers.newFor("ListFinalizedDeals") .build() .defaultHelp(true) .description(("Lists finalized deals associated with the given bidder account.")); parser .addArgument("-a", "--account_id") .help( "The resource ID of the bidders resource under which the finalized deals are being" + " retrieved. This will be used to construct the parent used as a path parameter" + " for the finalizedDeals.list request.") .required(true) .type(Long.class); parser .addArgument("-f", "--filter") .help( "Query string to filter finalized deals. By default, this example will filter by " + "deal type to retrieve programmatic guaranteed deals to demonstrate usage.") .setDefault("deal.dealType = PROGRAMMATIC_GUARANTEED"); parser .addArgument("-o", "--order_by") .help( "Query string used to sort the response of the list method. By default, this " + "example will return deals in descending order of their flight start time to " + "demonstrate usage. To learn more about the syntax for this parameter, see: " + "https://cloud.google.com/apis/design/design_patterns#sorting_order") .setDefault("deal.flightStartTime desc"); parser .addArgument("-p", "--page_size") .help( "The number of rows to return per page. The server may return fewer rows than " + "specified.") .setDefault(Utils.getMaximumPageSize()) .type(Integer.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); } }
#!/usr/bin/python # # Copyright 2021 Google Inc. All Rights Reserved. # # 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 # # http://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. """Lists finalized deals for the given bidder, their buyers, and clients.""" import argparse import os import pprint import sys sys.path.insert(0, os.path.abspath('../../..')) from googleapiclient.errors import HttpError import util _BIDDER_NAME_TEMPLATE = 'bidders/%s' DEFAULT_BIDDER_RESOURCE_ID = 'ENTER_BIDDER_RESOURCE_ID_HERE' def main(marketplace, args): account_id = args.account_id list_filter = args.filter order_by = args.order_by page_size = args.page_size page_token = None more_pages = True print(f'Listing finalized deals for bidder account: "{account_id}".') while more_pages: try: # Construct and execute the request. response = marketplace.bidders().finalizedDeals().list( parent=_BIDDER_NAME_TEMPLATE % account_id, pageToken=page_token, filter=list_filter, orderBy=order_by, pageSize=page_size).execute() except HttpError as e: print(e) sys.exit(1) pprint.pprint(response) page_token = response.get('nextPageToken') more_pages = bool(page_token) if __name__ == '__main__': try: service = util.get_service(version='v1') except IOError as ex: print(f'Unable to create marketplace service - {ex}') print('Did you specify the key file in util.py?') sys.exit(1) parser = argparse.ArgumentParser( description=('Lists finalized deals for the given bidder account, its ' 'buyers, and clients.')) # Required fields. parser.add_argument( '-a', '--account_id', default=DEFAULT_BIDDER_RESOURCE_ID, help=('The resource ID of the bidders resource for which the finalized ' 'deals are being retrieved. This will be used to construct the ' 'parent used as a path parameter for the finalizedDeals.list ' 'request.')) # Optional fields. parser.add_argument( '-f', '--filter', default='deal.dealType = PROGRAMMATIC_GUARANTEED', help=('Query string to filter clients. By default, this example will ' 'filter by deal type to retrieve programmatic guaranteed deals ' 'to demonstrate usage.')) parser.add_argument( '-o', '--order_by', default='deal.flightStartTime desc', help=('Query string used to sort the response of the list method. By ' 'default, this will return deals in descending order of their ' 'flight start time to demonstrate usage. To learn more about ' 'the syntax for this parameter, see: ' 'https://cloud.google.com/apis/design/design_patterns' '#sorting_order')) parser.add_argument( '-p', '--page_size', default=util.MAX_PAGE_SIZE, help=('The number of rows to return per page. The server may return ' 'fewer rows than specified.')) main(service, parser.parse_args())
Перечислите сделки в качестве покупателя
Вы можете использовать метод buyers.finalizedDeals.list
для просмотра всех завершенных сделок, связанных с вашей учетной записью или любым из ее клиентов.
В следующем примере показано, как составить список завершенных сделок с помощью метода list
.
Запрос
GET https://authorizedbuyersmarketplace.googleapis.com/v1/buyers/12345678/finalizedDeals?filter=deal.dealType+%3D+PROGRAMMATIC_GUARANTEED&orderBy=deal.flightStartTime+desc&pageSize=3&alt=json Authorization: BearerACCESS_TOKEN Content-Type: application/json
Ответ
{ "finalizedDeals": [ { "name": "buyers/12345678/finalizedDeals/2809704", "deal": { "name": "buyers/12345678/proposals/MP24462282/deals/2809704", "createTime": "2032-05-10T21:12:10.586Z", "updateTime": "2032-08-18T16:23:35.087Z", "displayName": "test-pg-deal-1", "buyer": "buyers/12345678", "publisherProfile": "buyers/12345678/publisherProfiles/PP62461", "flightStartTime": "2032-12-14T16:00:00Z", "flightEndTime": "2032-03-07T15:59:00Z", "targeting": { "inventorySizeTargeting": { "targetedInventorySizes": [ { "width": "1", "height": "1", "type": "NATIVE" } ] } }, "creativeRequirements": { "creativePreApprovalPolicy": "SELLER_PRE_APPROVAL_NOT_REQUIRED", "creativeSafeFrameCompatibility": "COMPATIBLE", "programmaticCreativeSource": "ADVERTISER", "creativeFormat": "DISPLAY" }, "deliveryControl": { "deliveryRateType": "FRONT_LOADED" }, "billedBuyer": "buyers/12345678", "dealType": "PROGRAMMATIC_GUARANTEED", "programmaticGuaranteedTerms": { "guaranteedLooks": "1000", "fixedPrice": { "type": "CPM", "amount": { "currencyCode": "CNY", "units": "20" } }, "reservationType": "STANDARD" }, "sellerTimeZone": { "id": "Asia/Shanghai" } }, "dealServingStatus": "PAUSED_BY_SELLER", "dealPausingInfo": { "pausingConsented": true, "pauseRole": "SELLER" }, "rtbMetrics": {} }, { "name": "buyers/12345678/finalizedDeals/3853354", "deal": { "name": "buyers/12345678/proposals/MP75020085/deals/3853354", "createTime": "2031-05-08T15:03:25.212Z", "updateTime": "2031-05-08T15:18:34.329Z", "displayName": "test-pg-deal-5", "buyer": "buyers/12345678", "publisherProfile": "buyers/12345678/publisherProfiles/PP54321", "flightStartTime": "2032-12-13T16:00:00Z", "flightEndTime": "2033-03-06T15:59:00Z", "targeting": { "inventorySizeTargeting": { "targetedInventorySizes": [ { "width": "1", "height": "1", "type": "NATIVE" } ] } }, "creativeRequirements": { "creativePreApprovalPolicy": "SELLER_PRE_APPROVAL_NOT_REQUIRED", "creativeSafeFrameCompatibility": "COMPATIBLE", "programmaticCreativeSource": "ADVERTISER", "creativeFormat": "DISPLAY" }, "deliveryControl": { "deliveryRateType": "FRONT_LOADED" }, "billedBuyer": "buyers/12345678", "dealType": "PROGRAMMATIC_GUARANTEED", "programmaticGuaranteedTerms": { "guaranteedLooks": "1000", "fixedPrice": { "type": "CPM", "amount": { "currencyCode": "CNY", "units": "20" } }, "reservationType": "STANDARD" }, "sellerTimeZone": { "id": "Asia/Shanghai" } }, "dealServingStatus": "ACTIVE", "dealPausingInfo": { "pausingConsented": true }, "rtbMetrics": {}, "readyToServe": true }, { "name": "buyers/12345678/finalizedDeals/1840860", "deal": { "name": "buyers/12345678/proposals/MP8642048/deals/1840860", "createTime": "2031-03-26T05:53:33.053Z", "updateTime": "2031-03-26T05: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 } ], "nextPageToken": "CAMQqbLfqKHx9gIYqbLfqKHx9gI=" }
/* 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
*
* http://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.
*/
using Google.Apis.AuthorizedBuyersMarketplace.v1;
using Google.Apis.AuthorizedBuyersMarketplace.v1.Data;
using Mono.Options;
using System;
using System.Collections.Generic;
namespace Google.Apis.AuthorizedBuyersMarketplace.Examples.v1.Buyers.FinalizedDeals
{
/// <summary>
/// Lists finalized deals for a given buyer and their clients.
/// </summary>
public class ListFinalizedDeals : ExampleBase
{
private AuthorizedBuyersMarketplaceService mkService;
/// <summary>
/// Constructor.
/// </summary>
public ListFinalizedDeals()
{
mkService = Utilities.GetAuthorizedBuyersMarketplaceService();
}
/// <summary>
/// Returns a description about the code example.
/// </summary>
public override string Description
{
get => "This code example lists finalized deals for a given buyer and their clients.";
}
/// <summary>
/// Parse specified arguments.
/// </summary>
protected override Dictionary<string, object> ParseArguments(List<string> exampleArgs) {
string[] requiredOptions = new string[] {"account_id"};
bool showHelp = false;
string accountId = null;
string filter = null;
string orderBy = null;
int? pageSize = null;
string defaultFilter = "deal.dealType = PROGRAMMATIC_GUARANTEED";
string defaultOrderBy = "deal.flightStartTime desc";
OptionSet options = new OptionSet {
"List finalized deals for the given buyer account and their clients.",
{
"h|help",
"Show help message and exit.",
h => showHelp = h != null
},
{
"a|account_id=",
("[Required] The resource ID of the buyers resource under which the " +
"finalized deals are being retrieved. This will be used to construct the " +
"parent used as a path parameter for the finalizedDeals.list request."),
a => accountId = a
},
{
"f|filter=",
("Query string to filter finalized deals. By default, this example will " +
"fitler by deal type to retrieve programmatic guaranteed deals to " +
"demonstrate usage."),
f => filter = f
},
{
"o|order_by=",
("Query string used to sort the response of the list method. By default, " +
"this example will return deals in descending order of their flight start " +
"time to demonstrate usage. To learn more about the syntax for this " +
"parameter, see: " +
"https://cloud.google.com/apis/design/design_patterns#sorting_order"),
o => orderBy = o
},
{
"p|page_size=",
("The number of rows to return per page. The server may return fewer rows " +
"than specified."),
(int p) => pageSize = p
},
};
List<string> extras = options.Parse(exampleArgs);
var parsedArgs = new Dictionary<string, object>();
// Show help message.
if (showHelp == true)
{
options.WriteOptionDescriptions(Console.Out);
Environment.Exit(0);
}
// Set arguments.
parsedArgs["account_id"] = accountId;
parsedArgs["filter"] = filter ?? defaultFilter;
parsedArgs["order_by"] = orderBy ?? defaultOrderBy;
parsedArgs["pageSize"] = pageSize ?? Utilities.MAX_PAGE_SIZE;
// Validate that options were set correctly.
Utilities.ValidateOptions(options, parsedArgs, requiredOptions, extras);
return parsedArgs;
}
/// <summary>
/// Run the example.
/// </summary>
/// <param name="parsedArgs">Parsed arguments for the example.</param>
protected override void Run(Dictionary<string, object> parsedArgs)
{
string accountId = (string) parsedArgs["account_id"];
string parent = $"buyers/{accountId}";
string pageToken = null;
Console.WriteLine(@"Listing finalized deals for buyer account ""{0}""", parent);
do
{
BuyersResource.FinalizedDealsResource.ListRequest request =
mkService.Buyers.FinalizedDeals.List(parent);
request.Filter = (string) parsedArgs["filter"];
request.OrderBy = (string) parsedArgs["order_by"];
request.PageSize = (int) parsedArgs["pageSize"];
request.PageToken = pageToken;
ListFinalizedDealsResponse page = null;
try
{
page = request.Execute();
}
catch (Exception exception)
{
throw new ApplicationException(
$"Marketplace API returned error response:\n{exception.Message}");
}
var finalizedDeals = page.FinalizedDeals;
pageToken = page.NextPageToken;
if (finalizedDeals == null)
{
Console.WriteLine("No finalized deals found for buyer account.");
}
else
{
foreach (FinalizedDeal finalizedDeal in finalizedDeals)
{
Utilities.PrintFinalizedDeal(finalizedDeal);
}
}
}
while(pageToken != null);
}
}
}
/* * 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.FinalizedDeal; import com.google.api.services.authorizedbuyersmarketplace.v1.model.ListFinalizedDealsResponse; import com.google.api.services.samples.authorizedbuyers.marketplace.Utils; import java.io.IOException; import java.security.GeneralSecurityException; import java.util.List; 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 list finalized deals for a given buyer and their clients. */ public class ListFinalizedDeals { public static void execute(AuthorizedBuyersMarketplace marketplaceClient, Namespace parsedArgs) { Long accountId = parsedArgs.getLong("account_id"); Integer pageSize = parsedArgs.getInt("page_size"); String parentBuyerName = String.format("buyers/%d", accountId); String pageToken = null; System.out.printf("Found finalized deals for buyer account ID '%d':%n", accountId); do { List<FinalizedDeal> finalizedDeals = null; try { ListFinalizedDealsResponse response = marketplaceClient .buyers() .finalizedDeals() .list(parentBuyerName) .setFilter(parsedArgs.getString("filter")) .setOrderBy(parsedArgs.getString("order_by")) .setPageSize(pageSize) .setPageToken(pageToken) .execute(); finalizedDeals = response.getFinalizedDeals(); pageToken = response.getNextPageToken(); } catch (IOException ex) { System.out.printf("Marketplace API returned error response:%n%s", ex); System.exit(1); } if (finalizedDeals == null) { System.out.println("No finalized deals found."); } else { for (FinalizedDeal finalizedDeal : finalizedDeals) { Utils.printFinalizedDeal(finalizedDeal); } } } while (pageToken != null); } public static void main(String[] args) { ArgumentParser parser = ArgumentParsers.newFor("ListFinalizedDeals") .build() .defaultHelp(true) .description(("Lists finalized deals associated with the given buyer account.")); parser .addArgument("-a", "--account_id") .help( "The resource ID of the buyers resource under which the finalized deals are being" + " retrieved. This will be used to construct the parent used as a path parameter" + " for the finalizedDeals.list request.") .required(true) .type(Long.class); parser .addArgument("-f", "--filter") .help( "Query string to filter finalized deals. By default, this example will filter by " + "deal type to retrieve programmatic guaranteed deals to demonstrate usage.") .setDefault("deal.dealType = PROGRAMMATIC_GUARANTEED"); parser .addArgument("-o", "--order_by") .help( "Query string used to sort the response of the list method. By default, this " + "example will return deals in descending order of their flight start time to " + "demonstrate usage. To learn more about the syntax for this parameter, see: " + "https://cloud.google.com/apis/design/design_patterns#sorting_order") .setDefault("deal.flightStartTime desc"); parser .addArgument("-p", "--page_size") .help( "The number of rows to return per page. The server may return fewer rows than " + "specified.") .setDefault(Utils.getMaximumPageSize()) .type(Integer.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); } }
#!/usr/bin/python # # Copyright 2021 Google Inc. All Rights Reserved. # # 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 # # http://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. """Lists finalized deals for the given buyers and their clients.""" import argparse import os import pprint import sys sys.path.insert(0, os.path.abspath('../../..')) from googleapiclient.errors import HttpError import util _BUYER_NAME_TEMPLATE = 'buyers/%s' DEFAULT_BUYER_RESOURCE_ID = 'ENTER_BUYER_RESOURCE_ID_HERE' def main(marketplace, args): account_id = args.account_id list_filter = args.filter order_by = args.order_by page_size = args.page_size page_token = None more_pages = True print(f'Listing finalized deals for buyer account: "{account_id}".') while more_pages: try: # Construct and execute the request. response = marketplace.buyers().finalizedDeals().list( parent=_BUYER_NAME_TEMPLATE % account_id, pageToken=page_token, filter=list_filter, orderBy=order_by, pageSize=page_size).execute() except HttpError as e: print(e) sys.exit(1) pprint.pprint(response) page_token = response.get('nextPageToken') more_pages = bool(page_token) if __name__ == '__main__': try: service = util.get_service(version='v1') except IOError as ex: print(f'Unable to create marketplace service - {ex}') print('Did you specify the key file in util.py?') sys.exit(1) parser = argparse.ArgumentParser( description=('Lists finalized deals for the given buyer account and ' 'its clients.')) # Required fields. parser.add_argument( '-a', '--account_id', default=DEFAULT_BUYER_RESOURCE_ID, help=('The resource ID of the buyers resource for which the finalized ' 'deals are being retrieved. This will be used to construct the ' 'parent used as a path parameter for the finalizedDeals.list ' 'request.')) # Optional fields. parser.add_argument( '-f', '--filter', default='deal.dealType = PROGRAMMATIC_GUARANTEED', help=('Query string to filter clients. By default, this example will ' 'filter by deal type to retrieve programmatic guaranteed deals ' 'to demonstrate usage.')) parser.add_argument( '-o', '--order_by', default='deal.flightStartTime desc', help=('Query string used to sort the response of the list method. By ' 'default, this will return deals in descending order of their ' 'flight start time to demonstrate usage. To learn more about ' 'the syntax for this parameter, see: ' 'https://cloud.google.com/apis/design/design_patterns' '#sorting_order')) parser.add_argument( '-p', '--page_size', default=util.MAX_PAGE_SIZE, help=('The number of rows to return per page. The server may return ' 'fewer rows than specified.')) main(service, parser.parse_args())