购买者人数

买方投放广告并支付广告展示位置的费用。在实时出价中 买方均由 buyers 资源。您可以使用 buyers 资源管理单个买方, 广告素材管理示例 。

以下代码演示了授权用户如何检索 单个买方 buyers.get

请求

GET https://realtimebidding.googleapis.com/v1/buyers/87654321?alt=json
Authorization: Bearer <INSERT_ACCESS_TOKEN_HERE>
Content-Type: application/json

响应

{
 
"bidder": "bidders/12345678",
 
"billingIds": [
   
"1352467980"
 
],
 
"displayName": "DevRel Test Account Child Seat",
 
"maximumActiveCreativeCount": "20000",
 
"name": "buyers/87654321"
}

/* Copyright 2021 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.RealTimeBidding.v1;
using Google.Apis.RealTimeBidding.v1.Data;
using Mono.Options;

using System;
using System.Collections.Generic;

namespace Google.Apis.RealTimeBidding.Examples.v1.Buyers
{
   
/// <summary>
   
/// Gets a single buyer for the specified buyer name.
   
///
   
/// The buyer specified must be associated with the authorized service account specified in
   
/// Utilities.cs.
   
/// </summary>
   
public class GetBuyers : ExampleBase
   
{
       
private RealTimeBiddingService rtbService;

       
/// <summary>
       
/// Constructor.
       
/// </summary>
       
public GetBuyers()
       
{
            rtbService
= Utilities.GetRealTimeBiddingService();
       
}

       
/// <summary>
       
/// Returns a description about the code example.
       
/// </summary>
       
public override string Description
       
{
           
get => "Get a buyer for the given account ID.";
       
}

       
/// <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;

           
OptionSet options = new OptionSet {
               
"Get a buyer for the given buyer account ID.",
               
{
                   
"h|help",
                   
"Show help message and exit.",
                    h
=> showHelp = h != null
               
},
               
{
                   
"a|account_id=",
                   
("[Required] The resource ID of the buyers resource that is being " +
                     
"retrieved. This will be used to construct the name used as a path " +
                     
"parameter for the buyers.get request."),
                    a
=> accountId = a
               
},
           
};

           
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;
           
// 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 name = $"buyers/{accountId}";

           
BuyersResource.GetRequest request = rtbService.Buyers.Get(name);
           
Buyer response = null;

           
Console.WriteLine("Getting buyer with name: {0}", name);

           
try
           
{
                response
= request.Execute();
           
}
           
catch (System.Exception exception)
           
{
               
throw new ApplicationException(
                    $
"Real-time Bidding API returned error response:\n{exception.Message}");
           
}

           
Utilities.PrintBuyer(response);
       
}
   
}
}

/*
 * Copyright 2021 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.realtimebidding.v1.buyers;

import com.google.api.services.realtimebidding.v1.RealTimeBidding;
import com.google.api.services.realtimebidding.v1.model.Buyer;
import com.google.api.services.samples.authorizedbuyers.realtimebidding.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 single buyer for the specified name.
 *
 * <p>The buyer specified must be associated with the authorized service account.
 */

