[{"data":1,"prerenderedAt":159},["ShallowReactive",2],{"product-/en/product/paid-actions-en":3},{"id":4,"title":5,"body":6,"description":6,"extension":7,"meta":8,"navigation":44,"path":153,"seo":154,"stem":157,"__hash__":158},"content_en/1.product/paid-actions.yml","Paid Actions",null,"yml",{"hero":9,"sections":19,"technical":94,"faq":124,"cta":143},{"eyebrow":10,"headline":11,"description":12,"links":13},"Paid Action Layer","[Stop guessing]{class='text-primary'} where to move your media budget","TrustData detects anomalies in your deduplicated paid metrics, recommends precise budget reallocations using response curve optimization, and proves each change worked with a control-group-adjusted before/after verdict.",[14],{"label":15,"to":16,"size":17,"color":18},"14-day free trial","https://app.trustdata.tech","lg","primary",[20,39,58,76],{"title":21,"description":22,"id":23,"headline":24,"orientation":25,"features":26},"Anomaly detection built on deduplicated data","Most anomaly detection runs on platform-reported numbers. TrustData's runs on your deduplicated first-party metrics — the only numbers that haven't been inflated. ROAS drops detected here are real drops.","anomalies","Anomaly detection","horizontal",[27,31,35],{"title":28,"description":29,"icon":30},"ROAS decay detection","Two methods run in parallel — z-score against a 30-day rolling baseline (threshold z \u003C -2.0) and linear regression slope over 14 days (threshold \u003C -1.5% per day). Both required to surface a card.","i-lucide-trending-down",{"title":32,"description":33,"icon":34},"CPA spike detection","Symmetric to ROAS decay — detects significant cost-per-acquisition increases using the same dual-method approach on deduplicated conversion data.","i-lucide-alert-circle",{"title":36,"description":37,"icon":38},"Validation holds reduce noise","Medium-severity anomalies enter a watch period before surfacing as actionable. High z-score drops (z \u003C -3.0) are immediately actionable. Medium drops wait 7–14 days to confirm the signal is real — not a one-day blip.","i-lucide-shield-check",{"title":40,"description":41,"id":42,"headline":43,"orientation":25,"reverse":44,"features":45},"Budget optimization via response curve equalization","The optimizer maximizes your total output from a fixed budget by finding the allocation where marginal ROAS is equal across all campaigns. When marginal returns are equalized, no budget shift can improve total output — that's the mathematical optimum.","optimizer","Budget optimizer",true,[46,50,54],{"title":47,"description":48,"icon":49},"Hill function response curves","Each campaign's spend-to-revenue relationship is modeled as a Hill function — capturing saturation effects that linear models miss. Curves are rebuilt every Monday from your actual deduplicated revenue data.","i-lucide-line-chart",{"title":51,"description":52,"icon":53},"Marginal ROAS equalization","The optimizer uses scipy SLSQP to find the spend allocation across campaigns that maximizes total revenue subject to your total budget constraint. Each recommended shift must exceed $500 to surface as a card.","i-lucide-scale",{"title":55,"description":56,"icon":57},"iROAS-calibrated recommendations","If an incrementality calibration factor exists for a channel, the optimizer uses your true incremental ROAS — not platform-reported ROAS — for response curve modeling. Tested channels get materially better recommendations.","i-lucide-flask-conical",{"title":59,"description":60,"id":61,"headline":62,"orientation":25,"features":63},"Every recommendation includes a verdict","Following a budget recommendation is a hypothesis. TrustData treats it as one — tracking the outcome for 14 days with a control group to separate the signal from ambient ROAS movement.","verdicts","Before/after verdicts",[64,68,72],{"title":65,"description":66,"icon":67},"14-day observation window","After a recommendation is followed, TrustData captures the ROAS baseline snapshot and begins tracking. Verdict calculation starts after 14+ days of elapsed time.","i-lucide-clock",{"title":69,"description":70,"icon":71},"Control group adjustment","Channel-level ROAS drift across all paid channels during the same period is the natural control. The adjusted delta filters out market-wide ROAS movements — only your campaign-level change counts.","i-lucide-git-branch",{"title":73,"description":74,"icon":75},"Clear verdicts","winner (adjusted delta ≥ 0.3 ROAS units), likely_winner (≥ 0.1), no_effect (≤ -0.1), or inconclusive. These verdicts feed back into the response curve model for the next optimization cycle.","i-lucide-check-circle",{"title":77,"description":78,"id":79,"headline":80,"orientation":25,"reverse":44,"features":81},"Anomaly cards through their full lifecycle","From detection to verdict, every paid action has a structured lifecycle. The four-tab dashboard gives you a clear view of what's new, what's active, and what the record shows.","lifecycle","Card lifecycle",[82,86,90],{"title":83,"description":84,"icon":85},"Anomalies tab","Unfollowed anomaly cards (no spend_delta). ROAS decay and CPA spike cards with context snapshot — baseline ROAS, current ROAS, z-score, and days in decline.","i-lucide-bell",{"title":87,"description":88,"icon":89},"Budget shifts tab","Unfollowed optimization cards (with spend_delta). Recommended allocation change per campaign, backed by response curve evidence and marginal ROAS comparison.","i-lucide-trending-up",{"title":91,"description":92,"icon":93},"Active & Concluded tabs","Active shows followed cards tracking their 14-day window. Concluded shows the full before/after record — baseline ROAS, post-change ROAS, control drift, adjusted delta, and verdict.","i-lucide-layers",{"title":95,"description":96,"features":97},"What's included","Every component of the Paid Action Layer.",[98,101,105,109,111,114,117,121],{"title":99,"description":100,"icon":38},"Deduplicated metric detection","All anomaly detection runs on first-party deduplicated ROAS and CPA — never on platform-reported numbers.",{"title":102,"description":103,"icon":104},"Dual detection methods","Z-score vs 30-day rolling baseline plus linear regression slope over 14 days. Both run daily after the dbt pipeline.","i-lucide-activity",{"title":106,"description":107,"icon":108},"Validation holds","Medium anomalies held for 7–14 days before surfacing. High-severity anomalies (z \u003C -3.0) surface immediately. Hold expiry re-runs detection on fresh data.","i-lucide-timer",{"title":47,"description":110,"icon":49},"Spend → revenue modeled via Hill saturation function. Rebuilt weekly on Monday from actual deduplicated revenue data per campaign.",{"title":112,"description":113,"icon":53},"SLSQP budget optimizer","scipy.optimize.minimize maximizes Σ revenue_i(spend_i) subject to total budget constraint and per-campaign bounds. Per-campaign spend bounds configurable.",{"title":115,"description":116,"icon":57},"iROAS calibration integration","If a CalibrationFactor exists for a channel, the optimizer multiplies r_max by the effective_factor (decayed). Tested channels get incrementality-aware recommendations.",{"title":118,"description":119,"icon":120},"Profit-aware optimization","If AdvertiserConfig is set with blended margin and goal = efficiency/profitability, the optimizer uses profit curves instead of revenue curves. ROI 2–4 waterfall available.","i-lucide-banknote",{"title":122,"description":123,"icon":75},"Before/after verdict tracking","14-day observation window, control-group-adjusted delta, winner/likely_winner/no_effect/inconclusive verdicts. Results stored in outcome_tracked JSON.",[125,128,131,134,137,140],{"label":126,"content":127},"What is the Paid Action Layer?","The Paid Action Layer is TrustData's system for turning paid media measurement into concrete, trackable actions. It has three components — anomaly detection (finding ROAS decay and CPA spikes in your deduplicated data), a budget optimizer (recommending spend shifts based on response curve equalization), and a verdict system (tracking whether each followed recommendation actually improved performance). Everything runs on your first-party deduplicated data, not platform-reported numbers.",{"label":129,"content":130},"How is anomaly detection different from the tracking alerts?","TrustData's tracking alerts fire when your data collection infrastructure breaks — a pixel fires 50% fewer events than yesterday, a CAPI connector returns errors. The Paid Action Layer's anomaly detection fires when your paid performance metrics deteriorate — even if tracking is working perfectly. It monitors deduplicated ROAS and CPA trends against 30-day baselines and 14-day slopes, using statistical tests to separate real deterioration from normal variance.",{"label":132,"content":133},"What are validation holds and why do they exist?","A validation hold is a waiting period for medium-severity anomalies before they surface as actionable cards. The problem with immediate alerting is that a one-day ROAS dip from a day with unusual traffic or a platform reporting delay creates noise. Validation holds wait 7–14 days and then re-run the anomaly detection on fresh data. If the anomaly is confirmed (still present), the card escalates to high urgency. If it has recovered, the card is auto-dismissed. High-severity anomalies (z-score \u003C -3.0) bypass holds and surface immediately.",{"label":135,"content":136},"How does the budget optimizer work?","The budget optimizer uses Hill function response curves to model the spend-to-revenue relationship for each campaign. A Hill function captures saturation — the fact that doubling spend rarely doubles revenue. The optimizer then uses constrained numerical optimization (SLSQP) to find the spend allocation across all campaigns that maximizes total revenue while keeping total spend equal to your current budget. When marginal ROAS is equal across all campaigns, no reallocation can increase total output — that's the mathematical optimum. Recommendations are only surfaced when the suggested shift exceeds $500.",{"label":138,"content":139},"What is a response curve and how is it built?","A response curve models how your revenue changes as you vary spend for a specific campaign. TrustData fits a Hill function — R(s) = R_max × sⁿ / (Kⁿ + sⁿ) — to your historical weekly spend and deduplicated revenue data. The three parameters are R_max (saturation ceiling), K (spend at half-max), and n (curve steepness). Curves are rebuilt every Monday using the last 12+ weeks of data. If an incrementality calibration factor exists for the channel, R_max is multiplied by the effective calibration factor before optimization runs.",{"label":141,"content":142},"How are before/after verdicts calculated?","When you follow a budget shift recommendation, TrustData captures the current ROAS as a baseline snapshot. After 14+ days, it measures the actual post-change ROAS and computes the treatment delta. To filter out ambient market movement, it also measures the ROAS drift across all your other paid channels during the same period — the control. The adjusted delta is treatment_delta minus control_drift. verdict thresholds — winner (≥ 0.3 ROAS units), likely_winner (≥ 0.1), no_effect (≤ -0.1) — are in absolute ROAS units, not percentages, because percentages are misleading when baseline ROAS varies.",{"title":144,"description":145,"links":146},"Turn paid insights into actions that prove themselves","14-day free trial. Detect anomalies, optimize your budget, and measure what actually moved the needle.",[147,149],{"label":15,"to":16,"size":148,"color":18},"xl",{"label":150,"to":151,"variant":152,"size":148},"View pricing","/en/pricing","outline","/product/paid-actions",{"title":155,"description":156},"Paid Action Layer — Detect Anomalies & Optimize Media Budget","Detect ROAS decay and CPA spikes in deduplicated paid metrics. Get budget reallocation recommendations based on response curve optimization. Prove every change with a before/after verdict.","1.product/paid-actions","ndivv8f00pnLP0NFhZI0zK98CEv6ue7kzH_Z7IvP-Gs",1773825052363]