Reporting API


The Reporting API lets you programmatically pull Custom and Scheduled Reports. In the API, "Custom Reports" are referred to as "Queued Reports".


Please Note

All reports generated through the UI or API have a lifetime of 10 days; they expire after that and need to be regenerated.

Creating a Custom Report with API

  1. Ping the Create Queued Report endpoint with details inside of a criteria object
  2. Add any GroupBy fields in a GroupBy object as a list of strings
  3. Add any Filter fields in a parameter object as a list of Crit objects
  4. Wait for the GUID in the response
  5. GET the Poll for Queued Report endpoint to get the data

This example pulls a report that;
-Is for January 2017
-Broken down by day and campaigns
-Filtered by Advertiser 12 ("Nike")

  "StartDateISO": "2017-01-01T00:00:00",
  "EndDateISO": "2017-01-31T00:00:00", 
  "GroupBy": ["day","campaignId"], 
  "Parameters": [{"brandId": 12}]

In the Response you'd get:

    "Id": "a87ece06-28cd-4267-9314-e830af7eaa12"

Which you'd append to and then GET the Poll for Queued Report endpoint:

This will return the report:

        "StartDateISO": "2017-01-01T00:00:00",
        "EndDateISO": "2017-01-31T00:00:00",

                        "Title":"Name of My Flight ROS CPA",

                        "Title":"Another Flight CPM",


All StartDateISO and EndDateISO requests should use ISO 8601 midnight GMT, such as: '2016-06-01T00:00:00' or '2016-06-01T00:00:00Z'

GroupBy and Parameter Fields - Optional

In the Reporting API, Group By options are under the GroupBy object, while the Filter fields are under Parameters. If you haven't already - look through Custom Report Fields for an overview.




Calendar day. GroupBy only


Calendar week. GroupBy only


Calendar month. GroupBy only


The Advertiser's ID. Pull those here


The Campaign's ID. Pull those here


The Flight's ID. Pull those here Includes price data when used as a Group By.


Includes flight data only when used as a Group By. GroupBy only.


The Creative's ID. Pull those here


Ad Type / Size. Pull those here


The Site's ID. Pull those here


The Zone's ID. Pull those here


The Country's code. Pull those here


The Metro's code. Pull those here


Keywords being targeted. Each keyword is a value in a key value pair: {"keyword":"foo"}


The Channel's ID. Pull those here. Parameters only


The name of a city. Must be an exact match.


The Region's code. Pull those here. Must also filter or group by Country.


The name of the device model (e.g. iPad for tablet


Device Brand (e.g. Apple, Google, Mozilla)


OS Major Version (e.g. 15 for iOS 15.5)


OS Minor Version (e.g. 5 for iOS 15.5)


Browser (e.g. Chrome Desktop or Safari)


Browser Minor Version (e.g. 104 for Chrome 104.0)


Browser Minor Version (e.g. 0 for Chrome 104.0)


Device Form Factor (e.g "tablet" or "desktop")


For creativeId, make sure to use the ID associated with the Creative, not the ID associated with the Ad (Creative Flight Maps ID).


For device reporting to be accurate, the client's UA needs to be passed through to Kevel via the User-Agent header if the customer is proxying events through their server.
Failure to do so might cause inconsistent attribution, resulting in e.g. clicks without impressions, as one is not attributed to the same device.

Creating a Scheduled Report with API


Scheduled reporting is in Beta. Contact your account manager or Kevel support to get started.

The Scheduled Reports endpoint schedules a report to be generated and delivered at a future date and time. The report can be set to recur daily, weekly, or monthly. It uses the same criteria object.

The report will be delivered in an email to the account associated with the LoginId. You can also add external e-mails to the request.

The email includes a link to the reporting page in the UI, and the link contains the GUID of the report.