আপনি বাল্ক আপলোডার 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 সম্পর্কে
- অ্যান্ড্রয়েড বিজ্ঞাপন আইডি
- রোকু আইডি
- অ্যামাজন ফায়ার টিভি আইডি
- এক্সবক্স বা মাইক্রোসফ্ট আইডি
গুগল ব্যবহারকারী আইডি আপলোড করুন
গুগল ব্যবহারকারী আইডি হলো doubleclick.net ডোমেন থেকে এনক্রিপ্ট করা আইডি।
গুগল ইউজার আইডি কীভাবে আপলোড করবেন তা এখানে দেওয়া হল:
- গুগলের সাথে কুকি ম্যাচিং সেট আপ করুন এবং ম্যাচ টেবিলটি হোস্ট করুন।
- আপনার ইউজার আইডিগুলিকে গুগল ইউজার আইডিতে রূপান্তর করতে আপনার মিল টেবিলটি ব্যবহার করুন।
- ব্যবহারকারীর তালিকায় গুগল ব্যবহারকারী আইডি আপলোড করুন।
উদাহরণস্বরূপ, যদি আপনি কুকি ম্যাচিংয়ের সময় নিম্নলিখিতগুলি পান:
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
}
পার্টনার-প্রদত্ত আইডি আপলোড করুন
পার্টনার-প্রদত্ত আইডি হল পার্টনারের নিজস্ব ডোমেনের অধীনে থাকা আইডি। পার্টনার-প্রদত্ত আইডি কীভাবে আপলোড করবেন তা এখানে দেওয়া হল:
গুগলের সাথে কুকি ম্যাচিং সেট আপ করুন এবং গুগলকে আপনার ম্যাচ টেবিল হোস্ট করার অনুমতি দিন।
ব্যবহারকারীর তালিকায় আপনার পার্টনার-প্রদত্ত আইডি আপলোড করুন।
উদাহরণস্বরূপ, যদি আপনার ডোমেনের জন্য একটি ব্যবহারকারী আইডি
123456হিসাবে সেট করা থাকে, তাহলে আপনি এটিকে Google এর হোস্টেড ম্যাচ টেবিলে Cookie Matching ব্যবহার করে পূরণ করতে পারেন। আপনার ম্যাচ ট্যাগে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 }এরপর গুগল পার্টনার-প্রদত্ত আইডি থেকে ব্যবহারকারীর তালিকা গুগল ব্যবহারকারী আইডিতে অনুবাদ করে এবং আইডিগুলিকে আপনার ব্যবহারকারীর তালিকায় যোগ করে।
IDFA অথবা Android বিজ্ঞাপন আইডি আপলোড করুন
আপনি ডিভাইস আইডিও আপলোড করতে পারেন।
UpdateUsersDataRequestদিয়ে ডিভাইস আইডি আপলোড করুন:ops { user_id: "2024D65F-EBBD-11FF-23AB-823FC255913A" user_list_id: 111 delete: false user_id_type: IDFA }এরপর গুগল ব্যবহারকারীর তালিকাটি ডিভাইস আইডি থেকে গুগল ব্যবহারকারী আইডিতে অনুবাদ করে এবং আইডিগুলিকে আপনার ব্যবহারকারীর তালিকায় যুক্ত করে।
কর্মপ্রবাহ
সমস্ত বাল্ক আপলোডার অনুরোধ এবং প্রতিক্রিয়ার উদাহরণগুলি টেক্সট ফর্ম্যাটে লেখা হয়। আপনাকে সেগুলিকে সিরিয়ালাইজড প্রোটোকল বাফার বার্তা হিসাবে বাল্ক আপলোডার 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
}
যদি কোনও অপারেশন সফল না হয়, তাহলে প্রতিক্রিয়াটিতে একটি UpdateUsersDataResponse থাকবে যার status BAD_COOKIE এ সেট করা থাকবে:
status: BAD_COOKIE
উদাহরণ
এটি একটি উদাহরণ পাইথন স্ক্রিপ্ট যা দেখায় যে কীভাবে আপনি 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 ব্যবহারকারী অংশীদারদের অবশ্যই process_consent প্যারামিটার ব্যবহার করে বাল্ক আপলোডের উদ্দেশ্যে 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