Upload Audiens Customer Match

Anda dapat membuat audiens Customer Match menggunakan kontak pelanggan yang diupload atau ID perangkat seluler yang menggunakan ID Video 360 API. Halaman ini menjelaskan cara untuk membuat audiens Customer Match awal dan menambahkan data pelanggan baru ke audiens yang sudah ada menggunakan kampanye Display & Video 360 API.

Menyiapkan data pengguna

Data pengguna yang digunakan untuk mengisi audiens Customer Match bersifat sensitif dan harus dipersiapkan dengan baik sebelum diunggah.

Melakukan hashing pada data sensitif

Beberapa audiens Customer Match dibuat menggunakan kontak pelanggan yang sensitif tidak akurat atau tidak sesuai. Layar & Video 360 mengharuskan data sensitif di-hash menggunakan Algoritma SHA256 sebelum diupload. Kolom data berikut harus di-hash sebelum diupload:

  • Nama depan
  • Nama belakang
  • Alamat email
  • Nomor telepon

Kode pos dan kode negara tidak boleh di-hash sebelum diupload. Mencoba untuk upload data pelanggan tanpa hash akan menghasilkan error.

Sebelum melakukan hashing pada data, pastikan kondisi berikut:

  • Semua spasi kosong harus dihapus dari nama depan, nama belakang, dan alamat email masing-masing.
  • Semua nilai harus dibuat dalam huruf kecil.
  • Semua nomor telepon harus diformat menggunakan format E.164 dan sertakan kode panggilan negara.

Saat mengupload data pengguna, gunakan kolom consent di kolom yang disediakan ContactInfoList atau Objek MobileDeviceIdList untuk meneruskan sinyal izin oleh pengguna yang disertakan.

Menetapkan salah satu kolom di objek Consent ke CONSENT_STATUS_DENIED menghasilkan error.

Sinyal izin ditetapkan untuk semua pengguna yang ditambahkan di satu firstAndThirdPartyAudiences.create atau firstAndThirdPartyAudiences.editCustomerMatchMembers permintaan. Pengguna dengan sinyal izin yang berbeda harus diupload di platform terpisah permintaan.

Membuat audiens Customer Match

Audiens Customer Match dapat dibuat menggunakan Metode firstAndThirdPartyAudiences.create. Audiens harus dinyatakan sebagai audiens pihak pertama dan harus memiliki audienceType dari CUSTOMER_MATCH_CONTACT_INFO atau CUSTOMER_MATCH_DEVICE_ID. Data Customer Match harus disediakan menggunakan kolom yang sesuai dalam kolom union members

Berikut adalah contoh cara membuat informasi kontak baru Customer Match audiens dengan durasi keanggotaan tak terbatas menggunakan daftar hash yang disediakan nomor telepon:

Java

// Create Customer Match audience object.
FirstAndThirdPartyAudience customerMatchAudience =
    new FirstAndThirdPartyAudience()
        .setDisplayName(display-name)
        .setFirstAndThirdPartyAudienceType(
            "FIRST_AND_THIRD_PARTY_AUDIENCE_TYPE_FIRST_PARTY"
        )
        .setAudienceType("CUSTOMER_MATCH_CONTACT_INFO")
        .setMembershipDurationDays(10000L);

// Build list of contact information objects.
ContactInfoList contactInfoList = new ContactInfoList();
ArrayList<ContactInfo> contactInfos = new ArrayList<ContactInfo>();
for (String hashedPhoneNumber : list-of-hashed-phone-numbers) {
  ContactInfo contactInfo = new ContactInfo();
  ArrayList<String> phoneNumberList = new ArrayList<String>();
  phoneNumberList.add(hashedPhoneNumber);
  contactInfo.setHashedPhoneNumbers(phoneNumberList);
  contactInfos.add(contactInfo);
}
contactInfoList.setContactInfos(contactInfos);

// Build consent object for passing consent if granted by the end user.
Consent consent =
    new Consent()
        .setAdUserData(ad-user-data-consent)
        .setAdPersonalization(ad-personalization-consent);
