이 빠른 시작을 통해 데이터 관리 도구 API에 익숙해질 수 있습니다. 확인하려는 빠른 시작 버전을 선택합니다.
이 빠른 시작에서는 다음 단계를 완료합니다.
- 잠재고객 데이터를 수신할
Destination
를 준비합니다. - 전송할 잠재고객 데이터를 준비합니다.
- 잠재고객 구성원을 위한
IngestionService
요청을 빌드합니다. - Google API 탐색기로 요청을 보냅니다.
- 성공 및 실패 응답을 이해합니다.
대상 준비
데이터를 전송하려면 먼저 데이터를 전송할 대상을 준비해야 합니다. 다음은 사용할 수 있는 샘플 Destination
입니다.
{
"operatingAccount": {
"product": "OPERATING_ACCOUNT_PRODUCT",
"accountId": "OPERATING_ACCOUNT_ID"
},
"productDestinationId": "AUDIENCE_ID"
}
operatingAccount
를 잠재고객 데이터를 수신할 계정의 제품 및 ID로 설정합니다.
시청자 데이터 준비
쉼표로 구분된 파일의 다음 샘플 데이터를 고려해 보세요. 파일의 각 줄은 잠재고객의 한 구성원에 해당하며 각 구성원에게는 최대 3개의 이메일 주소가 있습니다.
#,email_1,email_2,email_3
1,dana@example.com,DanaM@example.com,
2,ALEXJ@example.com, AlexJ@cymbalgroup.com,alexj@altostrat.com
3,quinn@CYMBALGROUP.com,baklavainthebalkans@gmail.com ,
4,rosario@example.org,cloudySanFrancisco@GMAIL.com,
이메일 주소에는 다음과 같은 형식 및 해싱 요구사항이 있습니다.
- 모든 선행, 후행, 중간 공백을 삭제합니다.
- 이메일 주소를 소문자로 변환합니다.
- SHA-256 알고리즘을 사용하여 이메일 주소를 해싱합니다.
- 16진수 (hex) 또는 Base64 인코딩을 사용하여 해시 바이트를 인코딩합니다. 이 가이드의 예시에서는 16진수 인코딩을 사용합니다.
형식이 지정된 데이터는 다음과 같습니다.
#,email_1,email_2,email_3
1,dana@example.com,danam@example.com,
2,alexj@example.com,alexj@cymbalgroup.com,alexj@altostrat.com
3,quinn@cymbalgroup.com,baklavainthebalkans@gmail.com,
4,rosario@example.org,cloudysanfrancisco@gmail.com,
해싱 및 인코딩된 데이터는 다음과 같습니다.
#,email_1,email_2,email_3
1,07e2f1394b0ea80e2adca010ea8318df697001a005ba7452720edda4b0ce57b3,1df6b43bc68dd38eca94e6a65b4f466ae537b796c81a526918b40ac4a7b906c7
2,2ef46c4214c3fc1b277a2d976d55194e12b899aa50d721f28da858c7689756e3,54e410b14fa652a4b49b43aff6eaf92ad680d4d1e5e62ed71b86cd3188385a51,e8bd3f8da6f5af73bec1ab3fbf7beb47482c4766dfdfc94e6bd89e359c139478
3,05bb62526f091b45d20e243d194766cca8869137421047dc53fa4876d111a6f0,f1fcde379f31f4d446b76ee8f34860eca2288adc6b6d6c0fdc56d9eee75a2fa5
4,83a834cc5327bc4dee7c5408988040dc5813c7662611cd93b707aff72bf7d33f,223ebda6f6889b1494551ba902d9d381daf2f642bae055888e96343d53e9f9c4
다음은 입력 데이터의 첫 번째 행에 있는 dana@example.com
및 danam@example.com
의 형식이 지정되고, 해싱되고, 인코딩된 이메일 주소의 샘플 AudienceMember
입니다.
{
"userData": {
"userIdentifiers": [
{
"emailAddress": "07e2f1394b0ea80e2adca010ea8318df697001a005ba7452720edda4b0ce57b3"
},
{
"emailAddress": "1df6b43bc68dd38eca94e6a65b4f466ae537b796c81a526918b40ac4a7b906c7"
}
]
}
}
요청 본문 빌드
요청 본문의 Destination
및 userData
을 결합합니다.
{
"destinations": [
{
"operatingAccount": {
"product": "OPERATING_ACCOUNT_PRODUCT",
"accountId": "OPERATING_ACCOUNT_ID"
},
"productDestinationId": "AUDIENCE_ID"
}
],
"audienceMembers": [
{
"userData": {
"userIdentifiers": [
{
"emailAddress": "07e2f1394b0ea80e2adca010ea8318df697001a005ba7452720edda4b0ce57b3"
},
{
"emailAddress": "1df6b43bc68dd38eca94e6a65b4f466ae537b796c81a526918b40ac4a7b906c7"
}
]
}
},
{
"userData": {
"userIdentifiers": [
{
"emailAddress": "2ef46c4214c3fc1b277a2d976d55194e12b899aa50d721f28da858c7689756e3"
},
{
"emailAddress": "54e410b14fa652a4b49b43aff6eaf92ad680d4d1e5e62ed71b86cd3188385a51"
},
{
"emailAddress": "e8bd3f8da6f5af73bec1ab3fbf7beb47482c4766dfdfc94e6bd89e359c139478"
}
]
}
},
{
"userData": {
"userIdentifiers": [
{
"emailAddress": "05bb62526f091b45d20e243d194766cca8869137421047dc53fa4876d111a6f0"
},
{
"emailAddress": "f1fcde379f31f4d446b76ee8f34860eca2288adc6b6d6c0fdc56d9eee75a2fa5"
}
]
}
},
{
"userData": {
"userIdentifiers": [
{
"emailAddress": "83a834cc5327bc4dee7c5408988040dc5813c7662611cd93b707aff72bf7d33f"
},
{
"emailAddress": "223ebda6f6889b1494551ba902d9d381daf2f642bae055888e96343d53e9f9c4"
}
]
}
}
],
"consent": {
"adUserData": "CONSENT_GRANTED",
"adPersonalization": "CONSENT_GRANTED"
},
"encoding": "HEX",
"termsOfService": {
"customerMatchTermsOfServiceStatus": "ACCEPTED"
},
"validateOnly": true
}
- 본문의 자리표시자(예:
OPERATING_ACCOUNT_PRODUCT
,OPERATING_ACCOUNT_ID
,AUDIENCE_ID
)를 계정 및 대상의 값으로 업데이트합니다. validateOnly
을true
로 설정하여 변경사항을 적용하지 않고 요청을 검증합니다. 변경사항을 적용할 준비가 되면validateOnly
을false
로 설정합니다.- 사용자가 고객 일치 타겟팅 서비스 약관에 동의했음을 나타내도록
termsOfService
를 설정합니다. - 이 요청은
consent
이 부여되었으며 암호화를 사용하지 않음을 나타냅니다.
요청 전송
- 샘플 오른쪽 상단의 복사 버튼을 사용하여 요청 본문을 복사합니다.
- 툴바에서 API 버튼을 클릭합니다.
- 복사한 요청 본문을 요청 본문 상자에 붙여넣습니다.
- 실행 버튼을 클릭하고 승인 메시지를 완료한 후 응답을 검토합니다.
성공 응답
요청에 성공하면 requestId
가 포함된 객체가 있는 응답이 반환됩니다.
{
"requestId": "126365e1-16d0-4c81-9de9-f362711e250a"
}
실패 응답
요청이 실패하면 400 Bad
Request
와 같은 오류 응답 상태 코드와 오류 세부정보가 포함된 응답이 반환됩니다.
예를 들어 16진수 인코딩 값 대신 일반 텍스트 문자열이 포함된 email_address
는 다음 응답을 생성합니다.
{
"error": {
"code": 400,
"message": "There was a problem with the request.",
"status": "INVALID_ARGUMENT",
"details": [
{
"@type": "type.googleapis.com/google.rpc.ErrorInfo",
"reason": "INVALID_ARGUMENT",
"domain": "datamanager.googleapis.com"
},
{
"@type": "type.googleapis.com/google.rpc.BadRequest",
"fieldViolations": [
{
"field": "audience_members.audience_members[0].user_data.user_identifiers",
"description": "Email is not hex encoded.",
"reason": "INVALID_HEX_ENCODING"
}
]
}
]
}
}
해싱되지 않고 16진수로만 인코딩된 email_address
는 다음 응답을 생성합니다.
{
"error": {
"code": 400,
"message": "There was a problem with the request.",
"status": "INVALID_ARGUMENT",
"details": [
{
"@type": "type.googleapis.com/google.rpc.ErrorInfo",
"reason": "INVALID_ARGUMENT",
"domain": "datamanager.googleapis.com"
},
{
"@type": "type.googleapis.com/google.rpc.BadRequest",
"fieldViolations": [
{
"field": "audience_members.audience_members[0]",
"reason": "INVALID_SHA256_FORMAT"
}
]
}
]
}
}
다음 단계
- 클라이언트 라이브러리를 사용하여 인증을 구성하고 환경을 설정합니다.
- 각 데이터 유형의 형식 지정, 해싱, 인코딩 요구사항을 알아봅니다.
- 사용자 데이터를 암호화하는 방법을 알아보세요.
- 권장사항 알아보기
- 한도 및 할당량에 대해 알아봅니다.