Everything underneath

Raw event streams

The tables every product here is built from, one row per event: ad requests and auctions, completed plays, playback and bid-chain events, camera windows, attention and on-device inferences, radio exposure, screen-to-screen transitions, IP geography, and the audience packages and panel cells we curate. Same keys, same delivery and the same manifest as the products.

Request a sampleAll datasets

The question it answers

Can I have the events themselves and build my own tables?

16

raw tables

122.6 million

demographic readings

50.6 million

hourly movement rows

Measured over the 28 days to October 11, 2026.


The dataset

Grain
One row per event.
Cadence
Event rows, one file per day. The curation tables ship as current snapshots.
History
From February 2026.
Format
Parquet or JSONL.
Delivered to
Your S3 bucket, your GCS bucket, or a time-limited download link, with a manifest and a schema.
Method
How each measure is produced and how to add rows up: the measurement methodology.

What buyers do with it

  • Build your own aggregates at any grain.
  • Train models on the full event history.
  • Reconcile every product row back to the events that made it.

The tables

Read from the export registry each time this site is built.

ip_geo_observations

Daily, from June 2026

The hashed public IP each screen connected from, per day, with ISP, organisation, city, state, country, connection type and whether it is residential.

Grain
One row per ip_hash, screen_mongo_id and observed_date.
Delivery
One file per day, as Parquet or JSONL.
Basis
Declared by the source.
Definition
Version 2.
ColumnTypeWhat it holds
observed_datedateUTC day the screen's traffic left from the address.
observed_attimestampLatest time that day the screen was seen on the address, UTC.
screen_mongo_idstringTrillboards screen id (24-character hex); joins dim_screen.screen_id.
ip_hashstringHash of the public IP address the screen egressed from (the screen's network, never a visitor's); the address itself is not shipped.
geohash_6stringGeohash-6 cell (about 1.2 x 0.6 km) of the address's IP geolocation. Null: The IP lookup returned no location.
citystringCity of the address's IP geolocation. Null: The IP lookup returned no city.
statestringState or region of the address's IP geolocation. Null: The IP lookup returned no state.
countrystringCountry of the address's IP geolocation. Null: The IP lookup returned no country.
ispstringInternet service provider of the address. Null: The IP lookup named no provider.
orgstringOrganization the address is registered to. Null: The IP lookup named no organization.
connection_typestringLine type from the IP lookup: residential, commercial, mobile or unknown. Null: The IP lookup did not classify the line.
is_residentialinteger1 when the IP lookup classifies the address as residential, else 0.

observation_demographics

One row per event, from July 16, 2026

Every attribute reading the cameras make: screen, time, attribute and value.

Grain
One row per observation_id, dimension and value.
Delivery
One file per day, as Parquet or JSONL.
Basis
Measured.
Definition
Version 2.
ColumnTypeWhat it holds
observed_datedateUTC day of the reading.
observed_attimestampWhen the camera observation the reading comes from was made, UTC.
screen_mongo_idstringTrillboards screen id (24-character hex); joins dim_screen.screen_id.
observation_idstringThe camera observation (one analysed frame window) the reading belongs to.
dimensionstringThe audience attribute read (config/observationDemographicsDimensions.js): age, gender, mood, device_engagement, activity_state, intent, attire, lifestyle, carried_items and the others declared. head_turn and occupant_position are image-frame values: head_turn is turned_image_left, turned_image_right, not_turned or not_assessable (where the nose points relative to the edges of the picture), occupant_position is image_left_third, image_center_third, image_right_third or driving (the third of the picture the person occupies). Neither is a side of the vehicle or the street: a rearward cabin camera mirrors the vehicle's left and right.
valuestringThe value read for the dimension. lifestyle values are numeric IAB Audience Taxonomy 1.1 segment ids (segtax=4); the other dimensions use our own vocabulary.
countintegerReadings of the value in the observation: 1 on every row (one row is one reading). Unit: readings.

proximity_graph_edges_hourly

Hourly, from July 15, 2026

Screen-to-screen movement by hour and radio signal, anchored on ad plays.

