Справочник по API коннектора сообщества

Требуемые функции

getConfig()

Возвращает настраиваемые пользователем параметры соединителя.

Запрос

@param {Object} request Объект JavaScript, содержащий параметры запроса конфигурации.

Объект JavaScript параметра содержит данные следующей структуры:

{
  languageCode: string
}
Имя поля Тип Описание
languageCode string Код, представляющий язык пользователя. Этот код можно дополнительно использовать для возврата локализованной версии параметров конфигурации для пользователя. См. полный список поддерживаемых языков и кодов .
configParams объект Присутствует, если предыдущий вызов getConfig() имел .setIsSteppedConfig(true) . Объект, содержащий значения конфигурации, предоставленные пользователем на данный момент.
Пример запроса

Пример запроса getConfig для пользователя, у которого установлен итальянский язык:

{
  languageCode: "it"
}

Ответ

Сервис студии Looker

@return {object} Объект JavaScript, представляющий конфигурацию для данного запроса.

Пример
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();
}

Наследие

@return {object} Объект JavaScript, представляющий конфигурацию соединителя, которая должна отображаться пользователю.

В ответе содержится конфигурация коннектора следующей структуры:

  {
    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
  }

Имя поля Тип Описание
configParams[] object Пользователь предоставил значения, необходимые для соединителя. Каждый элемент представляет поле пользовательского ввода.
configParams[].type string ( ConfigType ) Тип поля ввода.
configParams[].name string Идентификатор поля ввода.
Это должна быть непустая строка без пробелов.
configParams[].displayName string Текстовая метка для поля ввода.
configParams[].helpText string Текст, отображаемый для предоставления пользователю дополнительной информации об ожидаемом значении поля.
configParams[].placeholder string Используется только в том случае, если type TEXTINPUT или TEXTAREA
Текст-заполнитель, который будет использоваться в качестве краткой подсказки для описания ожидаемого значения поля ввода.
configParams[].isDynamic boolean Будет ли это поле использоваться для динамического заполнения последующих записей конфигурации. По умолчанию false
configParams[].parameterControl.allowOverride boolean Включает переопределение параметра. Если установлено значение true , создатели источников данных могут включить это для редакторов отчетов.
Значение по умолчанию allowOverridefalse . Если вы не хотите включать переопределение параметра, вы можете опустить allowOverride .
configParams[].options[] list Используется только type SELECT
Это предоставляет список всех опций.
options[].label string Метка параметра.
options[].value string Стоимость опции.
Это должна быть непустая строка без пробелов и запятых.
dateRangeRequired boolean Если true , для запросов getData() предоставляется диапазон дат. По умолчанию в качестве диапазона дат выбраны последние 28 дней, исключая today . Это необходимо установить для API данных, которым требуется диапазон дат для сопровождения запросов, и его следует установить, если запросы к API данных могут быть более эффективными из-за ограничения диапазона дат. По умолчанию установлено значение false .
isSteppedConfig boolean Если true , Looker Studio предложит пользователю ответить на текущий набор вопросов о конфигурации, а затем вернет ответы на эти вопросы при последующих вызовах getConfig() . Если значение false (по умолчанию), пользователь сможет нажать «Подключиться» и перейти на страницу схемы.

Пример ответа

В следующем примере показана конфигурация однострочного текстового поля, текстовой области, однократного выбора, множественного выбора, флажка и информационного поля. Значение одиночного выбора можно переопределить в отчетах.

  {
    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()

Возвращает схему для данного запроса. Это предоставляет информацию о том, как организованы данные соединителя. Для каждого поля он включает такие сведения, как идентификаторы, имена, типы данных и т. д.

Запрос

@param {Object} request Объект JavaScript, содержащий параметры запроса схемы.

Объект JavaScript параметра содержит данные следующей структуры:

{
  "configParams": object
}
Имя поля Тип Описание
configParams Object Объект JavaScript, содержащий предоставленные пользователем значения для параметров конфигурации, определенных соединителем.
Пример запроса

Пример объекта запроса getSchema :

{
  "configParams": {
    "exampleSelectMultiple": "foobar,amet",
    "exampleSelectSingle": "ipsum",
    "exampleTextInput": "Lorem Ipsum Dolor Sit Amet",
    "exampleTextArea": "NA",
    "exampleCheckbox": "true"
  }
}

Ответ

Сервис студии Looker

@return {object} Объект JavaScript, представляющий схему для данного запроса.

Пример
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() };
}

