dev.cartridge.analytics.getGameAnalytics
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"attribution": {
"properties": {
"ctrBySurface": {
"items": {
"ref": "#ctrBySurface",
"type": "ref"
},
"type": "array"
},
"topReferrerFeeds": {
"items": {
"ref": "#namedCount",
"type": "ref"
},
"type": "array"
},
"trafficSources": {
"items": {
"ref": "#namedCount",
"type": "ref"
},
"type": "array"
}
},
"required": [
"trafficSources",
"topReferrerFeeds",
"ctrBySurface"
],
"type": "object"
},
"conversions": {
"properties": {
"funnel": {
"ref": "#funnel",
"type": "ref"
},
"recordTrends": {
"items": {
"ref": "#recordTrendPoint",
"type": "ref"
},
"type": "array"
}
},
"required": [
"recordTrends",
"funnel"
],
"type": "object"
},
"ctrBySurface": {
"properties": {
"clicks": {
"type": "integer"
},
"ctr": {
"description": "clicks / impressions for this surface, 0..1 (float; unknown-typed).",
"type": "unknown"
},
"impressions": {
"type": "integer"
},
"surface": {
"type": "string"
}
},
"required": [
"surface",
"impressions",
"clicks",
"ctr"
],
"type": "object"
},
"discovery": {
"properties": {
"feedBreakdown": {
"items": {
"ref": "#namedCount",
"type": "ref"
},
"type": "array"
},
"impressionsOverTime": {
"items": {
"ref": "#impressionPoint",
"type": "ref"
},
"type": "array"
},
"topSearchTerms": {
"items": {
"ref": "#namedCount",
"type": "ref"
},
"type": "array"
}
},
"required": [
"impressionsOverTime",
"feedBreakdown",
"topSearchTerms"
],
"type": "object"
},
"engagement": {
"properties": {
"avgScrollPct": {
"description": "Mean scroll depth percentage (float; unknown-typed).",
"type": "unknown"
},
"dailyUniques": {
"items": {
"ref": "#timeseriesPoint",
"type": "ref"
},
"type": "array"
},
"dwellDistribution": {
"items": {
"ref": "#namedCount",
"type": "ref"
},
"type": "array"
},
"tabEngagement": {
"items": {
"ref": "#namedCount",
"type": "ref"
},
"type": "array"
}
},
"required": [
"dwellDistribution",
"avgScrollPct",
"tabEngagement",
"dailyUniques"
],
"type": "object"
},
"funnel": {
"properties": {
"actions": {
"type": "integer"
},
"impressions": {
"type": "integer"
},
"pageviews": {
"type": "integer"
}
},
"required": [
"impressions",
"pageviews",
"actions"
],
"type": "object"
},
"impressionPoint": {
"description": "Impressions on one day, split by discovery surface.",
"properties": {
"date": {
"type": "string"
},
"feed": {
"type": "integer"
},
"search": {
"type": "integer"
}
},
"required": [
"date",
"search",
"feed"
],
"type": "object"
},
"main": {
"description": "Owner-facing analytics for a single game. Authenticates the caller, verifies they own the game, then merges ClickHouse rollups with record-creation trends from HappyView. Fractional metrics use `unknown` because atproto lexicons have no float type.",
"output": {
"encoding": "application/json",
"schema": {
"properties": {
"attribution": {
"ref": "#attribution",
"type": "ref"
},
"conversions": {
"ref": "#conversions",
"type": "ref"
},
"discovery": {
"ref": "#discovery",
"type": "ref"
},
"engagement": {
"ref": "#engagement",
"type": "ref"
},
"generatedAt": {
"format": "datetime",
"type": "string"
},
"name": {
"type": "string"
},
"range": {
"knownValues": [
"7d",
"30d",
"90d"
],
"type": "string"
},
"slug": {
"type": "string"
},
"totals": {
"ref": "#totals",
"type": "ref"
}
},
"required": [
"slug",
"name",
"range",
"generatedAt",
"totals",
"discovery",
"attribution",
"engagement",
"conversions"
],
"type": "object"
}
},
"parameters": {
"properties": {
"range": {
"default": "30d",
"description": "Reporting window ending today (UTC).",
"knownValues": [
"7d",
"30d",
"90d"
],
"type": "string"
},
"slug": {
"description": "Slug of the game to report on. The caller must own it.",
"maxLength": 512,
"type": "string"
}
},
"required": [
"slug"
],
"type": "params"
},
"type": "query"
},
"namedCount": {
"description": "A labelled count, e.g. a feed name or search term with its total.",
"properties": {
"count": {
"type": "integer"
},
"name": {
"type": "string"
}
},
"required": [
"name",
"count"
],
"type": "object"
},
"recordTrendPoint": {
"description": "Authoritative record-creation counts for one day.",
"properties": {
"date": {
"type": "string"
},
"likes": {
"type": "integer"
},
"listAdds": {
"type": "integer"
},
"reviews": {
"type": "integer"
}
},
"required": [
"date",
"likes",
"reviews",
"listAdds"
],
"type": "object"
},
"timeseriesPoint": {
"description": "A single day's value in a time series. `date` is 'YYYY-MM-DD' (UTC).",
"properties": {
"date": {
"type": "string"
},
"value": {
"type": "integer"
}
},
"required": [
"date",
"value"
],
"type": "object"
},
"totals": {
"properties": {
"avgDailyUniques": {
"description": "Mean of per-day unique visitors across the range (float; unknown-typed).",
"type": "unknown"
},
"avgDwellMs": {
"description": "Mean dwell time in milliseconds (float; unknown-typed).",
"type": "unknown"
},
"avgScrollPct": {
"description": "Mean scroll depth percentage (float; unknown-typed).",
"type": "unknown"
},
"clicks": {
"type": "integer"
},
"ctr": {
"description": "clicks / impressions, 0..1 (float; unknown-typed).",
"type": "unknown"
},
"impressions": {
"type": "integer"
},
"medianDwellMs": {
"description": "Median dwell time in milliseconds (float; unknown-typed).",
"type": "unknown"
},
"pageviews": {
"type": "integer"
}
},
"required": [
"impressions",
"clicks",
"pageviews",
"ctr",
"avgDwellMs",
"medianDwellMs",
"avgScrollPct",
"avgDailyUniques"
],
"type": "object"
}
},
"id": "dev.cartridge.analytics.getGameAnalytics",
"lexicon": 1
}
Metadata
- DID
-
did:plc:4mrwcmxk266itsdn33leqljq - CID
-
bafyreid7ovsv5mm4ntsowvdwtpqzw3olighihgzhxzt7otcjx3ohku2ehu - Indexed At
- 2026-07-26 01:40 UTC
- AT-URI
-
at://did:plc:4mrwcmxk266itsdn33leqljq/com.atproto.lexicon.schema/dev.cartridge.analytics.getGameAnalytics
Similar Lexicons
Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
Headline analytics for every game the authenticated caller owns. Powers the multi-game dashboard overview. Fractional metrics use `unknown` because atproto lexicons have no float type.