Grain
One row per hour_bucket, source_screen_id, destination_screen_id and source.
Delivery
One file per day, as Parquet or JSONL.
Basis
Measured.
Definition
Version 2.
ColumnTypeWhat it holds
hour_buckettimestampUTC hour the identifiers were seen at the source screen during an ad play.
source_screen_idstringScreen where the identifiers were seen during the play. Trillboards screen id (24-character hex); joins dim_screen.screen_id.
destination_screen_idstringScreen where the same identifiers were seen within the next 24 hours.
sourcestringRadio signal source of the identifiers: ble, mdns, ssdp or http_probe.
repeated_signal_countintegerPairs of (source-screen signal, destination-screen signal) behind the row, summed over its ad-window cells. Unit: signal_pairs.
unique_identifiers_floorintegerDistinct identifiers in the largest single (creative, ad) cell of the hour: the least the hour's distinct count can be. Unit: identifiers.
identifier_cell_sumintegerSum of the cells' distinct identifiers: the most the hour's distinct count can be (an identifier seen in two cells counts twice here). Unit: identifiers.
ad_window_cellsintegerThe (creative, ad) cells the row aggregates. Unit: cells.
median_lag_minutesdoubleMean over the cells of each cell's median minutes from the source sighting to the destination sighting. Unit: minutes.

auction_results

One row per event, from March 2026

Every auction and outbound bid request: floor, bids received, winning bid and clearing price, winning DSP and creative, result and latency.

Grain
One row per auction_id.
Delivery
One file per day, as Parquet or JSONL.
Basis
Measured.
Definition
Version 2.
ColumnTypeWhat it holds
auction_idstringThe auction's id: one auction per bid request we ran.
bid_request_idstringOpenRTB bid request id the auction answered. Null: Not recorded on the auction.
screen_mongo_idstringTrillboards screen id (24-character hex); joins dim_screen.screen_id.
timestamptimestampWhen the auction ran, UTC.
auction_typestringAuction mechanics: first_price, or outbound_openrtb_proxy for an auction we forwarded to a demand partner.
floor_price_cpmdoubleFloor price of the auction, USD CPM. Unit: usd_per_1000_plays. Null: No floor was set.
total_bids_receivedintegerBids the auction received. Unit: bids.
winning_bid_idstringId of the winning bid. Null: No bid won.
winning_bid_price_cpmdoublePrice the winning bid offered, USD CPM. Unit: usd_per_1000_plays. Null: No bid won.
winning_clearing_price_cpmdoublePrice the winning bid cleared at, USD CPM. Unit: usd_per_1000_plays. Null: No bid won, or no clearing price was recorded.
winning_dsp_namestringDemand platform of the winning bid. Null: No bid won.
winning_creative_idstringCreative id of the winning bid. Null: No bid won, or the bid named no creative.
resultstringOutcome: bid_received, no_bid, timeout or error.
latency_msintegerAuction duration in milliseconds. Unit: ms. Null: Not recorded.
distributor_idstringReseller (distributor) id the traffic is attributed to; empty for Trillboards' own.

completed_impressions

One row per event, from April 2, 2026

Every completed play as billing counts it: creative, ad, seconds played, CPM, gross revenue, invalid-traffic result and the path that reported it.

