Importer des audiences de ciblage par liste de clients

Vous pouvez créer des audiences de ciblage par liste de clients à l'aide des coordonnées des clients importées ou des ID d'appareil mobile à l'aide de l'API Display & Video 360. Cette page explique comment créer une audience de ciblage par liste de clients initiale et ajouter de nouvelles données client à l'audience existante à l'aide de l'API Display & Video 360.

Préparer les données utilisateur

Les données utilisateur utilisées pour renseigner les audiences de ciblage par liste de clients sont sensibles et doivent être correctement préparées avant d'être importées.

Hacher les données sensibles

Certaines audiences de ciblage par liste de clients sont créées à l'aide d'informations de contact client sensibles. Display & Video 360 exige que les données sensibles soient hachées à l'aide de l'algorithme SHA256 avant d'être importées. Les champs de données suivants doivent être hachés avant l'importation:

  • Prénom
  • Nom
  • Adresses e-mail
  • Numéros de téléphone

Les codes postaux et les codes pays ne doivent pas être hachés avant l'importation. Toute tentative d'importation de données client non hachées entraîne une erreur.

Avant de hacher les données, vérifiez les conditions suivantes:

  • Tous les espaces doivent être supprimés des valeurs de prénom, de nom et d'adresse e-mail.
  • Toutes les valeurs doivent être en minuscules.
  • Tous les numéros de téléphone doivent être au format E.164 et inclure l'indicatif téléphonique du pays.

Lorsque vous importez des données utilisateur, utilisez les champs consent des objets ContactInfoList ou MobileDeviceIdList fournis pour transmettre les signaux de consentement accordés par les utilisateurs inclus.

Définir l'un des champs de l'objet Consent sur CONSENT_STATUS_DENIED génère une erreur.

Les signaux de consentement sont définis pour tous les utilisateurs ajoutés dans une même requête firstAndThirdPartyAudiences.create ou firstAndThirdPartyAudiences.editCustomerMatchMembers. Les utilisateurs avec des signaux de consentement différents doivent être importés dans des requêtes distinctes.

Créer une audience de ciblage par liste de clients

Vous pouvez créer une audience de ciblage par liste de clients à l'aide de la méthode firstAndThirdPartyAudiences.create. L'audience doit être déclarée comme audience propriétaire et doit avoir un audienceType de CUSTOMER_MATCH_CONTACT_INFO ou CUSTOMER_MATCH_DEVICE_ID. Les données de ciblage par liste de clients doivent être fournies à l'aide du champ approprié dans le champ d'union members.

Voici un exemple de création d'une audience de ciblage par liste de clients basée sur les coordonnées avec une durée d'appartenance de 540 jours à l'aide d'une liste de numéros de téléphone hachés fournie:

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(540L);

// 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': 540,
    '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(540);

// 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']);

Modifier l'appartenance d'une audience de ciblage par liste de clients

Si vous avez identifié d'autres clients que vous souhaitez cibler, que vous devez renouveler l'appartenance des clients à une audience existante ou que vous souhaitez supprimer des clients d'une audience, vous pouvez mettre à jour les données client d'une audience de ciblage par liste de clients existante à l'aide de la méthode firstAndThirdPartyAudiences.editCustomerMatchMembers. Vous pouvez ajouter des clients à une liste à l'aide du champ d'union added_members et en supprimer à l'aide du champ d'union removed_members.

Une seule requête firstAndThirdPartyAudiences.editCustomerMatchMembers ne peut ajouter ou supprimer que des membres d'une liste. Une seule requête tentant de faire les deux entraîne une erreur INVALID_ARGUMENT.

Voici un exemple d'ajout d'un client en tant que membre d'une audience de ciblage par liste de clients existante à l'aide des données d'adresse postale fournies:

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']
);