Parámetros y condiciones de Remote Config

Con Firebase console o las APIs de backend de Remote Config, puedes definir uno o más parámetros (pares clave-valor) y proporcionarles valores predeterminados de la app. Puedes anular los valores predeterminados de la app mediante valores de parámetros definidos en el servidor. Las claves y los valores de los parámetros son strings, pero los valores pueden transmitirse como otros tipos de datos cuando los usas en tu app.

Con Firebase console, el SDK de Admin o la API de REST de Remote Config, puedes crear nuevos valores predeterminados para tus parámetros y valores condicionales que puedes usar a fin de segmentar los cambios para grupos de instancias de la app. Cada vez que actualizas la configuración en Firebase console, Firebase crea y publica una versión nueva de tu plantilla de Remote Config. Se almacena la versión anterior, lo que te permite realizar acciones de recuperación o reversión según sea necesario. Estas operaciones están disponibles en Firebase console, el SDK de Firebase Admin y la API de REST, y se describen con más detalles en Administra las versiones de plantilla de Remote Config.

En esta guía, se explican los parámetros, las condiciones, las reglas, los valores condicionales y cómo se priorizan los diferentes valores de parámetros en el servidor de Remote Config y en tu app. Además, se proporcionan detalles sobre los tipos de reglas que se usan para crear las condiciones.

Condiciones, reglas y valores condicionales

Las condiciones permiten orientarse a un grupo de instancias de apps y constan de una o más reglas que se deben evaluar como true para que se considere que el valor de la condición es true en una instancia específica de la app. Si el valor de una regla no está definido (por ejemplo, cuando no hay un valor disponible), esta se evaluará como false.

Por ejemplo, un parámetro que defina una página de inicio de una app podría mostrar imágenes diferentes según el tipo de SO mediante la siguiente regla sencilla if device_os = Android:

Captura de pantalla del parámetro “splash_page” en Firebase console que muestra su valor predeterminado para iOS y el valor condicional para Android

También podrías usar una condición de tiempo para controlar el momento en que tu app muestra elementos promocionales especiales.

Los parámetros pueden tener varios valores con distintas condiciones y compartir condiciones dentro de un proyecto. En la pestaña Parámetros de Firebase console, puedes consultar el porcentaje de recuperación de los valores condicionales de cada parámetro. Esta métrica indica el porcentaje de solicitudes que recibió cada valor en las últimas 24 horas.

Prioridad de los valores de los parámetros

Un parámetro puede tener varios valores condicionales asociados. Las siguientes reglas determinan qué valor se recupera del servidor de Remote Config y qué valor se usa en una instancia específica de la app en un momento dado:

Los valores de los parámetros del servidor se recuperan según la siguiente lista de prioridad:

  1. Primero, se aplican valores condicionales si hay condiciones que se evalúan como true para una instancia específica de la app. Si varias condiciones se evalúan como true, tiene prioridad la primera que se muestra (en la parte superior) en la IU de Firebase console y se proporcionan los valores condicionales asociados a esa condición cuando una app recupera los valores del backend. Para cambiar la prioridad de las condiciones, puedes arrastrarlas y soltarlas en la pestaña Condiciones.

  2. Si no hay valores condicionales cuyas condiciones se evalúen como true, se mostrará el valor predeterminado del servidor cuando una app recupere valores del backend. Si un parámetro no existe en el backend o si el valor predeterminado se definió como Usar la configuración predeterminada en la app, no se proporcionará ningún valor para ese parámetro cuando una app recupere valores.

En tu app, los valores de parámetros se muestran mediante los métodos get de acuerdo con la siguiente lista de prioridades:

  1. Si un valor se recuperó del backend y después se activó, la app usa el valor recuperado. Los valores de parámetros activados son persistentes.
  2. Si no se recuperó ningún valor del backend o si no se activaron los valores recuperados del backend de Remote Config, se usa el valor predeterminado de la app.

    Para saber más sobre cómo obtener y configurar valores predeterminados, consulta Descarga los ajustes predeterminados de las plantillas de Remote Config.

  3. Si no se definió ningún valor predeterminado en la app, se usa un valor de tipo estático (como 0 para int y false para boolean).

En el siguiente gráfico, se resume cómo se priorizan los valores de los parámetros en el backend de Remote Config y en la app:

Diagrama en el que se muestra el flujo descrito en las listas ordenadas anteriores

Tipos de datos del valor del parámetro

Remote Config te permite seleccionar un tipo de datos para cada parámetro y valida todos los valores del servidor según ese tipo antes de actualizar la plantilla. El tipo de datos se almacena y se muestra en una solicitud getRemoteConfig.

Estos son los tipos admitidos actualmente:

  • String
  • Boolean
  • Number
  • JSON