Grain
One row per play_key and screen_mongo_id.
Delivery
One file per day, as Parquet or JSONL.
Basis
Measured.
Definition
Version 3.
ColumnTypeWhat it holds
play_keystringThe play's identity as our billing policy keys it: the impression id, else the bid request, else the request; the request for a request-level provider and for an SDK callback without a real impression id. With screen_mongo_id it is the key.
completed_attimestampWhen the kept report says the play completed, UTC.
screen_mongo_idstringTrillboards screen id (24-character hex); joins dim_screen.screen_id.
ad_idstringAd id of the play. Null: No ad id, or the pod-build placeholder ('ima_pending') of an ad whose id arrives later.
creative_idstringCreative id the demand source supplied for the ad. Null: No creative id, or the IMA house/fallback creative ('-1' or '').
impression_idstringImpression id the report carried. Null: The report carried no impression id.
source_providerstringDemand source that served the ad.
variant_namestringServing variant (the ad-serving configuration arm) of the request or play. Null: Not recorded.
actual_cpmdoubleCPM the play was priced at, USD; pricing_source says how the price was set. Unit: usd_per_1000_plays. Null: No price was recorded.
actual_gross_revenuedoubleGross revenue of the play in USD; pricing_source says how it was set. Unit: usd. Null: No price was recorded.
pricing_sourcestringHow the price was set: openrtb_clearing_cpm, vast_pricing, a *_reporting_api value (the price a partner's reporting API reported), placement_purchase and its variants (a direct booking), cpm_estimate or config_default (a configured estimate, not a settled price), or a *_zero value for a play that earns nothing.
currencystringCurrency of the price.
ingestion_pathstringWhich report of the play this is: vast_event, proof_of_play, partner_sdk or owned_direct. The kept report is the one billing keeps.
request_idstringOur ad request id (joins vast_requests.request_id). Null: The report carried no request id.
bid_request_idstringOpenRTB bid request id (joins auction_results.bid_request_id). Null: The report carried no bid request id.
play_idstringThe player's own id for the play. Null: The report carried no play id.
duration_secondsdoublePlay length the kept report carried. ad_delivery_hourly.played_seconds uses the longest positive duration over every report of the play. Unit: seconds. Null: The kept report carried no duration (a vast_event report never does).
givt_passedbooleanTrue when the play passed general invalid-traffic checks.
display_modestringHow the ad was displayed (fullscreen on every row of 2026-08..10).
display_area_ratiodoubleShare of the screen the ad occupied, 0-1. Unit: share.
created_attimestampWhen we stored the report, UTC.
impression_multiplierdoubleOpenRTB 2.6 impression multiplier applied to the play's revenue (1 on every row to date).
signaturestringProof-of-play signature over the play's impression, ad, screen, device, time and event (Ed25519, or HMAC on the older version), verifiable against our published key. Null: The report carried no signature.
content_sha256stringSHA-256 of the bytes of the media file that played: the creative's content identity. Null: The report carried no content hash.

event_tracking

One row per event, from February 2026

The playback funnel of every ad: start, first quartile, midpoint, third quartile and complete.

Grain
One row per event_id.
Delivery
One file per day, as Parquet or JSONL.
Basis
Measured.
Definition
Version 1.
ColumnTypeWhat it holds
event_idstringThe event's id.
event_typestringPlayer event: impression, start, firstQuartile, midpoint, thirdQuartile, complete, heartbeat or error.
screen_mongo_idstringTrillboards screen id (24-character hex); joins dim_screen.screen_id. Null: The event named no screen.
ad_mongo_idstringAd id the event belongs to. Null: The event named no ad.
impression_idstringImpression id the event belongs to. Null: The event named no impression.
creative_idstringCreative id the demand source supplied for the ad. '-1' is the IMA house/fallback creative. Null: The event named no creative.
occurred_attimestampWhen the event happened, UTC.
created_attimestampWhen we stored the event, UTC.
distributor_idstringReseller (distributor) id the traffic is attributed to; empty for Trillboards' own.
variant_namestringServing variant (the ad-serving configuration arm) of the request or play.

impression_events

One row per event, from April 15, 2026

The OpenRTB bid chain behind each impression: bid request, ad, creative, start time and status.

Grain
One row per impression_event_id.
Delivery
One file per day, as Parquet or JSONL.
Basis
Measured.
Definition
Version 2.
ColumnTypeWhat it holds
impression_event_idstringThe impression event's id.
event_idstringId of the player event that opened the impression.
bid_request_idstringOpenRTB bid request id of the impression. Null: Not recorded.
impression_idstringImpression id.
ad_idstringAd id of the impression. Null: No ad id, or the pod-build placeholder ('ima_pending') of an ad whose id arrives later.
creative_idstringCreative id the demand source supplied for the ad. Null: No creative id, or the IMA house/fallback creative ('-1' or '').
screen_mongo_idstringTrillboards screen id (24-character hex); joins dim_screen.screen_id.
timestamptimestampWhen the impression was recorded, UTC.
start_timetimestampWhen the ad started, UTC.
statusstringImpression status (started on every row of 2026-09-01..07). Null: Not recorded.
distributor_idstringReseller (distributor) id the traffic is attributed to; empty for Trillboards' own.

omsdk_sessions

One row per event, from July 15, 2026
Grain
One row per session_id and created_at.
Delivery
One file per day, as Parquet or JSONL.
Basis
Measured.
Definition
Version 1.
ColumnTypeWhat it holds
session_idstringThe Open Measurement SDK session's id.
created_attimestampWhen the session opened, UTC. With session_id it is the key.
screen_idstringTrillboards screen id (24-character hex); joins dim_screen.screen_id. Null: The session named no screen (16 of 291.7M rows).
ad_idstringAd id the session opened for.
impression_idstringImpression id the session opened for. Null: The session named no impression (1 row).
event_countintegerOM SDK events the session recorded: 1 on every row to date, the open. Unit: events.
statusstringSession status: active on every row to date (no session has recorded a close).
ad_session_typestringOM ad session type: video on every row to date.
omid_api_versionstringOMID API version of the session (1.4).
partner_namestringOM integration partner that opened the session: Trillboards, our own integration.
partner_versionstringVersion of that integration (1.0.0).

vast_requests

One row per event, from February 2026

Every ad request, one row per waterfall attempt: outcome, latency, error codes, device, demand source, advertiser, clearing CPM and SDK.

Grain
One row per request_id and requested_at.
Delivery
One file per day, as Parquet or JSONL.
Basis
Measured.
Definition
Version 3.
ColumnTypeWhat it holds
request_idstringOur ad request id. With requested_at it is the key; to count requests keep the latest requested_at per request_id.
auction_request_idstringId of the auction request the ad request triggered. Null: The request ran no auction.
screen_mongo_idstringTrillboards screen id (24-character hex); joins dim_screen.screen_id. Partner-exchange placements carry a non-screen id here.
creative_idstringCreative id the demand source supplied for the ad. Null: No creative id, or the IMA house/fallback creative ('-1' or '').
variant_namestringServing variant (the ad-serving configuration arm) of the request or play.
outcomestringLatest outcome of the request: requested, bid_received, no_bid, no_fill, filled, redirect, player_served, completed, skipped, timeout or error. Null: Not recorded.
completedbooleanTrue once the ad completed (a latch: it never reverts).
requested_attimestampWhen the request was made, UTC (a partner-supplied request id is re-stamped at each later update).
latency_msintegerTime to answer the request, milliseconds. Unit: ms. Null: Not recorded.
ima_error_codeintegerGoogle IMA SDK error code. Null: No IMA error.
vast_error_codeintegerVAST error code. Null: No VAST error.
device_categorystringDevice family of the player (e.g. Amazon Fire TV, Android box, Samsung tablet). Null: Not classified.
device_environmentstringPlayer environment the request declared (e.g. ctv). Null: Not classified.
device_type_hintstringOpenRTB device type the player declared. Null: Not sent.
source_namestringDemand source the request was sent to. Null: Not recorded.
request_sourcestringHow the request was built: vast_wrap, server_constructed, proxy_auction, client_lifecycle or partner_sdk. Null: Not recorded.
waterfall_positionintegerPosition of the demand source in the screen's waterfall. Null: Not in a waterfall.
venue_typestringVenue category of the screen at request time. Null: Not recorded.
advertiser_namestringAdvertiser the ad response named. Null: The response named no advertiser.
clearing_cpmdoubleClearing price the response carried, USD CPM. Unit: usd_per_1000_plays. Null: No price was returned.
content_typestringMIME type of the media file returned (empty when none).
ad_systemstringVAST AdSystem of the response (empty when none).
buyer_seatstringBuyer seat of the winning bid (empty when none).
currencystringCurrency of the price (empty when none).
distributor_idstringReseller (distributor) id the traffic is attributed to; empty for Trillboards' own.
sdk_typestringAd SDK of the player (e.g. google-ima). Null: Not sent.
sdk_versionstringVersion of that SDK. Null: Not sent.
platform_hintstringOperating system the player declared. Null: Not sent.
vast_typestringShape of the VAST response: inline, inline_resolved, wrapper_passthrough or empty. Null: Not classified.
openrtb_bid_countintegerBids the OpenRTB auction returned. Unit: bids. Null: The request was not an OpenRTB auction.
openrtb_seat_countintegerSeats that bid in the OpenRTB auction. Unit: seats. Null: The request was not an OpenRTB auction.
creative_landing_urlstringLanding page (click-through) of the creative served. Null: The response named no landing page.
media_urlstringURL of the creative's media file. Null: The response named no media file.
schainstringOpenRTB supply chain object (JSON) of the request. Null: The request carried no supply chain.
upstream_extensionsstringVAST extensions the upstream response carried (JSON). Null: The upstream response carried no extensions.
experiment_assignmentsstringServing experiment arms the request was assigned (JSON). Null: The request was in no serving experiment.
request_signature_hashstringSHA-256 of the request's host, path and query parameters (correlator and request id excluded): one value per request shape. Null: Not computed (an older server-built request).

device_exposure_hourly

Hourly, from May 24, 2026

Radio exposure per screen, hour and signal: distinct, returning and cross-screen devices, dwell and attention seconds.

Grain
One row per hour, screen_mongo_id and source.
Delivery
One file per day, as Parquet or JSONL.
Basis
Measured.
Definition
Version 3.
ColumnTypeWhat it holds
hourtimestampUTC hour the 6-minute exposure slots of the row started.
screen_mongo_idstringTrillboards screen id (24-character hex); joins dim_screen.screen_id.
sourcestringRadio signal source: ble, wifi, mdns, ssdp or http_probe.
visitor_sourceinteger1 when the source is one the canonical visitor count uses (ble, mdns, ssdp, http_probe), 0 for wifi. Visitor headline counts sum the rows with 1.
n_windowsintegerExposure windows: one per device key, screen, source and 6-minute slot. Unit: exposure_windows.
unique_devicesintegerDistinct device keys (the canonical visitor id) seen at the screen in the hour on the source. Unit: identifiers.
returning_devicesintegerOf those, the keys seen at this screen on an earlier day (30-day look-back). Unit: identifiers.
cross_screen_devicesintegerOf those, the keys that also appear at another screen (cross_screen_transitions). Unit: identifiers.
total_dwell_secondsintegerSum over the windows of each window's dwell (first to last sighting in the slot). Unit: seconds.
attention_windowsintegerWindows whose slot carried a camera attention value. Through 2026-09-23 a slot no camera window covered carried none; from 2026-09-24 the windower writes 0 for such a slot, so every window counts. Unit: exposure_windows.
total_attention_secondsintegerSum over those windows of the slot's camera attention seconds (the slot's high or medium attention camera windows times their length); every window of a slot carries the slot's value. From 2026-09-24 a slot no camera covered counts 0. Unit: seconds. Null: No window of the row carried a camera attention value (through 2026-09-23: no camera window covered its slots).
p50_dwell_secondsintegerExact median dwell of the windows. Unit: seconds.
p90_dwell_secondsintegerExact 90th-percentile dwell of the windows. Unit: seconds.