public class GetBuyers {

 
public static void execute(RealTimeBidding client, Namespace parsedArgs) throws IOException {
   
Long accountId = parsedArgs.getLong("account_id");
   
String name = String.format("buyers/%s", accountId);

   
Buyer buyer = client.buyers().get(name).execute();

   
System.out.printf("Get buyer with ID '%d':\n", accountId);
   
Utils.printBuyer(buyer);
 
}

 
public static void main(String[] args) {
   
ArgumentParser parser =
       
ArgumentParsers.newFor("GetCreatives")
           
.build()
           
.defaultHelp(true)
           
.description(("Get a buyer for the given account ID."));
    parser
       
.addArgument("-a", "--account_id")
       
.help(
           
"The resource ID of the buyers resource that is being retrieved. This will be "
               
+ "used to construct the name used as a path parameter for the buyers.get request.")
       
.required(true)
       
.type(Long.class);

   
Namespace parsedArgs = null;
   
try {
      parsedArgs
= parser.parseArgs(args);
   
} catch (ArgumentParserException ex) {
      parser
.handleError(ex);
     
System.exit(1);
   
}

   
RealTimeBidding client = null;
   
try {
      client
= Utils.getRealTimeBiddingClient();
   
} catch (IOException ex) {
     
System.out.printf("Unable to create RealTimeBidding 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);
   
}

   
try {
      execute
(client, parsedArgs);
   
} catch (IOException ex) {
     
System.out.printf("RealTimeBidding API returned error response:\n%s", ex);
     
System.exit(1);
   
}
 
}
}

<?php

/**
 * Copyright 2021 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.
 */


namespace Google\Ads\AuthorizedBuyers\RealTimeBidding\Examples\V1\Buyers;

use Google\Ads\AuthorizedBuyers\RealTimeBidding\ExampleUtil\BaseExample;
use Google\Ads\AuthorizedBuyers\RealTimeBidding\ExampleUtil\Config;

/**
 * This example illustrates how to get a single buyer for the specified buyer name.
 *
 * The buyer specified must be associated with the authorized service account.
 */

class GetBuyers extends BaseExample
{

   
public function __construct($client)
   
{
        $this
->service = Config::getGoogleServiceRealTimeBidding($client);
   
}

   
/**
     * @see BaseExample::getInputParameters()
     */

   
protected function getInputParameters()
   
{
       
return [
           
[
               
'name' => 'account_id',
               
'display' => 'Account ID',
               
'required' => true,
               
'description' =>
                   
'The resource ID of the buyers resource that is being retrieved. This will ' .
                   
'be used to construct the name used as a path parameter for the buyers.get ' .
                   
'request.'
           
]
       
];
   
}

   
/**
     * @see BaseExample::run()
     */

   
public function run()
   
{
        $values
= $this->formValues;

        $name
= "buyers/$values[account_id]";

       
try {
            $buyer
= $this->service->buyers->get($name);
           
print '<h2>Found buyer.</h2>';
            $this
->printResult($buyer);
       
} catch (Google_Service_Exception $ex) {
           
if ($ex->getCode() === 404 || $ex->getCode() === 403) {
               
print '<h1>Buyer not found or can\'t access buyer account.</h1>';
           
} else {
               
throw $ex;
           
}
       
}
   
}

   
/**
     * @see BaseExample::getName()
     */

   
public function getName()
   
{
       
return 'Get Buyer';
   
}
}

#!/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 buyer for the specified buyer name.

The buyer specified must be associated with the authorized service account.
"""



import argparse
import os
import pprint
import sys

sys
.path.insert(0, os.path.abspath('../..'))

from googleapiclient.errors import HttpError

import util


_BUYERS_NAME_TEMPLATE
= 'buyers/%s'

DEFAULT_BUYER_RESOURCE_ID
= 'ENTER_BUYER_RESOURCE_ID_HERE'


def main(realtimebidding, account_id):
 
print(f'Get Buyer with ID "{account_id}":')
 
try:
   
# Construct and execute the request.
    response
= realtimebidding.buyers().get(
        name
=_BUYERS_NAME_TEMPLATE % account_id).execute()
 
except HttpError as e:
   
print(e)
    sys
.exit(1)

  pprint
.pprint(response)


if __name__ == '__main__':
 
try:
    service
= util.GetService(version='v1')
 
except IOError as ex:
   
print(f'Unable to create realtimebidding service - {ex}')
   
print('Did you specify the key file in util.py?')
    sys
.exit(1)

  parser
= argparse.ArgumentParser(
      description
=('Get a buyer for the given account ID.'))
 
# Required fields.
  parser
.add_argument(
     
'-a', '--account_id', default=DEFAULT_BUYER_RESOURCE_ID,
      help
=('The resource ID of the buyers resource that is being retrieved. '
           
'This will be used to construct the name used as a path parameter '
           
'for the buyers.get request.'))

  args
= parser.parse_args()

  main
(service, args.account_id)


#!/usr/bin/env ruby
# Encoding: utf-8
#
# Copyright:: Copyright 2021 Google LLC
#
# License:: 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 buyer for the specified buyer name.
#
# The buyer specified must be associated with the service account specified in util.rb.

require 'optparse'

require_relative
'../../util'


def get_buyers(realtimebidding, options)
  name
= "buyers/#{options[:account_id]}"

  puts
"Get buyer with name '#{name}'"

  buyer
= realtimebidding.get_buyer(name)
  print_buyer
(buyer)
end


if __FILE__ == $0
 
begin
   
# Retrieve the service used to make API requests.
    service
= get_service()
 
rescue ArgumentError => e
   
raise 'Unable to create service, with error message: #{e.message}'
 
rescue Signet::AuthorizationError => e
   
raise 'Unable to create service, was the KEY_FILE in util.rb set? Error message: #{e.message}'
 
end

 
# Set options and default values for fields used in this example.
  options
= [
   
Option.new(
     
'account_id',
     
'The resource ID of the buyers resource that is being retrieved. This will be used to '\
     
'construct the name used as a path parameter for the buyers.get request.',
      type
: Integer, short_alias: 'a', required: true, default_value: nil
   
),
 
]

 
# Parse options.
  parser
= Parser.new(options)
  opts
= parser.parse(ARGV)

 
begin
    get_buyers
(service, opts)
 
rescue Google::Apis::ServerError => e
   
raise "The following server error occured:\n#{e.message}"
 
rescue Google::Apis::ClientError => e
   
raise "Invalid client request:\n#{e.message}"
 
rescue Google::Apis::AuthorizationError => e
   
raise "Authorization error occured:\n#{e.message}"
 
end
end

以下代码演示了授权用户如何检索 所有与其 Google 或服务账号关联的买方 buyers.list

请求

GET https://realtimebidding.googleapis.com/v1/buyers?pageSize=50&alt=json
Authorization: Bearer <INSERT_ACCESS_TOKEN_HERE>
Content-Type: application/json

响应

{
 
"buyers": [
   
{
     
"bidder": "bidders/12345678",
     
"billingIds": [
       
"112233445566",
       
"110022993388",
       
"229900114488",
       
"993388221111"
     
],
     
"displayName": "DevRel Test Account",
     
"maximumActiveCreativeCount": "20000",
     
"name": "buyers/12345678"
   
},
   
{
     
"bidder": "bidders/12345678",
     
"billingIds": [
       
"1352467980"
     
],
     
"displayName": "DevRel Test Account Child Seat",
     
"maximumActiveCreativeCount": "20000",
     
"name": "buyers/87654321"
   
}
 
]
}

/* Copyright 2021 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.RealTimeBidding.v1;
using Google.Apis.RealTimeBidding.v1.Data;
using Mono.Options;

using System;
using System.Collections.Generic;

namespace Google.Apis.RealTimeBidding.Examples.v1.Buyers
{
   
/// <summary>
   
/// Lists buyers associated with the authorized service account.
   
/// </summary>
   
public class ListBuyers : ExampleBase
   
{
       
private RealTimeBiddingService rtbService;

       
/// <summary>
       
/// Constructor.
       
/// </summary>
       
public ListBuyers()
       
{
            rtbService
= Utilities.GetRealTimeBiddingService();
       
}

       
/// <summary>
       
/// Returns a description about the code example.
       
/// </summary>
       
public override string Description
       
{
           
get => "This code example lists all buyers associated with the service account " +
                   
"specified for the OAuth 2.0 flow in Utilities.cs.";
       
}

       
/// <summary>
       
/// Parse specified arguments.
       
/// </summary>
       
protected override Dictionary<string, object> ParseArguments(List<string> exampleArgs) {
           
string[] requiredOptions = new string[] {};
           
bool showHelp = false;
           
int? pageSize = null;

           
OptionSet options = new OptionSet {
               
"List buyers associated with the authorized service account.",
               
{
                   
"h|help",
                   
"Show help message and exit.",
                    h
=> showHelp = h != null
               
},
               
{
                   
"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
["page_size"] = 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 pageToken = null;

           
Console.WriteLine("Listing buyers for the authorized service account:");
           
do
           
{
               
BuyersResource.ListRequest request = rtbService.Buyers.List();
                request
.PageSize = (int) parsedArgs["page_size"];
                request
.PageToken = pageToken;

               
ListBuyersResponse page = null;

               
try
               
{
                    page
= request.Execute();
               
}
               
catch (System.Exception exception)
               
{
                   
throw new ApplicationException(
                        $
"Real-time Bidding API returned error response:\n{exception.Message}");
               
}

               
var buyers = page.Buyers;
                pageToken
= page.NextPageToken;

               
if(buyers == null)
               
{
                   
Console.WriteLine("No buyers found.");
               
}
               
else
               
{
                   
foreach (Buyer buyer in buyers)
                       
{
                           
Utilities.PrintBuyer(buyer);
                       
}
               
}
           
}
           
while(pageToken != null);
       
}
   
}
}

/*
 * Copyright 2021 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.realtimebidding.v1.buyers;

import com.google.api.services.realtimebidding.v1.RealTimeBidding;
import com.google.api.services.realtimebidding.v1.model.Buyer;
import com.google.api.services.realtimebidding.v1.model.ListBuyersResponse;
import com.google.api.services.samples.authorizedbuyers.realtimebidding.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 buyers associated with the authorized service account. */
public class ListBuyers {

 
public static void execute(RealTimeBidding client, Namespace parsedArgs) throws IOException {
   
Integer pageSize = parsedArgs.getInt("page_size");
   
String pageToken = null;

   
System.out.println("Listing buyers associated with OAuth 2.0 credentials.");

   
do {
     
List<Buyer> buyers = null;

     
ListBuyersResponse response =
          client
.buyers().list().setPageSize(pageSize).setPageToken(pageToken).execute();

      buyers
= response.getBuyers();
      pageToken
= response.getNextPageToken();

     
if (buyers == null) {
       
System.out.println("No buyers found.");
     
} else {
       
for (Buyer buyer : buyers) {
         
Utils.printBuyer(buyer);
       
}
     
}
   
} while (pageToken != null);
 
}

 
public static void main(String[] args) {
   
ArgumentParser parser =
       
ArgumentParsers.newFor("ListCreatives")
           
.build()
           
.defaultHelp(true)
           
.description(
               
("Lists buyers associated with the service account specified for the OAuth "
                   
+ "2.0 flow in Utils.java."));
    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);
   
}

   
RealTimeBidding client = null;
   
try {
      client
= Utils.getRealTimeBiddingClient();
   
} catch (IOException ex) {
     
System.out.printf("Unable to create RealTimeBidding 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);
   
}

   
try {
      execute
(client, parsedArgs);
   
} catch (IOException ex) {
     
System.out.printf("RealTimeBidding API returned error response:\n%s", ex);
     
System.exit(1);
   
}
 
}
}

<?php

/**
 * Copyright 2021 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.
 */


namespace Google\Ads\AuthorizedBuyers\RealTimeBidding\Examples\V1\Buyers;

use Google\Ads\AuthorizedBuyers\RealTimeBidding\ExampleUtil\BaseExample;
use Google\Ads\AuthorizedBuyers\RealTimeBidding\ExampleUtil\Config;

/**
 * This example illustrates how to list buyers associated with the authorized service account.
 */

class ListBuyers extends BaseExample
{

   
public function __construct($client)
   
{
        $this
->service = Config::getGoogleServiceRealTimeBidding($client);
   
}

   
/**
     * @see BaseExample::getInputParameters()
     */

   
protected function getInputParameters()
   
{
       
return [
           
[
               
'name' => 'page_size',
               
'display' => 'Page size',
               
'required' => false,
               
'description' =>
                   
'The number of rows to return per page. The server may return fewer rows ' .
                   
'than specified.',
               
'default' => 10
           
]
       
];
   
}

   
/**
     * @see BaseExample::run()
     */

   
public function run()
   
{
        $values
= $this->formValues;

        $queryParams
= [
           
'pageSize' => $values['page_size']
       
];

        $result
= $this->service->buyers->listBuyers($queryParams);

       
print "<h2>Listing buyers associated with OAuth 2.0 credentials:</h2>";
       
if (empty($result['buyers'])) {
           
print '<p>No Buyers found</p>';
       
} else {
           
foreach ($result['buyers'] as $buyer) {
                $this
->printResult($buyer);
           
}
       
}
   
}

   
/**
     * @see BaseExample::getName()
     */

   
public function getName()
   
{
       
return 'List Buyers';
   
}
}

#!/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 buyers associated with the authorized service account."""


import argparse
import os
import pprint
import sys

sys
.path.insert(0, os.path.abspath('../..'))

from googleapiclient.errors import HttpError

import util


def main(realtimebidding, args):
  page_size
= args.page_size

