查看单笔交易
您可以使用
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())