Required functions
getConfig()
Returns the user configurable options for the connector.
Request
@param {Object} request
A JavaScript object containing the config request
parameters.
The parameter JavaScript object contains data with the following structure:
{
languageCode: string
}
Field Name | Type | Description |
---|---|---|
languageCode
|
string
|
A code that represents the user's language. This code can optionally be used to return a localized version of configuration options for the user. See the complete list of supported languages and codes. |
configParams | object | Present if the previous call
to getConfig() had
.setIsSteppedConfig(true) .
An object containing the
user-provided configuration
values so far. |
Request Example
Example of a getConfig
request for a user whose language is set to Italian:
{
languageCode: "it"
}
Response
Looker Studio Service
@return {object}
A JavaScript object representing the config for the
given request.
Example
function getConfig(request) {
var cc = DataStudioApp.createCommunityConnector();
var config = cc.getConfig();
config
.newTextInput()
.setId('exampleTextInput')
.setName('Single line text')
.setHelpText('Helper text for single line text')
.setPlaceholder('Lorem Ipsum');
config
.newTextArea()
.setId('exampleTextArea')
.setName('Text area')
.setHelpText('Helper text for text area')
.setPlaceholder('Lorem Ipsum');
config
.newSelectSingle()
.setId('exampleSelectSingle')
.setName('Select single')
.setHelpText('Helper text for select single')
.setAllowOverride(true)
.addOption(config.newOptionBuilder().setLabel('Lorum foo').setValue('lorem'))
.addOption(config.newOptionBuilder().setLabel('Ipsum Bar').setValue('ipsum'))
.addOption(config.newOptionBuilder().setLabel('Sit').setValue('amet'));
config
.newSelectMultiple()
.setId('exampleSelectMultiple')
.setName('Select multiple')
.setHelpText('Helper text for select multiple')
.addOption(config.newOptionBuilder().setLabel('Lorum foo').setValue('lorem'))
.addOption(config.newOptionBuilder().setLabel('Ipsum Bar').setValue('ipsum'))
.addOption(config.newOptionBuilder().setLabel('Sit').setValue('amet'));
config
.newCheckbox()
.setId('exampleCheckbox')
.setName('This is a checkbox')
.setHelpText('Helper text for checkbox');
config
.newInfo()
.setId('exampleInfo')
.setText('Examle instructions text used in Info')
config.setDateRangeRequired(true);
config.setIsSteppedConfig(false);
return config.build();
}
Legacy
@return {object}
A JavaScript object representing the connector
configuration that should be displayed to the user.
The response contains the connector configuration with the following structure:
{
configParams: [
{
type: string(ConfigType),
name: string,
displayName: string,
helpText: string,
placeholder: string,
isDynamic: boolean,
parameterControl: {
allowOverride: boolean
},
options: [
{
label: string,
value: string
}
]
}
],
dateRangeRequired: boolean,
isSteppedConfig: boolean
}
Field name | Type | Description |
---|---|---|
configParams[]
|
object
|
The user provided values required by the connector. Each item represents a user input field. |
configParams[].type
|
string (ConfigType)
|
The type of the input field. |
configParams[].name
|
string
|
The ID of the input field. This should be a non-empty string with no spaces. |
configParams[].displayName
|
string
|
The text label for the input field. |
configParams[].helpText
|
string
|
The text to display to provide additional assistance to the user about the expected value for the field. |
configParams[].placeholder
|
string
|
Used only when type is TEXTINPUT or
TEXTAREA Placeholder text to be used as a short hint to describe the expected value of the input field. |
configParams[].isDynamic
|
boolean
|
Whether or not this field is used to dynamically populate later
configuration entries. Defaults to false
|
configParams[].parameterControl.allowOverride
|
boolean
|
Enables overriding for the parameter. If set to true , data
source creators can enable this for report
editors
Default value for allowOverride is false . If you
do not want to enable overriding for a parameter, you can omit the
allowOverride property.
|
configParams[].options[]
|
list
|
Used only of type is SELECT This provides the list of all the options. |
options[].label
|
string
|
The label for the option. |
options[].value
|
string
|
The value for the option. This should be a non-empty string with no spaces or commas. |
dateRangeRequired
|
boolean
|
If true , a date range is provided for
getData() requests. By default, the last 28 days excluding
today is chosen as the date range. This must be set for
data APIs that require a date range to accompany queries, and should be
set if requests to data APIs can be more efficient due to limiting the
date range. Defaults to false . |
isSteppedConfig
|
boolean
|
If true , Looker Studio will prompt the user to answer the
current set of configuration questions, then return those answered
questions to subsequent calls to getConfig() . If
false (default), The user will be able to click connect
and continue to the Schema page.
|
Response Example
The following example shows the configuration for a single line text box, a text area, a single-select, a multi-select, a checkbox and an info box. The single-select value can be overridden in reports.
{
configParams: [
{
type: "TEXTINPUT",
name: "exampleTextInput",
displayName: "Single line text",
helpText: "Helper text for single line text",
placeholder: "Lorem Ipsum"
},
{
type: "TEXTAREA",
name: "exampleTextArea",
displayName: "Text area",
helpText: "Helper text for text area",
placeholder: "Lorem Ipsum"
},
{
type: "SELECT_SINGLE",
name: "exampleSELECT_SINGLE",
displayName: "Select single",
helpText: "Helper text for select-single",
parameterControl: {
allowOverride: true
},
options: [
{
label: "Lorem foo",
value: "lorem"
},
{
label: "Ipsum bar",
value: "ipsum"
},
{
label: "Sit",
value: "amet"
}
]
},
{
type: "SELECT_MULTIPLE",
name: "exampleSELECT_MULTIPLE",
displayName: "Select multiple",
helpText: "Helper text for select-multiple",
options: [
{
label: "Lipsum",
value: "lipsum"
},
{
label: "Foo Bar",
value: "foobar"
},
{
label: "Dolor Sit",
value: "amet"
}
]
},
{
type: "CHECKBOX",
name: "exampleCheckbox",
displayName: "This is a checkbox",
helpText: "Helper text for checkbox",
},
{
type: "INFO",
name: "exampleInfo",
text: "Example instructions text used in Info"
}
],
dateRangeRequired: false
}
getSchema()
Returns the schema for the given request. This provides the information about how the connector's data is organized. For each field it includes details such as identifiers, names, data types, etc.
Request
@param {Object} request
A JavaScript object containing the schema request
parameters.
The parameter JavaScript object contains data with the following structure:
{
"configParams": object
}
Field Name | Type | Description |
---|---|---|
configParams
|
Object
|
A JavaScript object containing the user provided values for the config parameters defined by the connector. |
Request Example
Example of a getSchema
request object:
{
"configParams": {
"exampleSelectMultiple": "foobar,amet",
"exampleSelectSingle": "ipsum",
"exampleTextInput": "Lorem Ipsum Dolor Sit Amet",
"exampleTextArea": "NA",
"exampleCheckbox": "true"
}
}
Response
Looker Studio Service
@return {object}
A JavaScript object representing the schema for the
given request.
Example
function getSchema(request) {
var cc = DataStudioApp.createCommunityConnector();
var fields = cc.getFields();
var types = cc.FieldType;
var created = fields.newDimension()
.setId('Created')
.setName('Date Created')
.setDescription('The date that this was created')
.setType(types.YEAR_MONTH_DAY)
.setGroup('Date');
var amount = fields.newMetric()
.setId('Amount')
.setName('Amount (USD)')
.setDescription('The cost in US dollars')
.setType(types.CURRENCY_USD)
.setIsHidden(true);
var amountper = fields.newMetric()
.setId('AmountPer')
.setName('Amount Per Dimension')
.setDescription('The summed cost')
.setType(types.CURRENCY_USD)
.setGroup('Money')
.setFormula('sum($Amount)');
var probability = fields.newMetric()
.setId('Probability')
.setName('Probability (Close rate)')
.setDescription('The probability that a store closes')
.setType(types.PERCENT);
var opportunityname = fields.newDimension()
.setId('OpportunityName')
.setName('Opportunity Name')
.setDescription('The name of the opportunity')
.setType(types.TEXT);
var isverified = fields.newDimension()
.setId('IsVerified')
.setName('Verified Status')
.setDescription('Whether or not the store is verified')
.setType(types.BOOLEAN);
var company = fields.newDimension()
.setId('Company')
.setName('Incorporated Company Name')
.setDescription('The name of the company the store belongs to')
.setType(types.TEXT);
fields.setDefaultMetric(amountper.getId());
fields.setDefaultDimension(created.getId());
return { 'schema': fields.build() };
}
BigQuery
@return {object}
A JavaScript object representing the BigQuery query
configuration.
Example
var bqTypes = DataStudioApp.createCommunityConnector().BigQueryParameterType;
var configuration = DataStudioApp.createCommunityConnector().newBigQueryConfig()
.setBillingProjectId('billingProjectId')
.setQuery('myQueryString')
.setUseStandardSql(true)
.setAccessToken('myAccessToken')
.addQueryParameter('myUrlParameterName', bqTypes.STRING, 'myUrlParameterValue')
.build();
Legacy
@return {object}
A JavaScript object representing the schema for the given
request.
The function returns the schema with the following structure:
{
"schema": [
{
object(Field)
}
]
}
Field name | Type | Description |
---|---|---|
schema[]
|
object(Field)
|
The schema for the given request which includes details about each field. |
Response Example
{
"schema": [
{
"name": "Created",
"label": "Date Created",
"description": "The date that this was created",
"dataType": "STRING",
"group": "Date",
"isDefault": true,
"semantics": {
"conceptType": "DIMENSION",
"semanticGroup": "DATE_AND_TIME",
"semanticType": "YEAR_MONTH_DAY",
"isReaggregatable": false
}
},
{
"name": "Amount",
"label": "Amount (USD)",
"description": "The cost in US dollars",
"dataType": "NUMBER",
"isHidden": true,
"semantics": {
"conceptType": "METRIC",
"semanticGroup": "CURRENCY",
"semanticType": "CURRENCY_USD",
}
},
{
"name": "AmountPer",
"label": "Amount Per Dimension",
"description": "The summed cost",
"dataType": "NUMBER",
"group": "Money",
"formula": "sum(Amount)",
"isDefault": true,
"semantics": {
"conceptType": "METRIC",
"semanticGroup": "CURRENCY",
"semanticType": "CURRENCY_USD",
"isReaggregatable": true
}
},
{
"name": "Probability",
"label": "Probability (Close rate)",
"description": "The probability that a store closes",
"dataType": "NUMBER",
"semantics": {
"conceptType": "METRIC",
"semanticGroup": "NUMERIC",
"semanticType": "PERCENT",
"isReaggregatable": false
}
},
{
"name": "OpportunityName",
"label": "Opportunity Name",
"description": "The name of the opportunity",
"dataType": "STRING",
"semantics": {
"conceptType": "DIMENSION",
"semanticType": "TEXT",
"isReaggregatable": false
}
},
{
"name": "IsVerified",
"label": "Verified Status",
"description": "Whether or not the store is verified",
"dataType": "BOOLEAN",
"semantics": {
"conceptType": "DIMENSION",
"semanticType": "BOOLEAN",
"isReaggregatable": false
}
},
{
"name": "Company",
"label": "Incorporated Company Name",
"description": "The name of the company the store belongs to",
"dataType": "STRING",
"semantics": {
"conceptType": "DIMENSION",
"semanticType": "TEXT",
"isReaggregatable": false
}
}
]
}
getData()
Returns the tabular data for the given request.
Request
@param {Object} request
A JavaScript object containing the data request
parameters.
The request
parameter contains user provided values and additional information
that can be used to complete the data request. It has the following structure:
{
"configParams": object,
"scriptParams": {
"sampleExtraction": boolean,
"lastRefresh": string
},
"dateRange": {
"startDate": string,
"endDate": string
},
"fields": [
{
"name": string
}
],
"dimensionsFilters": [
[{
"fieldName": string,
"values": string[],
"type": DimensionsFilterType,
"operator": Operator
}]
]
}
Name | Type | Description |
---|---|---|
configParams
|
object
|
An object containing the user provided values for the config parameters defined by the connector. |
scriptParams
|
ScriptParams | An object containing information relevant to connector execution |
dateRange
|
DateRange | By default, the date
range provided will
be the last 28 days
excluding today. If a
user applies a date
range filter for a
report, then the date
range provided will
reflect the user
selection. When sampleExtraction is
set to `true**, the
date two days earlier
than today is given
as both the start and
end date. |
fields[].name
|
string
|
The names of the requested fields. |
fields[].forFilterOnly
|
boolean
|
Marks a field only used for filtering the request. Don't return the field if your connector applies filters. |
dimensionsFilters
|
DimensionsFilters | A nested array of the
user selected
filters. The
innermost arrays
should be OR ed
together, the
outermost arrays
should be AND ed
together. |
dateRange
Name | Type | Description |
---|---|---|
startDate
|
string
|
The start date for filtering
the data. Applies only if
dateRangeRequired
is set to true . It will be in
YYYY-MM-DD format. |
endDate
|
string
|
The end date for filtering the
data. Applies only
dateRangeRequired
is set to true . It will be
inYYYY-MM-DD format. |
scriptParams
Name | Type | Description |
---|---|---|
sampleExtraction
|
boolean
|
If true , the getData() request is for
automatic semantic type detection. |
lastRefresh
|
string
|
A timestamp that marks the most recent request for a refresh of data. |
dimensionsFilters
name | type | description |
---|---|---|
fieldName
|
string
|
The name of the field to be filtered |
values
|
string[]
|
An array of values to use for the operator. |
type
|
"INCLUDE" | "EXCLUDE"
|
Whether data matching this filter
should be included or excluded from
the getData() response. |
operator |
FilterOperator | The operator to apply |
Request Example
{
"configParams": {
"multiSelectExample": "foo,bar",
"singleSelectExample": "Lipsum",
"singleTextExample": "Lorem Ipsum",
"multiTextExample": "Dolor Sit Amet",
"includeCheckExample": "true"
},
"dateRange": {
"endDate": "2017-07-16",
"startDate": "2017-06-19"
},
"fields": [
{"name": "count"},
{"name": "family"}
]
}
Response
Default
@return {object}
A JavaScript object that contains the schema and data for
the given request.
The function returns tabular data that satisfies the given request. The schema for the tabular data is included in the response. The response is expected to have the following structure:
{
"schema": [
{
object(Field)
}
],
"rows": [
{
"values": [
string
]
}
]
}
Name | Type | Description |
---|---|---|
schema
|
Field[] | The schema for the
requested field(s).
field.name and
field.dataType are
required. The order of the
field object should
match the order of the
values for each row. |
rows[].values[]
|
string | number |
boolean
|
The values for the
requested field(s). The order of values must correspond to the order of the Fields defined in
the schema |
filtersApplied
|
boolean
|
Set to true if all filters were successfully applied, false otherwise. |
Field
Name | Type | Description |
---|---|---|
name |
string |
The name of the field. |
dataType |
DataType | The type of the field. |
Example
{
"schema": [
{
"name": "OpportunityName",
"dataType": "STRING"
},
{
"name": "IsVerified",
"dataType": "BOOLEAN"
},
{
"name": "Created",
"dataType": "STRING"
},
{
"name": "Amount",
"dataType": "NUMBER"
}
],
"rows": [
{
"values": ["Interesting", true, "2017-05-23", "120453.65"]
},
{
"values": ["SF", false, "2017-03-03", "362705286.92"]
},
{
"values": ["Spring Sale", true, "2017-04-21", "870.12"]
}
],
"filtersApplied": false
}
BigQuery
@return {object}
A JavaScript object representing the BigQuery query
configuration.
Example
var bqTypes = DataStudioApp.createCommunityConnector().BigQueryParameterType;
var configuration = DataStudioApp.createCommunityConnector().newBigQueryConfig()
.setBillingProjectId('billingProjectId')
.setQuery('myQueryString')
.setUseStandardSql(true)
.setAccessToken('myAccessToken')
.addQueryParameter('myUrlParameterName', bqTypes.STRING, 'myUrlParameterValue')
.build();
getAuthType()
Returns the connector's authentication method.
Request
This function does not accept any arguments.
Response
Looker Studio Service
@return {object}
An object that contains the AuthType
used by the
connector. If the AuthType
is one of USER_TOKEN
, USER_PASS
, KEY
,
PATH_USER_PASS
, or PATH_KEY
, an optional helpUrl
can also be set.
Example
function getAuthType() {
var cc = DataStudioApp.createCommunityConnector();
return cc.newAuthTypeResponse()
.setAuthType(cc.AuthType.USER_PASS)
.setHelpUrl('https://www.example.org/connector-auth-help')
.build();
}
Legacy
@return {object}
An object that contains the AuthType
used by the
connector. If the AuthType
is one of USER_TOKEN
, USER_PASS
, KEY
,
PATH_USER_PASS
, or PATH_KEY
, an optional helpUrl
can also be set.
The response has the following structure:
{
"type": string(AuthType),
"helpUrl": string
}
Field name | Type | Description |
---|---|---|
type
|
string(AuthType)
|
The value for the type of authentication. |
helpUrl
|
string
|
An optional URL to be shown to the user if type is one
of USER_TOKEN , USER_PASS ,
KEY , PATH_USER_PASS , or
PATH_KEY . This URL should point to a page where users
can learn details about how to authenticate the connector.
|
Response Example
{
"type": "USER_TOKEN",
"helpUrl": "https://www.example.org/connector-auth-help"
}
Required Auth functions
isAuthValid()
Checks if the 3rd-party service credentials are valid.
Request
This function does not formally accept any arguments.
Response
@return {boolean}
Returns true
if the 3rd-party service credentials are
valid, false
otherwise. If true
it is expected that calls to
getData
and getSchema
will be authorized. If
false
then the user will likely be notified that auth has expired and they
will be asked to reauthorize.
resetAuth()
Clears user credentials for the third-party service.
Request
This function does not formally accept any arguments.
Response
The response is empty.
Required OAuth2 functions
get3PAuthorizationUrls()
Returns the authorization URL to initiate the OAuth 2.0 flow for the 3rd-party service.
Request
This function does not formally accept any arguments.
Response
@return {string}
Returns the authorization URL for the 3rd-party service. The authorization URL will be presented to the user to initiate the OAuth 2.0 flow
to grant access to the 3rd-party service.
authCallback()
Handles the authorization response received from the 3rd party service as part of the OAuth 2.0 authorization process.
Request
@param {string} request
A JSON encoded object representing the request data
from the completion of the OAuth 2.0 flow.
The request
parameter from the completion of an OAuth 2.0 flow is expected to
contain data with the following structure (There are 2 representations below,
one for a successful request and another for a failed request):
// Success
{
"parameter":
{
"code": string
}
}
// Error
{
"parameter":
{
"error": string
}
}
Field name | Type | Description |
---|---|---|
parameter
|
object
|
The code or error values from a successful or
failed OAuth 2.0 flow. These values are can be used for further callback
handling.
|
code
|
string
|
On a successful OAuth 2.0 flow this will be present and contain the value
of the code query parameter from OAuth 2.0 callback request
received from the 3rd-party service. This is an authorization code that
can be used for further OAuth 2.0 handling.
|
error
|
object
|
On a failed OAuth 2.0 flow attempt this will be present and contain the
value of the error query parameter from OAuth 2.0 callback
request received from the 3rd-party service. This is an error message that
can be used for further OAuth 2.0 handling and creating notifications.
|
Response
@return {object}
Return an HTML object that will be rendered and shown to the
user. Please view the Oauth library
documentation
and also Apps Script HTML Service
documentation for more
details.
Required User/Pass & Key functions
setCredentials()
Stores the credentials passed in from Looker Studio.
Request
@param {Object} request
A JavaScript object containing the data request
parameters.
The request
parameter contains the credentials that the user entered. It will
have one of pathUserPass
, pathKey
, userPass
, userToken
, or key
set
depending on the response of getAuthType()
.
{
"pathUserPass": {
"path": : string,
"username": string,
"password": string
},
"pathKey": {
"path": : string,
"key": string
},
"userPass": {
"username": string,
"password": string
},
"userToken": {
"username": string,
"token": string
},
"key": string
}
Field name | Type |
---|---|
pathUserPass.path |
The path provided by the user. |
pathUserPass.username |
The username provided by the user. |
pathUserPass.password |
The password provided by the user. |
pathKey.path |
The path provided by the user. |
pathKey.key |
The API key or token provided by the user. |
userPass.username |
The username provided by the user. |
userPass.password |
The password provided by the user. |
userToken.username |
The username provided by the user. |
userToken.token |
The token provided by the user. |
key |
The API key or token provided by the user. |
Response
@return {object}
A JavaScript object that contains an error code indicating if
the credentials were able to be set successfully.
{
"errorCode": string("NONE" | "INVALID_CREDENTIALS")
}
Field name | Type | Description |
---|---|---|
errorCode |
enum(string) |
The errorCode for the setCredentials call |
Error Code Name | Description |
---|---|
"NONE" |
The credentials were able to be set successfully. |
"INVALID_CREDENTIALS" |
The credentials provided were invalid. |
Response Example
{
"errorCode": "NONE"
}
Optional functions
isAdminUser()
Checks if the user is an admin of the connector. This function is used to enable/disable debug features. See Enabling/Disabling debug features for more details.
Request
This function does not accept any arguments.
Response
@return {boolean}
Return true
if the user is an admin of the connector. If
the function is omitted or returns false
, then the user will not be considered
an admin. See Enabling/Disabling debug features for more details.
Data Types
Field
Looker Studio Service
See Class Field for all methods that exist on the field type.
Creating A Field
var cc = DataStudioApp.createCommunityConnector();
var types = cc.FieldType;
var aggregations = cc.AggregationType;
var myField = cc.newDimension() // Or newMetric
.setId('my_unique_identifier')
.setName('My friendly name')
.setDescription('My short description')
.setType(types.YEAR_MONTH_DAY)
// formula fields cannot be hidden.
.setIsHidden(true)
.setGroup('My group name');
var cc = DataStudioApp.createCommunityConnector();
var types = cc.FieldType;
var aggregations = cc.AggregationType;
var myField = cc.newDimension() // Or newMetric
.setId('my_unique_identifier')
.setName('My friendly name')
.setDescription('My short description')
.setType(types.YEAR_MONTH_DAY)
// formula fields cannot be hidden.
.setIsHidden(true)
.setGroup('My group name');
Legacy
Describes a specific field of a record/row as part of a schema.
Each field has the following structure:
{
"name": string,
"label": string,
"description": string,
"dataType": string(DataType),
"group": string,
"formula": string,
"isDefault": boolean,
"defaultAggregationType": string(DefaultAggregationType),
"semantics": {
"conceptType": string(ConceptType),
"semanticType": string(SemanticType),
"semanticGroup": string(SemanticGroup),
"isReaggregatable": boolean
}
}
Field name | Type | Description |
---|---|---|
name
|
string
|
The name of the field. This is used as a unique identifier. Only alphanumeric characters and underscores are allowed. |
label
|
string
|
The display name for the field. This is used as a "friendly" name in the UI. |
description
|
string
|
An optional description for the field. Only plain text is allowed. |
dataType
|
string(DataType)
|
The data type for the field. |
isHidden
|
boolean
|
An optional property. Set to true to hide the field.
Hidden fields don't show up on the fields screen, or as a selectable
field for charts, but can be used in calculated field formulas.
Formula fields cannot be hidden.
|
group
|
string
|
An optional property that indicates a field belongs to a group. If
fieldA and fieldB both belong to
groupC , then they will be grouped together in the "Metric
picker" or the "Dimension picker" of the UI. If group is defined for at
least one field, then the fields without a group are given a group of
Default Group .
|
formula
|
string
|
An optional property that determines how a field is calculated. If
the formula is invalid, then the field is dropped. If both
aggregation properties (
Only certain If you manually set this field, then it cannot be edited in the fields editor. For more detail on creating formulas, check About calculated fields. |
isDefault
|
boolean
|
An optional property that indicates if one field should be selected as
the default dimension or metric . You should
define only one default dimension and one default
metric for the schema.
|
defaultAggregationType
|
string(DefaultAggregationType)
|
An optional property that indicates what aggregation Looker Studio should default to for this field. Users are able to change this value. |
semantics
|
object
|
Properties to provide semantic information about the field. If this
property (and semantics.semanticType ) is present on any
of the fields in the schema, then automatic semantic detection is
disabled. If this property is absent from all of the fields, then
automatic semantic detection will be enabled.
|
semantics.conceptType
|
string(ConceptType)
|
Indicates whether the field is a dimension or metric. |
semantics.semanticType
|
string(SemanticType)
|
The semantic type for the field. If provided, automatic semantic detection is disabled. |
semantics.semanticGroup
|
string(SemanticGroup)
|
The semantic group for the field. This optional property allows for semantic types to be grouped. Looker Studio doesn't currently use this field, but may in the future. |
semantics.isReaggregatable
|
boolean
|
true indicates that Aggregation can be applied
to this field; In Looker Studio Aggregation is set to
SUM by default and the user can change the
Aggregation.false indicates
Aggregation should not be applied to this field; In Looker
Studio Aggregation is set to Auto by default and the
user can't change the Aggregation.Default value is true .Note: This property only affects metric fields. |
ConceptType
The values for semantic concept types can be one of the following:
Enum Value | Description |
---|---|
DIMENSION |
A dimension. Dimensions are data categories with values such as names, descriptions or other characteristics of a category. |
METRIC |
A metric. Metrics measure dimension values and represent measurements such as a sum, count, ratio, etc. |
DataType
The values for schema data types can be one of the following:
Enum Value | Description |
---|---|
STRING |
An arbitrary string. Defined by the JSON Schema spec. |
NUMBER |
A numeric data type in the double-precision 64-bit floating point format (IEEE 754). |
BOOLEAN |
A boolean value, either true or false . Defined by the JSON Schema spec. |
SemanticType
Enum Value | Description | Example |
---|---|---|
YEAR |
YYYY |
"2017" |
YEAR_QUARTER |
YYYYQ |
"20171" |
YEAR_MONTH |
YYYYMM |
"201703" |
YEAR_WEEK |
YYYYww |
"201707" |
YEAR_MONTH_DAY |
YYYYMMDD |
"20170317" |
YEAR_MONTH_DAY_HOUR |
YYYYMMDDHH |
"2017031403" |
YEAR_MONTH_DAY_SECOND |
YYYYMMDDHHMMSS |
"20170314031545" |
QUARTER |
(1, 2, 3, 4) |
"1" |
MONTH |
MM |
"03" |
WEEK |
ww |
"07" |
MONTH_DAY |
MMDD |
"0317" |
DAY_OF_WEEK
|
A decimal number 0-6 with 0 representing Sunday | "0"
|
DAY |
DD |
"17" |
HOUR |
HH |
"02" |
MINUTE |
mm |
"12" |
DURATION
|
A Duration of Time (in seconds) | 6340918234
|
COUNTRY |
Country | "United States" |
COUNTRY_CODE |
Country Code | "US" |
CONTINENT |
Continent | "Americas" |
CONTINENT_CODE |
Continent Code | "019" |
SUB_CONTINENT |
Sub Continent | "North America" |
SUB_CONTINENT_CODE |
Sub Continent Code | "003" |
REGION |
Region | "California" |
REGION_CODE |
Region Code | "CA" |
CITY |
City | "Mountain View" |
CITY_CODE |
City Code | "1014044" |
METRO_CODE |
Metro Code | "200807" |
LATITUDE_LONGITUDE
|
Latitude and Longitude | "51.5074, -0.1278"
|
NUMBER |
Decimal Number | 14 |
PERCENT
|
Decimal percentage (can be over 1.0) | 1.0
|
TEXT |
Free form text | "Here is some text" |
BOOLEAN |
true or false |
true |
URL |
A URL as text | "https://www.google.com" |
Formula Semantic Types
Enum Value | Description | Formula |
---|---|---|
HYPERLINK |
A link with a text label | "HYPERLINK($url, $description)" |
IMAGE |
A URL of an image | "IMAGE($image_url, $alt_text)" |
IMAGELINK |
A link with an image label | "HYPERLINK($url, $image_field)" |
Currency Semantic Types
All currency values are JavaScript numbers. Negative values are permitted.
Enum Value | Description |
---|---|
CURRENCY_AED |
United Arab Emirates Dirham (dh) |
CURRENCY_ALL |
Albanian Lek (Lek) |
CURRENCY_ARS |
Argentine Pesos ($) |
CURRENCY_AUD |
Australian Dollar ($) |
CURRENCY_BDT |
Bangladeshi Taka (৳) |
CURRENCY_BGN |
Bulgarian Lev (lev) |
CURRENCY_BOB |
Bolivian Boliviano (Bs) |
CURRENCY_BRL |
Brazilian Real (R$) |
CURRENCY_CAD |
Canadian Dollar ($) |
CURRENCY_CDF |
Congolese Franc (FrCD) |
CURRENCY_CHF |
Swiss Franc (CHF) |
CURRENCY_CLP |
Chilean Peso ($) |
CURRENCY_CNY |
Chinese Yuan (¥) |
CURRENCY_COP |
Colombian Peso ($) |
CURRENCY_CRC |
Costa Rican Colon (₡) |
CURRENCY_CZK |
Czech Koruna (Kč) |
CURRENCY_DKK |
Danish Krone (kr.) |
CURRENCY_DOP |
Dominican Peso (RD$) |
CURRENCY_EGP |
Egyptian Pound (£) |
CURRENCY_ETB |
Ethiopian Birr (Birr) |
CURRENCY_EUR |
Euro (€) |
CURRENCY_GBP |
British Pound Sterling (£) |
CURRENCY_HKD |
Hong Kong Dollar ($) |
CURRENCY_HRK |
Croatian Kuna (kn) |
CURRENCY_HUF |
Hungarian Forint (Ft) |
CURRENCY_IDR |
Indonesian Rupiah (Rp) |
CURRENCY_ILS |
Israeli New Sheqel (₪) |
CURRENCY_INR |
Indian Rupee (₹) |
CURRENCY_IRR |
Iranian Rial (Rial) |
CURRENCY_ISK |
Icelandic Krona (kr) |
CURRENCY_JMD |
Jamaican Dollar ($) |
CURRENCY_JPY |
Japanese Yen (¥) |
CURRENCY_KRW |
South Korean Won (₩) |
CURRENCY_LKR |
Sri Lankan Rupee (Rs) |
CURRENCY_LTL |
Lithuanian Litas (Lt) |
CURRENCY_MNT |
Mongolian Tugrik (₮) |
CURRENCY_MVR |
Maldivian Rufiyaa (Rf) |
CURRENCY_MXN |
Mexican Peso ($) |
CURRENCY_MYR |
Malaysian Ringgit (RM) |
CURRENCY_NOK |
Norwegian Krone (kr) |
CURRENCY_NZD |
New Zealand Dollars ($) |
CURRENCY_PAB |
Panamanian Balboa (B/.) |
CURRENCY_PEN |
Peruvian Nuevo Sol (S/.) |
CURRENCY_PHP |
Philippine Peso (₱) |
CURRENCY_PKR |
Pakistani Rupee (Rs) |
CURRENCY_PLN |
Polish Zloty (zł) |
CURRENCY_RON |
Romanian Leu (RON) |
CURRENCY_RSD |
Serbian Dinar (din) |
CURRENCY_RUB |
Russian Ruble (₽) |
CURRENCY_SAR |
Saudi Riyal (Rial) |
CURRENCY_SEK |
Swedish Krona (kr) |
CURRENCY_SGD |
Singapore Dollar ($) |
CURRENCY_THB |
Thai Baht (฿) |
CURRENCY_TRY |
Turkish Lira (₺) |
CURRENCY_TWD |
New Taiwan Dollar (NT$) |
CURRENCY_TZS |
Tanzanian Shilling (TSh) |
CURRENCY_UAH |
Ukrainian Hryvnia (грн.) |
CURRENCY_USD |
US Dollar ($) |
CURRENCY_UYU |
US Dollar ($) |
CURRENCY_VEF |
Uruguayan Peso ($) |
CURRENCY_VND |
Venezuela Bolivar Fuerte (Bs) |
CURRENCY_YER |
Vietnamese Dong (₫) |
CURRENCY_ZAR |
Yemeni Rial (Rial) |
SemanticGroup
This is only a list of suggested values, you are free to choose values outside
this list. However, setting this field will not override the group that Looker
Studio uses in the Type
option for the fields editor.
Suggested Value | Description |
---|---|
NUMERIC |
Numeric group |
DATETIME |
DateTime group |
GEO |
Geo Group |
CURRENCY |
Currency Group |
DefaultAggregationType
Enum Value | Description |
---|---|
AVG |
The numerical average (mean) of the entries. |
COUNT |
The number of entries. |
COUNT_DISTINCT |
The number of distinct entries. |
MAX |
The maximum of the entries. |
MIN |
The minimum of the entries. |
SUM |
The sum of the entries. |
NONE |
No aggregation |
AUTO |
Should be set for calculated fields involving an aggregation |
AuthType
The values for authentication method type can be one of the following:
Enum Value | Description |
---|---|
NONE
|
Indicates there is no authentication required for the connector. |
OAUTH2 |
Indicates the connector uses OAuth 2.0. |
KEY |
Indicates the connector uses API key. |
USER_PASS |
Indicates the connector uses username/password. |
USER_TOKEN |
Indicates the connector uses username/token. |
PATH_USER_PASS |
Indicates the connector uses path/username/password. |
PATH_KEY |
Indicates the connector uses path/key. |
ConfigType
The values for configuration form element types can be one of the following:
Enum Value | Description |
---|---|
TEXTINPUT |
The input element will be a single-line text box. |
TEXTAREA |
The input element will be a multi-line textarea box. |
SELECT_SINGLE |
The input element will be a dropdown for single-select options. |
SELECT_MULTIPLE |
The input element will be a dropdown for multi-select options. |
CHECKBOX |
The input element will be a single checkbox that can be used to capture boolean values. |
INFO |
This is a static plain-text box that can be used to provide instructions or information to the user. Any links will be clickable. |
Filter Operator
Operator |
---|
EQUALS |
CONTAINS |
REGEXP_PARTIAL_MATCH |
REGEXP_EXACT_MATCH |
IN_LIST |
IS_NULL |
BETWEEN |
NUMERIC_GREATER_THAN |
NUMERIC_GREATER_THAN_OR_EQUAL |
NUMERIC_LESS_THAN |
NUMERIC_LESS_THAN_OR_EQUAL |
EQUALS
The comparison value exactly matches the dimension value.
Example clause:
{
"operator": "EQUALS",
"type": "INCLUDE",
"values": ["USA"],
"fieldName": "Country"
}
Data before applying filter:
Country | City |
---|---|
USA | Seattle |
CA | Montreal |
ROK | Seoul |
Data after applying filter:
Country | City |
---|---|
USA | Seattle |
CONTAINS
The comparison value is contained within the dimension value.
Example clause:
{
"operator": "CONTAINS",
"type": "INCLUDE",
"values": ["A"],
"fieldName": "COUNTRY"
}
Data before applying filter:
Country | City |
---|---|
USA | Seattle |
CA | Montreal |
ROK | Seoul |
Data after applying filter:
Country | City |
---|---|
USA | Seattle |
CA | Montreal |
REGEXP_PARTIAL_MATCH
The dimension value contains the regular expression.
Example clause:
{
"operator": "REGEXP_PARTIAL_MATCH",
"type": "INCLUDE",
"values": ["(?i)R[A-Z]*"],
"fieldName": ""
}
Data before applying filter:
Country | City |
---|---|
USA | Seattle |
CA | Montreal |
ROK | Seoul |
RU | Moscow |
Data after applying filter:
Country | City |
---|---|
ROK | Seoul |
RU | Moscow |
REGEXP_EXACT_MATCH
The dimension value matches the regular expression.
Example clause:
{
"operator": "REGEXP_EXACT_MATCH",
"type": "INCLUDE",
"values": ["^R[A-Z]*K$"],
"fieldName": ""
}
Data before applying filter:
Country | City |
---|---|
USA | Seattle |
CA | Montreal |
ROK | Seoul |
RU | Moscow |
Data after applying filter:
Country | City |
---|---|
ROK | Seoul |
IN_LIST
One or more of the comparison values exactly matches the dimension value.
Example clause:
{
"operator": "IN_LIST",
"type": "INCLUDE",
"values": ["USA", "CA"],
"fieldName": "Country"
}
Data before applying filter:
Country | City |
---|---|
USA | Seattle |
CA | Montreal |
ROK | Seoul |
Data after applying filter:
Country | City |
---|---|
USA | Seattle |
CA | Montreal |
IS_NULL
Matches if the dimension value is null.
Example clause:
{
"operator": "IS_NULL",
"type": "INCLUDE",
"values": [],
"fieldName": "COUNTRY"
}
Data before applying filter:
Country | City |
---|---|
USA | Seattle |
CA | Montreal |
ROK | Seoul |
RU | Moscow |
Terabithia |
Data after applying filter:
Country | City |
---|---|
Terabithia |
BETWEEN
Matches if the dimension value is between the two test values.
Example clause:
{
"operator": "BETWEEN",
"type": "INCLUDE",
"values": ["20190101", "20190131"],
"fieldName": "Date"
}
Data before applying filter:
Country | Date |
---|---|
USA | 20190101 |
USA | 20190111 |
USA | 20190201 |
Data after applying filter:
Country | Date |
---|---|
USA | 20190101 |
USA | 20190111 |
NUMERIC_GREATER_THAN
Matches if the dimension value is greater than the test value.
Example clause:
{
"operator": "NUMERIC_GREATER_THAN",
"type": "INCLUDE",
"values": ["20190101"],
"fieldName": "Date"
}
Data before applying filter:
Country | Date |
---|---|
USA | 20190101 |
USA | 20190111 |
USA | 20190201 |
Data after applying filter:
Country | Date |
---|---|
USA | 20190111 |
USA | 20190201 |
NUMERIC_GREATER_THAN_OR_EQUAL
Matches if the dimension value is greater than or equal to the test value.
Example clause:
{
"operator": "NUMERIC_GREATER_THAN_OR_EQUAL",
"type": "INCLUDE",
"values": ["20190101"],
"fieldName": "Date"
}
Data before applying filter:
Country | Date |
---|---|
USA | 20180101 |
USA | 20190101 |
USA | 20190111 |
USA | 20190201 |
Data after applying filter:
Country | Date |
---|---|
USA | 20190101 |
USA | 20190111 |
USA | 20190201 |
NUMERIC_LESS_THAN
Matches if the dimension value is less than or equal to the test value.
Example clause:
{
"operator": "NUMERIC_LESS_THAN",
"type": "INCLUDE",
"values": ["20190101"],
"fieldName": "Date"
}
Data before applying filter:
Country | Date |
---|---|
USA | 20180101 |
USA | 20190101 |
USA | 20190111 |
USA | 20190201 |
Data after applying filter:
Country | Date |
---|---|
USA | 20180101 |
NUMERIC_LESS_THAN_OR_EQUAL
Matches if the dimension value is less than or equal to the test value.
Example clause:
{
"operator": "NUMERIC_LESS_THAN_OR_EQUAL",
"type": "INCLUDE",
"values": ["20190101"],
"fieldName": "Date"
}
Data before applying filter:
Country | Date |
---|---|
USA | 20180101 |
USA | 20190101 |
USA | 20190111 |
USA | 20190201 |
Data after applying filter:
Country | Date |
---|---|
USA | 20180101 |
USA | 20190101 |