PostHog

PostHog — это аналитическая платформа с инструментами для отслеживания поведения пользователей, визуализации использования продукта и анализа удержания. Благодаря функциям отслеживания событий, пользовательских потоков и feature flags она помогает лучше понимать ваш продукт и улучшать его.

Интеграция PostHog с Adapty позволяет без лишних усилий отслеживать события, связанные с подписками: старт триала, продления, отмены. Отправляя эти события в PostHog, вы можете анализировать, как изменения в подписках влияют на поведение пользователей, оценивать эффективность пейволов и глубже понимать свои стратегии монетизации — всё в рамках уже существующего аналитического рабочего процесса.

Характеристики интеграции

Характеристика интеграцииОписание
РасписаниеВ реальном времени; события могут появляться на дашборде PostHog не сразу.
Направление данныхСобытия Adapty отправляются с сервера Adapty на сервер PostHog.
Точка интеграции Adapty
  • SDK PostHog и Adapty в коде мобильного приложения
  • Сервер Adapty

Структура событий PostHog

Adapty отправляет выбранные события в PostHog в соответствии с настройками в разделе Events names на странице интеграции PostHog. Каждое событие имеет следующую структуру:

{
  "distinct_id": "[email protected]",
  "timestamp": "2025-01-08T11:06:12+00:00",
  "event": "subscription_started",
  "properties": {
    "$set": {
      "email": "[email protected]",
      "first_name": "John",
      "last_name": "Doe",
      "birthday": "1990-01-01",
      "gender": "male",
      "os": "iOS"
    },
    "timezone": "America/New_York",
    "ip_address": "10.168.1.1",
    "*": "{{other_event_properties}}"
  }
}

Где

ПараметрТипОписание
distinct_idStringУникальный идентификатор пользователя (например, profile.posthog_distinct_user_id, customer_user_id или profile_id).
timestampДата и время ISO 8601Дата и время события.
eventStringНазвание события, как вы его задали в разделе Events names в настройках PostHog.
propertiesObjectСодержит properties.$set и все специфичные для события свойства. Каждое свойство опционально и не будет отправлено в PostHog, если отсутствует.

Параметры properties.$set

Каждый параметр объекта properties.$set является опциональным и не будет отправлен в PostHog, если отсутствует.

ПараметрТипОписание
emailStringАдрес электронной почты пользователя.
first_nameStringИмя пользователя.
last_nameStringФамилия пользователя.
birthdayString (Date)Дата рождения пользователя.
genderStringПол пользователя.
osStringОперационная система устройства.

Настройка интеграции с PostHog

  1. Откройте страницу Integrations -> PostHog в дашборде Adapty и включите переключатель.

    posthog-on.webp
  2. Войдите в дашборд PostHog.

  3. Перейдите в Settings -> Project.

    posthog-settings.webp
  4. В окне Project прокрутите вниз до раздела Project ID и скопируйте Project API key.

  5. Вставьте API-ключ в поле Project API key в дашборде Adapty. У PostHog нет специального режима Sandbox для серверного взаимодействия.

  6. Выберите PostHog Deployment:

    ОпцияОписание
    us/euДефолтные развёртывания, размещённые PostHog.
    CustomДля self-hosted инстансов. Введите URL вашего инстанса в поле PostHog Instance URL.
  7. (опционально) Если вы используете self-hosted развёртывание PostHog, введите адрес вашего развёртывания в поле PostHog Instance URL.

  8. (опционально) При необходимости настройте параметры Reporting Proceeds, Exclude Historical Events, Report User’s Currency и Send Trial Price. Подробнее об этих опциях читайте в разделе Настройки интеграции.

  9. (опционально) Вы также можете настроить, какие события отправляются в PostHog, в разделе Events names. Отключите ненужные события или переименуйте их по необходимости.

  10. Нажмите Save, чтобы завершить настройку.

Настройка SDK

Чтобы получать данные атрибуции из PostHog, передайте значение distinctId в Adapty, как показано ниже:

Если вы используете сторонний user ID в качестве Customer User ID, не передавайте его во время activate() — сторонний SDK может ещё не успеть его сгенерировать. Вместо этого сначала вызовите activate() без CUID, затем setIntegrationIdentifier(), а потом identify() с CUID.

Теперь Adapty будет отправлять события в PostHog и получать из него данные атрибуции.