En la IU de Firebase console, el tipo de datos se puede seleccionar en un menú desplegable junto a la clave del parámetro. En la API de REST, los tipos se pueden establecer mediante el campo value_type dentro del objeto de parámetro.

Grupos de parámetros

Remote Config te permite agrupar parámetros para tener una IU y un modelo mental más organizados.

Por ejemplo, supongamos que debes habilitar o inhabilitar tres tipos de autenticación diferentes mientras implementas una nueva función de acceso. Con Remote Config, puedes crear los tres parámetros para habilitar los tipos como desees y, luego, organizarlos en un grupo llamado "Nuevo acceso", sin necesidad de agregar prefijos ni ordenamiento especial.

Puedes crear grupos de parámetros con Firebase console o la API de REST de Remote Config. Cada grupo de parámetros que creas tiene un nombre único en tu plantilla de Remote Config. Cuando crees grupos de parámetros, ten en cuenta lo siguiente:

  • Los parámetros se pueden incluir en un solo grupo a la vez y las claves de parámetro deben ser únicas entre todos los parámetros.
  • Los nombres de los grupos de parámetros tienen un límite de 256 caracteres.
  • Si usas la API de REST y Firebase console, asegúrate de que la lógica de la API de REST esté actualizada para controlar los grupos de parámetros en la publicación.

Crea o modifica grupos de parámetros con Firebase console

Puedes agrupar los parámetros en la pestaña Parámetros de Firebase console. Para crear o modificar un grupo, sigue estos pasos:

  1. Selecciona Administrar grupos.
  2. Marca las casillas de verificación de los parámetros que deseas agregar y selecciona Mover a grupos.
  3. Selecciona un grupo existente, o bien crea uno nuevo. Para ello, ingresa un nombre y una descripción, y selecciona Crear grupo nuevo. Después de guardar un grupo, puedes publicarlo con el botón Publicar cambios.

Crea grupos de manera programática

La API de REST de Remote Config proporciona una forma automatizada de crear y publicar grupos de parámetros. Si estás familiarizado con REST y estás listo para autorizar solicitudes a la API, puedes realizar estos pasos para administrar grupos de manera programática:

  1. Recupera la plantilla actual.
  2. Agrega objetos JSON para representar tus grupos de parámetros.
  3. Publica los grupos de parámetros mediante una solicitud HTTP PUT.

El objeto parameterGroups contiene claves de grupo, con una descripción anidada y una lista de parámetros agrupados. Ten en cuenta que cada clave de grupo debe ser única a nivel global.

Por ejemplo, este es un extracto de una revisión de plantilla que agrega el grupo de parámetros "nuevo menú" con un parámetro, pumpkin_spice_season:

{
  "parameters": {},
  "version": {
    "versionNumber": "1",

    …


  },
  "parameterGroups": {
    "new menu": {
      "description": "New Menu",
      "parameters": {
        "pumpkin_spice_season": {
          "defaultValue": {
            "value": "true"
          },
          "description": "Whether it's currently pumpkin spice season."
        }
      }
    }
  }
}

Tipos de reglas de las condiciones

En Firebase console, se admiten los tipos de reglas que se indican a continuación. La API de REST de Remote Config cuenta con funcionalidades equivalentes, como se indica en la referencia de expresiones condicionales.

Tipo de reglaOperadoresValoresNota
App == Selecciona una opción de una lista de IDs de apps de aplicaciones asociadas con tu proyecto de Firebase. Cuando agregas una app a Firebase, debes ingresar un ID de paquete o un nombre de paquete de Android que define un atributo que se expone como ID de la app en las reglas de Remote Config.

Usa este atributo de la siguiente manera:
  • Para plataformas de Apple: Usa el valor CFBundleIdentifier de la app. Si quieres encontrar el Identificador de paquete, consulta la pestaña General del objetivo primario de tu app en Xcode.
  • En Android: Usa el valor applicationId de la app. Puedes encontrar el applicationId en el archivo build.gradle de nivel de la app.
Versión de la app Si el valor es una string:
coincide exactamente,
contiene,
no contiene,
expresión regular

Si el valor es numérico:
=, ≠, >, ≥, <, ≤

Especifica las versiones de tu app a las que te segmentarás.

Antes de usar esta regla, debes utilizar una de ID de app y seleccionar una app para Android o Apple asociada con tu proyecto de Firebase.

En Apple: Usa el valor CFBundleShortVersionString de la app.

Nota: Asegúrate de que tu app para Apple use la versión 6.24.0 o posterior del SDK de Firebase para plataformas de Apple, ya que no se envía CFBundleShortVersionString en las versiones anteriores (consulta las notas de la versión).

En Android usa el valor versionName de la app.

