API di acquisizione dati

L’API di acquisizione dati è un servizio ad alto volume, a bassa latenza e a disponibilità elevata progettato per gestire in modo efficiente e con ritardi minimi l’acquisizione di grandi quantità di dati relativi a persone e persone.

I dati vengono acquisiti inviando le richieste eseguite in modo asincrono. È possibile recuperare lo stato della richiesta sottoscrivendo eventi da Marketo Observability Data Stream.

Le interfacce sono disponibili per due tipi di oggetto: Persone, Oggetti personalizzati. L'operazione di registrazione è solo "insert or update" (Inserisci o aggiorna).

NOTE
L'accesso all'API di acquisizione dati richiede l'adesione al pacchetto Marketo Engage Performance Tier.

Autenticazione

L'API di acquisizione dati utilizza lo stesso metodo di autenticazione OAuth 2.0 dell'API REST di Marketo per generare un token di accesso, ma il token di accesso deve essere passato tramite l'intestazione HTTP X-Mkto-User-Token. Non è possibile passare il token di accesso tramite un parametro di query.

Esempio di token di accesso tramite intestazione:

X-Mkto-User-Token: 11606815-aa7a-405a-80a1-f9683efa528b:ab

Autorizzazioni

L’acquisizione dei dati utilizza lo stesso modello di autorizzazioni dell’API REST di Marketo e non richiede alcuna autorizzazione speciale aggiuntiva da utilizzare, anche se sono necessarie autorizzazioni specifiche per ogni endpoint.

Endpoint
Autorizzazione
Persone
Lead di lettura/scrittura
Oggetti personalizzati
Oggetto personalizzato di lettura/scrittura

Intestazioni

L’acquisizione dei dati utilizza le seguenti intestazioni HTTP personalizzate.

Richiesta

Chiave
Valore
Obbligatorio
Descrizione
X-Correlation-Id
Stringa arbitraria (lunghezza massima 255 caratteri).
No
Può essere utilizzato per tracciare le richieste attraverso il sistema. Consulta Flusso di dati di osservabilità Marketo
X-Request-Source
Stringa arbitraria (lunghezza massima 50 caratteri).
No
Può essere utilizzato per tracciare l’origine delle richieste tramite il sistema. Consulta Flusso di dati di osservabilità Marketo

Risposta

Chiave
Valore
Obbligatorio
X-Request-Id
ID richiesta univoco.

Richieste

Utilizzare il metodo HTTP POST per inviare dati al server.

La rappresentazione dei dati è inclusa nel corpo della richiesta come application/json.

Nome di dominio: mkto-ingestion-api.adobe.io

Il percorso inizia con /subscriptions/MunchkinId, dove MunchkinId è specifico per l'istanza Marketo. Puoi trovare il tuo Munchkin ID nell'interfaccia utente di Marketo Engage in Amministratore > Il mio account > Informazioni di supporto. Il resto del percorso viene utilizzato per specificare la risorsa di interesse.

URL di esempio per Persone:

https://mkto-ingestion-api.adobe.io/subscriptions/556-RJS-213/persons

URL di esempio per oggetti personalizzati:

https://mkto-ingestion-api.adobe.io/subscriptions/556-RJS-213/customobjects/purchases

Risposte

Tutte le risposte restituiscono un ID di richiesta univoco tramite l'intestazione X-Request-Id.

Esempio di ID richiesta tramite intestazione:

X-Request-Id: WOUBf3fHJNU6sTmJqLL281lOmAEpMZFw

Completato

Quando una chiamata ha esito positivo, viene restituito lo stato 202. Nessun corpo di risposta restituito.

Esempio di risposta di successo:

HTTP/1.1 202 Accepted
X-Request-Id: e3d92152-0fb1-444a-8f8f-29d5a2338598
Content-Length: 0
Date: Wed, 18 Oct 2023 18:56:49 GMT

Errore

Quando una chiamata genera un errore, viene restituito uno stato non 202 insieme a un corpo della risposta con ulteriori dettagli sull’errore. Il corpo della risposta è application/json e contiene un singolo oggetto con i membri error_code e message.

Di seguito sono riportati i codici di errore riutilizzati da Adobe Developer Gateway.

Codice di stato HTTP
error_code
messaggio
401
401013
Token OAuth non valido
403
403010
Token OAuth mancante
404
404040
Risorsa non trovata
429
429001
Limite di utilizzo servizio raggiunto

Di seguito sono riportati i codici di errore univoci dell’API di acquisizione dati, composti da 3 segmenti. Le prime tre cifre sono lo stato (restituito da Adobe Developer Gateway), seguito da zero "0", seguito da tre cifre.

Codice di stato HTTP
error_code
messaggio
400
4000801
Richiesta non valida
400
4000802
Dati non validi
403
4030801
Non autorizzato
429
4290801
Quota giornaliera raggiunta
500
5000801
Errore interno del server

Nuovi tentativi

Quando viene rilevato un errore transitorio, il servizio ritenta l’operazione tre volte. Il primo nuovo tentativo si verifica dopo un periodo di attesa di 5 minuti, il secondo dopo altri 30 minuti e infine il terzo dopo altri 30 minuti. I tentativi si verificano per vari motivi, principalmente quando un servizio dipendente va in timeout o non è temporaneamente disponibile.

Endpoint

