Network creative frequency and recency

The Network Creative Frequency & Recency report can be used to view creative data for a specific advertiser based on the frequency and recency of user views. This report is more granular than the Advertiser Creative Frequency and Recency report and is available to network users only.

For instructions on retrieving a report, 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 can be set to one of the following:

  • last_hour
  • today
  • yesterday
  • last_48_hours
  • last_2_days
  • last_7_days
  • last_14_days
  • month_to_date
  • last_30_days
  • last_month
  • last_100_days
  • custom

Data retention period

Data retention period for this report is 120 days (no data before February 26, 2017).

Note

To run a report for a custom time frame, set the start_date and end_date fields in your report request. For more details about these fields, see Report Service.

Dimensions

Column Type Filter? Example Description
hour time no "2010-02-01 06:00:00" The hour of the auction.
day time no "2010-02-01" The day of the auction.
month time no "2010-02" The month of the auction.
creative_id int yes 554 The ID of the creative.

Note: For external click or impression trackers, creative_id will be "External Clicks" or "External Imps".
creative_name string no "Q1 2010 728x90" The name of the creative.

Note: For external click or impression trackers, creative_name will be "External Clicks" or "External Imps".
creative string no "Q1 2010 728x90 (554)" Deprecated.
string yes "15-30 minutes" The bucket for how recently the creative was displayed. See Creative Recency Buckets below for possible values.
creative_recency_bucket_id string no "4" The ID of the creative recency bucket. See Creative Recency Buckets below for possible values.
creative_frequency_bucket string yes "11-20" The bucket for how frequently the creative was displayed. See Creative Frequency Buckets below for possible values.
creative_frequency_bucket_id string no "3" The ID of the creative frequency bucket. See Creative Frequency Buckets below for possible values.
buyer_member_id int yes 123 The ID of the buying member. If the impression was not purchased, this field shows one of the following values:
229 = PSA
0 = Blank
319 = Default
advertiser_id int yes 789 The ID of the advertiser. If the value is 0, either the impression was purchased by an external buyer, or a default or PSA was shown.
advertiser_name string no "Verizon Wireless" The name of the advertiser.
advertiser string no "Verizon Wireless (789)" Deprecated.
advertiser_code string no "Verizon Wireless Code" The custom code for the advertiser.
insertion_order_id int yes 321 The ID of the insertion order.
insertion_order_name string no "Insertion Order" The name of the insertion order.
insertion_order string no "Insertion Order (321)" Deprecated.
insertion_order_code string no "Insertion Order Code" The custom code for the insertion order.
line_item_id int yes 111 The ID of the line item.
line_item_name string no "Default Line Item" The name of the line item.
line_item string no "Default Line Item (111)" Deprecated.
line_item_code string no "Default Line Item Code" The custom code for the line item.
campaign_id int yes 222 The ID of the campaign.
campaign_name string no "Default Campaign" The name of the campaign.
campaign string no "Default Campaign (222)" Deprecated.
campaign_code string no "Default Campaign Code" The custom code for the campaign.
campaign_priority int no 5 The bidding priority for a campaign that targets direct inventory. For more information, see Bidding Priority in the UI documentation.
Possible values: 1 - 10, where 10 is the highest priority.
split_id int yes 342 The ID of the split that purchased the impressions in this data set. Splits are only applicable to augmented line items. For any reports that contain campaigns, the split_id (if included) will be null.
split_name string yes "Mobile Split A" The name of the split that purchased the impressions in this data set. Splits are only applicable to augmented line items. For any reports that contain campaigns, the split_name (if included) will be null.
size string yes "728x90" The size of the placement/creative served.
is_remarketing int yes 0, 1 If 1, the campaign is remarketing. If 0, the campaign is not remarketing.
bid_type string Yes "Manual" The optimization phase the node was in when it bid for this impression. Note that the term "give up" is appended to the bid types below if the valuation for that impression falls below the venue's "give up price". For more information, see What is a Venue? and Give Up Price in the UI documentation.
Allowed values:
- "Manual": Applies when you are bidding with a CPM goal, whether it's Base, EAP, or ECP.
- "Learn": Applies when you are bidding with optimization (CPA, CPC, or margin) and we do not yet have enough data to bid optimized.
- "Optimized": Applies when you are bidding with optimization (CPA, CPC, or margin) and we have enough data to bid optimized.
- "Unknown": The node was in an unknown optimization phase.
- "Optimized give up"
- "Learn give up"
- "Manual give up"
media_type string no "Banner", "Pop", "Interstitial", "Video", "Text", "Expandable", "Skin" The general display style of a creative. You can use the Media Type Service to view the complete list of media types.
mediatype_id int Yes 1 The ID of the general display style of a creative.
trafficker_for_line_item string yes "Maurice Truman" The trafficker for the line item. See the "labels" field in the Line Item Service for more details.
salesrep_for_line_item string yes "Beverly Heller" The sales rep for the line item. See the "labels" field in the Line Item Service for more details.
user_group_for_campaign string yes "Test" The test/control user group for the campaign. See the "labels" field in the Campaign Service for more details.

