This guide is intended for publishers using DT's Offer Wall Reporting API.
This Reporting API enables you to access all the reporting data related to monetization of your DT Offer Wall. You can query multiple metrics such as revenue and impressions across the available dimensions and even implement filters.
For supported metrics and dimensions per report, click the Metrics and Dimensions tab above.
DT Offer Wall Reporting API Workflow
The publisher makes a POST request using the Client ID and Client Secret to receive the Access Token, as described in Step 1.
Once the request is successful and the Access Token is received, an API Request is made to create a custom report as described in Step 2. A successful response will contain a URL leading to a file that will be populated with the custom report. More details can be found in Step 3.
Step 1: Obtaining the Access Token
The DT Offer Wall Reporting API uses Access Tokens for authentication purposes. To obtain your Access Token, you must first get your Client ID and Client Secret.
Obtaining your Client ID and Client Secret
- Sign in to the DT Console.
- On the left menu bar, click User Profile.
- Click User Profile to display the Reporting API Keys.
- If necessary, you can click Revoke to delete the current credentials.
You are returned to the API Keys window.
- Click Generate New Keys to receive new credentials.
Keep your Client ID and Client Secret safe, as they can be reused in the future.
Using your Client ID and Client Secret make a POST request to receive your Access Token.
The base End Point for the entire process is: https://reporting.fyber.com
POST /auth/v1/token
Headers
Content-Type application/json
Sample Request
https://reporting.fyber.com/auth/v1/token
Params
format csv
Body: raw (application/json)
{
"grant_type": "client_credentials",
"client_id": "3ce66d885XXXXXXXXXXa3b752bb9058",
"client_secret": "YtMvC7VYTQMQ7w9UCUaFTRGJnwVZnQqqN02XNyt8IIh2h8XFDuXXXXXXXXSS6XTrFWW4TkebCcMLJkrXSw5IurkearTJIDzUxsbiMXv8hb4T23MwN6eE7DDIthRFqDnhnuhiDlY2oPeaOjsMbzE8joZ5cs6tsySJz6uZXwJ-x3lcYaYbgXXXXXXXX3_hFeuXm-C7-me2V1MMs-ftJxTd5QbHoUhG3Q5anCWCW_pg8x3CL4yPGCbpWUDZfpdNPyyCT4rxCEb-VC0Bdqwe8N2GGn_VSFOwQYxa-yap2JuNSGJfl_ZURXXXXXXXXFe1GpHDn8pk7yYwQYIGAg"
}
- Grant Type must be "client_credentials"
- The credentials are sent according to the OAuth 2.0 protocol
Sample Authentication Response
When an authentication request is successful, you receive the following response in JSON format:
Successful Response
{
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE1NzAwMTY5MDAsImV4cCI6MTU3MDAyMDUwMCwiYXVkIjoic3BlZWRiYWxsIiwic3ViIjoiMjEwMjYzIn0.hDo1waTytSys_oRhFNUPqZPom26bL05rxgtSt3XYHqI",
"tokenType": "bearer",
"expiresIn": 3600
}
Unsuccessful Response
{
"error": "internal_server_error"
}
Possible Authentication Errors
Set out in the table are a list of possible errors which resulted in an unsuccessful response.
HTTP Status Code | Error | Scenario |
---|---|---|
400 | unsupported_grant_type | Incorrect grant type |
400 | invalid_request | When there are missing credentials |
400 | invalid_client | When the credentials are incorrect or cannot be recognized. Can also occur when your account has been disabled or when the credentials have been revoked. |
500 | internal_server_error | Unexpected errors in DT's servers |
Step 2: Reporting API Request
Use the access token you received in Step 1 to request your custom report.
The request is made up of the following sections:
- Source
- Date Range
- Metrics
- Splits
- Filters (include)
Request Example
Source
The below is an example from the DT Offer Wall Report. The source can either "performance" or "event" - depending on the view you want to see.
Performance based view. Every action/revenue metric, is attributed to the time of the click and impression. This view allows a clear understanding of how your manipulations impact performance. All related data is taken from the Performance View in the DT Offer Wall Report.
Event based view (Billing). Every action/revenue metric is attributed to the time it happened. This view allows a clear understanding of the periodical revenues conversions and other events, as they happened. All related data is taken from the Billing View in DT Offer Wall Reports. This data pulled from this view matches your monthly billed invoice.
- Source must be in lower case.
Date Range
Start date: 2019-01-06
End date: 2019-09-25
Metrics
- Publisher Revenue
- Publisher ARPU
- Offer Impressions
- Offer Clicks
- OFW Unique Users
Splits (dimensions)
- DT Publisher App ID
Filters
- Dimension filtered is the country
- Values filtered are Israel, United States and Germany
For further descriptions about the terms used in this article, click here.
URL
POST https://reporting.fyber.com/api/v1/report/offerwall?format=csv
Headers
Content-Type: application/json
Authorization: Bearer <Access Token from Authentication Response>
Params
format csv
Body. raw (application/json)
{
"source": "event",
"dateRange": {
"start": "2019-10-01",
"end": "2019-12-01"
},
"metrics": [
"Publisher Revenue",
"Publisher ARPU",
"Offer Impressions",
"Offer Clicks",
"OFW Unique Users"
],
"splits": [
"Country"
],
"filters": [
{
"dimension": "Country",
"values": [
"ISRAEL",
"UNITED STATES",
"GERMANY"
]
}
]
}
If no splits or filters are required, their value should be an empty array. However, source, dateRange and metrics must include a value.
For example:
JSON
{
"source": "event",
"dateRange": {
"start": "2019-06-01",
"end": "2019-09-25"
},
"metrics": [
"Offer Impressions"
],
"splits": [],
"filters": []
}
Responses
Set out below are examples of both successful and unsuccessful responses.
Response: Successful
{
"id": "7b98b6d2-87d2-4547-91a2-87382dffe098",
"url": "https://storage.googleapis.com/gcs-team-data-offerwall-prod-useast1/fyber-async-offerwall-reports/group%3D228745/25ad6998-a52b-4a81-a707-7d1609c03c78/25ad6998-a52b-4a81-a707-7d1609c03c78.csv?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=sa-speedball%40agp-exchange-prod-0u.iam.gserviceaccount.com%2F20240702%2Fauto%2Fstorage%2Fgoog4_request&X-Goog-Date=20240702T113442Z&X-Goog-Expires=10800&X-Goog-SignedHeaders=host&X-Goog-Signature=9b333f20c59e0e60947af9af639278480bcce2e252a6f45e23576698f65944eacf6d07a53ac4106fdfb83ac0b69dc2f6ef97b51486e149d1df8a4bc0c9f5bf19e687337679506054f42487a0c35df0a613bb6d157cd7887918fa37efa9a2e1cec47cb1acc0c1de3e613dd8bd0abecb8a86aac85c56b31989860b4ffc3a0bea621d46f67f375eb2ec0ec6a661f0e77e450c59e7816d62fbbb649887451c55463a9dc238f304b1d54855ea5e3505a407bc63bbaf6a1841d8ab417e9d1cb8a354aa855097b68e68d1ad8af0393aeef1f633e56baaf817bbc8db0bb1068b18351a8a333093027c9bb899cb4871052ab8eb843a293f47558f077670e9f4713925007b
}
Response: Unsuccessful
{
"error": "invalid_token"
}
Possible Errors
The table below shows the main errors indicating an unsuccessful response.
HTTP Status Code | Error | Description | Scenario |
---|---|---|---|
401 | invalid_token | Invalid authentication token |
Authorization header is empty Authorization header not sent or token is not present in the header Unrecognized token Disabled account |
400 | invalid_format | Invalid file format requested | Format is not supported - currently only csv format is supported |
400 | invalid_query | For example: Invalid value undefined supplied to : Query/dateRange: DateRange -or- Invalid value "XXXXX" supplied to : Query/dateRange: DateRange/end: Date -or- Invalid dimensions: A,B,C -or- Invalid metrics: A,B,C |
If the query sent is not in the expected schema Date range is not sent in the ISO 8601 format Invalid dimensions Invalid metrics |
400 | invalid_source | Invalid source: XXXXX | Unsupported source type |
500 | internal_server_error | Unexpected errors in DT's servers | Error in DT's servers |
Step 3: Receiving the Custom Report
To obtain the Custom Report, follow the steps below:
- Receive the URL from the successful response in Step 2.
- Perform polling on the URL to access the file containing the custom report. The empty file is populated within one hour, depending on the size of the query.
- If the file is not populated with data after one hour, resend the request.
The URL is valid for three hours.
Additional Information and Restrictions
It is important to take note of the information, restrictions and rules to ensure the reports provided to ensure a successful response.
General
- All reports are presented in US dollars
- The time zone used is UTC
Query Restrictions
- All fields are mandatory. Splits and Filters can have an empty array. See example in Step 2.
- The time range for a report query is limited to 90 days
- Queries are limited to a maximum of 50 per day, per API
- You can query each one of the defined dimensions in the Reporting API calls by up to 5 dimensions in a single query
- To receive a breakdown by date, it must exist in the "splits" array
Date Range Restrictions
There are a number of rules that must be observed with regard to the date range:
- The start date and end date must be in the format of ISO 8601. For example, 2019-10-03
- The interval between the start and end date should not exceed 90 days
- The start date must be earlier or equal to the end date
- The start date must be no later than the previous 18 months
- The end date can not be a date beyond the current date
- The start and end dates are from midnight to midnight
Data for DT Offer Wall Reports is available from 10 June 2019 onwards
Queries with the current day's date or dates prior to the above time periods result in an HTTP 400 status code (invalid_query)
Reporting API Metrics and Dimensions
You must specify in the API Request the source, metrics, dimensions and optional filters you want to include in your custom report.
- Currently the sources available for the DT Offer Wall Reporting API are Performance or Event
- Names of metrics and dimensions are case sensitive
DT Offer Wall Report Metrics
Set out in the tables below are the supported metrics available in the the DT Offer Wall Reporting API.
For descriptions of the metrics in the DT Offer Wall Report, click here.
Group Name | Metric |
---|---|
Delivery | Avg. Position |
Offer Completion Time | |
Offer Impressions | |
Offer Clicks | |
Offer Info Click | |
Offer Installs | |
Offer Ticket Count | |
Offer Conversions | |
OFW Container Impressions | |
Container Fill Rate | |
Avg. Offers Per Container | |
OFW Impressions per App Active Users | |
OFW Impressions per OFW Engaged Users | |
OFW Impressions to Clicks Ratio | |
Offer Impressions per App Active Users | |
Offer Impressions per OFW Engaged Users | |
Publisher App Unique Users | |
Validation response | |
OFW Unique Users | |
Engagement | Conversions / Clicks Rate |
Offer CTR | |
Offer Clicks | |
Offer Completion Time | |
Offer Conversions | |
Offer Info CTR | |
Offer Info Click | |
Offer Installs | |
Offer Ticket Count | |
Container CTR | |
Ofw Engagement Rate | |
Revenue | Publisher Revenue |
Publisher ARPU | |
Publisher ARPDAU | |
Publisher ARPDEU | |
Publisher net eCPM | |
Publisher net eCPA | |
Publisher eCPA | |
Publisher offer eCPM |
DT Offer Wall Report Dimensions
Set out below are the groups and the dimensions contained within them, relevant to the DT Offer Wall Report.
For descriptions of the dimensions in the DT Offer Wall Report, click here.
Group | Dimension |
---|---|
Date / Time | Date |
Delivery | Offer Actual Position |
Inventory | App Store Name |
Publisher App Bundle | |
Publisher Account Name | |
DT Publisher App ID | |
DT Publisher App Name | |
Publisher App Store Category | |
Publisher ID | |
Country | |
City | |
Integration Type | |
Device | Device Manufacturer |
Device OS | |
Device OS Version | |
SDK Version | |
Engagement | Offer Completion Range |
Demand | Affiliate Network Name |
Demand ID | |
Campaign Type | |
Campaign ID | |
Campaign Name | |
Campaign Title | |
Offer Actual Position | |
Program Name | |
Offer Completion Range | |
Publisher App Category | |
Dynamic Payout Enabled | |
Offer Task Type | |
Program ID | |
System | Conversion Type |
Filters
You can set an include filter on any value(s) within a dimension. This means, all the data presented in the report relates only to the values defined in the filter.
For example:
Dimension = Country
Filtered Value = US or CA
As a result of these filters, the report will contain data relevant only for the countries US and CA.
For more details on the Offer Wall Reporting API for Publishers, click here.