Большой запрос

@return {object} Объект JavaScript, представляющий конфигурацию запроса BigQuery.

Пример
var bqTypes = DataStudioApp.createCommunityConnector().BigQueryParameterType;
var configuration = DataStudioApp.createCommunityConnector().newBigQueryConfig()
    .setBillingProjectId('billingProjectId')
    .setQuery('myQueryString')
    .setUseStandardSql(true)
    .setAccessToken('myAccessToken')
    .addQueryParameter('myUrlParameterName', bqTypes.STRING, 'myUrlParameterValue')
    .build();

Наследие

@return {object} Объект JavaScript, представляющий схему для данного запроса.

Функция возвращает схему следующей структуры:

  {
    "schema": [
      {
        object(Field)
      }
    ]
  }

Имя поля Тип Описание
schema[] object( Field ) Схема для данного запроса, которая включает сведения о каждом поле.

Пример ответа

  {
    "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
        }
      }
    ]
  }

получить данные()

Возвращает табличные данные для данного запроса.

Запрос

@param {Object} request Объект JavaScript, содержащий параметры запроса данных.

Параметр request содержит предоставленные пользователем значения и дополнительную информацию, которую можно использовать для выполнения запроса данных. Он имеет следующую структуру:

{
  "configParams": object,
  "scriptParams": {
    "sampleExtraction": boolean,
    "lastRefresh": string
  },
  "dateRange": {
    "startDate": string,
    "endDate": string
  },
  "fields": [
    {
      "name": string
    }
  ],
  "dimensionsFilters": [
    [{
      "fieldName": string,
      "values": string[],
      "type": DimensionsFilterType,
      "operator": Operator
    }]
  ]
}
Имя Тип Описание
configParams object Объект, содержащий предоставленные пользователем значения для параметров конфигурации, определенных соединителем.
scriptParams Скриптпарамс Объект, содержащий информацию, необходимую для выполнения соединителя.
dateRange Диапазон дат По умолчанию предоставленный диапазон дат будет составлять последние 28 дней, исключая сегодняшний день. Если пользователь применит к отчету фильтр диапазона дат, предоставленный диапазон дат будет отражать выбор пользователя.
Если для sampleExtraction установлено значение true**, дата на два дня раньше, чем сегодня, задается как дата начала, так и дата окончания.
fields[].name string Имена запрошенных полей.
fields[].forFilterOnly boolean Отмечает поле, используемое только для фильтрации запроса. Не возвращайте поле, если ваш соединитель применяет фильтры .
dimensionsFilters РазмерыФильтры Вложенный массив выбранных пользователем фильтров. Самые внутренние массивы должны быть объединены OR , самые внешние массивы должны быть объединены AND

диапазон дат

Имя Тип Описание
startDate string Дата начала фильтрации данных. Применяется только в том случае, если для параметра dateRangeRequired установлено значение true . Он будет в формате YYYY-MM-DD .
endDate string Дата окончания фильтрации данных. Применяется только для параметра dateRangeRequired установлено значение true . Он будет в формате YYYY-MM-DD .

скриптПарамс

Имя Тип Описание
sampleExtraction boolean Если true , запрос getData() предназначен для автоматического определения семантического типа .
lastRefresh string Временная метка, отмечающая самый последний запрос на обновление данных.

размерыФильтры

имя тип описание
fieldName string Имя поля для фильтрации
values string[] Массив значений, используемый оператором.
type "INCLUDE" | "EXCLUDE" Следует ли включать или исключать данные, соответствующие этому фильтру, из ответа getData() .
operator ФильтрОператор Оператор для подачи заявки
Пример запроса
{
  "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"}
  ]
}

