Alcuni schemi di piattaforma possono avere array di oggetti. CJA supporta l’inserimento e la generazione di rapporti di array di oggetti all’interno dei dati evento, ricerca e profilo. Uno degli esempi più comuni è un carrello, che può contenere più prodotti. Ogni prodotto ha un nome, uno SKU, una categoria, un prezzo, una quantità e altre dimensioni che è possibile monitorate. Questi facet hanno requisiti separati, ma devono rientrare tutti nello stesso hit.
Nelle versioni precedenti di Adobe Analytics, questa funzione è stata eseguita utilizzando la variabile products
. Si trattava di una stringa concatenata in cui i punti e virgola (;
) separavano i facet di un prodotto, mentre le virgole (,
) delineavano i prodotti. Era l’unica variabile con supporto limitato di “array di oggetti”. Le variabili multivalore, come le variabili di elenco, erano in grado di supportare l’equivalente degli array, ma non gli “array di oggetti”. CJA amplia questo concetto con il supporto di gerarchie arbitrariamente profonde all’interno di una singola riga di dati, una funzione non disponibile nelle versioni precedenti di Adobe Analytics.
Il seguente evento è un oggetto JSON che rappresenta un acquisto effettuato da un cliente di una lavatrice e di un’asciugatrice.
{
"ID": "1",
"product": [
{
"SKU": "1234",
"category": "Washing Machines",
"name": "LG Washing Machine 2000",
"orders": 1,
"revenue": 1600,
"units": 1,
"order_id":"abc123",
"warranty": [
{
"coverage": "full coverage",
"length": "2 year",
"name": "LG 2000 standard",
"orders": 1,
"revenue": 200
},
{
"coverage": "extended",
"length": "1 year",
"orders": 1,
"revenue": 50,
"type": "LG 2000 addon"
}
]
},
{
"SKU": "4567",
"category": "Dryers",
"name": "LG Dryer 2000",
"orders": 1,
"revenue": 500,
"units": 1
}
],
"timestamp": 1534219229
}
Quando si crea una visualizzazione dati, sono disponibili le dimensioni e le metriche seguenti (in base allo schema):
Utilizzando solo l’evento precedente, le tabelle seguenti mostrano i rapporti Workspace con alcune combinazioni di dimensioni e metriche.
product : name |
product : orders |
product : revenue |
---|---|---|
LG Washing Machine 2000 |
1 |
1600 |
LG Dryer 2000 |
1 |
500 |
Total |
1 |
2100 |
CJA esamina in modo selettivo le dimensioni e le metriche dell’oggetto in base alla tabella.
{
"ID": "1",
+ "product": [
+ {
"SKU": "1234",
"category": "Washing Machines",
+ "name": "LG Washing Machine 2000",
+ "orders": 1,
+ "revenue": 1600,
"units": 1,
"order_id":"abc123",
"warranty": [
{
"coverage": "full coverage",
"length": "2 year",
"name": "LG 2000 standard",
"orders": 1,
"revenue": 200
},
{
"coverage": "extended",
"length": "1 year",
"orders": 1,
"revenue": 50,
"type": "LG 2000 addon"
}
]
+ },
+ {
"SKU": "4567",
"category": "Dryers",
+ "name": "LG Dryer 2000",
+ "orders": 1,
+ "revenue": 500,
"units": 1
+ }
+ ],
+ "timestamp": 1534219229
+}
Se desideri creare un rapporto solo sui ricavi della garanzia, il tuo progetto avrà un aspetto simile al seguente:
product : warranty : coverage |
product : warranty : revenue |
---|---|
full coverage |
200 |
extended |
50 |
Total |
250 |
CJA esamina queste parti dell’evento per generare il rapporto:
{
"ID": "1",
+ "product": [
+ {
"SKU": "1234",
"category": "Washing Machines",
"name": "LG Washing Machine 2000",
"orders": 1,
"revenue": 1600,
"units": 1,
"order_id":"abc123",
+ "warranty": [
+ {
+ "coverage": "full coverage",
"length": "2 year",
"name": "LG 2000 standard",
"orders": 1,
+ "revenue": 200
+ },
+ {
+ "coverage": "extended",
"length": "1 year",
"orders": 1,
+ "revenue": 50,
"type": "LG 2000 addon"
+ }
+ ]
+ },
{
"SKU": "4567",
"category": "Dryers",
"name": "LG Dryer 2000",
"orders": 1,
"revenue": 500,
"units": 1
}
+ ],
+ "timestamp": 1534219229
+}
Poiché l’asciugatrice non includeva una garanzia, non è stata inserita nella tabella.
Dato che è possibile combinare qualsiasi dimensione con qualsiasi metrica, la tabella seguente illustra i dati che emergerebbero nel caso di elementi di dimensione non specificati:
product : warranty : name |
product : orders |
product : warranty : orders |
---|---|---|
LG 2000 standard |
1 |
1 |
Unspecified |
2 |
1 |
Total |
2 |
2 |
Un ordine di prodotto esiste senza un nome di garanzia associato, pertanto l’elemento della dimensione è impostato su “Non specificato”. La stessa situazione si applica anche all’ordine di garanzia del prodotto:
{
"ID": "1",
+ "product": [
+ {
"SKU": "1234",
"category": "Washing Machines",
"name": "LG Washing Machine 2000",
+ "orders": 1,
"revenue": 1600,
"units": 1,
"order_id":"abc123",
+ "warranty": [
+ {
"coverage": "full coverage",
"length": "2 year",
+ "name": "LG 2000 standard",
+ "orders": 1,
"revenue": 200
+ },
+ {
"coverage": "extended",
"length": "1 year",
+ "orders": 1,
"revenue": 50,
"type": "LG 2000 addon"
+ }
+ ]
+ },
+ {
"SKU": "4567",
"category": "Dryers",
"name": "LG Dryer 2000",
+ "orders": 1,
"revenue": 500,
"units": 1
+ }
+ ],
+ "timestamp": 1534219229
+}
Prendi nota degli ordini ai quali non è associato un nome. Si tratta degli ordini attribuiti all’elemento della dimensione “Non specificato”.
CJA non combina in modo nativo metriche con nomi simili se si trovano su diversi livelli dell’oggetto.
product : category |
product : revenue |
product : warranty : revenue |
---|---|---|
Washing Machines |
1600 |
250 |
Dryers |
500 |
0 |
Total |
2100 |
250 |
Tuttavia, è possibile creare una metrica calcolata che combini le metriche desiderate:
Metrica calcolata “Entrate totali”: [product : revenue] + [product : warranty : revenue]
L’applicazione di questa metrica calcolata mostra i risultati desiderati:
product : warranty : name |
Total revenue (calculated metric) |
---|---|
Washing Machines |
1850 |
Dryers |
500 |
Total |
2350 |