Site Domain Performance report

The Site Domain Performance report can be used to view performance and optimization data by domain for a specific advertiser.

Tip

To view performance and optimization data by domain for multiple advertisers, use the Network Site Domain Performance report.

For instructions on retrieving a report, please see Report Service or see the example below. For an advertiser user, the advertiser ID is detected based on the user's authentication. For a network user, however, 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:

  • yesterday
  • last_7_days
  • month_to_date
  • month_to_yesterday

If you use the start_date and end_date fields to define the time range, the start_date must not be more than 45 days in the past. Since hourly data is not available for this report, start_date and end_date cannot be identical and must be formatted as "YYYY-MM-DD" rather than "YYYY-MM-DD HH:MM:SS". Report data can be returned only for the UTC timezone.

Data retention period

Data retention period for this report is 45 days.

Dimensions

Column Type Filter? Example Description
month date yes 11/1/11 The month and year (with the first day of the month).
day date yes 11/16/11 The day, month, and year.
site_domain string no bestsiteever.com - or - itunes.apple.com/app/app-name/id1234567 The domain where the impression occurred. For mobile applications, this can be the URL of the app's location in the app store.
There are two additional values that may appear in place of a domain, specifically: "deals.unknown" or "managed.unknown". These mean that we didn't receive a valid domain as the referrer. For example, the domain may be blank or otherwise malformed.
campaign string no ExampleCampaign (123456) The name of the campaign followed by the ID (Xandr format).
campaign_id int yes 123456 The ID of the campaign.
campaign_code string no CampaignCode The custom code for the campaign.
campaign_name string no ExampleCampaign The name of the campaign.
campaign_priority int no 5 The bidding priority of 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.
line_item string no ExampleLineItem (323) The name of the line item followed by the ID (Xandr format).
line_item_id int yes 323 The ID of the line item.
line_item_name string no ExampleLineItem The name of the line item.
campaign_group string no ExampleCampaign(123) The name of the campaign group followed by the ID (Xandr format).

Note: campaign_group is a synonymous with line_item.
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.
top_level_category_id int yes 19821 The ID of the top content category assigned to the domain. This field may be 0 if the domain's second_level_category has no parent category.
top_level_category_name string yes "Shopping" The name of the top content category assigned to the domain. This field may be blank if the domain's second_level_category has no parent category.
top_level_category string yes "Shopping (19821)" The name and ID of the top content category assigned to the domain. This field may be blank if the domain's second_level_category has no parent category.
second_level_category_id int yes 20129 The ID of the second-level content category assigned to the domain.

Note: If the domain is an a top-level category, you should not request this dimension.
second_level_category_name string yes "Shoes" The name of the second-level content category assigned to the domain.

Note: If the domain is an a top-level category, you should not request this dimension.
second_level_category string yes "Shoes (20129)" The ID and name of the second-level content category assigned to the domain.

Note: If the domain is an a top-level category, you should not request this dimension.
deal_id int Yes 2345 The ID of the deal. For more information about deals you have negotiated with sellers, see Deal Buyer Access Service.
deal_name string No "Private deal for buyer 1085 with floor of $2.50" The name of the deal.
deal string No "Private deal for buyer 1085 with floor of $2.50 (45)" The name of the deal followed by the ID (Xandr format).
deal_code string No "External seller deal code" The custom code for the deal. For deals with external supply partners, this is generally the string that you use to identify the deal.
advertiser string no ExampleAdvertiser (123) The name of the advertiser followed by the ID (Xandr format).
campaign_group_name string no ExampleGroupName The name of the campaign group
advertiser_id int yes 123 The ID of the advertiser.
campaign_group_id int no 123 The unique identification number of the campaign group
advertiser_code string no AdvertiserCode The custom code for the advertiser.
advertiser_name string no ExampleAdvertiser The name of the advertiser.
buyer_member string no MyNetwork (4567) The name of the buying member followed by the ID (Xandr format).
buyer_member_id int yes 4567 The ID of the buying member.
buyer_member_name string no MyNetwork The name of the buying member.
supply_type string Yes mobile_web The seller-classified channel to denominate supply in terms of web, mobile-optimized web, and mobile app impressions. Possible values are
- 'web'
- 'mobile_app'
- 'mobile_web'
mobile_application_id string Yes ‘343200656’ (iOS) or ‘com.rovio.angrybirds’ (Android) A targetable Apple App Store ID, Google Play package name, or Windows application ID.
mobile_application_name string Yes Angry Birds The name of the mobile application as it appears in the Apple App and Google Play Stores.
mobile_application string No Angry Birds (com.rovio.angrybirds) The name of the mobile application followed by the ID (Xandr format).
fold_position_id int Yes 0 The ID of the fold position, i.e. where on the page the placement is located.
Possible values for impressions:
0 = "unknown"
1 = "above"
2 = "below"
fold_position string Yes "Unknown" The fold position, i.e. where on the page the placement is located. For allowed values, see fold_position_id.
age_bucket string Yes "25-34" The bucket for the age of the user. See Age Buckets below for possible values.

Note: For impressions older than 100 days, the age_bucket will be "unknown".
age_bucket_id string No "3" The ID of the age bucket. See Age Buckets below for possible values.

Note: For impressions older than than 100 days, the age_bucket_id will be 0.
gender string Yes "m", "f", "u" The gender of the user.