Ответ

По умолчанию

@return {object} Объект JavaScript, содержащий схему и данные для данного запроса.

Функция возвращает табличные данные, удовлетворяющие заданному запросу. Схема табличных данных включена в ответ. Ожидается, что ответ будет иметь следующую структуру:

  {
    "schema": [
      {
        object(Field)
      }
    ],
    "rows": [
      {
        "values": [
          string
        ]
      }
    ]
  }
Имя Тип Описание
schema Поле [] Схема для запрошенных полей. field.name и field.dataType являются обязательными. Порядок объекта field должен соответствовать порядку значений в каждой строке.
rows[].values[] string | number | boolean Значения запрошенных полей.
Порядок значений должен соответствовать порядку Fields , определенных в schema
filtersApplied boolean Установите значение true, если все фильтры были успешно применены, в противном случае — значение false.

Поле

Имя Тип Описание
name string Имя поля.
dataType Тип данных Тип поля.
Пример
{
  "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
}

Большой запрос

@return {object} Объект JavaScript, представляющий конфигурацию запроса BigQuery.

Пример
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()

Возвращает метод аутентификации соединителя.

Запрос

Эта функция не принимает никаких аргументов.

Ответ

Сервис студии Looker

@return {object} Объект, содержащий AuthType используемый соединителем. Если AuthType является одним из USER_TOKEN , USER_PASS , KEY , PATH_USER_PASS или PATH_KEY , также можно установить необязательный helpUrl .

Пример
function getAuthType() {
  var cc = DataStudioApp.createCommunityConnector();
  return cc.newAuthTypeResponse()
    .setAuthType(cc.AuthType.USER_PASS)
    .setHelpUrl('https://www.example.org/connector-auth-help')
    .build();
}

Наследие

@return {object} Объект, содержащий AuthType используемый соединителем. Если AuthType является одним из USER_TOKEN , USER_PASS , KEY , PATH_USER_PASS или PATH_KEY , также можно установить необязательный helpUrl .

Ответ имеет следующую структуру:

 {
   "type": string(AuthType),
   "helpUrl": string
 }

Имя поля Тип Описание
type string( AuthType ) Значение типа аутентификации.
helpUrl string Необязательный URL-адрес, который будет показан пользователю, если type является одним из USER_TOKEN , USER_PASS , KEY , PATH_USER_PASS или PATH_KEY . Этот URL-адрес должен указывать на страницу, где пользователи могут узнать подробности о проверке подлинности соединителя.

Пример ответа
{
  "type": "USER_TOKEN",
  "helpUrl": "https://www.example.org/connector-auth-help"
}

Требуемые функции аутентификации

isAuthValid()

Проверяет, действительны ли учетные данные сторонней службы.

Запрос

Эта функция формально не принимает никаких аргументов.

Ответ

@return {boolean} Возвращает true если учетные данные сторонней службы действительны, в противном случае false . Если это true , ожидается, что вызовы getData и getSchema будут авторизованы. Если false то пользователь, скорее всего, будет уведомлен о том, что срок действия аутентификации истек, и ему будет предложено повторно авторизоваться.

сбросАутентификация()

Очищает учетные данные пользователя для сторонней службы.

Запрос

Эта функция формально не принимает никаких аргументов.

Ответ

Ответ пустой.

Необходимые функции OAuth2

get3PAuthorizationUrls()

Возвращает URL-адрес авторизации для инициирования потока OAuth 2.0 для сторонней службы.

Запрос

Эта функция формально не принимает никаких аргументов.

Ответ

@return {string} Возвращает URL-адрес авторизации для стороннего сервиса. URL-адрес авторизации будет предоставлен пользователю для инициирования потока OAuth 2.0 для предоставления доступа к сторонней службе.

authCallback()

Обрабатывает ответ авторизации, полученный от сторонней службы в рамках процесса авторизации OAuth 2.0.

Запрос

@param {string} request Объект в кодировке JSON, представляющий данные запроса после завершения потока OAuth 2.0.

