Reporting API Documentation
Welcome to Jampp's Reporting API documentation. This allows for automated access to reports fitted for your needs, obtaining the metrics grouped by the dimensions of you choice. Extract insights on performance by analyzing funnel metrics; impressions, clicks, installs and in-app events across different dimensions (e.g. country, site bundle, ad type and size, etc). On this documentation you will find the information needed to query the API, from authentication to detailed examples of usage.
API Endpoints
https://reporting-api.com/graphql
Authentication
In order to use the API, each request needs an access token. Below you will find the steps to generate this token and details on how to send it, according to the OAuth 2.0 Client Credentials specifications.
Step 1 - User Credentials (API Keys)
Generate user credentials (Client ID and Client Secret) from Ruby: https://app.jampp.com/users/credentials
You can generate as many credentials as you want. We suggest you create one API key pair for each service you want to integrate, this way you can later invalidate access to each service individually (by deleting the API key) without impacting the others.
Step 2 - Requesting an Access Token
To retrieve the access token for a given credential, you must perform a POST HTTP request to our OAuth token endpoint with the following payload:
grant_type
: This needs to be the exact stringclient_credentials
.client_id
: The client id of the credential, which can be found in the Credentials section of the dashboard.client_secret
: The client secret of the credential, also available in the Credentials section.
The response should consist of a JSON with the following fields:
access_token
: This is the access token you will need to include in the successive requests.token_type
: The token type, which will be the stringBearer
.expires_in
: The number of seconds this token will be valid.
$ curl \
-XPOST https://auth.jampp.com/v1/oauth/token \
-d 'grant_type=client_credentials' \
-d 'client_id=$CLIENT_ID' \
-d 'client_secret=$CLIENT_SECRET'
{"access_token":"token","token_type":"Bearer","expires_in":7200}
Step 3 - Using the Access Token
The access token needs to be sent in the Authorization
header of every API request in the format Bearer {access_token}
. For example: Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
$ export TOKEN=$(curl -s \
-XPOST https://auth.jampp.com/v1/oauth/token \
-d "grant_type=client_credentials" \
-d "client_id=$CLIENT_ID" \
-d "client_secret=$CLIENT_SECRET" | jq -r '.access_token')
$ curl \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-X POST \
https://reporting-api.jampp.com/v1/graphql \
-d '{"query": "{ invalidQuery }"}'
Usage
Now that you know how to authenticate yourself against the API, it's time to execute some reports.
NOTE: This section will assume a
TOKEN
environment variable exists on the environment, and that you have installs the gql-cli
One of the simplest reports one can do, is to get the spend per campaign for a particular time range.
The query for this kind of report looks like the following:
query spendPerCampaign($from: DateTime!, $to: DateTime!) {
spendPerCampaign: pivot(from: $from, to: $to) {
results {
campaignId
campaign
spend
}
}
}
If you save this query on a file named query.gql
, you can execute it against the API by doing the following:
$ cat query.gql | gql-cli \
https://reporting-api.jampp.com/v1/graphql \
--variables "from:2022-07-01" "to:2022-07-02T01:00:00" \
--headers "Authorization:Bearer $TOKEN" | jq
{
"spendPerCampaign": {
"results": [
{
"campaignId": 1,
"campaign": "Campaign 1",
"spend": 10492.259863167761
},
{
"campaignId": 2,
"campaign": "Campaign 2",
"spend": 7164.6068600564395
}
]
}
}
You might also want to get the results for a particular campaign, instead of all of them. For that, you would use the filter
argument of the pivot query. You might also be interested in having the spend per day for a whole week, and for that you should use the date
dimension in conjunction with the granularity
argument. Timezones are another thing you can customize, using context
with sqlTimezone
and a valid joda-time.
query spendPerDay(
$from: DateTime!,
$to: DateTime!,
$campaignId: Int!,
) {
spendPerDay: pivot(
from: $from,
to: $to,
filter: {
campaignId: {
equals: $campaignId
}
}
context: {
sqlTimeZone: "America/Buenos_Aires"
}
) {
results {
date(granularity: DAILY)
spend
}
}
}
There's plenty of features to make you access the data you want faster. You could see that the API offers:
cleanup
s statements, they are executed after the main report is processed, and filter based on the result.- Is a Pivot input, and can be applied to a selection of columns like
cleanup: {clicks: {greaterThan: "0"}}
- Valid operations are
greaterThan
,greaterOrEqualThan
,lowerThan
,lowerOrEqualThan
- Is a Pivot input, and can be applied to a selection of columns like
fragments
, reusable units of logic- Let's say you have complicated request, one that repeats fields at least once Fragments let you construct sets of fields, and then include them in queries where you need to.
- Forat is showed in the example below
totals
results, aggregated metrics.- They syntax is the same as results, but they accept less dimensions, since not all of them can be aggregated together
fragment metrics on PivotMetrics {
impressions
uniqueImpressions
clicks
}
fragment moreMetrics on PivotMetrics {
events
uniqueEvents
...metrics
}
query TestQuery {
pivot(
from: DateTime!, to: DateTime!,
cleanup: {clicks: {greaterThan: "0"}},
options: {removeZeroRows: true, love:true}
)
{
results {
date(granularity: DAILY)
app
... on PivotMetrics {
...moreMetrics
}
}
totals {
...metrics
}
}
}
If you save this query on a file named query.gql
, you can execute it against the API by doing the following:
$ cat query.gql | gql-cli \
https://reporting-api.jampp.com/v1/graphql \
--variables \
"from:2022-07-01" \
"to:2022-07-02T01:00:00" \
"campaignId:1" \
--headers "Authorization:Bearer $TOKEN" | jq
{
"spendPerDay": {
"results": [
{
"date": "2022-07-01T00:00:00+00:00",
"spend": 64.59747491013285
},
{
"date": "2022-07-02T00:00:00+00:00",
"spend": 64.55113205605944
},
{
"date": "2022-07-03T00:00:00+00:00",
"spend": 64.90663006136948
},
{
"date": "2022-07-04T00:00:00+00:00",
"spend": 64.5596683552398
},
{
"date": "2022-07-05T00:00:00+00:00",
"spend": 65.15007398221789
},
{
"date": "2022-07-06T00:00:00+00:00",
"spend": 64.22643498291754
},
{
"date": "2022-07-07T00:00:00+00:00",
"spend": 64.46298256605934
}
]
}
}
It might also be in your interest, especially for the case of larger pivots, to execute the pivot in an asynchronous fashion and later download the results. This is possible using the createAsyncPivot
mutation.
As an example, we will use the spendPerCampaign
query mentioned in the beginning of this section. The asynchronous analogous of this query looks like the following:
mutation asyncSpendPerCampaign($from: DateTime!, $to: DateTime!) {
createAsyncPivot(
Input: {
from: $from,
to: $to,
dimensions: ["campaignId", "campaign"],
metrics: ["spend"]
}
) {
asyncPivot {
id
status
}
}
}
If we save the query on a create_async_pivot.gql
and execute this graphql, we get the following:
$ cat create_async_pivot.gql | gql-cli \
https://reporting-api.jampp.com/v1/graphql \
--variables "from:2022-07-01" "to:2022-07-02T01:00:00" \
--headers "Authorization:Bearer $TOKEN" | jq
{
"createAsyncPivot": {
"asyncPivot": {
"id": "3a818623-25f1-4b2b-ae07-67d09c173ed6",
"status": "PENDING"
}
}
}
We can later check the status of the newly created asynchronous pivot by using the ID. We will open a new file named check_async_pivot.gql
with the following query:
query checkAsyncPivot($id: String!) {
asyncPivot(pivotId: $id) {
status
url
}
}
and execute it using the following command:
$ cat check_async_pivot.gql | gql-cli \
https://reporting-api.jampp.com/v1/graphql \
--variables "id: YOUR-PIVOT-ID" \
--headers "Authorization:Bearer $TOKEN" | jq
{
"checkAsyncPivot": {
"asyncPivot": {
"status": "READY",
"url": "https://your-results-will-be-here.csv"
}
}
}
Once the asynchronous pivot reaches the READY
status, the URL attribute of the async pivot will contain a signed url pointing to a CSV file with the content of the pivot result. It will look like this:
$ curl URL_OF_ASYNC_PIVOT
campaignId,campaign,spend
1,Campaign 1,10492.259863167761
2,Campaign 2,7164.6068600564395
Reporting API Client
We have developed a Python client to easily connect and query this API in a programatic fashion.
Instructions on how to install and use this client can be found on the Documentation.
Queries
asyncPivot
Description
Get information about the status of your async pivot.
Response
Returns an AsyncPivot!
Arguments
Name | Description |
---|---|
pivotId - String!
|
Example
Query
query asyncPivot($pivotId: String!) {
asyncPivot(pivotId: $pivotId) {
id
userId
pivotParams {
from
to
options
dimensions
metrics
cleanup
granularity
filter
cohortType
cohortWindow
context
}
status
created
lastUpdated
outputType
url
}
}
Variables
{"pivotId": "abc123"}
Response
{
"data": {
"asyncPivot": {
"id": "xyz789",
"userId": 987,
"pivotParams": PivotParams,
"status": "PENDING",
"created": "2007-12-03T10:15:30Z",
"lastUpdated": "2007-12-03T10:15:30Z",
"outputType": "S3",
"url": "abc123"
}
}
}
asyncPivots
Description
Get information about the status of your async pivots.
Response
Returns [AsyncPivot!]!
Arguments
Name | Description |
---|---|
pivotIds - [String!]
|
Default = null |
Example
Query
query asyncPivots($pivotIds: [String!]) {
asyncPivots(pivotIds: $pivotIds) {
id
userId
pivotParams {
from
to
options
dimensions
metrics
cleanup
granularity
filter
cohortType
cohortWindow
context
}
status
created
lastUpdated
outputType
url
}
}
Variables
{"pivotIds": null}
Response
{
"data": {
"asyncPivots": [
{
"id": "abc123",
"userId": 123,
"pivotParams": PivotParams,
"status": "PENDING",
"created": "2007-12-03T10:15:30Z",
"lastUpdated": "2007-12-03T10:15:30Z",
"outputType": "S3",
"url": "abc123"
}
]
}
}
pivot
Description
Execute a pivot against the Reporting API.
Response
Returns a Pivot!
Arguments
Name | Description |
---|---|
from - DateTime!
|
Date from which to execute the report. Examples: "2022-01-01", "2022-01-01T03:00:00", "2022-01-01T03:00:00+03:00". |
to - DateTime!
|
Date up to which to execute the report. Note that this date will not be included. Examples: "2022-01-01", "2022-01-01T03:00:00", "2022-01-01T03:00:00+03:00". |
filter - Filter
|
Parameter used to filter the underlying data of the report, acts the same way that a WHERE clause does on SQL. Default = null |
cleanup - Cleanup
|
Parameter used to filter rows having less (or more) events of the selected metrics. Acts the same way that a HAVING clause on SQL. Default = null |
cohortType - CohortType
|
Define the type of cohort to execute. Can be either INSTALL or TOUCH. Default = null |
cohortWindow - CohortWindow
|
When CohortType is defined, this value determines the maximum amount time after either the install, of the touch that will be allowed in order to consider the event. Default = null |
context - Context
|
Parameter used to define execution context values. Default = null |
options - Options
|
Execution flags that didnt fit anywhere else. Default = null |
Example
Query
query pivot(
$from: DateTime!,
$to: DateTime!,
$filter: Filter,
$cleanup: Cleanup,
$cohortType: CohortType,
$cohortWindow: CohortWindow,
$context: Context,
$options: Options
) {
pivot(
from: $from,
to: $to,
filter: $filter,
cleanup: $cleanup,
cohortType: $cohortType,
cohortWindow: $cohortWindow,
context: $context,
options: $options
) {
results {
ad
adParameter
adId
adSet
adSetId
adSize
adType
adUrl
advertiser
advertiserId
advertiserBillingEntity
advertiserCountryId
app
appBundle
appCategory
appId
appPlatform
campaign
campaignParameter
campaignId
campaignCountry
campaignTrackerType
campaignType
campaignTypeId
city
countryCode
countryName
group
groupParameter
groupId
region
siteName
siteCategory
siteSubcategory
siteBundle
source
sourceId
dma
zipCode
campaignGoalType
campaignContractualGoalType
rewarded
indirect
skadConversionWindow
skadAnon
deviceType
proxyType
skadId
skoverlay
skadVersion
persistentCta
triplePage
skippable
phase
date
dateToStr
dayOfWeek
timeOfDay
impressions
clicks
eviews
cpc
cpm
ctr
spend
wins
bidToWinRate
uniqueImpressions
uniqueClicks
skadAssistedInstalls
simps
sourceViewa
uniqueEvents
events
assistedEvents
assistedEventValue
eventValue
eventsCpa
eventsRoas
eventsIte
eventsRate
installs
installsCpi
installsCvr
installsIti
assistedInstalls
uniqueEventsCpa
vtaShare
}
totals {
impressions
clicks
eviews
cpc
cpm
ctr
spend
wins
bidToWinRate
uniqueImpressions
uniqueClicks
skadAssistedInstalls
simps
sourceViewa
uniqueEvents
events
assistedEvents
assistedEventValue
eventValue
eventsCpa
eventsRoas
eventsIte
eventsRate
installs
installsCpi
installsCvr
installsIti
assistedInstalls
uniqueEventsCpa
vtaShare
}
}
}
Variables
{
"from": "2007-12-03T10:15:30Z",
"to": "2007-12-03T10:15:30Z",
"filter": null,
"cleanup": null,
"cohortType": "null",
"cohortWindow": null,
"context": null,
"options": null
}
Response
{
"data": {
"pivot": {
"results": [PivotResult],
"totals": PivotTotals
}
}
}
Mutations
createAsyncPivot
Response
Returns a CreateAsyncPivotResponse!
Arguments
Name | Description |
---|---|
Input - CreateAsyncPivotInput!
|
Example
Query
mutation createAsyncPivot($Input: CreateAsyncPivotInput!) {
createAsyncPivot(Input: $Input) {
asyncPivot {
id
userId
pivotParams {
...PivotParamsFragment
}
status
created
lastUpdated
outputType
url
}
}
}
Variables
{"Input": CreateAsyncPivotInput}
Response
{"data": {"createAsyncPivot": {"asyncPivot": AsyncPivot}}}
Types
AsyncPivot
Fields
Field Name | Description |
---|---|
id - String!
|
Unique ID of the pivot. |
userId - Int!
|
ID of the user that created the asynchronous pivot. |
pivotParams - PivotParams!
|
Parameters of the report. |
status - AsyncPivotStatus!
|
Status of the report. |
created - DateTime!
|
Date when the pivot was created. |
lastUpdated - DateTime!
|
Date when the pivot status was last updated. |
outputType - AsyncPivotOutputType!
|
Type of output. |
url - String
|
URL of CSV file where to find the results. |
Example
{
"id": "xyz789",
"userId": 123,
"pivotParams": PivotParams,
"status": "PENDING",
"created": "2007-12-03T10:15:30Z",
"lastUpdated": "2007-12-03T10:15:30Z",
"outputType": "S3",
"url": "abc123"
}
AsyncPivotOutputType
Values
Enum Value | Description |
---|---|
|
Example
"S3"
AsyncPivotStatus
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
Example
"PENDING"
AttrSource
Description
Source from which the attribution was made. Can be ALL, SKAD or MMP.
Values
Enum Value | Description |
---|---|
|
|
|
|
|
Example
"ALL"
AttrTouch
Description
Type of touch from which the attribution was made. Can be ALL, CLICK or IMP.
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
Example
"ALL"
Boolean
Description
The Boolean
scalar type represents true
or false
.
Example
true
CampaignTrackerType
Description
Type of campaign tracking (SKAD/MMP).
Values
Enum Value | Description |
---|---|
|
|
|
Example
"MMP"
CampaignTrackerTypeGenericFilter
Fields
Input Field | Description |
---|---|
equals - CampaignTrackerType
|
|
notEquals - CampaignTrackerType
|
|
isIn - [CampaignTrackerType!]
|
|
isNotIn - [CampaignTrackerType!]
|
Example
{"equals": "MMP", "notEquals": "MMP", "isIn": ["MMP"], "isNotIn": ["MMP"]}
CampaignType
Description
Type of campaign (UA or RTGT).
Values
Enum Value | Description |
---|---|
|
|
|
Example
"UA"
CampaignTypeGenericFilter
Fields
Input Field | Description |
---|---|
equals - CampaignType
|
|
notEquals - CampaignType
|
|
isIn - [CampaignType!]
|
|
isNotIn - [CampaignType!]
|
Example
{"equals": "UA", "notEquals": "UA", "isIn": ["UA"], "isNotIn": ["UA"]}
Cleanup
Description
Defines a criteria to filter out result rows having less (or more) than a defined threshold for the corresponding metric.
Fields
Input Field | Description |
---|---|
clicks - LongGenericCleanup
|
|
events - LongGenericCleanup
|
|
impressions - LongGenericCleanup
|
|
installs - LongGenericCleanup
|
|
spend - FloatGenericCleanup
|
Example
{
"clicks": LongGenericCleanup,
"events": LongGenericCleanup,
"impressions": LongGenericCleanup,
"installs": LongGenericCleanup,
"spend": FloatGenericCleanup
}
CohortType
Description
Type of cohort to execute. Can be either INSTALL or TOUCH.
Values
Enum Value | Description |
---|---|
|
|
|
Example
"INSTALL"
CohortWindow
Context
Description
Parameter used to define an execution context for the pivot.
Example
{"lane": "low", "sqlTimeZone": "America/Buenos_Aires"}
CreateAsyncPivotInput
Fields
Input Field | Description |
---|---|
from - DateTime!
|
Date from which to execute the report. Examples: "2022-01-01", "2022-01-01T03:00:00", "2022-01-01T03:00:00+03:00". |
to - DateTime!
|
Date to which to execute the report. Examples: "2022-01-01", "2022-01-01T03:00:00", "2022-01-01T03:00:00+03:00". |
options - Options
|
Execution flags that didnt fit anywhere else. Default = null |
dimensions - [String!]
|
List of PivotDimensions for the query that will be executed. Default = null |
metrics - [String!]
|
List of PivotMetrics for the query that will be executed. Default = null |
filter - Filter
|
Parameter used to filter the underlying data of the report, acts the same way that a WHERE clause does on SQL. Default = null |
cleanup - Cleanup
|
Parameter used to filter rows having less (or more) events of the selected metrics. Acts the same way that a HAVING clause on SQL. Default = null |
cohortType - CohortType
|
Define the type of cohort to execute. Can be either INSTALL or TOUCH. Default = null |
cohortWindow - CohortWindow
|
When CohortType is defined, this value determines the maximum amount time after either the install, of the touch that will be allowed in order to consider the event. Default = null |
context - Context
|
Parameter used to define execution context values. Default = null |
Example
{
"from": "2007-12-03T10:15:30Z",
"to": "2007-12-03T10:15:30Z",
"options": Options,
"dimensions": ["abc123"],
"metrics": ["abc123"],
"filter": Filter,
"cleanup": Cleanup,
"cohortType": "INSTALL",
"cohortWindow": CohortWindow,
"context": Context
}
CreateAsyncPivotResponse
Fields
Field Name | Description |
---|---|
asyncPivot - AsyncPivot!
|
Example
{"asyncPivot": AsyncPivot}
DateTime
Description
Date with time (isoformat)
Example
"2007-12-03T10:15:30Z"
Filter
Description
Define a criteria by which to filter the data. A filter can be applied to most PivotDimensions. Works like a WHERE clause on SQL.
Fields
Input Field | Description |
---|---|
adId - IntGenericFilter
|
|
adSetId - IntGenericFilter
|
|
adSize - StrGenericFilter
|
|
adType - StrGenericFilter
|
|
advertiserId - IntGenericFilter
|
|
archived - Boolean
|
|
appId - IntGenericFilter
|
|
appPlatform - PlatformGenericFilter
|
|
campaignId - IntGenericFilter
|
|
campaignCountry - StrGenericFilter
|
|
campaignGoalType - StrGenericFilter
|
|
campaignContractualGoalType - StrGenericFilter
|
|
campaignTrackerType - CampaignTrackerTypeGenericFilter
|
|
campaignType - CampaignTypeGenericFilter
|
|
campaignTypeId - IntGenericFilter
|
|
city - StrGenericFilter
|
|
countryCode - StrGenericFilter
|
|
countryName - StrGenericFilter
|
|
groupExperiment - GroupExperimentFilter
|
|
groupType - GroupTypeFilter
|
|
groupId - IntGenericFilter
|
|
region - StrGenericFilter
|
|
siteName - StrGenericFilter
|
|
siteCategory - StrGenericFilter
|
|
siteSubcategory - StrGenericFilter
|
|
siteBundle - StrGenericFilter
|
|
sourceId - IntGenericFilter
|
|
status - StatusGenericFilter
|
Example
{
"adId": IntGenericFilter,
"adSetId": IntGenericFilter,
"adSize": StrGenericFilter,
"adType": StrGenericFilter,
"advertiserId": IntGenericFilter,
"archived": true,
"appId": IntGenericFilter,
"appPlatform": PlatformGenericFilter,
"campaignId": IntGenericFilter,
"campaignCountry": StrGenericFilter,
"campaignGoalType": StrGenericFilter,
"campaignContractualGoalType": StrGenericFilter,
"campaignTrackerType": CampaignTrackerTypeGenericFilter,
"campaignType": CampaignTypeGenericFilter,
"campaignTypeId": IntGenericFilter,
"city": StrGenericFilter,
"countryCode": StrGenericFilter,
"countryName": StrGenericFilter,
"groupExperiment": GroupExperimentFilter,
"groupType": GroupTypeFilter,
"groupId": IntGenericFilter,
"region": StrGenericFilter,
"siteName": StrGenericFilter,
"siteCategory": StrGenericFilter,
"siteSubcategory": StrGenericFilter,
"siteBundle": StrGenericFilter,
"sourceId": IntGenericFilter,
"status": StatusGenericFilter
}
Float
Description
The Float
scalar type represents signed double-precision fractional values as specified by IEEE 754.
Example
123.45
FloatGenericCleanup
Granularity
Description
Criteria by which to truncate the date of the metrics being informed.
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"NONE"
GroupExperiment
Description
Kind of experiment the group is subject to. REGULAR if it is not part of any experiment.
Values
Enum Value | Description |
---|---|
|
|
|
Example
"REGULAR"
GroupExperimentFilter
Fields
Input Field | Description |
---|---|
equals - GroupExperiment
|
|
notEquals - GroupExperiment
|
Example
{"equals": "REGULAR", "notEquals": "REGULAR"}
GroupType
Description
Type of group, can be either DPA or REGULAR.
Values
Enum Value | Description |
---|---|
|
|
|
Example
"DPA"
GroupTypeFilter
Int
Description
The Int
scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
Example
123
IntGenericFilter
Lane
Description
QoS tier
Values
Enum Value | Description |
---|---|
|
|
|
Example
"low"
Long
Description
Same as an integer in every sense, without size boundaries.
Example
"2147483648"
LongGenericCleanup
Options
Description
Options for the report execution.
Fields
Input Field | Description |
---|---|
removeZeroRows - Boolean!
|
Reduces the bloat in the results by filtering out empty rows, default False. Default = false |
Example
{"removeZeroRows": true}
Period
Description
Time period to be used in conjuction with the amount attribute of the CohortWindow
Values
Enum Value | Description |
---|---|
|
|
|
|
|
Example
"HOURS"
Pivot
Fields
Field Name | Description |
---|---|
results - [PivotResult!]!
|
|
totals - PivotTotals!
|
Example
{
"results": [PivotResult],
"totals": PivotTotals
}
PivotDimensions
Fields
Field Name | Description |
---|---|
ad - String
|
Name of the ad. |
adParameter - String
|
Custom field defined at an ad level to describe the ad. |
adId - Int
|
ID of the ad. |
adSet - String
|
Name of the ad set. |
adSetId - Int
|
ID of the ad set. |
adSize - String
|
Ad size of each ad. |
adType - String
|
Ad type of each ad. |
adUrl - String
|
URL of the ad. |
advertiser - String
|
Name of the advertiser. |
advertiserId - Int
|
ID of the advertiser. |
advertiserBillingEntity - String
|
Billing entity used for the corresponding campaign. |
advertiserCountryId - Int
|
Country registered for the corresponding advertiser. |
app - String
|
Name of the application. |
appBundle - String
|
Bundle ID of the application that is being advertised. |
appCategory - String
|
Category of the application that is being advertised. |
appId - Int
|
ID of the application that is being advertised. |
appPlatform - Platform
|
OS name of the application that is being advertised (IOS/ANDROID). |
campaign - String
|
Name of the advertised campaign. |
campaignParameter - String
|
Optional field in Silver's campaign form that allows the input of a custom value related to the campaign. |
campaignId - Int
|
ID of the advertised campaign. |
campaignCountry - String
|
Country to which the campaign is associated. |
campaignTrackerType - CampaignTrackerType
|
Type of campaign tracking (SKAD/MMP). |
campaignType - String
|
Type of campaign (UA or RTGT). |
campaignTypeId - Int
|
ID of type of campaign (UA=1 or RTGT=2). |
city - String
|
Name of the geo-located city in which the ad is being shown. |
countryCode - String
|
Code of the country (ISO2) in which the ad is being shown. |
countryName - String
|
Name of the country in which the ad is being shown. |
group - String
|
Name of the group related to an advertised campaign. |
groupParameter - String
|
Optional field in Silver's group form that allows the input of a custom value related to the group. |
groupId - Int
|
ID of the group related to an advertised campaign. |
region - String
|
Name of the geo-located region in which the ad is being shown. |
siteName - String
|
Name of the publisher app. Cannot be queried simultaneously with region, city, dma, zipCode, ad or adId. |
siteCategory - String
|
Appstore category of the publisher app. |
siteSubcategory - String
|
Appstore subcategory of the publisher app. |
siteBundle - String
|
Bundle ID of the publisher app. Cannot be queried simultaneously with region, city, dma, zipCode, ad or adId. |
source - String
|
Name of the exchange in which ads were purchased. |
sourceId - Int
|
ID of the exchange in which ads were purchased. |
dma - String
|
DesignatedMarketArea describes where the consumers watch. |
zipCode - String
|
Identifies a particular postal delivery area. |
campaignGoalType - String
|
Identifies the goal type configured in the campaign. |
campaignContractualGoalType - String
|
Identifies the contractual goal type configured in the campaign. |
rewarded - Int
|
Ad category by rewarded. |
indirect - Int
|
Describe if it is from reselling traffic. |
skadConversionWindow - Int
|
skad conversion window. |
skadAnon - Int
|
skad anonymity tier. |
deviceType - String
|
Identifies the type of the device (smartphone, tablet, unknown) |
proxyType - String
|
Identifies the type of the proxy |
skadId - Int
|
SKAD ID of the advertised campaign. |
skoverlay - Int
|
Identifies if the ad was shown on a skad overlay. |
skadVersion - String
|
SKAD version used. |
persistentCta - Int
|
Identifies the presence of persistence CTA. |
triplePage - Int
|
Identifies the presence of triplePage. |
skippable - Int
|
Identifies if the ad allowed to be skipped. |
phase - String
|
Identifies the phase of the secondary impression track video. |
date - DateTime!
|
|
Arguments
|
|
dateToStr - String!
|
Returns a string formatted with given format based in JodaTime Java package |
Arguments
|
|
dayOfWeek - String!
|
|
timeOfDay - Int!
|
Possible Types
PivotDimensions Types |
---|
Example
{
"ad": "abc123",
"adParameter": "xyz789",
"adId": 123,
"adSet": "abc123",
"adSetId": 123,
"adSize": "abc123",
"adType": "abc123",
"adUrl": "abc123",
"advertiser": "abc123",
"advertiserId": 123,
"advertiserBillingEntity": "xyz789",
"advertiserCountryId": 123,
"app": "xyz789",
"appBundle": "xyz789",
"appCategory": "abc123",
"appId": 123,
"appPlatform": "ANDROID",
"campaign": "xyz789",
"campaignParameter": "xyz789",
"campaignId": 987,
"campaignCountry": "xyz789",
"campaignTrackerType": "MMP",
"campaignType": "abc123",
"campaignTypeId": 987,
"city": "abc123",
"countryCode": "abc123",
"countryName": "xyz789",
"group": "xyz789",
"groupParameter": "abc123",
"groupId": 987,
"region": "abc123",
"siteName": "abc123",
"siteCategory": "abc123",
"siteSubcategory": "abc123",
"siteBundle": "xyz789",
"source": "abc123",
"sourceId": 123,
"dma": "xyz789",
"zipCode": "xyz789",
"campaignGoalType": "abc123",
"campaignContractualGoalType": "abc123",
"rewarded": 987,
"indirect": 987,
"skadConversionWindow": 987,
"skadAnon": 987,
"deviceType": "abc123",
"proxyType": "xyz789",
"skadId": 987,
"skoverlay": 123,
"skadVersion": "xyz789",
"persistentCta": 123,
"triplePage": 987,
"skippable": 987,
"phase": "abc123",
"date": "2007-12-03T10:15:30Z",
"dateToStr": "abc123",
"dayOfWeek": "abc123",
"timeOfDay": 123
}
PivotMetrics
Fields
Field Name | Description |
---|---|
impressions - Long
|
Number of ad impressions shown. |
clicks - Long
|
Number of clicks on the ads. |
eviews - Long
|
Number of engaged views on the ads. |
cpc - Float
|
Cost per click. Cost is defined as ad spend. |
cpm - Float
|
Cost per thousand impressions. Cost is defined as ad spend. |
ctr - Float
|
Click through rate. |
spend - Float
|
Amount of budget that was spent in that time period. |
wins - Long
|
Amount of bids that are won, only available for certain sources. |
bidToWinRate - Float
|
|
uniqueImpressions - Long
|
Has an error rate of 2% on the range of 0 to 1000M impressions,for values greater than 1000M the error rate becomes large and the metric unreliable. |
uniqueClicks - Long
|
Unique devices that have clicks 2% error. |
skadAssistedInstalls - Long
|
Amount of installs that were assisted by Jampp on skad devices. |
simps - Long
|
Number of secondary impressions shown. |
sourceViewa - Float
|
|
uniqueEvents - Long
|
Unique devices that have events. |
Arguments
|
|
events - Long
|
Number of events attributed. |
Arguments
|
|
assistedEvents - Long
|
Events from users who were shown Jampp ads but were not attributed to Jampp. |
Arguments
|
|
assistedEventValue - Float
|
Sum of purchase value related to a purchase event from users who were shown Jampp ads but were not attributed to Jampp. |
Arguments
|
|
eventValue - Float
|
Sum of purchase value related to a purchase event. |
Arguments
|
|
eventsCpa - Float
|
Cost per event. Cost is defined as ad spend. |
Arguments
|
|
eventsRoas - Float
|
Return over ad spend measured through attributed value in a purchase event. |
Arguments
|
|
eventsIte - Float
|
The percentage of every a thousand impressions that converted into an event. |
Arguments
|
|
eventsRate - Float
|
The amount of events divided by installs |
Arguments
|
|
installs - Long
|
Number of attributed installs. |
Arguments
|
|
installsCpi - Float
|
Cost per install. Cost is defined as ad spend. |
Arguments
|
|
installsCvr - Float
|
The percentage of clicks that converted into an install. |
Arguments
|
|
installsIti - Float
|
The percentage of every a thousand impressions that converted into an install. |
Arguments
|
|
assistedInstalls - Long
|
Installs from users who were shown Jampp ads but were not attributed to Jampp. |
Arguments
|
|
uniqueEventsCpa - Float
|
Cost per unique event. Cost is defined as ad spend. |
Arguments
|
|
vtaShare - Float
|
Indicator for the VTA share of the total attributions. |
Arguments
|
Possible Types
PivotMetrics Types |
---|
Example
{
"impressions": "2147483648",
"clicks": "2147483648",
"eviews": "2147483648",
"cpc": 987.65,
"cpm": 987.65,
"ctr": 123.45,
"spend": 987.65,
"wins": "2147483648",
"bidToWinRate": 987.65,
"uniqueImpressions": "2147483648",
"uniqueClicks": "2147483648",
"skadAssistedInstalls": "2147483648",
"simps": "2147483648",
"sourceViewa": 123.45,
"uniqueEvents": "2147483648",
"events": "2147483648",
"assistedEvents": "2147483648",
"assistedEventValue": 987.65,
"eventValue": 987.65,
"eventsCpa": 987.65,
"eventsRoas": 987.65,
"eventsIte": 123.45,
"eventsRate": 987.65,
"installs": "2147483648",
"installsCpi": 123.45,
"installsCvr": 123.45,
"installsIti": 123.45,
"assistedInstalls": "2147483648",
"uniqueEventsCpa": 123.45,
"vtaShare": 123.45
}
PivotParams
Description
Parameters used to execute pivot.
Fields
Field Name | Description |
---|---|
from - DateTime!
|
Date from which to execute the report. Examples: "2022-01-01", "2022-01-01T03:00:00", "2022-01-01T03:00:00+03:00". |
to - DateTime!
|
Date from which to execute the report. Examples: "2022-01-01", "2022-01-01T03:00:00", "2022-01-01T03:00:00+03:00". |
options - String
|
JSON representation of options used for the report. |
dimensions - [String!]
|
List of dimensions used, in their string representation |
metrics - [String!]
|
List of metrics used, in their string representation |
cleanup - String
|
JSON representation of cleanup used for the report. |
granularity - Granularity
|
Criteria used to truncate the date, defining the date intervals for which to calculate the metrics on the report. |
filter - String
|
JSON representation of filter used for the report. |
cohortType - CohortType
|
Define the type of cohort to execute. Can be either INSTALL or TOUCH. |
cohortWindow - String
|
JSON representation of CohortWindow used for the report. |
context - String
|
JSON representation of Context used for the report. |
Example
{
"from": "2007-12-03T10:15:30Z",
"to": "2007-12-03T10:15:30Z",
"options": "abc123",
"dimensions": ["abc123"],
"metrics": ["abc123"],
"cleanup": "abc123",
"granularity": "NONE",
"filter": "abc123",
"cohortType": "INSTALL",
"cohortWindow": "xyz789",
"context": "abc123"
}
PivotResult
Fields
Field Name | Description |
---|---|
ad - String
|
Name of the ad. |
adParameter - String
|
Custom field defined at an ad level to describe the ad. |
adId - Int
|
ID of the ad. |
adSet - String
|
Name of the ad set. |
adSetId - Int
|
ID of the ad set. |
adSize - String
|
Ad size of each ad. |
adType - String
|
Ad type of each ad. |
adUrl - String
|
URL of the ad. |
advertiser - String
|
Name of the advertiser. |
advertiserId - Int
|
ID of the advertiser. |
advertiserBillingEntity - String
|
Billing entity used for the corresponding campaign. |
advertiserCountryId - Int
|
Country registered for the corresponding advertiser. |
app - String
|
Name of the application. |
appBundle - String
|
Bundle ID of the application that is being advertised. |
appCategory - String
|
Category of the application that is being advertised. |
appId - Int
|
ID of the application that is being advertised. |
appPlatform - Platform
|
OS name of the application that is being advertised (IOS/ANDROID). |
campaign - String
|
Name of the advertised campaign. |
campaignParameter - String
|
Optional field in Silver's campaign form that allows the input of a custom value related to the campaign. |
campaignId - Int
|
ID of the advertised campaign. |
campaignCountry - String
|
Country to which the campaign is associated. |
campaignTrackerType - CampaignTrackerType
|
Type of campaign tracking (SKAD/MMP). |
campaignType - String
|
Type of campaign (UA or RTGT). |
campaignTypeId - Int
|
ID of type of campaign (UA=1 or RTGT=2). |
city - String
|
Name of the geo-located city in which the ad is being shown. |
countryCode - String
|
Code of the country (ISO2) in which the ad is being shown. |
countryName - String
|
Name of the country in which the ad is being shown. |
group - String
|
Name of the group related to an advertised campaign. |
groupParameter - String
|
Optional field in Silver's group form that allows the input of a custom value related to the group. |
groupId - Int
|
ID of the group related to an advertised campaign. |
region - String
|
Name of the geo-located region in which the ad is being shown. |
siteName - String
|
Name of the publisher app. Cannot be queried simultaneously with region, city, dma, zipCode, ad or adId. |
siteCategory - String
|
Appstore category of the publisher app. |
siteSubcategory - String
|
Appstore subcategory of the publisher app. |
siteBundle - String
|
Bundle ID of the publisher app. Cannot be queried simultaneously with region, city, dma, zipCode, ad or adId. |
source - String
|
Name of the exchange in which ads were purchased. |
sourceId - Int
|
ID of the exchange in which ads were purchased. |
dma - String
|
DesignatedMarketArea describes where the consumers watch. |
zipCode - String
|
Identifies a particular postal delivery area. |
campaignGoalType - String
|
Identifies the goal type configured in the campaign. |
campaignContractualGoalType - String
|
Identifies the contractual goal type configured in the campaign. |
rewarded - Int
|
Ad category by rewarded. |
indirect - Int
|
Describe if it is from reselling traffic. |
skadConversionWindow - Int
|
skad conversion window. |
skadAnon - Int
|
skad anonymity tier. |
deviceType - String
|
Identifies the type of the device (smartphone, tablet, unknown) |
proxyType - String
|
Identifies the type of the proxy |
skadId - Int
|
SKAD ID of the advertised campaign. |
skoverlay - Int
|
Identifies if the ad was shown on a skad overlay. |
skadVersion - String
|
SKAD version used. |
persistentCta - Int
|
Identifies the presence of persistence CTA. |
triplePage - Int
|
Identifies the presence of triplePage. |
skippable - Int
|
Identifies if the ad allowed to be skipped. |
phase - String
|
Identifies the phase of the secondary impression track video. |
date - DateTime!
|
|
Arguments
|
|
dateToStr - String!
|
Returns a string formatted with given format based in JodaTime Java package |
Arguments
|
|
dayOfWeek - String!
|
|
timeOfDay - Int!
|
|
impressions - Long
|
Number of ad impressions shown. |
clicks - Long
|
Number of clicks on the ads. |
eviews - Long
|
Number of engaged views on the ads. |
cpc - Float
|
Cost per click. Cost is defined as ad spend. |
cpm - Float
|
Cost per thousand impressions. Cost is defined as ad spend. |
ctr - Float
|
Click through rate. |
spend - Float
|
Amount of budget that was spent in that time period. |
wins - Long
|
Amount of bids that are won, only available for certain sources. |
bidToWinRate - Float
|
|
uniqueImpressions - Long
|
Has an error rate of 2% on the range of 0 to 1000M impressions,for values greater than 1000M the error rate becomes large and the metric unreliable. |
uniqueClicks - Long
|
Unique devices that have clicks 2% error. |
skadAssistedInstalls - Long
|
Amount of installs that were assisted by Jampp on skad devices. |
simps - Long
|
Number of secondary impressions shown. |
sourceViewa - Float
|
|
uniqueEvents - Long
|
Unique devices that have events. |
Arguments
|
|
events - Long
|
Number of events attributed. |
Arguments
|
|
assistedEvents - Long
|
Events from users who were shown Jampp ads but were not attributed to Jampp. |
Arguments
|
|
assistedEventValue - Float
|
Sum of purchase value related to a purchase event from users who were shown Jampp ads but were not attributed to Jampp. |
Arguments
|
|
eventValue - Float
|
Sum of purchase value related to a purchase event. |
Arguments
|
|
eventsCpa - Float
|
Cost per event. Cost is defined as ad spend. |
Arguments
|
|
eventsRoas - Float
|
Return over ad spend measured through attributed value in a purchase event. |
Arguments
|
|
eventsIte - Float
|
The percentage of every a thousand impressions that converted into an event. |
Arguments
|
|
eventsRate - Float
|
The amount of events divided by installs |
Arguments
|
|
installs - Long
|
Number of attributed installs. |
Arguments
|
|
installsCpi - Float
|
Cost per install. Cost is defined as ad spend. |
Arguments
|
|
installsCvr - Float
|
The percentage of clicks that converted into an install. |
Arguments
|
|
installsIti - Float
|
The percentage of every a thousand impressions that converted into an install. |
Arguments
|
|
assistedInstalls - Long
|
Installs from users who were shown Jampp ads but were not attributed to Jampp. |
Arguments
|
|
uniqueEventsCpa - Float
|
Cost per unique event. Cost is defined as ad spend. |
Arguments
|
|
vtaShare - Float
|
Indicator for the VTA share of the total attributions. |
Arguments
|
Example
{
"ad": "abc123",
"adParameter": "xyz789",
"adId": 123,
"adSet": "xyz789",
"adSetId": 123,
"adSize": "xyz789",
"adType": "abc123",
"adUrl": "xyz789",
"advertiser": "abc123",
"advertiserId": 987,
"advertiserBillingEntity": "xyz789",
"advertiserCountryId": 987,
"app": "xyz789",
"appBundle": "xyz789",
"appCategory": "xyz789",
"appId": 987,
"appPlatform": "ANDROID",
"campaign": "abc123",
"campaignParameter": "abc123",
"campaignId": 123,
"campaignCountry": "xyz789",
"campaignTrackerType": "MMP",
"campaignType": "abc123",
"campaignTypeId": 123,
"city": "xyz789",
"countryCode": "abc123",
"countryName": "abc123",
"group": "xyz789",
"groupParameter": "xyz789",
"groupId": 123,
"region": "xyz789",
"siteName": "abc123",
"siteCategory": "abc123",
"siteSubcategory": "xyz789",
"siteBundle": "xyz789",
"source": "abc123",
"sourceId": 987,
"dma": "abc123",
"zipCode": "abc123",
"campaignGoalType": "xyz789",
"campaignContractualGoalType": "xyz789",
"rewarded": 987,
"indirect": 123,
"skadConversionWindow": 987,
"skadAnon": 123,
"deviceType": "abc123",
"proxyType": "xyz789",
"skadId": 987,
"skoverlay": 987,
"skadVersion": "xyz789",
"persistentCta": 123,
"triplePage": 123,
"skippable": 987,
"phase": "xyz789",
"date": "2007-12-03T10:15:30Z",
"dateToStr": "abc123",
"dayOfWeek": "abc123",
"timeOfDay": 987,
"impressions": "2147483648",
"clicks": "2147483648",
"eviews": "2147483648",
"cpc": 987.65,
"cpm": 123.45,
"ctr": 123.45,
"spend": 123.45,
"wins": "2147483648",
"bidToWinRate": 987.65,
"uniqueImpressions": "2147483648",
"uniqueClicks": "2147483648",
"skadAssistedInstalls": "2147483648",
"simps": "2147483648",
"sourceViewa": 987.65,
"uniqueEvents": "2147483648",
"events": "2147483648",
"assistedEvents": "2147483648",
"assistedEventValue": 123.45,
"eventValue": 987.65,
"eventsCpa": 987.65,
"eventsRoas": 987.65,
"eventsIte": 123.45,
"eventsRate": 123.45,
"installs": "2147483648",
"installsCpi": 123.45,
"installsCvr": 987.65,
"installsIti": 123.45,
"assistedInstalls": "2147483648",
"uniqueEventsCpa": 987.65,
"vtaShare": 123.45
}
PivotTotals
Fields
Field Name | Description |
---|---|
impressions - Long
|
Number of ad impressions shown. |
clicks - Long
|
Number of clicks on the ads. |
eviews - Long
|
Number of engaged views on the ads. |
cpc - Float
|
Cost per click. Cost is defined as ad spend. |
cpm - Float
|
Cost per thousand impressions. Cost is defined as ad spend. |
ctr - Float
|
Click through rate. |
spend - Float
|
Amount of budget that was spent in that time period. |
wins - Long
|
Amount of bids that are won, only available for certain sources. |
bidToWinRate - Float
|
|
uniqueImpressions - Long
|
Has an error rate of 2% on the range of 0 to 1000M impressions,for values greater than 1000M the error rate becomes large and the metric unreliable. |
uniqueClicks - Long
|
Unique devices that have clicks 2% error. |
skadAssistedInstalls - Long
|
Amount of installs that were assisted by Jampp on skad devices. |
simps - Long
|
Number of secondary impressions shown. |
sourceViewa - Float
|
|
uniqueEvents - Long
|
Unique devices that have events. |
Arguments
|
|
events - Long
|
Number of events attributed. |
Arguments
|
|
assistedEvents - Long
|
Events from users who were shown Jampp ads but were not attributed to Jampp. |
Arguments
|
|
assistedEventValue - Float
|
Sum of purchase value related to a purchase event from users who were shown Jampp ads but were not attributed to Jampp. |
Arguments
|
|
eventValue - Float
|
Sum of purchase value related to a purchase event. |
Arguments
|
|
eventsCpa - Float
|
Cost per event. Cost is defined as ad spend. |
Arguments
|
|
eventsRoas - Float
|
Return over ad spend measured through attributed value in a purchase event. |
Arguments
|
|
eventsIte - Float
|
The percentage of every a thousand impressions that converted into an event. |
Arguments
|
|
eventsRate - Float
|
The amount of events divided by installs |
Arguments
|
|
installs - Long
|
Number of attributed installs. |
Arguments
|
|
installsCpi - Float
|
Cost per install. Cost is defined as ad spend. |
Arguments
|
|
installsCvr - Float
|
The percentage of clicks that converted into an install. |
Arguments
|
|
installsIti - Float
|
The percentage of every a thousand impressions that converted into an install. |
Arguments
|
|
assistedInstalls - Long
|
Installs from users who were shown Jampp ads but were not attributed to Jampp. |
Arguments
|
|
uniqueEventsCpa - Float
|
Cost per unique event. Cost is defined as ad spend. |
Arguments
|
|
vtaShare - Float
|
Indicator for the VTA share of the total attributions. |
Arguments
|
Example
{
"impressions": "2147483648",
"clicks": "2147483648",
"eviews": "2147483648",
"cpc": 987.65,
"cpm": 123.45,
"ctr": 987.65,
"spend": 123.45,
"wins": "2147483648",
"bidToWinRate": 123.45,
"uniqueImpressions": "2147483648",
"uniqueClicks": "2147483648",
"skadAssistedInstalls": "2147483648",
"simps": "2147483648",
"sourceViewa": 987.65,
"uniqueEvents": "2147483648",
"events": "2147483648",
"assistedEvents": "2147483648",
"assistedEventValue": 987.65,
"eventValue": 987.65,
"eventsCpa": 987.65,
"eventsRoas": 987.65,
"eventsIte": 123.45,
"eventsRate": 987.65,
"installs": "2147483648",
"installsCpi": 123.45,
"installsCvr": 123.45,
"installsIti": 987.65,
"assistedInstalls": "2147483648",
"uniqueEventsCpa": 123.45,
"vtaShare": 987.65
}
Platform
Description
OS name of the application that is being advertised (IOS/ANDROID).
Values
Enum Value | Description |
---|---|
|
|
|
Example
"ANDROID"
PlatformGenericFilter
Fields
Input Field | Description |
---|---|
equals - Platform
|
|
notEquals - Platform
|
|
isIn - [Platform!]
|
|
isNotIn - [Platform!]
|
Example
{
"equals": "ANDROID",
"notEquals": "ANDROID",
"isIn": ["ANDROID"],
"isNotIn": ["ANDROID"]
}
Status
Description
Status of the campaign.
Values
Enum Value | Description |
---|---|
|
|
|
|
|
Example
"ACTIVE"
StatusGenericFilter
StrGenericFilter
String
Description
The String
scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.
Example
"abc123"