Параметры и условия Remote Config в шаблонах клиентов

Выберите тип шаблона: Клиентские шаблоны Серверные шаблоны


Вы можете передавать параметры и значения Remote Config из шаблонов клиентов в любые экземпляры приложений, в которых реализованы клиентские SDK Firebase для Remote Config, включая приложения Apple, Android, Web, Flutter, Unity и C++.

При использовании консоли Firebase или серверных API Remote Config вы определяете один или несколько параметров (пар "ключ-значение") и задаете для них значения по умолчанию в приложении. Вы можете переопределить значения по умолчанию, задав значения параметров. Ключи и значения параметров представляют собой строки, но значения можно преобразовать в другие типы данных для использования в приложении.

С помощью консоли Firebase (Admin SDK) или REST API Remote Config можно создавать новые значения по умолчанию для параметров, а также условные значения, которые используются для таргетинга на группы экземпляров приложения. Каждый раз, когда вы обновляете конфигурацию в консоли Firebase, Firebase создает и публикует новую версию шаблона Remote Config. Предыдущая версия сохраняется, чтобы вы могли восстановить или откатить ее при необходимости. Эти операции доступны в консоли Firebase, Firebase Admin SDK и REST API. Подробнее о них рассказывается в статье Как управлять версиями шаблонов Remote Config.

В этом руководстве рассказывается о параметрах, условиях, правилах, условных значениях и о том, как значениям параметров присваивается приоритет на сервере Remote Config и в приложении. Также здесь подробно описаны типы правил, используемых для создания условий.

Условия, правила и условные значения

Условие используется для таргетинга на группу экземпляров приложения. Условия состоят из одного или нескольких правил, которые должны иметь значение true, чтобы условие имело значение true для данного экземпляра приложения. Если значение для правила не определено (например, когда значение недоступно), то правило оценивается как false.

Например, параметр, определяющий заставку приложения, может показывать разные изображения в зависимости от типа ОС, используя правило if device_os = Android:

Скриншот параметра splash_page в консоли Firebase, на котором показано его значение по умолчанию для iOS и условное значение для Android

А условие времени можно использовать, чтобы показывать в приложении специальные рекламные товары.

У параметра может быть несколько условных значений, которые используют разные условия, а параметры могут использовать общие условия в рамках проекта. В консоли Firebase перейдите на страницу DevOps & Engagement (DevOps и вовлечение) > Remote Config > Parameters (Параметры), чтобы посмотреть процент получения условных значений каждого параметра. Этот показатель отражает процент запросов за последние 24 часа, которые получили каждое значение.

Как добавлять, изменять, перемещать и удалять условия в консоли Firebase

В консоли Firebase можно создавать, изменять, упорядочивать и удалять условия таргетинга. Условия являются общими для всех параметров в проекте. Вот как управлять условиями:

  1. В консоли Firebase перейдите в раздел DevOps & Engagement (DevOps и вовлечение) > Remote Config (Удаленная конфигурация) > Conditions (Условия) или выберите Manage conditions (Управление условиями) на странице Parameters (Параметры).
  2. Добавить условие. Нажмите Добавить условие (или Создать первое условие), введите название, которое определяет цель таргетинга, и выберите одно или несколько правил таргетинга.
  3. Изменить условие. Нажмите на название условия или значок редактирования, измените правила и нажмите Сохранить.
  4. Изменить приоритет условий. На странице Условия перетащите условия за маркеры, чтобы изменить их порядок. Условия, расположенные выше в списке, имеют приоритет над условиями, расположенными ниже.
  5. Удалить условие. Нажмите на значок удаления рядом с нужным условием. Если на условие ссылается какой-либо параметр, то при удалении условия также удаляются связанные с ним условные значения.

Сохранив изменения, опубликуйте шаблон, нажав Опубликовать изменения.

Ограничение IPv6 при управлении доступом на основе IP-адресов

