Files
opencode-skill/skills/seo-multi-channel/docs/MULTI_CHANNEL_REQUIREMENTS.md
Kunthawat Greethong 107ebad97c feat: Major website-creator skill update
- Reverted to Dockerfile deployment (from nixpacks)
- Created Thai legal document templates (PDPA compliant)
  - Privacy Policy template (Thai law)
  - Terms of Service template (Thai Consumer Protection Act)
- Updated cookie consent to actually block/enable cookies
- Added template folder structure
- All templates research-based from major Thai company websites

Compliance:
- Thai PDPA (Personal Data Protection Act B.E. 2562)
- Thai Consumer Protection Act
- Thai Computer Crime Act
2026-03-10 19:28:28 +07:00

15 KiB

Multi-Channel Content Requirements Document

Version: 1.0
Date: March 2026
Purpose: Best practices for multi-channel marketing content generation, with emphasis on Thai language markets


Table of Contents

  1. Platform Specifications
  2. Thai Language Considerations
  3. Content Templates
  4. Repurposing Workflow
  5. Image Requirements

1. Platform Specifications

1.1 Facebook (Organic Posts)

Element Limit Best Practice
Post body 63,206 chars Keep 125-250 chars for max engagement
Headline (link posts) 100 chars max Front-load key message
Hashtags 3-5 recommended Use Thai-relevant hashtags
Video length 1-240 mins 30-90 seconds optimal
Image size 1200x630 px (1.91:1) Also support 1080x1080

Thai Market Specifics:

  • Best posting times (Thailand): 12:00-13:00, 19:00-21:00
  • Thai users prefer casual, relatable content
  • Use Thai-language hashtags: #ไทย, #กรุงเทพ, etc.
  • Engagement higher with questions in Thai

2026 Algorithm Notes:

  • Video content (Reels) prioritized - 60% of content
  • Link posts penalized (98% of viewed posts have no external links)
  • Groups content receives algorithmic boost
  • Meaningful engagement > vanity metrics

1.2 Facebook/Meta Ads

Element Limit Recommended
Primary text 5,000 max 125 chars (appears before fold)
Headline 40 chars 25-40 chars optimal
Description 30 chars (mobile), 90 chars (desktop) 80-90 chars
CTA buttons 18 options Context-dependent

CTA Options (Thai Market):

  • เรียนรู้เพิ่มเติม (Learn More)
  • สมัครเลย (Sign Up Now)
  • ซื้อเลย (Shop Now)
  • ดูรายละเอียด (View Details)
  • ติดต่อเรา (Contact Us)

Character Truncation:

  • Mobile: Primary text cuts off ~125 chars
  • Desktop: Headline ~25 chars visible
  • Always test mobile-first

1.3 Google Ads (Responsive Search Ads)

Element Limit Best Practice
Headlines 15 variations 30 chars each
Descriptions 4 variations 90 chars each
Headline length 30 chars max Front-load keywords
Description length 90 chars max Include CTA

Thai Language RSA:

  • Each headline/description has separate Thai character limit
  • ก (ko kai) counts as 1 character (same as English)
  • Pin headlines for A/B testing
  • Include Thai keywords naturally in headlines

Ad Extensions (Required for full coverage):

  • Sitelinks: 6-8 (25 chars each)
  • Callouts: 4-6 (25 chars each)
  • Structured snippets: 1 header + 6 values
  • Call extension: Optional

1.4 X/Twitter (2026)

Element Limit Best Practice
Post length 280 chars 200-260 for threads
Thread Up to 25 posts 5-10 optimal
Hashtags 2-3 per tweet End of tweet
Media 1 image/video per tweet Use images for engagement

2026 Best Practices:

  • Hook tweet (first) must capture attention in first 50 chars
  • Threads benefit from numbered tweets (1/X format)
  • Punctuation and line breaks improve readability
  • Questions drive engagement
  • Native content (not links) prioritized

1.5 LinkedIn

Element Limit Best Practice
Post body 3,000 chars 1,300-1,500 for reach
Article Unlimited 1,500-2,000 words
Hashtags 3-5 Industry + topical
Video 10 secs - 10 mins Short-form preferred

2026 Algorithm:

  • Prioritizes expertise signals (thought leadership)
  • Meaningful conversations > likes
  • Interest-based distribution (beyond network)
  • Comments drive most reach
  • First 200 chars critical for scroll-stopping

2. Thai Language Considerations

2.1 Character Counting

Platform English Thai
Facebook post 63,206 chars Same (Thai chars count individually)
Facebook headline 40 chars 40 chars (ไทย = 3 chars)
Google Ads headline 30 chars 30 chars
Google Ads description 90 chars 90 chars
Twitter 280 chars 280 chars (Thai properly counts)

Thai Character Properties:

  • Thai script: Unicode range U+0E00-0E7F
  • Each Thai character = 1 character
  • No spaces between Thai words (word segmentation needed)
  • PyThaiNLP recommended for word counting

