links.10x.in/docs/end-user/playbooks/ops-lab-ad-intelligence Published:

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-07 through 2026-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-q1
  • meta-prospecting-decor
  • meta-retargeting-cart
  • linkedin-wholesale-leads
  • tiktok-clearance-video
  • amazon-festive-kitchen

Canonical anomalies used in demos and debugging:

  • linkedin-wholesale-leads produces wasted-spend and low-CTR audit findings
  • meta-prospecting-decor produces the high-CPA warning
  • tiktok-clearance-video is the fatigue-refresh candidate
  • amazon-festive-kitchen is the overpacing campaign

2. Included scenarios

  1. ADI-01 Register ad account: connect a Google Ads, Meta Ads, LinkedIn Ads, TikTok Ads, or Amazon Ads account.
  2. ADI-02 List ad accounts: view all registered ad accounts for a handle.
  3. ADI-03 Ingest ad performance batch: push up to 100 performance records per request.
  4. ADI-04 Query ad performance: filter by platform, account, and date range.
  5. ADI-05 Reject invalid platform: input validation for unsupported platforms.
  6. ADI-06 Reject oversized batch: input validation for empty/oversized batches.
  7. ADI-07 Run account audit: detect wasted spend, low CTR, high CPA, and more.
  8. ADI-08 Analyze keywords: find negative keyword, cannibalization, and expansion opportunities.
  9. ADI-09 Budget optimization proposals: AI-generated budget reallocation with optional agent proposal.
  10. ADI-10 Bid adjustment proposals: AI-generated bid changes per ad group.
  11. ADI-11 Analyze creative performance: breakdown by campaign+adGroup with CTR/convRate/CPA.
  12. ADI-12 Detect creative fatigue: time-series analysis to identify declining performance.
  13. ADI-13 Generate ad creative variants: Bedrock Claude generates headline, description, and CTA.
  14. ADI-14 Ad Q&A natural language query: ask questions about your ad data in plain English.
  15. ADI-15 Generate performance report: structured report with period-over-period comparison.
  16. ADI-16 Check 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-leads to surface wasted_spend and low_ctr
  • meta-prospecting-decor to surface high_cpa
  • amazon-festive-kitchen to surface budget_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_overpace
  • tiktok-clearance-video => overpacing
  • linkedin-wholesale-leads => underpacing
  • brand-search-q1, meta-prospecting-decor, meta-retargeting-cart => on_track

5. UI workflow

  1. Open https://app.10x.in/apps/ad-intelligence.
  2. Pick scenario from dropdown, configure mode and parameters.
  3. Run request and inspect the structured response.
  4. 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 accounts
  • ad_performance_query — query performance data
  • ad_account_audit — run account audit
  • ad_keyword_analysis — analyze keywords
  • ad_creative_analysis — creative performance breakdown
  • ad_fatigue_detection — detect fatigue signals
  • ad_qa — natural language Q&A
  • ad_report_generate — generate reports
  • ad_pacing_check — check budget pacing

Action tools (may create agent proposals):

  • ad_budget_optimize — propose budget reallocation
  • ad_bid_adjust — propose bid adjustments
  • ad_creative_generate — generate ad copy variants

7. Failure modes and remediation

  • 400 invalid_platform: platform must be one of google_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/qa requires a non-empty question.
  • 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.

8. Related links