Получите моделирование ставок цены за клик для критерия группы объявлений
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Java
// Copyright 2020 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.ads.googleads.examples.planning ;
import com.beust.jcommander.Parameter ;
import com.google.ads.googleads.examples.utils.ArgumentNames ;
import com.google.ads.googleads.examples.utils.CodeSampleParams ;
import com.google.ads.googleads.lib.GoogleAdsClient ;
import com.google.ads.googleads.v23.common.CpcBidSimulationPoint ;
import com.google.ads.googleads.v23.errors.GoogleAdsError ;
import com.google.ads.googleads.v23.errors.GoogleAdsException ;
import com.google.ads.googleads.v23.resources.AdGroupCriterionSimulation ;
import com.google.ads.googleads.v23.services.GoogleAdsRow ;
import com.google.ads.googleads.v23.services.GoogleAdsServiceClient ;
import com.google.ads.googleads.v23.services.SearchGoogleAdsStreamRequest ;
import com.google.ads.googleads.v23.services.SearchGoogleAdsStreamResponse ;
import com.google.api.gax.rpc.ServerStream ;
import java.io.FileNotFoundException ;
import java.io.IOException ;
/**
* Gets all available ad group criterion CPC bid simulations for a given ad group. To get ad groups,
* run GetAdGroups.java.
*/
public class GetAdGroupCriterionCpcBidSimulations {
private static class GetAdGroupCriterionCpcBidSimulationsParams extends CodeSampleParams {
@Parameter ( names = ArgumentNames . CUSTOMER_ID , required = true )
private Long customerId ;
@Parameter ( names = ArgumentNames . AD_GROUP_ID , required = true )
private Long adGroupId ;
}
public static void main ( String [] args ) {
GetAdGroupCriterionCpcBidSimulationsParams params =
new GetAdGroupCriterionCpcBidSimulationsParams ();
if ( ! params . parseArguments ( args )) {
// Either pass the required parameters for this example on the command line, or insert them
// into the code here. See the parameter class definition above for descriptions.
params . customerId = Long . parseLong ( "INSERT_CUSTOMER_ID_HERE" );
params . adGroupId = Long . parseLong ( "INSERT_AD_GROUP_ID_HERE" );
}
GoogleAdsClient googleAdsClient = null ;
try {
googleAdsClient = GoogleAdsClient . newBuilder (). fromPropertiesFile (). build ();
} catch ( FileNotFoundException fnfe ) {
System . err . printf (
"Failed to load GoogleAdsClient configuration from file. Exception: %s%n" , fnfe );
System . exit ( 1 );
} catch ( IOException ioe ) {
System . err . printf ( "Failed to create GoogleAdsClient. Exception: %s%n" , ioe );
System . exit ( 1 );
}
try {
new GetAdGroupCriterionCpcBidSimulations ()
. runExample ( googleAdsClient , params . customerId , params . adGroupId );
} catch ( GoogleAdsException gae ) {
// GoogleAdsException is the base class for most exceptions thrown by an API request.
// Instances of this exception have a message and a GoogleAdsFailure that contains a
// collection of GoogleAdsErrors that indicate the underlying causes of the
// GoogleAdsException.
System . err . printf (
"Request ID %s failed due to GoogleAdsException. Underlying errors:%n" ,
gae . getRequestId ());
int i = 0 ;
for ( GoogleAdsError googleAdsError : gae . getGoogleAdsFailure (). getErrorsList ()) {
System . err . printf ( " Error %d: %s%n" , i ++ , googleAdsError );
}
System . exit ( 1 );
}
}
/**
* Runs the example.
*
* @param googleAdsClient the Google Ads API client.
* @param customerId the client customer ID.
* @param adGroupId the ad group ID to get the ad group criterion CPC bid simulations for.
* @throws GoogleAdsException if an API request failed with one or more service errors.
*/
private void runExample ( GoogleAdsClient googleAdsClient , long customerId , long adGroupId ) {
try ( GoogleAdsServiceClient googleAdsServiceClient =
googleAdsClient . getLatestVersion (). createGoogleAdsServiceClient ()) {
// Creates a query that retrieves the ad group criterion CPC bid simulations.
String query =
String . format (
"SELECT ad_group_criterion_simulation.ad_group_id, "
+ "ad_group_criterion_simulation.criterion_id, "
+ "ad_group_criterion_simulation.start_date, "
+ "ad_group_criterion_simulation.end_date, "
+ "ad_group_criterion_simulation.cpc_bid_point_list.points "
+ "FROM ad_group_criterion_simulation "
+ "WHERE ad_group_criterion_simulation.type = CPC_BID "
+ "AND ad_group_criterion_simulation.ad_group_id = %d" ,
adGroupId );
// Constructs the SearchGoogleAdsStreamRequest.
SearchGoogleAdsStreamRequest request =
SearchGoogleAdsStreamRequest . newBuilder ()
. setCustomerId ( Long . toString ( customerId ))
. setQuery ( query )
. build ();
// Issues the search stream request.
ServerStream<SearchGoogleAdsStreamResponse> stream =
googleAdsServiceClient . searchStreamCallable (). call ( request );
// Iterates over all rows in all messages and prints the requested field values for
// the ad group criterion CPC bid simulation in each row.
for ( SearchGoogleAdsStreamResponse response : stream ) {
for ( GoogleAdsRow googleAdsRow : response . getResultsList ()) {
AdGroupCriterionSimulation simulation = googleAdsRow . getAdGroupCriterionSimulation ();
System . out . printf (
"Found ad group criterion CPC bid simulation for ad group ID %d, "
+ "criterion ID %d, start date '%s', end date '%s', and points:%n" ,
simulation . getAdGroupId (),
simulation . getCriterionId (),
simulation . getStartDate (),
simulation . getEndDate ());
for ( CpcBidSimulationPoint point : simulation . getCpcBidPointList (). getPointsList ()) {
System . out . printf (
" bid: %d => clicks: %d, cost: %d, impressions: %d, "
+ "biddable conversions: %.2f, biddable conversions value: %.2f%s" ,
point . getCpcBidMicros (),
point . getClicks (),
point . getCostMicros (),
point . getImpressions (),
point . getBiddableConversions (),
point . getBiddableConversions ());
}
}
}
}
}
}
C#
// Copyright 2020 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 CommandLine ;
using Google.Ads.Gax.Examples ;
using Google.Ads.GoogleAds.Lib ;
using Google.Ads.GoogleAds.V23.Common ;
using Google.Ads.GoogleAds.V23.Errors ;
using Google.Ads.GoogleAds.V23.Resources ;
using Google.Ads.GoogleAds.V23.Services ;
using System ;
using System.Collections.Generic ;
namespace Google.Ads.GoogleAds.Examples.V23
{
/// <summary>
/// This example gets all available ad group criterion CPC bid simulations for a given ad group.
/// To get ad groups, run GetAdGroups.cs.
/// </summary>
public class GetAdGroupCriterionCpcBidSimulations : ExampleBase
{
/// <summary>
/// Command line options for running the <see cref="GetAdGroupCriterionCpcBidSimulations"/>
/// example.
/// </summary>
public class Options : OptionsBase
{
/// <summary>
/// The Google Ads customer ID for which the call is made.
/// </summary>
[Option("customerId", Required = true, HelpText =
"The Google Ads customer ID for which the call is made.")]
public long CustomerId { get ; set ; }
/// <summary>
/// The ad group ID for which to get ad group criterion CPC bid simulations.
/// </summary>
[Option("adGroupId", Required = true, HelpText =
"The ad group ID for which to get ad group criterion CPC bid simulations.")]
public long AdGroupId { get ; set ; }
}
/// <summary>
/// Main method, to run this code example as a standalone application.
/// </summary>
/// <param name="args">The command line arguments.</param>
public static void Main ( string [] args )
{
Options options = ExampleUtilities . ParseCommandLine<Options> ( args );
GetAdGroupCriterionCpcBidSimulations codeExample =
new GetAdGroupCriterionCpcBidSimulations ();
Console . WriteLine ( codeExample . Description );
codeExample . Run ( new GoogleAdsClient (), options . CustomerId , options . AdGroupId );
}
/// <summary>
/// Returns a description about the code example.
/// </summary>
public override string Description = >
"This example gets all available ad group criterion CPC bid simulations for a given " +
"ad group. To get ad groups, run GetAdGroups.cs." ;
/// <summary>
/// Runs the code example.
/// </summary>
/// <param name="client">The Google Ads client.</param>
/// <param name="customerId">The Google Ads customer ID for which the call is made.</param>
/// <param name="adGroupId">The ad group ID for which to get ad group criterion CPC bid
/// simulations.</param>
public void Run ( GoogleAdsClient client , long customerId , long adGroupId )
{
// Get the GoogleAdsService.
GoogleAdsServiceClient googleAdsService =
client . GetService ( Services . V23 . GoogleAdsService );
try
{
// Creates a query that retrieves the ad group criterion CPC bid simulations.
string query = $ @"
SELECT
ad_group_criterion_simulation.ad_group_id,
ad_group_criterion_simulation.criterion_id,
ad_group_criterion_simulation.start_date,
ad_group_criterion_simulation.end_date,
ad_group_criterion_simulation.cpc_bid_point_list.points
FROM
ad_group_criterion_simulation
WHERE
ad_group_criterion_simulation.type = CPC_BID AND
ad_group_criterion_simulation.ad_group_id = {adGroupId}" ;
// Issue a search stream request.
googleAdsService . SearchStream ( customerId . ToString (), query ,
delegate ( SearchGoogleAdsStreamResponse response )
{
// Iterates over all rows in all messages and prints the requested field
// values for the ad group criterion CPC bid simulation in each row.
foreach ( GoogleAdsRow googleAdsRow in response . Results )
{
AdGroupCriterionSimulation simulation =
googleAdsRow . AdGroupCriterionSimulation ;
Console . WriteLine ( "Found ad group criterion CPC bid simulation for " +
$"ad group ID {simulation.AdGroupId}, " +
$"criterion ID {simulation.CriterionId}, " +
$"start date {simulation.StartDate}, " +
$"end date {simulation.EndDate}" );
foreach ( CpcBidSimulationPoint point in
simulation . CpcBidPointList . Points )
{
Console . WriteLine ( $"\tbid: {point.CpcBidMicros} => " +
$"clicks: {point.Clicks}, " +
$"cost: {point.CostMicros}, " +
$"impressions: {point.Impressions}, " +
$"biddable conversions: {point.BiddableConversions}, " +
"biddable conversions value: " +
$"{point.BiddableConversionsValue}" );
}
Console . WriteLine ();
}
}
);
}
catch ( GoogleAdsException e )
{
Console . WriteLine ( "Failure:" );
Console . WriteLine ( $"Message: {e.Message}" );
Console . WriteLine ( $"Failure: {e.Failure}" );
Console . WriteLine ( $"Request ID: {e.RequestId}" );
throw ;
}
}
}
}
PHP
<?php
/**
* Copyright 2020 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\GoogleAds\Examples\Planning;
require __DIR__ . '/../../vendor/autoload.php';
use GetOpt\GetOpt;
use Google\Ads\GoogleAds\Examples\Utils\ArgumentNames;
use Google\Ads\GoogleAds\Examples\Utils\ArgumentParser;
use Google\Ads\GoogleAds\Lib\V23\GoogleAdsClient;
use Google\Ads\GoogleAds\Lib\V23\GoogleAdsClientBuilder;
use Google\Ads\GoogleAds\Lib\V23\GoogleAdsException;
use Google\Ads\GoogleAds\Lib\OAuth2TokenBuilder;
use Google\Ads\GoogleAds\Lib\V23\GoogleAdsServerStreamDecorator;
use Google\Ads\GoogleAds\V23\Common\CpcBidSimulationPoint;
use Google\Ads\GoogleAds\V23\Errors\GoogleAdsError;
use Google\Ads\GoogleAds\V23\Services\GoogleAdsRow;
use Google\Ads\GoogleAds\V23\Services\SearchGoogleAdsStreamRequest;
use Google\ApiCore\ApiException;
/**
* This example gets all available ad group criterion CPC bid simulations for a given ad group.
* To get ad groups, run GetAdGroups.php.
*/
class GetAdGroupCriterionCpcBidSimulations
{
private const CUSTOMER_ID = 'INSERT_CUSTOMER_ID_HERE';
private const AD_GROUP_ID = 'INSERT_AD_GROUP_ID_HERE';
public static function main()
{
// Either pass the required parameters for this example on the command line, or insert them
// into the constants above.
$options = (new ArgumentParser())->parseCommandArguments([
ArgumentNames::CUSTOMER_ID => GetOpt::REQUIRED_ARGUMENT,
ArgumentNames::AD_GROUP_ID => GetOpt::REQUIRED_ARGUMENT
]);
// Generate a refreshable OAuth2 credential for authentication.
$oAuth2Credential = (new OAuth2TokenBuilder())->fromFile()->build();
// Construct a Google Ads client configured from a properties file and the
// OAuth2 credentials above.
$googleAdsClient = (new GoogleAdsClientBuilder())
->fromFile()
->withOAuth2Credential($oAuth2Credential)
->build();
try {
self::runExample(
$googleAdsClient,
$options[ArgumentNames::CUSTOMER_ID] ?: self::CUSTOMER_ID,
$options[ArgumentNames::AD_GROUP_ID] ?: self::AD_GROUP_ID
);
} catch (GoogleAdsException $googleAdsException) {
printf(
"Request with ID '%s' has failed.%sGoogle Ads failure details:%s",
$googleAdsException->getRequestId(),
PHP_EOL,
PHP_EOL
);
foreach ($googleAdsException->getGoogleAdsFailure()->getErrors() as $error) {
/** @var GoogleAdsError $error */
printf(
"\t%s: %s%s",
$error->getErrorCode()->getErrorCode(),
$error->getMessage(),
PHP_EOL
);
}
exit(1);
} catch (ApiException $apiException) {
printf(
"ApiException was thrown with message '%s'.%s",
$apiException->getMessage(),
PHP_EOL
);
exit(1);
}
}
/**
* Runs the example.
*
* @param GoogleAdsClient $googleAdsClient the Google Ads API client
* @param int $customerId the customer ID
* @param int $adGroupId the ad group ID to get the ad group criterion CPC bid simulations for
*/
public static function runExample(
GoogleAdsClient $googleAdsClient,
int $customerId,
int $adGroupId
) {
$googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient();
// Creates a query that retrieves the ad group criterion CPC bid simulations.
$query = sprintf(
'SELECT ad_group_criterion_simulation.ad_group_id, ' .
'ad_group_criterion_simulation.criterion_id, ' .
'ad_group_criterion_simulation.start_date, ' .
'ad_group_criterion_simulation.end_date, ' .
'ad_group_criterion_simulation.cpc_bid_point_list.points ' .
'FROM ad_group_criterion_simulation ' .
'WHERE ad_group_criterion_simulation.type = CPC_BID ' .
'AND ad_group_criterion_simulation.ad_group_id = %d',
$adGroupId
);
// Issues a search stream request.
/** @var GoogleAdsServerStreamDecorator $stream */
$stream = $googleAdsServiceClient->searchStream(
SearchGoogleAdsStreamRequest::build($customerId, $query)
);
// Iterates over all rows in all messages and prints the requested field values for
// the ad group criterion CPC bid simulation in each row.
foreach ($stream->iterateAllElements() as $googleAdsRow) {
/** @var GoogleAdsRow $googleAdsRow */
$simulation = $googleAdsRow->getAdGroupCriterionSimulation();
printf(
'Found ad group criterion CPC bid simulation for ad group ID %d, ' .
'criterion ID %d, start date "%s", end date "%s", and points:%s',
$simulation->getAdGroupId(),
$simulation->getCriterionId(),
$simulation->getStartDate(),
$simulation->getEndDate(),
PHP_EOL
);
foreach ($simulation->getCpcBidPointList()->getPoints() as $point) {
/** @var CpcBidSimulationPoint $point */
printf(
' bid: %d => clicks: %d, cost: %d, impressions: %d, ' .
'biddable conversions: %.2f, biddable conversions value: %.2f%s',
$point->getCpcBidMicros(),
$point->getClicks(),
$point->getCostMicros(),
$point->getImpressions(),
$point->getBiddableConversions(),
$point->getBiddableConversionsValue(),
PHP_EOL
);
}
print PHP_EOL;
}
}
}
GetAdGroupCriterionCpcBidSimulations::main();
Python
#!/usr/bin/env python
# Copyright 2020 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.
"""Gets available ad group criterion CPC bid simulations for a given ad group.
To get ad groups, run get_ad_groups.py.
"""
from typing import Iterable
import argparse
import sys
from google.ads.googleads.client import GoogleAdsClient
from google.ads.googleads.errors import GoogleAdsException
from google.ads.googleads.v23.resources.types.ad_group_criterion_simulation import (
AdGroupCriterionSimulation ,
)
from google.ads.googleads.v23.common.types.simulation import (
CpcBidSimulationPoint ,
)
from google.ads.googleads.v23.services.services.google_ads_service.client import (
GoogleAdsServiceClient ,
)
from google.ads.googleads.v23.services.types.google_ads_service import (
SearchGoogleAdsStreamResponse ,
GoogleAdsRow ,
)
def main ( client : GoogleAdsClient , customer_id : str , ad_group_id : str ):
googleads_service : GoogleAdsServiceClient = client . get_service (
"GoogleAdsService"
)
query = f """
SELECT
ad_group_criterion_simulation.ad_group_id,
ad_group_criterion_simulation.criterion_id,
ad_group_criterion_simulation.start_date,
ad_group_criterion_simulation.end_date,
ad_group_criterion_simulation.cpc_bid_point_list.points
FROM ad_group_criterion_simulation
WHERE
ad_group_criterion_simulation.type = CPC_BID
AND ad_group_criterion_simulation.ad_group_id = { ad_group_id } """
# Issues a search request using streaming.
stream : Iterable [ SearchGoogleAdsStreamResponse ] = (
googleads_service . search_stream ( customer_id = customer_id , query = query )
)
# Iterates over all rows in all messages and prints the requested field
# values for the ad group criterion CPC bid simulation in each row.
batch : SearchGoogleAdsStreamResponse
for batch in stream :
row : GoogleAdsRow
for row in batch . results :
simulation : AdGroupCriterionSimulation = (
row . ad_group_criterion_simulation
)
print (
"found ad group criterion CPC bid simulation for "
f "ad group ID { simulation . ad_group_id } , "
f "criterion ID { simulation . criterion_id } , "
f "start date { simulation . start_date } , "
f "end date { simulation . end_date } "
)
point : CpcBidSimulationPoint
for point in simulation . cpc_bid_point_list . points :
print (
f " \t bid: { point . cpc_bid_micros } => "
f "clicks: { point . clicks } " ,
f "cost: { point . cost_micros } , "
f "impressions: { point . impressions } ,"
"biddable conversions: "
f " { point . biddable_conversions } ,"
f "biddable conversions value: "
f " { point . biddable_conversions_value } " ,
)
print ()
if __name__ == "__main__" :
parser = argparse . ArgumentParser (
description = "Gets all available ad group criterion CPC bid "
"simulations for a given ad group."
)
# The following argument(s) should be provided to run the example.
parser . add_argument (
"-c" ,
"--customer_id" ,
type = str ,
required = True ,
help = "The Google Ads customer ID." ,
)
parser . add_argument (
"-a" ,
"--ad_group_id" ,
type = str ,
required = True ,
help = "The ad group ID for which to get available bid simulations." ,
)
args = parser . parse_args ()
# GoogleAdsClient will read the google-ads.yaml configuration file in the
# home directory if none is specified.
googleads_client = GoogleAdsClient . load_from_storage ( version = "v23" )
try :
main ( googleads_client , args . customer_id , args . ad_group_id )
except GoogleAdsException as ex :
print (
f 'Request with ID " { ex . request_id } " failed with status '
f '" { ex . error . code () . name } " and includes the following errors:'
)
for error in ex . failure . errors :
print ( f ' \t Error with message " { error . message } ".' )
if error . location :
for field_path_element in error . location . field_path_elements :
print ( f " \t\t On field: { field_path_element . field_name } " )
sys . exit ( 1 )
Руби
#!/usr/bin/env ruby
#
# Copyright:: Copyright 2020 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.
#
# This example gets all available ad group criterion CPC bid simulations for a
# given ad group. To get ad groups, run get_ad_groups.rb.
require 'optparse'
require 'google/ads/google_ads'
def get_ad_group_criterion_cpc_bid_simulations ( customer_id , ad_group_id )
# GoogleAdsClient will read a config file from
# ENV['HOME']/google_ads_config.rb when called without parameters
client = Google :: Ads :: GoogleAds :: GoogleAdsClient . new
query = <<~ QUERY
SELECT ad_group_criterion_simulation . ad_group_id ,
ad_group_criterion_simulation . criterion_id ,
ad_group_criterion_simulation . start_date ,
ad_group_criterion_simulation . end_date ,
ad_group_criterion_simulation . cpc_bid_point_list . points
FROM ad_group_criterion_simulation
WHERE ad_group_criterion_simulation . type = CPC_BID
AND ad_group_criterion_simulation . ad_group_id = #{ad_group_id}
QUERY
responses = client . service . google_ads . search_stream (
customer_id : customer_id ,
query : query ,
)
responses . each do | response |
response . results . each do | row |
simulation = row . ad_group_criterion_simulation
puts "Found ad group criterion CPC bid simulation for " \
"ad group ID #{ simulation . ad_group_id } , " \
"criterion ID #{ simulation . criterion_id } , " \
"start date ' #{ simulation . start_date } ', " \
"end date ' #{ simulation . end_date } ', and points:"
simulation . cpc_bid_point_list . points . each do | point |
puts " bid: #{ point . cpc_bid_micros } => " \
"clicks: #{ point . clicks } , " \
"cost: #{ point . cost_micros } , " \
"impressions: #{ point . impressions } , " \
"biddable conversions: #{ point . biddable_conversions . round ( 2 ) } , " \
"biddable conversions value: #{ point . biddable_conversions_value . round ( 2 ) } "
end
end
end
end
if __FILE__ == $PROGRAM_NAME
options = {}
# The following parameter(s) should be provided to run the example. You can
# either specify these by changing the INSERT_XXX_ID_HERE values below, or on
# the command line.
#
# Parameters passed on the command line will override any parameters set in
# code.
#
# Running the example with -h will print the command line usage.
options [ :customer_id ] = 'INSERT_GOOGLE_ADS_CUSTOMER_ID_HERE'
options [ :ad_group_id ] = 'INSERT_AD_GROUP_ID_HERE'
OptionParser . new do | opts |
opts . banner = format ( 'Usage: ruby %s [options]' , File . basename ( __FILE__ ))
opts . separator ''
opts . separator 'Options:'
opts . on ( '-C' , '--customer-id CUSTOMER-ID' , String , 'Customer ID' ) do | v |
options [ :customer_id ] = v
end
opts . on ( '-A' , '--ad-group-id AD-GROUP-ID' , String , 'Ad Group ID' ) do | v |
options [ :ad_group_id ] = v
end
opts . separator ''
opts . separator 'Help:'
opts . on_tail ( '-h' , '--help' , 'Show this message' ) do
puts opts
exit
end
end . parse!
begin
get_ad_group_criterion_cpc_bid_simulations (
options . fetch ( :customer_id ) . tr ( "-" , "" ),
options [ :ad_group_id ]
)
rescue Google :: Ads :: GoogleAds :: Errors :: GoogleAdsError = > e
e . failure . errors . each do | error |
STDERR . printf ( "Error with message: %s \n " , error . message )
error . location &. field_path_elements &. each do | field_path_element |
STDERR . printf ( " \t On field: %s \n " , field_path_element . field_name )
end
error . error_code . to_h . each do | k , v |
next if v == :UNSPECIFIED
STDERR . printf ( " \t Type: %s \n\t Code: %s \n " , k , v )
end
end
raise
end
end
Perl
#!/usr/bin/perl -w
#
# Copyright 2020, 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.
#
# This example gets all available ad group criterion CPC bid simulations for a
# given ad group. To get ad groups, run get_ad_groups.pl.
use strict ;
use warnings ;
use utf8 ;
use FindBin qw($Bin) ;
use lib "$Bin/../../lib" ;
use Google::Ads::GoogleAds::Client ;
use Google::Ads::GoogleAds::Utils::GoogleAdsHelper ;
use Google::Ads::GoogleAds::Utils::SearchStreamHandler ;
use
Google::Ads::GoogleAds::V23::Services::GoogleAdsService::SearchGoogleAdsStreamRequest ;
use Getopt::Long qw(:config auto_help) ;
use Pod::Usage ;
use Cwd qw(abs_path) ;
# The following parameter(s) should be provided to run the example. You can
# either specify these by changing the INSERT_XXX_ID_HERE values below, or on
# the command line.
#
# Parameters passed on the command line will override any parameters set in
# code.
#
# Running the example with -h will print the command line usage.
my $customer_id = "INSERT_CUSTOMER_ID_HERE" ;
my $ad_group_id = "INSERT_AD_GROUP_ID_HERE" ;
sub get_ad_group_criterion_cpc_bid_simulations {
my ( $api_client , $customer_id , $ad_group_id ) = @_ ;
# Create a query that retrieves the ad group criterion CPC bid simulations.
my $search_query =
"SELECT ad_group_criterion_simulation.ad_group_id, " .
"ad_group_criterion_simulation.criterion_id, " .
"ad_group_criterion_simulation.start_date, " .
"ad_group_criterion_simulation.end_date, " .
"ad_group_criterion_simulation.cpc_bid_point_list.points " .
"FROM ad_group_criterion_simulation " .
"WHERE ad_group_criterion_simulation.type = CPC_BID " .
"AND ad_group_criterion_simulation.ad_group_id = $ad_group_id" ;
my $search_stream_request =
Google::Ads::GoogleAds::V23::Services::GoogleAdsService:: SearchGoogleAdsStreamRequest
- >new ({
customerId = > $customer_id ,
query = > $search_query
});
# Get the GoogleAdsService.
my $google_ads_service = $api_client - >GoogleAdsService ();
my $search_stream_handler =
Google::Ads::GoogleAds::Utils:: SearchStreamHandler - >new ({
service = > $google_ads_service ,
request = > $search_stream_request
});
# Issue a search stream request, iterate over all rows in all messages and
# print the requested field values for the ad group criterion CPC bid
# simulation in each row.
$search_stream_handler - >process_contents (
sub {
my $google_ads_row = shift ;
my $simulation = $google_ads_row - >{ adGroupCriterionSimulation };
printf
"Found ad group criterion CPC bid simulation for ad group ID %d, " .
"criterion ID %d, start date '%s', end date '%s', and points:\n" ,
$simulation - >{ adGroupId }, $simulation - >{ criterionId },
$simulation - >{ startDate }, $simulation - >{ endDate };
foreach my $point ( @ { $simulation - >{ cpcBidPointList }{ points }}) {
printf " bid: %d => clicks: %d, cost: %d, impressions: %d, " .
"biddable conversions: %.2f, biddable conversions value: %.2f\n" ,
$point - >{ cpcBidMicros },
$point - >{ clicks },
$point - >{ costMicros },
$point - >{ impressions },
$point - >{ biddableConversions },
$point - >{ biddableConversionsValue };
}
});
return 1 ;
}
# Don't run the example if the file is being included.
if ( abs_path ( $0 ) ne abs_path ( __FILE__ )) {
return 1 ;
}
# Get Google Ads Client, credentials will be read from ~/googleads.properties.
my $api_client = Google::Ads::GoogleAds:: Client - >new ();
# By default examples are set to die on any server returned fault.
$api_client - >set_die_on_faults ( 1 );
# Parameters passed on the command line will override any parameters set in code.
GetOptions (
"customer_id=s" = > \ $customer_id ,
"ad_group_id=i" = > \ $ad_group_id ,
);
# Print the help message if the parameters are not initialized in the code nor
# in the command line.
pod2usage ( 2 )
if not check_params ( $customer_id , $ad_group_id );
# Call the example.
get_ad_group_criterion_cpc_bid_simulations ( $api_client ,
$customer_id =~ s/-//g r , $ad_group_id );
=pod
=head1 NAME
get_ad_group_criterion_cpc_bid_simulations
=head1 DESCRIPTION
This example gets all available ad group criterion CPC bid simulations for a
given ad group. To get ad groups, run get_ad_groups.pl.
=head1 SYNOPSIS
get_ad_group_criterion_cpc_bid_simulations.pl [options]
-help Show the help message.
-customer_id The Google Ads customer ID.
-ad_group_id The ad group ID to get the ad group criterion CPC
bid simulations for.
=cut
локон Примечание: Хотя здесь не приводится прямой пример REST-кода для этого шага, вы можете сделать это с помощью ручного REST-запроса. Обратитесь к документации по REST-интерфейсу Google Ads API и справочным страницам по конкретным методам. Вам потребуется сформировать полезную нагрузку JSON на основе определений протоколов. Основные ресурсы:
Если не указано иное, контент на этой странице предоставляется по лицензии Creative Commons "С указанием авторства 4.0" , а примеры кода – по лицензии Apache 2.0 . Подробнее об этом написано в правилах сайта . Java – это зарегистрированный товарный знак корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2026-03-03 UTC.
[null,null,["Последнее обновление: 2026-03-03 UTC."],[],[]]