Las comparaciones entre strings para esta regla distinguen entre mayúsculas y minúsculas. Cuando usas los operadores coincide exactamente, contiene, no contiene o expresión regular, puedes elegir más de un valor.

Si usas el operador expresión regular, puedes crear expresiones regulares en formato RE2. La expresión regular puede buscar una coincidencia total o parcial en la string de la versión objetivo. También puedes usar los delimitadores ^$ para buscar coincidencias en el principio, el final o la totalidad de la string objetivo.

Número de compilación Si el valor es una string:
coincide exactamente,
contiene,
no contiene,
expresión regular

Si el valor es numérico:
=, ≠, >, ≥, <, ≤

Especifica las compilaciones de tu app a las que te segmentarás.

Antes de usar esta regla, debes utilizar una de ID de app y seleccionar una app para Apple o Android asociada con tu proyecto de Firebase.

Este operador solo se encuentra disponible en apps para Apple y Android. Corresponde al valor de CFBundleVersion de la app para Apple y al de versionCode para Android. Las comparaciones entre strings para esta regla distinguen mayúsculas de minúsculas.

Cuando usas los operadores coincide exactamente, contiene, no contiene o expresión regular, puedes elegir más de un valor.

Si usas el operador de expresión regular, puedes crear expresiones regulares en formato RE2. Tu expresión regular puede buscar una coincidencia total o parcial en la string de la versión objetivo. También puedes usar los delimitadores ^$ para buscar coincidencias en el principio, el final o la totalidad de la string objetivo.

Plataforma == iOS
Android
Web
 
Sistema operativo ==

Especifica los sistemas operativos objetivo.

Antes de usar esta regla, debes utilizar una de ID de app y seleccionar una app web asociada con tu proyecto de Firebase.

Esta regla se evalúa como true en una instancia específica de la app web si el sistema operativo y su versión coinciden con un valor de destino de la lista especificada.
Navegador ==

Especifica los navegadores objetivo.

Antes de usar esta regla, debes utilizar una de ID de app y seleccionar una app web asociada con tu proyecto de Firebase.

Esta regla se evalúa como true en una instancia específica de la app web si el navegador y su versión coinciden con un valor de destino de la lista especificada.
Categoría del dispositivo es, no es móvil Esta regla evalúa si el dispositivo que accede a tu aplicación web es móvil o no (computadora o consola). Este tipo de regla solo está disponible para apps web.
Lenguajes está en Selecciona uno o más idiomas. Esta regla se evalúa como true en una instancia específica de la app si se encuentra en un dispositivo que usa alguno de los idiomas de la lista.
País o región está en Selecciona una o varias regiones o países. Esta regla se evalúa como true en una instancia específica de la app si se encuentra en alguna de las regiones o los países de la lista. El código de país del dispositivo se determina con la dirección IP del dispositivo en la solicitud o con el código de país que determina Firebase Analytics (si los datos de Analytics se comparten con Firebase).
Públicos de usuarios Incluye al menos un elemento Selecciona una o más opciones de una lista de públicos de Google Analytics que hayas configurado para tu proyecto.

Para esta regla, es necesario que tengas una regla de ID de app, a fin de seleccionar una app vinculada con tu proyecto de Firebase.

Nota: Dado que muchos públicos de Analytics se definen según eventos o propiedades de los usuarios, que pueden depender de las acciones de los usuarios de la app, una regla de tipo Usuario en público podría demorar un poco en aplicarse en una instancia específica de la app.

Propiedad del usuario Si el valor es una string:
contiene,
no contiene,
coincide exactamente,
expresión regular

Si el valor es numérico:
=, ≠, >, ≥, <, ≤

Nota: En el cliente, solo puedes establecer valores de string para las propiedades del usuario. En el caso de las condiciones que usan operadores numéricos, Remote Config convierte el valor de la propiedad del usuario correspondiente en un número entero/flotante.
Selecciona de una lista de propiedades del usuario disponibles en Google Analytics. Si quieres aprender a utilizar las propiedades del usuario y personalizar tu app para segmentos muy específicos de la base de usuarios, consulta Remote Config y propiedades del usuario.

Para obtener más información sobre las propiedades del usuario, consulta las siguientes guías:

Cuando usas los operadores coincide exactamente, contiene, no contiene o expresión regular, puedes elegir más de un valor.

Si usas el operador de expresión regular, puedes crear expresiones regulares en formato RE2. Tu expresión regular puede buscar una coincidencia total o parcial en la string de la versión objetivo. También puedes usar los delimitadores ^$ para buscar coincidencias en el principio, el final o la totalidad de la string objetivo.

Nota: Por el momento, las propiedades del usuario recopiladas automáticamente no están disponibles en la creación de condiciones de Remote Config.
Usuario en porcentaje aleatorio Control deslizante (en Firebase console; la API de REST usa los operadores <=, > y between). 0-100