Ожидается, что параметр request после завершения потока OAuth 2.0 будет содержать данные следующей структуры (ниже приведены два представления: одно для успешного запроса, а другое для неудачного запроса):

// Success
{
  "parameter":
    {
      "code": string
    }
}

// Error
{
  "parameter":
    {
      "error": string
    }
}
Имя поля Тип Описание
parameter object code или значения error из успешного или неудачного потока OAuth 2.0. Эти значения можно использовать для дальнейшей обработки обратного вызова.
code string При успешном выполнении потока OAuth 2.0 он будет присутствовать и содержать значение параметра запроса code из запроса обратного вызова OAuth 2.0, полученного от сторонней службы. Это код авторизации, который можно использовать для дальнейшей обработки OAuth 2.0.
error object При неудачной попытке потока OAuth 2.0 он будет присутствовать и содержать значение параметра запроса error из запроса обратного вызова OAuth 2.0, полученного от сторонней службы. Это сообщение об ошибке, которое можно использовать для дальнейшей обработки OAuth 2.0 и создания уведомлений.

Ответ

@return {object} Возвращает объект HTML, который будет обработан и показан пользователю. Для получения более подробной информации просмотрите документацию по библиотеке Oauth , а также документацию по службе Apps Script HTML .

Требуемые функции пользователя/пароля и ключа

setCredentials()

Сохраняет учетные данные, переданные из Looker Studio.

Запрос

@param {Object} request Объект JavaScript, содержащий параметры запроса данных.

Параметр request содержит учетные данные, введенные пользователем. Он будет иметь один из pathUserPass , pathKey , userPass , userToken или набор key в зависимости от ответа 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
}
Имя поля Тип
pathUserPass.path Путь, указанный пользователем.
pathUserPass.username Имя пользователя, предоставленное пользователем.
pathUserPass.password Пароль, предоставленный пользователем.
pathKey.path Путь, указанный пользователем.
pathKey.key Ключ API или токен, предоставленный пользователем.
userPass.username Имя пользователя, предоставленное пользователем.
userPass.password Пароль, предоставленный пользователем.
userToken.username Имя пользователя, предоставленное пользователем.
userToken.token Токен, предоставленный пользователем.
key Ключ API или токен, предоставленный пользователем.

Ответ

@return {object} Объект JavaScript, содержащий код ошибки, указывающий, удалось ли успешно установить учетные данные.

{
  "errorCode": string("NONE" | "INVALID_CREDENTIALS")
}
Имя поля Тип Описание
errorCode enum(string) Код ошибки для вызова setCredentials.
Название кода ошибки Описание
"NONE" Учетные данные удалось успешно установить.
"INVALID_CREDENTIALS" Предоставленные учетные данные недействительны.
Пример ответа
{
  "errorCode": "NONE"
}

Дополнительные функции

isAdminUser()

Проверяет, является ли пользователь администратором соединителя. Эта функция используется для включения/отключения функций отладки. Дополнительные сведения см. в разделе Включение/отключение функций отладки .

Запрос

Эта функция не принимает никаких аргументов.

Ответ

@return {boolean} Возвращает true , если пользователь является администратором соединителя. Если функция опущена или возвращает false , то пользователь не будет считаться администратором. Дополнительные сведения см. в разделе Включение/отключение функций отладки .

Типы данных

Поле

Сервис студии Looker

См. «Поле класса» для получения информации обо всех методах, существующих для этого типа поля.

Создание поля

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');

Наследие

Описывает конкретное поле записи/строки как часть схемы.

Каждое поле имеет следующую структуру:

{
  "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
  }
}
Имя поля Тип Описание
name string Имя поля.
Он используется как уникальный идентификатор. Разрешены только буквенно-цифровые символы и символы подчеркивания.
label string Отображаемое имя поля. Оно используется как «дружественное» имя в пользовательском интерфейсе.
description string Необязательное описание поля. Разрешен только простой текст.
dataType string( DataType ) Тип данных для поля.
isHidden boolean Необязательное свойство. Установите значение true , чтобы скрыть поле. Скрытые поля не отображаются на экране полей или в качестве поля выбора для диаграмм, но их можно использовать в формулах вычисляемых полей. Поля формул не могут быть скрыты.
group string Необязательное свойство, указывающее, что поле принадлежит группе. Если оба fieldA и fieldB принадлежат groupC , они будут сгруппированы вместе в «Выборе показателей» или «Выборе измерений» пользовательского интерфейса. Если группа определена хотя бы для одного поля, то полям без группы присваивается группа Default Group .
formula string

