Referencia de la API de conectores comunitarios

Funciones obligatorias

getConfig()

Devuelve al usuario las opciones del conector que se pueden configurar.

Solicitud

@param {Object} request Objeto JavaScript que contiene los parámetros de solicitud de la configuración.

El objeto JavaScript de parámetros contiene datos con la estructura siguiente:

{
      languageCode: string
    }
    
Nombre del campo Tipo Descripción
languageCode string Código que representa el idioma del usuario. Se puede utilizar para devolver al usuario una versión localizada de las opciones de configuración. Consulta la lista completa de idiomas y códigos admitidos.
configParams objeto Presente si la llamada anterior a getConfig() incluía .setIsSteppedConfig(true). Objeto que contiene los valores que ha proporcionado el usuario de los parámetros de configuración definidos hasta el momento.
Ejemplo de solicitud

Ejemplo de una solicitud getConfig enviada por un usuario cuyo idioma definido es el italiano:

{
      languageCode: "it"
    }
    

Respuesta

Servicio de Data Studio

@return {object} Objeto JavaScript que representa la configuración de la solicitud especificada.

Ejemplo
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();
    }
    

Antigua

@return {object} Objeto JavaScript que representa la configuración del conector que debería mostrarse al usuario.

La respuesta contiene la configuración del conector con la siguiente estructura:

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

Nombre del campo Tipo Descripción
configParams[] object El usuario proporciona los valores obligatorios para el conector. Cada elemento representa un campo de entrada del usuario.
configParams[].type string (ConfigType) Tipo de campo de entrada.
configParams[].name string ID del campo de entrada.
Esta cadena no puede estar vacía ni puede contener espacios.
configParams[].displayName string Etiqueta de texto del campo de entrada.
configParams[].helpText string Texto que se muestra para ofrecer ayuda adicional al usuario sobre el valor esperado del campo.
configParams[].placeholder string Solo se usa si el tipo (type) es TEXTINPUT o TEXTAREA
. Texto del marcador de posición que se usará como sugerencia corta para describir el valor esperado del campo de entrada.
configParams[].isDynamic boolean Indica si este campo se usa o no para rellenar dinámicamente entradas de configuración posteriores. El valor predeterminado es false.
configParams[].parameterControl.allowOverride boolean Activa la función de anulación del parámetro. Si se le asigna el valor true, los creadores de fuentes de datos pueden habilitar esta opción para los editores de informes.
El valor predeterminado de allowOverride es false. Si no quieres que un parámetro sea anulable, puedes omitir la propiedad allowOverride.
configParams[].options[] list Solo se usa cuando el tipo (type) es SELECT
. Proporciona una lista con todas las opciones.
options[].label string Etiqueta de la opción.
options[].value string Valor de la opción.
Esta cadena no puede estar vacía, ni contener espacios o comas.
dateRangeRequired boolean Si el valor es true, se proporciona un periodo para las solicitudes getData(). De forma predeterminada, se elige como periodo los últimos 28 días sin contar el día en curso (today). Se debe definir en las API de datos que requieren un periodo para las consultas, y se debe definir si las solicitudes a las API de datos pueden ser más eficaces al limitar el periodo. El valor predeterminado es false.
isSteppedConfig boolean Si el valor es true, Data Studio le pedirá al usuario que responda al conjunto de preguntas de configuración que se muestren en ese momento y luego devolverá esas preguntas respondidas a llamadas posteriores a getConfig(). Si el valor es false (predeterminado), el usuario podrá hacer clic en la opción de conectar para ir a la página Esquema.

Ejemplo de respuesta

En el ejemplo siguiente se muestra la configuración de un solo cuadro de texto de línea, un área de texto, una selección individual, una selección múltiple, una casilla y un cuadro de información. El valor de selección única se puede anular en los informes.

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

Devuelve el esquema de la solicitud especificada. Proporciona información sobre la organización de los datos del conector. Incluye información detallada de cada campo, como identificadores, nombres, tipos de datos, etc.

Solicitud

@param {Object} request Objeto JavaScript que contiene los parámetros de solicitud del esquema.

El objeto JavaScript de parámetros contiene datos con la estructura siguiente:

{
      "configParams": object
    }
    
Nombre del campo Tipo Descripción
configParams Object Objeto JavaScript que contiene los valores que ha proporcionado el usuario de los parámetros de configuración definidos por el conector.
Ejemplo de solicitud

