Начать

Campaign Manager 360 API обеспечивает алгоритмический доступ к информации из вашего аккаунта Менеджера кампаний 360. Он позволяет создавать кампании и отчеты и управлять ими так же, как и в веб-сервисах "Менеджер кампаний 360" и "Редактор отчетов".

В этом руководстве рассказывается, как начать работу с Campaign Manager 360 API.

Требования

Прежде чем начать работу с Менеджером кампаний 360 API, необходимо выполнить следующие действия:

  1. У вас должен быть аккаунт Менеджера кампаний 360. Информацию о регистрации можно найти в разделе Рекламодатели и агентства.

  2. В вашем аккаунте Менеджера кампаний 360 должен быть включен доступ к API. В большинстве аккаунтов она включена по умолчанию. Если вы не уверены, что это так, обратитесь к специалисту по работе с аккаунтом или в службу поддержки Менеджера кампаний 360.

  3. У вас должен быть профиль пользователя с доступом к этому аккаунту. Попросите администратора аккаунта Менеджера кампаний 360 создать профиль пользователя, связанный с этим аккаунтом.

  4. Проверьте разрешения профиля пользователя в интерфейсе Менеджера кампаний 360. Они определяют, к каким данным API у профиля пользователя есть доступ. Отдельных разрешений для API нет.

Как создать проект

Чтобы начать работу с Campaign Manager 360 API, сначала нужно создать или выбрать проект в Google API Console и включить API. Перейдя по этой ссылке, вы сможете выполнить все необходимые действия и автоматически активировать API Менеджера кампаний 360.

Создание учетных данных

Все запросы к Campaign Manager 360 API должны быть авторизованы. Советуем изучить общую информацию об авторизации запросов и идентификации приложения в Google.

Ниже приведены инструкции по созданию идентификатора клиента OAuth 2.0 для использования с процессом установленного приложения. Инструкции по созданию учетных данных для использования с сервисным аккаунтом приведены в руководстве по сервисным аккаунтам.

  1. Следуйте инструкциям по настройке проекта Google API Console.

  2. Откройте раздел Учетные данные в API Console.
  3. Нажмите Создать учетные данные > Идентификатор клиента OAuth.

    1. Если вы не настроили окно запроса доступа OAuth для этого проекта ранее, вам будет предложено сделать это сейчас. Нажмите Настроить окно запроса доступа.

    2. Выберите тип пользователя и нажмите Создать.

    3. Заполните форму. При необходимости вы сможете изменить ее позже. Нажмите Сохранить.

    4. Чтобы продолжить, вернитесь в раздел Учетные данные > Создать учетные данные > Идентификатор клиента OAuth.

  4. Выберите компьютерное приложение в качестве типа приложения, укажите название и нажмите Создать.

После этого вы получите идентификатор клиента OAuth 2.0 и секретный код клиента, которые можно скачать в формате JSON и сохранить для дальнейшего использования.

Установка клиентской библиотеки

API Менеджера кампаний 360 основан на технологиях HTTP и JSON, поэтому для отправки запросов и обработки ответов подходит любой стандартный HTTP-клиент.

Однако мы рекомендуем работать с клиентскими библиотеками API Google, поскольку они обеспечивают более высокий уровень безопасности, поддержку запросов, требующих авторизации, и более эффективную интеграцию языков. Клиентские библиотеки доступны на различных языках программирования. Используя их, вы сможете избежать необходимости вручную настраивать HTTP-запросы и анализировать ответы.

Сначала выберите язык программирования, на котором вы пишете код.

C#

Установите последнюю версию клиентской библиотеки Campaign Manager 360 API для .NET. Для управления установкой рекомендуется использовать NuGet.

Откройте консоль диспетчера пакетов NuGet и выполните следующую команду:

Install-Package Google.Apis.Dfareporting.v5

Подробнее

Java

Установите последнюю версию клиентской библиотеки Campaign Manager 360 API для Java. Для управления установкой рекомендуется использовать Maven.

Добавьте в файл pom.xml следующую зависимость:

<dependency>
  <groupId>com.google.apis</groupId>
  <artifactId>google-api-services-dfareporting</artifactId>
  <version>v5-rev20260511-2.0.0</version>
  <exclusions>
    <exclusion>
      <groupId>com.google.guava</groupId>
      <artifactId>guava-jdk5</artifactId>
    </exclusion>
  </exclusions>