ContactInfoList.setConsent(consent);

// Assign contact info list to Customer Match audience.
customerMatchAudience.setContactInfoList(contactInfoList);

// Create Customer Match audience.
FirstAndThirdPartyAudience response =
    service
        .firstAndThirdPartyAudiences()
        .create(customerMatchAudience)
        .setAdvertiserId(advertiser-id)
        .execute();

// Display name of new audience.
System.out.printf(
    "Customer Match audience %s was created.",
    response.getName()
);

Python

# Build list of Contact Info objects
contact_infos = []
for hashed_phone_number in list-of-hashed-phone-numbers:
  contact_infos.append({'hashedPhoneNumbers': [hashed_phone_number]})

# Create a Customer Match first- and third-party audience object.
audience_obj = {
    'displayName': display-name,
    'firstAndThirdPartyAudienceType':
        'FIRST_AND_THIRD_PARTY_AUDIENCE_TYPE_FIRST_PARTY',
    'audienceType': 'CUSTOMER_MATCH_CONTACT_INFO',
    'membershipDurationDays': 10000,
    'contactInfoList': {
        'contactInfos': [
            contact_infos
        ],
        'consent': {
            'adUserData': ad-user-data-consent,
            'adPersonalization': ad-personalization-consent
        }
    }
}

# Build and execute request.
audience = service.firstAndThirdPartyAudiences().create(
    advertiserId=advertiser-id,
    body=audience_obj
).execute()

# Display name of new audience.
print('Customer Match audience %s was created.' % audience["name"])

PHP

// Create a Customer Match first- and third-party audience object.
$audience = new Google_Service_DisplayVideo_FirstAndThirdPartyAudience();
$audience->setDisplayName(display-name);
$audience->setFirstAndThirdPartyAudienceType(
    'FIRST_AND_THIRD_PARTY_AUDIENCE_TYPE_FIRST_PARTY'
);
$audience->setAudienceType('CUSTOMER_MATCH_CONTACT_INFO');
$audience->setMembershipDurationDays(10000);

// Build list of contact information objects.
$contactInfoList = new Google_Service_DisplayVideo_ContactInfoList();
$contactInfos = array();
foreach (list-of-hashed-phone-numbers as $hashedPhoneNumber) {
    $contactInfo = new Google_Service_DisplayVideo_ContactInfo();
    $contactInfo->setHashedPhoneNumbers(array($hashedPhoneNumber));
    $contactInfos[] = $contactInfo;
}
$contactInfoList->setContactInfos($contactInfos);

// Build consent object for passing consent if granted by the end user.
$consent = new Google_Service_DisplayVideo_Consent();
$consent->setAdUserData(ad-user-data-consent);
$consent->setAdPersonalization(ad-personalization-consent);
$contactInfoList->setConsent($consent);

// Assign contactInfoList to audience object.
$audience->setContactInfoList($contactInfoList);

// Call the API, creating the audience.
$result = $this->service->firstAndThirdPartyAudiences->create(
    $audience,
    array('advertiserId' => advertiser-id)
);

// Display name of new audience.
printf('Customer Match audience %s was created.', $result['name']);

Memperbarui keanggotaan audiens Customer Match

Jika Anda menemukan pelanggan tambahan yang ingin ditargetkan, Anda harus perpanjang langganan keanggotaan audiens yang ada, atau ingin menghapus pelanggan dari audiens, Anda dapat memperbarui data pelanggan tentang pelanggan lama Cocokkan audiens dengan firstAndThirdPartyAudiences.editCustomerMatchMembers . Anda dapat menambahkan pelanggan ke daftar menggunakan added_members dan menghapus pelanggan dari daftar dengan kolom union removed_members.

Satu firstAndThirdPartyAudiences.editCustomerMatchMembers hanya dapat menambahkan atau menghapus anggota dari daftar. Satu permintaan mencoba melakukan keduanya akan menghasilkan error INVALID_ARGUMENT.