Ejemplo de un objeto de solicitud getSchema:

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

Respuesta

Servicio de Data Studio

@return {object} Objeto JavaScript que representa el esquema de la solicitud especificada.

Ejemplo
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() };
    }
    

Antigua

@return {object} Objeto JavaScript que representa el esquema de la solicitud especificada.

La función devuelve el esquema con la siguiente estructura:

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

Nombre del campo Tipo Descripción
schema[] object(Field) Esquema de la solicitud, que incluye información detallada sobre cada uno de los campos.

Ejemplo de respuesta

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

Devuelve los datos de la solicitud especificada en forma de tabla.

Solicitud

@param {Object} request Objeto JavaScript que contiene los parámetros de solicitud de los datos.

El parámetro request contiene valores que ha proporcionado el usuario e información adicional que puede servir para completar la solicitud de datos. Tiene la siguiente estructura:

{
      "configParams": object,
      "scriptParams": {
        "sampleExtraction": boolean,
        "lastRefresh": string
      },
      "dateRange": {
        "startDate": string,
        "endDate": string
      },
      "fields": [
        {
          "name": string
        }
      ],
      "dimensionsFilters": [
        [{
          "fieldName": string,
          "values": string[],
          "type": DimensionsFilterType,
          "operator": Operator
        }]
      ]
    }
    
