Librerie client

Le librerie client offrono viste di alto livello e componenti di base di base Funzionalità dell'API Google Ads, che semplifica lo sviluppo rapido delle app. I nostri suggerimenti se non hai mai utilizzato l'API.

Libreria client Origine Distribuzione Esempi di codice
Java google-ads-java Maven, tar.gz Visualizza su GitHub
.NET google-ads-dotnet nuget, tar.gz, zip Visualizza su GitHub
PHP google-ads-php tar.gz Visualizza su GitHub
Python google-ads-python tar.gz, zip Visualizza su GitHub
Ruby google-ads-ruby gem, tar.gz, zip Visualizza su GitHub
Perl google-ads-perl tar.gz, zip Visualizza su GitHub

Versioni API supportate

La tabella mostra quali librerie client funzionano con le diverse versioni dell'API.

Java

Libreria client per Java
v17
32.0.0 Min: Max: -
v16
30.0.0 Min: Max: -
v15
28.0.0 Min: Max: -

C#

Libreria client per .NET
v17
20.1.0 Min: Max: -
v16
18.1.0 Min: Max: -
v15
17.1.0 Min: Max: -

PHP

Libreria client per PHP
v17
23.1.0 Min: Max: -
v16
22.1.0 Min: Max: -
v15
21.1.0 Min: Max: -

Python

Libreria client per Python
v17
24.1.0 Min: Max: -
v16
23.1.0 Min: Max: -
v15
22.1.0 Min: Max: -

Ruby

Libreria client per Ruby
v17
29.0.0 Min: Max: -
v16
27.0.0 Min: Max: -
v15
25.0.0 Min: Max: -

Perl

Libreria client per Perl
v17
23.0.0 Min: Max: -
v16
21.0.0 Min: Max: -
v15
19.0.0 Min: Max: -

Configurazione

Ogni libreria client dell'API Google Ads fornisce impostazioni di configurazione e metodi di caricamento utilizzabili per personalizzarne il comportamento.

Di seguito sono riportate le variabili di ambiente comuni a tutte le librerie client che è possibile caricare per definire le impostazioni di configurazione:

  • Libreria client
      .
    • GOOGLE_ADS_CONFIGURATION_FILE_PATH: percorso del file di configurazione.
  • OAuth2
      .
    • Modalità applicazione
        .
      • GOOGLE_ADS_CLIENT_ID : imposta questo valore sull'ID client OAuth2.
      • GOOGLE_ADS_CLIENT_SECRET : imposta questo valore sul client secret OAuth2.
      • GOOGLE_ADS_REFRESH_TOKEN : imposta questo valore su un token di aggiornamento OAuth2 pregenerato se vuoi riutilizzare i token OAuth2. Questa impostazione è facoltativa.
    • Modalità account di servizio
        .
      • GOOGLE_ADS_JSON_KEY_FILE_PATH : imposta questo valore sulla configurazione JSON OAuth2 del file YAML.
      • GOOGLE_ADS_IMPERSONATED_EMAIL : imposta questo valore sull'indirizzo email del l'account del quale stai impersonando l'identità.
  • API Google Ads
      .
    • GOOGLE_ADS_DEVELOPER_TOKEN : imposta questo valore sul tuo token sviluppatore.
    • GOOGLE_ADS_LOGIN_CUSTOMER_ID : si tratta dell'ID cliente del cliente autorizzato da utilizzare nella richiesta, senza trattini (-).
    • GOOGLE_ADS_LINKED_CUSTOMER_ID : questa intestazione è obbligatoria solo per i metodi che aggiornano risorse di un'entità se autorizzate tramite gli account collegati nel UI di Google Ads (risorsa AccountLink nell'API Google Ads). Imposta questo valore all'ID cliente del fornitore di dati che aggiorna le risorse del all'ID cliente specificato. Deve essere impostato senza trattini (-). Per scoprire di più sugli Account collegati, visita il Centro assistenza.

Le variabili di ambiente sono comunemente definite in un file di configurazione bash come come file .bashrc o .bash_profile nella directory $HOME. Loro può essere definito anche utilizzando la riga di comando.

Ecco alcuni passaggi di base per definire una variabile di ambiente utilizzando un .bashrc utilizzando un terminale:

# Append the line "export GOOGLE_ADS_CLIENT_ID=1234567890" to
# the bottom of your .bashrc file.
echo "export GOOGLE_ADS_CLIENT_ID=1234567890" >> ~/.bashrc

# Update your bash environment to use the most recently updated
# version of your .bashrc file.
src ~/.bashrc

Le variabili di ambiente possono essere impostate anche nell'istanza del terminale direttamente la riga di comando:

export GOOGLE_ADS_CLIENT_ID=1234567890

Un'altra alternativa è impostare le variabili di ambiente quando chiami il comando che li utilizza:

GOOGLE_ADS_CLIENT_ID=1234567890 php /path/to/script/that/uses/envvar.php

Cerca impaginazione

GoogleAdsService.Search è in genere utilizzate in app interattive che mostrano pagine di risultati.

La libreria client implementa automaticamente il paging quando ripeti i risultati in modo da poter scaricarli ed elaborarli tutti in modo sequenziale contemporaneamente, ad esempio:

Java

