Este guia explica os conceitos básicos do uso da biblioteca de cliente Perl para a API Google Ads.
Inicializar o cliente
Para começar a usar a biblioteca, crie uma instância de
Google::Ads::GoogleAds::Client. O cliente pode ser configurado de várias maneiras,
conforme detalhado no guia de configuração. Uma abordagem comum é usar um arquivo googleads.properties:
use strict;
use warnings;
use Google::Ads::GoogleAds::Client;
my $api_client = Google::Ads::GoogleAds::Client->new();
Criar um serviço
Depois que o cliente é inicializado, é possível criar instâncias dos vários serviços de API. Por exemplo, para interagir com campanhas, crie uma instância de
CampaignService:
use strict;
use warnings;
my $campaign_service = $api_client->CampaignService();
Por padrão, o $api_client carrega serviços para o DEFAULT_API_VERSION da
versão da biblioteca instalada (V25 na versão mais recente;
versões secundárias, como v25.1, usam o módulo da versão principal, V25). Para segmentar
uma versão específica da API compatível, transmita
version => "V25" para Client->new({...}) ou chame
$api_client->set_version("V25").
Fazer uma chamada de API
Confira um exemplo de como fazer uma chamada de API para receber campanhas. Este snippet demonstra a inicialização do cliente, a criação de um serviço e a chamada de um método.
use strict;
use warnings;
use Google::Ads::GoogleAds::Client;
use Google::Ads::GoogleAds::V25::Services::GoogleAdsService::SearchGoogleAdsRequest;
# Initialize the Google Ads client. See the Configuration guide for options.
my $api_client = Google::Ads::GoogleAds::Client->new();
# Get the GoogleAdsService.
my $google_ads_service = $api_client->GoogleAdsService();
# Specify the customer ID and query.
my $customer_id = "INSERT_CUSTOMER_ID_HERE";
my $query = "SELECT campaign.name, campaign.status FROM campaign";
# Create a search request.
my $search_request =
Google::Ads::GoogleAds::V25::Services::GoogleAdsService::SearchGoogleAdsRequest
->new({
customerId => $customer_id,
query => $query,
});
# Execute the search request.
my $search_response = $google_ads_service->search($search_request);
# Iterate over the results and print campaign names.
foreach my $google_ads_row (@{$search_response->{results} || []}) {
printf "Campaign with resource name '%s' and name '%s'.\n",
$google_ads_row->{campaign}->{resourceName},
$google_ads_row->{campaign}->{name};
}
Solucionar erros
As chamadas de API podem resultar em erros. Por padrão, die_on_faults é 0 (false),
o que faz com que os métodos de serviço emitam um aviso e retornem um
objeto Google::Ads::GoogleAds::GoogleAdsException quando
ocorre um erro de API. Você pode verificar se a resposta retornada é um
GoogleAdsException e chamar get_google_ads_failure() para inspecionar as
entradas individuais de GoogleAdsError.
Como alternativa, se você definir die_on_faults => 1 em Client->new({...}) (ou chamar
$api_client->set_die_on_faults(1)), os métodos de serviço vão chamar die() com a resposta de erro
JSON bruta quando ocorrer uma falha na API, que pode ser capturada em um bloco eval (if ($@)).
use strict;
use warnings;
use Scalar::Util qw(blessed);
use Google::Ads::GoogleAds::Client;
use Google::Ads::GoogleAds::V25::Services::GoogleAdsService::SearchGoogleAdsRequest;
my $api_client = Google::Ads::GoogleAds::Client->new();
my $google_ads_service = $api_client->GoogleAdsService();
my $customer_id = "INSERT_CUSTOMER_ID_HERE";
my $query = "SELECT campaign.name, campaign.status FROM campaign";
my $search_request =
Google::Ads::GoogleAds::V25::Services::GoogleAdsService::SearchGoogleAdsRequest
->new({
customerId => $customer_id,
query => $query,
});
my $search_response = $google_ads_service->search($search_request);
if (blessed($search_response)
&& $search_response->isa("Google::Ads::GoogleAds::GoogleAdsException"))
{
printf "An API exception occurred (HTTP %s, status '%s'): %s\n",
$search_response->get_code(),
$search_response->get_status(),
$search_response->get_message();
my $google_ads_failure = $search_response->get_google_ads_failure();
if ($google_ads_failure) {
foreach my $error (@{$google_ads_failure->{errors} || []}) {
my ($error_type, $error_value) = %{$error->{errorCode} || {}};
printf " Error code (%s): %s\n",
$error_type || "unknown",
$error_value || "UNKNOWN";
printf " Message: %s\n", $error->{message};
}
}
} else {
foreach my $google_ads_row (@{$search_response->{results} || []}) {
printf "Campaign name: %s\n", $google_ads_row->{campaign}->{name};
}
}
Conheça outros exemplos
Você encontra vários exemplos de código úteis no diretório de exemplos. A maioria dos exemplos exige parâmetros. Você pode transmitir os parâmetros como argumentos (recomendado) ou editar os valores de INSERT_XXXXX_HERE no código-fonte. Para ver uma declaração de uso de um
exemplo, transmita -help como um argumento de linha de comando.
perl examples/basic_operations/get_campaigns.pl -help