Übersicht über die API
dscc (Looker Studio Community Component) ist eine Bibliothek, die beim Erstellen von Community-Komponenten für Looker Studio hilft. Der Quellcode ist auf GitHub verfügbar.
dscc stellt drei Funktionen bereit: getWidth(), getHeight() und subscribeToData().
getWidth()
| Name | Parameter | Rückgabetyp | Beschreibung |
|---|---|---|---|
| getWidth() | Keine | number
|
Gibt die Breite des iFrames in Pixeln zurück. |
getWidth() verwenden
// to get the width of the iframe
var width = dscc.getWidth();
getHeight()
| Name | Parameter | Rückgabetyp | Beschreibung |
|---|---|---|---|
| getHeight() | Keine | int
|
Gibt die Höhe des iFrames in Pixeln zurück. |
getHeight() verwenden
// to get the height of the iframe
var height = dscc.getHeight();
sendInteraction()
Die Funktion sendInteraction() sendet eine Nachricht mit den Daten für einen Filter an Looker Studio.
Parameter:
| Name | Typ | Beschreibung |
|---|---|---|
| actionID | string
|
Der String, der der actionId in der Konfiguration entspricht |
| Interaktion | enum(InteractionType)
|
Informiert Looker Studio über die Interaktion |
| Daten | object(InteractionData)
|
Liefert die erforderlichen Daten für eine Interaktion |
InteractionType
Derzeit ist der einzige gültige InteractionType-Wert FILTER.
| Name | Typ | Beschreibung |
|---|---|---|
| dscc.InteractionType.FILTER | Enum | Beschreibt die Interaktion FILTER |
sendInteraction verwenden
// 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))
}
| Feld | Typ | Beschreibung |
|---|---|---|
| erstellen | Array |
Array von fieldIds |
| Werte | Array<Array>
|
Verschachteltes Array von Datenwerten. Jedes Unterarray sollte die Länge des concepts-Arrays haben.
Jeder Wert im Unterarray entspricht einem Dimensionswert. |
Beispiel interactionData:
var interactionData = {
"concepts": ["dim1Id", "dim2Id"],
"values": [
["dim1Val1", "dim2Val1"],
["dim1Val2", "dim2Val2"]
]
}
Die Verwendung von dscc.sendInteraction mit dem oben genannten interactionData entspricht der folgenden SQL-Anweisung:
SELECT data WHERE
(dim1 == dim1Val1 AND dim2 == dim2Val1)
OR
(dim1 == dim1Val2 AND dim2 == dim2Val2);
clearInteraction()
Mit der Funktion clearInteraction() wird eine Nachricht an Looker Studio gesendet, um einen zuvor von dieser Visualisierung festgelegten Filter zu entfernen.
Parameter:
| Name | Typ | Beschreibung |
|---|---|---|
| actionID | string
|
Der String, der der actionId in der Konfiguration entspricht |
| Interaktion | enum(InteractionType)
|
Informiert Looker Studio über die Interaktion |
clearInteraction() verwenden
// 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)
Die Funktion subscribeToData() abonniert Nachrichten von Looker Studio.
Parameter:
| Name | Typ | Beschreibung |
|---|---|---|
| callback(data) | function
|
Eine Funktion, die die von subscribeToData zurückgegebenen Daten verwendet. |
| Optionen | object |
Definiert das gewünschte Format für die zurückgegebenen Daten. |
Das Optionenobjekt sieht so aus:
{
transform: dscc.tableTransform | dscc.objectTransform
}
Rückgabewert:
| Typ | Beschreibung |
|---|---|
function |
callback erhält keine weiteren Nachrichten von Looker Studio mehr. |
subscribeToData() verwenden
// 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
Dies ist das Objekt, das an den mit dscc.subscribeToData registrierten callback übergeben wird. Die folgenden Felder werden zwischen dscc.objectFormat und dscc.tableFormat gemeinsam genutzt.
{
fields: object(fieldsByConfigId),
style: object(styleById),
interactions: object(interactionsById),
theme: object(themeStyle),
tables: object(tablesById),
dateRanges: object(dateRangesById)
}
| Feld | Typ | Beschreibung |
|---|---|---|
| Felder | object(fieldsByConfigId)
|
Ein Objekt, das Felder enthält, die nach ihrer „configId“ indexiert sind. |
| Stil | object(styleById)
|
Ein Objekt, das Stilobjekte enthält, die nach ihrer configId indexiert sind. |
| Interaktionen | object(interactionsById)
|
Ein Objekt, das Interaktionsobjekte enthält. |
| Design | themeStyle
|
Ein themeStyle-Objekt, das Informationen zum Design des Berichts enthält |
| Tabellen | object(tablesById)
|
Ein Objekt, das tableObjects enthält. |
| dateRanges | object(dateRangesById)
|
Ein Objekt, das dateRanges enthält. |
fieldsByConfigId
{
configId: array(field)
}
Das fieldsByConfigId-Objekt enthält Arrays von field-Objekten, die nach der in der Visualisierungskonfiguration definierten „id“ indexiert werden. Für jede in der Konfiguration definierte dataField gibt es einen Eintrag in diesem Objekt.
| Feld | Typ | Beschreibung |
|---|---|---|
| configId | Array<field> |
Ein Array von Feldern, die mit dem dataField verknüpft sind. |
Feld
{
id: fieldId,
name: string,
description: string,
type: fieldType,
concept: enum(conceptType)
}
Das field-Objekt enthält Informationen zum Feld, das der Nutzer im Eigenschaftenbereich auswählt.
| Feld | Typ | Beschreibung |
|---|---|---|
| id | string |
Die von Looker Studio generierte ID für das Feld |
| name | string |
Der für Menschen lesbare Feldname |
| Beschreibung | string |
Die Beschreibung des Felds |
| Typ | enum(fieldType) |
Der semanticType des Felds |
| Konzept | enum(conceptType) |
Der conceptType des Felds |
styleById
{
configId: styleValue
}
Das styleById-Objekt enthält Stilinformationen, die nach der in der Visualisierungskonfiguration definierten ID indexiert werden.
| Feld | Typ | Beschreibung |
|---|---|---|
| configId | styleValue
|
Ein Objekt, das den Stilwert und den in der Konfiguration definierten Standardstilwert enthält. |
styleValue
{
value: string | object | bool | number,
defaultValue: string | object | bool | number
}
Das styleValue-Objekt enthält sowohl den vom Nutzer ausgewählten Stilwert als auch den in der Konfiguration definierten Standardwert. Der Typ von value und defaultValue hängt vom Stilelement ab.
| Feld | Typ | Beschreibung |
|---|---|---|
| Wert | string OR object OR bool OR
number
|
Der Wert des Stilelements, das durch die Auswahl des Nutzers im Eigenschaftenbereich zurückgegeben wird. |
| defaultValue | string OR object OR bool OR
number
|
Der Standardwert des Style-Elements, das in der Visualisierungskonfiguration definiert ist |
interactionsById
{
}
Das interactionsById-Objekt enthält Interaktionsdaten, die nach der interactionId-Visualisierungskonfiguration indexiert sind.
| Index | Typ | Beschreibung |
|---|---|---|
| configId | interaction
|
Ein Objekt, das Daten zu einer Interaktion enthält |
interactionField
{
value: object(interactionValue),
supportedActions: array(InteractionType)
}
Das interactionField-Objekt enthält das Array von „supportedActions“, das in der Konfiguration definiert ist, sowie die vom Nutzer ausgewählten Werte für die Interaktion.
| Feld | Typ | Beschreibung |
|---|---|---|
| Wert | string OR object OR
bool OR number
|
Der Wert des Stilelements, das durch die Auswahl des Nutzers im Eigenschaftenbereich zurückgegeben wird. |
| supportedActions | Array<InteractionType>
|
Die von dieser Interaktion unterstützten Aktionen, wie in der Konfiguration definiert |
interactionValue
Das Objekt interactionValue enthält vom Nutzer ausgewählte Werte für den Interaktionstyp. Wenn der Schlüssel data vorhanden ist, spiegelt das Objekt InteractionData den aktuellen Status des Filters wider. Wenn die data-Taste nicht vorhanden ist, ist die Visualisierung derzeit nicht als Filter konfiguriert.
{
type: enum(InteractionType)
data: object(interactionData) | None
}
| Feld | Typ | Beschreibung |
|---|---|---|
| Typ | enum(InteractionType)
|
Der vom Nutzer ausgewählte InteractionType |
| Daten | object(InteractionData)
|
Die Daten, die dem aktuellen Status des Filters zugeordnet sind. Dieser Schlüssel ist nicht vorhanden, wenn der Filter derzeit deaktiviert ist. |
Design
{
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
}
]
}
Das Objekt themeStyle übergibt Informationen zum Berichtsthema an die Visualisierung.
| Feld | Typ | Beschreibung |
|---|---|---|
| fillColor | object
|
Ein Objekt im Format {color:
string, opacity: number} |
| fontColor | object
|
Ein Objekt im Format {color:
string, opacity: number} |
| accentFillColor | object
|
Ein Objekt im Format {color:
string, opacity: number} |
| accentFontColor | object
|
Ein Objekt im Format {color:
string, opacity: number} |
| fontFamily | string |
Ein String, der die Schriftfamilie beschreibt |
| accentFontFamily | string
|
Ein String, der die Schriftfamilie für Akzente beschreibt |
| increaseColor | object
|
Ein Objekt im Format {color:
string, opacity: number} |
| decreaseColor | object
|
Ein Objekt im Format {color:
string, opacity: number} |
| gridColor | object
|
Ein Objekt im Format {color:
string, opacity: number} |
| seriesColor | Array<object>
|
Ein Array von Objekten im Format{color: string, opacity:
number} |
tablesById
{
"DEFAULT": object(tableObject),
"COMPARISON": object(tableObject) | undefined
}
Die tableObject enthält Überschriften- und Dateninformationen für jede Zeile. „DEFAULT“ gibt immer Daten zurück und „COMPARISON“ wird nur ausgefüllt, wenn der Nutzer die Daten mit Vergleichszeilen konfiguriert.
Der einzige Unterschied zwischen dscc.tableFormat und dscc.objectFormat ist das Format von „tableObject“.
| Feld | Typ | Beschreibung |
|---|---|---|
| „DEFAULT“ | object(tableObject) OR
Array<objectRow>
|
Die tableObject, die mit den Daten verknüpft ist, die ein Nutzer einer Visualisierung hinzufügt |
| „COMPARISON“ | object(tableObject) OR
Array<objectRow>
|
Die tableObject, die den Daten für den Zeitraumvergleich zugeordnet ist, sofern zutreffend |
dateRangesById
{
"DEFAULT": object(dateRange),
"COMPARISON": object(dateRange)
}
Das dateRangesById-Objekt enthält Informationen zu den Standard- und Vergleichszeiträumen. Wenn keine Zeiträume vorhanden sind, ist das Objekt leer. DEFAULT und COMPARISON werden nur ausgefüllt, wenn die entsprechenden Zeiträume vom Nutzer konfiguriert werden. Die Daten in den Zeiträumen beziehen sich auf die Standard- und Vergleichsdaten, wie in tablesById definiert.
| Feld | Typ | Beschreibung |
|---|---|---|
| „DEFAULT“ | object(dateRange)
|
Die dateRange, die dem Standard-Zeitraum zugeordnet ist, falls zutreffend. |
| „COMPARISON“ | object(dateRange)
|
Die dateRange, die einem Vergleichszeitraum zugeordnet ist, sofern zutreffend. |
dateRange
{
start: string,
end: string
}
Das dateRange-Objekt enthält Informationen zum Start- und Enddatum eines Standard- oder Vergleichszeitraums (date range).
| Feld | Typ | Beschreibung |
|---|---|---|
| start | string |
Das Startdatum des Zeitraums im Format JJJJMMTT. |
| Ende | string |
Das Enddatum des Zeitraums im Format JJJJMMTT. |
tableFormat-Referenz
tableObject
{
headers: array(object),
rows: array(array)
}
| Feld | Typ | Beschreibung |
|---|---|---|
| headers | Array
|
Ein Array von fields-Objekten. Diese Feldobjekte haben zusätzlich eine configId-Eigenschaft, die den IDs aus der Konfiguration entspricht. |
| Zeilen | Array<Array> |
Ein Array von Arrays: Jedes Array ist eine Datenzeile. |
Beispieldaten für tableFormat
Dies ist das Beispiel data, das zurückgegeben wird, wenn dscc.subscribeToData() mit der Option dscc.tableFormat verwendet wird.
{
"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"
]
}
}
}
Referenz zu „objectFormat“
objectRow
{
configId1: array(string | bool | number),
configId2: array(string | bool | number)
}
| Feld | Typ | Beschreibung |
|---|---|---|
| configId | Array | Array mit Werten, die einer bestimmten Konfigurations-ID zugeordnet sind |
Beispieldaten für „objectFormat“
Dies ist das Beispiel data, das zurückgegeben wird, wenn dscc.subscribeToData() mit der Option dscc.objectFormat verwendet wird.
{
"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"
]
}
}
}