Metrics

Column Type Example Formula Description
imps int 2340 imps The total number of impressions (served and resold).
clicks int 1 clicks The total number of clicks across all impressions.
total_convs int 9 post_click_convs + post_view_convs The total number of post-view and post-click conversions.
convs_rate double 0.000221877080097626 total_convs / imps The rate of conversions to impressions.
click_convs_rate double 0.1651376 total_convs / clicks The rate of conversions to clicks.
click_conv_rate double 0.000064 total_convs / clicks The rate of conversions to clicks.

Note: This field is identical to click_convs_rate.
ctr double 0.000221877080097626 clicks / imps The rate of clicks to impressions.
click_thru_pct double 1.12359550561797% (clicks / imps) * 100 The rate of clicks to impressions as a percentage.
post_click_convs int 4 post_click_convs The total number of recorded post-click conversions.
post_click_convs_rate double 0.0002 post_click_convs / imps The rate of post-click conversion to impressions.
post_click_revenue money 150.00 post_click_revenue The total amount of recorded post-click conversion revenue.
post_view_convs int 5 post_view_convs The total number of recorded post-view conversions.
post_view_convs_rate double 0.00013 post_view_convs / imps The rate of post-view conversions to impressions.
post_view_revenue money 300.00 post_view_revenue The total amount of recorded post-view conversion revenue.
media_cost money 100 media_cost The total amount spent.
cost_ecpm money 0.4271259 (media_cost / imps) * 1,000 The cost per 1,000 impressions.
cost_ecpc money 0.1834 media_cost / clicks The cost per click.
cost_ecpa money 0.1834 media_cost / total_convs The cost per attribution/conversion.
booked_revenue money 25.767257 booked_revenue The total revenue booked through direct advertisers (line item).
profit_ecpm money 0.7778 profit/imps * 1,000 Profit (defined as booked revenue minus total cost) per 1,000 imps.
total_cost money 123.45 total_cost = media_cost + data_costs + partner_fees + commissions + serving_fees + publisher_revenue 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.

Note: We have added logic to prevent double counting third-party fees during the breaking change period .
total_cost_ecpm money 123.45 (total_cost/imps) * 1,000 The total cost per 1,000 imps.
total_cost_ecpc money 123.45 total_cost/clicks The total cost per click.
total_cost_ecpa money 123.45 total_cost/conversions The total cost per conversion.
profit money 123.45 booked_revenue - total_cost Booked revenue minus total cost.
profit_ecpc money 123.45 (booked_revenue - total_cost)/clicks Profit per click.
profit_ecpa money 123.45 (booked_revenue - total_cost)/conversions Profit per conversion.
profit_margin money 123.45 (booked_revenue - total_cost)/booked_revenue Buyer profit margin.
video_skips int 10 The total number of times a user skipped the video. Use this metric for reporting when buying skippable inventory.
video_starts int 11 The total number of times the first segment of the video creative was downloaded and started.
video_25_pcts int 10 The total number of times the video creatives completed 25% of the entire duration.
video_50_pcts int 10 The total number of times the video creatives completed 50% of the entire duration.
video_75_pcts int 10 The total number of times the video creatives completed 75% of the entire duration.
video_completions int 12 The total number of times the video creatives played for the entire duration.
video_served int 10 The total number of video responses served to the player. An ad response occurs when the VAST document (XML) is served in response to a request. An ad response doesn't necessarily indicate a successful impression. For an impression, the first frame of the video must be served.
video_errors int 2 The total number of times a video error occurred.
revenue_per_video_complete money 25.76 The revenue per video completion.
cost_per_video_complete money 22.76 The cost per video completion.
video_completion_rate double 1.12359550561797% (video completions/total impressions) x 100 The ratio of video completions to impressions, expressed as a percentage.
video_start_rate double 1.12359550561797% The percentage of times the first segment of the video creative was downloaded and started.
video_skip_rate double 1.12359550561797% The percentage of times the user opted to skip the video.

