👻 Spooky Analytics

Analytics so accurate,
it's spooky

Product Manager as a Service for Game Developers.
Predictive analytics, automated event evaluation, and actionable insights.

No credit card required · Setup in 5 minutes

🎯

PM as a Service

Weekly actionable insights leveraging live data. Prioritized low-hanging fruit to improve retention & revenue.

🧭

Event Evaluation

Automatic event depth optimization for incentivized and organic flows. Complex event auto-generation and MMP integration.

🔮

Predictive Analytics

Real-time client-side predictions. Spend/churn classification and LTV calculation per UA channel.

💸

Startup-Friendly

Free to try. Starting at $99/game/month. Backed by Google for Startups, Startup HUB Poland, Spooky House Studios.

Ready to see what your players are really doing?

✨ Funded by Google For Startups

© 2025 Spooky Analytics · Making game analytics less scary, more spooky.

👻 Spooky Analytics

Your Apps

New App

Loading…

Integration Guide

Send analytics events from your app to Spooky Analytics. Choose your platform below.

1. Endpoint

Send a POST request to:

POST /v1/events

Base URL is provided in your project settings.

2. Request Body Format

{ "request_id": "UUID — unique per batch for idempotency", "app_id": "your.app.bundle.id", "user_id": "user_or_device_id", "session_id": "s_UUID", "platform": "ios | android | web", "app_version": "1.2.3", "country": "US", "language": "en", "events": [ { "event_name": "level_complete", "event_time": 1706000120, "params": { "level": 5, "score": 980 } } ] }

3. Send Events — Code Snippets

4. Session Management

Sessions are defined by user activity with an inactivity timeout (default: 2 minutes). No explicit session_end event is required.

For each event:
  1. Check if current_time - last_event_time > SESSION_TIMEOUT
  2. If yes → generate a new session_id (UUID prefixed with s_)
  3. If no → reuse the current session_id
  4. Update last_event_time

5. Batching & Offline Queue

SettingRecommended
Batch size50 events
Batch interval30 seconds
Offline queue max10,000 events / 5 MB
Offline max age7 days
Retry attempts3 (exponential backoff: 5s, 15s, 60s)

6. Predictions API

Request ML-powered purchase predictions for a user. Recommended: once daily on app open, cache for 24h.

GET /v1/predictions/{user_id} Header: X-App-Id: your.app.bundle.id

Response:

{ "user_id": "user_123", "segment": "HOT | WARM | COLD | null", "purchase_probability_7d": 0.85, "probability_percentile": 0.95 }
SegmentMeaningSuggested Action
HOTTop 5% — high purchase probabilityShow special offer
WARMTop 20% — medium probabilityShow promo on exit
COLDRest — low probabilityStandard UX

7. Response Codes

CodeMeaningAction
200SuccessRemove events from queue
400Invalid requestDon't retry — fix data
401UnauthorizedCheck API key
429Rate limitRetry after Retry-After
500Server errorRetry with backoff

Sign In

or