⚙️ Function

หน้าตาเว็บ · สิทธิ์ · ฟังก์ชัน · ต้นทุน · การเก็บข้อมูล

Sitemap · roles · 93 functions · cost estimate · Google Analytics spec

Draft v1 Business Summary

หน้านี้คือ คอนเซปต์ของระบบ · ระบุว่ามีหน้าอะไร · ใครทำอะไรได้ · ฟังก์ชันแตกย่อยยังไง · ค่าใช้จ่ายประมาณเท่าไหร่ · เก็บข้อมูลอะไรเพื่อวัดผล · ไม่บอก tech stack ตามที่ตกลงกัน

Web sitemap

โครงสร้างหน้าเว็บทั้งหมด · public (เปิดทุกคนเข้าได้) และ admin (เฉพาะทีม Furever)

graph TD
    HOME["🏠 / Homepage"]

    HOME --> SEARCH["🔍 /search<br/>(filter + result)"]
    SEARCH --> SHOP["🏪 /shop/:id<br/>(detail)"]

    HOME --> BLOG["📰 /blog<br/>(list)"]
    BLOG --> POST["📄 /blog/:slug<br/>(article)"]

    HOME --> ADOPT["🐕 /adopt<br/>(list)"]
    ADOPT --> PET["🐾 /adopt/:id<br/>(pet detail)"]
    PET --> APPLY["📝 /adopt/apply<br/>(form)"]

    HOME --> SPONSOR["💼 /sponsor<br/>(packages)"]
    SPONSOR --> INQ["📩 /sponsor/inquire<br/>(form)"]

    HOME --> REG["📋 /register<br/>(shop owner)"]
    REG --> S1["Step 1<br/>Owner info"]
    S1 --> S2["Step 2<br/>Shop info"]
    S2 --> S3["Step 3<br/>Services"]
    S3 --> S4["Step 4<br/>Confirm"]

    HOME --> ABOUT["ℹ️ /about"]
    ABOUT --> TEAM["👥 /about/team"]

    HOME --> CONTACT["📧 /contact"]
    HOME --> PRIV["🔒 /privacy"]
    HOME --> TERMS["📜 /terms"]

    HOME -.-> ADM["🔐 /admin (protected)"]
    ADM --> ALOG["🔑 login"]
    ALOG --> DASH["📊 Dashboard"]
    DASH --> AS["Shops"]
    DASH --> AB["Blog"]
    DASH --> AA["Adoption"]
    DASH --> ASP["Sponsors"]
    DASH --> AC["Comments"]
    DASH --> AF["Founders"]

    classDef public fill:#abcee9,stroke:#4099e4,color:#2a2722
    classDef form fill:#eeec89,stroke:#9d8477,color:#2a2722
    classDef admin fill:#9d8477,stroke:#5e4d40,color:#fffefb
    class HOME,SEARCH,SHOP,BLOG,POST,ADOPT,PET,SPONSOR,ABOUT,TEAM,CONTACT,PRIV,TERMS public
    class APPLY,INQ,REG,S1,S2,S3,S4 form
    class ADM,ALOG,DASH,AS,AB,AC,AA,ASP,AF admin
    
Figure 1 · Sitemap · 🔵 public · 🟡 forms · 🟤 admin

Page summary