Необязательное свойство, определяющее способ вычисления поля. Если формула недействительна, поле удаляется. Если указаны оба свойства агрегации ( isReaggregatable и defaultAggregationType ) и formula , то свойства агрегации игнорируются.

Только определенные semanticType работают с полем formula . Как правило, лучше всего, если это текст или число, за исключением date и geo . Если текстовый вывод даты или географической формулы соответствует семантическому типу, то можно использовать этот семантический тип. В противном случае семантический тип должен быть string .

Если вы зададите это поле вручную, то его нельзя будет редактировать в редакторе полей. Более подробную информацию о создании формул см. в разделе О вычисляемых полях .

isDefault boolean Необязательное свойство, указывающее, следует ли выбрать одно поле в качестве dimension или metric по умолчанию. Для схемы следует определить только одно dimension по умолчанию и одну metric по умолчанию.
defaultAggregationType string( DefaultAggregationType ) Необязательное свойство, указывающее, какое агрегирование Looker Studio должно использовать по умолчанию для этого поля. Пользователи могут изменить это значение.
semantics object Свойства для предоставления семантической информации о поле. Если это свойство (и semantics.semanticType ) присутствует в любом из полей схемы, автоматическое определение семантики отключается. Если это свойство отсутствует во всех полях, будет включено автоматическое семантическое определение .
semantics.conceptType string( ConceptType ) Указывает, является ли поле измерением или показателем.
semantics.semanticType string( SemanticType ) Семантический тип поля. Если предусмотрено, автоматическое семантическое определение отключено.
semantics.semanticGroup string( SemanticGroup ) Семантическая группа поля. Это необязательное свойство позволяет группировать семантические типы. Looker Studio в настоящее время не использует это поле, но может в будущем.
semantics.isReaggregatable boolean true указывает, что к этому полю можно применить агрегацию ; В Looker Studio по умолчанию для агрегации установлено значение SUM , и пользователь может изменить агрегацию .
false указывает, что к этому полю не следует применять агрегирование ; В Looker Studio для агрегации по умолчанию установлено значение «Авто» , и пользователь не может изменить агрегацию .
Значение по умолчанию — true .
Примечание. Это свойство влияет только на поля показателей.

Тип концепции

Значения для типов семантических понятий могут быть одним из следующих:

Перечисляемое значение Описание
DIMENSION Измерение. Измерения — это категории данных со значениями, такими как имена, описания или другие характеристики категории.
METRIC Метрика. Метрики измеряют значения измерений и представляют собой такие измерения, как сумма, количество, соотношение и т. д.

Тип данных

Значения типов данных схемы могут быть одним из следующих:

Перечисляемое значение Описание
STRING Произвольная строка. Определено спецификацией JSON Schema.
NUMBER Числовой тип данных в 64-битном формате двойной точности с плавающей запятой (IEEE 754).
BOOLEAN Логическое значение: true или false . Определено спецификацией JSON Schema.

Семантический тип

Перечисляемое значение Описание Пример
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 Десятичное число от 0 до 6, где 0 представляет воскресенье. "0"
DAY DD "17"
HOUR HH "02"
MINUTE mm "12"
DURATION Продолжительность времени (в секундах) 6340918234
COUNTRY Страна "United States"
COUNTRY_CODE Код страны "US"
CONTINENT Континент "Americas"
CONTINENT_CODE Код континента "019"
SUB_CONTINENT Субконтинент "North America"
SUB_CONTINENT_CODE Кодекс субконтинента "003"
REGION Область "California"
REGION_CODE Код региона "CA"
CITY Город "Mountain View"
CITY_CODE Код города "1014044"
METRO_CODE Код метро "200807"
LATITUDE_LONGITUDE Широта и долгота "51.5074, -0.1278"
NUMBER Десятичное число 14
PERCENT Десятичный процент (может быть больше 1,0) 1.0
TEXT Текст в произвольной форме "Here is some text"
BOOLEAN true или false true
URL URL-адрес в виде текста "https://www.google.com"

