В следующих разделах описывается, как начать работу с API отчетов Search Ads 360.
Настройте свой проект в Google Cloud
Чтобы использовать API отчетов Search Ads 360, вам необходимо создать проект для вашего приложения в Google Cloud.
Создать проект Google
Проект Google служит контейнером ресурсов для ваших ресурсов Google Cloud.
- Go to the Google API Console.
- Нажмите Создать проект .
- Введите имя или примите предложенное.
- Подтвердите или отредактируйте оставшиеся поля.
- Нажмите «Создать» .
Создать учетные данные OAuth2
API отчётности Search Ads 360 использует OAuth 2.0 для аутентификации и авторизации. Учётные данные OAuth идентифицируют ваше приложение в Google и позволяют генерировать токены OAuth для управления пользователями Search Ads 360.
Чтобы создать учетные данные OAuth 2.0 в Google API Console, сделайте следующее:
- Go to the Clients page.
- Нажмите «Создать учетные данные» > «Идентификатор клиента OAuth».
- Выберите тип вашего приложения.
- Заполните форму и нажмите «Создать» .
Включить API отчетов Search Ads 360
Чтобы использовать API, необходимо включить Search Ads 360 Reporting API для вашего проекта в консоли API Google.
Чтобы включить API для вашего проекта:
- Open the API Library в Google API Console.
- If prompted, select a project, or create a new one. The API Library перечисляет все доступные API, сгруппированные по семействам продуктов и популярности.
- Если API, который вы хотите включить, не отображается в списке, воспользуйтесь поиском, чтобы найти его, или нажмите «Просмотреть все» в семействе продуктов, к которому он принадлежит.
- Выберите API, который вы хотите включить, затем нажмите кнопку Включить .
- If prompted, enable billing.
- If prompted, read and accept the API's Terms of Service.
При желании включите выставление счетов для вашего проекта
Использование API отчётов Search Ads 360 в Google Cloud бесплатно. Однако существует квота на общее количество бесплатных проектов Cloud для каждого аккаунта. Если вы достигли лимита, вы можете зарегистрировать новый аккаунт Google с квотой на бесплатные проекты.
Чтобы включить выставление счетов для вашего проекта:
- Посетите Billing page.
- Если у вас нет активной учетной записи для выставления счетов, создайте ее, нажав «Добавить учетную запись для выставления счетов» и следуя инструкциям.
Включите экран согласия вашего проекта
Чтобы включить экран согласия вашего проекта:
- Откройте Branding page в Google Cloud Console.
- If prompted, select a project, or create a new one.
- Заполните форму и нажмите кнопку Сохранить .
Создание, редактирование или просмотр URI перенаправления
Чтобы создать, просмотреть или отредактировать URI перенаправления для заданных учетных данных OAuth 2.0, выполните следующие действия:
- Go to the Clients page.
- Щелкните по клиенту.
- Просмотр или редактирование URI перенаправления.
Если на странице «Клиенты» нет клиента, значит, в вашем проекте нет учётных данных OAuth. Чтобы создать их, нажмите «Создать клиента» .
Загрузить клиентскую библиотеку
Использование клиентской библиотеки Search Ads 360 Reporting API является рекомендуемым способом подключения к Search Ads 360 Reporting API.
Загрузите клиентскую библиотеку Search Ads 360 Reporting API для вашей среды разработки. Следуйте инструкциям по настройке файла конфигурации клиентской библиотеки для вашего языка. В большинстве случаев вы можете повторно использовать существующую конфигурацию при переходе на новую клиентскую библиотеку Search Ads 360 Reporting API.
Одним из важных изменений стал новый заголовок login-customer-id
. Подробнее о том, когда необходимо добавлять этот заголовок в конфигурацию, см. в разделе «Заголовок Login customer ID».
Сделайте свой первый звонок
После настройки клиентской библиотеки вы можете совершить свой первый звонок.
Получить кампании
В вашей IDE выполните следующий код:
Ява
// Copyright 2022 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 sample; import com.beust.jcommander.Parameter; import com.google.ads.searchads360.v0.lib.SearchAds360Client; import com.google.ads.searchads360.v0.services.SearchAds360Row; import com.google.ads.searchads360.v0.services.SearchAds360ServiceClient; import com.google.ads.searchads360.v0.services.SearchAds360ServiceClient.SearchPagedResponse; import com.google.ads.searchads360.v0.services.SearchSearchAds360Request; /** Get campaign details. */ public class GetCampaigns { private static final int PAGE_SIZE = 200; private static class GetCampaignsParams extends CodeSampleParams { @Parameter(names = "--customerId", required = true) private String customerId; @Parameter(names = "--loginCustomerId") private String loginCustomerId; } public static void main(String[] args) { GetCampaignsParams params = new GetCampaignsParams(); if (!params.parseArguments(args)) { // Optional: You may pass the loginCustomerId on the command line or specify a loginCustomerId // here (10 digits, no dashes). If neither are set, customerId will be used as // loginCustomerId. // params.loginCustomerId = Long.parseLong("INSERT_LOGIN_CUSTOMER_ID_HERE"); } final String loginCustomerId = params.loginCustomerId; final String customerId = params.customerId; try { // Creates a SearchAds360Client with the specified loginCustomerId. If there's // no loginCustomerId, customerId will be used instead. final SearchAds360Client searchAds360Client = SearchAds360Client.newBuilder() .setLoginCustomerId(loginCustomerId == null ? customerId : loginCustomerId) .fromPropertiesFile() .build(); // Creates the Search Ads 360 Service client. SearchAds360ServiceClient client = searchAds360Client.create(); new GetCampaigns().runExample(client, customerId); } catch (Exception exception) { System.err.printf("Failed with exception: %s%n", exception); exception.printStackTrace(); System.exit(1); } } private void runExample(SearchAds360ServiceClient searchAds360ServiceClient, String customerId) { // Creates a query that retrieves all campaigns under the customerId. String query = """ SELECT campaign.name, campaign.id, campaign.status FROM campaign """; SearchSearchAds360Request request = SearchSearchAds360Request.newBuilder() .setCustomerId(customerId) .setQuery(query) .setPageSize(PAGE_SIZE) .build(); // Issues a search request. final SearchPagedResponse searchPagedResponse = searchAds360ServiceClient.search(request); for (SearchAds360Row element : searchPagedResponse.iterateAll()) { System.out.printf( "Campaign found with name '%s', ID %d, and status: %s.%n", element.getCampaign().getName(), element.getCampaign().getId(), element.getCampaign().getStatus()); } } }
Питон
#!/usr/bin/env python # Copyright 2022 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. """Retrieves campaigns for a customer using a pagination search request.""" import argparse import traceback from google.ads.searchads360.v0.services.types.search_ads360_service import SearchSearchAds360Request from util_searchads360 import SearchAds360Client _DEFAULT_PAGE_SIZE = 10000 def main(client, customer_id, page_size) -> None: search_ads_360_service = client.get_service() query = """ SELECT campaign.name, campaign.id, campaign.status FROM campaign""" request = SearchSearchAds360Request() request.customer_id = customer_id request.query = query request.page_size = page_size # Issues a search request. results = search_ads_360_service.search(request=request) for row in results: campaign = row.campaign print( f'campaign "{campaign.name}" has id {campaign.id} and status {campaign.status.name}' ) if __name__ == "__main__": # SearchAds360Client will read the search-ads-360.yaml configuration file in # the home directory if none is specified. search_ads_360_client = SearchAds360Client.load_from_file() parser = argparse.ArgumentParser( description=("Retrieves campaigns for a customer.")) # Arguments to provide to run the example. parser.add_argument( "-c", "--customer_id", type=str, required=True, help="The Search Ads 360 customer ID (10 digits, no dashes).", ) parser.add_argument( "-l", "--login_customer_id", type=str, required=False, help="The Search Ads 360 login customer ID (10 digits, no dashes).", ) args = parser.parse_args() search_ads_360_client.set_ids(args.customer_id, args.login_customer_id) try: main(search_ads_360_client, args.customer_id, _DEFAULT_PAGE_SIZE) except Exception: # pylint: disable=broad-except traceback.print_exc()
Консоль должна вывести список кампаний в вашем аккаунте.
Использовать REST
Если вы решили не использовать клиентскую библиотеку, вам необходимо понять, как использовать REST.
Если вы использовали REST со старым API Search Ads 360, ваши учётные данные по-прежнему будут работать с новым API отчётности Search Ads 360. Информация о новой конечной точке и другие сведения приведены в разделе справки по REST .
Узнать больше
Узнайте больше об API отчетности Search Ads 360