Ops Lab Playbook: Ad Intelligence
Last updated: 2026-03-08
1. Purpose and when to use this
Use Ad Intelligence to manage cross-platform ad accounts, ingest performance data, run audits, analyze keywords, optimize budgets and bids, analyze creative performance, detect fatigue, generate ad copy, ask questions about your data, generate reports, and monitor budget pacing.
Important: Ad platform data (Google Ads, Meta Ads, etc.) is ingested through a batch API mechanism, not OAuth connectors. Your external systems push performance data to the 10x.in API.
1.1 Canonical Gharart reference pack
This playbook is grounded in the canonical Gharart.com handle: gharart.
Use this fixed reporting window for all walkthroughs in this playbook:
2026-02-07through2026-03-08- currency:
INR - ad accounts:
ga_gharart_main,meta_gharart_main,li_gharart_b2b,tt_gharart_video,amz_gharart_marketplace
Canonical campaigns used across the Ops Lab flow:
brand-search-q1meta-prospecting-decormeta-retargeting-cartlinkedin-wholesale-leadstiktok-clearance-videoamazon-festive-kitchen
Canonical anomalies used in demos and debugging:
linkedin-wholesale-leadsproduces wasted-spend and low-CTR audit findingsmeta-prospecting-decorproduces the high-CPA warningtiktok-clearance-videois the fatigue-refresh candidateamazon-festive-kitchenis the overpacing campaign
2. Included scenarios
ADI-01Register ad account: connect a Google Ads, Meta Ads, LinkedIn Ads, TikTok Ads, or Amazon Ads account.ADI-02List ad accounts: view all registered ad accounts for a handle.ADI-03Ingest ad performance batch: push up to 100 performance records per request.ADI-04Query ad performance: filter by platform, account, and date range.ADI-05Reject invalid platform: input validation for unsupported platforms.ADI-06Reject oversized batch: input validation for empty/oversized batches.ADI-07Run account audit: detect wasted spend, low CTR, high CPA, and more.ADI-08Analyze keywords: find negative keyword, cannibalization, and expansion opportunities.ADI-09Budget optimization proposals: AI-generated budget reallocation with optional agent proposal.ADI-10Bid adjustment proposals: AI-generated bid changes per ad group.ADI-11Analyze creative performance: breakdown by campaign+adGroup with CTR/convRate/CPA.ADI-12Detect creative fatigue: time-series analysis to identify declining performance.ADI-13Generate ad creative variants: Bedrock Claude generates headline, description, and CTA.ADI-14Ad Q&A natural language query: ask questions about your ad data in plain English.ADI-15Generate performance report: structured report with period-over-period comparison.ADI-16Check campaign budget pacing: monitor spend velocity with overpacing alerts.
3. Getting started
Step 1: Register ad accounts
Register each external ad account you want to track:
curl -X PUT -H "Authorization: Bearer $JWT" \
-H "Content-Type: application/json" \
-d '{"platform":"google_ads","externalAccountId":"ga_gharart_main","accountName":"Gharart Google Search","currency":"INR"}' \
"https://ai.10x.in/v2/handles/gharart/ad-accounts"
Supported platforms: google_ads, meta_ads, linkedin_ads, tiktok_ads, amazon_ads.
Step 2: Ingest performance data
Push daily performance records from your ad platforms:
curl -X POST -H "Authorization: Bearer $JWT" \
-H "Content-Type: application/json" \
-d '{"records":[{"platform":"google_ads","externalAccountId":"ga_gharart_main","day":"20260308","campaignId":"brand-search-q1","campaignName":"Gharart Brand Search Q1","adGroupId":"brand-core","adGroupName":"Brand Core","impressions":37055,"clicks":648,"conversions":58,"spend":3904,"revenue":191342}]}' \
"https://ai.10x.in/v2/handles/gharart/ad-performance"
Maximum 100 records per request. Each record requires at minimum: platform, externalAccountId, day, campaignId, impressions, clicks, conversions, spend.
Step 3: Run intelligence queries
Once data is ingested, all intelligence endpoints become available.
4. Intelligence features
Account audit
Detects issues across your ad portfolio:
curl -X POST -H "Authorization: Bearer $JWT" \
"https://ai.10x.in/v2/handles/gharart/ad-intelligence/audit?period=30"
Returns findings with severity (critical, warning, info) and categories: wasted_spend, low_ctr, high_cpa, budget_concentration, platform_imbalance.
In the canonical Gharart walkthrough, expect:
linkedin-wholesale-leadsto surfacewasted_spendandlow_ctrmeta-prospecting-decorto surfacehigh_cpaamazon-festive-kitchento surfacebudget_concentration
Keyword analysis
Identifies keyword opportunities:
curl -X POST -H "Authorization: Bearer $JWT" \
"https://ai.10x.in/v2/handles/gharart/ad-intelligence/keywords?period=30"
Opportunity types: negative_keyword, cannibalization, keyword_gap, expansion.
Budget optimization
Generates budget reallocation proposals:
curl -X POST -H "Authorization: Bearer $JWT" \
"https://ai.10x.in/v2/handles/gharart/ad-intelligence/budget-optimize?period=30&createProposal=true"
When createProposal=true, creates an agent proposal with PENDING_APPROVAL status. Approve via:
curl -X POST -H "Authorization: Bearer $JWT" \
-d '{"note":"approved via dashboard"}' \
"https://ai.10x.in/v2/handles/gharart/agent/proposals/{proposalId}/approve"
Bid adjustment
Same pattern as budget optimization but for per-ad-group bid changes:
curl -X POST -H "Authorization: Bearer $JWT" \
"https://ai.10x.in/v2/handles/gharart/ad-intelligence/bid-adjust?period=30&createProposal=true"
Creative lab
Analyze creatives: performance breakdown grouped by campaign+adGroup, sorted by CTR.
curl -X POST -H "Authorization: Bearer $JWT" \
"https://ai.10x.in/v2/handles/gharart/ad-intelligence/creative-analysis?period=30"
Detect fatigue: splits time series into halves and detects declining CTR with stable impressions.
curl -X POST -H "Authorization: Bearer $JWT" \
"https://ai.10x.in/v2/handles/gharart/ad-intelligence/fatigue-detect?period=30"
Fatigue severity levels: early (5–15% CTR drop), moderate (15–30% drop), severe (>30% drop).
Generate ad copy: Bedrock Claude generates variants with headline, description, and CTA.
curl -X POST -H "Authorization: Bearer $JWT" \
-H "Content-Type: application/json" \
-d '{"platform":"google_ads","productDescription":"Gharart festive kitchen collection for high-intent shoppers","targetAudience":"Growth marketers scaling ecommerce revenue","tone":"performance-led","count":3}' \
"https://ai.10x.in/v2/handles/gharart/ad-intelligence/creative-generate"
Ad Q&A
Ask questions about your ad data in natural language:
curl -X POST -H "Authorization: Bearer $JWT" \
-H "Content-Type: application/json" \
-d '{"question":"Which Gharart campaign is most efficient and which campaign is overspending?"}' \
"https://ai.10x.in/v2/handles/gharart/ad-intelligence/qa"
Performance reports
Generate structured reports with period-over-period comparison:
curl -X POST -H "Authorization: Bearer $JWT" \
"https://ai.10x.in/v2/handles/gharart/ad-intelligence/report?type=weekly"
Report types: weekly, monthly, custom (custom period 7-90 days). Reports include overview metrics, platform breakdown, top 15 campaigns, and auto-generated insights. Period-over-period comparisons are computed over equal-length windows.
Campaign pacing
Monitor budget spend velocity:
curl -X POST -H "Authorization: Bearer $JWT" \
"https://ai.10x.in/v2/handles/gharart/ad-intelligence/pacing?notify=true"
Pacing classifications:
- on_track (0.5–1.15x yesterday's pace): healthy spend rate.
- underpacing (<0.5x): spending too slowly, may miss daily budget.
- overpacing (1.15–1.5x): spending faster than expected.
- critical_overpace (>1.5x): significantly overspending, email alert sent automatically.
In the canonical midday pacing walkthrough, expect:
amazon-festive-kitchen=>critical_overpacetiktok-clearance-video=>overpacinglinkedin-wholesale-leads=>underpacingbrand-search-q1,meta-prospecting-decor,meta-retargeting-cart=>on_track
5. UI workflow
- Open
https://app.10x.in/apps/ad-intelligence. - Pick scenario from dropdown, configure mode and parameters.
- Run request and inspect the structured response.
- For budget/bid proposals, navigate to the agent proposals view to approve or reject.
6. MCP tool access
External agents can use Ad Intelligence via MCP tools:
Read-only tools:
ad_accounts_list— list ad accountsad_performance_query— query performance dataad_account_audit— run account auditad_keyword_analysis— analyze keywordsad_creative_analysis— creative performance breakdownad_fatigue_detection— detect fatigue signalsad_qa— natural language Q&Aad_report_generate— generate reportsad_pacing_check— check budget pacing
Action tools (may create agent proposals):
ad_budget_optimize— propose budget reallocationad_bid_adjust— propose bid adjustmentsad_creative_generate— generate ad copy variants
7. Failure modes and remediation
400 invalid_platform: platform must be one ofgoogle_ads,meta_ads,linkedin_ads,tiktok_ads,amazon_ads.400 records_required: batch must contain 1–100 records.400 invalid_json: JSON body is malformed or not an object for body-based endpoints.400 invalid_period: period must be a numeric value within supported bounds.400 question is required:ad-intelligence/qarequires a non-emptyquestion.- Empty audit/keyword results: ensure sufficient performance data is ingested (>7 days recommended).
- Creative generation returns template fallback: Bedrock Claude invocation may have failed; results will include generic templates.
- Pacing shows all
underpacing: verify recent daily performance data is being ingested. 401 unauthorized: verify JWT or PAT token.403 forbidden: verify handle access and required scope.