تستخدم أداة Looker Studio postMessage لتوفير البيانات ومعلومات التصميم لإطار iframe الذي يحتوي على مؤثر عرض التصور في المجتمع. يوفّر هذا الدليل مزيدًا من التفاصيل حول استخدام "مساعد Google". المكتبة.
بالنسبة لتصورات المجتمع، يؤدي 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 اثنين وتحويلات البيانات، والتي تهدف إلى توصيلك مباشرة إلى تنسيقات البيانات هذه.
وقد تم توثيق التحويلين في
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 سيبدو الاستوديو شبيهًا بما يلي:
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});