cross_screen_edges_daily

Daily, from May 2026

Devices seen at one screen and then at another within the hour, by screen pair and day, with the median lag and distance.

Grain
One row per dt, source_screen_id and destination_screen_id.
Delivery
One file per day, as Parquet or JSONL.
Basis
Measured.
Definition
Version 3.
ColumnTypeWhat it holds
dtdateUTC day of the transitions.
source_screen_idstringScreen the device was seen at first. Trillboards screen id (24-character hex); joins dim_screen.screen_id.
destination_screen_idstringScreen the device was seen at next, 1-60 minutes later.
edge_countintegerDistinct transitions (device key, screens, time, lag) from the source to the destination that day. Unit: transitions.
unique_devicesintegerDistinct device keys behind the transitions (the RSSI-independent stable key). Unit: identifiers.
lag_p50_minutesintegerExact median minutes between the two sightings. Unit: minutes.
transition_distance_p50_mdoubleExact median great-circle distance between the two screens' stored coordinates. The transition writer stores 0 where either screen has no coordinate, so 0 means co-located or not located. Unit: meters.

audience_metrics

One row per event, from February 2026

Every 10-second camera window: faces, dwell, attention, mood, crowd density and movement pace, with the screen's location.

Grain
One row per metric_id.
Delivery
One file per day, as Parquet or JSONL.
Basis
Measured.
Definition
Version 3.