</dependency>

Подробнее

PHP

Установите последнюю версию клиентской библиотеки Campaign Manager 360 API для PHP. Для управления установкой рекомендуется использовать Composer.

Откройте терминал и выполните следующую команду:

composer require google/apiclient

Если вы уже установили библиотеку и хотите обновить ее до последней версии, выполните следующую команду:

composer update google/apiclient

В некоторых системах перед этими командами нужно добавлять элемент sudo.

Подробнее

Python

Установите последнюю версию клиентской библиотеки Campaign Manager 360 API для Python. Для управления установкой рекомендуется использовать pip.

Откройте терминал и выполните следующую команду:

pip install --upgrade google-api-python-client

В некоторых системах перед этими командами нужно добавлять элемент sudo.

Подробнее

Ruby

Установите последнюю версию клиентской библиотеки Campaign Manager 360 API для Ruby. Для управления установкой рекомендуется использовать RubyGems.

Откройте терминал и выполните следующую команду:

gem install google-api-client

Если вы уже установили библиотеку и хотите обновить ее до последней версии, выполните следующую команду:

gem update -y google-api-client

В некоторых системах перед этими командами нужно добавлять элемент sudo.

Подробнее

Другие поддерживаемые языки можно найти на странице Клиентские библиотеки.

Отправить запрос

После того как вы создадите учетные данные OAuth 2.0 и установите клиентскую библиотеку, вы сможете начать работу с API Менеджера кампаний 360. Ниже вы найдете краткое руководство по авторизации, настройке клиента и созданию первого запроса.

C#

  1. Загрузите файл с секретным кодом клиента и сгенерируйте учетные данные для авторизации.

    При первом выполнении этого шага вам будет предложено принять запрос на авторизацию в браузере. Прежде чем принять приглашение, убедитесь, что вы вошли в аккаунт Google, у которого есть доступ к Менеджеру кампаний 360. Ваше приложение получит доступ к данным от имени аккаунта, в который вы вошли.

    // Load client secrets from the specified JSON file.
    GoogleClientSecrets clientSecrets;
    using(Stream json = new FileStream(pathToJsonFile, FileMode.Open, FileAccess.Read)) {
      clientSecrets = GoogleClientSecrets.FromStream(json);
    }
    
    // Create an asynchronous authorization task.
    //
    // Note: providing a data store allows auth credentials to be cached, so they survive multiple
    // runs of the application. This avoids prompting the user for authorization every time the
    // access token expires, by remembering the refresh token. The "user" value is used to
    // identify a specific set of credentials within the data store. You may provide different
    // values here to persist credentials for multiple users to the same data store.
    Task<UserCredential> authorizationTask = GoogleWebAuthorizationBroker.AuthorizeAsync(
        clientSecrets.Secrets,
        OAuthScopes,
        "user",
        CancellationToken.None,
        dataStore,
        new ManualCodeReceiver());
    
    // Authorize and persist credentials to the data store.
    UserCredential credential = authorizationTask.Result;
  2. Создайте авторизованный клиент Dfareporting.

    // Create a Dfareporting service object.
    //
    // Note: application name should be replaced with a value that identifies your application.
    service = new DfareportingService(
        new BaseClientService.Initializer {
          HttpClientInitializer = credential,
          ApplicationName = "C# installed app sample"
        }
    );
  3. Выполните операцию.

    // Retrieve and print all user profiles for the current authorized user.
    UserProfileList profiles = service.UserProfiles.List().Execute();
    
    foreach (UserProfile profile in profiles.Items) {
      Console.WriteLine("Found user profile with ID {0} and name \"{1}\".",
          profile.ProfileId, profile.UserName);
    }

