Lightweight Python SDK for tgram-analytics
Project description
tgram-analytics Python SDK
Lightweight Python SDK for tgram-analytics. Track events and pageviews from your Python backend.
Install
pip install tgram-analytics
Get a free proj_ API key from @MyTelegramAnalyticsBot on Telegram (1 project free), or self-host the server and create keys via your own bot.
Quick start (sync)
from tgram_analytics import TGA
with TGA("proj_xxx", "https://analytics.example.com") as tga:
tga.track("signup", session_id="user-session-123", properties={"plan": "pro"})
tga.pageview(session_id="user-session-123", url="/dashboard")
Quick start (async)
from tgram_analytics import AsyncTGA
async with AsyncTGA("proj_xxx", "https://analytics.example.com") as tga:
tga.track("signup", session_id="user-session-123")
await tga.flush()
Batching
Buffer events and send them in batches to reduce HTTP requests:
from tgram_analytics import TGA, BatchOptions
tga = TGA("proj_xxx", "https://analytics.example.com", batch=BatchOptions(max_size=20, max_wait=3.0))
# Events are buffered and auto-flushed when max_size is reached or max_wait seconds elapse
tga.track("click", "session-1")
tga.flush() # manual flush
tga.close() # flushes + closes HTTP client
Identifying users
Attach persistent properties to a session. All subsequent track() and pageview() calls for that session will include them:
tga.identify("session-123", {"plan": "pro", "locale": "en-US"})
tga.track("purchase", "session-123", {"amount": 49})
# sent properties: {"plan": "pro", "locale": "en-US", "amount": 49}
Per-event properties override identified properties when keys conflict.
Call tga.forget("session-123") to clear stored properties for a session.
API reference
TGA(api_key, server_url, *, batch=False, timeout=10.0)
Sync client. api_key must start with "proj_".
batch—False(default),True(default thresholds), orBatchOptions(max_size=10, max_wait=5.0)timeout— HTTP request timeout in seconds
AsyncTGA(api_key, server_url, *, batch=False, timeout=10.0)
Async client with the same constructor signature.
.track(event_name, session_id, properties=None)
Track a custom event. Fire-and-forget — errors are logged, never raised.
.pageview(session_id, url, referrer=None, properties=None)
Track a pageview event.
.identify(session_id, properties)
Store properties that are merged into all subsequent events for this session.
.forget(session_id)
Remove stored identify() properties for a session.
.flush()
Send all buffered events immediately. No-op if batching is disabled.
.close() / await .close()
Flush pending events and close the HTTP client.
Both clients support context managers (with / async with) for automatic cleanup.
Error handling
Analytics should never break your application. All HTTP and network errors are caught and logged via Python's logging module under the tgram_analytics logger:
import logging
logging.getLogger("tgram_analytics").setLevel(logging.DEBUG)
Only the constructor raises exceptions (on invalid api_key or missing server_url).
License
MIT
Links
- Website: https://tgram-analytics.com
- Server (API): https://github.com/tgram-analytics/server
- JS SDK: https://github.com/tgram-analytics/tgram-analytics-js
- Python SDK: https://github.com/tgram-analytics/tgram-analytics-py
- Flutter SDK: https://github.com/tgram-analytics/tgram-analytics-flutter
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tgram_analytics-0.1.2.tar.gz.
File metadata
- Download URL: tgram_analytics-0.1.2.tar.gz
- Upload date:
- Size: 40.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
45fabb07e330f7d1f4c63dab4eae45b334ee0303f0dada6e1eb70888c15d3dbf
|
|
| MD5 |
527e6762de95d5f5f55a60c4b23b9efe
|
|
| BLAKE2b-256 |
c165a4cefca3143a582c0c54a549d943a95420255f12de29ff59909c0d0d4665
|
File details
Details for the file tgram_analytics-0.1.2-py3-none-any.whl.
File metadata
- Download URL: tgram_analytics-0.1.2-py3-none-any.whl
- Upload date:
- Size: 10.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
81f398c5f675d8a940c0d6ca224170b1a77165815eae32dce81eabaeee75bc37
|
|
| MD5 |
097a3e26f158e2742ebaba16a6c9977f
|
|
| BLAKE2b-256 |
90f82768eed852d31b15033e1a26f2de821d61309e8fe8c7a59c8e60e76e5742
|