2.2 Tone & Formality Levels

Formal (องค์กร/บริษัท):

  • Use ครับ/ค่ะ (polite particles)
  • Avoid slang
  • Complete sentences
  • Professional terminology

Casual (กันเอง):

  • May omit polite particles in close-knit communities
  • Use contemporary expressions
  • More exclamation marks
  • Emoji-friendly

Neutral (ปกติ):

  • Standard Thai business writing
  • Polite but not overly formal
  • Clear and direct

2.3 Thai Social Media Specifics

Platform Preferences (Thailand 2026):

  • Facebook: Most popular, all demographics
  • TikTok: Highest engagement, younger audience
  • LINE: Messaging + content consumption
  • Instagram: Visual brands, urban
  • X (Twitter): News/tech audience

Thai-Specific Hashtags:

  • Industry: #ไทย, #กรุงเทพ, #ประเทศไทย
  • Trending: Check daily trends
  • Niche: Industry-specific Thai terms

Cultural Considerations:

  • Respect for monarchy (พระมหากษัตริย์)
  • Politeness valued
  • Face-saving important in communication
  • Relationship-building before business

3. Content Templates

3.1 Facebook Post Template

{
  "channel": "facebook",
  "template": {
    "hook": "Question or attention-grabbing statement (first 50 chars)",
    "body": "Value proposition, 2-3 sentences max",
    "cta": "Optional: question to drive comments",
    "hashtags": "3-5 relevant hashtags"
  },
  "thai_variant": {
    "hook": "คุณกำลังมองหา[problem]ใช่ไหม? 🎯",
    "body": "[solution] ช่วยคุณได้[benefit]\n\n#hashtag1 #hashtag2 #hashtag3"
  }
}

3.2 Facebook Ads Template

{
  "channel": "facebook_ads",
  "template": {
    "primary_text": {
      "structure": "[Hook - problem/question]\\n\\n[Solution - your offer]\\n\\n[CTA]",
      "length": "125 chars recommended",
      "thai_example": "กำลังมองหาวิธี[solution]?\\n\\nเราช่วยคุณได้[benefit]\\n\\nสมัครเลย!"
    },
    "headline": {
      "structure": "[Benefit or solution focused]",
      "length": "25-40 chars",
      "thai_example": "แก้ปัญหา[problem] ด้วย[product]"
    },
    "description": {
      "structure": "[Additional detail + urgency]",
      "length": "80-90 chars",
      "thai_example": "เริ่มต้น[free_trial] วันนี้ ลองก่อนตัดสินใจ"
    }
  }
}

3.3 Google Ads Template

{
  "channel": "google_ads",
  "responsive_search_ad": {
    "headlines": [
      {"text": "[Primary keyword] - [Benefit]", "pin": false},
      {"text": "[Brand] | [Primary keyword]", "pin": false},
      {"text": "[Solution] สำหรับ [Audience]", "pin": false},
      {"text": "[Number] เหตุผลที่เลือก [Brand]", "pin": false},
      {"text": "[Urgency]: [Offer]", "pin": false}
    ],
    "descriptions": [
      {"text": "[Detailed benefit + CTA]"},
      {"text": "[Social proof + link]"}
    ],
    "thai_headlines": [
      "บริการ[Product] คุณภาพสูง",
      "ราคาพิเศษ สั่งซื้อเลย",
      "[Brand] ผู้เชี่ยวชาญ[Industry]",
      "ส่งเร็ว ทั่วประเทศไทย",
      "รีวิวดี ลูกค้าพึงพอใจ"
    ]
  }
}

3.4 X/Twitter Thread Template

{
  "channel": "x",
  "thread_template": {
    "hook": {
      "content": "Stop-scrolling statement or question",
      "length": "200-250 chars",
      "thai_example": "🔥 [Stat/Claim] ที่[Audience] ทุกคนต้องรู้"
    },
    "body": {
      "structure": "1-8 tweets, each making 1 point",
      "format": "Numbered points (1/, 2/, etc.)",
      "engagement": "Questions, counters, strong opinions"
    },
    "cta": {
      "content": "Final tweet with CTA",
      "thai_example": "ถ้าชอบบทความนี้ follow ด้วยนะครับ ✓\n\n[Link]"
    }
  }
}

3.5 LinkedIn Post Template

{
  "channel": "linkedin",
  "post_template": {
    "hook": {
      "structure": "Personal story or controversial take",
      "length": "First 200 chars critical",
      "thai_example": "ผมเพิ่ง[experience] และได้เรียนรู้ว่า..."
    },
    "body": {
      "structure": "2-3 paragraphs, mixed sentence lengths",
      "expert_signals": "Include data, credentials, specific examples",
      "engagement": "Questions for comments"
    },
    "cta": {
      "structure": "Soft CTA, not salesy",
      "thai_example": "คุณคิดเห็นอย่างไร? แชร์ประสบการณ์ของคุณได้เลยครับ"
    },
    "hashtags": {
      "structure": "3-5 hashtags",
      "format": "[Industry] + [Topic] + [Thailand optional]"
    }
  }
}

