Загрузить идентификаторы объявлений в списки пользователей

Вы можете использовать API Bulk Uploader для добавления и удаления идентификаторов объявлений в списки пользователей Authorized Buyers для таргетинга.

Вот пример URL-адреса API HTTPS-загрузчика:

https://cm.g.doubleclick.net/upload?nid={GoogleNetworkId}

Конечная точка принимает HTTPS POST-запросы.

Значение GoogleNetworkId должно быть вашим идентификатором сети сопоставления файлов cookie (NID), который однозначно идентифицирует вашу учетную запись для массовой загрузки и сопоставления файлов cookie .

Полезная нагрузка HTTPS-запроса POST представляет собой закодированный буфер протокола , описывающий списки, подлежащие изменению. См. схему сервиса Bulk Uploader в файле cookie-bulk-upload-proto.txt . Размер полезной нагрузки каждого запроса ограничен 100 КБ .

Дополнительную информацию о том, как скомпилировать и использовать cookie-bulk-upload.proto для сериализации и анализа сообщений, см. в руководстве на предпочитаемом вами языке .

Вы можете загрузить следующие типы идентификаторов:

  • Идентификатор пользователя Google
  • Идентификатор, предоставленный партнером
  • iOS IDFA
  • Рекламный идентификатор Android
  • Roku ID
  • Идентификатор Amazon Fire TV
  • Xbox или Microsoft ID

Загрузить идентификаторы пользователей Google

Идентификаторы пользователей Google — это зашифрованные идентификаторы из домена doubleclick.net .

Вот как загрузить идентификатор пользователя Google:

  1. Настройте сопоставление файлов cookie с Google и разместите таблицу соответствий.
  2. Используйте таблицу соответствий для преобразования ваших идентификаторов пользователей в идентификаторы пользователей Google.
  3. Загрузите идентификаторы пользователей Google в список пользователей.

Например, если во время сопоставления файлов cookie вы получаете следующее:

https://ad.network.com/pixel?google_gid=CAESEHIV8HXNp0pFdHgi2rElMfk&google_cver=1

Параметр google_gid — это зашифрованный идентификатор пользователя Google.

Чтобы добавить его в список пользователей, скопируйте его в тело UpdateUsersDataRequest :

ops {
  user_id: "CAESEHIV8HXNp0pFdHgi2rElMfk"
  user_list_id: 111
  delete: false
  user_id_type: GOOGLE_USER_ID
}

Загрузите предоставленные партнером идентификаторы

Идентификаторы, предоставляемые партнёром, — это идентификаторы, находящиеся в домене партнёра. Вот как загрузить идентификатор, предоставляемый партнёром:

  1. Настройте сопоставление файлов cookie с Google и разрешите Google разместить вашу таблицу соответствий.

  2. Загрузите предоставленные вашим партнером идентификаторы в список пользователей.

    Например, если для вашего домена задан идентификатор пользователя 123456 , вы можете заполнить его в таблице соответствий, размещенной Google, с помощью функции сопоставления файлов cookie. Тег сопоставления должен включать в себя веб-безопасную версию идентификатора, назначенного параметру google_hm , в кодировке Base64 , например:

    https://cm.g.doubleclick.net/pixel?google_nid=cookie-monster&google_hm=MTIzNDU2&google_cm
    
  3. Затем вы можете загрузить предоставленный партнером идентификатор в список пользователей с помощью UpdateUsersDataRequest :

    ops {
     user_id: "123456"
     user_list_id: 123
     delete: false
     user_id_type: PARTNER_PROVIDED_ID
    }
    
  4. Затем Google преобразует список пользователей из идентификаторов, предоставленных партнером, в идентификаторы пользователей Google и добавляет эти идентификаторы в ваш список пользователей.

Загрузите рекламные идентификаторы IDFA или Android

Вы также можете загрузить идентификаторы устройств.

  1. Загрузите идентификатор устройства с помощью UpdateUsersDataRequest :

    ops {
     user_id: "2024D65F-EBBD-11FF-23AB-823FC255913A"
     user_list_id: 111
     delete: false
     user_id_type: IDFA
    }
    
  2. Затем Google переводит список пользователей из идентификаторов устройств в идентификаторы пользователей Google и добавляет эти идентификаторы в ваш список пользователей.

Рабочий процесс

Все примеры запросов и ответов Bulk Uploader представлены в текстовом формате . Их необходимо отправлять в виде сериализованных сообщений Protocol Buffer в конечную точку API Bulk Uploader.

Например, чтобы загрузить IDFA и предоставленный партнером идентификатор в список пользователей 123 , создайте UpdateUsersDataRequest :

ops {
  user_id: "2024D65F-EBBD-11FF-23AB-823FC255913A"
  user_list_id: 123
  delete: false
  user_id_type: IDFA
}
ops {
  user_id: "1234567"
  user_list_id: 123
  delete: false
  user_id_type: PARTNER_PROVIDED_ID
}
# See warning before use. Requires affirmative end-user consent.
process_consent: true

