Unisciti a noi in diretta su
Discord nel server della community Google Advertising and Measurement e su
YouTube il 23 aprile alle 16:00 CET. Parleremo delle nuove funzionalità aggiunte nella versione 24 dell'API Google Ads.
Recupera incentivi
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
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
Nota :anche se qui non viene fornito un esempio di codice REST diretto per questo passaggio, puoi ottenere questo risultato utilizzando una richiesta REST manuale.
Consulta la documentazione dell'interfaccia REST dell'API Google Ads e le pagine di riferimento specifiche per il metodo. Dovrai creare il payload JSON in base alle definizioni proto.
Risorse principali:
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0 , mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0 . Per ulteriori dettagli, consulta le norme del sito di Google Developers . Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2026-04-22 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2026-04-22 UTC."],[],[]]