Creative frequency buckets

Bucket ID Bucket Name
-2 "no-cookie-date"
-1 "no-cookie"
0 "0"
1 "1"
2 "2-5"
3 "6-10"
4 "11-20"
5 "21-40"
6 "41-60
7 "61-100"
8 "101-150"
9 "151-250"
10 "251-500"
11 "500+"

Creative recency buckets

Bucket ID Bucket Name
-2 "no-cookie-date"
-1 "no-cookie"
0 "< 1 minute"
1 "1-5 minutes"
2 "5-15 minutes"
3 "15-30 minutes"
4 "30-60 minutes"
5 "1-4 hours"
6 "4-12 hours"
7 "12-24 hours"
8 "1-2 days"
9 "2-7 days"
10 "8-14 days"
11 "14-30 days"

Example

Create a JSON formatted report request

$ cat network_advertiser_frequency_recency

{
    "report":
    {
        "report_type": "network_advertiser_frequency_recency",
        "columns": [
            "creative_recency_bucket",
            "creative_frequency_bucket",
            "creative_id",
            "imps",
            "clicks",
            "total_convs",
            "booked_revenue",
            "media_cost",
            "profit_ecpm"
        ],
        "report_interval": "last_7_days",
        "emails": ["jsmith@xandr.com"],
        "format": "csv"
    }
}

POST the request to the reporting service

$ curl -b cookies -c cookies -X post -d @network_frequency_recency 'https://api.appnexus.com/report?advertiser_id=384'

{
    "response": {
        "status": "OK",
        "report_id": "0f148df60ff2760d57014f607f46fce4"
    }
}

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=0f148df60ff2760d57014f607f46fce4'

{
    "response": {
        "status": "OK",
        "report": {
            "name": null,
            "created_on": "2012-02-03 22:00:33",
            "cache_hit": false,
            "fact_cache_hit": false,
            "fact_cache_error": "did not find any cache table for 2,4,44,30,31,66,32,34,9,17,16,36",
            "json_request": "{\"report\":{\"report_type\":\"network_advertiser_frequency_recency\",
             \"columns\":[\"creative_recency_bucket\",\"creative_frequency_bucket\",\"creative_id\",
             \"imps\",\"clicks\",\"total_convs\",\"booked_revenue\",\"media_cost\",\"profit_ecpm\"],
             \"report_interval\":\"last_7_days\",\"emails\":[\"js@email.com\"],\"filters\":
             [{\"buyer_member_id\":\"541\"},{\"advertiser_id\":\"3610\"}]}}",
            "header_info": "Report type:,network_advertiser_frequency_recency\r\n,\r\nRun at:,
             2012-02-03 22:00:33\r\nStart date:,2012-01-27 00:00:00\r\nEnd date:,2012-02-03 00:00:00
             \r\nTimezone:,\r\nUser:,John Smith (9685)\r\n",
            "data": "creative_recency_bucket,creative_frequency_bucket,creative_id,imps,clicks,
             total_convs,booked_revenue,media_cost,profit_ecpm\r\n7-14 days,6-10,753570,1,0,0,.000000,
             .000000,.000000000000000000000000\r\n15-30 minutes,151-250,753571,3,0,0,.000000,.000000,
             .000000000000000000000000\r\n1-2 days,11-20,1316901,12,0,0,.000000,.004200,-.350000000000
             000000000000\r\n1-2 days,11-20,1316886,6,0,0,.000000,.001900,-.316666666666666666667000\r
             \n7-14 days,21-40,773408,3,0,0,.000000,.000160,-.053333333333333333333000\r\n30-60 minutes,
             500+,700464,35,0,0,.000000,.000000,.000000000000000000000000\r\n30-60 minutes,2-5,1317391,
             ...
            "url": "report-download?id=0f1374f60ff2760d57014f607f46fce4"
        },
        "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=0f1374f60ff2760d57014f607f46fce4' > /tmp/network_frequency.csv

Note

There is a limit of 100,000 rows per report when you download them as XLSX and Excel file.