Remote Config имеет ограниченную поддержку IPv6 при использовании с правилами доступа на основе IP. Если в вашей организации ограничен доступ к определенным диапазонам общедоступных IP-адресов, при подключении через сеть IPv6 могут возникнуть следующие проблемы:

  • Доступ к консоли. Вы не сможете использовать некоторые функции Remote Config в консоли Firebase, например загружать данные или настраивать таргетинг.
  • Доступ клиентов. Клиентские приложения могут сталкиваться с ошибками PERMISSION_DENIED.

Чтобы избежать этих проблем, настройте сеть на использование IPv4 или добавьте необходимые диапазоны IP-адресов Firebase в белый список организации.

Приоритет значения параметра

С параметром может быть связано несколько условных значений. Правила, приведенные ниже, определяют, какое значение извлекается из шаблона Remote Config и какое значение используется в данном экземпляре приложения в определенный момент времени.

  1. Сначала применяются условные значения для всех условий, которые оцениваются как true для данного запроса клиента. Если несколько условий оцениваются как true, приоритет имеет верхнее условие, показанное в интерфейсе консоли Firebase, и условные значения, связанные с этим условием, предоставляются, когда приложение извлекает значения из серверной части. Приоритет условий можно изменить, перетащив их на странице Условия.

  2. Если условных значений с условиями, которые оцениваются как true, нет, то при получении значений из серверной части приложение использует значение по умолчанию для Remote Config. Если параметр не существует в серверной части или для него задано значение по умолчанию Использовать значение по умолчанию в приложении, то при получении значений приложением для этого параметра не будет предоставлено значение.

В приложении значения параметров возвращаются методами get в соответствии со следующим списком приоритетов:

  1. Если значение было получено из серверной части, а затем активировано, приложение использует полученное значение. Активированные значения параметров являются постоянными.
  2. Если значение не получено из серверной части или полученные из Remote Config нее значения не активированы, приложение использует значение по умолчанию.

    Подробнее о том, как получить и задать значения по умолчанию для шаблонов Remote Config…

  3. Если значение по умолчанию не задано, приложение использует статическое значение (например, 0 для int и false для boolean).

На этой схеме показано, как устанавливается приоритет значений параметров в серверной части Remote Config и в вашем приложении.

Диаграмма, демонстрирующая процесс, описанный в упорядоченных списках выше.

Типы данных значений параметров

Remote Config позволяет выбрать тип данных для каждого параметра и проверяет все значения Remote Config на соответствие этому типу перед обновлением шаблона. Тип данных сохраняется и возвращается в запросе getRemoteConfig.

Поддерживаются следующие типы данных:

  • String
  • Boolean
  • Number
  • JSON

В консоли Firebase тип данных можно выбрать в раскрывающемся списке рядом с ключом параметра. В REST API типы можно задавать с помощью поля value_type в объекте параметра.

Группы параметров

Remote Config позволяет группировать параметры, чтобы сделать интерфейс более организованным и удобным.

Например, вам нужно включить или отключить три разных типа аутентификации при развертывании новой функции входа. В Remote Config вы можете создать три параметра, чтобы включить нужные типы, а затем объединить их в группу "Новый вход". При этом вам не нужно добавлять префиксы или использовать специальную сортировку.

Вы можете создавать группы параметров с помощью консоли Firebase или REST API Remote Config. Каждая группа параметров, которую вы создаете, имеет уникальное название в шаблоне Remote Config. При создании групп параметров учитывайте следующее:

  • Параметр может входить только в одну группу, а его ключ должен быть уникальным.
  • Название группы параметров может содержать не более 256 символов.
  • Если вы используете и REST API, и консоль Firebase, убедитесь, что логика REST API обновлена для обработки групп параметров при публикации.

Создание и изменение групп параметров в консоли Firebase

