Reporting API

  • Updated

Adikteev offers a dashboard where you can monitor your campaign metrics. If you prefer to use your own reporting dashboard, you can pull the campaign data from our Reporting API into your system.

Credentials

First, ask your Adikteev Account Manager to provide you client credentials, attached to your company, to access our reporting dashboard.

You will need to provide a valid email address, and you will receive a confidential password in return.

API Authentication

Public API uses OAUTH2 protocol for authentication. To get your API access token, you must make a POST request to the token delivery endpoint :

Route

https://public-api.adikteev.com/token

Mandatory Header

authorization: Basic cmVwb3J0aW5nX2Rhc2hib2FyZDo=

Request Body 
Email and password must be replaced with your actual credentials from the previous step

username={your_email}&password={your_password}&grant_type=password

If your email and password are recognized, you will receive a JSON response containing a token valid for 30 days.

Sample Request Using Curl
curl \
-H 'authorization: Basic cmVwb3J0aW5nX2Rhc2hib2FyZDo=' \
--data 'username=hello@adikteev.com&password=mypassword&grant_type=password' \
-X POST 'https://public-api.adikteev.com/token'


Sample Response

{
"access_token": "123456789",
"token_type: "bearer",
"expires_in: 2592000
}

Reporting API Endpoint

Only HTTP GET requests properly authenticated will return valid status code and data. Data is always returned in JSON format.

Base Endpoint

https://public-api.adikteev.com

Mandatory Header

authorization: Bearer {your_access_token}

Optional Header

'Accept-Encoding: gzip' if you wish to enable gzip compression for data responses.

Sample Request Using Curl 
curl -H 'authorization: Bearer 123456789' 'https://public-api.adikteev.com/profile'

All requests will timeout after 7 minutes.

Available Routes

/profile

Query parameters required: None

Variables in response:

  • company_id (integer) : ID of the client company
Sample Response
{
"id": 123,
"email": "your_email",
"role": "client",
"company_id": 789
}


/apps

Query parameters required:

  •  company_id (integer) : ID of the client company returned by the profile route

Variables in response:

  • name (string) : application name
  • bundle_identifier (string) : iOS / Android identifier of the application
  • app_store_id (string) : Apple App Store ID (null for Android applications)
  • platform (string) : either "android" or "ios"
Sample Response
[
{
"id": 1928,
"name": "My Awesome App - iOS",
"bundle_identifier: "com.myawesomeapp.iphone",
"platform": "ios",
"company_id": 789,
"app_store_id": "123456789"
},
{
"id": 9182,
"name": "My Awesome App - Android",
"bundle_identifier: "com.myawesomeapp.android",
"platform": "android",
"company_id": 789,
"app_store_id": null
}
]

 

/client_campaigns

Query parameters required:

  • app_id (integer) : ID of a client application returned by the app route

Variables in response:

⚠️ The field country_id will be filled only if the campaign is targeting one country. Otherwise, refer to countries.
  • name : campaign name
  • country_id (integer) : country where the campaign is running (reference table)
  • platform (integer) : either "ios" or "android"
  • countries (array) : array containing the country ids (reference table)

 

Sample Response 
{
"total": 2,
"items": [
{
"id": 18565,
"name": "Campaign 1",
"app_id": 1928,
"country_id": 236,
"platform": "android",
"countries": []
},
{
"id": 18232,
"name": "Campaign 2",
"app_id": 1928,
"country_id": null,
"platform": "android",
"countries": [
40,
236
]
}
]
}
  

/report/company/daily/client

Query parameters required: 

  • campaign_ids (integers) : comma-separated IDs of client campaigns returned by the client_campaigns route ( eg. campaign_ids=12345,67890 )

Query parameters optional :

  • start_date (date) : start date in UTC of the report in YYYY-MM-DD format (by default 7 days ago)
  • end_date (date) : end date in UTC of the report in YYYY-MM-DD format (by default current day)
  • currency (string): Default currency is USD. Conversion into EUR, GBP, JPY and KRW are also available (eg. &currency=EUR)

Variables in response :

  • currency (string) : three-letter code of currency requested for this advertiser (default is USD)
  • data (array) : campaign data broken down by day and campaign ID
    • date (date) : date in UTC of campaign data
    • client_cost (float) : billable amount
    • impressions, clicks, installs, reopens (integer) : count of campaign events
    • custom_action (array) : count of in-app events attributed to Adikteev
      • name (string) : event name
      • amount (integer) : count of events
      • total_value (float) : sum of event values if any (for purchases for instance)

NB. The client_cost amount for the current UTC date is only a temporary value. Final billable costs for a given UTC day are available on the next day around 7AM UTC.

 

Sample Response 
{
"start_date": "2017-10-18",
"end_date": "2017-10-19",
"currency": "USD",
"data": [
{
"date": "2017-10-18T00:00:00.000Z",
"campaign_id": 17215,
"campaign_name": "RTG_New_Purchase_15d",
"client_cost": 1225.69,
"clicks": 3064,
"installs": 16,
"reopens": 2900,
"impressions": 42198,
"custom_action": [
{
"name": "event 1",
"amount": 171,
"total_value": 1126.69
},
{
"name": "event 2",
"amount": 5128,
"total_value": 0
}
]
},
{
"date": "2017-10-19T00:00:00.000Z",
"campaign_id": 17215,
"campaign_name": "RTG_New_Purchase_15d",
"client_cost": 1188.8,
"clicks": 2972,
"installs": 11,
"reopens": 1589,
"impressions": 41738,
"custom_action": [
{
"name": "event 1",
"amount": 245,
"total_value": 2365.52
},
{
"name": "event 2",
"amount": 4634,
"total_value": 0
}
]
}
]
}

 

