고객 일치 타겟팅 잠재고객 업로드

업로드된 고객 연락처를 사용하여 고객 일치 타겟팅 잠재고객을 만들 수 있습니다. 디스플레이 및 휴대기기 ID를 사용하여 Video 360 API 이 페이지에서는 초기 고객 일치 타겟팅 잠재고객을 만들고 기존 잠재고객 및 리마케팅 목록을 사용하여 Video 360 API

사용자 데이터 준비

고객 일치 타겟팅 잠재고객을 채우는 데 사용되는 사용자 데이터는 민감하며 제대로 준비해야 합니다

민감한 정보 해싱

일부 고객 일치 타겟팅 잠재고객은 민감한 고객 연락처를 사용하여 생성됩니다. 확인할 수 있습니다 디스플레이 및 Video 360에서는 민감한 정보를 SHA256 알고리즘을 다시 로드해야 합니다. 다음 데이터 필드는 해싱되어야 합니다. 업로드 전:

  • 이름
  • 이메일 주소
  • 전화번호

우편번호 및 국가 코드는 업로드 전에 해싱되지 않아야 합니다. 시도 중 해싱되지 않은 고객 데이터를 업로드하면 오류가 발생합니다.

데이터를 해싱하기 전에 다음 조건을 확인하세요.

  • 이름, 성, 이메일 주소에서 공백을 삭제해야 합니다. 값으로 사용됩니다.
  • 모든 값은 소문자여야 합니다.
  • 모든 전화번호는 E.164 형식을 사용하여 형식이어야 하며 국가 통화 코드를 포함해야 합니다.

사용자 데이터를 업로드할 때 제공된consent ContactInfoList 또는 동의 신호를 전달하는 MobileDeviceIdList 객체 부여되지 않습니다.

Consent 객체의 두 필드 중 하나를 다음으로 설정 CONSENT_STATUS_DENIED에서 오류가 발생합니다.

단일에서 추가된 모든 사용자에 대해 동의 신호가 설정됨 firstAndThirdPartyAudiences.create 또는 firstAndThirdPartyAudiences.editCustomerMatchMembers 합니다. 동의 신호가 다른 사용자는 별도로 업로드해야 함 요청을 처리합니다

고객 일치 타겟팅 잠재고객 만들기

고객 일치 타겟팅 잠재고객은 firstAndThirdPartyAudiences.create 메서드를 사용하여 지도 가장자리에 패딩을 추가할 수 있습니다. 잠재고객은 퍼스트 파티 잠재고객으로 선언되어야 하며 audienceType/ CUSTOMER_MATCH_CONTACT_INFO 또는 CUSTOMER_MATCH_DEVICE_ID: 고객 일치 타겟팅 데이터는 union 필드 내의 적절한 필드를 사용하여 제공됨 members

다음은 새 연락처 정보 고객 일치 타겟팅을 만드는 방법의 예입니다. 제공된 해싱된 목록을 사용하여 가입 기간이 무제한인 잠재고객 전화번호:

자바

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

고객 일치 타겟팅 잠재고객의 멤버십 업데이트

타겟팅할 고객을 추가로 확보한 경우 갱신할 때 기존 잠재고객 멤버십을 사용하고 있거나 고객을 삭제하고 싶거나 기존 고객의 고객 데이터를 업데이트할 수 있습니다. 잠재고객에게 firstAndThirdPartyAudiences.editCustomerMatchMembers 드림 메서드를 사용하여 축소하도록 요청합니다. 다음을 사용하여 고객을 목록에 추가할 수 있습니다. added_members 통합 필드를 사용하여 removed_members 공용체 필드가 있는 목록입니다.

단일 firstAndThirdPartyAudiences.editCustomerMatchMembers 드림 요청은 목록에서 회원을 추가 또는 삭제만 할 수 있습니다. 단일 요청 시도 중 두 작업을 모두 수행하면 INVALID_ARGUMENT 오류가 발생합니다.

다음은 단일 고객을 기존 연락처 정보, 제공된 우편 주소 데이터를 사용하는 고객 일치 타겟팅 잠재고객

자바

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