Семантические типы формул

Перечисляемое значение Описание Формула
HYPERLINK Ссылка с текстовой меткой "HYPERLINK($url, $description)"
IMAGE URL-адрес изображения "IMAGE($image_url, $alt_text)"
IMAGELINK Ссылка с меткой изображения "HYPERLINK($url, $image_field)"

Семантические типы валют

Все значения валют представляют собой числа JavaScript. Отрицательные значения допускаются.

Перечисляемое значение Описание
CURRENCY_AED Дирхам ОАЭ (dh)
CURRENCY_ALL Албанский лек (Лек)
CURRENCY_ARS Аргентинское песо ($)
CURRENCY_AUD Австралийский доллар ($)
CURRENCY_BDT Бангладешская така (৳)
CURRENCY_BGN Болгарский лев (lev)
CURRENCY_BOB Боливийский боливиано (Bs)
CURRENCY_BRL Бразильский реал (R$)
CURRENCY_CAD Канадский доллар ($)
CURRENCY_CDF Конголезский франк (FrCD)
CURRENCY_CHF Швейцарский франк (CHF)
CURRENCY_CLP Чилийское песо ($)
CURRENCY_CNY Китайский юань (¥)
CURRENCY_COP Колумбийское песо ($)
CURRENCY_CRC Костариканский колон (₡)
CURRENCY_CZK Чешская крона (Kč)
CURRENCY_DKK Датская крона (кр.)
CURRENCY_DOP Доминиканское песо (RD$)
CURRENCY_EGP Египетский фунт (£)
CURRENCY_ETB Эфиопский быр (Бирр)
CURRENCY_EUR Евро (€)
CURRENCY_GBP Британский фунт стерлингов (£)
CURRENCY_HKD Гонконгский доллар ($)
CURRENCY_HRK Хорватская куна (кн)
CURRENCY_HUF Венгерский форинт (Ft)
CURRENCY_IDR Индонезийская рупия (Rp)
CURRENCY_ILS Израильский новый шекель (₪)
CURRENCY_INR Индийская рупия (₹)
CURRENCY_IRR Иранский риал (Риал)
CURRENCY_ISK Исландская крона (kr)
CURRENCY_JMD Ямайский доллар ($)
CURRENCY_JPY Японская иена (¥)
CURRENCY_KRW Южнокорейская вона (₩)
CURRENCY_LKR Шриланкийская рупия (рупий)
CURRENCY_LTL Литовский лит (Lt)
CURRENCY_MNT Монгольский тугрик (₮)
CURRENCY_MVR Мальдивская Руфия (Рф)
CURRENCY_MXN Мексиканское песо ($)
CURRENCY_MYR Малайзийский ринггит (RM)
CURRENCY_NOK Норвежская крона (кр)
CURRENCY_NZD Новозеландские доллары ($)
CURRENCY_PAB Панамский Бальбоа (Б/.)
CURRENCY_PEN Перуанское Нуэво-Соль (S/.)
CURRENCY_PHP Филиппинское песо (₱)
CURRENCY_PKR Пакистанская рупия (рупий)
CURRENCY_PLN Польский злотый (zł)
CURRENCY_RON Румынский лей (RON)
CURRENCY_RSD Сербский динар (din)
CURRENCY_RUB Российский рубль (₽)
CURRENCY_SAR Саудовский риал (Риал)
CURRENCY_SEK Шведская крона (кр)
CURRENCY_SGD Сингапурский доллар ($)
CURRENCY_THB Тайский бат (฿)
CURRENCY_TRY Турецкая лира (₺)
CURRENCY_TWD Новый тайваньский доллар (NT$)
CURRENCY_TZS Танзанийский шиллинг (TSh)
CURRENCY_UAH Украинская гривна (грн.)
CURRENCY_USD Доллар США ($)
CURRENCY_UYU Доллар США ($)
CURRENCY_VEF Уругвайское песо ($)
CURRENCY_VND Венесуэла Боливар Фуэрте (Bs)
CURRENCY_YER Вьетнамский донг (₫)
CURRENCY_ZAR Йеменский риал (Риал)

