Wizualizacja utworzona przez społeczność może służyć jako filtr wykresu, filtrując do raportowania interakcji z wizualizacją utworzoną przez społeczność.
Jak działają filtry wizualizacji utworzonej przez społeczność
Aby użyć wizualizacji utworzonej przez społeczność jako filtra wykresu, musisz:
- Konfigurowanie właściwości config.interactions
- Wpisz kod, który wywołuje funkcję dscc.sendInteraction()i zawiera informacje o filtrze.
Definiowanie interakcji
Jeśli wizualizacja obsługuje interakcje, powinny one być zdefiniowane w konfiguracji. Po zdefiniowaniu pola wyboru pojawi się panelu właściwości.

Przykładowy element config.interactions:
{
  "data": ...,
  "style": ...,
  "interactions": [
    {
      "id": "interactionsConfigId",
      "supportedActions": ["FILTER"]
    }
  ]
}
Piszę kod filtra
Użyj pola dscc.sendInteraction(), aby powiązać interakcję użytkownika z działaniem filtra.
Przykład:
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 zignoruje wiadomości wysłane przez usługę dscc.sendInteraction, jeśli raport
edytor nie włączył „filtra” interakcje na potrzeby wizualizacji.
Śledzenie stanu filtra
Obiekt data wysyłany przez Looker Studio do wizualizacji dostarcza informacji
o interakcjach.
Przykładowy element data.interactions:
"onClick": {
  "value": {
    "type": "FILTER",
      "data": {
      "concepts": [
        "qt_h6oibrb6wb",
        "qt_i6oibrb6wb"
      ],
        "values": [
          [
            "Afternoon",
            "Sunday"
          ],
          [
            "Afternoon",
            "Thursday"
          ],
          [
            "Morning",
            "Tuesday"
          ]
        ]
    }
  },
  "supportedActions": [
    "FILTER"
  ]
}
Jeśli wartość value.data nie jest zdefiniowana, wizualizacja filtruje obecnie inne
dostępnych w panelu.
Przykład:
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()
  }
}
Tworzę interactionData
Obiekt interactionData określa, jak Looker Studio będzie filtrować
panelu.
Jeden filtr wymiaru

Ten wykres słupkowy przedstawia liczbę książek według języka (1 wymiar i 1 wymiar
dane). Załóżmy, że użytkownik wybrał pasek reprezentujący książki w języku hiszpańskim, a
chcesz odfiltrować pozostałą część panelu. Twoje
interactionData będzie wyglądać tak:
var interactionData = {
  "concepts": ["languageDimensionId"],
  "values": [["Spanish"]]
}
Filtr wielu wymiarów

Ta mapa termiczna przedstawia temperaturę według dnia tygodnia i pory dnia (dwa wymiary
i jeden wskaźnik). Załóżmy, że użytkownik zaznaczył komórki odpowiadające terminowi „Poniedziałek”.
Wieczór” i „Piątkowe popołudnie”, a reszta została przefiltrowana
aby wyświetlać tylko dane z okresu „Poniedziałkowy wieczór” lub „piątek
po południu”. interactionData wygląda tak:
var interactionData = {
  "concepts": ["dayOfWeekDimensionId", "timeOfDayDimensionId"],
  "values": [
    ["Monday", "evening"],
    ["Friday", "afternoon"]
  ]
}