Puedes crear públicos de Segmentación por clientes con la información de contacto de los clientes o los IDs de dispositivos móviles que subas a través de la API de Display & Video 360. En esta página, se describe cómo crear un público inicial de Segmentación por clientes y agregar datos de clientes nuevos al público existente con la API de Display & Video 360.
Prepara los datos del usuario
Los datos del usuario que se utilizan para completar los públicos de la Segmentación por clientes son sensibles y deben prepararse correctamente antes de subirse.
Aplica hash a los datos sensibles
Algunos públicos de la Segmentación por clientes se crean con información de contacto sensible de los clientes. Display & Video 360 requiere que los datos sensibles se codifiquen con hash utilizando el algoritmo SHA256 antes de subirse. Los siguientes campos de datos deben tener un hash antes de la carga:
- Nombre
- Apellido
- Direcciones de correo electrónico
- Números de teléfono
Los códigos postales y los códigos de país no deben contener codificación hash antes de la carga. Si intentas subir datos del cliente sin codificar, se producirá un error.
Antes de aplicar el hash a los datos, asegúrate de que se cumplan las siguientes condiciones:
- Se deben quitar los espacios en blanco de los valores del nombre, el apellido y la dirección de correo electrónico.
- Todos los valores deben estar en minúsculas.
- Todos los números de teléfono deben tener el formato E.164 y el código de país.
Cómo configurar el consentimiento del usuario
Cuando subas datos del usuario, usa los campos consent
en los objetos ContactInfoList
o MobileDeviceIdList
proporcionados para pasar indicadores del consentimiento otorgado por los usuarios incluidos.
Si configuras cualquiera de los campos del objeto Consent
como CONSENT_STATUS_DENIED
, se producirá un error.
Los indicadores de consentimiento se establecen para todos los usuarios agregados en una sola solicitud de firstPartyAndPartnerAudiences.create
o firstPartyAndPartnerAudiences.editCustomerMatchMembers
. Los usuarios con diferentes indicadores de consentimiento se deben subir en solicitudes separadas.
Crea un público de Segmentación por clientes
Puedes crear un público de Segmentación por clientes con el método firstPartyAndPartnerAudiences.create
. El público debe declararse como público propio y debe tener un audienceType
de CUSTOMER_MATCH_CONTACT_INFO
o CUSTOMER_MATCH_DEVICE_ID
. Los datos de la Segmentación por clientes se deben proporcionar con el campo adecuado dentro del campo de unión members
.
A continuación, se muestra un ejemplo de cómo crear un nuevo público de Segmentación por clientes con información de contacto y una duración de membresía de 540 días usando una lista proporcionada de números de teléfono hasheados:
Java
// Create Customer Match audience object. FirstPartyAndPartnerAudience customerMatchAudience = new FirstPartyAndPartnerAudience() .setDisplayName(display-name) .setFirstPartyAndPartnerAudienceType( "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. FirstPartyAndPartnerAudience response = service .firstPartyAndPartnerAudiences() .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, 'firstPartyAndPartnerAudienceType': '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.firstPartyAndPartnerAudiences().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-party and partner audience object. $audience = new Google_Service_DisplayVideo_FirstPartyAndPartnerAudience(); $audience->setDisplayName(display-name); $audience->setFirstPartyAndPartnerAudienceType( '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->firstPartyAndPartnerAudiences->create( $audience, array('advertiserId' => advertiser-id) ); // Display name of new audience. printf('Customer Match audience %s was created.', $result['name']);
Actualiza la membresía de un público de Segmentación por clientes
Si identificaste clientes adicionales a los que deseas segmentar tus anuncios, necesitas renovar las membresías de público existentes de los clientes o quieres quitar clientes de un público, puedes actualizar los datos de clientes de un público de Segmentación por clientes existente con el método firstPartyAndPartnerAudiences.editCustomerMatchMembers
. Puedes agregar clientes a una lista con el campo de unión added_members
y quitarlos de una lista con el campo de unión removed_members
.
Una sola solicitud de firstPartyAndPartnerAudiences.editCustomerMatchMembers
solo puede agregar o quitar miembros de una lista. Una sola solicitud que intente hacer ambas acciones generará un error INVALID_ARGUMENT
.
A continuación, se muestra un ejemplo de cómo agregar un solo cliente como miembro a un público existente de la Segmentación por clientes de información de contacto con los datos de dirección postal proporcionados:
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 .firstPartyAndPartnerAudiences() .editCustomerMatchMembers( audience-id, editCustomerMatchMembersRequest ) .execute(); // Display ID of updated audience. System.out.printf( "The membership of Customer Match audience ID %s was edited.", response.getFirstPartyAndPartnerAudienceId() );
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.firstPartyAndPartnerAudiences().editCustomerMatchMembers( firstPartyAndPartnerAudienceId=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["firstPartyAndPartnerAudienceId"])
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 ->firstPartyAndPartnerAudiences ->editCustomerMatchMembers( audience-id, $editMemberRequest ); // Display ID of updated audience. printf( 'The membership of Customer Match audience ID %s was edited', $result['firstPartyAndPartnerAudienceId'] );