Skip to content

Hitek55/AnalyticTest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EventService - Сервис Аналитики для Unity

Сервис для сбора и отправки событий аналитики на сервер с поддержкой кулдауна, гарантированной доставки и персистентного хранения.

Особенности

  • Накопление событий: События собираются в пакеты для эффективной отправки
  • Система кулдауна: Настраиваемая задержка перед отправкой для группировки событий
  • Гарантированная доставка: События сохраняются локально и переотправляются при неудачах
  • Персистентность: Несохраненные события восстанавливаются после перезапуска приложения
  • Автоматические повторы: Система повторных попыток с экспоненциальной задержкой
  • Кроссплатформенность: Поддержка Android и WebGL

Использование

Базовое использование

// Получаем ссылку на сервис
EventService eventService = FindObjectOfType<EventService>();

// Отправляем события
eventService.TrackEvent("levelStart", "level:3");
eventService.TrackEvent("rewardEarned", "type:coins,amount:100");
eventService.TrackEvent("currencySpent", "type:coins,amount:50,item:powerup");

Настройка сервиса

// Устанавливаем URL сервера аналитики
eventService.SetServerUrl("https://test55.free.beeceptor.com");

// Настраиваем время кулдауна (по умолчанию 2 секунды)
eventService.SetCooldownTime(3.0f);

Принудительная отправка

// Отправить все накопленные события немедленно (минуя кулдаун)
eventService.ForceFlushEvents();

Мониторинг состояния

// Получить количество событий в очереди
int pendingCount = eventService.GetPendingEventsCount();

// Проверить, идет ли отправка
bool isSending = eventService.IsSending();

// Проверить, активен ли кулдаун
bool isCooldown = eventService.IsCooldownActive();

Настройка в Unity

  1. Создайте пустой GameObject на сцене
  2. Добавьте компонент EventService
  3. В инспекторе настройте параметры:
    • Server Url: URL вашего сервера аналитики
    • Cooldown Before Send: Время кулдауна в секундах (обычно 1-3 секунды)
    • Max Retry Attempts: Максимальное количество попыток отправки (по умолчанию 5)
    • Retry Delay Multiplier: Множитель для увеличения задержки между попытками

Формат данных

Событие

{
    "type": "levelStart",    // Тип события (строка)
    "data": "level:3"        // Данные события (строка)
}

Запрос к серверу

{
    "events": [
        {
            "type": "levelStart",
            "data": "level:3"
        },
        {
            "type": "rewardEarned", 
            "data": "type:coins,amount:100"
        }
    ]
}

Примеры событий

// Начало уровня
eventService.TrackEvent("levelStart", "level:5");

// Завершение уровня
eventService.TrackEvent("levelComplete", "level:5,score:2500,time:180");

// Получение награды
eventService.TrackEvent("rewardEarned", "type:coins,amount:150");

// Трата валюты
eventService.TrackEvent("currencySpent", "type:coins,amount:75,item:health_potion");

// Использование предмета
eventService.TrackEvent("powerupUsed", "type:speed_boost,level:3");

// Старт игры
eventService.TrackEvent("gameStart", "version:1.2.0,platform:android");

Как работает система

  1. Накопление: Первое событие запускает кулдаун, последующие события добавляются в очередь
  2. Кулдаун: По истечении времени кулдауна все накопленные события отправляются одним запросом
  3. Отправка: HTTP POST запрос с JSON данными на указанный URL
  4. Повторы: При неудаче система автоматически повторяет отправку с увеличивающейся задержкой
  5. Сохранение: События сохраняются локально и восстанавливаются при следующем запуске

Требования

  • Unity 2019.4 или выше
  • Доступ к интернету для отправки событий
  • Разрешения на запись файлов (автоматически для persistentDataPath)

Тестирование

Используйте EventServiceExample.cs для тестирования функциональности:

  1. Добавьте EventServiceExample на GameObject со сценой
  2. Назначьте ссылку на EventService в инспекторе
  3. Запустите сцену и наблюдайте за логами в консоли
  4. Используйте UI панель для интерактивного тестирования

Файлы

  • EventService.cs - Основной класс сервиса
  • EventServiceExample.cs - Пример использования и тестирования
  • README.md - Документация

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages