ב-Looker Studio נעשה שימוש בממשק postMessage כדי לספק נתונים ופרטי עיצוב ל-iframe שמכיל את התצוגה החזותית של הקהילה. במדריך הזה תוכלו לקרוא פרטים נוספים על השימוש בספריית העזרה.
לתצוגה חזותית של קהילה, ds-component משמש לשתי פונקציות.
- השג את מאפייני ה-iframe
- ניהול התקשורת באמצעות Looker Studio
הרשמה לאירועים
כשמשתמש מנהל אינטראקציה עם התצוגה החזותית, למשל שינוי שדות נבחרים, סגנון או שינוי הגודל של הרכיב, מערכת Looker Studio שולחת אירועים לתצוגה החזותית שלכם.
ב-dscc.subscribeToData
מתועדים קריאה חוזרת שתופעל בכל אירוע 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 מספקת שתי המרות, שנועדו להעביר אתכם ישירות לפורמטים של הנתונים האלה.
שתי הטרנספורמציות מתועדות בהפניה לספרייה. הטרנספורמציות האלה ממופות בקלות לפורמטים של נתונים שבדרך כלל אפשר לצפות בהם באמצעות ספריות חזותיות של 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]
};
};
}
אם קטעי נתונים מוגדרים כך שמשתמש יכול להזין כמה שדות (לדוגמה, אם הוגדרו שני מאפיינים לדיאגרמת Sankey), הטרנספורמציה תהיה תלויה בתרחיש השימוש שלכם, כי פורמט הנתונים שיוחזר על ידי 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});