Berikut adalah contoh cara menambahkan satu pelanggan sebagai anggota ke pelanggan lama informasi kontak audiens Customer Match yang menggunakan data alamat surat yang diberikan:

Java

// Create an edit members request object.
EditCustomerMatchMembersRequest editCustomerMatchMembersRequest =
    new EditCustomerMatchMembersRequest()
        .setAdvertiserId(advertiser-id);

// Build contact information object to add to audience.
ContactInfoList contactInfoList = new ContactInfoList();
ArrayList<ContactInfo> contactInfos = new ArrayList<ContactInfo>();
ContactInfo contactInfo =
    new ContactInfo()
        .setHashedFirstName(hashed-customer-first-name)
        .setHashedLastName(hashed-customer-last-name)
        .setZipCodes(customer-zip-codes-list)
        .setCountryCode(customer-country-code);
contactInfos.add(contactInfo);
contactInfoList.setContactInfos(contactInfos);

// Build consent object for passing consent if granted by the end user.
Consent consent =
    new Consent()
        .setAdUserData(ad-user-data-consent)
        .setAdPersonalization(ad-personalization-consent);
ContactInfoList.setConsent(consent);

// Assign contact info list to request body.
editCustomerMatchMembersRequest.setAddedContactInfoList(contactInfoList);

// Edit Customer Match audience membership.
EditCustomerMatchMembersResponse response =
    service
        .firstAndThirdPartyAudiences()
        .editCustomerMatchMembers(
            audience-id,
            editCustomerMatchMembersRequest
        )
        .execute();

// Display ID of updated audience.
System.out.printf(
    "The membership of Customer Match audience ID %s was edited.",
    response.getFirstAndThirdPartyAudienceId()
);

Python

# Create an edit members request object.
edit_member_request_obj = {
    'advertiserId': advertiser-id,
    'addedContactInfoList': {
        'contactInfos': [
            {
                'hashedFirstName': hashed-customer-first-name,
                'hashedLastName': hashed-customer-last-name,
                'countryCode': customer-country-code,
                'zipCodes': customer-zip-codes-list
            }
        ],
        'consent': {
          'adUserData': ad-user-data-consent,
          'adPersonalization': ad-personalization-consent
        }
    }
}

# Build and execute request.
response = service.firstAndThirdPartyAudiences().editCustomerMatchMembers(
    firstAndThirdPartyAudienceId=audience-id,
    body=edit_member_request_obj
).execute()

# Display ID of updated audience.
print('The membership of the Customer Match audience ID %s was updated.'
      % response["firstAndThirdPartyAudienceId"])

PHP

// Create an edit members request object.
$editMemberRequest =
    new Google_Service_DisplayVideo_EditCustomerMatchMembersRequest();
$editMemberRequest->setAdvertiserId(advertiser-id);

// Build contact information object to add to audience.
$contactInfoList = new Google_Service_DisplayVideo_ContactInfoList();
$contactInfos = array();
$contactInfo = new Google_Service_DisplayVideo_ContactInfo();
$contactInfo->setHashedFirstName(hashed-customer-first-name);
$contactInfo->setHashedLastName(hashed-customer-last-name);
$contactInfo->setCountryCode(customer-country-code);
$contactInfo->setZipCodes(array(customer-zip-codes-list));
$contactInfos[] = $contactInfo;
$contactInfoList->setContactInfos($contactInfos);

// Build consent object for passing consent if granted by the end user.
$consent = new Google_Service_DisplayVideo_Consent();
$consent->setAdUserData(ad-user-data-consent);
$consent->setAdPersonalization(ad-personalization-consent);
$contactInfoList->setConsent($consent);

// Assign contactInfoList to edit members request body.
$editMemberRequest->setAddedContactInfoList($contactInfoList);

// Call the API, editing the audience membership.
$response = $this
    ->service
    ->firstAndThirdPartyAudiences
    ->editCustomerMatchMembers(
        audience-id,
        $editMemberRequest
    );

// Display ID of updated audience.
printf(
    'The membership of Customer Match audience ID %s was edited',
    $result['firstAndThirdPartyAudienceId']
);