Pathหน้าPurposeStage scope
/Homepagehero + categories + featured shops + adoption + blog + communitycore
/searchSearch resultsfilter + grid + comparecore
/shop/:idShop detailcontact · map · services · reactions/commentscore
/registerShop registerเจ้าของร้าน 4-step + admin approvecore
/blogBlog listบทความ + filter categorycore
/blog/:slugBlog articleอ่าน · related · reactionscore
/adoptAdoption listน้องรับเลี้ยง (curated)core
/adopt/:idPet detailโปรไฟล์น้อง · health · applycore
/adopt/applyAdoption formใบสมัคร → admincore
/adopt/postPost a petverified poster โพสน้องเองlater
/sponsorSponsor packagesBronze/Silver/Gold + featurescore
/sponsor/inquireSponsor inquiryform + เลือก packagecore
/aboutAboutเรื่อง brandcore
/about/teamFoundersทีมงาน + biocore
/contactContactช่องทาง · LINE · emailcore
/privacyPrivacy / PDPAนโยบายcore
/termsTermsข้อตกลงcore
/admin/*Admin dashboardCMS · approve · moderatecore
/admin/shop-ownersShop owner portalเจ้าของร้านดู stat + Boostlater
/paw-storePaw Storemerch + LINE ordermaybe

SEO & routing principles

Roles & permissions

6 role ภายในเว็บ · เกิดจากการกระทำ ไม่ใช่จาก "สมัครสมาชิก"

graph LR
    START["🌐 เปิดเว็บ"] --> V["👁️ Visitor<br/>(default)"]

    V -->|"กด react/comment"| M["💬 Community Member<br/>(emoji + nickname)"]
    V -->|"กรอก /register"| SO["🏪 Shop Owner<br/>(linked email)"]
    V -->|"กรอก /adopt/apply"| AD["🤝 Adopter<br/>(form-based)"]
    V -->|"กรอก /sponsor/inquire"| SP["💼 Sponsor Lead"]

    M -.->|"register ร้านได้"| SO
    SO -.->|"comment ได้"| M

    LOGIN["🔐 /admin/login"] --> ADM["🐾 Furever Admin"]

    classDef pub fill:#abcee9,stroke:#4099e4
    classDef form fill:#eeec89,stroke:#9d8477
    classDef priv fill:#9d8477,stroke:#5e4d40,color:#fffefb
    class V,M pub
    class SO,AD,SP form
    class LOGIN,ADM priv
    
Figure 2 · Role activation paths · ไม่ต้องสมัครก่อนเข้าเว็บ

Role descriptions

👁️ Visitor ทำได้ทุกอย่างที่ read-only — ดูร้าน อ่าน blog ดู adoption · ไม่ต้องสมัคร

💬 Community Member Visitor ที่ react/comment · เลือก emoji + nickname + role · session 30 วันใน device

🏪 Shop Owner ผ่าน 4-step registration · linked email + LINE · status: pending → active

🤝 Adopter กรอกใบสมัคร · ไม่มี account · admin queue ติดต่อกลับ

Partner brand inquiry · sales team ปิดดีลแบบ manual

🐾 Furever Admin ทีม Furever · เข้า /admin/login

Permission matrix

Action Visitor Member Shop Owner Adopter Sponsor Admin
ดูร้าน · search · เปรียบเทียบ
อ่าน blog · ดู adoption
กด reaction
โพส comment
ลบ comment ของตัวเอง
กรอก adoption application
กรอก shop registration
แก้ข้อมูลร้านตัวเอง
โพส adoption เองverified
ซื้อ Boost
Approve · moderate · CRUD
หลักคิด: ทุก role upgrade ได้ในเสี้ยววินาที · ไม่มี "wall" ก่อนทำอะไร

Modules → functions

โครงเว็บแบ่งเป็น 8 modules · ~93 functions

graph TD
    M1["M1 · Discovery"]
    M2["M2 · Shop"]
    M3["M3 · Community"]
    M4["M4 · Adoption"]
    M5["M5 · Content / Blog"]
    M6["M6 · Sponsor"]
    M7["M7 · Admin / CMS"]
    M8["M8 · Cross-cutting"]

    M1 --> M2
    M1 --> M3
    M2 --> M7
    M3 --> M7
    M4 --> M7
    M5 --> M7
    M6 --> M7

    M8 -.-> M1
    M8 -.-> M2
    M8 -.-> M3
    M8 -.-> M4
    M8 -.-> M5
    M8 -.-> M6
    M8 -.-> M7

    classDef domain fill:#abcee9,stroke:#4099e4
    classDef admin fill:#9d8477,stroke:#5e4d40,color:#fffefb
    classDef infra fill:#eeec89,stroke:#9d8477
    class M1,M2,M3,M4,M5,M6 domain
    class M7 admin
    class M8 infra
    
Figure 3 · Module dependencies

📖 Function ID format · F{module}.{seq} เช่น F1.5 · scope กำกับด้วย core / later / maybe

M1

Discovery

ค้นหา · เปรียบเทียบ · เลือกร้าน — หัวใจฝั่ง demand

IDFunctionDescriptionScope
F1.1Free-text searchพิมพ์ keyword (ชื่อร้าน · บริการ) — instant resultcore
F1.2Category filterclinic / boarding / grooming / hotel / food / bath / training / othercore
F1.3Pet-type filterหมา/แมว/กระต่าย/นก/อื่นcore
F1.4Open-now filterคำนวณจาก hours + เวลาปัจจุบันcore
F1.5Distance / proximityขอ geolocation → คำนวณระยะ · sort ใกล้สุดcore
F1.6Rating sortsort ตาม rating × reviewCountcore
F1.7Sponsored rankingSponsored > Basic boost > Freecore
F1.8Compare shopsเลือก 2-4 ร้าน → ตาราง services · price · ratingcore
F1.9Map overviewหน้า home: map + pin · click → previewcore
F1.10Shop detail pagecontact · service · map embed · reactionscore
F1.11Save / bookmarkเก็บร้านโปรดใน devicelater
F1.12Smart recommendationsแนะนำร้านใกล้เคียง / category เดียวกันlater
M2

Shop

ลงทะเบียน · จัดการโปรไฟล์ · ขาย boost — หัวใจฝั่ง supply

IDFunctionDescriptionScope
F2.14-step registrationOwner → shop → services → confirm · save draftcore
F2.2Address + map pickerกรอกที่อยู่ · pin map · ดึง lat/lngcore
F2.3Service list builderเพิ่ม service + price · suggest presetcore
F2.4Hours editorวัน + เวลา · open/close ต่างกันได้core
F2.5Status state machinedraft → pending → active → suspendedcore
F2.6Verified badge displaybadge บน card + detailcore
F2.7Shop owner portallogin · ดู stat · แก้ข้อมูล · อัปโหลดรูปlater
F2.8Boost subscription ฿299payment · plan = "basic" · ranking boostlater
F2.9Shop analyticsview · click-to-call · click-to-line · 7/30 วันlater
F2.10Photo gallery5-10 รูป · ใช้บน detail pagelater
M3

Community

ทำให้คนคุยกัน — north star อยู่ที่นี่

IDFunctionDescriptionScope
F3.1Anonymous-ish loginเลือก role + emoji + nickname · session 30 วันcore
F3.2Role selector6 role: หมา/แมว/อื่น/ร้าน/แพทย์/เยี่ยมชมcore
F3.3Reaction bar (6 types)🐾 ❤️ 🎉 😻 👏 🔥 · count รวมcore
F3.4Floating emoji animationกด → emoji ลอย (micro-delight)core
F3.5Comment postingtextarea · max 500 ตัวอักษร · ป้องกัน double-submitcore
F3.6Comment listingใหม่สุดบน · pagination หรือ infinite scrollcore
F3.7Real-time updatescomment ใหม่แสดงทันทีโดยไม่ refreshcore
F3.8Delete own commentลบของตัวเองได้ (จาก session token)core
F3.9Like commentกด ♡ บน comment คนอื่นcore
F3.10Engagement aggregationนับ reaction · comment · DAU ราย entitycore
F3.11Spam / rate limitcomment ≤ N ครั้ง/นาที ต่อ devicecore
F3.12Report commentflag → admin moderation queuelater
F3.13Reply / nested threadตอบ comment · 1 level deeplater
F3.14Mention / tagtag คนอื่นด้วย @emoji-nicknamelater
M4

Adoption

จับคู่คนกับน้อง — Stage 1 curated · Stage 2 marketplace

IDFunctionDescriptionScope
F4.1Adoption listings (curated)admin/rescue partner เพิ่มเอง · grid + filtercore
F4.2Pet profile pageรูป · age · type · health · ประวัติcore
F4.3Adoption application formชื่อ · phone · LINE · เหตุผล · ค่าใช้จ่ายcore
F4.4Application admin queueadmin เห็น application ใหม่ · assigncore
F4.5Status pipelinenew → contacted → interview → match → handover → follow-upcore
F4.6Success story tagstatus = adopted → แสดงในส่วน successcore
F4.7Verified-poster onboardingRescue ขอเป็น verified poster → admin verifylater
F4.8Self-post petverified poster โพสน้องเอง · เผยแพร่ทันทีlater
F4.9Report listingcommunity report → admin queuelater
F4.10Moderation queue + SLAadmin review · suspend ทันทีถ้าหนักlater
F4.11Adopter follow-up remindersystem reminder admin contact หลังรับน้องlater
M5

Content / Blog

SEO engine + trust building

IDFunctionDescriptionScope
F5.1Article listinglist · featured · filter · paginationcore
F5.2Article detail (slug)SEO URL · meta + OG · readable typographycore
F5.3Category & tagดูแลสัตว์ · สุขภาพ · นิทาน · ของน่ารู้ · ที่เที่ยวcore
F5.4Hot / featured flagadmin mark hot → ขึ้นบน homecore
F5.5Related articlesสุ่ม 3-4 ใต้บทความcore
F5.6Read time estimate"อ่าน 5 นาที" จาก word countcore
F5.7Founders / team pagesหน้าทีมงาน · bio · socialcore
F5.8Sitemap.xml generationอัปเดตอัตโนมัติเมื่อ publishcore
F5.9RSS feed/feed.xml · subscriber followlater
F5.10Guest authorเชิญ vet/expert เขียน · bylinelater
M6

Sponsor / Partnership

revenue engine · ทำให้ partner เห็น value ก่อนจ่าย

IDFunctionDescriptionScope
F6.1Package display pageBronze/Silver/Gold + feature matrixcore
F6.2Inquiry formbrand · contact · package · messagecore
F6.3Lead → admin CRMqueue · status: new/contacted/won/lostcore
F6.4Banner placementadmin upload + ระยะเวลา · inject ใน slotcore
F6.5Sponsored shop boostsponsor ที่ผูกร้าน → boost ranking ร้านนั้นcore
F6.6Impression / click trackingนับการแสดง + click → ใช้ใน reportcore
F6.7Monthly report generationadmin export → ส่ง sponsorlater
F6.8Self-serve sponsor portalsponsor login เอง · ดู stat สดmaybe
F6.9Renewal notificationก่อน expire · ส่งหา sponsor + saleslater
M7

Admin / CMS

ทำให้ทีม Furever operate ได้รวดเร็ว

IDFunctionDescriptionScope
F7.1Logincore: shared password · later: per-user rolecore
F7.2Dashboard overviewนับ entity · pending queue · recent activitycore
F7.3Shops CRUD + approvelist · create · edit · status · approvecore
F7.4Blog CRUD + publishrich editor · cover · category · publish/draftcore
F7.5Adoption CRUDเพิ่ม/แก้น้อง · ผูก applicationcore
F7.6Sponsor leads CRUDlist · status · attach creativecore
F7.7Comment moderationlist · search · delete · ban devicecore
F7.8Founders / team CRUDmember + sort ordercore
F7.9Image uploadupload + crop · resize หลาย sizecore
F7.10Activity loglog ทุก action admincore
F7.11Export / reportCSV ของ shop · application · leadlater
F7.12Workflow rulesauto-assign · reminder · SLAlater
F7.13Multi-admin rolesuper-admin · editor · moderator · saleslater
M8

Cross-cutting / Infrastructure

รากของทุก module

IDFunctionDescriptionScope
F8.1Image asset hostingstorage + CDN · WebP/AVIF · responsivecore
F8.2Event trackingpage_view · search · click_contact · react · commentcore
F8.3SEO foundationmeta · OG · Twitter · canonical · LocalBusiness schemacore
F8.4robots.txt + sitemap.xmlgenerate dynamic · block /admincore
F8.5PDPA consent bannerครั้งแรก · ขอ analytics opt-incore
F8.6Privacy + Terms pagesdata retention · cookiecore
F8.7Email notification (admin)shop register · adoption apply · sponsor inquirecore
F8.8LINE OA integrationdeep link · pre-filled messagecore
F8.9Error / 404 pagebranded · CTA กลับ homecore
F8.10Error trackingcapture error → alertcore
F8.11Backup & retentiondaily backup · retention policycore
F8.12Performance budgetLCP < 2.5s · CLS < 0.1 · lazy loadcore
F8.13Mobile PWAadd to home · offline shelllater
F8.14i18n preparationเก็บ string ใน dictlater

Function count summary

ModuleCoreLaterMaybeTotal
M1 Discovery102012
M2 Shop64010
M3 Community113014
M4 Adoption65011
M5 Content82010
M6 Sponsor6219
M7 Admin103013
M8 Cross-cutting122014
รวม6923193

แนวทาง · สิ่งที่ควรทำต่อ

ทำตามลำดับนี้ · ไม่มี deadline · เริ่มข้อถัดไปเมื่อข้อก่อนหน้าเสร็จ

  1. Independent · เริ่มได้เลย ปิด Open Questions 7 ข้อ
    moderation policy · verified criteria · partner attribution · KPI ตัวเลข north star — ตัดสินใจร่วมกันในทีม
  2. หลังข้อ 1 Seed supply — คุยกับ 10-20 ร้านแรกใน CM
    คลินิกชั้นนำ (Chotana, CMU, Changnoi) + ร้านอาบน้ำดัง + โรงแรมที่มีรีวิว · ขอลงร้านฟรี + verified
  3. Independent · ทำคู่ขนานข้อ 2 ได้ สร้าง landing page + เปิดให้ pre-register
    เก็บ email/LINE ของคนสนใจ → list สำหรับวันเปิดจริง
  4. Independent · ทำคู่ขนาน เริ่ม content engine — 4 บทความแรก
    "คลินิกเชียงใหม่เปิด 24 ชม." · "โรคหน้าฝนของหมาใน CM" · "ที่เที่ยวสัตว์เลี้ยง" · "เลือกหมอยังไง"
  5. หลังข้อ 4 (เริ่มมี content) Partnership กับ rescue 1-2 ที่
    Lanna Dog Welfare · Santisook · The Ark — trust transfer ตั้งแต่ launch
  6. หลังข้อ 2, 3, 4, 5 พร้อม Soft launch — เปิด Furever ให้ public
    เริ่มจาก 50 ร้าน + 4 บทความ + 5 น้องรับเลี้ยง · invite จาก pre-register list ก่อน
  7. หลัง soft launch มี traffic Recruit 3 sponsor pilot — ฟรี + วัดผล
    พิสูจน์ว่า model ทำงาน · เก็บ click/impression · ใช้ทำ case study ตอนขาย Bronze/Silver/Gold จริง
  8. หลัง pilot run ระยะ วัด engagement KPI · ตัดสินใจ stage ถัดไป
    ถ้า engagement north-star ถึง baseline → ลงทุนต่อ · ถ้าไม่ถึง → pivot scope หรือ approach
หลักการ: ทำน้อย ทำลึก · 50 ร้านดี > 500 ร้านมั่วซั่ว · 100 คน comment สม่ำเสมอ > 10,000 visit แล้วหายไป

💰 Cost estimate · Tiered

ประมาณการต้นทุน 3 stage — ตั้งแต่ dev → soft launch → production · ตัวเลขเป็น ช่วง low-high (THB/เดือน) · ระบุเป็น หมวดบริการ ไม่ใช่ vendor

⚠️ ตัวเลขทั้งหมดเป็น ประมาณการเริ่มต้น · ขึ้นกับ vendor ที่เลือก · ต้องตรวจสอบราคาจริง เมื่อจะใช้งานจริง

Stage 1 · Dev — ทีม build, ยังไม่มี user จริง

Assumption: 0 user · 0 partner · internal testing · DB/storage ~ < 1GB · traffic ทีม

หมวดบริการคำอธิบาย฿/เดือน · low฿/เดือน · high
Hosting / computeเว็บแอป + admin (tier เริ่มต้น)฿0฿700
Database / data storageเก็บ shop, comment, content (free/hobby tier)฿0฿500
Object storageเก็บรูป (ไม่กี่ MB)฿0฿100
Domain + SSLค่าโดเมน หาร 12 เดือน฿40฿100
Email serviceส่ง admin noti (free tier)฿0฿0
Analytics toolGoogle Analytics (free)฿0฿0
Error trackingmonitoring (free tier)฿0฿0
Design assets / fontsicon/illustration license฿0฿300
💵 รวม / เดือน฿40฿1,700

One-time: ค่าโดเมน 1 ปี ~฿400-1,200 · ค่า design asset/illustration เริ่มต้น ~฿0-3,000

Stage 2 · Soft Launch — มี user จริง

Assumption: ~50 ร้าน · ~500-1,000 visit/วัน · 1-3 sponsor pilot · DB ~1-5GB · image storage ~ 1-3GB · email ~100-500/เดือน

หมวดบริการคำอธิบาย฿/เดือน · low฿/เดือน · high
Hosting / computeupgrade เพื่อรอง traffic + admin dashboard฿700฿2,500
Database / data storagetier กลาง · backup รายวัน฿500฿2,000
Object storage + CDNรูปร้าน · บทความ · ผ่าน CDN฿300฿1,200
Domain + SSLต่อสัญญา฿40฿100
Email servicetransactional email · 100-500/เดือน฿0฿400
Analytics toolGoogle Analytics (free)฿0฿0
Error trackingcapture error · alert฿0฿500
Content productionblog 4 บทความ/เดือน · นอกทีม฿0฿4,000
Community managementดูแล comment + moderate฿0฿3,000
💵 รวม / เดือน฿1,540฿13,700

One-time: ค่าสมัคร Google Business Profile · LINE OA premium (ถ้าจำเป็น)

Stage 3 · Production — มี revenue + traffic จริง

Assumption: 200+ ร้าน · ~5,000+ visit/วัน · 5+ sponsor active · DB ~10-30GB · image storage ~10-50GB · email ~2,000-5,000/เดือน

หมวดบริการคำอธิบาย฿/เดือน · low฿/เดือน · high
Hosting / computetier production · autoscale฿2,500฿8,000
Database / data storagetier เพื่อ scale · backup + replica฿2,000฿7,000
Object storage + CDNbandwidth สูง · global CDN฿1,200฿5,000
Domain + SSLmulti-domain฿100฿300
Email servicetransactional + marketing · dedicated IP฿400฿2,500
Analytics toolGoogle Analytics + GA4 reporting (free) + dashboard tool฿0฿1,500
Error tracking + APMerror + performance monitoring฿500฿3,000
Content productionblog 4-8 บทความ/เดือน · contributor + editor฿4,000฿15,000
Community managementmoderator + community lead฿3,000฿12,000
Marketing / adsSEO + paid (FB/Google)฿2,000฿15,000
Partner managementsales + sponsor relationship฿0฿10,000
💵 รวม / เดือน฿15,700฿79,300

หมายเหตุ: ฝั่ง revenue stage นี้คาดว่า ~3-5 sponsor active × ฿3,500-7,000/เดือน + Boost subscriptions ~10-30 ร้าน × ฿299 = revenue ~ ฿13,000-50,000/เดือน · ขั้นนี้ "ต้องตัวเลข sponsor ต่อให้ได้" ไม่งั้น cost ชนะ revenue

Cost progression at a glance

graph LR
    A["Stage 1 · Dev<br/>฿40 - 1,700"]:::dev --> B["Stage 2 · Soft Launch<br/>฿1,540 - 13,700"]:::launch
    B --> C["Stage 3 · Production<br/>฿15,700 - 79,300"]:::prod

    classDef dev fill:#e6f0fa,stroke:#4099e4
    classDef launch fill:#fff4cf,stroke:#a07900
    classDef prod fill:#e8f3e0,stroke:#3d6a2a
    
Figure 4 · Cost progression · THB/เดือน · ช่วง low-high

📊 Analytics tracking · Google Analytics

รายการ event ที่ต้องส่งเข้า GA เพื่อวัด north star (engagement) + 3 funnel หลัก (Discovery · Adoption · Sponsor)

Page tracking

Track ทุก path · page_view auto event ของ GA · ตั้ง page_title + page_location ให้ตรงกับ entity (เช่น "Shop · คลินิกนิมมาน · /shop/12")

Event tracking

Event nameTriggerParametersPurpose / KPI
search_submituser กด search หรือ enter ใน /searchquery, filters{category, pet_type, open_now}, result_countDiscovery funnel step 1
filter_applyuser ใช้ filterfilter_type, filter_valueวัดว่า filter ไหนใช้บ่อย
shop_viewเปิด /shop/:idshop_id, category, plan_tier, position_in_searchDiscovery funnel step 2 · ใช้คำนวณ CTR sponsored
compare_openกดเปิด compareshop_ids[], countเปรียบเทียบใช้บ่อยไหม
contact_clickกดปุ่ม LINE/โทร/Map ใน shop detailshop_id, contact_type{line,phone,map}Discovery funnel step 3 (conversion) · sponsor attribution
reactกด reactionentity_type{shop,article,pet}, entity_id, reaction_typeEngagement north star
comment_postส่ง comment สำเร็จentity_type, entity_id, role, comment_lengthEngagement north star · role distribution
comment_likeกด ♡ commentcomment_idEngagement secondary
community_loginsession สร้างใหม่ (เลือก emoji + nickname)roleวัด "Member activation"
adoption_viewเปิด pet detailpet_id, pet_typeAdoption funnel step 1
adoption_apply_startกดปุ่ม "สมัครรับเลี้ยง"pet_idAdoption funnel step 2
adoption_apply_submitส่งใบสมัครสำเร็จpet_id, pet_typeAdoption funnel step 3 (conversion)
shop_register_startเปิด /registerShop funnel step 1
shop_register_stepไปแต่ละ stepstep_number{1,2,3,4}Drop-off detection
shop_register_completeส่งสำเร็จshop_category, pet_types[]Shop funnel step final (conversion)
sponsor_package_viewเปิด /sponsorSponsor funnel step 1
sponsor_inquiry_submitส่ง form สำเร็จpackage{bronze,silver,gold}Sponsor funnel step 2 (conversion)
banner_impressionbanner แสดง (in viewport)sponsor_id, placementSponsor delivery metric
banner_clickกด bannersponsor_id, placementSponsor CTR
article_viewเปิด /blog/:slugarticle_id, categoryContent engagement
article_read_completescroll ถึง 90% หรือเวลา > read_time × 0.7article_idContent quality signal
map_pin_clickคลิก pin ใน mapshop_idDiscovery alternative path

Conversion goals (5 หลัก)

  1. Contact a shop — event contact_click (Discovery → Action)
  2. Engage with community — event comment_post OR react (Engagement north star)
  3. Apply for adoption — event adoption_apply_submit
  4. Register a shop — event shop_register_complete
  5. Sponsor inquiry — event sponsor_inquiry_submit (Revenue intent)

Custom dimensions

DimensionTypeValuesใช้ทำอะไร
user_roleuser-scopedvisitor / member / shop / adopter / sponsor / adminsegment audience ตาม role
community_role_taguser-scopedเจ้าของหมา/แมว/อื่น/ร้าน/แพทย์/เยี่ยมชมวิเคราะห์ engagement ตาม role
shop_categoryevent-scopedclinic/boarding/grooming/...หา category ที่ traffic สูง
plan_tierevent-scopedfree / basic / sponsoredวัด ROI ของ Boost
sponsor_idevent-scopedid ของ sponsorใช้สร้าง report ส่ง sponsor
session_originsession-scopedorganic / direct / social / referral / paidดู channel ที่ดีที่สุด

3 Funnels

Discovery funnel

flowchart LR
    A["page_view<br/>(homepage)"] --> B["search_submit"]
    B --> C["shop_view"]
    C --> D["contact_click"]
    D --> E["✅ Conversion"]
    style A fill:#abcee9
    style D fill:#ffc750
    style E fill:#eeec89
    
วัด drop-off แต่ละ step · target: visitor → contact ≥ 5%

Adoption funnel

flowchart LR
    A["adopt list<br/>page_view"] --> B["adoption_view<br/>(pet detail)"]
    B --> C["adoption_apply_start"]
    C --> D["adoption_apply_submit"]
    D --> E["✅ Conversion"]
    style A fill:#abcee9
    style C fill:#ffc750
    style E fill:#eeec89
    
วัดความตั้งใจของ adopter · target: pet detail → apply ≥ 10%

Sponsor funnel

flowchart LR
    A["sponsor_package_view"] --> B["scroll > 50%"]
    B --> C["sponsor_inquiry_submit"]
    C --> D["✅ Lead"]
    D -.->|sales| E["Closed deal"]
    style A fill:#abcee9
    style C fill:#ffc750
    style D fill:#eeec89
    style E fill:#9d8477,color:#fff
    
Revenue funnel · sales ปิดดีลแบบ manual หลัง lead

Engagement north-star — วัดยังไง

เป้าหมาย "ชุมชนคึกคัก" แปลเป็น composite metric:

ทั้งสี่ตัวรวมกัน = "engagement health" — ถ้าทั้ง 4 ขึ้นพร้อมกัน = ทำถูกทาง · ถ้า 1-2 ตัวขึ้นแต่ตัวอื่นนิ่ง = ต้อง investigate

หลักการ event tracking: เก็บมากกว่าที่ต้องใช้ ในเฟสเริ่มต้น · ไม่ต้องคิดล่วงหน้าว่าจะวัดอะไร · มี data รออยู่ตอนต้องการ

Open questions (เกี่ยวกับ function/spec)