Gli endpoint di acquisizione sono disponibili per Persone e Oggetti personalizzati.

Persone

Endpoint utilizzato per eseguire l'upsert dei record persona.

Metodo
Percorso
POST
/subscriptions/{munchkinId}/people

Intestazioni

Chiave
Valore
Content-Type
application/json
X-Mkto-User-Token

Corpo della richiesta

Chiave
Tipo di dati
Obbligatorio
Valore
Valore predefinito
priorità
Stringa
No
Priorità della richiesta: normale o alta
normale
partitionName
Stringa
No
Nome della partizione della persona
Predefinito
dedupeFields
Oggetto
No
Attributi per la deduplicazione. Sono consentiti uno o due nomi di attributo.
In un'operazione AND vengono utilizzati due attributi. Se ad esempio si specificano sia email che firstName, verranno entrambi utilizzati per cercare una persona tramite l'operazione AND.
Attributi supportati: id, email, sfdcAccountId, sfdcContactId, sfdcLeadId sfdcLeadOwnerId, Attributi personalizzati (solo tipo "stringa" e "numero intero"), email
persone
Array di oggetti
Elenco delle coppie nome-valore dell’attributo della persona
-

Le autorizzazioni richieste sono Read-Write Lead.

Esempio di persone

Richiesta

POST /subscriptions/{munchkinId}/persons

Intestazioni

Content-Type: application/json
X-Mkto-User-Token: {accessToken}

Corpo

{
   "priority": "high",
   "partitionName": "EMEA",
   "dedupeFields": {
      "field1": "email",
      "field2": "firstName"
   },
   "persons":[
      {
         "email": "brooklyn.parker@karnv.com",
         "firstName": "Brooklyn",
         "lastName": "Parker"
      },
      {
         "email": "johnny.neal@yvu30.com",
         "firstName": "Johnny",
         "lastName": "Neal"
      }
   ]
}

Risposta

HTTP/1.1 202
X-Request-ID: WOUBf3fHJNU6sTmJqLL281lOmAEpMZFw

Oggetti personalizzati

Endpoint utilizzato per eseguire l'upsert dei record oggetto personalizzati

Metodo
Percorso
POST
/subscriptions/{munchkinId}/customobjects/{customObjectAPIName}

Intestazioni

Chiave
Valore
Content-Type
application/json
X-Mkto-User-Token

Corpo della richiesta

Chiave
Tipo di dati
Obbligatorio
Valore
Valore predefinito
priorità
Stringa
No
Priorità della richiesta: normale, alta
normale
dedupeBy
Stringa
No
Attributi da deduplicare su: dedupeFields, marketoGUID
dedupeFields
customObjects
Array di oggetti
Elenco di coppie nome-valore dell'attributo per l'oggetto.
-

Le autorizzazioni necessarie sono Read-Write Custom Object.

Se nella richiesta è specificato un campo di collegamento a una persona e tale persona non esiste, si verificano diversi tentativi. Se la persona viene aggiunta durante la finestra dei nuovi tentativi (65 minuti), l’aggiornamento ha esito positivo. Ad esempio, se il campo del collegamento è e-mail su Persona e questa non esiste, si verifica un nuovo tentativo.

Esempio di oggetti personalizzati

Richiesta

POST /subscriptions/{munchkinId}/customobjects/{customObjectAPIName}

Intestazioni

Content-Type: application/json
X-Mkto-User-Token: {accessToken}

Corpo

{
   "dedupeBy": "dedupeFields",
   "priority": "high",
   "customObjects": [
      {
         "email": "brooklyn.parker@karnv.com",
         "vin": "20UYA31581L000000",
         "make": "BMW",
         "model": "3-Series 330i",
         "year": 2003
      },
      {
         "email": "johnny.neal@yvu30.com",
         "vin": "19UYA31581L000000",
         "make": "BMW",
         "model": "3-Series 325i",
         "year": 1989
      }
   ]
}

Risposta

HTTP/1.1 202
X-Request-ID: WOUBf3fHJNU6sTmJqLL281lOmAEpMZFw

Limiti

Elenco di utilizzo dei guardrail:

  • Dimensione massima della richiesta: 1 MB
  • Massimo oggetti per richiesta per tipo di oggetto: 1.000
  • Numero massimo di richieste al secondo per ID client: 5.000
  • Massimo oggetti al giorno: 10.000.000

API di acquisizione dati e API REST

Elenco delle differenze tra l’API di acquisizione dati e altre API REST di Marketo:

  • Questa non è un'interfaccia CRUD completa, ma supporta solo upsert
  • Per eseguire l'autenticazione, devi passare il token di accesso utilizzando l'intestazione X-Mkto-User-Token
  • Il nome di dominio URL è mkto-ingestion-api.adobe.io
  • Il percorso URL inizia con /subscriptions/MunchkinId
  • Nessun parametro di query
  • Se la chiamata ha esito positivo, viene restituito lo stato 202 e il corpo della risposta è vuoto
  • Se la chiamata non riesce, viene restituito uno stato non 202 e il corpo della risposta contiene { "error_code" : "Error Code", "message" : "Message" }
  • L'ID della richiesta viene restituito tramite l'intestazione X-Request-Id
recommendation-more-help
bb269a6d-047a-4bf7-9acd-23ad9a63dc59