Nombre Tipo Descripción
configParams object Objeto que contiene los valores que ha proporcionado el usuario de los parámetros de configuración definidos por el conector.
scriptParams ScriptParams Objeto que contiene información sobre la ejecución del conector.
dateRange DateRange De manera predeterminada, el periodo proporcionado será los últimos 28 días, sin incluir el día en curso. Si un usuario aplica un filtro de periodo a los informes, el periodo proporcionado reflejará la selección de ese usuario.
Si se asigna el valor `true** a sampleExtraction, la fecha de inicio y la de finalización será la misma: dos días antes del día en curso.
fields[].name string Nombres de los campos solicitados.
fields[].forFilterOnly boolean Marca un campo que solo se usa para filtrar la solicitud. No se debe devolver este campo si el conector aplica filtros.
dimensionsFilters DimensionsFilters Matriz anidada de los filtros que ha seleccionado el usuario. Las matrices más internas deben combinarse mediante OR y las más externas mediante AND.

dateRange

Nombre Tipo Descripción
startDate string Fecha de inicio para filtrar los datos. Se aplica solo si se asigna el valor true a dateRangeRequired. El formato será YYYY-MM-DD.
endDate string Fecha de finalización para filtrar los datos. Se aplica solo si se asigna el valor true a dateRangeRequired. El formato será YYYY-MM-DD.

scriptParams

Nombre Tipo Descripción
sampleExtraction boolean Si el valor es true, la solicitud getData() corresponde a la detección automática de los tipos semánticos.
lastRefresh string Marca de tiempo que indica la última solicitud de actualización de datos.

dimensionsFilters

Nombre Tipo Descripción
fieldName string Nombre del campo que se va a filtrar.
values string[] Matriz de valores que se usará con el operador.
type "INCLUDE" | "EXCLUDE" Indica si los datos que coinciden con este filtro deben incluirse o excluirse en la respuesta getData().
operator FilterOperator Operador que se va a aplicar.
Ejemplo de solicitud
{
      "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"}
      ]
    }

    

Respuesta

Predeterminada

@return {object} Objeto JavaScript que contiene el esquema y los datos de la solicitud especificada.

La función devuelve datos dispuestos en una tabla como respuesta a la solicitud especificada. El esquema de los datos tabulares se incluye en la respuesta, la cual debería presentar esta estructura:

  {
        "schema": [
          {
            object(Field)
          }
        ],
        "rows": [
          {
            "values": [
              string
            ]
          }
        ]
      }
    
Nombre Tipo Descripción
schema Field[] Esquema de los campos solicitados. Los campos field.name y field.dataType son obligatorios. El orden del objeto field debe corresponderse con el orden de los valores en cada fila.
rows[].values[] string | number | boolean Valores de los campos solicitados.
El orden de los valores se debe corresponder con el orden del objeto Fields, tal y como se define en schema.
filtersApplied boolean Se asigna el valor "true" si todos los filtros se han aplicado correctamente; de lo contrario, se asigna el valor "false".

Campo

Nombre Tipo Descripción
name string Nombre del campo.
dataType DataType Tipo de campo.
Ejemplo
{
      "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} Objeto JavaScript que representa la configuración de la consulta de BigQuery.

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

Devuelve el método de autenticación del conector.

Solicitud

Esta función no acepta ningún argumento.

Respuesta

Servicio de Data Studio

@return {object} Objeto que contiene el objeto AuthType utilizado por el conector. Si AuthType es USER_TOKEN, USER_PASS o KEY, también se puede definir una cadena helpUrl opcional.

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

Antigua

@return {object} Objeto que contiene el objeto AuthType utilizado por el conector. Si AuthType es USER_TOKEN, USER_PASS o KEY, también se puede definir una cadena helpUrl opcional.

La respuesta tiene la siguiente estructura:

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

Nombre del campo Tipo Descripción
type string(AuthType) Valor del tipo de autenticación.
helpUrl string URL opcional que se mostrará si type es USER_TOKEN, USER_PASS o KEY. Esta URL debe apuntar a una página donde los usuarios puedan obtener información sobre cómo autenticar el conector.

Ejemplo de respuesta
{
      "type": "USER_TOKEN",
      "helpUrl": "https://www.example.org/connector-auth-help"
    }
    

Funciones de autenticación obligatorias

isAuthValid()

Comprueba si las credenciales del servicio de terceros son válidas.

Solicitud

Esta función no acepta ningún argumento.

Respuesta

@return {boolean} Devuelve true si las credenciales del servicio de terceros son válidas; de lo contrario, devuelve false. Si el valor es true, deberían autorizarse las llamadas a getData y getSchema. Si el valor es false, el usuario probablemente recibirá una notificación en la que se indicará que la autenticación ha caducado y se le pedirá que repita la autorización.

resetAuth()

Borra las credenciales de usuario del servicio de terceros.

Solicitud

Esta función no acepta ningún argumento.

Respuesta

La respuesta está vacía.

Funciones OAuth2 obligatorias

get3PAuthorizationUrls()

Devuelve la URL de autorización del servicio de terceros para iniciar el flujo de OAuth 2.0.

Solicitud

Esta función no acepta ningún argumento.

Respuesta

@return {string} Devuelve la URL de autorización del servicio de terceros. Esta URL se presentará al usuario para iniciar el flujo de OAuth 2.0, cuyo fin es conceder acceso al servicio de terceros.

authCallback()

Gestiona la respuesta de autorización que recibe del servicio de terceros como parte del proceso de autorización de OAuth 2.0.

Solicitud

@param {string} request Objeto JSON codificado que representa los datos de la solicitud de la finalización del flujo de OAuth 2.0.

El parámetro request de la finalización del flujo de OAuth 2.0 debería contener datos con la estructura que se indica a continuación. Se muestra una solicitud que se ha realizado correctamente y otra que ha devuelto un error:

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

    // Error
    {
      "parameter":
        {
          "error": string
        }
    }
    
Nombre del campo Tipo Descripción
parameter object Valores code o error de un flujo de OAuth 2.0 que se ha realizado correctamente o que ha devuelto un error. Estos valores se pueden usar para gestionar más específicamente las devoluciones de llamada.
code string Se incluirá si el flujo de OAuth 2.0 se realiza correctamente. Además, contendrá el valor del parámetro de consulta code correspondiente a la solicitud de retrollamada de OAuth 2.0 que se ha recibido del servicio de terceros. Es un código de autorización que se puede usar para gestionar más específicamente OAuth 2.0.
error object Se incluirá si el flujo de OAuth 2.0 devuelve un error. Además, contendrá el valor del parámetro de consulta error correspondiente a la solicitud de retrollamada de OAuth 2.0 que se ha recibido del servicio de terceros. Es un mensaje de error que se puede usar para gestionar más específicamente OAuth 2.0 y para crear notificaciones.

Respuesta

@return {object} Devuelve un objeto HTML que se generará y se mostrará al usuario. Consulta más información en la documentación de la biblioteca de OAuth y la documentación del servicio HTML de Apps Script.

Funciones usuario/contraseña y clave obligatorias

setCredentials()

Almacena las credenciales que pasa Data Studio.

Solicitud

@param {Object} request Objeto JavaScript que contiene los parámetros de solicitud de los datos.

El parámetro request contiene las credenciales introducidas por el usuario. Tendrá userPass, userToken o key, dependiendo de la respuesta de getAuthType().

{
      "userPass": {
        "username": string,
        "password": string
      },
      "userToken": {
        "username": string,
        "token": string,
      },
      "key": string
    }
    
Nombre del campo Tipo
userPass.username El nombre de usuario proporcionado por el usuario.
userPass.password La contraseña proporcionada por el usuario.
userToken.username El nombre de usuario proporcionado por el usuario.
userToken.token El token proporcionado por el usuario.
key La clave de API o el token proporcionados por el usuario.

Respuesta

@return {object} Objeto de JavaScript que contiene un código de error en el que se indica si las credenciales se pudieron definir correctamente.

{
      "errorCode": string("NONE" | "INVALID_CREDENTIALS")
    }
    
Nombre del campo Tipo Descripción
errorCode enum(string) El errorCode de la llamada de setCredentials
Nombre del código de error Descripción
"NONE" Las credenciales se pudieron definir correctamente.
"INVALID_CREDENTIALS" Las credenciales proporcionadas no eran válidas.
Ejemplo de respuesta
{
      "errorCode": "NONE"
    }
    

Funciones opcionales

isAdminUser()

Comprueba si el usuario es administrador del conector. Esta función se usa para activar o desactivar funciones de depuración. Consulta más información al respecto en el artículo Activar y desactivar funciones de depuración.

Solicitud

Esta función no acepta ningún argumento.

Respuesta

@return {boolean} Devuelve el valor true si el usuario es administrador del conector. Si la función se omite o devuelve el valor false, el usuario no se considerará administrador. Consulta más información al respecto en el artículo Activar y desactivar las funciones de depuración.

Tipos de datos

Campo

Servicio de Data Studio

Consulta el campo Clase para ver todos los métodos que existen en ese tipo de campo.

Crear un campo

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

Antigua

Describe un campo determinado de un registro o de una fila dentro de un esquema.

Cada campo tiene la siguiente estructura:

{
      "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
      }
    }
    
Nombre del campo Tipo Descripción
name string Nombre del campo.
Se usa como identificador único. Solo se admiten caracteres alfanuméricos y guiones bajos.
label string Nombre visible del campo. Se utiliza como un nombre legible en la interfaz de usuario.
description string Descripción opcional del campo. Solo se puede usar texto sin formato.
dataType string(DataType) Tipo de datos del campo.
isHidden boolean Propiedad opcional. Asígnale el valor true para ocultar el campo. Los campos ocultos no se muestran en la pantalla de campos ni se pueden seleccionar para mostrarlos en los gráficos, pero se pueden usar en fórmulas de campos calculados. Los campos de fórmula no se pueden ocultar.
group string Propiedad opcional que indica que un determinado campo pertenece a un grupo. Si fieldA y fieldB pertenecen al grupo groupC, se agruparán en el selector de métricas o en el selector de dimensiones de la interfaz de usuario. Si el grupo se define en al menos un campo, a los campos que no tengan grupo se les asignará un grupo de Default Group.
formula string

Propiedad opcional que determina cómo se calcula un campo. Si la fórmula no es válida, el campo se omite. Si se proporcionan las dos propiedades de agregación (isReaggregatable y defaultAggregationType) así como el campo formula, no se tienen en cuenta las propiedades de agregación.

Solo algunos tipos semanticType funcionan con el campo formula. En general, se recomienda que sean texto o número, excepto en el caso de date y geo. Si el resultado de texto de una fecha o fórmula geográfica concuerda con un tipo semántico, se podrá usar ese tipo semántico. De lo contrario, debe usarse string.

Si configuras manualmente este campo, no se podrá modificar en el editor de campos. Para obtener más detalles sobre cómo crear fórmulas, consulta el artículo Información sobre los campos calculados.

isDefault boolean Propiedad opcional que indica si un campo debe seleccionarse como los parámetros dimension o metric predeterminados. Solo debes definir un parámetro dimension y uno metric predeterminados del esquema.
defaultAggregationType string(DefaultAggregationType) Propiedad opcional que indica qué agregación debería configurar Data Studio de forma predeterminada en este campo. Los usuarios pueden cambiar este valor.
semantics object Propiedades para proporcionar información semántica sobre el campo. Si esta propiedad (y semantics.semanticType) se incluye en alguno de los campos del esquema, se inhabilita la detección automática de los tipos semánticos. Si esta propiedad no se incluye en ninguno de los campos, se habilitará la detección automática de los tipos semánticos.
semantics.conceptType string(ConceptType) Indica si el campo es una dimensión o una métrica.
semantics.semanticType string(SemanticType) Tipo semántico del campo. Si se proporciona, se inhabilita la detección automática de los tipos semánticos.
semantics.semanticGroup string(SemanticGroup) Grupo semántico del campo. Esta propiedad opcional permite agrupar los tipos semánticos. Actualmente, Data Studio no utiliza este campo, pero quizás lo use más adelante.
semantics.isReaggregatable boolean El valor true indica que la agregación se puede aplicar a este campo. En Data Studio, el parámetro aggregation tiene asignado el valor SUM de forma predeterminada, pero el usuario puede cambiarlo.
El valor false indica que la agregación no se puede aplicar a este campo. En Data Studio, el parámetro aggregation tiene asignado el valor AUTO de forma predeterminada, y el usuario no puede cambiarlo.
El valor predeterminado es true.
Nota: Esta propiedad solo afecta a los campos de métricas.

ConceptType

Los valores de los tipos de conceptos semánticos pueden ser uno de los siguientes:

Valor de enumeración Descripción
DIMENSION Dimensión. Las dimensiones son categorías de datos con valores como nombres, descripciones u otras características de una categoría.
METRIC Métrica. Las métricas miden valores de dimensión y representan mediciones tales como sumas, recuentos, proporciones, etc.

DataType

Los valores de los tipos de datos del esquema pueden ser uno de los siguientes:

Valor de enumeración Descripción
STRING Cadena arbitraria, según se define en las especificaciones del esquema JSON.
NUMBER Tipo de datos numéricos en formato de punto flotante de 64 bits de doble precisión (IEEE 754).
BOOLEAN Valor booleano, que puede ser true o false, según se define en las especificaciones del esquema JSON.

SemanticType

Valor de enumeración Descripción Ejemplo
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 Número decimal (0-6) donde 0 es domingo. "0"
DAY DD "17"
HOUR HH "02"
MINUTE mm "12"
DURATION Duración (en segundos). 6340918234
COUNTRY País. "United States"
COUNTRY_CODE Código de país. "US"
CONTINENT Continente. "Americas"
CONTINENT_CODE Código de continente. "019"
SUB_CONTINENT Subcontinente. "North America"
SUB_CONTINENT_CODE Código de subcontinente. "003"
REGION Región. "California"
REGION_CODE Código de región. "CA"
CITY Ciudad. "Mountain View"
CITY_CODE Código de ciudad. "1014044"
METRO_CODE Código de área metropolitana. "200807"
LATITUDE_LONGITUDE Latitud y longitud. "51.5074, -0.1278"
NUMBER Número decimal 14
PERCENT Porcentaje decimal (puede ser más de 1,0) 1.0
TEXT Texto sin formato "Here is some text"
BOOLEAN true o false. true
URL URL como texto. "https://www.google.com"

Tipos semánticos de fórmula

Valor de enumeración Descripción Fórmula
HYPERLINK Enlace con una etiqueta de texto "HYPERLINK($url, $description)"
IMAGE URL de una imagen "IMAGE($image_url, $alt_text)"
IMAGELINK Enlace con una etiqueta de imagen. "HYPERLINK($url, $image_field)"

Tipos semánticos de moneda

Todos los valores de moneda son números de JavaScript. Se permiten valores negativos.

Valor de enumeración Descripción
CURRENCY_AED Dírham de los Emiratos Árabes Unidos (DH)
CURRENCY_ALL Lek albanés (L)
CURRENCY_ARS Peso argentino ($)
CURRENCY_AUD Dólar australiano ($)
CURRENCY_BDT Taka bangladesí (৳)
CURRENCY_BGN Lev búlgaro (Лв)
CURRENCY_BOB Boliviano (Bs)
CURRENCY_BRL Real brasileño (R$)
CURRENCY_CAD Dólar canadiense ($)
CURRENCY_CDF Franco congoleño (FC).
CURRENCY_CHF Franco suizo (Fr)
CURRENCY_CLP Peso chileno ($)
CURRENCY_CNY Yuan chino (¥)
CURRENCY_COP Peso colombiano ($)
CURRENCY_CRC Colón costarricense (₡)
CURRENCY_CZK Corona checa (Kč)
CURRENCY_DKK Corona danesa (kr)
CURRENCY_DOP Peso dominicano (RD$)
CURRENCY_EGP Libra egipcia (£)
CURRENCY_ETB Birr etíope (Br)
CURRENCY_EUR Euro (€)
CURRENCY_GBP Libra esterlina (£)
CURRENCY_HKD Dólar de Hong Kong ($)
CURRENCY_HRK Kuna croata (kn)
CURRENCY_HUF Forinto húngaro (Ft)
CURRENCY_IDR Rupia indonesia (Rp)
CURRENCY_ILS Nuevo séquel israelí (₪)
CURRENCY_INR Rupia india (₹)
CURRENCY_IRR Rial iraní (﷼)
CURRENCY_ISK Corona islandesa (kr)
CURRENCY_JMD Dólar jamaicano ($)
CURRENCY_JPY Yen japonés (¥)
CURRENCY_KRW Won surcoreano (₩)
CURRENCY_LKR Rupia de Sri Lanka (Rs)
CURRENCY_LTL Litas lituana (Lt)
CURRENCY_MNT Tugrik mongol (₮)
CURRENCY_MVR Rupia de Maldivas (Rf)
CURRENCY_MXN Peso mexicano ($)
CURRENCY_MYR Ringgit de Malasia (RM)
CURRENCY_NOK Corona noruega (kr)
CURRENCY_NZD Dólar neozelandés ($)
CURRENCY_PAB Balboa panameño (B/.)
CURRENCY_PEN Sol peruano (S/)
CURRENCY_PHP Peso filipino (₱)
CURRENCY_PKR Rupia pakistaní (Rs)
CURRENCY_PLN Esloti polaco (zł)
CURRENCY_RON Leu rumano (lei)
CURRENCY_RSD Dinar serbio (дин)
CURRENCY_RUB Rublo ruso (₽)
CURRENCY_SAR Riyal saudí (ر.س)
CURRENCY_SEK Corona sueca (kr)
CURRENCY_SGD Dólar de Singapur ($)
CURRENCY_THB Baht tailandés (฿)
CURRENCY_TRY Lira turca (₺)
CURRENCY_TWD Nuevo dólar taiwanés (NT$)
CURRENCY_TZS Chelín tanzano (Tsh)
CURRENCY_UAH Grivna ucraniana (грн)
CURRENCY_USD Dólar estadounidense ($)
CURRENCY_UYU Dólar estadounidense ($)
CURRENCY_VEF Peso uruguayo ($)
CURRENCY_VND Bolívar Fuerte de Venezuela (Bs.F)
CURRENCY_YER Dong vietnamita (₫)
CURRENCY_ZAR Rial yemení (﷼)

SemanticGroup

Los valores de esta lista solo son sugerencias. Puedes elegir otros. Sin embargo, si defines este campo, no se anulará el grupo que Data Studio usa en la opción Type del editor de campos.

Valor sugerido Descripción
NUMERIC Grupo numérico
DATETIME Grupo de fecha y hora
GEO Grupo de información geográfica
CURRENCY Grupo de moneda

DefaultAggregationType

Valor de enumeración Descripción
AVG Promedio numérico (media) de las entradas
COUNT Número de entradas
COUNT_DISTINCT Número de entradas distintas
MAX Máximo de entradas
MIN Mínimo de entradas
SUM Suma de las entradas
NONE Sin agregación
AUTO Debe definirse en campos calculados que impliquen agregaciones

AuthType

El valor del tipo de método de autenticación puede ser uno de los que se indican a continuación:

Valor de enumeración Descripción
NONE Indica que no es obligatorio autenticar el conector.
OAUTH2 Indica que el conector usa OAuth 2.0 como método de autenticación.
KEY Indica que el conector usa la clave de API como método de autenticación.
USER_PASS Indica que el conector usa un nombre de usuario y una contraseña como método de autenticación.
USER_TOKEN Indica que el conector usa un nombre de usuario y un token como método de autenticación.

ConfigType

Los valores de los tipos de elementos de configuración pueden ser uno de los que se indican a continuación:

Valor de enumeración Descripción
TEXTINPUT El elemento de entrada será un cuadro de texto de una sola línea.
TEXTAREA El elemento de entrada será un cuadro textarea de varias líneas.
SELECT_SINGLE El elemento de entrada será un menú desplegable con opciones de selección individual.
SELECT_MULTIPLE El elemento de entrada será un menú desplegable con opciones de selección múltiple.
CHECKBOX El elemento de entrada será una sola casilla que se puede usar para captar valores booleanos.
INFO Cuadro de texto sin formato estático que se puede usar para proporcionar instrucciones o información al usuario. Se podrá hacer clic en los enlaces.

Operador de filtros

Operador
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

El valor de comparación coincide exactamente con el valor de la dimensión.

Cláusula de ejemplo:

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

Datos antes de aplicar el filtro:

País Ciudad
USA Seattle
California Montreal
ROK Seoul

Datos después de aplicar el filtro:

País Ciudad
USA Seattle

CONTAINS

El valor de comparación está incluido en el valor de la dimensión.

Cláusula de ejemplo:

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

Datos antes de aplicar el filtro:

País Ciudad
USA Seattle
California Montreal
ROK Seoul

Datos después de aplicar el filtro:

País Ciudad
USA Seattle
California Montreal

REGEXP_PARTIAL_MATCH

El valor de la dimensión contiene la expresión regular.

Cláusula de ejemplo:

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

Datos antes de aplicar el filtro:

País Ciudad
USA Seattle
California Montreal
ROK Seoul
RU Moscow

Datos después de aplicar el filtro:

País Ciudad
ROK Seoul
RU Moscow

REGEXP_EXACT_MATCH

El valor de la dimensión coincide con la expresión regular.

Cláusula de ejemplo:

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

Datos antes de aplicar el filtro:

País Ciudad
USA Seattle
California Montreal
ROK Seoul
RU Moscow

Datos después de aplicar el filtro:

País Ciudad
ROK Seoul

IN_LIST

Uno o varios de los valores de comparación coinciden exactamente con el valor de la dimensión.

Cláusula de ejemplo:

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

Datos antes de aplicar el filtro:

País Ciudad
USA Seattle
California Montreal
ROK Seoul

Datos después de aplicar el filtro:

País Ciudad
USA Seattle
California Montreal

IS_NULL

Coincide si el valor de la dimensión es nulo.

Cláusula de ejemplo:

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

Datos antes de aplicar el filtro:

País Ciudad
USA Seattle
California Montreal
ROK Seoul
RU Moscow
Terabithia

Datos después de aplicar el filtro:

País Ciudad
Terabithia

BETWEEN

Coincide si el valor de la dimensión está entre los dos valores de prueba.

Cláusula de ejemplo:

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

Datos antes de aplicar el filtro:

País Fecha
USA 20190101
USA 20190111
USA 20190201

Datos después de aplicar el filtro:

País Fecha
USA 20190101
USA 20190111

NUMERIC_GREATER_THAN

Coincide si el valor de la dimensión es mayor que el valor de prueba.

Cláusula de ejemplo:

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

Datos antes de aplicar el filtro:

País Fecha
USA 20190101
USA 20190111
USA 20190201

Datos después de aplicar el filtro:

País Fecha
USA 20190111
USA 20190201

NUMERIC_GREATER_THAN_OR_EQUAL

Coincide si el valor de la dimensión es mayor o igual que el valor de prueba.

Cláusula de ejemplo:

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

Datos antes de aplicar el filtro:

País Fecha
USA 20180101
USA 20190101
USA 20190111
USA 20190201

Datos después de aplicar el filtro:

País Fecha
USA 20190101
USA 20190111
USA 20190201

NUMERIC_LESS_THAN

Coincide si el valor de la dimensión es menor o igual que el valor de prueba.

Cláusula de ejemplo:

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

Datos antes de aplicar el filtro:

País Fecha
USA 20180101
USA 20190101
USA 20190111
USA 20190201

Datos después de aplicar el filtro:

País Fecha
USA 20180101

NUMERIC_LESS_THAN_OR_EQUAL

Coincide si el valor de la dimensión es menor o igual que el valor de prueba.

Cláusula de ejemplo:

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

Datos antes de aplicar el filtro:

País Fecha
USA 20180101
USA 20190101
USA 20190111
USA 20190201

Datos después de aplicar el filtro:

País Fecha
USA 20180101
USA 20190101