ניתן להשתמש ב-Bulk Upload API כדי להוסיף ולהסיר מזהי מודעות לרשימות משתמשים של Authorized Buyers לצורך טירגוט. לא ניתן להשתמש ב-Authorized Buyers Bulk Upload API כדי לשנות את רשימות הקהלים ב-Display & Video 360.
לפניכם כתובת URL לדוגמה של HTTPS Bulk Upload API:
https://cm.g.doubleclick.net/upload?nid={GoogleNetworkId}
נקודת הקצה מקבלת בקשות HTTPS POST.
הערך של GoogleNetworkId
צריך להיות מזהה הרשת התואם של קובצי ה-cookie (NID)
שמזהה באופן ייחודי את החשבון שלך עבור מעלה הסרטונים בכמות גדולה והתאמות של קובצי cookie.
המטען הייעודי (payload) של בקשת HTTPS POST הוא מאגר אחסון לפרוטוקולים מקודד שמתאר את הרשימות שצריך לשנות. אפשר לעיין בסכימה של השירות 'העלאה בכמות גדולה' בקובץ cookie-bulk-upload-proto.txt. המטען הייעודי (payload) של כל בקשה מוגבל ל-100KB.
במדריך לשפה המועדפת עליכם מוסבר איך הידור של cookie-bulk-upload.proto
ושימוש בו לסריאליזציה וניתוח של הודעות.
אפשר להעלות את סוגי המזהים הבאים:
- מזהה משתמש ב-Google
- מזהה שסופק על ידי השותף
- מזהה IDFA ב-iOS
- מזהה פרסום ב-Android
- מזהה Roku
- מזהה 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. תג ההתאמה צריך לכלול גרסה בקידוד base64 של המזהה שמוקצית לפרמטר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 מתרגמת את רשימת המשתמשים ממזהים שסופקו על ידי שותפים למזהי User-ID של Google, ומוסיפה אותם לרשימת המשתמשים שלך.
העלאת מזהי פרסום של IDFA או Android
אפשר גם להעלות מזהי מכשירים.
העלאת מזהה המכשיר עם
UpdateUsersDataRequest
:ops { user_id: "2024D65F-EBBD-11FF-23AB-823FC255913A" user_list_id: 111 delete: false user_id_type: IDFA }
לאחר מכן Google מתרגמת את רשימת המשתמשים ממזהי מכשירים למזהי המשתמשים של Google, ומוסיפה את המזהים לרשימת המשתמשים.
תהליך העבודה
כל הבקשות והדוגמאות לתגובות של העלאות בכמות גדולה כתובות בפורמט טקסט. עליכם לשלוח אותן כהודעות Protocol Buffer עם סריאליזציה לנקודת הקצה Bulk Uploader API.
לדוגמה, כדי להעלות לרשימת המשתמשים 123
IDFA ומזהה שסופק על ידי שותף, יוצרים 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
שעברה סריאלית כמטען הייעודי (payload).
אם כל הפעולות יבוצעו בהצלחה, יתקבל הערך 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)
עבד הסכמה בבקשה להעלאה בכמות גדולה
שותפים שמשתמשים ב-Bulk Upload API חייבים לציין שיש להם את הבסיס החוקי לשיתוף נתוני משתמשים עם Google לצורך העלאה בכמות גדולה, באמצעות הפרמטר progress_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