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
This commit is contained in:
228
skills/mm-analytics-orchestrator/SKILL.md
Normal file
228
skills/mm-analytics-orchestrator/SKILL.md
Normal file
@@ -0,0 +1,228 @@
|
||||
---
|
||||
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
|
||||
Reference in New Issue
Block a user