Dzięki temu krótkiemu wprowadzeniu poznasz interfejs Data Manager API. Wybierz wersję przewodnika, którą chcesz wyświetlić:
W tym krótkim wprowadzeniu wykonasz te czynności:
- Przygotuj
Destination
do otrzymywania danych o odbiorcach. - przygotować dane o odbiorcach do wysłania,
- Utwórz żądanie
IngestionService
dotyczące członków listy odbiorców. - Wyślij żądanie za pomocą narzędzia Google APIs Explorer.
- Poznaj odpowiedzi o sukcesie i niepowodzeniu.
Przygotowywanie miejsca docelowego
Zanim wyślesz dane, musisz przygotować miejsce docelowe, do którego chcesz je przesłać. Oto przykładowy kod Destination
, którego możesz użyć:
{
"operatingAccount": {
"product": "OPERATING_ACCOUNT_PRODUCT",
"accountId": "OPERATING_ACCOUNT_ID"
},
"productDestinationId": "AUDIENCE_ID"
}
Ustaw
operatingAccount
na usługę i identyfikator konta, które będzie otrzymywać dane o odbiorcach.
Przygotowywanie danych o odbiorcach
Rozważmy następujące przykładowe dane w pliku rozdzielonym przecinkami. Każdy wiersz w pliku odpowiada jednemu członkowi listy odbiorców, a każdy członek może mieć maksymalnie 3 adresy e-mail.
#,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,
Adresy e-mail muszą spełniać te wymagania dotyczące formatowania i szyfrowania:
- Usuń wszystkie spacje na początku, na końcu i w środku.
- zmień adres e-mail na małe litery,
- Zaszyfruj adres e-mail za pomocą algorytmu SHA-256.
- Zakoduj bajty skrótu za pomocą kodowania szesnastkowego (hex) lub kodowania Base64. W przykładach w tym przewodniku używamy kodowania szesnastkowego.
Oto sformatowane dane:
#,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,
A oto dane po zaszyfrowaniu i zakodowaniu:
#,email_1,email_2,email_3
1,07e2f1394b0ea80e2adca010ea8318df697001a005ba7452720edda4b0ce57b3,1df6b43bc68dd38eca94e6a65b4f466ae537b796c81a526918b40ac4a7b906c7
2,2ef46c4214c3fc1b277a2d976d55194e12b899aa50d721f28da858c7689756e3,54e410b14fa652a4b49b43aff6eaf92ad680d4d1e5e62ed71b86cd3188385a51,e8bd3f8da6f5af73bec1ab3fbf7beb47482c4766dfdfc94e6bd89e359c139478
3,05bb62526f091b45d20e243d194766cca8869137421047dc53fa4876d111a6f0,f1fcde379f31f4d446b76ee8f34860eca2288adc6b6d6c0fdc56d9eee75a2fa5
4,83a834cc5327bc4dee7c5408988040dc5813c7662611cd93b707aff72bf7d33f,223ebda6f6889b1494551ba902d9d381daf2f642bae055888e96343d53e9f9c4
Oto przykładowy parametr AudienceMember
dla sformatowanych, zaszyfrowanych i zakodowanych adresów e-mail dana@example.com
i danam@example.com
z pierwszego wiersza danych wejściowych:
{
"userData": {
"userIdentifiers": [
{
"emailAddress": "07e2f1394b0ea80e2adca010ea8318df697001a005ba7452720edda4b0ce57b3"
},
{
"emailAddress": "1df6b43bc68dd38eca94e6a65b4f466ae537b796c81a526918b40ac4a7b906c7"
}
]
}
}
Tworzenie treści żądania
Połącz Destination
i userData
w treści żądania:
{
"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
}
- Zaktualizuj zmienne w treści, np.
OPERATING_ACCOUNT_PRODUCT
,OPERATING_ACCOUNT_ID
iAUDIENCE_ID
, podając wartości dla swojego konta i miejsca docelowego. - Ustaw wartość
validateOnly
natrue
, aby zweryfikować prośbę bez stosowania zmian. Gdy zechcesz zastosować zmiany, ustawvalidateOnly
nafalse
. - Ustaw wartość
termsOfService
, aby wskazać, że użytkownik zaakceptował Warunki korzystania z usługi kierowania na listę klientów. - Zwróć uwagę, że ta prośba wskazuje, że
consent
ma przyznany dostęp i nie korzysta z szyfrowania.
Wysyłanie żądania
- Skopiuj treść żądania, korzystając z przycisku kopiowania w prawym górnym rogu przykładu.
- Na pasku narzędzi kliknij przycisk API.
- Wklej skopiowaną treść żądania do pola Treść żądania.
- Kliknij przycisk Wykonaj, postępuj zgodnie z wyświetlanymi instrukcjami autoryzacji i sprawdź odpowiedź.
Odpowiedzi o sukcesie
Żądanie zakończone pomyślnie zwraca odpowiedź z obiektem zawierającym requestId
.
{
"requestId": "126365e1-16d0-4c81-9de9-f362711e250a"
}
Odpowiedzi o błędzie
Nieudane żądanie powoduje zwrócenie kodu stanu odpowiedzi o błędzie, np. 400 Bad
Request
, oraz odpowiedzi ze szczegółami błędu.
Na przykład email_address
zawierający ciąg tekstowy zamiast wartości zakodowanej w formacie szesnastkowym
generuje tę odpowiedź:
{
"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"
}
]
}
]
}
}
email_address
, który nie jest haszowany i jest tylko zakodowany w formacie szesnastkowym, generuje tę odpowiedź:
{
"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"
}
]
}
]
}
}
Dalsze kroki
- Skonfiguruj uwierzytelnianie i skonfiguruj środowisko za pomocą biblioteki klienta.
- Poznaj wymagania dotyczące formatowania, szyfrowania i kodowania poszczególnych typów danych.
- Dowiedz się, jak szyfrować dane użytkowników.
- Dowiedz się więcej o sprawdzonych metodach.
- Dowiedz się więcej o limitach.