4. Repurposing Workflow

4.1 Blog to Multi-Channel Flow

Blog Post (2000-3000 words)
       │
       ▼
┌─────────────────────────────────────────┐
│  Extract Key Points (10-15 insights)    │
└─────────────────────────────────────────┘
       │
       ▼
┌─────────────────────────────────────────┐
│  Content Atomization                    │
├─────────────────────────────────────────┤
│  • Statistics → Infographic            │
│  • Tips → Carousel slides               │
│  • Quotes → Single images               │
│  • Steps → Thread                       │
│  • How-to → Video                       │
└─────────────────────────────────────────┘
       │
       ▼
┌─────────────────────────────────────────┐
│  Channel Distribution                   │
├─────────────────────────────────────────┤
│  Facebook: 1 post + 1-2 ads             │
│  X: 5-10 tweet thread                   │
│  LinkedIn: 1-2 posts                    │
│  Google Ads: 15 headlines + 4 desc      │
│  Blog: Original (if not published)     │
└─────────────────────────────────────────┘

4.2 Content Repurposing Matrix

Original Content Facebook Facebook Ads Google Ads X Thread LinkedIn
How-to article Carousel post Primary text Headlines Step-by-step thread How-to post
Listicle Image posts Headline focus List keywords Numbered tweets Summary post
Data/Statistics Infographic Stat in primary Numbers in headlines Key stats thread Data-driven post
Product review Video + text Benefit-driven Brand keywords Comparison thread Review post

4.3 Repurposing Best Practices

  1. Start with the longest format: Blog post (SEO value)
  2. Extract before adapting: Pull key points first
  3. Platform-native: Don't just copy-paste; adapt format
  4. Consistent messaging, varied hooks: Same value, different angles
  5. Timing matters: Stagger posts, don't dump all at once

5. Image Requirements

5.1 Platform Image Specs

Platform Aspect Ratio Dimensions Format Notes
Facebook Feed 1.91:1, 1:1 1200x630, 1080x1080 JPG, PNG 1:1 growing preference
Facebook Stories 9:16 1080x1920 JPG, PNG Full screen
Instagram Feed 1:1, 4:5, 1.91:1 1080x1080, 1080x1350, 1080x566 JPG, PNG 4:5 gets more space
Instagram Stories 9:16 1080x1920 JPG, PNG
X/Twitter 16:9, 1:1 1200x675, 1080x1080 JPG, PNG Cards: 800x418
LinkedIn 1.91:1, 1:1 1200x627, 1080x1080 JPG, PNG
Google Ads 1.91:1 1200x628 JPG, PNG

5.2 Text Overlay Guidelines

Platform Text % Best Practice
Facebook <20% Avoid heavy text, use as accent
Instagram <20% Text can be more prominent in stories
Google Ads <20% Google may reject >20% text
LinkedIn <20% Professional, minimal text

5.3 Thai-Optimized Image Tips

  • Use Thai text sparingly: English + numbers more readable
  • If Thai text needed: Bold, large, high contrast
  • Cultural elements: Thai-friendly aesthetics, Bangkok/Thai contexts
  • Colors: Red/white (Thai flag colors) for local relevance
  • People: Thai models/faces increase relatability

Appendix: AI Content Humanization

Avoiding Robotic Patterns

Common AI Mistakes:

  • Overuse of transition words (furthermore, additionally)
  • Generic openings (In today's world, It's important to note)
  • Perfectly structured paragraphs
  • Lack of specific examples
  • No personal voice or opinion

Humanization Techniques:

  1. Vary sentence structure: Mix short punchy + longer flowing
  2. Add specific details: Names, dates, real examples
  3. Include opinions/takes: "Here's what I think..."
  4. Use contractions: Don't → don't (when appropriate for tone)
  5. Rhetorical questions: Engage reader directly
  6. Cultural references: Thai context, local examples
  7. Imperfections OK: Occasionally fragment sentences
  8. Active voice: Most of the time

Thai-Specific:

  • Add Thai idioms (สำนวน) appropriately
  • Use casual markers (ครับ/ค่ะ) correctly
  • Reference Thai current events
  • Include Thai-specific examples

References

  • Meta Business Help Center - Ad Formats
  • Google Ads Help - Responsive Search Ads
  • Twitter/X Business - Best Practices
  • LinkedIn Marketing Solutions - Content Guidelines
  • Sprinklr Social Media Benchmarks 2026
  • Thai Digital Marketing Association
  • DataReportal Digital 2026 Thailand

Document maintained for OpenCode SEO Multi-Channel Skill