סקירה כללית על API
dscc (רכיב קהילתי של Data Studio) היא ספריה שעוזרת ליצור רכיבים קהילתיים ל-Data Studio. קוד המקור זמין ב-GitHub.
dscc חושף שלוש פונקציות: getWidth(), getHeight() ו-subscribeToData().
getWidth()
| שם | פרמטרים | סוג הערך המוחזר | תיאור |
|---|---|---|---|
| getWidth() | ללא | number
|
מחזירה את הרוחב של ה-iframe בפיקסלים. |
שימוש ב-getWidth()
// to get the width of the iframe
var width = dscc.getWidth();
getHeight()
| שם | פרמטרים | סוג הערך המוחזר | תיאור |
|---|---|---|---|
| getHeight() | ללא | int
|
הפונקציה מחזירה את הגובה של ה-iframe, בפיקסלים |
שימוש ב-getHeight()
// to get the height of the iframe
var height = dscc.getHeight();
sendInteraction()
הפונקציה sendInteraction() שולחת הודעה ל-Data Studio עם הנתונים של מסנן.
פרמטרים:
| שם | סוג | תיאור |
|---|---|---|
| actionID | string
|
המחרוזת שתואמת ל-actionId בהגדרה |
| אינטראקציה | enum(InteractionType)
|
הפונקציה מעבירה ל-Data Studio מידע על האינטראקציה |
| נתונים | object(InteractionData)
|
מספק את הנתונים הנדרשים לאינטראקציה |
InteractionType
בשלב הזה, הערך התקין היחיד של InteractionType הוא FILTER.
| שם | סוג | תיאור |
|---|---|---|
| dscc.InteractionType.FILTER | Enum | תיאור האינטראקציה עם FILTER |
שימוש ב-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))
}
| שדה | סוג | תיאור |
|---|---|---|
| מושגים | Array |
מערך של fieldIds |
| ערכים | Array<Array>
|
מערך מקונן של ערכי נתונים. כל מערך משנה צריך להיות באורך של המערך concepts.
כל ערך במערך המשנה תואם לערך של מאפיין. |
דוגמה interactionData:
var interactionData = {
"concepts": ["dim1Id", "dim2Id"],
"values": [
["dim1Val1", "dim2Val1"],
["dim1Val2", "dim2Val2"]
]
}
השימוש ב-dscc.sendInteraction עם interactionData שלמעלה שווה ערך להצהרת ה-SQL הבאה:
SELECT data WHERE
(dim1 == dim1Val1 AND dim2 == dim2Val1)
OR
(dim1 == dim1Val2 AND dim2 == dim2Val2);
clearInteraction()
הפונקציה clearInteraction() שולחת הודעה ל-Data Studio כדי לנקות מסנן שהוגדר קודם על ידי התרשים הזה.
פרמטרים:
| שם | סוג | תיאור |
|---|---|---|
| actionID | string
|
המחרוזת שמתאימה ל-actionId בהגדרות |
| אינטראקציה | enum(InteractionType)
|
הפרטים של האינטראקציה מועברים ל-Looker Studio |
שימוש ב-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)
הפונקציה subscribeToData() נרשמת לקבלת הודעות מ-Data Studio.
פרמטרים:
| שם | סוג | תיאור |
|---|---|---|
| callback(data) | function
|
פונקציה שמקבלת את הנתונים שמוחזרים על ידי subscribeToData. |
| options | object |
הגדרת פורמט הנתונים הרצוי להחזרה |
אובייקט האפשרויות נראה כך:
{
transform: dscc.tableTransform | dscc.objectTransform
}
הערך המוחזר:
| סוג | תיאור |
|---|---|
function |
ביטול ההרשמה של callback לקבלת הודעות נוספות מ-Data Studio |
שימוש ב-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
זהו האובייקט שמועבר אל callback שנרשם באמצעות dscc.subscribeToData. אלה השדות שמשותפים בין dscc.objectFormat לבין dscc.tableFormat.
{
fields: object(fieldsByConfigId),
style: object(styleById),
interactions: object(interactionsById),
theme: object(themeStyle),
tables: object(tablesById),
dateRanges: object(dateRangesById)
}
| שדה | סוג | תיאור |
|---|---|---|
| Fields | object(fieldsByConfigId)
|
אובייקט שמכיל שדות שמוצגים באינדקס לפי configId |
| סגנון | object(styleById)
|
אובייקט שמכיל אובייקטים של סגנון שמסודרים לפי configId |
| אינטראקציות | object(interactionsById)
|
אובייקט שמכיל אובייקטים של אינטראקציות |
| עיצוב | themeStyle
|
אובייקט themeStyle שמכיל מידע על סגנון העיצוב של הדוח |
| טבלאות | object(tablesById)
|
אובייקט שמכיל tableObjects |
| dateRanges | object(dateRangesById)
|
אובייקט שמכיל את dateRanges |
fieldsByConfigId
{
configId: array(field)
}
אובייקט fieldsByConfigId מכיל מערכים של אובייקטים מסוג field שממוינדקסים לפי ה-id שמוגדר בהגדרות התצוגה החזותית. יש רשומה אחת באובייקט הזה לכל dataField שמוגדר בהגדרה.
| שדה | סוג | תיאור |
|---|---|---|
| configId | Array<field> |
מערך של שדות שמשויכים ל-dataField |
שדה
{
id: fieldId,
name: string,
description: string,
type: fieldType,
concept: enum(conceptType)
}
אובייקט field מספק מידע על השדה שהמשתמש בוחר בחלונית המאפיינים.
| שדה | סוג | תיאור |
|---|---|---|
| id [מזהה] | string |
המזהה של השדה שנוצר על ידי Looker Studio |
| שם | string |
שם השדה שקריא לבני אדם |
| תיאור | string |
תיאור השדה |
| סוג | enum(fieldType) |
semanticType של השדה |
| קונספט | enum(conceptType) |
conceptType של השדה |
styleById
{
configId: styleValue
}
אובייקט styleById מספק מידע על סגנון שממוין לפי ה-id שמוגדר בהגדרת הוויזואליזציה.
| שדה | סוג | תיאור |
|---|---|---|
| configId | styleValue
|
אובייקט שמכיל את ערך הסגנון ואת ערך ברירת המחדל של הסגנון שמוגדר בהגדרה |
styleValue
{
value: string | object | bool | number,
defaultValue: string | object | bool | number
}
אובייקט styleValue מספק גם את ערך הסגנון שהמשתמש בחר וגם את ערך ברירת המחדל שהוגדר בהגדרות. הסוג של value ושל defaultValue תלוי ברכיב העיצובי.
| שדה | סוג | תיאור |
|---|---|---|
| ערך | string OR object OR bool OR
number
|
הערך של רכיב עיצובי שמוחזר מבחירת המשתמש בחלונית המאפיינים |
| defaultValue | string OR object OR bool OR
number
|
ערך ברירת המחדל של רכיב הסגנון שמוגדר בהגדרות הוויזואליזציה |
interactionsById
{
}
אובייקט interactionsById מספק נתוני אינטראקציה שמסודרים לפי אינדקס על ידי interactionId
הגדרת הוויזואליזציה.
| אינדקס | סוג | תיאור |
|---|---|---|
| configId | interaction
|
אובייקט שמכיל נתונים שמשויכים לאינטראקציה |
interactionField
{
value: object(interactionValue),
supportedActions: array(InteractionType)
}
האובייקט interactionField מכיל את המערך של supportedActions שמוגדר ב-config, וגם את הערכים שהמשתמש בחר לאינטראקציה.
| שדה | סוג | תיאור |
|---|---|---|
| ערך | string OR object OR
bool OR number
|
הערך של רכיב עיצובי שמוחזר מבחירת המשתמש בחלונית המאפיינים |
| supportedActions | Array<InteractionType>
|
הפעולות שנתמכות באינטראקציה הזו, כפי שמוגדרות בהגדרה |
interactionValue
אובייקט interactionValue מספק ערכים שהמשתמש בחר עבור סוג האינטראקציה. אם המפתח data קיים, האובייקט InteractionData משקף את המצב הנוכחי של המסנן. אם המקש data לא קיים, התצוגה החזותית לא מוגדרת כרגע כמסנן.
{
type: enum(InteractionType)
data: object(interactionData) | None
}
| שדה | סוג | תיאור |
|---|---|---|
| סוג | enum(InteractionType)
|
InteractionType שהמשתמש בחר |
| נתונים | object(InteractionData)
|
הנתונים שמשויכים למצב הנוכחי של המסנן. המפתח הזה לא קיים אם המסנן לא מופעל כרגע. |
עיצוב
{
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
}
]
}
אובייקט themeStyle מעביר מידע על נושא הדוח לתצוגה החזותית.
| שדה | סוג | תיאור |
|---|---|---|
| fillColor | object
|
אובייקט בפורמט {color:
string, opacity: number} |
| fontColor | object
|
אובייקט בפורמט {color:
string, opacity: number} |
| accentFillColor | object
|
אובייקט בפורמט {color:
string, opacity: number} |
| accentFontColor | object
|
אובייקט בפורמט {color:
string, opacity: number} |
| fontFamily | string |
מחרוזת שמתארת את משפחת הגופנים |
| accentFontFamily | string
|
מחרוזת שמתארת את משפחת הגופנים של הגופן המודגש |
| increaseColor | object
|
אובייקט בפורמט {color:
string, opacity: number} |
| decreaseColor | object
|
אובייקט בפורמט {color:
string, opacity: number} |
| gridColor | object
|
אובייקט בפורמט {color:
string, opacity: number} |
| seriesColor | Array<object>
|
מערך של אובייקטים בפורמט{color: string, opacity:
number} |
tablesById
{
"DEFAULT": object(tableObject),
"COMPARISON": object(tableObject) | undefined
}
התג tableObject מספק מידע על הכותרת והנתונים של כל שורה. הערך 'DEFAULT' תמיד יחזיר נתונים, והערך 'COMPARISON' יאוכלס רק אם המשתמש יגדיר את הנתונים עם שורות השוואה.
ההבדל היחיד בין dscc.tableFormat לבין dscc.objectFormat הוא הפורמט של tableObject.
| שדה | סוג | תיאור |
|---|---|---|
| "DEFAULT" | object(tableObject) OR
Array<objectRow>
|
ה-tableObject שמשויך לנתונים שמשתמש מוסיף להדמיה |
| "COMPARISON" | object(tableObject) OR
Array<objectRow>
|
הסמל tableObject שמשויך לנתוני ההשוואה בין התאריכים, אם רלוונטי |
dateRangesById
{
"DEFAULT": object(dateRange),
"COMPARISON": object(dateRange)
}
האובייקט dateRangesById מספק מידע על טווחי תאריכים שמוגדרים כברירת מחדל ועל טווחי תאריכים להשוואה. אם לא מוגדרים טווחי תאריכים, האובייקט יהיה ריק. השדות DEFAULT ו-COMPARISON יאוכלסו רק אם המשתמש הגדיר את טווחי התאריכים המתאימים. הנתונים בטווחי התאריכים קשורים לנתוני ברירת המחדל וההשוואה כפי שמוגדרים ב-tablesById.
| שדה | סוג | תיאור |
|---|---|---|
| "DEFAULT" | object(dateRange)
|
הערך dateRange שמשויך לטווח התאריכים שמוגדר כברירת מחדל, אם רלוונטי. |
| "COMPARISON" | object(dateRange)
|
העמודה dateRange שמשויכת לטווח תאריכים להשוואה, אם רלוונטי. |
dateRange
{
start: string,
end: string
}
אובייקט dateRange מספק מידע על תאריכי ההתחלה והסיום של טווח תאריכים שמוגדר כברירת מחדל או לצורך השוואה.
| שדה | סוג | תיאור |
|---|---|---|
| start | string |
תאריך ההתחלה של טווח התאריכים בפורמט YYYYMMDD. |
| End | string |
תאריך הסיום של טווח התאריכים בפורמט YYYYMMDD. |
tableFormat reference
tableObject
{
headers: array(object),
rows: array(array)
}
| שדה | סוג | תיאור |
|---|---|---|
| headers | Array
|
מערך של אובייקטים מסוג fields. לאובייקטים של השדות האלה יש גם מאפיין configId שתואם למזהים מההגדרה. |
| שורות | Array<Array> |
מערך של מערכים: כל מערך הוא שורה של נתונים |
נתונים לדוגמה של tableFormat
זוהי דוגמה ל-data שמוחזרת באמצעות dscc.subscribeToData() עם האפשרות 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"
]
}
}
}
הפניה ל-objectFormat
objectRow
{
configId1: array(string | bool | number),
configId2: array(string | bool | number)
}
| שדה | סוג | תיאור |
|---|---|---|
| configId | מערך | מערך של ערכים שמשויכים למזהה הגדרה מסוים |
נתונים לדוגמה של objectFormat
זוהי דוגמה ל-data שמוחזרת באמצעות dscc.subscribeToData() עם האפשרות 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"
]
}
}
}