Вы можете группировать параметры в консоли Firebase. Вот как создать или изменить группу:

  1. В консоли Firebase перейдите на страницу DevOps & Engagement (DevOps и взаимодействие) > Remote Config (Удаленная конфигурация) > Parameters (Параметры).
  2. Выберите Управление группами.
  3. Установите флажки рядом с нужными параметрами и нажмите Переместить в группу.
  4. Выберите существующую группу или создайте новую, указав название и описание и нажав Создать группу. После сохранения группы ее можно опубликовать с помощью кнопки Опубликовать изменения.

Как создавать группы программно

Remote Config REST API позволяет создавать и публиковать группы параметров автоматически. Если вы знакомы с REST и настроили авторизацию запросов к API, то можете выполнить следующие действия, чтобы управлять группами программно:

  1. Получите текущий шаблон.
  2. Добавьте объекты JSON, представляющие группы параметров.
  3. Опубликуйте группы параметров с помощью HTTP-запроса PUT.

Объект parameterGroups содержит ключи групп с вложенным описанием и списком сгруппированных параметров. Обратите внимание, что каждый ключ группы должен быть уникальным.

Ниже приведен пример фрагмента измененного шаблона, в который добавлена группа параметров "new menu" с одним параметром pumpkin_spice_season:

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

    …

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

Условия для специальных сигналов

Условные значения специальных сигналов можно использовать для сопоставления произвольных сигналов, которые вы определяете и отправляете в своем приложении, с условиями, которые вы создаете на основе сигналов в Remote Config. Это позволяет настраивать работу приложения или клиента.

Условия для специальных сигналов доступны для следующих клиентских сред:

  • iOS: 11.8.0 или более поздней версии.
  • Android: 22.1.0 или более поздней версии (Firebase BoM 33.8.0 или более поздней версии).
  • Веб: 11.2.0 или более поздняя версия.
  • Flutter: Flutter BoM версии 3.6.0 или более поздней.

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

  1. Добавьте banner_image_url и banner_link в шаблон клиента Remote Config. Они представляют собой изображение баннера и страницу мероприятия, связанную с этим изображением.
  2. Настройте специальные сигналы из приложения со значениями city и preferred_event_category.
  3. Добавьте значения по умолчанию в шаблон Remote Config для клиента и создайте условные значения на основе специальных сигналов, заданных на предыдущем шаге.
  4. Добавьте значения по умолчанию в шаблон Remote Config для клиента и условные значения для каждого заданного условия.
  5. Обновите код приложения, чтобы задать и использовать условия для специальных сигналов.

Теперь ваше приложение может скачать нужные banner_image_url и banner_link, когда оно получает эти параметры с сервера Remote Config.

Ограничения

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

  • Количество специальных сигналов. Вы можете создать до 100 специальных сигналов для каждого экземпляра приложения. Чтобы отменить специальный сигнал, задайте для него значение null.
  • Название особого сигнала. Название каждого особого сигнала может содержать не более 250 символов.
  • Значение специального сигнала. Каждое значение может содержать до 500 символов. При использовании регулярных выражений ограничение составляет 250 символов.

Типы правил условий

В консоли Firebase поддерживаются следующие типы правил: Эквивалентные функции доступны в Remote Config REST API, как описано в справочнике по условным выражениям.

Тип правила Операторы Значения Примечание
Приложение == Выберите идентификатор приложения из списка идентификаторов приложений, связанных с вашим проектом Firebase. При добавлении приложения в Firebase вы указываете идентификатор пакета или название пакета Android, определяющее атрибут, который в правилах Remote Config представлен как Идентификатор приложения.

Вот как использовать этот атрибут:
  • Для платформ Apple: используйте CFBundleIdentifier приложения. Идентификатор пакета можно найти на вкладке General (Общие) для основной цели приложения в Xcode.
  • Для Android: используйте applicationId приложения. Значение applicationId можно найти в файле build.gradle(.kts) на уровне приложения.
Версия приложения Для строковых значений:
"точно соответствует",
"содержит",
"не содержит",
"содержит регулярное выражение".

