คุณสามารถใช้ API ผู้อัปโหลดแบบกลุ่มเพื่อเพิ่มและนำรหัสโฆษณาออกจาก Authorized Buyers รายการผู้ใช้สำหรับการกำหนดเป้าหมาย
ต่อไปนี้คือตัวอย่าง URL ของ HTTPS สำหรับผู้อัปโหลดจำนวนมากสำหรับ HTTPS
https://cm.g.doubleclick.net/upload?nid={GoogleNetworkId}
ปลายทางยอมรับคำขอ HTTPS POST
ค่าของ GoogleNetworkId
ควรเป็นรหัสเครือข่ายการจับคู่คุกกี้ (NID) ของคุณ
ซึ่งจะระบุบัญชีของคุณสำหรับ
เครื่องมืออัปโหลดจำนวนมากและ
การจับคู่คุกกี้
เพย์โหลดของคำขอ HTTPS POST มีการเข้ารหัส บัฟเฟอร์โปรโตคอลที่อธิบายรายการที่จะแก้ไข ดูสคีมาของบริการผู้อัปโหลดแบบกลุ่มใน cookie-bulk-upload-proto.txt. เพย์โหลดของแต่ละ คำขอมีขนาดได้ไม่เกิน 100 KB
ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีคอมไพล์และใช้ cookie-bulk-upload.proto
เพื่อ
ทำให้เป็นอนุกรมและแยกวิเคราะห์ข้อความ โปรดดูบทแนะนำที่คุณต้องการ
ภาษา
คุณอัปโหลดตัวระบุประเภทต่อไปนี้ได้
- รหัสผู้ใช้ Google
- รหัสที่พาร์ทเนอร์ระบุ
- IDFA สำหรับ iOS
- รหัสโฆษณา Android
- รหัส Roku
- รหัส Fire TV ของ Amazon
- รหัส Xbox หรือ Microsoft
อัปโหลดรหัสผู้ใช้ Google
รหัสผู้ใช้ Google คือรหัสที่เข้ารหัสจากโดเมน doubleclick.net
วิธีอัปโหลดรหัสผู้ใช้ Google มีดังนี้
- ตั้งค่าการจับคู่คุกกี้กับ Google และโฮสต์ ตารางที่ตรงกัน
- ใช้ตารางการจับคู่เพื่อแปลงรหัสผู้ใช้เป็นรหัสผู้ใช้ Google
- อัปโหลด User-ID ของ Google ไปยังรายชื่อผู้ใช้
ตัวอย่างเช่น หากคุณได้รับสิ่งต่อไปนี้ในระหว่างการจับคู่คุกกี้:
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
}
อัปโหลดรหัสที่ได้จากพาร์ทเนอร์
รหัสที่พาร์ทเนอร์ระบุคือรหัสในโดเมนของพาร์ทเนอร์เอง วิธีการมีดังนี้ อัปโหลดรหัสที่พาร์ทเนอร์ให้ไว้
ตั้งค่าการจับคู่คุกกี้กับ Google และอนุญาต Google จะโฮสต์ตารางการจับคู่ของคุณ
อัปโหลดรหัสที่ได้จากพาร์ทเนอร์ไปยังรายชื่อผู้ใช้
ตัวอย่างเช่น หากตั้งค่ารหัสผู้ใช้สำหรับโดเมนเป็น
123456
คุณจะทําสิ่งต่อไปนี้ได้ ป้อนข้อมูลในตารางการจับคู่ที่โฮสต์ไว้ของ Google ด้วยการจับคู่คุกกี้ ตรงกับคุณ ควรมีแท็กที่ปลอดภัยสำหรับเว็บ เวอร์ชัน base64-encrypted ของ รหัสที่กำหนดให้กับพารามิเตอร์google_hm
เช่น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 ข้อกำหนดนี้ใช้กับการอัปโหลดจำนวนมากทั้งหมด คำขอ
สําหรับข้อมูลผู้ใช้ที่ต้องได้รับความยินยอมจากผู้ใช้ปลายทางตามที่ EU ของ 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