attention_ledger

One row per event, from February 2026

Seconds of gaze read by the camera, by screen and time.

Grain
One row per id.
Delivery
One file per day, as Parquet or JSONL.
Basis
Measured.
Definition
Version 2.

inference_outcomes

One row per event, from February 2026

Every on-device model inference: model version, confidence and what it detected.

Grain
One row per inference_snapshot_id.
Delivery
One file per day, as Parquet or JSONL.
Basis
Measured.
Definition
Version 3.

curated_inventory_packages

Snapshot, from Current state

The audience packages we sell: segment, geography, screens and partner venues, share with its interval, index against national, peak daypart and floor CPM.

Grain
One row per package_key.
Delivery
One file per delivery, as JSONL.
Basis
Modelled.
Definition
Version 1.
ColumnTypeWhat it holds
package_keystringThe package's id: one behavioural segment in one geography.
segment_keystringThe merchandised segment the package sells.
geo_scopestringGeography of the package: national or a DMA.
dma_codestringNielsen DMA code of a DMA package. Null: A national package.
dma_namestringDMA name. Null: A national package.
display_namestringBuyer-facing package name.
headlinestringBuyer-facing headline. Null: No headline written.
audience_linestringBuyer-facing audience description. Null: No audience line written.
delivery_linestringBuyer-facing delivery description. Null: No delivery line written.
venue_typesarrayVenue types the package selects. Null: Not restricted by venue type.
dma_codesarrayDMAs the package selects. Null: Not restricted by DMA.
countriesarrayCountries the package selects. Null: Not restricted by country.
owned_screensintegerOur screens in the package's footprint. Unit: screens.
partner_venuesintegerPartner venues in the footprint (supply we buy). Unit: venues.
sharedoubleFitted share of the audience in the segment, 0-1. Unit: share. Null: The segment was not observed in the package's cells (a venue-led package).
share_ci_lowdoubleLower bound of the share's Wilson interval. Unit: share. Null: No share.
share_ci_highdoubleUpper bound of the share's Wilson interval. Unit: share. Null: No share.
index_vs_nationaldoubleThe share over the national share (1.0 = national). Unit: index. Null: No share.
projection_tierstringWhich panel rung the share was projected from. Null: No share.
panel_support_nintegerPanel observations the share is computed over. Unit: observations. Null: No share.
panel_match_nintegerOf those, the observations in the segment. Unit: observations. Null: No share.
panel_screensintegerPanel screens behind the share. Unit: screens. Null: No share.
peak_daypartstringDaypart where the segment concentrates most. Null: The package does not lead on a daypart.
peak_daypart_indexdoubleThe peak daypart's share over the package's share. Unit: index. Null: No peak daypart.
floor_cpmdoubleDerived floor price of the package, USD CPM. Unit: usd_per_1000_plays. Null: No floor derived.
window_startdateFirst day of the panel window the share was fitted on.
window_enddateLast day of that window.
computed_attimestampWhen the package was computed, UTC (rebuilt whole each run).
evidence_tierstringStrength of the residence evidence for the areas sold. Null: Not measured.
evidence_home_block_groupsintegerCensus block groups with a home-location leg behind the areas sold. Unit: block_groups. Null: Not measured.
evidence_three_leg_block_groupsintegerBlock groups with all three legs (camera, device, MAID). Unit: block_groups. Null: Not measured.
evidence_three_leg_sharedoubleShare of the block groups with all three legs. Unit: share. Null: Not measured.
evidence_device_equivalentsdoubleDevice keys behind the residence evidence. Unit: identifiers. Null: Not measured.
evidence_window_startdateFirst day of the evidence window. Null: Not measured.
evidence_window_enddateLast day of the evidence window. Null: Not measured.

