Looker Studio משתמש בממשק postMessage כדי לספק נתונים ומידע על סגנון ל-iframe שמכיל את התצוגה החזותית של הקהילה. במדריך הזה מוסבר בפירוט איך להשתמש בספריית העזר.
במקרה של תרשימים של הקהילה, הרכיב ds-component משמש לשתי פונקציות.
- קבלת המידות של ה-iframe
- ניהול התקשורת עם Looker Studio
הרשמה לקבלת עדכונים על אירועים
כשמשתמש יוצר אינטראקציה עם ההמחשה, למשל משנה שדות נבחרים, סגנון או גודל של הרכיב, Looker Studio שולח אירועים להמחשה.
dscc.subscribeToData רושם קריאה חוזרת (callback) שתופעל עבור כל אירוע postMessage מ-Looker Studio. פונקציית הקריאה החוזרת מקבלת אובייקט data.
function drawViz(data){
// obtain the height and width to scale your visualization appropriately
var height = dscc.getHeight();
var width = dscc.getWidth();
// write your visualization code here
console.log("I'm the callback and I was passed this data: " + JSON.stringify(data, null, ' '));
}
// call drawViz every time Looker Studio sends a new postMessage
dscc.subscribeToData(drawViz, {transform: dscc.objectTransform});
הנתונים שמוחזרים
שתי ההמרות של הנתונים מחזירות אובייקט עם חמישה מפתחות.
| מפתח | מטרה |
|---|---|
style |
מידע על סגנון ברירת המחדל ועל הסגנון שנבחר על ידי המשתמש |
fields |
מידע על השדות שהמשתמש בחר |
interactions |
אינטראקציות שהמשתמש בחר |
theme |
דיווח על מידע בנושא |
tables |
שורות של נתונים |
dateRanges |
טווח התאריכים שמוגדר כברירת מחדל וטווח התאריכים להשוואה |
פורמט הנתונים:
{
fields: object(fieldsByConfigId),
style: object(styleById),
interactions: object(interactionsById),
theme: object(themeStyle),
tables: object(tablesById),
dateRanges: object(dateRangesById),
}
הצגות חזותיות שונות דורשות פורמטים שונים של נתונים. שני פורמטים נפוצים הם מערך של מערכים או מערך של אובייקטים. ספריית ds-component מספקת שני טרנספורמציות, שנועדו להביא אתכם ישירות לפורמטים האלה של נתונים.
שני הטרנספורמציות מתועדות בlibrary-reference. קל למפות את ההמרות האלה לפורמטים של נתונים שספריות JavaScript להמחשת נתונים מצפות להם בדרך כלל. שני סוגי הטרנספורמציות הנתמכים הם: objectTransform, שמחזירה מערך של אובייקטים, ו-tableTransform, שמחזירה מערך של מערכים.
dscc.objectTransform
חלק מההצגות החזותיות מצפות לקבל נתונים כמערך של אובייקטים.
לדוגמה:
var data = [
{'colA': 'hello', 'colB', 'world'},
{'colA': 'hello', 'colB', 'world'}
];
בדוגמת הקוד הבאה אפשר לראות איך לגשת למערך של אובייקטים מפורמט dscc.objectTransform.
function drawViz(data){
// what the object transform could look like
// [
// {'configId1': ['hello'], 'configId2': [1] },
// {'configId1': ['world'], 'configId2': [2] }
// ]
var dsccObjectTransformData = data.tables.DEFAULT;
// creating an array of objects
var arrayOfObjects = dscc.ObjectTransformData.rows.map(function(d){
return {
'configId1': d.configId1[0],
'configId2': d.configId2[0]
};
};
}
אם קטעי הנתונים מוגדרים כך שמשתמש יכול להזין כמה שדות (לדוגמה, אם הוגדרו שני מאפיינים לתרשים סנקיי), הפעולה תלויה בתרחיש השימוש, כי פורמט הנתונים שמוחזר על ידי Looker Studio ייראה כך:
var dsccObjectTransformData = [
{'configId1': ['hello', 'there'], 'configId2': [1] },
{'configId1': ['world', 'globe'], 'configId2': [2] }
]
dscc.tableTransform
חלק מספריות הוויזואליזציה מצפות למערך של מערכים.
לדוגמה:
var data = [
['hello', 1],
['world', 2]
];
בדוגמה הבאה אפשר לראות איך ניגשים לשורה של שורות מהפורמט dscc.tableTransform.
function drawViz(data);
// what the below object looks like
// {
// headers: [{
// "id": "qt_ky8sltutsb",
// "name": "dimension",
// "type": "TEXT",
// "concept": "DIMENSION",
// "configId": "configId1"
// }, {
// "id": "qt_m9dtntutsb",
// "name": "metric",
// "type": "NUMBER",
// "concept": "METRIC",
// "configId": "configId2"
// }],
// rows: [
// ['hello', 1],
// ['world', 2]
// ];
// }
var dsccTableTransformObject = data.tables.DEFAULT;
// accessing the row of rows
var rowOfRows = dsccTableTransformObject.rows;
// accessing the header row
var headers = dsccTableTransformObject.headers;
}
dscc.subscribeToData(drawViz, {transform: tableTransform});