Skip to main content

Python SDK for Semetrics — AI-first product analytics platform

Project description

Semetrics Python SDK

Python SDK для отправки аналитических событий на платформу Semetrics.

Установка

pip install semetrics-sdk

Быстрый старт

from semetrics import Semetrics

# Инициализация (один раз при старте приложения)
semetrics = Semetrics(
    api_key="sm_live_ваш_ключ",
    endpoint="https://semetrics.ru/events",
    source_id="svc_my_service",   # имя сервиса или bundle id
)

# Отправка событий (не блокирует — очередь + фоновый поток)
semetrics.track(
    event_name="user_signed_up",
    user_id="user_123",
    properties={"plan": "pro", "source": "organic"},
)

semetrics.track(
    event_name="checkout_completed",
    user_id="user_123",
    properties={"amount": 1990, "currency": "RUB", "items": 3},
)

# При завершении программы — отправить все накопленные события
semetrics.shutdown()

Использование через контекстный менеджер

with Semetrics(api_key="sm_live_...", endpoint="https://semetrics.ru/events") as sm:
    sm.track("page_viewed", user_id="u1", properties={"page": "/home"})
# shutdown() вызывается автоматически при выходе из блока

Параметры конструктора

Параметр По умолчанию Описание
api_key обязательный API-ключ проекта (sm_live_...)
endpoint https://semetrics.ru/events URL сервиса
source_id None Идентификатор источника (svc_tasks, com.bv.wfm)
flush_interval 5 Интервал фонового сброса (секунды)
batch_size 50 Максимум событий в одном запросе
max_queue_size 10_000 Максимум событий в памяти
max_retries 3 Попыток при ошибке отправки
request_timeout 10 Таймаут HTTP запроса (секунды)
persistence_path None Путь к SQLite для персистентной очереди

Персистентная очередь (опционально)

Для серверных приложений с требованием "ни одно событие не должно потеряться":

semetrics = Semetrics(
    api_key="sm_live_...",
    endpoint="https://semetrics.ru/events",
    persistence_path="/var/lib/myapp/semetrics_queue.db",
)

События сохраняются в SQLite и отправляются даже после перезапуска процесса.

Принудительный сброс

# Отправить всё накопленное прямо сейчас (блокирует до завершения)
semetrics.flush()

Поля события

Поле Тип Обязательное Описание
event_name str Название события
user_id str ID аутентифицированного пользователя
anonymous_id str ID анонимного пользователя
session_id str ID сессии
properties dict Произвольные свойства события
client_ts datetime Время события (по умолчанию — now())

source_id задаётся при инициализации клиента и автоматически проставляется во все события — в track() его не нужно передавать.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

semetrics_sdk-0.3.0.tar.gz (12.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

semetrics_sdk-0.3.0-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

Details for the file semetrics_sdk-0.3.0.tar.gz.

File metadata

  • Download URL: semetrics_sdk-0.3.0.tar.gz
  • Upload date:
  • Size: 12.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for semetrics_sdk-0.3.0.tar.gz
Algorithm Hash digest
SHA256 64dd6016e315fbb6641865351c7067c9b835e0f5701d385a41775a042cc44c4d
MD5 bb3db2e8abdeb855996c6d01c66bef20
BLAKE2b-256 262f32dd49147c4441295b9259c98b6e7274956f16fe055e1a90a3c129906212

See more details on using hashes here.

File details

Details for the file semetrics_sdk-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: semetrics_sdk-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 8.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for semetrics_sdk-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8496e4d3ce56181f98a752db3055f13cae12a36da963bdb2cf39ea3112cef940
MD5 831ec80cfc8ad140e4bd888c1049dfb0
BLAKE2b-256 b40099141bdde9015db2b941eeff7aa1bad0e9be0a5c460a992dc2b96732ecc4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page