Автопилот 2077 — Занятие 5 — Статистика запуска

Вывод админу статистики по всем участникам запуска
(число выполнивших задания в марафоне)

Для примера рассмотрим марафон «Автопилот 2077». В нём было 5 домашних заданий. Игроки писали комментарии под пятью постами.

Нам надо отследить показатели:

  • сколько людей зашли в марафон (первый сегмент)
  • сколько людей выполнили конкретное задание (второй сегмент)
  • конверсию из первого сегмента во второй — сколько процентов людей от всех зашедших в марафон выполнили конкретное задание

Число игроков, зашедших на марафон (Первый сегмент)

Игроки заходили на подписную страницу, соответствующую событию «Добавлен в список». Это событие хранит всех не отписавшихся игроков. То есть в момент подписки происходит событие (оно может запустить команду). А в момент отписки выполнение события «Добавлен в список» отменяется.

Автопилот 2077 — Занятие 5 — Статистика запуска, image #1

Число зашедших в марафон (без учёта отписавшихся) = числу людей, для которых помечено выполненным данное событие. Берём номер события и вставляем в функцию:
{list_count} 797969 {/list_count}

Число зашедших в марафон (текущих + отписавшихся) = числу людей, для которых помечена выполненной команда «Зарегистрировался на марафон» (команда с данным событием, но без условий):
{command_count} XXXXX {/command_count}, где XXXXX — номер команды

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

Замечание. В ходе реального запуска мы не создавали такой команды. ;( Поэтому всех зашедших в марафон нам придётся считать через другой сервис, что очень неудобно.

Игроки, сдавшие задание X на проверку (Второй сегмент)

Игроки писали комментарий под постом с заданием X. На каждый пост мы настроили по одной команде, реагировавшей на событие «Написал комментарий».

Автопилот 2077 — Занятие 5 — Статистика запуска, image #2

Например, число сдавших задание 1 = числу людей, для которых команда «Задание 1» помечена выполненной. Берём номер команды и вставляем в функцию:
{command_count} 380185 {/command_count}

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

Как посчитать, сколько процентов составляют люди сегмента 2 от людей сегмента 1?

  • Делим людей сегмента 2 ({command_count} 380185 {/command_count})
  • на людей сегмента 1 ({list_count} 797969 {/list_count})
  • умножаем на 100 (процентов, но знак % не пишем)
  • всё выражение помещаем внутрь функции «математика» (она производит математические операции): {math} _____ | 0 {/math}, второй параметр 0 — не оставлять десятичных знаков, то есть 15 вместо 15.35894672
  • дописываем в конце знак %

Всё вместе выглядит так:

Сделали задание 1: 
{math} {command_count} 380185 {/command_count} / {list_count} 797969 {/list_count} * 100 |0 {/math} %

Аналогично для других заданий марафона.

Страшно? Мне да. Но когда я вспоминаю, что собирал эту конструкцию по частям, то начинаю видеть эти части.

Собираем команду

Автопилот 2077 — Занятие 5 — Статистика запуска, image #3

Пусть админ пишет в сообщения сообщества слово СТАТА и получает подробный отчёт по всем заданиям.

> Событие: Написал сообщение со словом СТАТА

Автопилот 2077 — Занятие 5 — Статистика запуска, image #4

Команда должна срабатывать только для админов. Если не-админ напишет такое слово, то команда не должна сработать.

> Условие: Сотрудник аккаунта

  • Кликаем по «Выбрано пользователей» и добавляем ссылки на тех людей, которые имеют право смотреть результаты запуска.
  • Реакцию на невыполнение лучше не заполнять. Мы показали её для примера, что так можно.
Автопилот 2077 — Занятие 5 — Статистика запуска, image #5

Важно! При сдаче домашнего задания №5 отключите условие, иначе преподаватель Андрей Горячих не сможет принять ваше задание.

Когда кто-то так делает, в мире грустит один Андрей
Когда кто-то так делает, в мире грустит один Андрей

При расчёте каждой из конверсий мы считаем количество людей в сегменте 1. Каждый вызов функции — это обращение в Базу Данных Автопилота. Запросим число людей в сегменте 1 только один раз и запишем в переменну → вызовов будет меньше → работа команды быстрее.

> Действие: Временная переменная

  • Название: %all%
  • Значение: {list_count} 797969 {/list_count}
Автопилот 2077 — Занятие 5 — Статистика запуска, image #7

> Действие: Написать сообщение в ответ

  • В текст сообщения вставляем сформированные функции
  • Вместо числа людей в сегменте 1 вставляем просто %all%
Статистика этого марафона

Сдали ДЗ 1: {command_count} 380185 {/command_count} ({math} {command_count} 380185 {/command_count} / %all% * 100 | 0{/math}%)

Сдали ДЗ 2: {command_count} 381921 {/command_count} ({math} {command_count} 381921 {/command_count} / %all% * 100  | 0{/math}%)

Сдали ДЗ 3: {command_count} 383801 {/command_count} ({math} {command_count} 383801 {/command_count} / %all% * 100  | 0{/math}%)

Сдали ДЗ 4: {command_count} 385441 {/command_count} ({math} {command_count} 385441 {/command_count} / %all% * 100  | 0{/math}%)
Автопилот 2077 — Занятие 5 — Статистика запуска, image #8

Важно для маркетолога! [для продвинутых]

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

Вы должны самостоятельно учесть этот момент при настройке (до публикации домашних заданий). Иначе могут возникать забавные (на самом деле нет) ошибки статистики. Например, число сделавших задание больше числа зашедших на марафон.

Из домашних заданий
Из домашних заданий

На реальном запуске достаточно в команды по сдаче ДЗ поставить условие «В списке подписчиков» и указать список: Марафон «Автопилот 2077».

  • Команды будут запускаться только для тех, кто зашёл на марафон.
  • А тех, кто не зашёл, отправлять на подписную страницу. Например, таким текстом
Не торопитесь сдавать задание...
Похоже, вы не ещё не зарегистрировались на наш марафон.
Сначала зарегистрируйтесь по ссылке:
→ https://vk.com/app6177183_-41103148#l=XXXXX
А затем возвращайтесь и напишите новый комментарий с ДЗ.

Команды для домашних заданий будут выглядеть так:

Автопилот 2077 — Занятие 5 — Статистика запуска, image #10

Немного сухой теории [для продвинутых]

Общая информация и теория есть здесь: https://vk.com/@skyautome-vars?anchor=kolichestvo-uchastnikov-spiska-sluchayny-uchastnik

Можете копировать примеры ниже.

Статистика выполнения событий / уровней списков

Синтаксис функции {list_count} XXXXX {/list_count}:

  • Внутри функции пишутся аргументы:
    аргумент_1 | аргумент_2 | аргумент_3
  • Первый аргумент — номер списка / события, в котором считаем людей
  • Второй аргумент — с какими уровнями считаем. По умолчанию 0, считаются люди с любыми уровнями. Допускается перечисление через запятую (a,b,c) или интервал через дефис (min-max).
  • Третий аргумент — в какую дату-время произошло последнее изменение уровня списка. По умолчанию 0, считается любое время. Допускается либо одно значение (с которого начинаем считать), либо интервал через дефис (min-max).

Примеры:

  • {list_count} XXXXX {/list_count} — общее число человек в списке (с любыми уровнями этого списка, если их несколько). Обычно это все, прошедшие данный этап или выполнившие данное задание.
  • {list_count} XXXXX | 50 {/list_count} — число человек в списке, у которых уровень этого списка =50. Важно: 0 — выведет всех людей в списке. Чтобы посчитать людей, которые НЕ сделали задание, надо использовать другие методики.
  • {list_count} XXXXX | 10,20,80 {/list_count} — число человек в списке, у которых уровень =10, 20 или 80
  • {list_count} XXXXX | 50-100 {/list_count} — число человек в списке, у которых уровень от 50 до 100 (включительно)
  • {list_count} XXXXX | 0 | {date}%s|0|16:00{/date} {/list_count} — число человек в списке, для которых последнее изменение уровня списка произошло, начиная с 16:00 сегодняшнего дня. Время задаётся в формате UNIX — вписывается в функцию {date} ____ {/date} третьим аргументом. Туда же можно указать дату. Если дата не указана, то считается, что это сегодняшний день.
  • {list_count} XXXXX | 0 | 0 - {date}%s|0|16:00{/date} {/list_count} — число человек в списке, для которых последнее изменение уровня списка произошло ДО 16:00 сегодняшнего дня.
  • {list_count} XXXXX | 0 | {date}%s|0|16:00{/date} - {date}%s|0|23:59{/date} {/list_count} — число человек в списке, для которых последнее изменение уровня списка произошло сегодня в период с 16:00 до 23:59.
  • {list_count} XXXXX | 0 | {date}%s|0|2020.08.12 00:00{/date} - {date}%s|0|2020.08.12 23:59{/date} {/list_count} — число человек в списке, для которых последнее изменение уровня списка произошло 12 августа 2020 года.

Статистика выполнения команд

Используется функция {command_count} XXXXX {/command_count}.
Синтаксис такой же.

Вывод игроку его личного прогресса в сообщении

Или «карта марафона». Это очень удобный инструмент, с помощью которого участник сможет сам следить, что он сделал или не сделал.

Теория

Для каждого задания надо писать, выполнил ли его участник («галочка») или не выполнил («крестик»). А если не выполнил — заботливо прикреплять ссылки на пост, где можно узнать/выполнить задание.

Очень удобно для этого использовать функцию {if}. Синтаксис у неё такой:

{if}условие-число|Текст, если число больше 0|Текст, если число = 0 или не число{/if}

На примере задания 1:

{if} {command_level} 380185 {/command_level}|Задание 1 выполнено. Молодец!|Задание 1 ждёт своего выполнения. Спешите!{/if}
  • Условием является уровень команды, которая принимает это задание.
    {command_level} 380185 {/command_level}
    Если сдавал ДЗ → число выполнений команды 1 или более. Отправится текст, записанный во втором параметре.
    Если не сдавал → число выполнений команды 0. Отправится текст, записанный в третьем параметре.
  • Во втором параметре пишем текст, если задание сдано — «галочка»:
  • В третьем параметре пишем текст, если задание не сдано — «крестик» и ссылка на задание: ❌👉 https://vk.com/wall-41103148_26100

Собираем команду

Автопилот 2077 — Занятие 5 — Статистика запуска, image #11

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

Секция 1. Событие. Написал сообщение с ключевиком, равным прогресс

Автопилот 2077 — Занятие 5 — Статистика запуска, image #12

Секция 2. Событие. Получил сообщение от админа с ключевиком детальный рейтинг

  • Чтобы событие работало, прочитайте инструкцию (по знаку вопроса в правом верхнем углу события)
Автопилот 2077 — Занятие 5 — Статистика запуска, image #13

> Действие. Написать сообщение в ответ

  • В нём выведем функции, записанные для всех заданий нашего марафона.
%first_name%, это ваш прогресс в марафоне

▪  Задание 1 {if} {command_level} 380185 {/command_level} |✔|❌
👉 https://vk.com/wall-41103148_26100{/if}
▪ Задание 2 {if} {command_level} 381921 {/command_level} |✔|❌
👉 https://vk.com/wall-41103148_27209{/if}
▪ Задание 3 {if} {command_level} 383801 {/command_level} |✔|❌
👉 https://vk.com/wall-41103148_27807{/if}
▪ Задание 4 {if} {command_level} 385441 {/command_level} |✔|❌
👉 https://vk.com/wall-41103148_28335{/if}
▪ Задание 5 {if} {command_level} 387161 {/command_level} |✔|❌
👉 https://vk.com/wall-41103148_29250{/if}
Автопилот 2077 — Занятие 5 — Статистика запуска, image #14

Посмотрим, как это работает для трудолюбивого Сергея и для халтурщика Никиты:

Автопилот 2077 — Занятие 5 — Статистика запуска, image #15

То же самое можно делать и в картинках-сертификатах. В нашей «карточке КиберПилота» выполненные задания отмечаются медальками. Картинка создаётся генератором изображений «Автохудожник». Его мы рассмотрим в отдельном уроке.

Автопилот 2077 — Занятие 5 — Статистика запуска, image #16

Выдача бонуса за отзыв в обсуждении

Текстовую инструкцию можно посмотреть здесь: https://vk.com/@skyautome-bonus-za-otzyv

Автопилот 2077 — Занятие 5 — Статистика запуска, image #17
Автопилот 2077 — Занятие 5 — Статистика запуска, image #18
Автопилот 2077 — Занятие 5 — Статистика запуска, image #19

Спецпредложения для участников

Записаться в Лётную школу по специальным условиям можно по ссылке ниже

Автопилот 2077 — Занятие 5 — Статистика запуска, image #20

Внимание! ЗАКАЗАТЬ по этим ↑ ценам можно до вечера воскресенья.
Описание каждого из продуктов доступно по ссылке ниже ↓

ИЗУЧИТЬ ПРЕДЛОЖЕНИЯ МОЖНО ТУТ

Домашнее задание

  • Для команды из задания 3 (где вы делали пост с домашним заданием в комментариях)
  • При помощи функции {command_count} 0000 {/command_count}
  • Настройте реакцию на сообщение с текстом равным: ДЗШКИ
  • В ответ напишите сообщение с числом человек
  • Конверсию в процентах выводить не нужно
  • Условие «Сотрудник аккаунта» добавлять не нужно

Пример сообщения:

Домашнее задание выполнили: {command_count} 3210 {/command_count} человек

В комментариях к уроку оставьте ссылку на диалог с вашим сообществом (кликнув по которой, преподаватель сможет написать сообщение: ДЗШКИ)

пост урока тут → vk.com/wall-41103148_29250

1211 views·20 shares