Puoi utilizzare la visualizzazione della community come filtro grafico, filtrando il report in base alle interazioni con la visualizzazione della community.
Come funzionano i filtri dei grafici delle visualizzazioni della community
Per utilizzare la visualizzazione della community come filtro del grafico, devi:
- Configurare la proprietà
config.interactions
- Scrivi il codice che chiama
dscc.sendInteraction()
con le informazioni del filtro.
Definizione delle interazioni
Se la visualizzazione supporta le interazioni, queste devono essere definite nella configurazione. Se definita, viene visualizzata una casella di controllo nel riquadro delle proprietà.
Esempio di config.interactions
:
{
"data": ...,
"style": ...,
"interactions": [
{
"id": "interactionsConfigId",
"supportedActions": ["FILTER"]
}
]
}
Scrittura del codice per un filtro
Utilizza dscc.sendInteraction()
per associare l'interazione utente a un'azione di filtro.
Esempio:
const handleInteraction = () => {
// this is the interactionId defined in the config
const interactionId = "interactionConfigId";
// the ID of the field you want to filter on
const dimensionId = "qt_ky8sltutsb";
// the value of the field you want to filter on
const value = "USA";
// the interaction type - only FILTER is supported right now
const FILTER = dscc.InteractionType.FILTER;
let interactionData = {
concepts: [dimensionId],
values: [[value]]
};
// send Looker Studio an instruction to filter other charts in the dashboard
dscc.sendInteraction(interactionId, FILTER, interactionData);
};
Looker Studio ignorerà i messaggi inviati da dscc.sendInteraction
se l'editor di report non ha attivato le interazioni "filtro" per la visualizzazione.
Monitoraggio dello stato dei filtri
L'oggetto data
che Looker Studio invia alla tua visualizzazione fornisce informazioni
sulle interazioni.
Esempio di data.interactions
:
"onClick": {
"value": {
"type": "FILTER",
"data": {
"concepts": [
"qt_h6oibrb6wb",
"qt_i6oibrb6wb"
],
"values": [
[
"Afternoon",
"Sunday"
],
[
"Afternoon",
"Thursday"
],
[
"Morning",
"Tuesday"
]
]
}
},
"supportedActions": [
"FILTER"
]
}
Se value.data
non è definito, la visualizzazione sta filtrando altri componenti della dashboard.
Esempio:
const barHighlighting = (interactionsById) => {
// the interactionId defined in the config
const interactionId = "interactionConfigId";
const interactionField = interactionsById[interactionId];
// if filter is selected
const filterSelected = interactionField.type === "FILTER";
// if the viz is currently acting as a filter
const filterHasData = "data" in interactionField;
if (filterSelected && filterHasData){
// call the highlightBar function on the selected data
highlightBar(interactionField.data);
} else {
// clear highlighting if no data selected
clearHighlight()
}
}
Creazione di interactionData
in corso...
L'oggetto interactionData
definisce il modo in cui Looker Studio filtrerà la dashboard.
Filtro a dimensione singola
Questo grafico a barre mostra il numero di libri per lingua (una dimensione e una metrica). Supponiamo che un utente abbia selezionato la barra corrispondente ai libri in spagnolo e che la selezione filtri il resto della dashboard. Il tuo
interactionData
avrebbe il seguente aspetto:
var interactionData = {
"concepts": ["languageDimensionId"],
"values": [["Spanish"]]
}
Filtro di più dimensioni
Questa mappa termica mostra la temperatura per giorno della settimana e ora del giorno (due dimensioni e una metrica). Supponiamo che un utente abbia selezionato le celle corrispondenti a "Lunedì sera" e "Venerdì pomeriggio" e tu voglia filtrare il resto della dashboard in modo da mostrare solo i dati di "Lunedì sera" o "Venerdì pomeriggio".Il tuo interactionData
avrebbe il seguente aspetto:
var interactionData = {
"concepts": ["dayOfWeekDimensionId", "timeOfDayDimensionId"],
"values": [
["Monday", "evening"],
["Friday", "afternoon"]
]
}