Participe da nossa transmissão ao vivo no
Discord no servidor da comunidade de publicidade e medição do Google e no
YouTube em 23 de abril, às 11h (horário de Brasília). Vamos discutir os novos recursos adicionados na versão 24 da API Google Ads.
Buscar incentivos
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Java
// Copyright 2026 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.incentives ;
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.errors.GoogleAdsError ;
import com.google.ads.googleads.v23.errors.GoogleAdsException ;
import com.google.ads.googleads.v23.services.CyoIncentives ;
import com.google.ads.googleads.v23.services.FetchIncentiveRequest ;
import com.google.ads.googleads.v23.services.FetchIncentiveRequest.IncentiveType ;
import com.google.ads.googleads.v23.services.FetchIncentiveResponse ;
import com.google.ads.googleads.v23.services.Incentive ;
import com.google.ads.googleads.v23.services.IncentiveServiceClient ;
import java.io.FileNotFoundException ;
import java.io.IOException ;
/**
* This example fetches the available incentives for a user.
*/
public class FetchIncentives {
private static class FetchIncentivesParams extends CodeSampleParams {
@Parameter (
names = ArgumentNames . EMAIL_ADDRESS ,
required = true ,
description = "The email of the user to fetch incentives for." )
private String email ;
@Parameter (
names = ArgumentNames . LANGUAGE_CODE ,
description = "The language for the returned incentive." )
private String languageCode = "en" ;
@Parameter (
names = ArgumentNames . COUNTRY_CODE ,
description = "The country for the returned incentive." )
private String countryCode = "US" ;
}
public static void main ( String [] args ) throws IOException {
FetchIncentivesParams params = new FetchIncentivesParams ();
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 more information.
params . email = "INSERT_EMAIL_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 FetchIncentives ()
. runExample ( googleAdsClient , params . email , params . languageCode , params . countryCode );
} 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 GoogleAdsError instances that detail the underlying causes of the
// exception.
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 email the email of the user to fetch incentives for.
* @param languageCode the language of the incentives.
* @param countryCode the country of the incentives.
*/
private void runExample (
GoogleAdsClient googleAdsClient , String email , String languageCode , String countryCode ) {
try ( IncentiveServiceClient incentiveServiceClient =
googleAdsClient . getLatestVersion (). createIncentiveServiceClient ()) {
FetchIncentiveRequest request = FetchIncentiveRequest . newBuilder (). setCountryCode ( countryCode )
. setLanguageCode ( languageCode ). setEmail ( email ). setType ( IncentiveType . ACQUISITION ). build ();
// Issues the request.
FetchIncentiveResponse response =
incentiveServiceClient . fetchIncentive ( request );
// Processes the response.
if ( ! response . hasIncentiveOffer ()) {
System . out . print ( "No incentive offer was found" );
return ;
}
// If the offer type is CHOOSE_YOUR_OWN_INCENTIVE, there will be 3 incentives in the
// response. At the time this example was written, all incentive offers are CYO incentive offers.
if ( response . getIncentiveOffer (). hasCyoIncentives ()) {
CyoIncentives cyoIncentives = response . getIncentiveOffer (). getCyoIncentives ();
printIncentiveDetails ( cyoIncentives . getLowOffer ());
printIncentiveDetails ( cyoIncentives . getMediumOffer ());
printIncentiveDetails ( cyoIncentives . getHighOffer ());
}
}
}
private void printIncentiveDetails ( Incentive incentive ) {
System . out . println ( "====================================================================" );
System . out . printf ( "Incentive ID: '%s'%n" , incentive . getIncentiveId ());
System . out . printf ( "Incentive requirement: '%s'%n" , incentive . getRequirement ());
System . out . printf (
"Incentive terms and conditions: '%s'%n" , incentive . getIncentiveTermsAndConditionsUrl ());
System . out . println ( "====================================================================" );
}
}
C#
// Copyright 2026 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.Gax.Lib ;
using Google.Ads.GoogleAds.Lib ;
using Google.Ads.GoogleAds.V23.Errors ;
using Google.Ads.GoogleAds.V23.Services ;
using System ;
using static Google . Ads . GoogleAds . V23 . Services . FetchIncentiveRequest . Types ;
namespace Google.Ads.GoogleAds.Examples.V23
{
/// <summary>
/// This code example fetches the available incentives for a user.
/// </summary>
public class FetchIncentives : ExampleBase
{
/// <summary>
/// Command line options for running the <see cref="FetchIncentives"/> example.
/// </summary>
public class Options : OptionsBase
{
/// <summary>
/// The email of the user to fetch incentives for.
/// </summary>
[Option("email", Required = true, HelpText =
"The email of the user to fetch incentives for.")]
public string Email { get ; set ; }
/// <summary>
/// The language for the returned incentive.
/// </summary>
[Option("languageCode", Required = true, HelpText =
"The language for the returned incentive.")]
public string LanguageCode { get ; set ; }
/// <summary>
/// The country for the returned incentive.
/// </summary>
[Option("countryCode", Required = true, HelpText =
"The country for the returned incentive.")]
public string CountryCode { 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 );
FetchIncentives codeExample = new FetchIncentives ();
Console . WriteLine ( codeExample . Description );
codeExample . Run ( new GoogleAdsClient (), options . Email ,
options . LanguageCode , options . CountryCode );
}
/// <summary>
/// Returns a description about the code example.
/// </summary>
public override string Description = >
"This code example fetches the available incentives for a user." ;
/// <summary>
/// Runs the code example.
/// </summary>
/// <param name="client">The Google Ads client.</param>
/// <param name="email">The email of the user to fetch incentives for.</param>
/// <param name="languageCode">The language for the returned incentive.</param>
/// <param name="countryCode">The country for the returned incentive.</param>
public void Run ( GoogleAdsClient client , string email , string languageCode ,
string countryCode )
{
IncentiveServiceClient incentiveService = client . GetService (
Services . V23 . IncentiveService );
FetchIncentiveRequest request = new FetchIncentiveRequest ()
{
CountryCode = countryCode ,
LanguageCode = languageCode ,
Email = email ,
Type = IncentiveType . Acquisition
};
try
{
FetchIncentiveResponse response =
incentiveService . FetchIncentive ( request );
if ( response . IncentiveOffer . IsEmpty ())
{
Console . WriteLine ( "No incentive offer was found." );
return ;
}
if ( ! response . IncentiveOffer . CyoIncentives . IsEmpty ())
{
CyoIncentives cyoIncentives = response . IncentiveOffer . CyoIncentives ;
printIncentiveDetails ( cyoIncentives . LowOffer );
}
} catch ( GoogleAdsException e )
{
Console . WriteLine ( "Failure:" );
Console . WriteLine ( $"Message: {e.Message}" );
Console . WriteLine ( $"Failure: {e.Failure}" );
Console . WriteLine ( $"Request ID: {e.RequestId}" );
throw ;
}
}
private void printIncentiveDetails ( Incentive incentive )
{
Console . WriteLine ( "===========================================" );
Console . WriteLine ( $"Incentive ID: {incentive.IncentiveId}" );
Console . WriteLine ( $"Incentive requirement: {incentive.Requirement}" );
Console . WriteLine ( $"Incentive terms and conditions: {incentive.IncentiveTermsAndConditionsUrl}" );
Console . WriteLine ( "===========================================" );
}
}
}
PHP
This example is not yet available in PHP; you can take a look at the other languages.
Python
#!/usr/bin/env python
# Copyright 2025 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 returns incentives for a given user.
To apply an incentive, use apply_incentive.py.
"""
import argparse
import sys
from google.ads.googleads.client import GoogleAdsClient
from google.ads.googleads.errors import GoogleAdsException
from google.ads.googleads.v23.services import FetchIncentiveRequest , FetchIncentiveResponse
from google.ads.googleads.v23.services.services.incentive_service.client import (
IncentiveServiceClient ,
)
def main (
client : GoogleAdsClient ,
email_address : str ,
language_code : str ,
country_code : str ,
) - > None :
"""Returns incentives for a given user.
Args:
client: An initialized GoogleAdsClient instance.
email_address: The email of the user to fetch incentives for.
language_code: The language code of the user (e.g. 'en').
country_code: The country code of the user (e.g. 'US').
"""
incentive_service : IncentiveServiceClient = client . get_service (
"IncentiveService"
)
fetch_incentive_request : FetchIncentiveRequest = client . get_type (
"FetchIncentiveRequest"
)
fetch_incentive_request . email = email_address
fetch_incentive_request . language_code = language_code
fetch_incentive_request . country_code = country_code
response : FetchIncentiveResponse = incentive_service . fetch_incentive (
request = fetch_incentive_request
)
if response . incentive_offer and response . incentive_offer . cyo_incentives :
print ( "Fetched incentive." )
# If the offer type is CHOOSE_YOUR_OWN_INCENTIVE, there will be three
# incentives in the response. At the time this example was written, all
# incentive offers are CYO incentive offers.
cyo_incentives = response . incentive_offer . cyo_incentives
print ( cyo_incentives . low_offer )
print ( cyo_incentives . medium_offer )
print ( cyo_incentives . high_offer )
else :
print ( "No incentives found." )
if __name__ == "__main__" :
parser = argparse . ArgumentParser (
description = "Returns incentives for a given user."
)
# The following argument(s) should be provided to run the example.
parser . add_argument (
"-e" ,
"--email_address" ,
type = str ,
required = True ,
help = "The email of the user to fetch incentives for." ,
)
parser . add_argument (
"-l" ,
"--language_code" ,
type = str ,
required = False ,
default = "en" ,
help = "The language code of the user (e.g. 'en')." ,
)
parser . add_argument (
"-k" ,
"--country_code" ,
type = str ,
required = False ,
default = "US" ,
help = "The country code of the user (e.g. 'US')." ,
)
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 . email_address ,
args . language_code ,
args . country_code ,
)
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 )
Ruby
This example is not yet available in Ruby; you can take a look at the other languages.
Perl
This example is not yet available in Perl; you can take a look at the other languages.
curl
Observação :embora não haja um exemplo de código REST direto para esta etapa, é possível fazer isso usando uma solicitação REST manual.
Consulte a documentação da interface REST da API Google Ads e as páginas de referência específicas do método. Você precisará criar o payload JSON com base nas definições do proto.
Principais recursos:
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons , e as amostras de código são licenciadas de acordo com a Licença Apache 2.0 . Para mais detalhes, consulte as políticas do site do Google Developers . Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2026-04-22 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2026-04-22 UTC."],[],[]]