אפשר להשתמש ב-Bulk Upload API באמצעות ה-API להעלאת כמות גדולה של מודעות כדי להוסיף ולהסיר מזהי מודעות ל-Authorized Buyers רשימות משתמשים לטירגוט.
הנה דוגמה לכתובת 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 ID
העלאת מזהי משתמשים ב-Google
מזהי המשתמשים ב-Google הם מזהים מוצפנים מהדומיין doubleclick.net
.
כך מעלים מזהה משתמש ב-Google:
- מגדירים Cookie matching (התאמת קובצי 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 matching (התאמה של קובצי 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 מתרגמת את רשימת המשתמשים ממזהים שסופקו על ידי שותף ל-Google ומוסיף את המזהים לרשימת המשתמשים.
העלאת מזהי פרסום של Android או IDFA
אפשר גם להעלות מזהי מכשירים.
העלאת מזהה המכשיר באמצעות
UpdateUsersDataRequest
:ops { user_id: "2024D65F-EBBD-11FF-23AB-823FC255913A" user_list_id: 111 delete: false user_id_type: IDFA }
לאחר מכן Google מתרגמת את רשימת המשתמשים ממזהי מכשירים למזהי משתמשים ב-Google, מוסיפה את המזהים לרשימת המשתמשים.
תהליך עבודה
כל הדוגמאות לבקשות ולתגובות של מעלה הסרטון בכמות גדולה כתובות בטקסט פורמט. יש לשלוח אותן כהודעות טוריות של מאגר אחסון לפרוטוקולים נקודת קצה של Upload 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
בתור המטען הייעודי (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 למטרות העלאה בכמות גדולה באמצעות הפרמטרProcess_consent. הדרישה הזו חלה על כל העלאות בכמות גדולה בקשות.
לגבי נתוני משתמשים שדורשים הסכמה ממשתמשי הקצה, כנדרש על ידי האיחוד האירופי של Google
מדיניות 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