Вы можете использовать API массовой загрузки, чтобы добавлять и удалять идентификаторы объявлений в списках пользователей Авторизованных покупателей для таргетинга.
Вот пример URL-адреса API массовой загрузки HTTPS:
https://cm.g.doubleclick.net/upload?nid={GoogleNetworkId}
Конечная точка принимает запросы HTTPS POST.
Значением GoogleNetworkId
должен быть ваш идентификатор сети сопоставления файлов cookie (NID), который уникально идентифицирует вашу учетную запись для массовой загрузки и сопоставления файлов cookie .
Полезная нагрузка запроса HTTPS POST представляет собой закодированный буфер протокола , который описывает списки, которые необходимо изменить. См. схему службы массовой загрузки в файле cookie-bulk-upload-proto.txt . Полезная нагрузка каждого запроса ограничена 100 КБ .
Чтобы узнать больше о том, как скомпилировать и использовать cookie-bulk-upload.proto
для сериализации и анализа сообщений, см. руководство для предпочитаемого вами языка .
Вы можете загрузить следующие типы идентификаторов:
- Идентификатор пользователя Google
- Идентификатор, предоставленный партнером
- Идентификатор iOS для iOS
- Рекламный идентификатор Android
- идентификатор Року
- Идентификатор Amazon Fire TV
- Xbox или идентификатор Microsoft
Загрузите идентификаторы пользователей 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 и добавляет эти идентификаторы в ваш список пользователей.
Рабочий процесс
Все примеры запросов и ответов Массовой загрузки записываются в текстовом формате . Их необходимо отправлять в виде сериализованных сообщений протокольного буфера в конечную точку API массовой загрузки.
Например, чтобы загрузить 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