Activity Exports
Create and download asynchronous impression, request, and bid activity exports with the CloudX CLI.
Activity Exports
Use the cloudx export group to create asynchronous activity exports for completed UTC dates:
cloudx export impressionsfor impression-level revenue datacloudx export requestsfor request-level auction activitycloudx export bidsfor bid and non-bid activity
Each command prints an export ID and its current status. Add --wait to wait for a terminal status, or use --output <path> to wait and download the gzip-compressed CSV file.
cloudx export bids
Creates a full-day bid activity export as a gzip-compressed CSV file. By default, the file contains bid responses together with no-bid, timeout, and error rows, which supports analysis from bidder request through bid outcome. The export runs asynchronously so large result sets do not have to fit within a normal API response.
Winner rows contain the actual bid price. For losing bid rows, bid_price_cpm is always 0 and bid_price_disclosure is redacted.
Usage
cloudx export bids --date YYYY-MM-DD [filters] [--wait] [--output <path>]--date is required and must identify a completed UTC day within the previous 45 days. The current UTC day cannot be exported because it is not complete.
Options
| Flag | Required | Description |
|---|---|---|
--date | Yes | Completed UTC day in YYYY-MM-DD format. Must be within the previous 45 days. |
--app | No | App bundle, for example com.example.game. |
--ad-unit-id | No | CloudX ad unit ID. |
--country | No | ISO 3166-1 alpha-2 country code, for example US or GB. |
--device-os | No | Device OS. Allowed values: iOS, Android. |
--bidder | No | Bidder/network code. |
--bids-only | No | Exclude no-bid, timeout, and error rows. |
--test-mode | No | Traffic to include: production, test, or all. Default: production. |
--wait | No | Poll until the export is ready or failed. |
--output | No | Download the ready .csv.gz file to this path. Implies --wait. |
Only two bid activity exports may be processing for an account at the same time. Submitting the same date and filters again reuses the matching queued, running, or completed export instead of creating duplicate work.
When an export is ready, CloudX returns a download URL that expires after one hour. Re-running the same command can issue a fresh URL while the generated file is still retained. Generated files are retained for up to seven days.
Examples
Queue an export and print its export ID and current status:
cloudx export bids --date 2026-08-10Wait for completion and download all bidder outcomes:
cloudx export bids \
--date 2026-08-10 \
--output ./bids-2026-08-10.csv.gzDownload only bid responses for one app and bidder:
cloudx export bids \
--date 2026-08-10 \
--app com.example.game \
--bidder example-bidder \
--bids-only \
--output ./example-bidder-2026-08-10.csv.gzAPI workflow
API clients can create the same export with POST /export/bids. The response contains an export_id and a processing, ready, or failed status. Poll GET /export/bids/{export_id} until the status is terminal; a ready response includes a short-lived url and expires_at.
{
"date": "2026-08-10",
"app_bundle": "com.example.game",
"bidder": "example-bidder",
"include_non_bids": true,
"test_mode": "production"
}CSV Schema
The CSV contains one row per matching bidder outcome. Row order is not guaranteed.
| Column | Description |
|---|---|
event_time | Bidder outcome event time in UTC. |
processing_date_and_hour | UTC processing hour in YYYYMMDD_HH format. |
auction_id | Auction ID and join key for related exports. |
time_usec | Event time as Unix epoch microseconds. |
bid_id | Bid ID, when a bidder returned one. |
imp_id | OpenRTB impression ID. |
round_number | Auction round number. |
priority | Auction round priority. |
app_bundle | App bundle or package name. |
ad_unit_id | CloudX ad unit ID. |
bidder | Bidder/network code. |
status | Recorded bidder outcome, such as bid, nobid, timeout, or error. |
nonbid_reason | Numeric non-bid reason. See the code details below. |
bid_rejection_reason | winner, outbid, a recorded rejection reason, or the non-bid status. |
bid_price_cpm | Bid price in CPM. Actual for the winner; always 0 for losing bids. |
bid_price_disclosure | actual, redacted, or not_applicable. |
effective_floor_cpm | Effective seller floor in CPM. |
effective_floor_source | Source used to determine the effective floor. |
deal_id | Deal ID returned with the bid, when available. |
country | Uppercase ISO country code. |
device_os | Device operating system. |
test_mode | true for test traffic; false for production traffic. |
http_status | Bidder HTTP response status, when available. |
latency_ms | Bidder response latency in milliseconds. |
error_type | Recorded bidder error type, when applicable. |
currency | CPM currency. Currently USD. |
nonbid_reason follows the IAB Tech Lab Seat Non-Bid status-code ranges. CloudX passes through bidder-supplied OpenRTB nbr values from 1 through 99. When CloudX determines the outcome, it currently emits these values:
| Value | Meaning |
|---|---|
0 | No bid: general. This value also applies when the bidder omits nbr or returns an invalid value. |
100 | Error: general. |
101 | Error: timeout. |
103 | Error: bidder unreachable. |
300 | Response rejected: general. |
301 | Response rejected: below floor. |
303 | Response rejected: invalid category mapping. |
304 | Response rejected: below deal floor. |
305 | Response rejected: bid currency not supported. This value is CloudX-specific. |
351 | Response rejected: creative size not allowed. |
352 | Response rejected: creative is not secure. |
cloudx export requests
Creates a full-day request activity export as a gzip-compressed CSV file, with one row per CloudX auction request. Use it to analyze request volume, fill decisions, bidder participation, and auction latency. The export runs asynchronously so large result sets do not have to fit within a normal API response.
request_status is filled when the auction selected a winner, unfilled when it did not, and error when request processing failed. A filled request does not guarantee that the client ultimately rendered an impression; join auction_id to the impression export for impression delivery and revenue.
Usage
cloudx export requests --date YYYY-MM-DD [filters] [--wait] [--output <path>]--date is required and must identify a completed UTC day within the previous 45 days. The current UTC day cannot be exported because it is not complete.
Options
| Flag | Required | Description |
|---|---|---|
--date | Yes | Completed UTC day in YYYY-MM-DD format. Must be within the previous 45 days. |
--app | No | App bundle, for example com.example.game. |
--ad-unit-id | No | CloudX ad unit ID. |
--country | No | ISO 3166-1 alpha-2 country code, for example US or GB. |
--device-os | No | Device OS. Allowed values: iOS, Android. |
--request-status | No | Request outcome. Allowed values: filled, unfilled, error. |
--test-mode | No | Traffic to include: production, test, or all. Default: production. |
--wait | No | Poll until the export is ready or failed. |
--output | No | Download the ready .csv.gz file to this path. Implies --wait. |
Only two request activity exports may be processing for an account at the same time. Submitting the same date and filters again reuses the matching queued, running, or completed export instead of creating duplicate work.
When an export is ready, CloudX returns a download URL that expires after one hour. Re-running the same command can issue a fresh URL while the generated file is still retained. Generated files are retained for up to seven days.
Examples
Wait for completion and download all request outcomes:
cloudx export requests \
--date 2026-08-10 \
--output ./requests-2026-08-10.csv.gzDownload unfilled production requests for one app and country:
cloudx export requests \
--date 2026-08-10 \
--app com.example.game \
--country US \
--request-status unfilled \
--output ./unfilled-requests-2026-08-10.csv.gzAPI workflow
API clients can create the same export with POST /export/requests. The response contains an export_id and a processing, ready, or failed status. Poll GET /export/requests/{export_id} until the status is terminal; a ready response includes a short-lived url and expires_at.
{
"date": "2026-08-10",
"app_bundle": "com.example.game",
"request_status": "unfilled",
"test_mode": "production"
}CSV Schema
The CSV contains one row per matching CloudX auction request. Row order is not guaranteed.
| Column | Description |
|---|---|
event_time | Request event time in UTC. |
processing_date_and_hour | UTC storage processing hour in YYYYMMDD_HH format. |
auction_id | Auction ID and join key for bid and impression exports. |
time_usec | Event time as Unix epoch microseconds. Source precision is milliseconds. |
app_id | CloudX app ID resolved from the current inventory configuration, when available. |
app_bundle | App bundle or package name received with the request. |
app_name | App name received with the request, when available. |
ad_unit_id | CloudX ad unit ID resolved from the current inventory configuration; otherwise the request placement ID. |
ad_format | Ad format resolved from the current inventory configuration, when available. |
request_status | filled, unfilled, or error. |
is_filled_request | true when CloudX selected an auction winner. |
http_status | HTTP status returned by the auction endpoint. |
imp_count | Number of OpenRTB impression opportunities in the request. |
priority | Priority of the winning or final attempted auction round. |
bidder_count | Number of bidder calls made across the auction. |
bid_count | Number of bid responses recorded across the auction. |
nonbid_count | Number of non-bid outcomes recorded across the auction. |
has_winner | true when the auction selected a winner. |
winner_bidder | Winning bidder/network code, when filled. |
auction_duration_ms | Auction processing duration in milliseconds. |
country | Uppercase ISO 3166-1 alpha-2 country code when recognized. |
device_os | Device operating system. |
device_type | Recorded device type, when available. |
os_version | Device OS version, when available. |
sdk_version | CloudX SDK version, when available. |
session_id | Publisher SDK session identifier, when supplied. |
test_mode | true for test traffic; false for production traffic. |
ab_test_id | CloudX A/B test ID, when assigned. |
ab_test_variant | Assigned A/B test variant, when available. |
error | Recorded request-processing error, when applicable. |
cloudx export impressions
Creates a full-day, impression-level revenue export as a gzip-compressed CSV file. The export runs asynchronously so large result sets do not have to fit within a normal API request. When a publisher supplies a hashed user ID and applicable privacy signals allow it, the export includes that value for user-level revenue analysis.
Usage
cloudx export impressions --date YYYY-MM-DD [filters] [--wait] [--output <path>]--date is required and must identify a completed UTC day within the previous 45 days. The current UTC day cannot be exported because it is not complete.
Options
| Flag | Required | Description |
|---|---|---|
--date | Yes | Completed UTC day in YYYY-MM-DD format. Must be within the previous 45 days. |
--app-id | No | CloudX app ID. Cannot be combined with --app. |
--app | No | App bundle, for example com.example.game. Cannot be combined with --app-id. |
--ad-unit-id | No | CloudX ad unit ID. |
--country | No | ISO 3166-1 alpha-2 country code, for example US or GB. |
--device-os | No | Device OS. Allowed values: iOS, Android. |
--bidder | No | Bidder/network code. |
--line-item-id | No | CloudX line item ID. |
--test-mode | No | Traffic to include: production, test, or all. Default: production. |
--wait | No | Poll until the export is ready or failed. The wait can run for up to 2 hours and 15 minutes. |
--output | No | Download the ready .csv.gz file to this path. Implies --wait. |
Only two impression exports may be processing for an account at the same time. Submitting the same date and filters again reuses the matching queued, running, or completed export instead of creating duplicate work.
When an export is ready, CloudX returns a download URL that expires after one hour. Re-running the same command can issue a fresh URL while the generated file is still retained. Generated files are retained for up to seven days.
Examples
Queue an export and print its export ID and current status:
cloudx export impressions --date 2026-07-16Wait for completion and download the result:
cloudx export impressions \
--date 2026-07-16 \
--output ./impressions-2026-07-16.csv.gzExport production impressions for one iOS app in the United States:
cloudx export impressions \
--date 2026-07-16 \
--app com.example.game \
--country US \
--device-os iOS \
--test-mode production \
--output ./example-game-us-ios.csv.gzCheck the downloaded archive and preview its header and first rows:
gzip -t ./impressions-2026-07-16.csv.gz
gzip -cd ./impressions-2026-07-16.csv.gz | headAPI workflow
API clients can create the same export with POST /export/impressions. The response contains an export_id and a processing, ready, or failed status. Poll GET /export/impressions/{export_id} until the status is terminal; a ready response includes a short-lived url and expires_at.
CSV Schema
The CSV contains one row per matching impression. Row order is not guaranteed.
| Column | Description |
|---|---|
event_time | Impression event time in UTC. |
impression_id | Unique impression event ID. |
auction_id | Related auction ID. |
bid_id | Winning bid ID. |
app_id | CloudX app ID. |
app_bundle | App bundle or package name. |
ad_unit_id | CloudX ad unit ID. |
ad_unit_name | Ad unit display name. |
ad_format | Ad format recorded for the impression. |
placement | Publisher placement value. |
custom_data | Publisher-provided custom data. |
hashed_user_id | Publisher-provided hashed user ID captured at auction time. Empty when no ID was set, privacy signals suppressed persistence, or the value exceeded 128 characters. |
country | Uppercase ISO country code. |
device_os | Device operating system. |
device_type | Device type recorded for the impression. |
advertising_id | Device advertising identifier, when available. |
advertising_vendor_id | Vendor identifier, when available. |
test_mode | true for test traffic; false for production traffic. |
network | Bidder/network code. |
line_item_id | CloudX line item ID. |
price_cpm | Winning price expressed as CPM. |
revenue_usd | Revenue for this individual impression in USD. |
currency | Revenue currency. Currently USD. |
revenue_precision | Revenue precision. Currently exact. |
creative_id | Creative ID, when available. |
network_placement_id | Network-side placement ID, when available. |
ab_test_id | A/B test ID, when applicable. |
ab_test_variant | A/B test variant, when applicable. |