Anzeigen-IDs in Nutzerlisten hochladen

Mit der Bulk Uploader API können Sie Anzeigen-IDs zu Authorized Buyers-Nutzerlisten für das Targeting hinzufügen und daraus entfernen.

Hier ist eine Beispiel-HTTPS-URL für die Bulk Uploader API:

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

Der Endpunkt akzeptiert HTTPS-POST-Anfragen.

Der Wert für GoogleNetworkId sollte die Netzwerk-ID (NID) für den Cookie-Abgleich sein. Mit dieser ID wird Ihr Konto für den Bulk-Uploader und den Cookie-Abgleich eindeutig identifiziert.

Die Nutzlast der HTTPS-POST-Anfrage ist ein codierter Protokollpuffer, der die zu ändernden Listen beschreibt. Das Schema für den Bulk-Uploader-Dienst finden Sie in cookie-bulk-upload-proto.txt. Die Nutzlast jeder Anfrage ist auf 100 KB beschränkt.

Weitere Informationen zum Kompilieren und Verwenden von cookie-bulk-upload.proto zum Serialisieren und Parsen von Nachrichten finden Sie in der Anleitung für Ihre bevorzugte Sprache.

Sie können die folgenden Arten von Kennungen hochladen:

  • Google-Nutzer-ID
  • Vom Partner bereitgestellte ID
  • iOS-IDFA
  • Android-Werbe-ID
  • Roku-ID
  • Amazon Fire TV-ID
  • Xbox- oder Microsoft-ID

Google-Nutzer-IDs hochladen

Google-Nutzer-IDs sind verschlüsselte IDs aus der Domain doubleclick.net.

So laden Sie eine Google-Nutzer-ID hoch:

  1. Richten Sie die Suche nach Cookie-Übereinstimmungen bei Google ein und hosten Sie die Match-Table.
  2. Verwenden Sie die Abgleichtabelle, um Ihre Nutzer-IDs in Google-Nutzer-IDs umzuwandeln.
  3. Laden Sie Google-Nutzer-IDs in die Nutzerliste hoch.

Angenommen, Sie erhalten beim Cookie-Abgleich die folgende Meldung:

https://ad.network.com/pixel?google_gid=CAESEHIV8HXNp0pFdHgi2rElMfk&google_cver=1

Der Parameter google_gid ist die verschlüsselte Google-Nutzer-ID.

Wenn Sie ihn einer Nutzerliste hinzufügen möchten, kopieren Sie ihn in den UpdateUsersDataRequest-Textkörper:

ops {
  user_id: "CAESEHIV8HXNp0pFdHgi2rElMfk"
  user_list_id: 111
  delete: false
  user_id_type: GOOGLE_USER_ID
}

Vom Partner bereitgestellte IDs hochladen

Von Partnern bereitgestellte IDs sind IDs unter der Domain des Partners. So laden Sie eine vom Partner bereitgestellte ID hoch:

  1. Richten Sie die Suche nach Cookie-Übereinstimmungen bei Google ein und erlauben Sie Google, Ihre Match-Table zu hosten.

  2. Laden Sie die von Ihrem Partner bereitgestellten IDs in die Nutzerliste hoch.

    Wenn Sie beispielsweise eine Nutzer-ID für Ihre Domain als 123456 festgelegt haben, können Sie sie mithilfe des Cookie-Abgleichs in der von Google gehosteten Abgleichstabelle eintragen. Das Abgleich-Tag muss eine websichere, Base64-codierte Version der ID enthalten, die dem Parameter google_hm zugewiesen ist. Das kann so aussehen:

    https://cm.g.doubleclick.net/pixel?google_nid=cookie-monster&google_hm=MTIzNDU2&google_cm
    
  3. Sie können die vom Partner bereitgestellte ID dann mit UpdateUsersDataRequest in eine Nutzerliste hochladen:

    ops {
     user_id: "123456"
     user_list_id: 123
     delete: false
     user_id_type: PARTNER_PROVIDED_ID
    }
    
  4. Google übersetzt dann die Nutzerliste von von Partnern bereitgestellten IDs in Google-Nutzer-IDs und fügt die IDs Ihrer Nutzerliste hinzu.

IDFAs oder Android-Werbe-IDs hochladen

Sie können auch Geräte-IDs hochladen.

  1. Geräte-ID mit UpdateUsersDataRequest hochladen:

    ops {
     user_id: "2024D65F-EBBD-11FF-23AB-823FC255913A"
     user_list_id: 111
     delete: false
     user_id_type: IDFA
    }
    
  2. Google übersetzt dann die Nutzerliste von Geräte-IDs in Google-Nutzer-IDs und fügt die IDs Ihrer Nutzerliste hinzu.

Workflow

Alle Anfrage- und Antwortbeispiele für den Bulk-Uploader sind im Textformat geschrieben. Sie müssen sie als serialisierte Protocol Buffer-Nachrichten an den API-Endpunkt des Bulk-Uploaders senden.

Wenn Sie beispielsweise eine IDFA und eine vom Partner bereitgestellte ID in die Nutzerliste 123 hochladen möchten, erstellen Sie eine 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

Senden Sie dann eine HTTPS-POST-Anfrage mit der serialisierten UpdateUsersDataRequest-Nachricht als Nutzlast.

Wenn alle Vorgänge erfolgreich abgeschlossen wurden, erhalten Sie die folgende UpdateUsersDataResponse:

status: NO_ERROR

Wenn einige der Vorgänge erfolgreich waren, enthält die Antwort eine UpdateUsersDataResponse mit einem Fehler für jeden fehlgeschlagenen Vorgang:

status: PARTIAL_SUCCESS
errors {
  user_id: "1234567"
  error_code: UNKNOWN_ID
  user_id_type: PARTNER_PROVIDED_ID
}

Wenn keiner der Vorgänge erfolgreich war, enthält die Antwort eine UpdateUsersDataResponse mit status = BAD_COOKIE:

status: BAD_COOKIE

Beispiel

In diesem Beispiel-Python-Script wird gezeigt, wie Sie die von cookie-bulk-upload.proto generierte Bibliothek verwenden können, um mit dem Bulk-Upload-Dienst eine Nutzerliste mit einer bestimmten ID zu füllen:

  #!/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)

Partner, die die Bulk Upload API verwenden, müssen über den Parameter „process_consent“ angeben, dass sie die erforderliche rechtliche Grundlage haben, Nutzerdaten zum Zwecke des Bulk-Uploads mit Google zu teilen. Diese Anforderung gilt für alle Bulk-Uploadanfragen.

Für Nutzerdaten, für die gemäß der Richtlinie zur Einwilligung der Nutzer in der EU von Google (siehe https://www.google.com/about/company/user-consent-policy/) oder gemäß anderen anwendbaren Gesetzen die Einwilligung des Endnutzers erforderlich ist, müssen Partner die Einwilligung des Endnutzers einholen und die eingeholte Einwilligung durch Festlegen von process_consent=True angeben.

Bei Nutzerdaten, für die keine Einwilligung des Endnutzers erforderlich ist, müssen Partner angeben, dass keine Einwilligung erforderlich ist. Dazu müssen sie die Einstellung process_consent=True festlegen.

Anfragen, bei denen process_consent fehlt, werden herausgefiltert und es wird der folgende Fehler zurückgegeben:

status: MISSING_CONSENT_WILL_BE_DROPPED

Anfragen, bei denen process_consent auf false festgelegt ist, werden gefiltert und es wird der folgende Fehler zurückgegeben:

status: MISSING_CONSENT