Ten przewodnik Szybki start pomoże Ci wykonać pierwsze wywołanie interfejsu Google Ads API.
Kluczowych pojęć
- Projekt Google Cloud: projekt Google Cloud stanowi podstawę do tworzenia, włączania i używania wszystkich usług Google, w tym do zarządzania interfejsami API i danymi logowania OAuth 2.0. Możesz go utworzyć w konsoli Google Cloud.
- Poziom dostępu do interfejsu API: Poziom dostępu do interfejsu API w Twoim projekcie w chmurze Google Cloud określa liczbę wywołań interfejsu API, które możesz wykonać dziennie oraz środowiska, w których możesz wywoływać interfejs API. Poziom dostępu do interfejsu API w Twoim projekcie jest podany na stronie Przegląd interfejsu Google Ads API.
- Konto menedżera Google Ads: konto menedżera Google Ads służy do zarządzania innymi kontami Google Ads, które mogą być zbiorem kont klientów Google Ads lub innych kont menedżera Google Ads.
- Konto klienta Google Ads: konto Google Ads używane do wyświetlania reklam, które chcesz kierować za pomocą wywołań interfejsu API.
- Identyfikator klienta: 10-cyfrowy numer identyfikujący konto klienta Google Ads. Jeśli skopiujesz ten identyfikator z interfejsu Google Ads, usuń myślniki.
- OAuth 2.0: OAuth 2.0 to standardowy protokół autoryzacji używany przez wszystkie interfejsy API Google. Aby wywoływać interfejs API, musisz mieć konto usługi i klucz, które pozwolą Ci wygenerować dane logowania OAuth 2.0.
- Konto usługi: specjalny rodzaj konta Google , które należy do aplikacji, a nie do indywidualnego użytkownika. Służy do uwierzytelniania aplikacji w interfejsie Google Ads API. Aby uzyskać konto usługi, musisz mieć projekt Google Cloud.
- Klucz konta usługi: plik JSON z danymi logowania aplikacji, który zawiera klucz prywatny konta usługi. Służy do generowania danych logowania OAuth 2.0 w celu uwierzytelnienia konta usługi podczas wywoływania interfejsu Google Ads API. Aby uzyskać klucz konta usługi, musisz mieć konto usługi.
Wymagania wstępne
Aby wywołać interfejs Google Ads API, wykonaj te czynności.
Konfigurowanie projektu w Konsoli interfejsów API Google na potrzeby dostępu do interfejsu Google Ads API
Projekt Google Cloud służy do zarządzania interfejsami API Google i danymi logowania OAuth 2.0. Istniejące projekty Google Cloud możesz znaleźć lub utworzyć, odwiedzając konsolę Google Cloud.
Zacznij od włączenia interfejsu Google Ads API w swoim projekcie:
Włączanie interfejsu Google Ads API
Następnie otwórz stronę Przegląd interfejsu Google Ads API. Na stronie wyświetla się Twój obecny poziom dostępu do interfejsu API. Jeśli Twój obecny poziom dostępu do interfejsu API to Test Poziom dostępu do konta, rozwiń sekcję Zgłoś prośbę o następny poziom dostępu. Postępuj zgodnie z instrukcjami, aby poprosić o poziom dostępu eksploratora.
Gdy wypełnisz zgłoszenie, Google automatycznie je sprawdzi i w większości przypadków przyzna Ci poziom dostępu eksploratora. Jeśli nie przyznano Ci poziomu dostępu eksploratora, nie martw się. W tym przewodniku znajdziesz odpowiednie instrukcje dotyczące konfigurowania konta klienta Google Ads.
Tworzenie konta usługi
Aby wywoływać interfejs API, musisz mieć konto usługi i klucz konta usługi. Jeśli używasz już innego interfejsu API Google i masz utworzone konto usługi oraz klucz OAuth 2.0, możesz pominąć ten krok i ponownie użyć dotychczasowych danych logowania.
Jak utworzyć konto usługi i klucz
- W konsoli Google Cloud kliknij Menu > Uprawnienia i administracja > Konta usługi.
- Wybierz konto usługi.
- Kliknij Klucze > Dodaj klucz > Utwórz nowy klucz.
- Wybierz JSON, a potem kliknij Utwórz.
Nowa para kluczy publicznych/prywatnych zostanie wygenerowana i pobrana na Twoje urządzenie jako nowy plik. Zapisz pobrany plik JSON jako
credentials.jsonw katalogu roboczym. Ten plik jest jedyną kopią tego klucza. - Kliknij Zamknij.
Konfigurowanie konta klienta Google Ads
Zacznij od określenia konta Google Ads, na którym chcesz wywoływać interfejs API. Rodzaj konta, na którym możesz wywoływać interfejs API, zależy od poziomu dostępu do interfejsu API w Twoim projekcie Google Cloud. Poziom dostępu do interfejsu API znajdziesz na stronie Przegląd interfejsu Google Ads API.
Poziomy dostępu eksploratora, podstawowy i standardowy
Możesz wywoływać interfejs API na swoim produkcyjnym koncie Google Ads. W razie potrzeby możesz jednak utworzyć testowe konto Google Ads, postępując zgodnie z instrukcjami na karcie Dostęp do konta testowego.
Poziom dostępu do konta testowego
Projektu Google Cloud nie można używać do wywoływania interfejsu API na produkcyjnym koncie Google Ads. Możesz wywoływać interfejs API tylko na testowych kontach Google Ads.
Jak utworzyć testowe konto Google Ads
Poniższe instrukcje pozwolą Ci utworzyć testowe konto menedżera Google Ads oraz a testowe konto reklamodawcy Google Ads.
Kliknij niebieski przycisk, aby utworzyć testowe konto menedżera Google Ads. Jeśli pojawi się prośba, zaloguj się na konto Google, które nie jest połączone z Twoim Google Ads produkcyjnym kontem menedżera. Jeśli nie masz takiego konta, kliknij przycisk Utwórz konto na tej stronie, aby utworzyć nowe konto Google.
- Na testowym koncie menedżera Google Ads utwórz testowe konto klienta Google Ads: kliknij Konta > > Utwórz nowe konto i wypełnij formularz. Wszystkie konta Google Ads utworzone na testowym koncie menedżera Google Ads są automatycznie testowymi kontami Google Ads.
- Opcjonalnie możesz utworzyć kilka kampanii na testowym koncie klienta Google Ads na stronie Google Ads.
Aby wywołać interfejs API na koncie klienta Google Ads, musisz przyznać swojemu kontu usługi dostęp do tego konta i odpowiednie uprawnienia. Aby to zrobić, musisz mieć dostęp administracyjny do konta klienta.
Jak przyznać kontu usługi dostęp do konta Google Ads
- Zacznij od zalogowania się na konto Google Ads jako administrator.
- Otwórz Administracja > Dostęp i bezpieczeństwo.
- Na karcie Użytkownicy kliknij przycisk .
- W polu E-mail wpisz adres e-mail konta usługi.
Wybierz odpowiedni poziom dostępu do konta i kliknij
Dodaj konto przycisk. Pamiętaj, że w przypadku
kont usługi poziom dostępu „E-mail” nie jest obsługiwany.
- Konto usługi ma teraz dostęp.
- [Opcjonalnie] Domyślnie nie możesz przyznać kontu usługi dostępu administratora. Jeśli wywołania interfejsu API wymagają dostępu administratora, możesz
go przyznać w ten sposób.
- W kolumnie Poziom dostępu kliknij strzałkę w dół obok poziomu dostępu konta usługi.
- Z listy wybierz Administrator.
Pobieranie narzędzi i bibliotek klienta
W zależności od tego, jak chcesz wywoływać interfejs API, możesz pobrać bibliotekę klienta lub klienta HTTP.
Korzystanie z biblioteki klienta
Pobierz i zainstaluj wybraną bibliotekę klienta.
Korzystanie z klienta HTTP (REST)
curl
Pobierz i zainstaluj curl, narzędzie wiersza poleceń do przesyłania danych za pomocą adresu URL.
Google Cloud CLI
Postępuj zgodnie z instrukcjami, aby zainstalować gcloud CLI.
Instrukcje w pozostałej części tego przewodnika zostały sprawdzone pod kątem zgodności z tą wersją narzędzia gcloud. Mogą one nie działać w przypadku wcześniejszych wersji ze względu na różnice w działaniu aplikacji lub opcjach wiersza poleceń.
:~$ gcloud version
Google Cloud SDK 492.0.0
alpha 2024.09.06
beta 2024.09.06
bq 2.1.8
bundled-python3-unix 3.11.9
core 2024.09.06
enterprise-certificate-proxy 0.3.2
gcloud-crc32c 1.0.0
gsutil 5.30Wywoływanie interfejsu API
Aby uzyskać instrukcje dotyczące wywoływania interfejsu API, wybierz klienta:
Java
Artefakty biblioteki klienta są publikowane w centralnym repozytorium Maven. Dodaj bibliotekę klienta jako zależność do swojego projektu w ten sposób:
Zależność Maven:
<dependency>
<groupId>com.google.api-ads</groupId>
<artifactId>google-ads</artifactId>
<version>45.0.0</version>
</dependency>
Zależność Gradle:
implementation 'com.google.api-ads:google-ads:45.0.0'
Do zarządzania wersjami zależności zalecamy też używanie zestawienia materiałów interfejsu Google Ads API (BOM). Instrukcje znajdziesz w przewodniku BOM.
Utwórz plik ~/ads.properties o tej zawartości:
api.googleads.serviceAccountSecretsPath=JSON_KEY_FILE_PATH
api.googleads.loginCustomerId=INSERT_LOGIN_CUSTOMER_ID_HERE
Utwórz obiekt GoogleAdsClient w ten sposób:
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);
}
Następnie uruchom raport kampanii za pomocą metody GoogleAdsService.SearchStream, aby pobrać
kampanie na swoim koncie.
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#
Pakiety biblioteki klienta są publikowane w repozytorium Nuget.org. Zacznij od dodania odwołania do pakietu Google.Ads.GoogleAds.
dotnet add package Google.Ads.GoogleAds --version 26.1.0Utwórz obiekt GoogleAdsConfig z odpowiednimi ustawieniami i użyj go do utworzenia obiektu GoogleAdsClient.
GoogleAdsConfig config = new GoogleAdsConfig()
{
OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT,
OAuth2SecretsJsonPath = "PATH_TO_CREDENTIALS_JSON",
LoginCustomerId = ******
};
GoogleAdsClient client = new GoogleAdsClient(config);
Następnie uruchom raport kampanii za pomocą metody GoogleAdsService.SearchStream, aby pobrać
kampanie na swoim koncie. Ten przewodnik nie zawiera szczegółowych informacji o
raportowaniu.
public void Run(GoogleAdsClient client, long customerId)
{
// Get the GoogleAdsService.
GoogleAdsServiceClient googleAdsService = client.GetService(
Services.V25.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
Pakiety biblioteki klienta są publikowane w repozytorium Packagist. Otwórz katalog główny projektu i uruchom to polecenie, aby zainstalować bibliotekę i wszystkie jej zależności w katalogu vendor/ w katalogu głównym projektu.
composer require googleads/google-ads-php:33.6.0Skopiuj plik
google_ads_php.ini
z repozytorium GitHub i zmodyfikuj go, aby uwzględnić swoje dane logowania.
[GOOGLE_ADS]
loginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE"
[OAUTH2]
jsonKeyFilePath = "INSERT_ABSOLUTE_PATH_TO_OAUTH2_JSON_KEY_FILE_HERE"
scopes = "https://www.googleapis.com/auth/adwords"
Utwórz instancję obiektu GoogleAdsClient.
$oAuth2Credential = (new OAuth2TokenBuilder())
->fromFile('/path/to/google_ads_php.ini')
->build();
$googleAdsClient = (new GoogleAdsClientBuilder())
->fromFile('/path/to/google_ads_php.ini')
->withOAuth2Credential($oAuth2Credential)
->build();
Następnie uruchom raport kampanii za pomocą metody GoogleAdsService.SearchStream, aby pobrać
kampanie na swoim koncie.
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
Biblioteka klienta jest rozpowszechniana w PyPI
i można ją zainstalować za pomocą polecenia pip
w ten sposób:
python -m pip install google-ads==31.2.0Skopiuj plik
google-ads.yaml z repozytorium
GitHub i zmodyfikuj go, aby uwzględnić swoje dane logowania.
login_customer_id: INSERT_LOGIN_CUSTOMER_ID_HERE
json_key_file_path: JSON_KEY_FILE_PATH_HERE
Utwórz instancję GoogleAdsClient, wywołując metodę
GoogleAdsClient.load_from_storage. Podczas wywoływania metody przekaż ścieżkę do pliku google-ads.yaml jako ciąg znaków:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage("path/to/google-ads.yaml")
Dodaj do rejestratora biblioteki moduł obsługi, który określi, gdzie mają być zapisywane logi.
Poniższy kod spowoduje, że rejestrator biblioteki będzie zapisywać logi w konsoli (stdout).
import logging
import sys
logger = logging.getLogger('google.ads.googleads.client')
logger.addHandler(logging.StreamHandler(sys.stdout))
Następnie uruchom raport kampanii za pomocą metody GoogleAdsService.SearchStream, aby pobrać
kampanie na swoim koncie.
def main(client: GoogleAdsClient, customer_id: str) -> None:
ga_service: GoogleAdsServiceClient = client.get_service("GoogleAdsService")
query: str = """
SELECT
campaign.id,
campaign.name
FROM campaign
ORDER BY campaign.id"""
# Issues a search request using streaming.
stream: Iterator[SearchGoogleAdsStreamResponse] = ga_service.search_stream(
customer_id=customer_id, query=query
)
for batch in stream:
rows: List[GoogleAdsRow] = batch.results
for row in rows:
print(
f"Campaign with ID {row.campaign.id} and name "
f'"{row.campaign.name}" was found.'
)
Ruby
Gemy Ruby dla biblioteki klienta są publikowane w witrynie Rubygems hosting. Zalecamy instalację za pomocą narzędzia Bundler. Dodaj wiersz do pliku Gemfile:
gem 'google-ads-googleads', '~> 43.0.0'
Następnie uruchom:
bundle installSkopiuj plik
google_ads_config.rb
z repozytorium GitHub i zmodyfikuj go, aby uwzględnić swoje dane logowania.
Google::Ads::GoogleAds::Config.new do |c|
c.login_customer_id = 'INSERT_LOGIN_CUSTOMER_ID_HERE'
c.keyfile = 'JSON_KEY_FILE_PATH'
end
Utwórz instancję GoogleAdsClient, przekazując ścieżkę do miejsca, w którym przechowujesz ten plik.
client = Google::Ads::GoogleAds::GoogleAdsClient.new('path/to/google_ads_config.rb')
Następnie uruchom raport kampanii za pomocą metody GoogleAdsService.SearchStream, aby pobrać
kampanie na swoim koncie.
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
Biblioteka jest rozpowszechniana w
CPAN. Zacznij od sklonowania repozytorium google-ads-perl w wybranym katalogu.
git clone https://github.com/googleads/google-ads-perl.gitOtwórz katalog google-ads-perl i uruchom w wierszu poleceń to polecenie, aby zainstalować wszystkie zależności potrzebne do korzystania z biblioteki.
cd google-ads-perlcpan install Module::Buildperl Build.PLperl Build installdeps
Skopiuj plik
googleads.properties
z repozytorium GitHub i zmodyfikuj go, aby uwzględnić swoje dane logowania.
jsonKeyFilePath=JSON_KEY_FILE_PATH
loginCustomerId=INSERT_LOGIN_CUSTOMER_ID_HERE
Utwórz instancję Client, przekazując ścieżkę do miejsca, w którym przechowujesz ten plik.
my $properties_file = "/path/to/googleads.properties";
my $api_client = Google::Ads::GoogleAds::Client->new({
properties_file => $properties_file
});
Następnie uruchom raport kampanii za pomocą metody GoogleAdsService.SearchStream, aby pobrać
kampanie na swoim koncie.
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::V25::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;
}
curl
Zacznij od ustawienia konta usługi jako aktywnych danych logowania w gcloud CLI.
gcloud auth login --cred-file=PATH_TO_CREDENTIALS_JSONNastępnie pobierz token dostępu OAuth 2.0 do interfejsu Google Ads API.
gcloud auth \
print-access-token \
--scopes='https://www.googleapis.com/auth/adwords'Następnie uruchom raport kampanii za pomocą metody GoogleAdsService.SearchStream, aby pobrać
kampanie na swoim koncie.
curl -i -X POST https://googleads.googleapis.com/v25/customers/CUSTOMER_ID/googleAds:searchStream \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "developer-token: DEVELOPER_TOKEN" \
-H "login-customer-id: LOGIN_CUSTOMER_ID" \
--data-binary "@query.json"Zawartość pliku query.json jest taka:
{
"query": "SELECT campaign.id, campaign.name, campaign.network_settings.target_content_network FROM campaign ORDER BY campaign.id"
}
Jeśli podczas pierwszego wywołania wystąpią błędy, zapoznaj się z artykułem Obsługa błędów interfejsu API, aby uzyskać wskazówki dotyczące rozwiązywania problemów.