Java

  1. Загрузите файл с секретным кодом клиента и сгенерируйте учетные данные для авторизации.

    При первом выполнении этого шага вам будет предложено принять запрос на авторизацию в браузере. Прежде чем принять приглашение, убедитесь, что вы вошли в аккаунт Google, у которого есть доступ к Менеджеру кампаний 360. Ваше приложение получит доступ к данным от имени аккаунта, в который вы вошли.

    // Load the client secrets JSON file.
    GoogleClientSecrets clientSecrets =
        GoogleClientSecrets.load(
            jsonFactory, Files.newBufferedReader(Paths.get(pathToClientSecretsFile), UTF_8));
    
    // Set up the authorization code flow.
    //
    // Note: providing a DataStoreFactory allows auth credentials to be cached, so they survive
    // multiple runs of the program. This avoids prompting the user for authorization every time the
    // access token expires, by remembering the refresh token.
    GoogleAuthorizationCodeFlow flow =
        new GoogleAuthorizationCodeFlow.Builder(
                httpTransport, jsonFactory, clientSecrets, OAUTH_SCOPES)
            .setDataStoreFactory(dataStoreFactory)
            .build();
    
    // Authorize and persist credentials to the data store.
    //
    // Note: the "user" value below is used to identify a specific set of credentials in the data
    // store. You may provide different values here to persist credentials for multiple users to
    // the same data store.
    Credential credential =
        new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user");
  2. Создайте авторизованный клиент Dfareporting.

    // Create a Dfareporting client instance.
    //
    // Note: application name below should be replaced with a value that identifies your
    // application. Suggested format is "MyCompany-ProductName/Version.MinorVersion".
    Dfareporting reporting =
        new Dfareporting.Builder(credential.getTransport(), credential.getJsonFactory(), credential)
            .setApplicationName("dfareporting-java-installed-app-sample")
            .build();
  3. Выполните операцию.

    // Retrieve and print all user profiles for the current authorized user.
    UserProfileList profiles = reporting.userProfiles().list().execute();
    for (int i = 0; i < profiles.getItems().size(); i++) {
      System.out.printf("%d) %s%n", i + 1, profiles.getItems().get(i).getUserName());
    }

PHP

  1. Загрузите файл с секретным кодом клиента и сгенерируйте учетные данные для авторизации.

    При первом выполнении этого шага вам будет предложено принять запрос на авторизацию в браузере. Прежде чем принять приглашение, убедитесь, что вы вошли в аккаунт Google, у которого есть доступ к Менеджеру кампаний 360. Ваше приложение получит доступ к данным от имени аккаунта, в который вы вошли.

    // Create a Google_Client instance.
    //
    // Note: application name should be replaced with a value that identifies
    // your application. Suggested format is "MyCompany-ProductName".
    $client = new Google_Client();
    $client->setAccessType('offline');
    $client->setApplicationName('PHP installed app sample');
    $client->setRedirectUri(self::OAUTH_REDIRECT_URI);
    $client->setScopes(self::$OAUTH_SCOPES);
    
    // Load the client secrets file.
    $client->setAuthConfig($pathToJsonFile);
    
    // Try to load cached credentials from the token store. Using a token store
    // allows auth credentials to be cached, so they survive multiple runs of
    // the application. This avoids prompting the user for authorization every
    // time the access token expires, by remembering the refresh token.
    if (file_exists($tokenStore) && filesize($tokenStore) > 0) {
        $client->setAccessToken(file_get_contents($tokenStore));
    } else {
        // If no cached credentials were found, authorize and persist
        // credentials to the token store.
        print 'Open this URL in your browser and authorize the application.';
        printf("\n\n%s\n\n", $client->createAuthUrl());
        print 'Enter the authorization code: ';
        $code = trim(fgets(STDIN));
        $client->authenticate($code);
    
        file_put_contents($tokenStore, json_encode($client->getAccessToken()));
    }
  2. Создайте авторизованный клиент Dfareporting.

    // Create a Dfareporting service object.
    $service = new Google_Service_Dfareporting($client);
  3. Выполните операцию.

    // Retrieve and print all user profiles for the current authorized user.
    $result = $service->userProfiles->listUserProfiles();
    foreach ($result['items'] as $userProfile) {
        printf(
            "User profile \"%s\" (ID: %d) found for account %d.\n",
            $userProfile->getUserName(),
            $userProfile->getProfileId(),
            $userProfile->getAccountId()
        );
    }