Usa este campo para aplicar un cambio en una muestra aleatoria de instancias de la app (con tamaños de muestra mínimos del 0.0001%), con el widget de control deslizante para segmentar a los usuarios aleatorios (instancias de la app) en grupos.

A cada instancia de la app se le asigna en forma persistente un número fraccionario o entero aleatorio, según un valor inicial que se define en el proyecto.

Las reglas usarán la clave predeterminada (que aparece como Editar valor inicial en Firebase console), a menos que modifiques el valor inicial. Una regla puede volver a usar la clave predeterminada. Para ello, borra el contenido del campo Valor inicial.

Para abordar de manera coherente las mismas instancias de la app dentro de un rango porcentual determinado, usa el mismo valor inicial en todas las condiciones. También puedes seleccionar un nuevo grupo de instancias de app asignado al azar para un rango porcentual determinado si especificas un valor inicial nuevo.

Por ejemplo, si quisieras crear dos condiciones relacionadas que se apliquen, cada una, a un 5% no superpuesto de los usuarios de una app, puedes configurar una condición para que coincida con un porcentaje entre el 0% y el 5%, y configurar otra condición con el fin de que coincida con un rango entre el 5% y el 10%. Con el fin de permitir que algunos usuarios aparezcan de forma aleatoria en ambos grupos, usa valores iniciales diferentes para las reglas dentro de cada condición.

Segmentos importados está en Selecciona uno o más segmentos importados. Esta regla requiere configurar segmentos importados personalizados.
Fecha/hora Antes, Después Una fecha y hora específicas en la zona horaria del dispositivo o una zona horaria específica, como “(GMT+11) Hora de Sídney”. Compara la hora actual con la fecha de recuperación del dispositivo.
Primer acceso Antes, Después Una fecha y hora especificadas, en la zona horaria especificada.

Busca coincidencias con los usuarios que accedieron pror primera vez a la app segmentada dentro del período especificado.

Se requieren los siguientes SDKs:

  • SDK de Firebase para Google Analytics
  • Versión 9.0.0 o una posterior del SDK para plataformas de Apple: y versión 21.1.1 o una posterior del SDK para Android (versión 30.3.0 o una posterior de la BoM de Firebase)

ID de instalación está en Especifica uno o más IDs de instalación (hasta 50) para segmentar. Esta regla se evalúa como true en una instalación determinada si el ID de esa instalación está en la lista de valores separados por comas.

Para aprender a obtener los IDs de instalación, consulta Recupera identificadores de cliente.
El usuario existe (sin operador) Se orienta a todos los usuarios de todas las apps del proyecto actual.

Usa esta regla de condición para que coincidan todos los usuarios del proyecto, sin importar la app o la plataforma.

Busca parámetros y condiciones

Puedes buscar las condiciones, las claves y los valores de los parámetros del proyecto en Firebase console mediante el cuadro de búsqueda que se encuentra en la parte superior de la pestaña Parámetros de Remote Config.

Límites de los parámetros y las condiciones

Cada proyecto de Firebase admite un máximo de 2,000 parámetros y 500 condiciones. Las claves de parámetros pueden tener hasta 256 caracteres, deben comenzar con un guion bajo o letras que se usen en inglés (de la A a la Z, en mayúscula o minúscula) y también pueden incluir números. La longitud total de las strings de valores de parámetros en un mismo proyecto no puede superar 1,000,000 de caracteres.

Visualiza los cambios en los parámetros y las condiciones

Puedes ver los cambios más recientes en tus plantillas de Remote Config desde Firebase console. Para cada parámetro y condición individual, puedes hacer lo siguiente:

  • Consultar el nombre del usuario que modificó por última vez el parámetro o la condición.

  • Si el cambio ocurrió el mismo día, consulta la cantidad de minutos o de horas que transcurrieron desde que se publicó el cambio en la plantilla activa de Remote Config.

  • Si el cambio ocurrió hace uno o más días, consulta la fecha en la que se publicó el cambio en la plantilla activa de Remote Config.

Actualizaciones de parámetros

En la página Parámetros de Remote Config, la columna Fecha de la última publicación muestra el último usuario que modificó cada parámetro y la fecha de la última publicación del cambio:

  • Para ver metadatos de cambios de parámetros agrupados, expande el grupo de parámetros.

  • Para ordenar de forma ascendente o descendente por fecha de publicación, haz clic en la etiqueta de la columna Fecha de la última publicación.

Actualizaciones de condiciones

En la página Condiciones de Remote Config, puedes ver el último usuario que modificó la condición y la fecha en que se modificó junto a Modificación más reciente debajo de cada condición.

Próximos pasos

Para comenzar a configurar tu proyecto de Firebase, consulta Cómo configurar un proyecto de Firebase con Remote Config.