Skip to main content

Event Drill Down

The Drill Down API provides access to the same data which is available on the Engagement: Event Drill Down page of the justtrack dashboard.

Table API

Use the Table API for feeding your own drill down tables. Send a POST request to:

curl -H X-API-Key: <API_KEY> https://api.justtrack.io/reporting/v1/drill-down/table

Request

{
"cohort": {
"enabled": false,
"dx": []
},
"interval": {
"from": "2023-01-01",
"until": "2023-01-05"
},
"dimensions": [
"eventName",
"eventDimension[DIMENSION NAME]"
],
"metrics": [
"totalEventsCount"
],
"filters": {
"app": [
"APP NAME"
],
"eventName": [
"EVENT NAME"
],
"eventDimension[DIMENSION NAME]": [
"VALUE"
]
},
"pagination": {
"page": 0,
"limit": 25
},
"orderBy": {
"name": "eventName",
"direction": "desc"
}
}
NameTypeDescription
cohortCohort objectCohort or daily view.
intervalInterval objectAn interval within which data should be aggregated.
metrics[]stringList of requested metrics.

Refer to our supported request values for options.
dimensions[]dimensionsA list of dimensions by which data should be split. You can request up to 3 dimensions.This can include named event dimensions in this form: eventDimension[DIMENSION NAME].

Refer to our supported request values for options.
filtersFilters objectOptional filters to limit requested.

Refer to our supported request values for options.
paginationPagination objectBatch number and amount of data rows to return.
orderByOrderBy objectDescending or ascending order by selected metric or dimension.

Responses

200
{
"pagination": {
"page": int,
"limit": int,
"total": int
},
"rows": [
{
"<dimension>": string,
"<metric>": float
}
],
"sum": {
"<metric>": float
}
}
NameTypeDescription
paginationPagination objectUsed pagination settings and total amount of data rows.
rows[]RowA list of data rows.
sumSum objectSum for all table entries (not only for the requested page).
400

If you provide a valid JSON request body but with a data error, you'll receive an INVALID_ARGUMENT response:

{
"code": 400,
"requestId": "a0b12345-6c78-90123-4def-ghij56789012",
"details": [
"requested metrics are not supported: [<INVALID_METRICS>]",
"requested dimensions are not suported: [<INVALID_DIMENSIONS>]"
],
"status": "INVALID_ARGUMENT"
}

If you provide an invalid JSON request body, you'll receive an INVALID_REQUEST response:

{
"code": 400,
"requestId": "a0b12345-6c78-90123-4def-ghij56789012",
"details": [
"could not decode body: <MESSAGE>"
],
"status": "INVALID_REQUEST"
}
500

If there is a backend error, you'll receive an INTERNAL error response:

{
"code": 500,
"requestId": "",
"details": [],
"status": "INTERNAL"
}

As the error details are internal, we won't include them in the response.

Graph API

The Graph API offers the same data as Table API with more flexible date grouping options.

curl -H X-API-Key: <API_KEY> https://api.justtrack.io/reporting/v1/drill-down/graph

Request

{
"cohort": {
"enabled": bool,
"dx": [int]
},
"interval": {
"from": "YYYY-mm-dd",
"until": "YYYY-mm-dd"
},
"granularity": string,
"metrics": [string],
"filters": {
"<dimension>": [string]
}
}

NameTypeDescription
cohortCohort objectCohort or daily view.
intervalInterval objectAn interval within which data should be aggregated.
granularityGranularity objectScale of the data aggregation.
metrics[]stringList of requested metrics.

Refer to our supported request values for options.
filtersFilters objectOptional filters to limit requested.

Refer to our supported request values for options.

Responses

200
{
"<date>": {
"<metric>": float
}
}

<date> stands for the date within which data was aggregated. Depends on the requested granularity.

<metric> stands for the requested metric name and contains float value.

400

If you provide a valid JSON request body but with a data error, you'll receive an INVALID_ARGUMENT response:

{
"code": 400,
"requestId": "a0b12345-6c78-90123-4def-ghij56789012",
"details": [
"requested metrics are not supported: [<INVALID_METRICS>]",
"requested dimensions are not suported: [<INVALID_DIMENSIONS>]"
],
"status": "INVALID_ARGUMENT"
}

If you provide an invalid JSON request body, you'll receive an INVALID_REQUEST response:

{
"code": 400,
"requestId": "a0b12345-6c78-90123-4def-ghij56789012",
"details": [
"could not decode body: <MESSAGE>"
],
"status": "INVALID_REQUEST"
}
500

If there is a backend error, you'll receive an INTERNAL error response:

{
"code": 500,
"requestId": "",
"details": [],
"status": "INTERNAL"
}

As the error details are internal, we won't include them in the response.

Supported request values

Here, you'll find the available values for the metrics, dimensions, and filters request fields.

Supported metrics
[
"totalEventsCount"
]
Supported dimensions
[
"app",
"eventName",
"campaign.id",
"country",
"installAppVersionName",
"installAppVersionCode",
"network.id",
"eventDimension[jt_ad_network]",
"eventDimension[jt_ad_placement]",
"eventDimension[jt_ad_sdk_name]",
"eventDimension[jt_ad_unit]",
"eventDimension[jt_element_name]",
"eventDimension[jt_level_name]",
"eventDimension[jt_provider_name]",
"eventDimension[jt_item_id]",
"eventDimension[jt_item_name]",
"eventDimension[jt_item_type]",
]
Supported dimension filters
[
"app",
"eventName",
"campaign.id",
"country",
"installAppVersionName",
"installAppVersionCode",
"network.id",
"eventDimension[jt_ad_network]",
"eventDimension[jt_ad_placement]",
"eventDimension[jt_ad_sdk_name]",
"eventDimension[jt_ad_unit]",
"eventDimension[jt_element_name]",
"eventDimension[jt_level_name]",
"eventDimension[jt_provider_name]",
"eventDimension[jt_item_id]",
"eventDimension[jt_item_name]",
"eventDimension[jt_item_type]",
]