Docs/Data & Analytics/Custom Reports

Custom Reports

Build custom analytics views and reports tailored to your game's specific KPIs and metrics.

12 min read

Overview

Custom reports let you answer specific questions about your game by querying event data with flexible parameters. Build once, save, and schedule reports for regular delivery.

Report Builder

Access the report builder at Dashboard → Analytics → Custom Reports → New Report.

Query Components

ComponentDescriptionExample
MetricsWhat to measureCount, Sum, Average, Unique
DimensionsHow to groupDate, Event, Player Attribute
FiltersWhich data to includeLevel > 10, Country = US
Time RangeWhenLast 7 days, This month

Query Examples

Daily Revenue by Country

Query Configuration
json
{
class="code-string">"metrics": [
{ class="code-string">"type": class="code-string">"sum", class="code-string">"field": class="code-string">"properties.amount", class="code-string">"name": class="code-string">"revenue" }
],
class="code-string">"dimensions": [
{ class="code-string">"type": class="code-string">"date", class="code-string">"granularity": class="code-string">"day" },
{ class="code-string">"type": class="code-string">"property", class="code-string">"field": class="code-string">"properties.country" }
],
class="code-string">"filters": [
{ class="code-string">"field": class="code-string">"event_name", class="code-string">"operator": class="code-string">"eq", class="code-string">"value": class="code-string">"purchase_complete" }
],
class="code-string">"time_range": {
class="code-string">"type": class="code-string">"relative",
class="code-string">"value": class="code-string">"last_30_days"
},
class="code-string">"limit": 1000
}

Conversion Funnel

Funnel Query
json
{
class="code-string">"type": class="code-string">"funnel",
class="code-string">"steps": [
{ class="code-string">"event": class="code-string">"tutorial_start" },
{ class="code-string">"event": class="code-string">"tutorial_complete" },
{ class="code-string">"event": class="code-string">"first_game_start" },
{ class="code-string">"event": class="code-string">"first_purchase" }
],
class="code-string">"time_range": {
class="code-string">"type": class="code-string">"relative",
class="code-string">"value": class="code-string">"last_7_days"
},
class="code-string">"conversion_window": class="code-string">"7d",
class="code-string">"group_by": class="code-string">"properties.acquisition_source"
}

Retention Cohort

Cohort Query
json
{
class="code-string">"type": class="code-string">"cohort",
class="code-string">"cohort_event": class="code-string">"first_open",
class="code-string">"return_event": class="code-string">"session_start",
class="code-string">"time_range": {
class="code-string">"type": class="code-string">"relative",
class="code-string">"value": class="code-string">"last_90_days"
},
class="code-string">"retention_periods": [1, 3, 7, 14, 30],
class="code-string">"granularity": class="code-string">"week"
}

Available Metrics

MetricDescriptionSyntax
CountNumber of eventscount(*)
UniqueUnique playerscount_unique(player_id)
SumTotal of a propertysum(properties.score)
AverageMean of a propertyavg(properties.duration)
Min/MaxExtremesmin(properties.level)
PercentileDistributionp95(properties.load_time)

Filter Operators

OperatorDescriptionExample
eqEqualscountry eq "US"
neqNot equalsplatform neq "web"
gtGreater thanlevel gt 10
gteGreater or equalrevenue gte 100
ltLess thansession_count lt 5
inIn listcountry in ["US", "CA"]
containsString containsevent_name contains "purchase"
is_nullIs null/emptyemail is_null

Visualization Options

Chart Types

  • Line Chart: Time series, trends
  • Bar Chart: Comparisons, rankings
  • Area Chart: Stacked metrics over time
  • Pie/Donut: Distribution breakdown
  • Table: Raw data with sorting
  • Funnel: Conversion visualization
  • Cohort Grid: Retention matrix

Saving & Sharing

Save reports for reuse and collaboration:

  • Save: Store query configuration for later
  • Favorite: Add to your quick-access list
  • Share: Generate shareable link for teammates
  • Duplicate: Clone and modify existing reports

Scheduled Reports

Automate report delivery via email:

Schedule Configuration
json
{
class="code-string">"report_id": class="code-string">"rpt_abc123",
class="code-string">"schedule": {
class="code-string">"frequency": class="code-string">"weekly",
class="code-string">"day": class="code-string">"monday",
class="code-string">"time": class="code-string">"09:00",
class="code-string">"timezone": class="code-string">"America/New_York"
},
class="code-string">"recipients": [
class="code-string">"[email protected]",
class="code-string">"[email protected]"
],
class="code-string">"format": class="code-string">"pdf",
class="code-string">"include_csv": true
}

API Access

Query reports programmatically:

Query via API
bash
curl -X POST class="code-string">"https:class="code-commentclass="code-string">">//api.ilara.ai/v1/analytics/query" \
-H class="code-string">"X-API-Key: sk_live_xxx" \
-H class="code-string">"Content-Type: application/json" \
-d '{
class="code-string">"metrics": [{class="code-string">"type": class="code-string">"count"}],
class="code-string">"dimensions": [{class="code-string">"type": class="code-string">"date", class="code-string">"granularity": class="code-string">"day"}],
class="code-string">"filters": [{class="code-string">"field": class="code-string">"event_name", class="code-string">"operator": class="code-string">"eq", class="code-string">"value": class="code-string">"session_start"}],
class="code-string">"time_range": {class="code-string">"type": class="code-string">"relative", class="code-string">"value": class="code-string">"last_7_days"}
}'
Rate Limits
Analytics queries are rate-limited. Use caching for frequently-accessed data.

Best Practices

  • Start simple: Build basic queries first, then add complexity
  • Use filters: Narrow data for faster queries and clearer insights
  • Name clearly: Use descriptive report names for easy discovery
  • Document: Add descriptions explaining what the report shows
  • Review regularly: Archive reports that are no longer useful

Next Steps