Présentation de l'API
dscc
(le composant de communauté Looker Studio) est une bibliothèque qui vous aide à créer
de la communauté pour Looker Studio. Le code source se trouve sur
GitHub
dscc
expose trois fonctions: getWidth()
, getHeight()
et
subscribeToData()
getWidth()
Nom | Paramètres | Type renvoyé | Description |
---|---|---|---|
getWidth() | Aucun | number
|
Renvoie la largeur de l'iFrame, dans pixels |
getWidth()
utilisé(s)
// to get the width of the iframe
var width = dscc.getWidth();
getHeight()
Nom | Paramètres | Type renvoyé | Description |
---|---|---|---|
getHeight() | Aucun | int
|
Renvoie la hauteur de l'iFrame, en pixels |
getHeight()
utilisé(s)
// to get the height of the iframe
var height = dscc.getHeight();
sendInteraction()
La fonction sendInteraction()
envoie un message contenant les données à Looker Studio.
pour un filtre.
Paramètres :
Nom | Type | Description |
---|---|---|
actionID | string
|
La chaîne que correspond à actionId dans la configuration |
interaction | enum(InteractionType)
|
Indique à Looker Studio sur l'interaction |
données | object(InteractionData)
|
Fournit le paramètre données requises pour une interaction |
InteractionType
Actuellement, le seul InteractionType
valide est FILTER
.
Nom | Type | Description |
---|---|---|
dscc.InteractionType.FILTER | Énumération | Décrit l'interaction FILTER |
sendInteraction
utilisé(s)
// 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))
}
Champ | Type | Description |
---|---|---|
concepts | Array |
Tableau de fieldIds |
valeurs | Array<Array>
|
Tableau imbriqué de valeurs de données. Chaque sous-tableau
doit correspondre à la longueur du tableau concepts .
Chaque valeur du sous-tableau correspond à un
la valeur de la dimension. |
Échantillon interactionData
:
var interactionData = {
"concepts": ["dim1Id", "dim2Id"],
"values": [
["dim1Val1", "dim2Val1"],
["dim1Val2", "dim2Val2"]
]
}
Utiliser dscc.sendInteraction
avec l'interactionData
ci-dessus équivaut à
l'instruction SQL suivante:
SELECT data WHERE
(dim1 == dim1Val1 AND dim2 == dim2Val1)
OR
(dim1 == dim1Val2 AND dim2 == dim2Val2);
clearInteraction()
La fonction clearInteraction()
envoie un message à Looker Studio pour effacer un
filtre précédemment défini par cette visualisation.
Paramètres :
Nom | Type | Description |
---|---|---|
actionID | string
|
La chaîne correspondant au paramètre actionId dans la configuration |
interaction | enum(InteractionType)
|
Indique à Looker Studio les interaction |
clearInteraction()
utilisé(s)
// 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 fonction subscribeToData()
s'abonne aux messages de Looker Studio.
Paramètres :
Nom | Type | Description |
---|---|---|
rappel(données) | function
|
Une fonction qui prend les données renvoyées par
subscribeToData |
options | object |
Définit le format de retour de données souhaité |
L'objet "options" se présente comme suit:
{
transform: dscc.tableTransform | dscc.objectTransform
}
Renvoie :
Type | Description |
---|---|
function |
Désabonne callback des messages ultérieurs de Looker Studio |
subscribeToData()
utilisé(s)
// 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
Il s'agit de l'objet transmis au callback
enregistré avec
dscc.subscribeToData
Voici les champs partagés entre
dscc.objectFormat
et dscc.tableFormat
.
{
fields: object(fieldsByConfigId),
style: object(styleById),
interactions: object(interactionsById),
theme: object(themeStyle),
tables: object(tablesById),
dateRanges: object(dateRangesById)
}
Champ | Type | Description |
---|---|---|
champs | object(fieldsByConfigId)
|
Un objet contenant champs indexés par son configId ; |
style | object(styleById)
|
Un objet contenant objets de style indexé selon son ID de configuration (configId) |
interactions | object(interactionsById)
|
Un objet contenant interaction des objets |
thème | themeStyle
|
Un objet "themeStyle" contenant un style de thème des informations pour le rapport |
tables | object(tablesById)
|
Un objet contenant tableObjects |
dateRanges | object(dateRangesById)
|
Un objet contenant dateRanges |
fieldsByConfigId
{
configId: array(field)
}
L'objet fieldsByConfigId
contient des tableaux d'objets field indexés
par "id" définis dans le
configuration de la visualisation. Il y a
une entrée dans cet objet pour chaque dataField
défini dans la configuration.
Champ | Type | Description |
---|---|---|
configId | Array<field> |
Tableau de champs associés au champ dataField |
champ
{
id: fieldId,
name: string,
description: string,
type: fieldType,
concept: enum(conceptType)
}
L'objet field
fournit des informations sur le champ sélectionné par l'utilisateur.
panneau des propriétés.
Champ | Type | Description |
---|---|---|
id | string |
ID généré par Looker Studio pour le champ |
nom | string |
Nom du champ dans un format lisible |
description | string |
Description du champ |
type | enum(fieldType) |
La valeur semanticType du champ |
concept | enum(conceptType) |
Le conceptType du champ |
styleById
{
configId: styleValue
}
L'objet styleById
fournit des informations de style indexées par "id" défini dans
la configuration de la visualisation.
Champ | Type | Description |
---|---|---|
configId | styleValue
|
Un objet contenant la valeur de style et la valeur du style par défaut définie par la configuration |
styleValue
{
value: string | object | bool | number,
defaultValue: string | object | bool | number
}
L'objet styleValue
fournit à la fois la valeur de style sélectionnée par l'utilisateur et la
la valeur par défaut définie dans la configuration. Type de value
et defaultValue
dépendent de l'élément de style.
Champ | Type | Description |
---|---|---|
valeur | string OR object OR bool OR
number
|
La valeur de l'élément de style renvoyé par la sélection de l'utilisateur dans le panneau des propriétés |
defaultValue | string OR object OR bool OR
number
|
La valeur par défaut du style défini dans la section configuration de visualisation |
interactionsById
{
}
L'objet interactionsById
fournit des données d'interaction indexées par l'objet
interactionId
configuration de la visualisation.
Index | Type | Description |
---|---|---|
configId | interaction
|
Un objet qui contient des données associées à interaction |
interactionField
{
value: object(interactionValue),
supportedActions: array(InteractionType)
}
L'objet interactionField
contient le tableau des éléments pris en charge définis dans
la configuration, ainsi que les valeurs
sélectionnées par l'utilisateur pour l'interaction.
Champ | Type | Description |
---|---|---|
valeur | string OR object OR
bool OR number
|
La valeur de l'élément de style renvoyé par la sélection de l'utilisateur dans le panneau des propriétés |
supportedActions | Array<InteractionType>
|
Les actions possibles d'interaction, comme défini dans configuration |
interactionValue
L'objet interactionValue
fournit les valeurs sélectionnées par l'utilisateur pour l'interaction.
de mots clés. Si la clé data
existe, l'objet InteractionData
reflète le
l'état actuel du filtre. Si la clé data
n'existe pas, la visualisation
n'est actuellement pas configuré en tant que filtre.
{
type: enum(InteractionType)
data: object(interactionData) | None
}
Champ | Type | Description |
---|---|---|
type | enum(InteractionType)
|
L'utilisateur sélectionné InteractionType |
données | object(InteractionData)
|
L'attribut data associé à l'état actuel le filtre. Cette clé n'existe pas si le filtre est actuellement effacé. |
thème
{
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'objet themeStyle
transmet les informations sur le thème du rapport à la visualisation.
Champ | Type | Description |
---|---|---|
fillColor | object
|
Un objet au format {color:
string, opacity: number} |
fontColor | object
|
Un objet au format {color:
string, opacity: number} |
accentFillColor | object
|
Un objet au format {color:
string, opacity: number} |
accentFontColor | object
|
Un objet au format {color:
string, opacity: number} |
fontFamily | string |
Chaîne décrivant la famille de polices |
accentFontFamily | string
|
Chaîne décrivant la police d'accentuation famille |
increaseColor | object
|
Un objet au format {color:
string, opacity: number} |
decreaseColor | object
|
Un objet au format {color:
string, opacity: number} |
gridColor | object
|
Un objet au format {color:
string, opacity: number} |
seriesColor | Array<object>
|
Tableau d'objets de la
format{color: string, opacity:
number} |
tablesById
{
"DEFAULT": object(tableObject),
"COMPARISON": object(tableObject) | undefined
}
tableObject
fournit des informations sur les en-têtes et les données pour chaque ligne. "PAR DÉFAUT"
renverra toujours des données et « COMPARAISON » ne sont renseignées que si l'utilisateur
configure les données avec des lignes de comparaison.
Le format de tableObject est la seule différence entre dscc.tableFormat
.
et dscc.objectFormat
.
Champ | Type | Description |
---|---|---|
"PAR DÉFAUT" | object(tableObject) OR
Array<objectRow>
|
Le tableObject associé à
les données qu'un utilisateur ajoute
visualisation |
"COMPARAISON" | object(tableObject) OR
Array<objectRow>
|
Le tableObject associé à
les données de comparaison de dates, si
applicables |
dateRangesById
{
"DEFAULT": object(dateRange),
"COMPARISON": object(dateRange)
}
L'objet dateRangesById
fournit des informations sur la valeur par défaut et la comparaison
plages de dates. Si aucune plage de dates n'est définie, l'objet
vide. DEFAULT
et COMPARISON
ne seront renseignés que si les dates respectives
sont configurées par l'utilisateur. Les données des plages de dates sont liées aux
les données par défaut et les données de comparaison, telles que définies dans tablesById.
Champ | Type | Description |
---|---|---|
"PAR DÉFAUT" | object(dateRange)
|
Le dateRange associé au
plage de dates par défaut, le cas échéant. |
"COMPARAISON" | object(dateRange)
|
Le dateRange associé à un
plage de dates de comparaison, le cas échéant. |
dateRange
{
start: string,
end: string
}
L'objet dateRange
fournit des informations sur les dates de début et de fin d'une
plage de dates par défaut ou de comparaison.
Champ | Type | Description |
---|---|---|
start | string |
Date de début de la période au format AAAAMMJJ. |
end | string |
Date de fin de la période au format AAAAMMJJ. |
Référence tableFormat
tableObject
{
headers: array(object),
rows: array(array)
}
Champ | Type | Description |
---|---|---|
headers | Array
|
Tableau d'objets fields Ces champs
Les objets ont également une propriété configId .
qui correspond aux ID de la configuration. |
lignes | Array<Array> |
Tableau de tableaux: chaque tableau est une ligne de données |
Exemple de données tableFormat
Il s'agit d'un exemple de data
renvoyé en utilisant dscc.subscribeToData()
avec l'option
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"
]
}
}
}
Documentation de référence sur ObjectFormat
objectRow
{
configId1: array(string | bool | number),
configId2: array(string | bool | number)
}
Champ | Type | Description |
---|---|---|
configId | tableau | tableau de valeurs associées à un ID de configuration particulier |
Exemple de données ObjectFormat
Il s'agit d'un exemple de data
renvoyé en utilisant dscc.subscribeToData()
avec l'option
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"
]
}
}
}