Curator feed
The Log-Level Curator Feed provides data on the transacted impressions of your curated deals. The feed contains one row per transacted impression. This data can then be used by curators to develop powerful offline attribution models, dashboards, and custom reporting as well as other solutions.
The Xandr internal name for this feed is curator_feed
.
Sequence
The columns below are listed in the same order in which they appear in the log-level feed file (top to bottom here, left to right in the file).
Recommended precisions / Lengths of data types
In the Columns table below, some values in the Type column contain a recommended precision or length in parentheses. For example, string(100)
means "this string is probably (but not guaranteed to be) less than or equal to 100 characters in length".
For integers, the sizes are described in the Integer Key section.
For numeric
(floating point) data types, we recommend being able to accept a precision of (18,6), meaning that we expect there to be a maximum total of 18 digits: 12 to the left of the decimal point, and 6 to the right.
For string
data types, the recommended length of the field varies depending on the field. See the table below.
Warning
These are Recommendations, not Guarantees.
The data types are meant to be accurate as documented. However, the recommended precision or length for a given data type should not be read as a guarantee. For example, a string or numeric column's value may exceed the suggested length or precision listed on this page.
The recommendations are intended to help you build your system to ingest this data. You may need to do additional processing on the output of the Curator Feed to make it work with your particular integration.
Integer key
- tinyint = 1 byte (8 bit)
- smallint = 2 byte (16 bit)
- int = 4 byte (32 bit)
- bigint = 8 byte (64 bit)
Columns
Note
Microsoft Advertising may need to remove values for certain log level data (LLD) fields in order to comply with current data sharing restrictions.
Column Index | Column Name | Type | Description |
---|---|---|---|
01 | auction_id_64 | bigint | The Xandr unique auction identifier. |
02 | date_time | UNIX Epoch time | The time and date of the event (e.g., 1526057561 which would need to be translated to Friday, May 11, 2018 4:52:41 PM (UTC) ). See event_type for a list of events. |
03 | user_tz_offset | tinyint | The time zone of user vs. UTC. Useful for daypart targeting. |
04 | media_type | tinyint | The general display style of the creative, classified by media subtype. To map media subtype IDs to their names and parent media types, use the Media Subtype Service. For the video media type, the value of the creative_width and creative_height columns will be 1 . |
05 | event_type | enum | Possible values: - imp = impression - click - served = VAST Creative was served - started = VAST Creative was started - skipped = VAST Creative was skipped - error = There was an error playing the VAST creative - 25_pct = The VAST creative played continuously for at least 25% of the total duration at normal speed - 50_pct = The VAST creative played continuously for at least 50% of the total duration at normal speed - 75_pct = The VAST creative played continuously for at least 75% of the duration at normal speed - 100_pct = The VAST creative was played to the end at normal speed so that 100% of the creative was played. |
06 | user_id_64 | bigint | The Xandr 64-bit User ID stored in the Xandr cookie store This field is 0 when: - Xandr does not have a match for this user; or - the user's browser doesn't accept cookies; or - you do not have a legal basis to access and process personal data for an impression where GDPR applies It will be -1 for opt-out/non-consented users. Note: If you received the hashed_user_id_64 version of this field, you will not receive the unhashed version. |
07 | hashed_user_id_64 | bytes | The hashed version of the Xandr 64-bit User ID which will we provided as a proxy in certain cases where Xandr is unable to provide the real user_id_64 . You will not be able to target users via their hashed user ID. However you can use this identifier to calculate unique users, user frequency, and user recency. An example is provided below: user_id_64: XXXXXX304391387YYYY hashed_user_id_64: 0000f47b074866470613d9397f0bd7efa78c7adec992aac5e117cbe2d55993a94767 Note: If you receive the user_id_64 version of this field, you will not receive the hashed version. |
08 | ip_address | string | The IP address of user. This field has a maximum of 40 characters. |
09 | ip_address_trunc | string | The IP address of user with the last octet removed. This field has a maximum of 40 characters. |
10 | country | string | The geographic country of the impression. Derived from IP address of user or provided by the site associated with the impression. Uses ISO 3166 country codes. |
11 | region | string | The geographic region of the impression. Derived from IP address of user or provided by the site associated with the impression. Uses ISO-3166-2 codes for US and Canadian regions, and FIPS codes for regions in all other countries. |
12 | dma | int | Specifies the ID of the designated market area for this impression. Use the Designated Market Area Service to look up the area associated with the ID. |
13 | city | int | The ID of the city for this impression. Derived from IP address of user or provided by the site associated with the impression. Use the City Service to look up the city associated with the ID. |
14 | postal_code | string | The postal code of the user's location. Derived from IP address of user or provided by the site associated with the impression. For postal codes, see Postal Code Service. |
15 | latitude | string | The latitude of the user's location, when GPS data is available from a mobile device. Expressed in the format "snn.ddd,snn.ddd", for example +12.345 or -45.123 , where south is represented as negative. There can be a maximum of 5 decimal places of precision. |
16 | latitude_trunc | string | The truncated value (limited to 3 decimal places) of the latitude of the user's location, when GPS data is available from a mobile device. Expressed in the format "snn.ddd,snn.ddd". For example: - +12.345 or - -45.123 (where south is represented as negative). |
17 | longitude | string | The longitude of the user's location, when GPS data is available from a mobile device. Expressed in the format "snn.ddd,snn.ddd", for example +12.345 or -45.123 , where west is represented as negative. There can be a maximum of 5 decimal places of precision. |
18 | longitude_trunc | string | The truncated value (limited to 3 decimal places) of the longitude of the user's location, when GPS data is available from a mobile device. Expressed in the format "snn.ddd,snn.ddd". For example: - +12.345 or - -45.123 (where west is represented as negative). |
19 | device_unique_id | string | The unique identifier representing the mobile device. The numeric prefix indicates the type of unique device identifier: - 0 = IDFA (Apple ID for Advertising) - 1 = SHA1 - 2 = MD5 - 3 = ODIN - 4 = OPENUDID - 5 = AAID (Android Advertising ID) - 6 = WINDOWSADID (Microsoft Advertising ID) - 7 = RIDA (Roky id for Advertising) - 8.9 = AFAI (Amazon Fire OS) - 8.10 = TIFA (Tizen Identifier for Advertising (Samsung Ad ID)) - 8.11 = VIDA (Vizio Advertising ID) - 8.12 = LGUDID (LG Unique Device ID) |
20 | device_type | int | The type of device. Possible values are: - 0 = Other Devices - 1 = Desktops and Laptops - 2 = Mobile Phones - 3 = Tablets - 4 = TV - 5 = Game Console - 6 = Media Players - 7 = Set Top Box |
21 | tc_string | string | The Transparency and Consent String represents the IAB Transparency and Consent Framework string. The string is base-64 url-safe encoded and can be decoded using the IAB GDPR Transparency and Consent Framework technical specification. The string contains data rights, usage, and privacy information. |
22 | curated_deal_id | int | The ID of the curator's deal through which the impression transacted. |
23 | gross_revenue_dollars | numeric | The amount of spend the buyer sent to the curator for the impression (including buyer fees, if applicable). This is the same as Buyer's media cost (except media cost does not include buyer fees). This is the same value as curator_revenue in the Curator Analytics Report. |
24 | curator_margin | numeric | The profit the curator made on the transaction. |
25 | total_tech_fees_dollars | numeric | The fees Xandr charged to a curator on the impression. |
26 | total_cost_dollars | numeric | The amount the curator spent on exchange fees (to Xandr) and seller media for the impression. This does not include curator margin or curator fees. This is the same value as curator_total_cost in the Curator Analytics Report. |
27 | net_media_cost_dollars | numeric | The amount the curator spent on seller media for the impression. This does not include curator fees or curator margin (if applicable). This is the same as gross seller revenue (which includes seller fees). |
28 | seller_member_id | int | The member ID of the seller. |
29 | publisher_id | int | The ID for the publisher of the placement. Curator member may map the Publisher ID to a name using the Inventory Resold Service if the seller has chosen to expose the publisher. Exposure to curator depends on the seller's visibility profile. |
30 | site_id | int | The ID for site associated with placement. Cannot be associated with a name, except by the seller member who owns the site. Exposure to curator depends on the seller's visibility profile. |
31 | site_domain | string | The most granular identifier of the site that we can offer (but not the full domain). This may be the domain of a supply partner (e.g., doubleclick.com), the network who owns the resold inventory, or just "resold inventory". Exposure to curator depends on the seller's visibility profile settings. This field has a maximum of 100 characters. |
32 | tag_id | int | The ID of placement tag of the impression. Cannot be associated with a name, except by the seller member who owns the tag. Exposure to curator depends on the seller's visibility profile. |
33 | application_id | string | The ID of the mobile application (if applicable). |
34 | mobile_app_instance_id | int | Specifies the ID of the mobile app instance for this impression. Use the Mobile App Instance Service to look up the mobile app instance associated with the ID. |
35 | buyer_member_id | int | The member ID of the buyer. |
36 | creative_id | int | The ID of the creative served. |
37 | brand_id | int | The ID for brand of the creative. Curator member can map the brand_id to a name using the Brand Service. |
38 | deal_id | int | The seller_deal_id associated with the impression, or 0 if the curator sourced the impression from the open exchange. |
39 | view_result | enum | The Xandr viewability measurement result of the impression. Possible values: - 0 = VIEW_UNKNOWN - 1 = VIEW_DETECTED - 2 = VIEW_NOT_DETECTED - 3 = VIEW_NOT_MEASURABLE - -1 = UNKNOWN Note: For more details about viewability, see Introduction to Viewability. |
40 | view_non_measurable_reason | int | The reason an impression could not be measured for viewability. Possible values: - 0 = N/A. The impression was measured for viewability - 1 = SCRIPT_NOT_SERVED. The viewability script was not served with the creative. For example, on mobile-app inventory. - 2 = NO_SCRIPT_CALLBACK. The viewability script was served with the creative, but no callback/event was received. For example, the user left the page before the creative was served. - 3 = TECHNICAL_LIMITATION. The viewability script was served and loaded, but was unable to measure for a technical reason. For example, a cross-domain iframe with Flash disabled. - -1 = UNKNOWN. The reason is unknown. Note: For more information regarding viewability, see Introduction to Viewability. |
41 | supply_type | enum | The type of supply. Possible values: - 0 = WEB - 1 = MOBILE_WEB - 2 = MOBILE_APP - 5 = TOOLBAR |
42 | creative_width | smallint | The width of the creative. |
43 | creative_height | smallint | The height of the creative. |
44 | partition_time_millis | UNIX Epoch time | The hourly partition any record row falls into, represented as a UNIX Epoch timestamp value (in milliseconds). Useful for defining hourly partitions when loading into a database or data warehouse. For the Avro format, this field is given the timestamp-millis logical type for native timestamp detection. For example, 1568077200000 can also be represented as Tuesday, September 10, 2019 1 AM (UTC). |
45 | operating_system | smallint | The operating system on which the impression occurred. Use the Operating System Service to look up the operating system associated with the ID. |
46 | browser | smallint | The browser in which the impression occurred. Use the Browser Service to look up the browser associated with the ID. |
47 | language | smallint | The language setting of the browser in which the impression occurred. Use the Language Service to look up the language associated with the ID. |
48 | device_id | smallint | The model of the device on which the impression occurred. Use the Device Model Service to look up the device model associated with the ID. |
49 | extended_ids | array of messages | A list of Extended IDs available in the auction, regardless of whether they specifically influenced the transaction. Check the extended_ids table below for more details. |
50 | curated_deal_code | String | curated_deal_code allows you to conveniently receive the code you may have populated on your curated deal object. |
51 | split_id | int32 | The ID of the split which added the curated deal to the auction where the buyer purchased the impression. |
52 | external_campaign_id | string | An optional value DSPs can pass in the cid field on their bid response where they can indicate the line item ID in their system which submitted the bid. Since the cid field is optional, the external_campaign_id field will only have data when the external DSPs populate it on their bid response. See the Open RTB specification for more info on the cid field. |
53 | external_bidrequest_id | bigint | A unique identifier generated by Microsoft for the bid request. DSPs can use this identifier to associate their bid response with a bid request and potentially log the bid request identifier in their own log level data. |
54 | external_bidrequest_imp_id | bigint | A unique identifier for the impression within the bid request. A single bid request can have multiple impression opportunities which each have their own ID, allowing DSPs to associate their bid response with a bid request impression and potentially log the bid request impression identifier in their own log level data. |
55 | postal_code_ext_id | int32 | United States only. The 9 digital U.S. postal code of the user’s location, in the format 12345-1234. Derived from the IP address of the user or provided by the site associated with the impression. For postal codes, see Postal Code Service. |
extended_ids
Column Index | Column Name | Type | Description |
---|---|---|---|
1 | id_type | unsigned 32 bit int | The source of the extended identifier: - 10 = Trade Desk ID (Unified ID 1.0) - 11 = Criteo ID - 12 = NetID - 13 = RampID - 15 = UID 2.0 |
2 | id_value | string | Value of the extended identifier (for example "ID0001" ). Note: You will only see the value of this field if you have been permissioned. |