Для числовых значений:
<, <=, =, !=, >, >=

Укажите версии приложения, на которые нужно настроить таргетинг.

Прежде чем использовать это правило, необходимо с помощью правила Идентификатор приложения выбрать приложение Android или Apple, связанное с вашим проектом Firebase.

Для платформ Apple: используйте CFBundleShortVersionString приложения.

Примечание. Убедитесь, что в вашем приложении для Apple используется Firebase Apple platforms SDK версии 6.24.0 или более поздней, поскольку в более ранних версиях CFBundleShortVersionString не отправляется (см. примечания к выпуску).

Для Android: используйте параметр versionName.

Примечание. Операторы сравнения чисел (<, <=, =, !=, >, >=) поддерживают только семантические версии чисел (например, 1.2.3). Они не поддерживают суффиксы предварительных выпусков или дефисы (например, -beta или -rc). Для строк версий с нечисловыми суффиксами или дефисами (например, 1.5-beta) используйте строковые операторы (например, содержит регулярное выражение, содержит или точно соответствует).

При сравнении строк в этом правиле учитывается регистр. При использовании операторов точно соответствует, содержит, не содержит или содержит регулярное выражение можно выбрать несколько значений.

При использовании оператора содержит регулярное выражение вы можете создавать регулярные выражения в формате RE2. Регулярное выражение может соответствовать всей строке целевой версии или ее части. Вы также можете использовать символы ^ и $, чтобы сопоставлять начало, конец или всю целевую строку.

Номер сборки Для строковых значений:
точно соответствует;
содержит;
не содержит;
регулярное выражение.

Для числовых значений:
=, ≠, >, ≥, <, ≤.

Укажите сборки приложения, на которые нужно настроить таргетинг.

Прежде чем использовать это правило, необходимо выбрать приложение Apple или приложение для Android, связанное с вашим проектом Firebase, с помощью правила Идентификатор приложения.

Этот оператор доступен только для приложений Apple и Android. Соответствует CFBundleVersion для Apple и versionCode для Android. При сравнении строк учитывается регистр.

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

При использовании оператора соответствует регулярному выражению вы можете создавать регулярные выражения в формате RE2. Регулярное выражение может соответствовать всей строке целевой версии или ее части. Вы также можете использовать якоря ^ и $, чтобы сопоставлять начало, конец или всю целевую строку.

Платформа == iOS
Android
Веб
 
Операционная система ==

Укажите операционные системы, на которые нужно настроить таргетинг.

Прежде чем использовать это правило, необходимо с помощью правила Идентификатор приложения выбрать веб-приложение, связанное с вашим проектом Firebase.

Это правило принимает значение true для экземпляра веб-приложения, если операционная система и ее версия соответствуют целевому значению в указанном списке.
Браузер ==

Укажите браузеры, на которые нужно настроить таргетинг.

Прежде чем использовать это правило, необходимо с помощью правила Идентификатор приложения выбрать веб-приложение, связанное с вашим проектом Firebase.

Это правило принимает значение true для заданного экземпляра веб-приложения, если браузер и его версия соответствуют целевому значению в указанном списке.
Тип устройства "равно", "не равно"; мобильное Это правило определяет, является ли устройство, с которого осуществляется доступ к вашему веб-приложению, мобильным или нет (компьютер или консоль). Этот тип правил доступен только для веб-приложений.
Языки относится Выберите один или несколько языков. Это правило принимает значение true для экземпляра приложения, если он установлен на устройстве, на котором используется один из перечисленных языков.
Страна/регион относится Выберите один или несколько регионов или стран. Правило принимает значение true для экземпляра приложения, если он находится в одном из перечисленных регионов или стран. Код страны устройства определяется по IP-адресу устройства в запросе или по коду страны, определенному Firebase Аналитика (если данные Аналитики передаются в Firebase).
Аудитории пользователей Включает хотя бы 1 из Выберите одну или несколько из Google Analytics аудиторий, настроенных для вашего проекта.