Семантическая группа

Это всего лишь список предлагаемых значений. Вы можете выбирать значения за пределами этого списка. Однако установка этого поля не отменяет группу, которую Looker Studio использует в параметре Type редактора полей.

Рекомендуемое значение Описание
NUMERIC Числовая группа
DATETIME Группа ДатаВремя
GEO Гео Групп
CURRENCY Валютная группа

Тип DefaultAggregationType

Перечисляемое значение Описание
AVG Среднее числовое значение (среднее) записей.
COUNT Количество записей.
COUNT_DISTINCT Количество различных записей.
MAX Максимум записей.
MIN Минимум записей.
SUM Сумма записей.
NONE Нет агрегации
AUTO Должен быть установлен для вычисляемых полей, включающих агрегацию.

Тип аутентификации

Значения типа метода аутентификации могут быть одним из следующих:

Перечисляемое значение Описание
NONE Указывает, что для соединителя не требуется проверка подлинности.
OAUTH2 Указывает, что соединитель использует OAuth 2.0.
KEY Указывает, что соединитель использует ключ API.
USER_PASS Указывает, что соединитель использует имя пользователя и пароль.
USER_TOKEN Указывает, что соединитель использует имя пользователя/токен.
PATH_USER_PASS Указывает, что соединитель использует путь/имя пользователя/пароль.
PATH_KEY Указывает, что соединитель использует путь/ключ.

тип конфигурации

Значения типов элементов формы конфигурации могут быть одним из следующих:

Перечисляемое значение Описание
TEXTINPUT Элементом ввода будет однострочное текстовое поле.
TEXTAREA Элементом ввода будет многострочное textarea поле.
SELECT_SINGLE Элементом ввода будет раскрывающийся список для вариантов с одним выбором.
SELECT_MULTIPLE Элементом ввода будет раскрывающийся список для выбора нескольких вариантов.
CHECKBOX Элементом ввода будет один флажок, который можно использовать для захвата логических значений.
INFO Это статическое текстовое поле, которое можно использовать для предоставления инструкций или информации пользователю. Любые ссылки будут кликабельны.

Оператор фильтра

Оператор
РАВНО
СОДЕРЖИТ
REGEXP_PARTIAL_MATCH
REGEXP_EXACT_MATCH
В_СПИСОК
НУЛЕВОЙ
МЕЖДУ
NUMERIC_GREATER_THAN
NUMERIC_GREATER_THAN_OR_EQUAL
NUMERIC_LESS_THAN
NUMERIC_LESS_THAN_OR_EQUAL

EQUALS

Значение сравнения точно соответствует значению измерения.

Пример предложения:

{
    "operator": "EQUALS",
    "type": "INCLUDE",
    "values": ["USA"],
    "fieldName": "Country"
}

Данные перед применением фильтра:

Страна Город
США Сиэтл
Калифорния Монреаль
Республика Корея Сеул

Данные после применения фильтра:

Страна Город
США Сиэтл

CONTAINS

Значение сравнения содержится в значении измерения.

Пример предложения:

{
    "operator": "CONTAINS",
    "type": "INCLUDE",
    "values": ["A"],
    "fieldName": "COUNTRY"
}

Данные перед применением фильтра:

Страна Город
США Сиэтл
Калифорния Монреаль
Республика Корея Сеул

Данные после применения фильтра:

Страна Город
США Сиэтл
Калифорния Монреаль

REGEXP_PARTIAL_MATCH

Значение измерения содержит регулярное выражение.

Пример предложения:

{
    "operator": "REGEXP_PARTIAL_MATCH",
    "type": "INCLUDE",
    "values": ["(?i)R[A-Z]*"],
    "fieldName": ""
}

