Set Dynamics Responses
This dataset contains the observer reach and frequency of each request.
Set Dynamics returns detailed reach and frequency results for each scenario, providing comprehensive metrics for campaign planning and analysis. Results are delivered as JSON objects containing scenario metadata and performance metrics.
Response Structure
Each response contains customer information, cohort details, and reach metrics across multiple frequency thresholds and duration periods.
{
"customer": {
"customer_id": 30,
"customer_name": "Motionworks",
"customer_scenario_id": "686d59e67e25e60012b986cb",
"customer_scenario_name": "Albany NY panels",
"customer_scenario_info": "{\"customer_name\":\"test_name\",\"customer_email\":\"[email protected]\"}"
},
"cohort": {
"customer_segment_id": 2035,
"customer_base_segment_id": 9330,
"geography_ids": ["US2020XDMA532"]
},
"effective_reach_per_duration": [
{
"duration": "28",
"effective_freq_list": [
{"effective_freq": "1", "lts_reach": 0.38148},
{"effective_freq": "2", "lts_reach": 0.30715},
{"effective_freq": "3", "lts_reach": 0.25684},
{"effective_freq": "4", "lts_reach": 0.22148},
{"effective_freq": "5", "lts_reach": 0.19922},
{"effective_freq": "6", "lts_reach": 0.1845},
{"effective_freq": "7", "lts_reach": 0.16959},
{"effective_freq": "8", "lts_reach": 0.15534},
{"effective_freq": "9", "lts_reach": 0.14473},
{"effective_freq": "10", "lts_reach": 0.13538},
{"effective_freq": "11", "lts_reach": 0.12776},
{"effective_freq": "20", "lts_reach": 0.07511},
{"effective_freq": "50", "lts_reach": 0.02026},
{"effective_freq": "100", "lts_reach": 0.00074}
]
}
],
"debug": {
"qa_flag": "ideal",
"devices_panel": 224.17,
"lts_ots_disorder": false,
"per_duration": [
{
"duration": "28",
"unique_people": 137773.59,
"total_exposures": 795053.09,
"target_devices_routed": 37.14,
"device_events": 220.1,
"days_with_obs": "39",
"pct_days_with_obs": 144.44,
"num_observed_devices": "34",
"total_observed_passes": "136",
"qa_flag": "ideal"
}
]
},
"messages": "Success"
}Schema
| Name | Description | Type | Example |
|---|---|---|---|
| customer. customer_id | Motionworks customer identification number (echoed from request) | integer | 30 |
| customer. customer_name | Customer organization name (echoed from request) | string | Motionworks |
| customer. customer_scenario_id | Unique identifier for the scenario (echoed from request) | string | 686d59e67e25e60012b986cb |
| customer. customer_scenario_name | Human-readable scenario name (echoed from request) | string | Albany NY panels |
| customer. customer_scenario_info | Additional scenario information, often containing customer contact details as JSON string (echoed from request) | string | {"customer_name":"test_name","customer_email":"[email protected]"} |
| cohort. customer_segment_id | Consumer demographic segment used for analysis (echoed from request) | integer | 2035 |
| cohort. customer_base_segment_id | Base age segment used for analysis (echoed from request) | integer | 9330 |
| cohort. geography_ids | Array of geographic markets included in the analysis (echoed from request) | array of strings | ["US2020XDMA532"] |
| effective_reach_per_duration | Array of reach and frequency results organized by analysis duration. Contains one object for each requested duration period | array of objects | [{"duration":"28","effective_freq_list":[...]}] |
| effective_reach_per_duration[]. duration | Analysis duration in days for this set of results | string | 28 |
| effective_reach_per_duration[]. effective_freq_list | Array of reach percentages for each effective frequency threshold | array of objects | [{"effective_freq":"1","lts_reach":0.38148}] |
| effective_reach_per_duration[]. effective_freq_list[]. effective_freq | Frequency threshold (minimum number of exposures) | string | 1, 2, 10, 50, 100 |
| effective_reach_per_duration[]. effective_freq_list[]. lts_reach | Percentage of target population reached at or above this frequency threshold. Values are decimal representations (e.g., 0.38148 = 38.148%) | float | 0.38148 |
| debug | Diagnostic detail behind the results. Provided for QA and support; not intended for planning use. | object | See below |
| debug. qa_flag | Scenario-level quality tier summarized across durations: ideal, good, or bad. | string | ideal |
| debug. devices_panel | Panel devices associated with the target population for this scenario. | float | 224.17 |
| debug. lts_ots_disorder | True when likely-to-see reach exceeded opportunity-to-see reach, which indicates an unreliable scenario. | boolean | false |
| debug. per_duration | Array of per-duration diagnostics, one object per analysis duration. Each object carries its own duration, so match on that rather than on position. | array of objects | [{"duration":"28", ...}] |
| debug.per_duration[]. duration | Analysis duration in days that this set of diagnostics describes. Diagnostics may cover intermediate durations that do not appear in effective_reach_per_duration. | string | 28 |
| debug.per_duration[]. unique_people | Estimated people reached at least once during the duration. | float | 137773.59 |
| debug.per_duration[]. total_exposures | Estimated exposures during the duration (people reached x frequency). | float | 795053.09 |
| debug.per_duration[]. target_devices_routed | Devices with routes used in this scenario, before population weighting. | float | 37.14 |
| debug.per_duration[]. device_events | Device-level exposures before population weighting (devices x frequency). | float | 220.1 |
| debug.per_duration[]. days_with_obs | Days on which at least one pass was observed. | string | 39 |
| debug.per_duration[]. pct_days_with_obs | Days with observations as a percentage of the scenario period span. Values can exceed 100 because observed days span a wider window. | float | 144.44 |
| debug.per_duration[]. num_observed_devices | Distinct devices observed passing the spots in the set. | string | 34 |
| debug.per_duration[]. total_observed_passes | Observed passes counted across the spots in the set. | string | 136 |
| debug.per_duration[]. qa_flag | Quality tier for this duration: ideal, good, or bad. Populated even when the measures are absent. | string | ideal |
| debug. composition | Present on some responses. Internal detail about how the campaign was assembled, retained for support. Not intended for planning use, and its fields may change without notice. | object | {"flight_days":28, ...} |
| messages | Processing status message. "Success" for successful processing, error description for failures | string | Success |
Multiple Durations
When multiple duration periods are requested, the effective_reach_per_duration array contains separate objects for each period:
{
"customer": {...},
"cohort": {...},
"effective_reach_per_duration": [
{
"duration": "7",
"effective_freq_list": [...]
},
{
"duration": "14",
"effective_freq_list": [...]
},
{
"duration": "28",
"effective_freq_list": [...]
}
],
"debug": {
"qa_flag": "ideal",
"devices_panel": 224.17,
"lts_ots_disorder": false,
"per_duration": [
{"duration": "7", ...},
{"duration": "14", ...},
{"duration": "28", ...}
]
},
"messages": "Success"
}Campaign Flight Results
A campaign measured over a single flight returns one entry in effective_reach_per_duration, at the flight length. The diagnostics still report the shorter durations behind that result, so the two arrays differ in length. Match on the duration field rather than on position:
{
"customer": {...},
"cohort": {...},
"effective_reach_per_duration": [
{
"duration": "28",
"effective_freq_list": [...]
}
],
"debug": {
"qa_flag": "ideal",
"devices_panel": 1502.44,
"lts_ots_disorder": false,
"per_duration": [
{
"duration": "7",
"unique_people": 758950.69,
"total_exposures": 2157137.32,
"target_devices_routed": 758950.69,
"device_events": 2999,
"days_with_obs": "7",
"pct_days_with_obs": 100,
"num_observed_devices": "991",
"total_observed_passes": "2999",
"qa_flag": "ideal"
},
{"duration": "14", ...},
{"duration": "21", ...},
{"duration": "28", ...}
],
"composition": {...}
},
"messages": "Success"
}Data Interpretation
Frequency Thresholds: Higher frequency thresholds represent subsets of the population. The reach value decreases as frequency requirements increase (e.g., effective_freq_1 ≥ effective_freq_10 ≥ effective_freq_50).
Effective Frequency: Each threshold shows the percentage of people who were exposed at least that many times during the analysis period.
Diagnostics (debug): The debug object carries QA detail behind the results and is intended for support and troubleshooting rather than planning. debug.per_duration holds one object per analysis duration, and each object carries its own duration.
Match diagnostics on duration, not position: Read the duration field on each per_duration object rather than assuming its position lines up with effective_reach_per_duration. The two are not always the same length. A campaign measured over a single flight returns one entry in effective_reach_per_duration while debug.per_duration still reports the shorter durations behind it, so a campaign with a 28-day flight can return one result entry and four diagnostic entries covering 7, 14, 21 and 28 days.
Missing diagnostics for a duration: When a duration produced no observations, its per_duration object is still present and still carries duration and qa_flag, but the measure fields are omitted from the JSON. Treat an absent key as "no data for that duration" rather than as zero, and skip those durations when summing or averaging.
Whole numbers arrive as strings: duration, days_with_obs, num_observed_devices and total_observed_passes are delivered as quoted strings rather than JSON numbers, matching effective_freq elsewhere in the response. Convert before doing arithmetic on them.
Updated 12 days ago