Python

  1. Загрузите файл с секретным кодом клиента и сгенерируйте учетные данные для авторизации.

    При первом выполнении этого шага вам будет предложено принять запрос на авторизацию в браузере. Прежде чем принять приглашение, убедитесь, что вы вошли в аккаунт Google, у которого есть доступ к Менеджеру кампаний 360. Ваше приложение получит доступ к данным от имени аккаунта, в который вы вошли.

    # Set up a Flow object to be used if we need to authenticate.
    flow = client.flow_from_clientsecrets(
        path_to_client_secrets_file, scope=OAUTH_SCOPES)
    
    # Check whether credentials exist in the credential store. Using a credential
    # store allows auth credentials to be cached, so they survive multiple runs
    # of the application. This avoids prompting the user for authorization every
    # time the access token expires, by remembering the refresh token.
    storage = Storage(CREDENTIAL_STORE_FILE)
    credentials = storage.get()
    
    # If no credentials were found, go through the authorization process and
    # persist credentials to the credential store.
    if credentials is None or credentials.invalid:
      credentials = tools.run_flow(flow, storage,
                                   tools.argparser.parse_known_args()[0])
    
    # Use the credentials to authorize an httplib2.Http instance.
    http = credentials.authorize(httplib2.Http())
  2. Создайте авторизованный клиент Dfareporting.

    # Construct a service object via the discovery service.
    service = discovery.build('dfareporting', 'v5', http=http)
  3. Выполните операцию.

    # Construct the request.
    request = service.userProfiles().list()
    
    # Execute request and print response.
    response = request.execute()
    
    for profile in response['items']:
      print('Found user profile with ID %s and user name "%s".' %
            (profile['profileId'], profile['userName']))

Ruby

  1. Загрузите файл с секретным кодом клиента и сгенерируйте учетные данные для авторизации.

    При первом выполнении этого шага вам будет предложено принять запрос на авторизацию в браузере. Прежде чем принять приглашение, убедитесь, что вы вошли в аккаунт Google, у которого есть доступ к Менеджеру кампаний 360. Ваше приложение получит доступ к данным от имени аккаунта, в который вы вошли.

    # Load client ID from the specified file.
    client_id = Google::Auth::ClientId.from_file(path_to_json_file)
    
    # Set up the user authorizer.
    #
    # Note: providing a token store allows auth credentials to be cached, so they
    # survive multiple runs of the application. This avoids prompting the user for
    # authorization every time the access token expires, by remembering the
    # refresh token.
    authorizer = Google::Auth::UserAuthorizer.new(
      client_id, [API_NAMESPACE::AUTH_DFAREPORTING], token_store
    )
    
    # Authorize and persist credentials to the data store.
    #
    # Note: the 'user' value below is used to identify a specific set of
    # credentials in the token store. You may provide different values here to
    # persist credentials for multiple users to the same token store.
    authorization = authorizer.get_credentials('user')
    if authorization.nil?
      puts format(
        "Open this URL in your browser and authorize the application.\n\n%s" \
        "\n\nEnter the authorization code:",
        authorizer.get_authorization_url(base_url: OAUTH_REDIRECT_URI)
      )
      code = STDIN.gets.chomp
      authorization = authorizer.get_and_store_credentials_from_code(
        base_url: OAUTH_REDIRECT_URI, code: code, user_id: 'user'
      )
    end
  2. Создайте авторизованный клиент Dfareporting.

    # Create a Dfareporting service object.
    #
    # Note: application name should be replaced with a value that identifies
    # your application. Suggested format is "MyCompany-ProductName".
    service = API_NAMESPACE::DfareportingService.new
    service.authorization = authorization
    service.client_options.application_name = 'Ruby installed app sample'
    service.client_options.application_version = '1.0.0'
  3. Выполните операцию.

    // Retrieve and print all user profiles for the current authorized user.
    UserProfileList profiles = service.UserProfiles.List().Execute();
    
    foreach (UserProfile profile in profiles.Items) {
      Console.WriteLine("Found user profile with ID {0} and name \"{1}\".",
          profile.ProfileId, profile.UserName);
    }

Подробнее…

Ознакомьтесь с документацией по API, чтобы узнать обо всех сервисах, которые он предлагает. На каждой странице с описанием метода есть встроенный инструмент API Explorer, с помощью которого можно отправлять тестовые запросы прямо из браузера.

Ознакомьтесь с другими нашими руководствами, в которых рассматриваются более сложные темы и приводятся подробные примеры выполнения распространенных задач.

Когда вы будете готовы приступить к написанию кода, ознакомьтесь с нашей обширной коллекцией примеров кода, которые можно изменять и расширять в соответствии с вашими потребностями.