Z tego krótkiego przewodnika dowiesz się, jak wykonać pierwsze wywołanie interfejsu Google Ads API.
Kluczowe pojęcia
- 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 do interfejsu API OAuth 2.0. Możesz go utworzyć w konsoli Google Cloud.
- Poziom dostępu do interfejsu API: poziom dostępu do interfejsu API w projekcie Google Cloud określa liczbę wywołań interfejsu API, które możesz wykonać dziennie, oraz środowiska, w których możesz wykonywać wywołania interfejsu API. Poziom dostępu do interfejsu API w projekcie znajdziesz 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, na które chcesz kierować wywołania interfejsu API.
- Identyfikator klienta: 10-cyfrowy numer identyfikujący konto klienta Google Ads. Jeśli ten identyfikator został skopiowany z interfejsu Google Ads, usuń łączniki.
- OAuth 2.0: OAuth 2.0 to standardowy protokół branżowy do autoryzacji, używany przez wszystkie interfejsy API Google. Aby wygenerować dane logowania OAuth 2.0 i wykonywać wywołania interfejsu API, potrzebujesz konta usługi i klucza.
- Konto usługi: specjalny rodzaj konta Google, które należy do aplikacji, a nie do użytkownika. Służy on 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 do uwierzytelniania 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 chmurze pod kątem dostępu do interfejsu Google Ads API
Projekt Google Cloud służy do zarządzania interfejsami API Google i danymi logowania do interfejsu API OAuth 2.0. Istniejące projekty Google Cloud możesz znaleźć lub utworzyć w konsoli Google Cloud.
Zacznij od włączenia interfejsu Google Ads API w projekcie:
Włączanie interfejsu Google Ads API
Następnie wejdź na stronę z omówieniem interfejsu Google Ads API. Na stronie wyświetli się Twój obecny poziom dostępu do interfejsu API. Jeśli Twój obecny poziom dostępu do interfejsu API to Test, rozwiń sekcję Podnieś poziom dostępu. Postępuj zgodnie z instrukcjami, aby poprosić o poziom dostępu Odkrywca.
Gdy wypełnisz zgłoszenie, Google automatycznie je sprawdzi i w większości przypadków uaktualni Twoje konto do poziomu Explorer. Jeśli nie masz dostępu do Eksploratora, nie martw się – w tym przewodniku znajdziesz odpowiednie instrukcje dotyczące konfigurowania konta klienta Google Ads.
Tworzenie konta usługi
Aby wykonywać wywołania interfejsu API, potrzebujesz konta usługi i klucza konta usługi. Jeśli używasz już innego interfejsu API Google i masz utworzone konto usługi OAuth 2.0 oraz klucz, możesz pominąć ten krok i użyć dotychczasowych danych logowania.
Jak utworzyć konto usługi i klucz
- W konsoli Google Cloud otwórz Menu > Administracja i uprawnienia > Konta usługi.
- Wybierz konto usługi.
- Kliknij Klucze > Dodaj klucz > Utwórz nowy klucz.
- Wybierz JSON, a następnie 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. Nie zatwierdzaj plikucredentials.jsonw systemie kontroli wersji (np. dodaj go do pliku.gitignore). - Kliknij Zamknij.
Konfigurowanie konta klienta Google Ads
Zacznij od zidentyfikowania konta Google Ads, na którym wykonujesz wywołania interfejsu API. Typ konta, na którym możesz wywoływać interfejs API, zależy od poziomu dostępu do interfejsu API w projekcie Google Cloud. Aby sprawdzić swój poziom dostępu do interfejsu API, wejdź na stronę Przegląd interfejsu Google Ads API.
Poziomy dostępu: Eksplorator, Basic i dostęp standardowy
Możesz wysyłać wywołania do swojego produkcyjnego konta Google Ads. W razie potrzeby możesz jednak utworzyć konto testowe Google Ads, postępując zgodnie z instrukcjami na karcie Dostęp testowy.
Testowanie dostępu
Projektu Google Cloud nie można używać do wywoływania interfejsu API na koncie produkcyjnym Google Ads. Wywołania interfejsu API możesz wykonywać tylko na kontach testowych Google Ads.
Jak utworzyć konto testowe Google Ads
Poniższe instrukcje pozwalają utworzyć testowe konto menedżera Google Ads i testowe konto reklamodawcy Google Ads.
Kliknij niebieski przycisk, aby utworzyć testowe konto menedżera Google Ads. Jeśli pojawi się taka prośba, zaloguj się na konto Google, które nie jest połączone z produkcyjnym kontem menedżera Google Ads. Jeśli nie masz 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 utwórz kilka kampanii na testowym koncie klienta Google Ads na stronie Google Ads.
Aby wywołać interfejs API na koncie klienta Google Ads, musisz przyznać kontu usługi dostęp do konta klienta Google Ads 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.
- Kliknij kolejno Administracja > Dostęp i bezpieczeństwo.
- Kliknij przycisk na karcie Użytkownicy.
- Wpisz adres e-mail konta usługi w polu E-mail.
Wybierz odpowiedni poziom dostępu do konta i kliknij przycisk Dodaj konto. Pamiętaj, że w przypadku kont usługi nie jest obsługiwany poziom dostępu „Tylko e-maile”.
- Konto usługi otrzyma dostęp.
- [Opcjonalnie] Podczas początkowej konfiguracji nie możesz przyznać kontu usługi dostępu administratora. Jeśli wywołania interfejsu API wymagają dostępu administratora, możesz go uaktualnić 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
Możesz pobrać bibliotekę klienta lub klienta HTTP, w zależności od tego, jak chcesz wykonywać wywołania interfejsu API.
Korzystanie z biblioteki klienta
Pobierz i zainstaluj wybraną bibliotekę klienta.
Używanie klienta HTTP (REST)
curl
Pobierz i zainstaluj curl, narzędzie wiersza poleceń do przesyłania danych przez adres URL.
Interfejs wiersza poleceń Google Cloud
Aby zainstalować gcloud CLI, postępuj zgodnie z przewodnikiem instalacji Google Cloud CLI.
Instrukcje zawarte w pozostałej części tego przewodnika zostały zweryfikowane pod kątem działania z tą wersją narzędzia gcloud i mogą nie działać z poprzednimi wersjami ze względu na różnice w zachowaniu 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
Wybierz klienta, aby zobaczyć instrukcje wykonywania wywołania interfejsu API:
Java
Artefakty biblioteki klienta są publikowane w repozytorium Maven Central.
Aby zarządzać wersjami zależności i zapobiegać konfliktom, zapoznaj się z przewodnikiem po liście materiałów (BoM) interfejsu Google Ads API.
Jeśli nie używasz BOM, dodaj bibliotekę klienta bezpośrednio do projektu, korzystając z jednego z tych narzędzi do kompilacji:
Maven: dodaj do pliku pom.xml tę zależność:
<dependency>
<groupId>com.google.api-ads</groupId>
<artifactId>google-ads</artifactId>
<version>48.1.0</version>
</dependency>
Gradle dodaj do pliku build.gradle tę zależność:
implementation 'com.google.api-ads:google-ads:48.1.0'
Utwórz plik ads.properties w katalogu głównym (~/ads.properties w systemie Linux i macOS lub %USERPROFILE%\ads.properties w systemie Windows) z tą zawartością:
api.googleads.serviceAccountSecretsPath=JSON_KEY_FILE_PATH
api.googleads.loginCustomerId=INSERT_LOGIN_CUSTOMER_ID_HERE
Zanim zaczniesz wysyłać żądania do interfejsu API, utwórz instancję GoogleAdsClient. Domyślnie fromPropertiesFile() wczytuje dane logowania z pliku ads.properties znajdującego się w katalogu głównym:
GoogleAdsClient googleAdsClient;
try {
googleAdsClient = GoogleAdsClient.newBuilder().fromPropertiesFile().build();
} catch (IOException e) {
System.err.printf("Failed to create GoogleAdsClient: %s%n", e);
throw new RuntimeException("Initialization failed", e);
}
Następnie utwórz raport kampanii za pomocą GoogleAdsService.SearchStream, aby skutecznie przesyłać strumieniowo duże zestawy wyników i pobierać kampanie na 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 NuGet do pakietu Google.Ads.GoogleAds:
dotnet add package Google.Ads.GoogleAds --version 27.6.0Aby wykonywać wywołania interfejsu API, utwórz obiekt GoogleAdsConfig na podstawie ustawień konfiguracji (takich jak appsettings.json, zmienne środowiskowe lub ustawienia niestandardowe) i przekaż go, aby zainicjować instancję GoogleAdsClient:
GoogleAdsConfig config = new GoogleAdsConfig()
{
OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT,
OAuth2SecretsJsonPath = "JSON_KEY_FILE_PATH",
LoginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE"
};
GoogleAdsClient client = new GoogleAdsClient(config);
Następnie utwórz raport kampanii, korzystając z metody GoogleAdsService.SearchStream, aby pobrać kampanie na 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.V26.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.
Upewnij się, że masz zainstalowaną zgodną wersję PHP i Composer, a następnie przejdź do katalogu głównego projektu i uruchom to polecenie, aby zainstalować bibliotekę i jej zależności w katalogu vendor/ projektu:
composer require googleads/google-ads-php:35.3.0Utwórz kopię pliku google_ads_php.ini z repozytorium GitHub, zapisz ją w katalogu głównym lub katalogu głównym projektu i zmodyfikuj, aby zawierała Twoje dane logowania:
[GOOGLE_ADS]
loginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE"
[OAUTH2]
jsonKeyFilePath = "JSON_KEY_FILE_PATH"
scopes = "https://www.googleapis.com/auth/adwords"
Utwórz instancję GoogleAdsClient za pomocą pliku konfiguracji google_ads_php.ini:
use Google\Ads\GoogleAds\Lib\OAuth2TokenBuilder;
use Google\Ads\GoogleAds\Lib\V26\GoogleAdsClientBuilder;
$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 utwórz raport dotyczący kampanii, używając metody GoogleAdsService.SearchStream, aby pobrać kampanie na 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 interfejsu Google Ads API dla języka Python jest rozpowszechniana w PyPI. Sprawdź, czy masz zainstalowaną obsługiwaną wersję Pythona, a następnie zainstaluj bibliotekę za pomocą pip:
python -m pip install google-ads==35.0.0Aby uwierzytelniać wywołania interfejsu API, skonfiguruj plik google-ads.yaml:
- Pobierz kopię przykładowego pliku
google-ads.yamlz repozytorium GitHub. - Zapisz plik w katalogu głównym (
~/google-ads.yaml) lub w niestandardowej ścieżce. Otwórz plik
google-ads.yamli zaktualizuj go, aby zawierał Twoje dane logowania:login_customer_id: INSERT_LOGIN_CUSTOMER_ID_HERE json_key_file_path: JSON_KEY_FILE_PATHSkonfiguruj logowanie przed zainicjowaniem klienta, aby biblioteka rejestrowała wszystkie ostrzeżenia dotyczące inicjowania lub konfiguracji. Poniższy przykład konfiguruje logger biblioteki tak, aby wysyłał logi
INFOdo standardowego strumienia wyjścia (stdout):
import logging
import sys
logger = logging.getLogger("google.ads.googleads.client")
logger.setLevel(logging.INFO)
logger.addHandler(logging.StreamHandler(sys.stdout))
Utwórz instancję GoogleAdsClient, wywołując metodę GoogleAdsClient.load_from_storage i przekazując ścieżkę do pliku google-ads.yaml:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage("path/to/google-ads.yaml")
Jeśli pominiesz argument ścieżki, load_from_storage() domyślnie wyszuka plik konfiguracji w katalogu głównym (~/google-ads.yaml).
Następnie utwórz raport dotyczący kampanii, używając metody GoogleAdsService.SearchStream, aby pobrać kampanie na 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 na stronie RubyGems. Sprawdź, czy masz zainstalowaną obsługiwaną wersję Ruby, i użyj Bundlera, aby zainstalować bibliotekę:
Dodaj gem do pliku
Gemfileaplikacji:gem 'google-ads-googleads', '~> 46.1.0'Zainstaluj gem, uruchamiając polecenie:
bundle install
Aby skonfigurować dane logowania:
- Skopiuj przykładowy plik
google_ads_config.rbz repozytorium GitHub. - Zapisz plik w katalogu głównym projektu lub w katalogu domowym (
~). Otwórz plik
google_ads_config.rbi zastąp wartości zmiennych danymi logowania do interfejsu Google Ads API:Google::Ads::GoogleAds::Config.new do |c| c.login_customer_id = 'INSERT_LOGIN_CUSTOMER_ID_HERE' c.keyfile = 'JSON_KEY_FILE_PATH' endUtwórz instancję
GoogleAdsClient, przekazując ścieżkę do pliku konfiguracji (google_ads_config.rb):
client = Google::Ads::GoogleAds::GoogleAdsClient.new(
'path/to/google_ads_config.rb'
)
Następnie utwórz raport kampanii za pomocą metody GoogleAdsService.SearchStream, aby pobrać kampanie na 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 klienta Perl jest rozpowszechniana w CPAN i wymaga Perla w wersji 5.28 lub nowszej oraz menedżera pakietów cpan lub cpanm.
Sklonuj repozytorium
google-ads-perlw wybranym katalogu:git clone https://github.com/googleads/google-ads-perl.gitPrzejdź do katalogu
google-ads-perli uruchom te polecenia, aby zainstalować wymagane zależności i utworzyć bibliotekę:cd google-ads-perl cpan install Module::Build perl Build.PL perl Build installdeps perl Build perl Build install
Aby skonfigurować dane logowania:
Skopiuj przykładowy plik konfiguracji
googleads.propertiesz repozytorium GitHub do katalogu domowego (~/googleads.properties):cp googleads.properties ~/googleads.propertiesZmodyfikuj plik
~/googleads.properties, aby uwzględnić swoje dane logowania:jsonKeyFilePath=JSON_KEY_FILE_PATH loginCustomerId=INSERT_LOGIN_CUSTOMER_ID_HEREUtwórz instancję
Client, przekazując ścieżkę do skonfigurowanego plikugoogleads.properties(np.~/googleads.properties):
my $api_client = Google::Ads::GoogleAds::Client->new({
properties_file => "/path/to/googleads.properties"
});
Następnie utwórz raport dotyczący kampanii, używając metody GoogleAdsService.SearchStream, aby pobrać kampanie na 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::V26::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;
}
Po uruchomieniu skrypt przesyła strumieniowo pasujące wiersze i wyświetla identyfikator oraz nazwę każdej kampanii na Twoim koncie.
curl
Zacznij od ustawienia konta usługi jako aktywnych danych logowania w interfejsie wiersza poleceń gcloud.
gcloud auth login --cred-file=JSON_KEY_FILE_PATHNastępnie pobierz token dostępu OAuth 2.0 dla interfejsu Google Ads API.
gcloud auth \
print-access-token \
--scopes='https://www.googleapis.com/auth/adwords'Utwórz plik o nazwie query.json zawierający żądanie w języku Google Ads Query Language (GAQL):
{
"query": "SELECT campaign.id, campaign.name, campaign.network_settings.target_content_network FROM campaign ORDER BY campaign.id"
}
Aby pobrać kampanie na koncie, wygeneruj raport kampanii za pomocą metody GoogleAdsService.SearchStream:
curl -i -X POST \
https://googleads.googleapis.com/v26/customers/CUSTOMER_ID/googleAds:searchStream \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "login-customer-id: LOGIN_CUSTOMER_ID" \
--data-binary "@query.json"Jeśli podczas pierwszego wywołania wystąpią błędy, zapoznaj się z artykułem Obsługa błędów interfejsu API, aby dowiedzieć się, jak rozwiązać problem.