Digital Platform API - Offline Attribution report
The Offline Attribution report is used to analyze your line item's performance in influencing in-store purchases among your target audiences. The Offline Attribution report is only accessible to clients who have Offline Sales Attribution enabled for their line items.
For instructions on retrieving a report, please see Report Service or the example below. This report requires specifying the advertiser ID as part of the URL, for example:
https://api.appnexus.com/report?advertiser_id=ADVERTISER_ID
Time frame
The report_interval
field in the JSON request can be set to one of the following:
- custom
- last_7_available_days
- last_14_available_days
- last_30_available_days
- last_365_days
Data retention period
This report has a daily time granularity and can retrieve data from the past 120 days.
Note
- To run a report for a custom time frame, set the
start_date
andend_date
fields in your report request. For more details about these fields, see Report Service. - You can't make a specific time zone selection because NCS data uses the time zone(s) from where sales take place.
Dimensions
Column | Type | Filter? | Example | Description |
---|---|---|---|---|
day |
date | "2021-10-10" |
The day on which NCS generated the report. The date displayed for this dimension will match the date displayed for the analysis_start_date . |
|
insertion_order_id |
string | Yes | "5533431" |
The ID of the insertion order. |
insertion_order_name |
string | Yes | "My IO" |
The name of the insertion order. |
line_item_id |
string | Yes | "14545960" |
The ID of the line item. |
line_item_name |
string | Yes | "NCS Line Item" |
The name of the line item. |
flight_id |
string | "12396335" |
The ID of the flight. | |
flight.start_date |
date | "2021-04-16 00:00:00 UTC" |
The start date of the flight. | |
flight.end_date |
date | "2021-04-30 23:59:59 UTC" |
The end date of the flight. | |
split_id |
string | Yes | "1234" |
The ID of a split. |
split_name |
string | Yes | "my split" |
The name of a split. |
analysis_end_date |
date | "2021-10-10" |
The last day of the purchase interval being reported for each cohort. | |
analysis_rejection_reason |
string | "DMA minimum not met, Retailer minimum not met" |
The error that identifies which of the requirements for measurement weren't met. | |
analysis_start_date |
date | "2021-10-03" |
The first day of the purchase interval being reported for each cohort. | |
frequency_type |
string | "weekly" |
The reporting frequency selected for this line item or split. | |
lookback_hours |
string | "flight_lifetime" |
The lookback window selected for this line item or split. | |
product_id |
string | "10096" |
The product selection ID used to describe the product or products being reported. | |
product |
string | "BAKING SUPPLIES \| MARS INCORPORATED \| M&M MARS" |
The product selection name used to describe the product or products being reported. |
Metrics
Column | Type | Description |
---|---|---|
imps |
int | The total number of impressions served. |
clicks |
int | The total number of clicks recorded. |
booked_revenue |
int | The revenue received from the advertiser. |
media_cost |
int | The cost to the buying member for this inventory. |
total_cost |
int | The total amount of costs accrued over the reported period of time. This generally includes two types of costs: budgeted costs (media cost, data cost, partner fees, serving fees, commissions) and publisher revenue if you track publisher payouts on the platform. |
imps_viewed |
int | Impressions that are considered viewable as defined by the Interactive Advertising Bureau (IAB): For at least one second, 50% of a creative's pixels (or 30% for a creative with at least 242,500 pixels) must render on a screen. |
all_outlet_adjusted_number_of_trips |
int | The number of trips to the store by households that have been during the analysis's start and end dates. NCS only has data for some stores (outlets) within the US, so it adjusts sales metrics to account for sales that occurred across all outlets in the US. |
all_outlet_adjusted_penetration% |
int | The penetration percentage for the product, category, or brand during the analysis's start and end dates. NCS only has data for some stores (outlets) within the US, so it adjusts sales metrics to account for sales that occurred across all outlets in the US. Note: Penetration measures brand or category popularity. It is calculated by dividing the number of people who've purchased a specific brand or category of goods at least once in a given time period by the size of the relevant market's total population. |
all_outlet_adjusted_total_spend |
int | The number of dollars spent by households on the product, category, or brand during the analysis's start and end dates. NCS only has data for some stores (outlets) within the US, so it adjusts sales metrics to account for sales that occurred across all outlets in the US. |
video_completions |
int | For a video creative, the number of times the video creative was viewed to completion. |
Example
Create a JSON formatted report request
The JSON file should include the report_type
of "offline_attribution"
, as well as the columns (dimensions and metrics) and the report_interval
that you want to retrieve. You can also filter for specific dimensions, define granularity (year
, month
, day
), and specify the "format"
in which the data should be returned ("csv"
, "excel"
, or "html"
). For a full explanation of fields that can be included in the JSON file, see the Report Service.
$ cat report-request.json
{
"report": {
"report_type": "offline_attribution",
"format": "csv",
"report_interval": "last_365_days",
"columns": [
"month",
"member_id",
"line_item_id",
"split_id",
"all_outlet_adjusted_total_spend",
"imps",
"analysis_rejection_reason"
],
"orders": [
"member_id",
"line_item_id",
"split_id"
],
"filters": [{
"line_item_id": [14545960, 14545978]
}]
}
}
POST
the request to the reporting service
In this example, we request execution of the report for advertiser 660.
$ curl -b cookies -c cookies -X POST -d @offline_attribution 'https://api.appnexus.com/report?advertiser_id=660'
{
"response":{
"status":"OK",
"report_id":"07af1282c9485adcef49c95fa5d7496b"
}
}
Use the report ID to retrieve the report data
The standard response includes the report data and a Download URL that you can use to save the data to a file. If you want to get just the Download URL without the report data, pass "without_data"
in the query string.
$ curl -b cookies -c cookies 'https://api.appnexus.com/report?id=07af1282c9485adcef49c95fa5d7496b'
{
"response": {
"status": "OK",
"report": {
"name": null,
"created_on": "2011-11-16 23:51:14",
"cache_hit": false,
"fact_cache_hit": false,
"json_request": "{\"report\":{\"report_type\":\"offline_attribution\",\"format\":\"csv\",\"report_interval\":\"last_365_days\",\"columns\":[\"month\",\"member_id\",\"line_item_id\",\"split_id\",\"all_outlet_adjusted_total_spend\",\"imps\",\"analysis_rejection_reason\"],\"orders\":[{\"order_by\":\"member_id\",\"direction\":\"ASC\"},{\"order_by\":\"line_item_id\",\"direction\":\"ASC\"},{\"order_by\":\"split_id\",\"direction\":\"ASC\"}],\"filters\":[{\"line_item_id\":[14545960,14545978]},{\"member_id\":\"958\"}],\"grouping\":{\"additional_grouping_sets\":[],\"unselected_implicit_groupings\":[],\"additional_groups_on_bottom\":true},\"timezone\":\"UTC\",\"reporting_decimal_type\":\"decimal\",\"use_cache\":true},\"extraction_version\":\"refactored\",\"end_date\":1622678400,\"start_date\":1591142400,\"user_id\":\"46052\"}",
"header_info": "Report type: offline_attributions\nReport ID: 5dd162b83a0417e13859e5e243844329\n",
"data": "day,campaign,booked_revenue,imps,clicks,click_thru_pct,site_domain\u000d\u000a2011-11-12,ExampleCampaign - 1
(123456),.000000,24,0,.000000000000000000%,aaaa.com\u000d\u000a2011-11-13,ExampleCampaign - 2 (789012),.000000,9,0,
.000000000000000000%,bbbb.net\u000d\u000a2011-11-12,ExampleCampaign - 3 (345678),.000000,2,0,.000000000000000000%,
ccc.com\u000d\u000a2011-11-13,ExampleCampaign - 3 (345678),.000000,2,0,.000000000000000000%,cccc.de\u000du000a
2011-11-14,ExampleCampaign - 3 (345678),.000000,10,0,.000000000000000000%,dddd.com\u000d\u000a2011-11-13,
ExampleCampaign - 4 (901234), 2.574900,22,3,13.636363636363636364%,aaaa.com\u000d\u000a2011-11-15,ExampleCampaign - 3
(345678),8.583000,2431,10,.411353352529823118%,abab.com\
...
"url": "report-download?id=495d03a7667bac467bb488043ae336e9"
},
"execution_status": "ready"
}
}
Use the download URL to save the report data to a file
You use the "url"
field in the response to save the report data to a file. Simply make another GET
call and identify the location and file that you want to save to. Be sure to use the file the extension of the "format"
that you specified in your initial POST
request.
$ curl -b cookies -c cookies 'https://api.appnexus.com/report-download?id=495d03a7667bac467bb488043ae336e9' > /tmp/site_domain.csv