Кастомные теги

Кастомный тег — это кастомная переменная, значение которой берётся из вашего приложения. После того как вы выберете Value comes from outside the app в настройках переменной, приложение может задать её значение через Adapty SDK. Например, текстовый элемент содержит «Coins:» и кастомный тег. Если приложение передаёт «120» для этого тега, пользователи видят «Coins: 120».

Используйте кастомные теги, чтобы показывать:

  • Кто это за пользователь: имя пользователя в приветствии, например «С возвращением, DragonSlayer42!»
  • Что есть у пользователя: количество дней в серии или уровень игрока.
  • Что вычисляет ваше приложение: скидка на большой пакет или ИМТ, рассчитанный на основе ответов пользователя в предыдущем флоу.

Значения и резервные данные

Ваше приложение определяет каждое значение по имени кастомного тега. Значение всегда является строкой. Adapty не форматирует и не переводит строку, поэтому приложение должно самостоятельно сделать каждое значение читаемым для пользователя перед отображением во флоу. Например, передавайте “1,250”, а не “1250.0”.

Пользователи видят Начальное значение пользовательского тега как резервное в следующих случаях:

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

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

1. Создайте пользовательский тег

  1. Откройте панель Variables во флоу-билдере.

  2. Добавьте новую переменную — нажмите .

  3. Задайте Name переменной. Код приложения должен ссылаться на неё именно так, включая регистр букв.

    • Символы: используйте латинские буквы (A–Z и a–z), цифры, _ и -. Чтобы поместить тег в группу, начните имя с названия группы и точки, например user.streak.
    • Зарезервированные имена: не используйте зарезервированные имена в любом регистре — например, PRICE, TITLE, VALUE или имена, начинающиеся с TIMER_.
    • Уникальность: имя должно быть уникальным в пределах флоу.
  4. (Опционально) Чтобы различать переменные между собой, заполните поле Description. При наведении курсора на имя переменной в билдере вы увидите это описание.

  5. В поле Initial value введите значение по умолчанию, которое пользователи увидят, если приложение не передаст никакого значения:

    • Слово, подходящее любому пользователю: для тега username в приветствии введите friend. Неаутентифицированные пользователи увидят «Welcome back, friend!». Обратите внимание, что начальное значение нельзя локализовать.
    • Тире для баланса или счётчика: чтобы не показывать некорректный баланс неаутентифицированным пользователям, введите тире (—).
  6. (Только для переменных типа String) Установите флажок Value comes from outside the app. Это действие необратимо и фиксирует Value Type.

  7. Нажмите Create variable.

Create variable form with a name, a description, the String value type, and an initial value

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

Замените переменную пользовательским тегом

Установить флажок Value comes from outside the app можно только при создании переменной. Чтобы отображать значение из приложения вместо обычной пользовательской переменной — например, из конвертированного пейвола — замените переменную пользовательским тегом:

  1. Удалите переменную и все её упоминания во флоу.
  2. Создайте пользовательский тег с тем же именем.
  3. Вставьте пользовательский тег в каждый текстовый элемент, в котором использовалась переменная.

2. Добавьте пользовательский тег в текстовый элемент

Выберите текстовый элемент. В разделе Content нажмите Add variable и выберите тег на вкладке Custom.

Custom tab of the Add variable dropdown with the streak tag in the user group

Пользовательские теги можно вставлять в каждую ветку условного текста, но нельзя использовать их в условиях if.

3. Передайте значения из вашего приложения

В коде приложения нужно использовать точное имя каждого кастомного тега, включая его группу. Например, если в группе user есть тег streak, полное имя тега — user.streak.

Код настройки зависит от платформы:

Чтобы протестировать пользовательские теги, откройте флоу в своём приложении после добавления кода, который устанавливает их значения. Холст конструктора и предпросмотр на устройствах отображают только начальные значения: мобильное приложение Adapty не устанавливает значения пользовательских тегов.

Ограничения

  • Только текстовые элементы: Пользовательские теги можно вставлять только в текстовые элементы. Следующие элементы не поддерживаются:
    • Действия Set variable
    • Действия Show alert
    • Действия Open URL
    • Плейсхолдеры полей ввода
  • Условия на пользовательские теги недоступны: Нельзя использовать пользовательский тег в условии или условной видимости. Чтобы показывать нужные фразы, элементы и экраны в зависимости от значения из приложения:
    • Фраза: Сформируйте её в коде приложения и передайте как значение тега. Например, для тега coins_message передайте «У вас 120 монет» игрокам с монетами и «Получите первые монеты» остальным.
    • Элементы и экраны: Сохраните значение как пользовательский атрибут. Затем покажите отдельный флоу аудитории, построенной на основе этого атрибута.
  • Метода SDK для обновления значений в открытом флоу нет: Чтобы показать результат на основе того, что пользователь ввёл во флоу, передайте результат в следующий флоу — как в примере с BMI.