Panoramica dell'API
dscc
(Componente della community di Looker Studio) è una libreria utile per la creazione di componenti della community per Looker Studio. Il codice sorgente è disponibile su GitHub.
dscc
espone tre funzioni: getWidth()
, getHeight()
e subscribeToData()
.
getWidth()
Nome | Parametri | Tipo restituito | Descrizione |
---|---|---|---|
getWidth() | Nessuno | number
|
Restituisce la larghezza dell'iframe, in pixel |
In uso: getWidth()
// to get the width of the iframe
var width = dscc.getWidth();
getHeight()
Nome | Parametri | Tipo restituito | Descrizione |
---|---|---|---|
getHeight() | Nessuno | int
|
Restituisce l'altezza dell'iframe, in pixel |
In uso: getHeight()
// to get the height of the iframe
var height = dscc.getHeight();
sendInteraction()
La funzione sendInteraction()
invia un messaggio a Looker Studio con i dati
di un filtro.
Parametri:
Nome | Tipo | Descrizione |
---|---|---|
actionID | string
|
La stringa che corrisponde all'actionId in |
interazione | enum(InteractionType)
|
Indica a Looker Studio l'interazione |
dati | object(InteractionData)
|
Fornisce i dati necessari per un'interazione |
InteractionType
Al momento, l'unico InteractionType
valido è FILTER
.
Nome | Tipo | Descrizione |
---|---|---|
dscc.InteractionType.FILTER | Enum | Descrive l'interazione con FILTER |
In uso: sendInteraction
// the actionID can either be hardcoded or parsed from the returned data
var actionId = "interactionConfigId";
// dscc provides enums for the interaction types
var FILTER = dscc.InteractionType.FILTER;
var fieldID = "qt_m9dtntutsb";
var dataValue = "Asia";
// sendInteraction expects data that tells you the concepts and the values of
// those concepts to use in constructing a filter.
var interactionData = {
"concepts": [fieldId],
"values": [[dataValue]]
}
dscc.sendInteraction(actionId, FILTER, interactionData);
interactionData
var interactionData = {
"concepts": array(fieldId),
"values": array(array(dataValue))
}
Campo | Tipo | Descrizione |
---|---|---|
concetti | Array |
Array di fieldIds |
valori | Array<Array>
|
Array nidificato di valori di dati. Ogni sottoarray deve avere la lunghezza dell'array concepts .
Ogni valore nel sottoarray corrisponde a un valore di dimensione. |
Esempio di interactionData
:
var interactionData = {
"concepts": ["dim1Id", "dim2Id"],
"values": [
["dim1Val1", "dim2Val1"],
["dim1Val2", "dim2Val2"]
]
}
L'utilizzo di dscc.sendInteraction
con interactionData
riportato sopra equivale
alla seguente istruzione SQL:
SELECT data WHERE
(dim1 == dim1Val1 AND dim2 == dim2Val1)
OR
(dim1 == dim1Val2 AND dim2 == dim2Val2);
clearInteraction()
La funzione clearInteraction()
invia un messaggio a Looker Studio per cancellare un
filtro impostato in precedenza da questa visualizzazione.
Parametri:
Nome | Tipo | Descrizione |
---|---|---|
actionID | string
|
La stringa che corrisponde all'actionId nel file |
interazione | enum(InteractionType)
|
Indica a Looker Studio l'interazione |
In uso: clearInteraction()
// the actionID can either be hardcoded or parsed from the returned data
var actionId = "interactionConfigId";
// dscc provides enums for the interaction types
var FILTER = dscc.InteractionType.FILTER;
dscc.clearInteraction(actionId, FILTER);
subscribeToData(callback, options)
La funzione subscribeToData()
esegue l'iscrizione ai messaggi di Looker Studio.
Parametri:
Nome | Tipo | Descrizione |
---|---|---|
callback(dati) | function
|
Una funzione che accetta i dati restituiti da
subscribeToData . |
opzioni | object |
Definisce il formato di ritorno dei dati desiderato |
L'oggetto opzioni ha il seguente aspetto:
{
transform: dscc.tableTransform | dscc.objectTransform
}
Valore restituito:
Tipo | Descrizione |
---|---|
function |
Annulla l'iscrizione di callback a ulteriori messaggi di Looker Studio |
In uso: subscribeToData()
// define and use a callback
var unsubscribe = dscc.subscribeToData(function(data){
// console.log the returned data
console.log(data);
}, {transform: dscc.tableTransform});
// to unsubscribe
unsubscribe();
data
Questo è l'oggetto passato all'oggetto callback
registrato con
dscc.subscribeToData
. Questi sono i campi condivisi tra dscc.objectFormat
e dscc.tableFormat
.
{
fields: object(fieldsByConfigId),
style: object(styleById),
interactions: object(interactionsById),
theme: object(themeStyle),
tables: object(tablesById),
dateRanges: object(dateRangesById)
}
Campo | Tipo | Descrizione |
---|---|---|
campi | object(fieldsByConfigId)
|
Un oggetto che contiene campi indicizzati dal rispettivo configId |
stile | object(styleById)
|
Un oggetto che contiene oggetti di stile indicizzati dal relativo valore configId |
interazioni | object(interactionsById)
|
Un oggetto che contiene oggetti di interazione |
tema | themeStyle
|
Un oggetto themeStyle che contiene informazioni sullo stile del tema per il report |
tabelle | object(tablesById)
|
Un oggetto che contiene tableObjects |
dateRanges | object(dateRangesById)
|
Un oggetto che contiene dateRanges |
fieldsByConfigId
{
configId: array(field)
}
L'oggetto fieldsByConfigId
contiene array di oggetti field indicizzati dall'"id" definito nella configurazione di visualizzazione. In questo oggetto è presente una voce per ogni dataField
definito nel file di configurazione.
Campo | Tipo | Descrizione |
---|---|---|
configId | Array<field> |
Un array di campi associati a dataField |
campo
{
id: fieldId,
name: string,
description: string,
type: fieldType,
concept: enum(conceptType)
}
L'oggetto field
fornisce informazioni sul campo selezionato dall'utente nel riquadro delle proprietà.
Campo | Tipo | Descrizione |
---|---|---|
id | string |
L'ID generato da Looker Studio per il campo |
nome | string |
Il nome del campo leggibile. |
descrizione | string |
La descrizione del campo. |
digita | enum(fieldType) |
Il semanticType del campo. |
concetto | enum(conceptType) |
Il valore conceptType del campo |
styleById
{
configId: styleValue
}
L'oggetto styleById
fornisce informazioni sullo stile indicizzate dall'"id" definito nella configurazione della visualizzazione.
Campo | Tipo | Descrizione |
---|---|---|
configId | styleValue
|
Un oggetto che contiene il valore di stile e il valore di stile predefinito definito dalla configurazione |
styleValue
{
value: string | object | bool | number,
defaultValue: string | object | bool | number
}
L'oggetto styleValue
fornisce sia il valore di stile selezionato dall'utente sia
il valore predefinito definito nella configurazione. Il tipo di value
e defaultValue
dipende dall'elemento di stile.
Campo | Tipo | Descrizione |
---|---|---|
valore | string OR object OR bool OR
number
|
Il valore dell'elemento di stile restituito dalla selezione dell'utente nel riquadro delle proprietà |
defaultValue | string OR object OR bool OR
number
|
Il valore predefinito dell'elemento di stile definito nella configurazione di visualizzazione |
interactionsById
{
}
L'oggetto interactionsById
fornisce dati sulle interazioni indicizzati dalla configurazione di visualizzazione interactionId
.
Indice | Tipo | Descrizione |
---|---|---|
configId | interaction
|
Un oggetto contenente dati associati a un'interazione |
interactionField
{
value: object(interactionValue),
supportedActions: array(InteractionType)
}
L'oggetto interactionField
contiene l'array di azioni supportate definite nella configurazione, nonché i valori selezionati dall'utente per l'interazione.
Campo | Tipo | Descrizione |
---|---|---|
valore | string OR object OR
bool OR number
|
Il valore dell'elemento di stile restituito dalla selezione dell'utente nel riquadro delle proprietà |
supportedActions | Array<InteractionType>
|
Le azioni supportate da questa interazione, come definito nel file |
interactionValue
L'oggetto interactionValue
fornisce valori selezionati dall'utente per il tipo
di interazione. Se la chiave data
esiste, l'oggetto InteractionData
riflette lo
stato attuale del filtro. Se la chiave data
non esiste, la visualizzazione
non è attualmente configurata come filtro.
{
type: enum(InteractionType)
data: object(interactionData) | None
}
Campo | Tipo | Descrizione |
---|---|---|
digita | enum(InteractionType)
|
Il valore InteractionType selezionato dall'utente |
dati | object(InteractionData)
|
I dati associati allo stato attuale del filtro. Questa chiave non esiste se il filtro è attualmente cancellato. |
tema
{
fillColor: {
color: string,
opacity: number
},
fontColor: {
color: string,
opacity: number
},
accentFillColor: {
color: string,
opacity: number
},
accentFontColor: {
color: string,
opacity: number
},
fontFamily: string,
accentFontFamily: string,
increaseColor: {
color: string,
opacity: number
},
decreaseColor: {
color: string,
opacity: number
},
gridColor: {
color: string,
opacity: number
},
seriesColor: [
{
color: string,
opacity: number
}
]
}
L'oggetto themeStyle
passa le informazioni relative al tema del report alla visualizzazione.
Campo | Tipo | Descrizione |
---|---|---|
fillColor | object
|
Un oggetto con il formato {color:
string, opacity: number} |
fontColor | object
|
Un oggetto con il formato {color:
string, opacity: number} |
accentFillColor | object
|
Un oggetto con il formato {color:
string, opacity: number} |
accentFontColor | object
|
Un oggetto con il formato {color:
string, opacity: number} |
fontFamily | string |
Una stringa che descrive la famiglia di caratteri. |
accentFontFamily | string
|
Una stringa che descrive la famiglia di caratteri accentati |
increaseColor | object
|
Un oggetto con il formato {color:
string, opacity: number} |
decreaseColor | object
|
Un oggetto con il formato {color:
string, opacity: number} |
gridColor | object
|
Un oggetto con il formato {color:
string, opacity: number} |
seriesColor | Array<object>
|
Un array di oggetti nel
formato{color: string, opacity:
number} |
tablesById
{
"DEFAULT": object(tableObject),
"COMPARISON": object(tableObject) | undefined
}
tableObject
fornisce informazioni su intestazioni e dati per ogni riga. Il valore "DEFAULT"
restituirà sempre i dati, mentre il valore "COMPARISON" verrà completato solo se l'utente
configura i dati con righe di confronto.
Il formato di tableObject è l'unica differenza tra dscc.tableFormat
e dscc.objectFormat
.
Campo | Tipo | Descrizione |
---|---|---|
"DEFAULT" | object(tableObject) OR
Array<objectRow>
|
tableObject associato ai dati che un utente aggiunge a una visualizzazione |
"CONFRONTO" | object(tableObject) OR
Array<objectRow>
|
tableObject associato ai dati di confronto delle date, se applicabile |
dateRangesById
{
"DEFAULT": object(dateRange),
"COMPARISON": object(dateRange)
}
L'oggetto dateRangesById
fornisce informazioni sugli intervalli di date predefiniti e di confronto. Se non sono presenti intervalli di date, l'oggetto sarà vuoto. DEFAULT
e COMPARISON
verranno compilati solo se i rispettivi intervalli di date sono stati configurati dall'utente. I dati negli intervalli di date sono correlati ai dati predefiniti e di confronto come definiti in tablesById.
Campo | Tipo | Descrizione |
---|---|---|
"DEFAULT" | object(dateRange)
|
L'elemento dateRange associato all'intervallo di date predefinito, se applicabile. |
"CONFRONTO" | object(dateRange)
|
L'elemento dateRange associato a un intervallo di date di confronto, se applicabile. |
dateRange
{
start: string,
end: string
}
L'oggetto dateRange
fornisce informazioni sulle date di inizio e fine di un intervallo di date predefinito o di confronto.
Campo | Tipo | Descrizione |
---|---|---|
avvio | string |
Data di inizio dell'intervallo di date nel formato AAAAMMGG. |
termina | string |
Data di fine dell'intervallo di date nel formato AAAAMMGG. |
Riferimento tableFormat
tableObject
{
headers: array(object),
rows: array(array)
}
Campo | Tipo | Descrizione |
---|---|---|
headers | Array
|
Un array di oggetti fields. Questi oggetti campo hanno inoltre una proprietà configId che corrisponde agli ID della configurazione. |
righe | Array<Array> |
Un array di matrici: ogni array è una riga di dati |
Dati di esempio relativi a tableFormat
Questo è l'esempio data
restituito utilizzando dscc.subscribeToData()
con l'opzione dscc.tableFormat
.
{
"tables": {
"DEFAULT": {
"headers": [{
"id": "qt_ky8sltutsb",
"name": "dimension",
"type": "TEXT",
"concept": "DIMENSION",
"configId": "configId1"
}, {
"id": "qt_b5bvmtutsb",
"name": "second dim",
"type": "TEXT",
"concept": "DIMENSION"
"configId": "configId1"
}, {
"id": "qt_m9dtntutsb",
"name": "metric",
"type": "NUMBER",
"concept": "METRIC",
"configId": "configId2"
}],
"rows": [
["Week 4", "lm", 55]
]
},
"COMPARISON": {
"headers": [{
"id": "qt_ky8sltutsb",
"name": "dimension",
"type": "TEXT",
"concept": "DIMENSION",
"configId": "configId1"
}, {
"id": "qt_b5bvmtutsb",
"name": "second dim",
"type": "TEXT",
"concept": "DIMENSION"
"configId": "configId1"
}, {
"id": "qt_m9dtntutsb",
"name": "metric",
"type": "NUMBER",
"concept": "METRIC",
"configId": "configId2"
}],
"rows": [
["Week 5", "no", 123]
]
}
},
"fields": {
"configId1": [
{
"id": "qt_ky8sltutsb",
"name": "week",
"type": "TEXT",
"concept": "DIMENSION"
},
{
"id": "qt_b5bvmtutsb",
"name": "textId",
"type": "TEXT",
"concept": "DIMENSION"
}
],
"configId2": [
{
"id": "qt_m9dtntutsb",
"name": "orders",
"type": "NUMBER",
"concept": "METRIC"
}
]
},
"style": {
"nodeColor": {
"value": {
"color": "#000000"
}
}
},
"theme": {},
"dateRanges": {
"DEFAULT": {
"start": "20210501",
"end": "20210531"
},
"COMPARISON": {
"start": "20200501",
"end": "20200531"
}
},
"interactions": {
"onClick": {
"value": {
"type": "FILTER",
"data": {
"concepts": [
"qt_h6oibrb6wb",
"qt_i6oibrb6wb"
],
"values": [
[
"Afternoon",
"Sunday"
],
[
"Afternoon",
"Thursday"
],
[
"Morning",
"Tuesday"
]
]
}
},
"supportedActions": [
"FILTER"
]
}
}
}
Riferimento objectFormat
objectRow
{
configId1: array(string | bool | number),
configId2: array(string | bool | number)
}
Campo | Tipo | Descrizione |
---|---|---|
configId | array | array di valori associati a un determinato ID configurazione |
Dati objectFormat di esempio
Questo è l'esempio data
restituito utilizzando dscc.subscribeToData()
con l'opzione dscc.objectFormat
.
{
"tables": {
"COMPARISON": [
{
"configId1": ["Week 5", "cd"],
"configId2": [123]
}
],
"DEFAULT": [
{
"configId1": ["Week 1", "ab"],
"configId2": [24]
}
]
},
"fields": {
"configId1": [
{
"id": "qt_h6oibrb6wb",
"name": "time of day",
"type": "TEXT",
"concept": "DIMENSION"
},
{
"id": "qt_i6oibrb6wb",
"name": "day",
"type": "TEXT",
"concept": "DIMENSION"
}
],
"configId2": [
{
"id": "qt_m9dtntutsb",
"name": "metric",
"type": "NUMBER",
"concept": "METRIC"
}
]
},
"style": {
"nodeColor": {
"value": {
"color": "#000000"
}
}
},
"theme": {},
"dateRanges": {
"DEFAULT": {
"start": "20210501",
"end": "20210531"
},
"COMPARISON": {
"start": "20200501",
"end": "20200531"
}
},
"interactions": {
"onClick": {
"value": {
"type": "FILTER",
"data": {
"concepts": [
"qt_h6oibrb6wb",
"qt_i6oibrb6wb"
],
"values": [
[
"Afternoon",
"Sunday"
],
[
"Afternoon",
"Thursday"
],
[
"Morning",
"Tuesday"
]
]
}
},
"supportedActions": [
"FILTER"
]
}
}
}