مخاطبین مطابقت مشتری را بارگذاری کنید

شما می‌توانید با استفاده از اطلاعات تماس مشتری آپلود شده یا شناسه‌های دستگاه تلفن همراه با استفاده از Display & Video 360 API، مخاطبان Customer Match ایجاد کنید. این صفحه نحوه ایجاد یک مخاطب اولیه Customer Match و افزودن داده‌های مشتری جدید به مخاطبان موجود با استفاده از Display & Video 360 API را شرح می‌دهد.

آماده‌سازی داده‌های کاربر

داده‌های کاربری که برای جمع‌آوری مخاطبان Customer Match استفاده می‌شوند، حساس هستند و باید قبل از آپلود شدن، به درستی آماده شوند.

داده‌های حساس به هش

برخی از مخاطبان Customer Match با استفاده از اطلاعات تماس حساس مشتری ایجاد می‌شوند. Display & Video 360 مستلزم آن است که داده‌های حساس قبل از آپلود با استفاده از الگوریتم SHA256 هش شوند. فیلدهای داده زیر باید قبل از آپلود هش شوند:

  • نام کوچک
  • نام خانوادگی
  • آدرس‌های ایمیل
  • شماره تلفن‌ها

کدهای پستی و کدهای کشور نباید قبل از آپلود هش شوند. تلاش برای آپلود داده‌های هش نشده مشتری منجر به خطا می‌شود.

قبل از هش کردن داده‌ها، شرایط زیر را بررسی کنید:

  • هرگونه فاصله خالی باید از مقادیر نام، نام خانوادگی و آدرس ایمیل حذف شود.
  • تمام مقادیر باید با حروف کوچک نوشته شوند.
  • تمام شماره تلفن‌ها باید با فرمت E.164 قالب‌بندی شوند و کد کشور را نیز شامل شوند.

هنگام آپلود داده‌های کاربر، از فیلدهای consent در اشیاء ContactInfoList یا MobileDeviceIdList ارائه شده برای ارسال سیگنال‌های رضایت اعطا شده توسط کاربران گنجانده شده استفاده کنید.

تنظیم هر یک از فیلدهای شیء Consent با مقدار CONSENT_STATUS_DENIED منجر به خطا می‌شود.

سیگنال‌های رضایت برای همه کاربرانی که در یک درخواست firstPartyAndPartnerAudiences.create یا firstPartyAndPartnerAudiences.editCustomerMatchMembers اضافه شده‌اند، تنظیم می‌شوند. کاربرانی که سیگنال‌های رضایت متفاوتی دارند باید در درخواست‌های جداگانه آپلود شوند.

ایجاد مخاطب Customer Match

می‌توان با استفاده از متد firstPartyAndPartnerAudiences.create یک مخاطب Customer Match ایجاد کرد. این مخاطب باید به عنوان مخاطب first-party تعریف شود و باید دارای audienceType با مقادیر CUSTOMER_MATCH_CONTACT_INFO یا CUSTOMER_MATCH_DEVICE_ID باشد. داده‌های Customer Match باید با استفاده از فیلد مناسب در members فیلد union ارائه شوند.

در اینجا مثالی از نحوه ایجاد یک مخاطب جدید برای تطابق مشتری با اطلاعات تماس با مدت عضویت ۵۴۰ روز با استفاده از لیست ارائه شده از شماره تلفن‌های هش شده آورده شده است:

جاوا

// 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()
);

پایتون

# 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"])

پی اچ پی

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

عضویت مخاطبان Customer Match را به‌روزرسانی کنید

اگر مشتریان دیگری را شناسایی کرده‌اید که می‌خواهید آنها را هدف قرار دهید، نیاز به تمدید عضویت مخاطبان فعلی مشتریان دارید، یا می‌خواهید مشتریانی را از یک مخاطب حذف کنید، می‌توانید داده‌های مشتری یک مخاطب Customer Match موجود را با استفاده از متد firstPartyAndPartnerAudiences.editCustomerMatchMembers به‌روزرسانی کنید. می‌توانید با استفاده از فیلد union added_members مشتریان را به یک لیست اضافه کنید و با استفاده از فیلد union removed_members مشتریان را از یک لیست حذف کنید.

یک درخواست firstPartyAndPartnerAudiences.editCustomerMatchMembers فقط می‌تواند اعضا را به یک لیست اضافه یا حذف کند. یک درخواست واحد که سعی در انجام هر دو کار داشته باشد، منجر به خطای INVALID_ARGUMENT می‌شود.

در اینجا مثالی از نحوه اضافه کردن یک مشتری به عنوان عضو به اطلاعات تماس موجود برای مخاطبان Customer Match با استفاده از داده‌های آدرس پستی ارائه شده، آورده شده است:

جاوا

// 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()
);

پایتون

# 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"])

پی اچ پی

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