Reporting Data Schema
Audiohook’s reporting data schema
Audiohook offers detailed impression level reporting that agencies and brands can leverage to gain additional insights as well as integrate into 3rd party dashboards and BI tools.
This data is made available via incremental csv files for the two tables below that can be sent to either AWS’s S3 or Google Storage. Please reach out to your account rep to learn more.
All fields that are strings will be lowercase unless otherwise specified.
Reporting and Dashboard Time Reference
In the reporting and dashboard for Audiohook, all timestamps are based on win_time_utc
, which is stored in UTC. It is used as the primary time reference for all reporting metrics and dashboard visualizations. This ensures consistency and accuracy across different time zones.
Impressions:
All fields that are strings will be lowercase unless otherwise specified.
Column Name | Data Type | Description | Example | Nullable (y/n) |
advertiser_uuid | string | Audiohook’s Advertiser UUID. | c13d7aa4-4578-4e7b-8951-2793b134c610 | n |
advertiser_name | string | Readable version of the Advertiser’s Name. This is case sensitive. | Tesla | n |
campaign_id | int | Audiohook’s Campaign ID | 878 | n |
campaign_name | string | Readable version of the Campaign Name. This is case sensitive. | New Model Z | n |
creative_id | int | Audiohook’s Creative ID | 4037 | n |
creative_name | string | Readable version of the Creative Name. This is case sensitive | 2024 Summer Special | n |
audiohook_impression_id | string | Unique identifier of the ad impression. | audiohook.consumable.1695950863.207.imp.633 | n |
companion_available | int | If a companion ad was included in the impressions. Values are 0 or 1. | 1 | y |
content_type | string | The type of audio where the impression was served. This is a human readable field. | podcast | y |
ip_address_type | string | The two possible values are [ipv4, ipv6]. | ipv4 | y |
ip_address_hash | string | An nonreversible hash of the user ip. | 2e7449148a65784db66b22fdcd3deeb5 | y |
ua_string | string | The ua string of the device content was delivered to. This is case sensitive. | Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0. 4389.82 Safari/537.36 | y |
device_os | string | The operating system of the device where the content was delivered. | ios | y |
device_make | string | The make (brand) of the device where content was delivered | apple | y |
device_model | string | The model of the device where content was delivered | iphone | y |
device_player | string | The player that was used to play the audio | spotify, echo, chrome browser | y |
zip | string | The zip (postal, outside USA) code of the device where the content was delivered. Note that because of leading zeros, this field should not be converted to int. | 84011 | y |
city | string | The city of the device where the content was delivered | bountiful | y |
region | string | The region (state, within the USA) of the device where the content was delivered | ut | y |
country | string | The country of the device where the content was delivered | usa | y |
total_cost_micros | bigint | The total cost in micros for the impression | 15333 | n |
attribution_eligible | int | If the impression is eligible for attribution. 0 or 1 (Not yet implemented in the backend, will return -1) | 1 | n |
placement_type | string | This is a human readable field where the possible values are [pre,mid,post, unaccompanied] | pre | y |
content_genre | string | Genre of the content | true crime | y |
content_series | string | Content series | dark history | y |
content_title | string | The title of the content | exploring seattle’s dark side | y |
content_language | string | Language the content is presented in | en | y |
win_time_utc | timestamp | Time the bid won | 2023-08-27 08:55:20+00 | n |
start_time_utc | timestamp | Time the impression served | 2023-08-27 08:55:21+00 | n |
audio_q1 | int | Flag if the impression played 25% of the creative | 1 | n |
audio_q2 | int | Flag if the impression played 50% of the creative | 1 | n |
audio_q3 | int | Flag if the impression played 75% of the creative | 1 | n |
audio_q4 | int | Flag if the impression played 100% of the creative | 1 | n |
click | int | Flag if there was a clickthrough on the ad | 1 | y |
seller | string | The seller, in regards to the deal | redcircle | y |
exchange | string | The exchange, in regards to the deal. If the value is audiohook, then this impression was the result of a direct publisher integration | triton | y |
publisher_id | string | Identifier of the publisher of the impression. This is case sensitive. | Consumable | y |
publisher_name | string | Name of the publisher for the impression | consumable | y |
publisher_domain | string | Top level domain of the publisher | consumable.com | y |
created_at | timestamp | when the impression was recorded | 2024-01-01 00:00:00+00 | n |
Notes:
win_time
win_time
provides the exact moment an impression was awarded. This timestamp is vital for understanding when ads were served and is often used for time-based analyses, such as evaluating performance over different periods or correlating ad delivery with other events.
win_time
to focus on impressions within a specific time range. This is commonly done using conditions like:
win_time_utc >= '{start_date}' && win_time_utc < '{end_date}'
. This allows for reports to be generated for specific periods, such as daily, weekly, or monthly reports. win_time
is often compared with other time-related fields, such as start_time
. For instance, win_time
might determine the exact moment an impression was won, while start_time
might indicate when the ad started playing. Differences between these times can provide insights into ad delivery and latency.
total_cost_micros
You'll need to divide the amount by 1,000,000 to convert the value from micros to dollars because 1 dollar equals 1,000,000 micros.
amount_in_dollars = total_cost_micros / 1000000
DISTINCT
The DISTINCT
keyword is utilized in the query to ensure that the result set contains unique records. In the query, DISTINCT
is applied to all the selected fields, ensuring that each combination of advertiser_uuid
, advertiser_name
, campaign_id
, and other fields is unique. This prevents the inclusion of duplicate records in the final report.
Attributed Events:
All fields that are strings will be lowercase unless otherwise specified.
Column Name | Data Type | Description | Example | Nullable |
advertiser_uuid | string | The audiohook uuid of the advertiser for which the event took place. | c13d7aa4-4578-4e7b-8951-2793b134c610 | n |
audiohook_event_uuid | string | A uuid used to ensure all records have a unique field, regardless of whether the brand passed an event id | 598267a1-c56b-4dd7-94e2-66b7a81da552 | n |
audiohook_impression_id | string | The audiohook impression id that the event attributed to | audiohook.consumable.1695950863.207.imp.633 | n |
event_id | string | The event id passed in the url from the pixel. This is case sensitive. | 435-AB | y |
event_type | string | The type of event, passed in the url from the pixel | purchase | y |
event_value | double | The value of the event, passed in the url from the pixel | 10.50 | y |
event_tracking_url | string | The full url passed from the pixel. This is case sensitive. | http://listen.audiohook.com/yc8341b6-1248-4ceb-98f6-516076a5f0a7/pixel.png?type=purchase&order=435-A&value=10.50 | n |
event_timestamp | timestamp | The timestamp that the event occurred | 2023-09-28 22:25:50.548173 | n |
ip_address_hash | string | hash of the user that triggered the event | 2e7449148a65784db66b22fdcd3deeb5 | n |
ua_string | string | ua string of the user that triggered the event. This is case sensitive. | Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0. 4389.82 Safari/537.36 | n |
created_at | timestamp | when the impression was recorded | 2024-01-01 00:00:00+00 | n |
Notes:
created_at
The created_at
field is used to capture and filter the timestamp when an event or record was created.
created_at >= '{start_date}' && created_at < '{end_date}'