API'ye genel bakış
dscc (Looker Studio Topluluk Bileşeni), Looker Studio için topluluk bileşenleri oluşturmaya yardımcı olan bir kitaplıktır. Kaynak kodu GitHub'da bulabilirsiniz.
dscc üç işlevi kullanıma sunar: getWidth(), getHeight() ve subscribeToData().
getWidth()
| Ad | Parametreler | Dönüş Türü | Açıklama |
|---|---|---|---|
| getWidth() | Yok | number
|
Iframe'in piksel cinsinden genişliğini döndürür. |
getWidth() kullanılıyor
// to get the width of the iframe
var width = dscc.getWidth();
getHeight()
| Ad | Parametreler | Dönüş Türü | Açıklama |
|---|---|---|---|
| getHeight() | Yok | int
|
Iframe'in piksel cinsinden yüksekliğini döndürür. |
getHeight() kullanılıyor
// to get the height of the iframe
var height = dscc.getHeight();
sendInteraction()
sendInteraction() işlevi, bir filtreyle ilgili verileri içeren bir mesajı Looker Studio'ya gönderir.
Parametreler:
| Ad | Tür | Açıklama |
|---|---|---|
| actionID | string
|
Yapılandırmadaki actionId'ye karşılık gelen dize |
| etkileşim | enum(InteractionType)
|
Looker Studio'ya etkileşim hakkında bilgi verir. |
| aktarma | object(InteractionData)
|
Bir etkileşim için gerekli verileri sağlar. |
InteractionType
Şu anda tek geçerli InteractionType değeri FILTER'dir.
| Ad | Tür | Açıklama |
|---|---|---|
| dscc.InteractionType.FILTER | Enum | FILTER etkileşimini açıklar. |
sendInteraction kullanılıyor
// 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))
}
| Alan | Tür | Açıklama |
|---|---|---|
| test edin | Array |
fieldIds dizisi |
| values | Array<Array>
|
İç içe yerleştirilmiş veri değerleri dizisi. Her alt dizi, concepts dizisinin uzunluğunda olmalıdır.
Alt dizideki her değer bir boyut değerine karşılık gelir. |
Örnek interactionData:
var interactionData = {
"concepts": ["dim1Id", "dim2Id"],
"values": [
["dim1Val1", "dim2Val1"],
["dim1Val2", "dim2Val2"]
]
}
dscc.sendInteraction ifadesini yukarıdaki interactionData ile kullanmak, aşağıdaki SQL ifadesine eşdeğerdir:
SELECT data WHERE
(dim1 == dim1Val1 AND dim2 == dim2Val1)
OR
(dim1 == dim1Val2 AND dim2 == dim2Val2);
clearInteraction()
clearInteraction() işlevi, bu görselleştirme tarafından daha önce ayarlanmış bir filtreyi temizlemek için Looker Studio'ya mesaj gönderir.
Parametreler:
| Ad | Tür | Açıklama |
|---|---|---|
| actionID | string
|
Yapılandırmadaki actionId'ye karşılık gelen dize |
| etkileşim | enum(InteractionType)
|
Etkileşim hakkında Looker Studio'ya bilgi verir. |
clearInteraction() kullanılıyor
// 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() işlevi, Looker Studio'dan gelen mesajlara abone olur.
Parametreler:
| Ad | Tür | Açıklama |
|---|---|---|
| callback(data) | function
|
subscribeToData tarafından döndürülen verileri alan bir işlev. |
| seçenekler | object |
İstenen veri döndürme biçimini tanımlar. |
Seçenekler nesnesi şu şekilde görünür:
{
transform: dscc.tableTransform | dscc.objectTransform
}
Döndürülen değer:
| Tür | Açıklama |
|---|---|
function |
Looker Studio'dan daha fazla mesaj almayı callback durdurur. |
subscribeToData() kullanılıyor
// 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
Bu, callback ile kaydedilen dscc.subscribeToData öğesidir. Aşağıdaki alanlar dscc.objectFormat ve dscc.tableFormat arasında paylaşılır.
{
fields: object(fieldsByConfigId),
style: object(styleById),
interactions: object(interactionsById),
theme: object(themeStyle),
tables: object(tablesById),
dateRanges: object(dateRangesById)
}
| Alan | Tür | Açıklama |
|---|---|---|
| Fields | object(fieldsByConfigId)
|
configId'lerine göre dizine eklenmiş alanlar içeren bir nesne |
| stil | object(styleById)
|
Yapılandırma kimliklerine göre dizine eklenmiş stil nesneleri içeren bir nesne. |
| etkileşimler | object(interactionsById)
|
Etkileşim nesneleri içeren bir nesne |
| tema | themeStyle
|
Raporun tema stili bilgilerini içeren bir themeStyle nesnesi |
| tablolar | object(tablesById)
|
tableObjects içeren bir nesne |
| dateRanges | object(dateRangesById)
|
dateRanges içeren bir nesne |
fieldsByConfigId
{
configId: array(field)
}
fieldsByConfigId nesnesi, görselleştirme yapılandırmasında tanımlanan "id" ile dizine eklenmiş alan nesnelerinin dizilerini içerir. Yapılandırmada tanımlanan her dataField için bu nesnede bir giriş bulunur.
| Alan | Tür | Açıklama |
|---|---|---|
| configId | Array<field> |
dataField ile ilişkili alan dizisi |
alan
{
id: fieldId,
name: string,
description: string,
type: fieldType,
concept: enum(conceptType)
}
field nesnesi, kullanıcının özellik panelinde seçtiği alan hakkında bilgi sağlar.
| Alan | Tür | Açıklama |
|---|---|---|
| id | string |
Alan için Looker Studio tarafından oluşturulan kimlik |
| ad | string |
Kullanıcıların okuyabileceği alan adı |
| açıklama | string |
Alanın açıklaması |
| tür | enum(fieldType) |
Alanının semanticType'ı |
| kavram | enum(conceptType) |
Alan conceptType'ı |
styleById
{
configId: styleValue
}
styleById nesnesi, görselleştirme yapılandırmasında tanımlanan "id"ye göre dizine eklenmiş stil bilgileri sağlar.
| Alan | Tür | Açıklama |
|---|---|---|
| configId | styleValue
|
Stil değerini ve yapılandırmada tanımlanan varsayılan stil değerini içeren bir nesne |
styleValue
{
value: string | object | bool | number,
defaultValue: string | object | bool | number
}
styleValue nesnesi hem kullanıcı tarafından seçilen stil değerini hem de yapılandırmada tanımlanan varsayılan değeri sağlar. value ve defaultValue türü, stil öğesine bağlıdır.
| Alan | Tür | Açıklama |
|---|---|---|
| value | string OR object OR bool OR
number
|
Özellik panelinde kullanıcı seçiminden döndürülen stil öğesinin değeri |
| defaultValue | string OR object OR bool OR
number
|
Görselleştirme yapılandırmasında tanımlanan stil öğesinin varsayılan değeri |
interactionsById
{
}
interactionsById nesnesi,
interactionId
görselleştirme yapılandırmasına göre dizine eklenmiş etkileşim verileri sağlar.
| Dizin | Tür | Açıklama |
|---|---|---|
| configId | interaction
|
Bir etkileşimle ilişkili verileri içeren bir nesne |
interactionField
{
value: object(interactionValue),
supportedActions: array(InteractionType)
}
interactionField nesnesi, yapılandırmada tanımlanan supportedActions dizisinin yanı sıra etkileşim için kullanıcı tarafından seçilen değerleri içerir.
| Alan | Tür | Açıklama |
|---|---|---|
| value | string OR object OR
bool OR number
|
Özellik panelinde kullanıcı seçiminden döndürülen stil öğesinin değeri |
| supportedActions | Array<InteractionType>
|
Yapılandırmada tanımlandığı şekilde, bu etkileşim tarafından desteklenen işlemler |
interactionValue
interactionValue nesnesi, etkileşim türü için kullanıcı tarafından seçilen değerleri sağlar. data anahtarı varsa InteractionData nesnesi filtrenin mevcut durumunu yansıtır. data anahtarı yoksa görselleştirme şu anda filtre olarak yapılandırılmamıştır.
{
type: enum(InteractionType)
data: object(interactionData) | None
}
| Alan | Tür | Açıklama |
|---|---|---|
| tür | enum(InteractionType)
|
Kullanıcı tarafından seçilen InteractionType |
| aktarma | object(InteractionData)
|
Filtrenin mevcut durumuyla ilişkili veriler. Filtre şu anda temizlenmişse bu anahtar mevcut değildir. |
tema
{
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 nesnesi, rapor teması bilgilerini görselleştirmeye iletir.
| Alan | Tür | Açıklama |
|---|---|---|
| fillColor | object
|
{color:
string, opacity: number} biçiminde bir nesne |
| fontColor | object
|
{color:
string, opacity: number} biçiminde bir nesne |
| accentFillColor | object
|
{color:
string, opacity: number} biçiminde bir nesne |
| accentFontColor | object
|
{color:
string, opacity: number} biçiminde bir nesne |
| fontFamily | string |
Yazı tipi ailesini açıklayan bir dize |
| accentFontFamily | string
|
Vurgu yazı tipi ailesini açıklayan bir dize |
| increaseColor | object
|
{color:
string, opacity: number} biçiminde bir nesne |
| decreaseColor | object
|
{color:
string, opacity: number} biçiminde bir nesne |
| gridColor | object
|
{color:
string, opacity: number} biçiminde bir nesne |
| seriesColor | Array<object>
|
{color: string, opacity:
number} biçimindeki nesneler dizisi |
tablesById
{
"DEFAULT": object(tableObject),
"COMPARISON": object(tableObject) | undefined
}
tableObject, her satır için başlık ve veri bilgileri sağlar. "DEFAULT" her zaman veri döndürür ve "COMPARISON" yalnızca kullanıcı verileri karşılaştırma satırlarıyla yapılandırırsa doldurulur.
dscc.tableFormat ile dscc.objectFormat arasındaki tek fark tableObject'in biçimidir.
| Alan | Tür | Açıklama |
|---|---|---|
| "DEFAULT" | object(tableObject) OR
Array<objectRow>
|
Kullanıcının görselleştirmeye eklediği verilerle ilişkili tableObject |
| "COMPARISON" | object(tableObject) OR
Array<objectRow>
|
Geçerliyse tarih karşılaştırma verileri ile ilişkili tableObject |
dateRangesById
{
"DEFAULT": object(dateRange),
"COMPARISON": object(dateRange)
}
dateRangesById nesnesi, varsayılan ve karşılaştırma tarih aralıkları hakkında bilgi sağlar. Tarih aralığı yoksa nesne boş olur. DEFAULT ve COMPARISON yalnızca ilgili tarih aralıkları kullanıcı tarafından yapılandırılırsa doldurulur. Tarih aralıklarındaki veriler, tablesById içinde tanımlandığı şekilde varsayılan ve karşılaştırma verileriyle ilgilidir.
| Alan | Tür | Açıklama |
|---|---|---|
| "DEFAULT" | object(dateRange)
|
Varsa varsayılan tarih aralığı ile ilişkili dateRange. |
| "COMPARISON" | object(dateRange)
|
Varsa bir karşılaştırma tarih aralığıyla ilişkili dateRange. |
dateRange
{
start: string,
end: string
}
dateRange nesnesi, varsayılan veya karşılaştırma tarih aralığının başlangıç ve bitiş tarihleri hakkında bilgi sağlar.
| Alan | Tür | Açıklama |
|---|---|---|
| start | string |
Tarih aralığının başlangıç tarihi (YYYYAAAG biçiminde). |
| end | string |
Tarih aralığının bitiş tarihi (YYYYAAAG biçiminde). |
tableFormat referansı
tableObject
{
headers: array(object),
rows: array(array)
}
| Alan | Tür | Açıklama |
|---|---|---|
| üstbilgiler | Array
|
Alan nesneleri dizisi. Bu alan nesneleri ayrıca yapılandırmadaki kimliklere karşılık gelen bir configId özelliğine sahiptir. |
| satırlar | Array<Array> |
Diziler dizisi: Her dizi bir veri satırıdır. |
Örnek tableFormat verileri
Bu, data seçeneğiyle dscc.subscribeToData() kullanılarak döndürülen örnek 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 referansı
objectRow
{
configId1: array(string | bool | number),
configId2: array(string | bool | number)
}
| Alan | Tür | Açıklama |
|---|---|---|
| configId | dizi | Belirli bir yapılandırma kimliğiyle ilişkili değer dizisi |
Örnek objectFormat verileri
Bu, data seçeneğiyle dscc.subscribeToData() kullanılarak döndürülen örnek 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"
]
}
}
}