Panoramica dell'API
dscc (componente della community di Looker Studio) è una libreria che aiuta a creare
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
per un filtro.
Parametri:
| Nome | Tipo | Descrizione |
|---|---|---|
| actionID | string
|
La stringa che corrisponde all'actionId nella configurazione |
| interazione | enum(InteractionType)
|
Comunica a Looker Studio l'interazione |
| dati | object(InteractionData)
|
Fornisce i dati richiesti per un'interazione |
InteractionType
Al momento, l'unico valore valido per InteractionType è FILTER.
| Nome | Tipo | Descrizione |
|---|---|---|
| dscc.InteractionType.FILTER | Enum | Descrive l'interazione 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 |
|---|---|---|
| concept | Array |
Array di fieldIds |
| valori | Array<Array>
|
Array nidificato di valori dei dati. Ogni sottoarray
deve avere la lunghezza dell'array concepts.
Ogni valore nel sottoarray corrisponde a un
valore della dimensione. |
Esempio interactionData:
var interactionData = {
"concepts": ["dim1Id", "dim2Id"],
"values": [
["dim1Val1", "dim2Val1"],
["dim1Val2", "dim2Val2"]
]
}
L'utilizzo di dscc.sendInteraction con il precedente interactionData 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 nella configurazione |
| interazione | enum(InteractionType)
|
Comunica 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 la sottoscrizione ai messaggi di Looker Studio.
Parametri:
| Nome | Tipo | Descrizione |
|---|---|---|
| callback(data) | function
|
Una funzione che accetta i dati restituiti da
subscribeToData. |
| opzioni | object |
Definisce il formato di restituzione dei dati desiderato |
L'oggetto delle opzioni ha il seguente aspetto:
{
transform: dscc.tableTransform | dscc.objectTransform
}
Valore restituito:
| Tipo | Descrizione |
|---|---|
function |
Annulla l'iscrizione di callback a ulteriori messaggi da 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 a callback registrato con
dscc.subscribeToData. Di seguito sono riportati 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 |
|---|---|---|
| i campi | object(fieldsByConfigId)
|
Un oggetto che contiene fields indicizzati in base al loro configId |
| stile | object(styleById)
|
Un oggetto che contiene oggetti di stile indicizzati in base al relativo configId |
| interazioni | object(interactionsById)
|
Un oggetto che contiene oggetti 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
in base all'"id" definito nella
configurazione della visualizzazione. In questo oggetto è presente
una voce per ogni dataField definito nella 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
pannello 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 |
| tipo | enum(fieldType) |
Il semanticType del campo |
| concetto | enum(conceptType) |
Il conceptType del campo |
styleById
{
configId: styleValue
}
L'oggetto styleById fornisce informazioni sullo stile indicizzate dall'attributo "id" definito nella configurazione della visualizzazione.
| Campo | Tipo | Descrizione |
|---|---|---|
| configId | styleValue
|
Un oggetto che contiene il valore dello stile e il valore dello stile predefinito definito nella configurazione |
styleValue
{
value: string | object | bool | number,
defaultValue: string | object | bool | number
}
L'oggetto styleValue fornisce sia il valore dello 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 della visualizzazione |
interactionsById
{
}
L'oggetto interactionsById fornisce dati di interazione indicizzati dalla
interactionId
configurazione della visualizzazione.
| Indice | Tipo | Descrizione |
|---|---|---|
| configId | interaction
|
Un oggetto che contiene dati associati a un'interazione |
interactionField
{
value: object(interactionValue),
supportedActions: array(InteractionType)
}
L'oggetto interactionField contiene l'array di supportedActions definito 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 nella configurazione |
interactionValue
L'oggetto interactionValue fornisce i valori selezionati dall'utente per il tipo di interazione. Se esiste la chiave data, 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 |
|---|---|---|
| tipo | enum(InteractionType)
|
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 trasmette le informazioni sul tema del report alla visualizzazione.
| Campo | Tipo | Descrizione |
|---|---|---|
| fillColor | object
|
Un oggetto nel formato {color:
string, opacity: number} |
| fontColor | object
|
Un oggetto nel formato {color:
string, opacity: number} |
| accentFillColor | object
|
Un oggetto nel formato {color:
string, opacity: number} |
| accentFontColor | object
|
Un oggetto nel 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 in risalto |
| increaseColor | object
|
Un oggetto nel formato {color:
string, opacity: number} |
| decreaseColor | object
|
Un oggetto nel formato {color:
string, opacity: number} |
| gridColor | object
|
Un oggetto nel 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. "DEFAULT"
restituirà sempre i dati, mentre "COMPARISON" verrà compilato solo se l'utente
configura i dati con le 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>
|
Il tableObject associato ai dati che un utente aggiunge a una visualizzazione |
| "COMPARISON" | object(tableObject) OR
Array<objectRow>
|
Il 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 gli intervalli di date
corrispondenti sono configurati dall'utente. I dati negli intervalli di date sono correlati
ai dati predefiniti e di confronto definiti in tablesById.
| Campo | Tipo | Descrizione |
|---|---|---|
| "DEFAULT" | object(dateRange)
|
Il dateRange associato all'intervallo di date predefinito, se applicabile. |
| "COMPARISON" | object(dateRange)
|
Il 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 di fine di un intervallo di date predefinito o di confronto.
| Campo | Tipo | Descrizione |
|---|---|---|
| start | 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 |
|---|---|---|
| intestazioni | Array
|
Un array di oggetti fields. Questi oggetti
campo hanno anche una proprietà configId
che corrisponde agli ID della configurazione. |
| righe | Array<Array> |
Un array di array: ogni array è una riga di dati |
Dati di esempio di tableFormat
Questo è un esempio di 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 | matrice | array di valori associati a un determinato ID configurazione |
Dati di esempio di objectFormat
Questo è un esempio di 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"
]
}
}
}