Для этого правила требуется правило идентификатора приложения, чтобы выбрать приложение, связанное с вашим проектом Firebase.

Примечание. Поскольку многие аудитории Analytics определяются событиями или свойствами пользователей, которые могут быть основаны на действиях пользователей приложения, может потребоваться некоторое время, чтобы правило Пользователь в аудитории вступило в силу для определенного экземпляра приложения. Это означает, что даже если пользователь технически соответствует условиям аудитории, но Analytics ещё не добавил его в нее на момент выполнения fetchAndActivate(), пользователь не будет соответствовать условию.

Свойство пользователя Для строковых значений:
содержит;
не содержит;
точно соответствует;
содержит регулярное выражение.

Для числовых значений:
=, ≠, >, ≥, <, ≤.

Примечание. На стороне клиента для свойств пользователя можно задавать только строковые значения. Для условий, в которых используются числовые операторы, Remote Config преобразует значение соответствующего свойства пользователя в целое число или число с плавающей запятой.
Выберите из списка доступных свойств пользователей Google Analytics. Чтобы узнать, как использовать свойства пользователей для настройки приложения под определенные сегменты пользовательской базы, прочитайте статью Remote Config и свойства пользователей.

Дополнительную информацию о свойствах пользователей можно найти в следующих руководствах:

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

При использовании оператора соответствует регулярному выражению вы можете создавать регулярные выражения в формате RE2. Регулярное выражение может соответствовать всей строке целевой версии или ее части. Вы также можете использовать якоря ^ и $, чтобы сопоставлять начало, конец или всю целевую строку.

Примечание. Автоматически регистрируемые свойства пользователей недоступны при создании условий Remote Config.
Пользователь в случайном проценте Ползунок (в консоли Firebase). В REST API используются операторы <=, > и between. 0-100

Используйте это поле, чтобы применить изменение к случайной выборке экземпляров приложения (размер выборки может составлять всего 0,0001 %). С помощью ползунка можно разделить случайно перемешанных пользователей (экземпляры приложения) на группы.

Каждому экземпляру приложения постоянно сопоставляется случайное целое или дробное число в соответствии с начальным значением, определенным в этом проекте.

Правило будет использовать ключ по умолчанию (в консоли Firebase он называется Изменить начальное значение), если вы не измените начальное значение. Чтобы вернуть правило к использованию ключа по умолчанию, очистите поле Начальное значение.

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

Например, чтобы создать два связанных условия, каждое из которых применяется к неперекрывающимся 5 % пользователей приложения, вы можете настроить одно условие для соответствия проценту от 0 % до 5 %, а другое – для соответствия диапазону от 5 % до 10 %. Чтобы некоторые пользователи случайным образом попадали в обе группы, используйте разные начальные значения для правил в каждом условии.

Импортированный сегмент относится Выберите один или несколько импортированных сегментов. Для этого правила необходимо настроить специальные импортированные сегменты.
Дата и время До, после Указанные дата и время в часовом поясе устройства или в заданном часовом поясе, например "(GMT+11) Сидней". Сравнивает текущее время со временем получения данных на устройстве.
Первый запуск До, после

Таргетинг на пользователей, которые впервые открыли ваше приложение:

  • Выберите Новые пользователи, чтобы настроить таргетинг на пользователей, которые впервые откроют ваше приложение после указанной даты и времени.
  • Выберите Диапазон дат, чтобы настроить таргетинг на пользователей, которые впервые открыли ваше приложение в течение определенного периода до или после указанной даты и времени. Объедините условия До и После, чтобы настроить таргетинг на пользователей в определенном диапазоне дат.

Таргетинг на пользователей по первому запуску доступен после выбора приложения для Android, iOS или веб-приложения.

