Riferimento libreria del componente della community di Looker Studio (dscc)

Panoramica dell'API

dscc (componente della community di Looker Studio) è una libreria che ti aiuta a creare componenti della community per Looker Studio. Il codice sorgente è disponibile nella pagina 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 a l'actionId in la configurazione
interazione enum(InteractionType) Comunica a Looker Informazioni su Studio l'interazione
dati object(InteractionData) Fornisce il parametro 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 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 dei dati. Ogni array secondario deve essere la lunghezza dell'array concepts. Ogni valore nel sottoarray corrisponde a un del valore della dimensione.

Esempio di interactionData:

var interactionData = {
  "concepts": ["dim1Id", "dim2Id"],
  "values": [
    ["dim1Val1", "dim2Val1"],
    ["dim1Val2", "dim2Val2"]
    ]
}

L'utilizzo di dscc.sendInteraction con i interactionData precedenti equivale a la 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 alla actionId nella configurazione
interazione enum(InteractionType) Indica a Looker Studio il 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 da Looker Studio.

Parametri:

Nome Tipo Descrizione
callback(dati) function Una funzione che prende i dati restituiti subscribeToData.
opzioni object Definisce il formato di restituzione 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. Di seguito sono riportati i campi condivisi 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 da il relativo configId
stile object(styleById) Un oggetto che contiene oggetti di stile indicizzato dal relativo configId
interazioni object(interactionsById) Un oggetto che contiene interazione oggetti
tema themeStyle Un oggetto themeStyle che contiene stili del tema informazioni 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" definita nel configurazione di visualizzazione. C'è una voce in questo oggetto 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 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
tipo enum(fieldType) La semanticType del campo
concetto enum(conceptType) Il conceptType del campo

styleById

{
   configId: styleValue
}

L'oggetto styleById fornisce informazioni sullo stile indicizzate dall'"id" definiti in nella configurazione di visualizzazione.

Campo Tipo Descrizione
configId styleValue Un oggetto che contiene il valore di stile e 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 predefinito definito nella configurazione. Il tipo di value e defaultValue dipendono 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 dello stile definito nel configurazione di visualizzazione

interactionsById

{

}

L'oggetto interactionsById fornisce dati sull'interazione indicizzati dall'oggetto interactionId configurazione di 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 supported Actions definito in la configurazione e 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 questo interazione, come definito nel configura

interactionValue

L'oggetto interactionValue fornisce valori selezionati dall'utente per l'interazione di testo. Se la chiave data esiste, l'oggetto InteractionData riflette la lo stato attuale del filtro. Se la chiave data non esiste, la visualizzazione non è attualmente configurato come filtro.

{
  type: enum(InteractionType)
  data: object(interactionData) | None
}
Campo Tipo Descrizione
tipo enum(InteractionType) L'utente selezionato InteractionType
dati object(InteractionData) I dati associate allo stato attuale il filtro. Questa chiave non esiste se il filtro è al momento 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 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 il carattere intenso famiglia
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 formato{color: string, opacity: number}

tablesById

{
  "DEFAULT": object(tableObject),
  "COMPARISON": object(tableObject) | undefined
}

L'tableObject fornisce informazioni su intestazioni e dati per ogni riga. "PREDEFINITO" restituisce sempre i dati e "CONFRONTO" verrà compilato 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
"PREDEFINITO" object(tableObject) OR Array<objectRow> L'elemento tableObject associato a i dati aggiunti da un utente a un visualizzazione
"CONFRONTO" object(tableObject) OR Array<objectRow> L'elemento tableObject associato a i dati di confronto tra date, se applicabile

dateRangesById

{
  "DEFAULT": object(dateRange),
  "COMPARISON": object(dateRange)
}

L'oggetto dateRangesById fornisce informazioni su valore predefinito e confronto intervalli di date. Se non sono presenti intervalli di date, l'oggetto verrà vuoto. I campi DEFAULT e COMPARISON verranno compilati solo se la rispettiva data vengono configurati dall'utente. I dati negli intervalli di date sono correlati i dati predefiniti e di confronto come definito in tablesById.

Campo Tipo Descrizione
"PREDEFINITO" object(dateRange) L'elemento dateRange associato al intervallo di date predefinito, se applicabile.
"CONFRONTO" object(dateRange) Il parametro dateRange associato a 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 campi gli oggetti hanno inoltre 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 su 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 di configurazione

Dati di esempio 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"
      ]
    }
  }
}