private void runExample(GoogleAdsClient googleAdsClient, long customerId) {
  try (GoogleAdsServiceClient googleAdsServiceClient =
      googleAdsClient.getLatestVersion().createGoogleAdsServiceClient()) {
    String query = "SELECT campaign.id, campaign.name FROM campaign ORDER BY campaign.id";
    // Constructs the SearchGoogleAdsStreamRequest.
    SearchGoogleAdsStreamRequest request =
        SearchGoogleAdsStreamRequest.newBuilder()
            .setCustomerId(Long.toString(customerId))
            .setQuery(query)
            .build();

    // Creates and issues a search Google Ads stream request that will retrieve all campaigns.
    ServerStream<SearchGoogleAdsStreamResponse> stream =
        googleAdsServiceClient.searchStreamCallable().call(request);

    // Iterates through and prints all of the results in the stream response.
    for (SearchGoogleAdsStreamResponse response : stream) {
      for (GoogleAdsRow googleAdsRow : response.getResultsList()) {
        System.out.printf(
            "Campaign with ID %d and name '%s' was found.%n",
            googleAdsRow.getCampaign().getId(), googleAdsRow.getCampaign().getName());
      }
    }
  }
}
      

C#

public void Run(GoogleAdsClient client, long customerId)
{
    // Get the GoogleAdsService.
    GoogleAdsServiceClient googleAdsService = client.GetService(
        Services.V17.GoogleAdsService);

    // Create a query that will retrieve all campaigns.
    string query = @"SELECT
                    campaign.id,
                    campaign.name,
                    campaign.network_settings.target_content_network
                FROM campaign
                ORDER BY campaign.id";

    try
    {
        // Issue a search request.
        googleAdsService.SearchStream(customerId.ToString(), query,
            delegate (SearchGoogleAdsStreamResponse resp)
            {
                foreach (GoogleAdsRow googleAdsRow in resp.Results)
                {
                    Console.WriteLine("Campaign with ID {0} and name '{1}' was found.",
                        googleAdsRow.Campaign.Id, googleAdsRow.Campaign.Name);
                }
            }
        );
    }
    catch (GoogleAdsException e)
    {
        Console.WriteLine("Failure:");
        Console.WriteLine($"Message: {e.Message}");
        Console.WriteLine($"Failure: {e.Failure}");
        Console.WriteLine($"Request ID: {e.RequestId}");
        throw;
    }
}
      

PHP

public static function runExample(GoogleAdsClient $googleAdsClient, int $customerId)
{
    $googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient();
    // Creates a query that retrieves all campaigns.
    $query = 'SELECT campaign.id, campaign.name FROM campaign ORDER BY campaign.id';
    // 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 campaign in each row.
    foreach ($stream->iterateAllElements() as $googleAdsRow) {
        /** @var GoogleAdsRow $googleAdsRow */
        printf(
            "Campaign with ID %d and name '%s' was found.%s",
            $googleAdsRow->getCampaign()->getId(),
            $googleAdsRow->getCampaign()->getName(),
            PHP_EOL
        );
    }
}
      

Python

def main(client, customer_id):
    ga_service = client.get_service("GoogleAdsService")

    query = """
        SELECT
          campaign.id,
          campaign.name
        FROM campaign
        ORDER BY campaign.id"""

    # Issues a search request using streaming.
    stream = ga_service.search_stream(customer_id=customer_id, query=query)

    for batch in stream:
        for row in batch.results:
            print(
                f"Campaign with ID {row.campaign.id} and name "
                f'"{row.campaign.name}" was found.'
            )
      

Ruby

def get_campaigns(customer_id)
  # GoogleAdsClient will read a config file from
  # ENV['HOME']/google_ads_config.rb when called without parameters
  client = Google::Ads::GoogleAds::GoogleAdsClient.new

  responses = client.service.google_ads.search_stream(
    customer_id: customer_id,
    query: 'SELECT campaign.id, campaign.name FROM campaign ORDER BY campaign.id',
  )

  responses.each do |response|
    response.results.each do |row|
      puts "Campaign with ID #{row.campaign.id} and name '#{row.campaign.name}' was found."
    end
  end
end
      

Perl

sub get_campaigns {
  my ($api_client, $customer_id) = @_;

  # Create a search Google Ads stream request that will retrieve all campaigns.
  my $search_stream_request =
    Google::Ads::GoogleAds::V17::Services::GoogleAdsService::SearchGoogleAdsStreamRequest
    ->new({
      customerId => $customer_id,
      query      =>
        "SELECT campaign.id, campaign.name FROM campaign ORDER BY campaign.id"
    });

  # 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 request and process the stream response to print the requested
  # field values for the campaign in each row.
  $search_stream_handler->process_contents(
    sub {
      my $google_ads_row = shift;
      printf "Campaign with ID %d and name '%s' was found.\n",
        $google_ads_row->{campaign}{id}, $google_ads_row->{campaign}{name};
    });

  return 1;
}
      

A seconda del caso d'uso, potrebbe essere necessario:

  • Ottimizza il numero di pagine recuperate.
  • Ottimizza la quantità di risultati archiviati in qualsiasi momento.
  • Scarica ed elabora le pagine dei risultati in un determinato ordine.

Per farlo, puoi archiviare i token di pagina invece dei risultati, aggiungendo una maggiore complessità per il tuo codice.

Esempi di codice

Dai un'occhiata ai nostri esempi di codice di alcune funzioni comuni nella API Google Ads.