  page_token
= None
  more_pages
= True

 
print(f'Listing buyers associated with OAuth 2.0 credentials.')
 
while more_pages:
   
try:
     
# Construct and execute the request.
      response
= realtimebidding.buyers().list(
          pageToken
=page_token, 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.GetService(version='v1')
 
except IOError as ex:
   
print(f'Unable to create realtimebidding service - {ex}')
   
print('Did you specify the key file in util.py?')
    sys
.exit(1)

  parser
= argparse.ArgumentParser(
      description
=('Lists buyers associated with the service account '
                   
'specified for the OAuth 2.0 flow in util.py.'))

 
# Optional fields.
  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.'))

  args
= parser.parse_args()

  main
(service, args)


#!/usr/bin/env ruby
# Encoding: utf-8
#
# Copyright:: Copyright 2021 Google LLC
#
# License:: 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 buyers associated with the service account specified in util.rb.

require 'optparse'

require_relative
'../../util'


def list_buyers(realtimebidding, options)
  page_size
= options[:page_size]

  page_token
= nil

  puts
"Listing buyers associated with OAuth 2.0 credentials."
 
begin
    response
= realtimebidding.list_buyers(
        page_size
: page_size, page_token: page_token
   
)

    page_token
= response.next_page_token

   
unless response.buyers.nil?
      response
.buyers.each do |buyer|
        print_buyer
(buyer)
     
end
   
else
      puts
'No buyers found.'
   
end
 
end until page_token == nil
end


if __FILE__ == $0
 
begin
   
# Retrieve the service used to make API requests.
    service
= get_service()
 
rescue ArgumentError => e
   
raise 'Unable to create service, with error message: #{e.message}'
 
rescue Signet::AuthorizationError => e
   
raise 'Unable to create service, was the KEY_FILE in util.rb set? Error message: #{e.message}'
 
end

 
# Set options and default values for fields used in this example.
  options
= [
   
Option.new(
     
'page_size', 'The number of rows to return per page. The server may return fewer rows than specified.',
      type
: Array, short_alias: 'u', required: false, default_value: MAX_PAGE_SIZE
   
),
 
]

 
# Parse options.
  parser
= Parser.new(options)
  opts
= parser.parse(ARGV)

 
begin
    list_buyers
(service, opts)
 
rescue Google::Apis::ServerError => e
   
raise "The following server error occured:\n#{e.message}"
 
rescue Google::Apis::ClientError => e
   
raise "Invalid client request:\n#{e.message}"
 
rescue Google::Apis::AuthorizationError => e
   
raise "Authorization error occured:\n#{e.message}"
 
end
end