Данные перед применением фильтра:

Страна Город
США Сиэтл
Калифорния Монреаль
Республика Корея Сеул
RU Москва

Данные после применения фильтра:

Страна Город
Республика Корея Сеул
RU Москва

REGEXP_EXACT_MATCH

Значение измерения соответствует регулярному выражению.

Пример предложения:

{
    "operator": "REGEXP_EXACT_MATCH",
    "type": "INCLUDE",
    "values": ["^R[A-Z]*K$"],
    "fieldName": ""
}

Данные перед применением фильтра:

Страна Город
США Сиэтл
Калифорния Монреаль
Республика Корея Сеул
RU Москва

Данные после применения фильтра:

Страна Город
Республика Корея Сеул

IN_LIST

Одно или несколько значений сравнения точно соответствуют значению измерения.

Пример предложения:

{
    "operator": "IN_LIST",
    "type": "INCLUDE",
    "values": ["USA", "CA"],
    "fieldName": "Country"
}

Данные перед применением фильтра:

Страна Город
США Сиэтл
Калифорния Монреаль
Республика Корея Сеул

Данные после применения фильтра:

Страна Город
США Сиэтл
Калифорния Монреаль

IS_NULL

Соответствует, если значение измерения равно нулю.

Пример предложения:

{
    "operator": "IS_NULL",
    "type": "INCLUDE",
    "values": [],
    "fieldName": "COUNTRY"
}

Данные перед применением фильтра:

Страна Город
США Сиэтл
Калифорния Монреаль
Республика Корея Сеул
RU Москва
Терабития

Данные после применения фильтра:

Страна Город
Терабития

BETWEEN

Соответствует, если значение измерения находится между двумя тестовыми значениями.

Пример предложения:

{
    "operator": "BETWEEN",
    "type": "INCLUDE",
    "values": ["20190101", "20190131"],
    "fieldName": "Date"
}

Данные перед применением фильтра:

Страна Дата
США 20190101
США 20190111
США 20190201

Данные после применения фильтра:

Страна Дата
США 20190101
США 20190111

NUMERIC_GREATER_THAN

Соответствует, если значение измерения больше проверочного значения.

Пример предложения:

{
    "operator": "NUMERIC_GREATER_THAN",
    "type": "INCLUDE",
    "values": ["20190101"],
    "fieldName": "Date"
}

Данные перед применением фильтра:

Страна Дата
США 20190101
США 20190111
США 20190201

Данные после применения фильтра:

Страна Дата
США 20190111
США 20190201

NUMERIC_GREATER_THAN_OR_EQUAL

Соответствует, если значение измерения больше или равно проверочному значению.

Пример предложения:

{
    "operator": "NUMERIC_GREATER_THAN_OR_EQUAL",
    "type": "INCLUDE",
    "values": ["20190101"],
    "fieldName": "Date"
}

Данные перед применением фильтра:

Страна Дата
США 20180101
США 20190101
США 20190111
США 20190201

Данные после применения фильтра:

Страна Дата
США 20190101
США 20190111
США 20190201

NUMERIC_LESS_THAN

Соответствует, если значение измерения меньше или равно проверочному значению.

Пример предложения:

{
    "operator": "NUMERIC_LESS_THAN",
    "type": "INCLUDE",
    "values": ["20190101"],
    "fieldName": "Date"
}

Данные перед применением фильтра:

Страна Дата
США 20180101
США 20190101
США 20190111
США 20190201

Данные после применения фильтра:

Страна Дата
США 20180101

NUMERIC_LESS_THAN_OR_EQUAL

Соответствует, если значение измерения меньше или равно проверочному значению.

Пример предложения:

{
    "operator": "NUMERIC_LESS_THAN_OR_EQUAL",
    "type": "INCLUDE",
    "values": ["20190101"],
    "fieldName": "Date"
}

Данные перед применением фильтра:

Страна Дата
США 20180101
США 20190101
США 20190111
США 20190201

Данные после применения фильтра:

Страна Дата
США 20180101
США 20190101