# 📈 Implementation Plan: Pageview Analytics Integration

ยินดีด้วยครับที่คุณมองเห็นประโยชน์ของการเก็บสถิติ! จากการที่ผมตรวจสอบโครงสร้างหลังบ้าน (`iram-backend`) พบว่าจริงๆ แล้ว **API สำหรับการเก็บสถิติถูกเขียนเตรียมไว้เรียบร้อยแล้วครับ!** (มี Endpoint รับข้อมูลการเข้าชม และสรุปยอด) สิ่งที่ยังขาดคือการสร้างตารางฐานข้อมูลและการฝังโค้ดลงในหน้าเว็บครับ

ตามที่คุณแนะนำ ผมเห็นด้วยอย่างยิ่งที่ควรเก็บสถิติใน **"ทุกหน้าของโชว์รูม (All Pages)"** เพื่อให้ทราบพฤติกรรมการใช้งานที่แท้จริง นี่คือแผนการดำเนินการครับ:

---

## 1. 🗄️ Database Setup (อัปเดตฐานข้อมูล)
- รันไฟล์ `schema_pageviews.sql` บน Cloudflare D1 ของคุณผ่านคำสั่ง Wrangler
- สร้างตาราง `irPageViews` (รองรับการเก็บ Domain, Path, Session ID, User Agent, และเวลาที่เข้าชม)

## 2. 📝 Frontend Tracking Script (สร้างสคริปต์เก็บสถิติ)
- สร้างไฟล์ใหม่ชื่อ `analytics.js` ไว้ในโปรเจกต์ `iram-scopus`
- โค้ดนี้จะทำงานทันทีเมื่อเปิดหน้าเว็บ โดยจะสร้าง Session ID ประจำเครื่องผู้ใช้ (เพื่อไม่ให้นับซ้ำซ้อนกันเวลาคนกดรีเฟรชรัวๆ ภายใน 30 นาที) 
- ดึงข้อมูลว่าเข้าหน้าไหน (Path) แล้วยิงข้อมูลไปที่ API `POST /api/analytics/view` แบบเงียบๆ (Background) โดยไม่กระทบความเร็วการโหลดเว็บ

## 3. 🌐 Global Integration (ฝังโค้ดเข้าทุกหน้าเว็บ)
- ฝังไฟล์ `<script src="analytics.js"></script>` ลงไปในโค้ด HTML ของทุกหน้าในโชว์รูม:
  - `index.html` (Dashboard หลัก)
  - `report.html` (Report Matrix)
  - `admin.html` (Admin Portal)
  - `about.html` (About System)
  - `glossary.html` (Metrics Guide)
  - `scival.html` (SciVal)

## 4. 📊 Admin Analytics Viewer (แดชบอร์ดดูสถิติสำหรับแอดมิน)
- อัปเดตหน้า `admin.html` และ `admin.js` เล็กน้อย
- ดึงข้อมูลจาก API `GET /api/analytics/summary` มาแสดงผลในตารางหรือกล่องข้อความ เพื่อให้แอดมินเห็นว่า:
  - หน้าใดมีคนเข้าชมเยอะที่สุด (All Time)
  - วันนี้มีคนเข้าชมกี่คน (Today)
  - เดือนนี้มีคนเข้าชมกี่คน (This Month)

---

## ⚠️ User Review Required
> [!IMPORTANT]
> - ระบบนี้จะนับผู้ชมตาม **Session ID** ที่สุ่มขึ้นมาเก็บไว้บนเบราว์เซอร์ ซึ่งถือเป็นการเก็บสถิติแบบไม่ระบุตัวตน (Anonymous) ทำให้ไม่ต้องกังวลเรื่อง PDPA 
> - สคริปต์นี้จะไม่หน่วงการทำงานของหน้าหลัก เพราะตั้งให้ทำงานแบบ Asynchronous (รันเบื้องหลัง)
> 
> หากคุณเห็นด้วยกับแผนการฝังระบบเก็บสถิตินี้ลงทุกหน้า พร้อมเพิ่มตารางโชว์ยอดวิวในหน้า Admin สามารถกด **Proceed** เพื่อให้ผมจัดการแก้โค้ดได้เลยครับ!