Требуются следующие SDK:

  • Firebase SDK для Google Analytics
  • Apple platforms SDK версии 9.0.0 или выше, Android SDK версии 21.1.1 или выше (Firebase BoM версии 30.3.0 или выше) и JavaScript SDK версии 12.8.0 или выше.

Analytics также должен быть включен на клиенте во время первого запуска.

Идентификатор установки относится Укажите один или несколько идентификаторов установки (не более 50). Это правило возвращает значение true для определенной установки, если ее идентификатор есть в списке значений, разделенных запятыми.

Подробнее о том, как получить идентификаторы установки…
Пользователь существует (без оператора) Таргетинг на всех пользователей всех приложений в текущем проекте.

Используйте это правило, чтобы сопоставить всех пользователей в проекте, независимо от приложения или платформы.

Специальный сигнал Для строковых значений:
содержит;
не содержит;
точное соответствие;
содержит регулярное выражение.

Для числовых значений:
=, ≠, >, ≥, <, ≤.

Для значений версий:
=, ≠, >, ≥, <, ≤.

При сравнении строк в этом правиле учитывается регистр. При использовании операторов "точно соответствует", "содержит", "не содержит" или "содержит регулярное выражение" можно выбрать несколько значений. При использовании оператора "содержит регулярное выражение" вы можете создавать регулярные выражения в формате RE2. Регулярное выражение может соответствовать всей строке целевой версии или ее части. Вы также можете использовать якоря ^ и $, чтобы сопоставлять начало, конец или всю целевую строку.

Для клиентских сред поддерживаются следующие типы данных:
  • iOS: int, double
  • Android: int, long, double.
  • Веб-поиск: число

Число, представляющее номер версии, которой должно соответствовать устройство (например, 2.1.0).

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

Параметры и условия поиска

Вы можете искать ключи параметров, значения параметров и условия в консоли Firebase, используя окно поиска в верхней части страницы DevOps & Engagement (DevOps и вовлечение) > Remote Config > Parameters (Параметры).

Ограничения на параметры и условия

В проекте Firebase может быть до 3000 параметров и до 2000 условий. Ключи параметров могут содержать до 256 символов, должны начинаться с символа подчеркивания или буквы английского алфавита (A–Z, a–z) и могут включать цифры. Общая длина строк со значениями параметров в проекте не может превышать 1 000 000 символов. Кроме того, правила условий, основанные на свойствах пользователей, могут включать до 100 значений свойств пользователей. Полный список ограничений приведен в разделе Квоты и ограничения.

Как посмотреть изменения параметров и условий

Последние изменения в шаблонах Remote Config можно посмотреть в консоли Firebase. Для каждого параметра и условия можно:

  • Имя пользователя, который последним изменил параметр или условие.

  • Если изменение было внесено в тот же день, вы увидите, сколько минут или часов прошло с момента его публикации в активном шаблоне Remote Config.

  • Если изменение произошло один или несколько дней назад, посмотрите дату, когда оно было опубликовано в активном шаблоне Remote Config.

История изменений параметров

В консоли Firebase перейдите на страницу DevOps & Engagement (DevOps и взаимодействие) > Remote Config (Удаленная конфигурация) > Parameters (Параметры). В столбце Последняя публикация указано, кто последним изменил параметр и когда это произошло.

  • Чтобы посмотреть метаданные изменений для сгруппированных параметров, разверните группу параметров.

  • Чтобы отсортировать список по дате публикации в порядке возрастания или убывания, нажмите на заголовок столбца Последняя публикация.

История изменений условий

В консоли Firebase перейдите в раздел DevOps & Engagement (DevOps и вовлечение) > Remote Config (Удаленная конфигурация) > Conditions (Условия). Рядом с каждым условием в разделе Последнее изменение указано, кто и когда его изменил.

Дальнейшие действия

Чтобы настроить проект и приложение Firebase для использования Remote Config, ознакомьтесь со статьей Начало работы с Firebase Remote Config.