/report/company/country/daily/client

This route has the same query and response parameters as the /report/company/daily/client but it adds a level of breakdown per country (identified by the field country).

Countries are identified by their official alpha-2 code.

Sample Response 

{
 "start_date": "2017-10-20",
 "end_date": "2017-10-20",
 "currency": "USD",
 "data": [
  {
   "date": "2017-10-20T00:00:00.000Z",
   "campaign_id": 17215,
   "campaign_name": "RTG_New_Purchase_15d",
   "country": "US",
"country_id":236, "client_cost": 1225.69, "clicks": 3064, "installs": 16, "reopens": 2900, "impressions": 42198, "custom_action": [ { "name": "event 1", "amount": 140, "total_value": 1126.69 }, { "name": "event 2", "amount": 5128, "total_value": 0 } ] }, { "date": "2017-10-20T00:00:00.000Z", "campaign_id": 17215, "campaign_name": "RTG_New_Purchase_15d", "country": "FR",
"country_id":76, "client_cost": 1188.8, "clicks": 2972, "installs": 11, "reopens": 1589, "impressions": 41738, "custom_action": [ { "name": "event 1", "amount": 245, "total_value": 2365.52 }, { "name": "event 2", "amount": 4634, "total_value": 0 } ] } ] }

/report/company/creative/daily/client

This route has the same query and response parameters as the /report/company/daily/client but it adds a level of breakdown per creative (identified by the fields creative_id, creative_name and creative_url)

Sample Response 
{
"start_date": "2017-10-20",
"end_date": "2017-10-20",
"currency": "USD",
"data": [
{
"date": "2017-10-20T00:00:00.000Z",
"campaign_id": 17215,
"campaign_name": "RTG_New_Purchase_15d",
"creative_id": 147852369,
"creative_name": "PrivateSale_Playable_320x480",
"creative_url": "https://cdn-creatives.adikteev.com/147852369/creative.png",
"creative_group_id": 152382,
"creative_group_name": "PrivateSale_Playable",
"client_cost": 1225.69,
"clicks": 3064,
"installs": 16,
"reopens": 2900,
"impressions": 42198,
"custom_action": [
{
"name": "event 1",
"amount": 140,
"total_value": 1126.69
},
{
"name": "event 2",
"amount": 5128,
"total_value": 0
}
]
},
{
"date": "2017-10-20T00:00:00.000Z",
"campaign_id": 17215,
"campaign_name": "RTG_New_Purchase_15d",
"creative_id": 987654321,
"creative_name": "PrivateSale_Video_Infeed",
"creative_url": "https://cdn-creatives.adikteev.com/987654321/video_asset.mp4",
"creative_group_id": 152383,
"creative_group_name": "PrivateSale_Video",
"client_cost": 1188.8,
"clicks": 2972,
"installs": 11,
"reopens": 1589,
"impressions": 41738,
"custom_action": [
{
"name": "event 1",
"amount": 245,
"total_value": 2365.52
},
{
"name": "event 2",
"amount": 4634,
"total_value": 0
}
]
}
]
}
 

/report/company/creative-country/daily/client

This route has the same query and response parameters as the /report/company/daily/client but it adds a level of breakdown per creative and country (identified by the fields creative_id, country)

{
 "start_date": "2017-10-20",
 "end_date": "2017-10-20",
 "currency": "USD",
 "data": [
  {
   "date": "2017-10-20T00:00:00.000Z",
   "campaign_id": 17215,
   "campaign_name": "RTG_New_Purchase_15d",
   "creative_id": 147852369,
   "creative_name": "PrivateSale_Playable_320x480",
   "creative_url": "https://cdn-creatives.adikteev.com/147852369/creative.png",
   "creative_group_id": 152382,
   "creative_group_name": "PrivateSale_Playable",
   "country": "US",
   "country_id": 236,
   "client_cost": 1225.69,
   "clicks": 3064,
   "installs": 16,
   "reopens": 2900,
   "impressions": 42198,
   "custom_action": [
    {
     "name": "event 1",
     "amount": 140,
     "total_value": 1126.69
    },
    {
     "name": "event 2",
     "amount": 5128,
     "total_value": 0
    }
   ]
  },
  {
   "date": "2017-10-20T00:00:00.000Z",
   "campaign_id": 17215,
   "campaign_name": "RTG_New_Purchase_15d",
   "creative_id": 987654321,
   "creative_name": "PrivateSale_Video_Infeed",
   "creative_url": "https://cdn-creatives.adikteev.com/987654321/video_asset.mp4",
   "creative_group_id": 152383,
   "creative_group_name": "PrivateSale_Video",
   "country": "FR",
   "country_id": 76,
   "client_cost": 1188.8,
   "clicks": 2972,
   "installs": 11,
   "reopens": 1589,
   "impressions": 41738,
   "custom_action": [
    {
     "name": "event 1",
     "amount": 245,
     "total_value": 2365.52
    },
    {
     "name": "event 2",
     "amount": 4634,
     "total_value": 0
    }
   ]
  }
 ]
}

Was this article helpful?

0 out of 0 found this helpful

Have more questions? Submit a request