panel_segment_cells

Snapshot, from Current state

The fitted share of each audience segment by venue type, daypart and market, with its interval and support.

Grain
One row per segment_key, venue_type, daypart and market.
Delivery
One file per delivery, as JSONL.
Basis
Modelled.
Definition
Version 1.
ColumnTypeWhat it holds
segment_keystringThe merchandised segment (visits-* segments come from the store-visit panel, the rest from the camera panel).
venue_typestringVenue context of the cell (__all__ = every venue).
daypartstringDaypart of the cell (__all__ = every daypart).
marketstringMarket of the cell (__all__ = every market).
sharedoubleFitted share of the cell in the segment, 0-1. Segments overlap, so shares do not sum to 1. A segment never observed in a cell has no row. Unit: share.
ci_lowdoubleLower bound of the share's Wilson interval. Unit: share.
ci_highdoubleUpper bound of the share's Wilson interval. Unit: share.
match_nintegerEvaluable observations in the segment. Unit: observations.
support_nintegerEvaluable observations of the cell: camera observations carrying a dimension the segment reads, or store-visit exposure edges by resolvable devices on the visits leg. Unit: observations.
panel_screensintegerPanel screens behind the cell. Unit: screens.
window_startdateFirst day of the panel window.
window_enddateLast day of the panel window.
computed_attimestampWhen the cell was computed, UTC.

Request a sample

Tell us the markets and the weeks you want. The sample is cut from production by the same export that makes the full delivery.

Request a sample

All datasets · Next: Frame corpus for AI training