Note: For impressions older than 100 days, gender will be "u".
is_remarketing int Yes 0, 1 If 1, the campaign is remarketing. If 0, the campaign is not remarketing.

Note: For impressions older than 100 days, is_remarketing will be -1.
pixel_id int yes 1942 The unique identification number of the conversion pixel.

Note: This dimension will return a maximum of 10 conversion pixels. Also, you can filter by no more than 10 conversion pixels. Although pixel_id is groupable, we do not recommend that you group by this dimension since doing so will cause conversion events to then be shown in separate rows from impression and click events. We generally assume you want to view all of these events in a single row so as to be able to retrieve accurate and aggregated values for conversion rate and cost-per-conversion calculations. As a result, we instead recommend that you filter by pixel_id so you can retrieve conversion counts and related metrics for your most relevant pixel IDs.
operating_system_id int Yes 24 The ID of the operating system of the device.
- Use the Operating System Family Service to obtain a list of operating system families.
- Use the Operating System Extended Service to look up which operating system versions are within a given operating system family.
operating_system_name string Yes "Android 2.3.5 Gingerbread" The ID of the operating system of the device.
- Use the Operating System Family Service to obtain a list of operating system families.
- Use the Operating System Extended Service to look up which operating system versions are within a given operating system family.
operating_system_family_id int Yes 2 The ID of the operating system of the device.
- Use the Operating System Family Service to obtain a list of operating system families.
- Use the Operating System Extended Service to look up which operating system versions are within a given operating system family.
operating_system_family_name string Yes "Android" The ID of the operating system of the device.
- Use the Operating System Family Service to obtain a list of operating system families.
- Use the Operating System Extended Service to look up which operating system versions are within a given operating system family.
seller_member_id int Yes 12345 The ID of the seller member associated with the site domain.
seller_member_name string No "BestSellerEver" The name of the seller member associated with the site domain.

Metrics

Column Type Example Formula Description
booked_revenue money 450.00 booked_revenue The revenue received from the advertiser. For more information, see Network Revenue and Billing Your Clients in the UI documentation.
clicks int 2067 clicks The total number of clicks.
click_thru_pct double 2.756% (clicks / imps) * 100 The rate of clicks to impressions as a percentage.
convs_per_mm double 384.4 (post_click_convs + post_view_convs / imps) * 1,000,000 The number of conversions per million impressions.
convs_rate double 0.0003844 (post_click_convs + post_view_convs) / imps The rate of conversions to impressions.
cost_ecpa money 1.1111 media_cost / (post_click_convs + post_view_convs) The cost per acquisition/conversion.
cost_ecpc money 0.1834 media_cost / clicks The cost per click.
cpm money 5.00 media_cost / imps * 1000 The cost per thousand impressions.
ctr double 0.22756 clicks / imps The rate of clicks to impressions.
imps int 75000 imps The total number of impressions served.
media_cost money 100.00 media_cost The expense for the buying member. For more information, see Network Revenue and Billing Your Clients in the UI documentation.
post_click_convs int 15 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 conversions to impressions.
post_view_convs int 10 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.
profit money 0.084102 booked_revenue - total_cost Booked revenue minus total cost.
profit_ecpm money 0.7778 ((booked_revenue - media_cost) / imps) * 1000 Profit (defined as booked revenue minus total cost) per 1,000 impressions.
imps_viewed int 30,450 imps_viewed The number of measured impressions that were viewable, per the IAB Viewability definition, which states that an impression is viewable if 50% of the pixels are in-view during 1 consecutive second.
view_measured_imps int 10,120 view_measured_imps The total number of impressions that were measured for viewability.
view_rate double 58% view_rate The percentage of impressions that were viewable out of the total number of impressions measured for viewability. (Viewed Imps / View Measured Imps)
view_measurement_rate double 45% view_measurement_rate The percentage of impressions measured for viewability out of the total number of impressions. (View Measured Imps / 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_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.

Age buckets

Bucket ID Bucket Name
0 "unknown"
1 "13-17"8
2 "18-24"
3 "25-34"
4 "35-44"
5 "45-54"
6 "55-64"
7 "65+"

Example

Create a JSON formatted report request

$ cat domain_performance

{
    "report":
    {
        "report_type": "site_domain_performance",
        "columns": [
            "day",
            "campaign",
            "booked_revenue",
            "imps",
            "clicks",
            "click_thru_pct",
            "site_domain"
        ]
        "report_interval": "last_7_days",
        "emails": ["js@mynetwork.com"],
        "format": "csv"
    }
}

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 @domain_performance '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,
            "fact_cache_error": "fact-cache is off for report site_domain_performance",
            "json_request": "{\"report\":{\"report_type\":\"site_domain_performance\",\"columns\":[\"day\",\"campaign",
             "booked_revenue\",\"imps\",\"clicks\",\"click_thru_pct\",\"site_domain\"],\"report_interval\":\"last_7_days\",
             \"emails\":[\"js@mynetwork.com\"],\"filters\":[{\"buyer_member_id\":\"329\"},{\"advertiser_id\":\"660\"}]}}",
            "header_info": "Report type:,site_domain_performance\u000d\u000a,\u000d\u000aRun at:,2011-11-16 23:51:14\u000d\
             u000aStart date:,2011-11-09 00:00:00\u000d\u000aEnd date:,2011-11-16 00:00:00\u000d\u000aTimezone:,\u000d\
             u000aUser:,John Smith (9685)\u000d\u000a",
            "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

Note

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