লক্ষ্য করার জন্য অনুমোদিত ক্রেতাদের ব্যবহারকারী তালিকায় বিজ্ঞাপন আইডি যোগ করতে এবং সরাতে আপনি বাল্ক আপলোডার API ব্যবহার করতে পারেন।
এখানে একটি নমুনা HTTPS বাল্ক আপলোডার API URL:
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
কীভাবে কম্পাইল এবং ব্যবহার করবেন সে সম্পর্কে আরও জানতে, আপনার পছন্দের ভাষার টিউটোরিয়ালটি দেখুন।
আপনি নিম্নলিখিত শনাক্তকারী প্রকার আপলোড করতে পারেন:
- গুগল ইউজার আইডি
- অংশীদার-প্রদত্ত আইডি
- iOS IDFA
- অ্যান্ড্রয়েড বিজ্ঞাপন আইডি
- রোকু আইডি
- অ্যামাজন ফায়ার টিভি আইডি
- এক্সবক্স বা মাইক্রোসফ্ট আইডি
গুগল ইউজার আইডি আপলোড করুন
Google ব্যবহারকারী আইডি হল doubleclick.net
ডোমেন থেকে এনক্রিপ্ট করা আইডি।
এখানে কিভাবে একটি Google ব্যবহারকারী আইডি আপলোড করতে হয়:
- Google এর সাথে কুকি ম্যাচিং সেট আপ করুন এবং ম্যাচ টেবিল হোস্ট করুন।
- আপনার ব্যবহারকারী আইডিগুলিকে Google ব্যবহারকারী আইডিতে রূপান্তর করতে আপনার ম্যাচ টেবিল ব্যবহার করুন৷
- ব্যবহারকারী তালিকায় Google ব্যবহারকারী আইডি আপলোড করুন।
উদাহরণস্বরূপ, যদি আপনি কুকি ম্যাচিং এর সময় নিম্নলিখিতগুলি পান:
https://ad.network.com/pixel?google_gid=CAESEHIV8HXNp0pFdHgi2rElMfk&google_cver=1
google_gid
প্যারামিটার হল এনক্রিপ্ট করা Google User ID।
এটি একটি ব্যবহারকারীর তালিকায় যোগ করতে, এটি UpdateUsersDataRequest
বডিতে অনুলিপি করুন:
ops {
user_id: "CAESEHIV8HXNp0pFdHgi2rElMfk"
user_list_id: 111
delete: false
user_id_type: GOOGLE_USER_ID
}
অংশীদার-প্রদত্ত আইডি আপলোড করুন
অংশীদার-প্রদত্ত আইডিগুলি অংশীদারের নিজস্ব ডোমেনের অধীনে থাকা আইডি৷ অংশীদার-প্রদত্ত আইডি কীভাবে আপলোড করবেন তা এখানে রয়েছে:
Google এর সাথে কুকি ম্যাচিং সেট আপ করুন এবং Google কে আপনার ম্যাচ টেবিল হোস্ট করার অনুমতি দিন।
ব্যবহারকারীর তালিকায় আপনার অংশীদার-প্রদত্ত আইডি আপলোড করুন।
উদাহরণস্বরূপ, যদি আপনার ডোমেনের জন্য
123456
হিসাবে সেট করা একটি ব্যবহারকারী আইডি থাকে, তাহলে আপনি কুকি ম্যাচিং এর সাথে Google এর হোস্ট করা ম্যাচ টেবিলে এটি পূরণ করতে পারেন৷ আপনার ম্যাচ ট্যাগেgoogle_hm
প্যারামিটারে নির্ধারিত আইডির একটি ওয়েব-সেফ বেস64-এনকোডেড সংস্করণ অন্তর্ভুক্ত করা উচিত, যেমন নিম্নলিখিত:https://cm.g.doubleclick.net/pixel?google_nid=cookie-monster&google_hm=MTIzNDU2&google_cm
তারপরে আপনি
UpdateUsersDataRequest
সহ একটি ব্যবহারকারীর তালিকায় অংশীদার-প্রদত্ত ID আপলোড করতে পারেন: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 এন্ডপয়েন্টে সিরিয়ালাইজড প্রোটোকল বাফার বার্তা হিসাবে পাঠাতে হবে।
উদাহরণস্বরূপ, ব্যবহারকারী তালিকা 123
এ একটি IDFA এবং অংশীদার-প্রদত্ত ID আপলোড করতে, একটি 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
তারপরে, পেলোড হিসাবে সিরিয়ালাইজড UpdateUsersDataRequest
বার্তা সহ একটি HTTPS POST অনুরোধ পাঠান।
সমস্ত অপারেশন সফল হলে, আপনি নিম্নলিখিত UpdateUsersDataResponse
পাবেন:
status: NO_ERROR
যদি কিছু ক্রিয়াকলাপ সফল হয়, প্রতিক্রিয়াটিতে প্রতিটি ব্যর্থ অপারেশনের জন্য একটি ত্রুটি সহ একটি UpdateUsersDataResponse
অন্তর্ভুক্ত থাকে:
status: PARTIAL_SUCCESS
errors {
user_id: "1234567"
error_code: UNKNOWN_ID
user_id_type: PARTNER_PROVIDED_ID
}
যদি কোনো ক্রিয়াকলাপ সফল না হয়, প্রতিক্রিয়াটিতে BAD_COOKIE
তে সেট করা status
সহ একটি UpdateUsersDataResponse
অন্তর্ভুক্ত থাকে:
status: BAD_COOKIE
উদাহরণ
এটি একটি উদাহরণ পাইথন স্ক্রিপ্ট যা প্রদর্শন করে যে আপনি কীভাবে কুকি-বাল্ক-আপলোড.প্রোটো দ্বারা উত্পন্ন লাইব্রেরি ব্যবহার করে বাল্ক আপলোডার পরিষেবা ব্যবহার করে একটি প্রদত্ত আইডি সহ একটি ব্যবহারকারী তালিকা তৈরি করতে পারেন:
#!/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-এর সাথে ব্যবহারকারীর ডেটা ভাগ করার উপযুক্ত আইনি ভিত্তি রয়েছে৷ এই প্রয়োজনীয়তা সমস্ত বাল্ক আপলোড অনুরোধের ক্ষেত্রে প্রযোজ্য।
Google-এর EU ব্যবহারকারীর সম্মতি নীতি (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