Tapjoy enables publishers to access their Offerwall user level ad revenue data via a User Level Ad Revenue API, in addition to our existing offer data callbacks. This API makes User Level Ad Revenue reports available directly to Mobile Measurement Partners (MMPs) or Publisher Partners via a CSV file stored in Amazon Web Services (AWS) S3.
In order to make the requests, users will need the relevant Tapjoy App ID (the same one associated with the app for the Tapjoy LTV dashboard) and the date for which data is desired.
To use the API, the MMP or Partner must make a request to the Tapjoy OAuth endpoint with their Reporting API/Marketing API key to receive an access token. With the access token, the user then makes a request to the Tapjoy Report API to receive the pre-signed URLs pointing to the reports in AWS S3. The pre-signed URLs will allow access to the reports for 5 min following retrieval. Lastly, a request to the report URLs in AWS S3 will return the CSV reports containing the User Level Ad Revenue data.
Endpoint
https://api.tapjoy.com/api/client/publisher/apps/<app_id>/user_revenue_report
Accessible via OAuth with your Reporting API/Marketing API key.
Required parameters:
Acceptable date formats are mm/dd, mm/dd/yyyy, mm/dd/yy, dd-mm yyyy-mm-dd, yy-mm-dd
Returns an array of urls to the static report(s) with a pre-signed authentication token which is valid for 5 min.
GET api/client/publisher/apps/<publisher_app_id>/user_revenue_report?date=<date>
Host: api.tapjoy.com
Authorization: Bearer <access_token_string>
Accept: application/json
{
"urls": [
"https://tapjoy.amazon.s3.com/data/report.csv.gz&key=secure"
]
}
status 404
{
“reason”: “No publisher app with id <publisher_app_id> found.”
}
Data SLA - data for day x to be ready by day x+1 at 01:00 UTC
Retention SLA - reports are available for 14 days (day x + 15)
Returns a CSV file of the User Level Revenue report
GET /data/report.csv.gz&key=secure
Host: tapjoy.amazon.s3.com
Accept: application/json
status 200
{
CSV File
}
status 401
{
“error”: “Unauthorized”
}
status 404
{
“error”: “Not Found”
}
What do all the different columns in the report represent?
Field | Description |
---|---|
date_id and report_date | This is the user-specific report date from the API request. The metrics in the report will be for this date in question |
partner_id | This is your Tapjoy internal identifier |
app_name and appkey | These are the name and Tapjoy identifier for your app |
IDFA/IDFV/GAID | Depending on the platform, these columns will either have the identifier value or UNKNOWN |
device_os_version | Operating system version for the associated mobile device |
att_status | iOS App Tracking Transparency status for the device if known |
publisher_user_id | The publisher identifier associated with the device if available |
ad_unit | This will always be “offerwall” and is used by MMPs for processing |
placement | The Tapjoy placement name |
content_card | The Tapjoy content card name |
geoip_country | The country associated with the device if available by IP lookup |
currency_sale | A value of “1” indicates that a currency sale was not in progress when the associated conversion happened or will be the currency multiplier value if there was a sale |
conversion_rate | This is the currency exchange rate used for the transaction |
impressions | The aggregated impressions associated with this device ID for the day in question |
publisher_amount | The aggregated revenue associated with this device ID for the day in question |
Does this report include video revenue?
No, this report includes Offerwall ad revenue only. If user level ad revenue data is desired, then Partners should contact their mediator on accessing an applicable API or report.
How far back does this report look?
Reports are accessible for Publisher Partners to access for 14 days and each day at 1:00 AM UTC the previous day’s report will be available.
Why do some user level entries have zero values in the impression column but non-zero values for revenue?
For the MR-CPE product, there is often a delay (days or even weeks) between when the impression was shown and when the event conversions happen later in the multi-reward funnel.
What currency is my publisher revenue amount shown in?
It’s shown in United States Dollars (USD)
Which MMPs are currently supporting the API?
Appsflyer.
Why are there multiple results in the publisher_user_id or geoip_countries column?
It’s possible for a user to view and convert an offer in the same publisher app with different publisher_user_ids or geoip_countries. These IDs are set by the publisher on SDK initialization, so something like the following could happen:
The same thing could happen for geoip_countries. To avoid inflating earnings, these values need to be combined into a single row.