उपयोगकर्ता सूचियों में विज्ञापन आईडी अपलोड करें

टारगेटिंग (विज्ञापन के लिए सही दर्शक चुनना) के लिए, Authorized Buyers की उपयोगकर्ता सूचियों में विज्ञापन आईडी जोड़ने और हटाने के लिए, बल्क अपलोडर एपीआई का इस्तेमाल किया जा सकता है.

यहां एचटीटीपीएस बल्क अपलोडर एपीआई यूआरएल का उदाहरण दिया गया है:

https://cm.g.doubleclick.net/upload?nid={GoogleNetworkId}

एंडपॉइंट, एचटीटीपीएस पोस्ट अनुरोध स्वीकार करता है.

GoogleNetworkId की वैल्यू, आपका कुकी मैचिंग नेटवर्क आईडी (एनआईडी) होनी चाहिए, जो बल्क अपलोडर और कुकी मैचिंग के लिए आपके खाते की खास तौर पर पहचान करती हो.

एचटीटीपीएस पोस्ट अनुरोध का पेलोड, कोड में बदला गया एक प्रोटोकॉल बफ़र होता है. इसमें, बदली जाने वाली सूचियों की जानकारी होती है. cookie-bulk-upload-proto.txt में बल्क अपलोडर सेवा का स्कीमा देखें. हर अनुरोध का पेलोड 100 केबी तक सीमित है.

मैसेज को क्रम से लगाने और पार्स करने के लिए, cookie-bulk-upload.proto को कंपाइल और इस्तेमाल करने के तरीके के बारे में ज़्यादा जानने के लिए, अपनी पसंदीदा भाषा का ट्यूटोरियल देखें.

इस तरह के आइडेंटिफ़ायर अपलोड किए जा सकते हैं:

  • Google यूज़र आईडी
  • पार्टनर का दिया हुआ आईडी
  • iOS आईडीएफ़ए
  • Android विज्ञापन आईडी
  • Roku आईडी
  • Amazon Fire TV का आईडी
  • Xbox या Microsoft ID

Google यूज़र आईडी अपलोड करें

Google यूज़र आईडी, doubleclick.net डोमेन के एन्क्रिप्ट (सुरक्षित) किए गए आईडी होते हैं.

Google यूज़र आईडी अपलोड करने का तरीका यहां बताया गया है:

  1. Google के साथ कुकी मैचिंग सेट अप करें और मैच टेबल होस्ट करें.
  2. अपने यूज़र आईडी को Google यूज़र आईडी में बदलने के लिए, मैच टेबल का इस्तेमाल करें.
  3. उपयोगकर्ता सूची में 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
}

पार्टनर का दिया गया आईडी अपलोड करें

पार्टनर का दिया हुआ आईडी, पार्टनर के डोमेन के तहत आने वाला आईडी होता है. पार्टनर से मिले आईडी को अपलोड करने का तरीका यहां देखें:

  1. Google के साथ कुकी मैचिंग सेट अप करें और Google को आपकी मैच टेबल होस्ट करने की अनुमति दें.

  2. उपयोगकर्ता सूची में, पार्टनर के दिए हुए आईडी अपलोड करें.

    उदाहरण के लिए, अगर आपने अपने डोमेन के लिए यूज़र आईडी को 123456 के तौर पर सेट किया है, तो उसे Google की होस्ट की गई मैच टेबल में, कुकी मैचिंग की मदद से भरा जा सकता है. आपके मैच टैग में, google_hm पैरामीटर को असाइन किए गए आईडी का base64-एन्कोडेड वर्शन शामिल होना चाहिए, जो वेब पर सुरक्षित हो. उदाहरण के लिए:

    https://cm.g.doubleclick.net/pixel?google_nid=cookie-monster&google_hm=MTIzNDU2&google_cm
    
  3. इसके बाद, पार्टनर का दिया गया आईडी, UpdateUsersDataRequest का इस्तेमाल करके बनाई गई उपयोगकर्ता सूची में अपलोड किया जा सकता है:

    ops {
     user_id: "123456"
     user_list_id: 123
     delete: false
     user_id_type: PARTNER_PROVIDED_ID
    }
    
  4. इसके बाद, Google, उपयोगकर्ता की सूची को पार्टनर के दिए गए आईडी से Google यूज़र आईडी में बदल देता है. साथ ही, आईडी को आपकी उपयोगकर्ता सूची में जोड़ देता है.

IDFA या Android विज्ञापन आईडी अपलोड करें

आपके पास डिवाइस आईडी अपलोड करने का भी विकल्प है.

  1. UpdateUsersDataRequest वाला डिवाइस आईडी अपलोड करें:

    ops {
     user_id: "2024D65F-EBBD-11FF-23AB-823FC255913A"
     user_list_id: 111
     delete: false
     user_id_type: IDFA
    }
    
  2. इसके बाद Google, उपयोगकर्ता सूची को डिवाइस आईडी से Google यूज़र आईडी में बदल देता है. साथ ही, आईडी को आपकी उपयोगकर्ता सूची में जोड़ देता है.

वर्कफ़्लो

बल्क अपलोडर के सभी अनुरोध और रिस्पॉन्स के उदाहरण टेक्स्ट फ़ॉर्मैट में लिखे जाते हैं. आपको उन्हें क्रम से लगाए गए प्रोटोकॉल बफ़र मैसेज के तौर पर बल्क अपलोडर एपीआई एंडपॉइंट पर भेजना होगा.

उदाहरण के लिए, उपयोगकर्ता सूची 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

इसके बाद, पेलोड के तौर पर क्रम से लगाए गए 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)


बल्क अपलोड एपीआई का इस्तेमाल करने वाले पार्टनर को यह बताना होगा कि उनके पास प्रोसेस_सहमति पैरामीटर का इस्तेमाल करके, एक साथ कई फ़ाइलें अपलोड करने के लिए 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