Files
moreminimore-service-system/skills/mm-analytics-orchestrator/SKILL.md
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

229 lines
6.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: mm-analytics-orchestrator
description: >
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/`:
```bash
# 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:
```markdown
---
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