Files
Kunthawat Greethong 7b5af16f6d Initial commit: moreminimore-service content pipeline
- 9 mm* skills (orchestrator, article, social, publish, analytics)
- 6 dependency skills (content-writer, geo-optimizer, etc.)
- 3 analytics scripts (GSC, Google Ads, Meta Ads)
- Config template + setup guide
- SOUL-MM.md persona extension
- OrbitOS integration reference
2026-07-02 10:01:53 +07:00

6.5 KiB
Raw Permalink Blame History

name, description
name description
mm-analytics-orchestrator Pull SEO + Ad performance data for a client, analyze trends, and produce prioritized strategy recommendations. Saves report to vault and presents in chat. Use when: "วิเคราะห์ผล", "analytics report", "ดูสถิติ", "แนะนำกลยุทธ์", "strategy recommendations", "seo report", "ad performance", "content ideas from data", "เขียนอะไรดี", "analytics".

mm-analytics-orchestrator

Pulls analytics data, analyzes trends, and produces prioritized strategy recommendations for a client.

When This Must Trigger

  • "วิเคราะห์ผล", "analytics report", "ดูสถิติ"
  • "แนะนำกลยุทธ์", "strategy recommendations"
  • "seo report", "ad performance"
  • "content ideas from data", "เขียนอะไรดี"
  • "analytics"

Process

Step 1: Determine client

If not specified, ask:

วิเคราะห์ผลของลูกค้าไหน?

1. moreminimore
2. [other clients...]

Step 2: Pull data

Run analytics scripts from ~/Gitea/moreminimore-service-system/scripts/:

# GSC data
python3 mm_gsc.py --client <client-id> --days 30 --json

# Google Ads data (if available)
python3 mm_google_ads.py --client <client-id> stats --days 30 --json

# Meta Ads data (if available)
python3 mm_meta_ads.py --client <client-id> stats --days 30 --json

If a script fails (no data, API error), skip that source and note it.

Step 3: Analyze

SEO Analysis

a. Quick Wins (Position 4-10)

  • Queries on page 1 but below top 3
  • High impression, low CTR → title/description optimization
  • Action: ปรับ meta title/description

b. Content Gaps (Position 11-30)

  • Queries with impressions but no dedicated content
  • Action: เขียนบทความใหม่

c. CTR Opportunities

  • High impressions, low CTR (< expected for position)
  • Action: ปรับ title/description, add schema

d. Declining Pages

  • Pages with >30% traffic decline
  • Action: Refresh content, update data

e. GEO Opportunities

  • Question-format queries, definition queries
  • Action: Optimize for AI citation

Ad Analysis (if data available)

a. High CPA Campaigns

  • CPA > 2x target
  • Action: ปรับ targeting, ทดสอบ creative ใหม่

b. Low QS Keywords

  • Quality Score < 5
  • Action: ปรับ ad relevance, landing page

c. Budget Optimization

  • High spend, low conversion
  • Action: ย้าย budget

d. Creative Fatigue

  • CTR declining over time
  • Action: Refresh creative

Cross-Channel

a. SEO + Ad Synergy

  • Organic ranking well for paid keyword
  • Action: ลด paid spend

b. Content → Ad Pipeline

  • Article with good traffic → create ad
  • Action: สร้าง campaign จาก content

c. Ad → Content Pipeline

  • Keyword with good ad conversion → write article
  • Action: เขียนบทความ SEO

Step 4: Prioritize recommendations

Rank by impact × effort:

Priority Criteria
🔴 Priority 1 High impact, low effort (quick wins)
🟡 Priority 2 High impact, medium effort (content opportunities)
🟢 Priority 3 Medium impact, optimization (ad tuning)
🔵 Priority 4 Cross-channel opportunities

Step 5: Present and ask

Present the report in chat (match user's language):

📋 Strategy Report: [Client Name]
📅 Period: [date range]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 SEO Performance
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
| Metric | Value | Trend |
|--------|-------|-------|
| Clicks | X | ↑/↓ X% |
| Impressions | X | ↑/↓ X% |
| CTR | X% | ↑/↓ |
| Position | X | ↑/↓ |

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎯 Priority 1: Quick Wins
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

1. [Action]
   Evidence: [data]
   Expected: [outcome]

2. [Action]
   ...

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📝 Priority 2: Content Opportunities
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

1. เขียนบทความ: "[topic]"
   Keyword: [kw], [X] impressions, position [X]
   Search intent: [type]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📢 Priority 3: Ad Optimization
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
(ถ้ามีข้อมูล ads)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔄 Priority 4: Cross-Channel
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Then ask:

อยากทำตามแนะนำไหม?

1. ✅ ทำทั้งหมด — สร้าง brief / optimize ตามลำดับ
2. 📝 เฉพาะ content — สร้าง brief จาก content gaps
3. 📢 เฉพาะ ads — optimize campaigns
4. ⏭️ ข้าม — แค่ดูรายงาน

If user chooses to act:

  • Content gaps → load mm-article-idea-extract with the recommended topic
  • Ad optimization → provide specific commands/changes
  • SEO fixes → provide specific title/description rewrites

Step 6: Save report

Save to vault:

~/vault/50_Resources/Strategy for Customers/<client-id>/YYYY-MM-DD-report.md

Create the folder if it doesn't exist.

Report format:

---
type: strategy-report
client: <client-id>
period: <start-date> to <end-date>
generated: YYYY-MM-DD
---

# Strategy Report: [Client Name]
[full report content]

Step 7: Confirm

✅ รายงาน saved: ~/vault/50_Resources/Strategy for Customers/<client-id>/YYYY-MM-DD-report.md

Output

  • Chat: full report with recommendations
  • Vault: ~/vault/50_Resources/Strategy for Customers/<client-id>/YYYY-MM-DD-report.md

Notes

  • Match user's language (Thai if they write Thai, English if English)
  • If GSC data is empty (new site), note it and focus on ad data
  • If no ad data, focus on SEO only
  • Always ask before taking action (creating briefs, optimizing)
  • Reports are cumulative — each report builds on previous data