Вы можете использовать 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:
- Настройте сопоставление файлов cookie с Google и разместите таблицу соответствий.
- Используйте таблицу соответствий для преобразования ваших идентификаторов пользователей в идентификаторы пользователей Google.
- Загрузите идентификаторы пользователей 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
}
Загрузите предоставленные партнером идентификаторы
Идентификаторы, предоставляемые партнёром, — это идентификаторы, находящиеся в домене партнёра. Вот как загрузить идентификатор, предоставляемый партнёром:
Настройте сопоставление файлов cookie с Google и разрешите Google разместить вашу таблицу соответствий.
Загрузите предоставленные вашим партнером идентификаторы в список пользователей.
Например, если для вашего домена задан идентификатор пользователя
123456, вы можете заполнить его в таблице соответствий, размещенной Google, с помощью функции сопоставления файлов cookie. Тег сопоставления должен включать в себя веб-безопасную версию идентификатора, назначенного параметруgoogle_hm, в кодировке Base64 , например:https://cm.g.doubleclick.net/pixel?google_nid=cookie-monster&google_hm=MTIzNDU2&google_cmЗатем вы можете загрузить предоставленный партнером идентификатор в список пользователей с помощью
UpdateUsersDataRequest:ops { user_id: "123456" user_list_id: 123 delete: false user_id_type: PARTNER_PROVIDED_ID }Затем Google преобразует список пользователей из идентификаторов, предоставленных партнером, в идентификаторы пользователей Google и добавляет эти идентификаторы в ваш список пользователей.
Загрузите рекламные идентификаторы IDFA или Android
Вы также можете загрузить идентификаторы устройств.
Загрузите идентификатор устройства с помощью
UpdateUsersDataRequest:ops { user_id: "2024D65F-EBBD-11FF-23AB-823FC255913A" user_list_id: 111 delete: false user_id_type: IDFA }Затем 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