- 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
435 lines
15 KiB
Markdown
435 lines
15 KiB
Markdown
# 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](#1-platform-specifications)
|
|
2. [Thai Language Considerations](#2-thai-language-considerations)
|
|
3. [Content Templates](#3-content-templates)
|
|
4. [Repurposing Workflow](#4-repurposing-workflow)
|
|
5. [Image Requirements](#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
|
|
|
|
```json
|
|
{
|
|
"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
|
|
|
|
```json
|
|
{
|
|
"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
|
|
|
|
```json
|
|
{
|
|
"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
|
|
|
|
```json
|
|
{
|
|
"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
|
|
|
|
```json
|
|
{
|
|
"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*
|