Затем отправьте HTTPS-запрос POST с сериализованным сообщением UpdateUsersDataRequest в качестве полезной нагрузки.

Если все операции выполнены успешно, вы получите следующий UpdateUsersDataResponse :

status: NO_ERROR

Если некоторые операции были успешными, ответ включает UpdateUsersDataResponse с ошибкой для каждой неудавшейся операции:

status: PARTIAL_SUCCESS
errors {
  user_id: "1234567"
  error_code: UNKNOWN_ID
  user_id_type: PARTNER_PROVIDED_ID
}

Если ни одна из операций не увенчалась успехом, ответ включает UpdateUsersDataResponse со status BAD_COOKIE :

status: BAD_COOKIE

Пример

Это пример скрипта Python, демонстрирующий, как можно использовать библиотеку, созданную cookie-bulk-upload.proto, для заполнения списка пользователей с заданным идентификатором с помощью службы массовой загрузки:

  #!/usr/bin/python
#
# Copyright 2023 Google Inc. All Rights Reserved.
#
# 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
#
#      http://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.

"""A sample demonstrating usage of the Authorized Buyers Bulk Upload service.

Successfully running this example will add the provided ID to the given user
list. To learn more about the bulk uploader service, see:
https://developers.google.com/authorized-buyers/rtb/bulk-uploader
"""


import argparse

import gen.cookie_bulk_upload_pb2

import requests


BULK_UPLOAD_ENDPOINT_TEMPLATE = 'https://cm.g.doubleclick.net/upload?nid=%s'


def main(account_nid, user_list_id, user_id, user_id_type):
    # Build the bulk upload request.
    update_request = gen.cookie_bulk_upload_pb2.UpdateUsersDataRequest()
    update_request.send_notifications = True

    ops = update_request.ops
    op = ops.add()
    op.user_list_id = user_list_id
    op.user_id = user_id
    op.user_id_type = user_id_type

    user_id_type_value = gen.cookie_bulk_upload_pb2.UserIdType.Name(
        user_id_type)

    print(f'For NID "{account_nid}", adding user ID "{user_id}" of type '
          f'"{user_id_type_value}" to user list ID "{user_list_id}"')

    # Execute the bulk upload request.
    response = requests.post(BULK_UPLOAD_ENDPOINT_TEMPLATE % account_nid,
                             data=update_request.SerializeToString())

    # Parse and display the response.
    update_response = gen.cookie_bulk_upload_pb2.UpdateUsersDataResponse()
    update_response.ParseFromString(response.content)

    print('Operation completed with the following:')
    print(f'\tHTTP Status code: {response.status_code}')
    status_value = gen.cookie_bulk_upload_pb2.ErrorCode.Name(
        update_response.status)
    print(f'\tUpdateUsersDataResponse.status: {status_value}')
    print(f'\tUpdateUsersDataResponse.errors: {update_response.errors}')
    print('\tUpdateUsersDataResponse.notifications: '
          f'{update_response.notifications}')
    n_status_value = gen.cookie_bulk_upload_pb2.NotificationStatus.Name(
        update_response.notification_status)
    print(f'\tUpdateUsersDataResponse.notification_status: {n_status_value}')


if __name__ == '__main__':
    parser = argparse.ArgumentParser(
        description=('A sample demonstrating usage of the Authorized Buyers '
                     'bulk uploader service.'))
    parser.add_argument('-n', '--account_nid',
                        required=True, help='The Account NID.')
    parser.add_argument('-u', '--user_id',
                        required=True, help='The User ID to be added.')
    parser.add_argument('-l', '--user_list_id', type=int, required=True,
                        help='The user list that the ID is being added to.')
    parser.add_argument('-t', '--user_id_type', type=int, required=True,
                        help=('The type of user ID being added. See '
                              '"UserIdType" enum for more details.'))
    args = parser.parse_args()

    main(args.account_nid, args.user_list_id, args.user_id, args.user_id_type)

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

Для пользовательских данных, требующих согласия конечного пользователя в соответствии с Политикой согласия пользователей Google в ЕС (см. https://www.google.com/about/company/user-consent-policy/) или другими местными законами, партнеры должны получить согласие конечного пользователя и указать полученное согласие, установив process_consent=True .

Для пользовательских данных, на которые не распространяются требования согласия конечного пользователя, партнеры должны указать, что согласие не требуется, установив process_consent=True .

Запросы, в которых отсутствует process_consent , будут отфильтрованы и вернут следующую ошибку:

status: MISSING_CONSENT_WILL_BE_DROPPED

Запросы, в которых параметр process_consent имеет значение false будут отфильтрованы и вернут следующую ошибку:

status: MISSING_CONSENT