[Update] วิธีการใช้งาน Google Analytics (GA4) สำหรับ Data Source ของ CData Sync

แนะนำการตั้งค่าและใช้งาน CData Google Analytics (GA4) โดยเชื่อมต่อ CData Sync กับ Google Analytics และดึงข้อมูลมาลงที่ RDS เพื่อใช้งานตามต้องการ เช่น การแสดงผลของการเข้าใช้งานหน้าเว็บไซต์ เป็นต้น

สวัสดีครับ POP จากบริษัท Classmethod (Thailand) ครับ

ครั้งนี้จะมาแนะนำการตั้งค่าและใช้งาน CData Google Analytics (GA4) โดยดึงข้อมูลจจาก Google Analytics (GA4) ไปยัง RDS (MySQL) ครับ

สิ่งที่ต้องมี

※เชื่อมต่อ CData Sync กับ RDS แล้ว

ดูตัวอย่างได้ที่ลิงก์ด้านล่างนี้

เมื่อเชื่อมต่อ CData Sync กับ RDS แล้ว ก็จะแสดงหน้าจอแบบนี้ในเว็บเบราว์เซอร์ที่เราใช้งาน

หมายเหตุ : ควรอ่านข้อมูลในหัวข้อ สิ่งที่ต้องมี อย่างละเอียด รวมถึงบทความอื่นๆ ที่เกี่ยวข้อง เพื่อไม่ให้เกิดความผิดพลาดระหว่างการดำเนินการครับ

เพิ่ม Google Analytics ลงใน CData Sync

เลือก Connections จากเมนูด้านซ้าย และคลิก + Add Connection

ป้อน Google Analytics ในช่องค้นหา แล้วปิดใช้งาน Only Installed (หากเปิดใช้งานอยู่) ก็จะแสดง Google Analytics ขึ้นมา
จากนั้นคลิกไอคอนดาวน์โหลด (Install Connector) แล้วเลือก Download Connector แล้วรอ Installing... สักครู่

เมื่อติดตั้งเสร็จแล้ว คลิก Google Analytics

ย้ายมาที่หน้าจอ Google Analytics ของเรา แล้วคลิก ⚙ Admin ด้านล่างซ้าย และเลือก Property details

คัดลอก PROPERTY ID เตรียมไว้

กลับมาที่หน้าจอ New Connection ใน CData Sync ของเรา แล้วจะตั้งค่าในแท็บ Settings ตามนี้
Basic
* Indicates required.
・Connection Name *: GoogleAnalyticsGA4 (ป้อนตามต้องการ)
・Auth Scheme *: OAuth
・Schema *: GoogleAnalytics4
・Property Id: ********* (ป้อน PROPERTY ID ที่คัดลอกจากขั้นตอนที่แล้ว)
・คลิก Connect to Google Analytics

เลือก Email ที่ต้องการใช้เชื่อมต่อ

คลิก Continue

แล้วจะกลับมาหน้าจอ New Connection ของ CData GoogleAnalytics นี้โดยอัตโนมัติ
หากแสดงแจ้งเตือน "✅Success! Please click the Save & Test button to save." แบบนี้ ถือว่าการเชื่อมต่อจาก CData ไปยัง Google Analytics สำเร็จ  

ต่อไปคลิก Save & Test แล้วจะแสดงแจ้งเตือน "✅Connection created successfully" ด้านขวาบน ก็ถือว่าเราเพิ่มการเชื่อมต่อ CData GoogleAnalytics เรียบร้อยแล้ว และภายใน Google Analytics จะแสดงหน้าจอแบบนี้ครับ

ต่อไปเลือก Connections จากแท็บด้านซ้าย จะเห็นว่าการเชื่อมต่อ Google Sheet นี้ถูกบันทึกใน Connection นี้เรียบร้อยแล้วครับ

เพิ่ม Job สำหรับ Google Analytics และ RDS

การเพิ่ม Job ใน CData Sync เป็นการสร้างงานซิงโครไนซ์เพื่อทำการโอนย้ายข้อมูลระหว่างแหล่งข้อมูลต้นทางและปลายทางตามที่เรากำหนด โดยครั้งนี้จะกำหนดต้นทางเป็น Google Analytics และปลายทางเป็น RDS (MySQL)

เลือก Jobs จากแท็บด้านซ้าย แล้วคลิก + Add Job

แล้วจะตั้งค่าตามนี้
* Indicates required
・Name *: GoogleAnalyticsGA4_to_rds (ป้อนชื่อตามต้องการ)
・Source *: GoogleAnalyticsGA4 (เลือกต้นทางเป็น Google Analytics)
・Destination *: tinnakorn_cdata_rds (เลือกปลายทางเป็น RDS)
・Type: Standard
・คลิก Add Job

เมื่อเพิ่ม Job เสร็จแล้วจะแสดงหน้าจอแบบนี้

เพิ่ม Task Acquisitions ใน Job

ต่อไปมาสร้าง Task สำหรับ Acquisitions เพื่อดึงข้อมูลจาก Google Analytics ไปยัง RDS โดยรับข้อมูลการเข้าใช้งานในทุกๆ วันทั้งเว็บไซต์หรือเฉพาะข้อมูลที่ต้องการจาก Google Analytics ได้

ข้อมูลที่จะดึงจาก Google Analytics ไปยัง RDS คือ

  • Table
    • Acquisitions
  • Column
    • Date
    • NewUsers
    • Sessions
    • TotalUsers

*เมื่อเพิ่ม Task และ Run Job ไปแล้ว ข้อมูลจะถูกเขียนใน RDS โดยมีชื่อ Table ตามชื่อ Task เช่น Table: Acquisitions

เลือกแท็บ Task แล้วคลิก + Add Tasks

ค้นหา Acquisitions แล้วติ๊ก Acquisitions และคลิก Add Tasks

เมื่อเพิ่ม Task เสร็จแล้วจะแสดงหน้าจอแบบนี้ แล้วคลิก Acquisitions

เลือกแท็บ Columns แล้วคลิก Edit Mapping

แล้วติ๊ก ในคอลัมน์ MAP ออกทั้งหมด ยกเว้น 「Date, NewUsers, Sessions, TotalUsers」 ไม่ต้องติ๊กออก แล้วคลิก Save Mapping

เมื่ออัปเดต Mapping เสร็จแล้ว จะเห็นแค่รายการที่ยกเว้นตามด้านล่างนี้
・Date
・NewUsers
・Sessions
・TotalUsers

นอกจากนี้ยังสามารถตรวจสอบรายการที่ยกเว้นโดยเลือกแท็บ Query แล้วดูที่ Table Query ได้ด้วย

Run Job (Acquisitions)

ย้ายกลับมาหน้าจอ Job ของเราโดยคลิกลิงก์ชื่อ Job ด้านบนซ้ายสุด แล้วเลือกแท็บ Task
แล้วติ๊ก Task ✅ Acquisitions ที่เพิ่มเข้ามา แล้วคลิก Run เพื่อให้ข้อมูลอัปเดตไปยัง RDS แล้วรอสักครู่

เมื่อ Run เสร็จแล้ว จะแสดง Successful ใน LAST RUN แบบนี้

ตรวจสอบข้อมูล Database ใน RDS (Acquisitions)

ต่อไปจะตรวจสอบข้อมูล Database ใน RDS ที่ใช้เป็นแหล่งข้อมูลปลายทาง ว่าหลังจากที่ Run Job ใน CData Sync ไปแล้ว จะมีข้อมูลของ Google Analytics เข้ามาใน RDS หรือไม่

เข้ามาที่หน้าจอ Terminal ที่ Login Server EC2 Instance ไว้ แล้วเชื่อมต่อเข้าไปยัง Database ใน RDS ผ่าน Server EC2 Instance ด้วยคำสั่งด้านล่างนี้ (ดูข้อมูลเพิ่มเติมได้ที่วิธีเชื่อมต่อไปยัง RDS (MySQL) ใน Ubuntu)

mariadb -h [RDS Endpoint] -u [Master username RDS] -p[Master password RDS]


ต่อไปรันคำสั่งเรียกดูรายการ Database ที่มีอยู่

SHOW databases;

root@ip-xx-xx-xx-xx:~

MySQL [(none)]> SHOW databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| tinnakorn          |
+--------------------+
5 rows in set (0.006 sec)

MySQL [(none)]>


ต่อไปรันคำสั่งเรียกใช้ Database ที่ใช้เป็นแหล่งข้อมูลปลายทางเพื่อรับข้อมูลจากการ Run Job ใน CData Sync เช่น tinnakorn (เรียกใช้ Database ของคุณ)

USE [your_db_name];

root@ip-xx-xx-xx-xx:~

MySQL [(none)]> USE tinnakorn;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MySQL [tinnakorn]>


ต่อไปรันคำสั่งตรวจสอบ Table

SHOW tables;

root@ip-xx-xx-xx-xx:~

MySQL [tinnakorn]> SHOW tables;
+---------------------+
| Tables_in_tinnakorn |
+---------------------+
| Acquisitions        |
+---------------------+
1 row in set (0.002 sec)

MySQL [tinnakorn]>


ต่อไปรันคำสั่งเรียกดูข้อมูลที่เราเพิ่มเข้ามาใน Database ด้วยการ Run Job ไปก่อนหน้า

SELECT * FROM Acquisitions ORDER BY Date ASC;

root@ip-xx-xx-xx-xx:~

MySQL [tinnakorn]> SELECT * FROM Acquisitions ORDER BY Date ASC;
+------------+----------+----------+------------+
| Date       | NewUsers | Sessions | TotalUsers |
+------------+----------+----------+------------+
| 2023-11-27 |        9 |       25 |         15 |
| 2023-11-28 |       10 |       32 |         19 |
| 2023-11-29 |       12 |       24 |         19 |
| 2023-11-30 |        9 |       22 |         18 |
| 2023-12-01 |       10 |       20 |         16 |
| 2023-12-02 |       10 |       11 |         11 |
| 2023-12-03 |       11 |       14 |         13 |
| 2023-12-04 |       10 |       27 |         17 |
| 2023-12-05 |       85 |       88 |         88 |
| 2023-12-06 |       25 |       39 |         35 |
| 2023-12-07 |       21 |       38 |         32 |
| 2023-12-08 |       13 |       24 |         19 |
| 2023-12-09 |        7 |        9 |          8 |
| 2023-12-10 |        4 |        4 |          4 |
| 2023-12-11 |       16 |       28 |         22 |
| 2023-12-12 |        9 |       23 |         18 |
| 2023-12-13 |       17 |       30 |         23 |
| 2023-12-14 |        8 |       17 |         12 |
| 2023-12-15 |       14 |       26 |         20 |
| 2023-12-16 |        8 |        8 |          8 |
| 2023-12-17 |        5 |        7 |          6 |
| 2023-12-18 |       11 |       22 |         17 |
| 2023-12-19 |        7 |       25 |         17 |
| 2023-12-20 |        6 |       15 |         10 |
| 2023-12-21 |        7 |       17 |         12 |
| 2023-12-22 |        4 |       21 |         15 |
| 2023-12-23 |        2 |        3 |          3 |
| 2023-12-24 |        3 |        3 |          3 |
| 2023-12-25 |       11 |       18 |         15 |
| 2023-12-26 |       15 |       20 |         19 |
| 2023-12-27 |        2 |        2 |          2 |
+------------+----------+----------+------------+
31 rows in set (0.001 sec)

MySQL [tinnakorn]>


ทีนี้ลองมาดูในส่วนของ Acquisitions ใน Google Analytics (GA4) ก็สามารถตรวจสอบได้โดยเลือก 「Reports » Life cycle » Acquisition » Overview」 นอกจากนี้ยังสามารถเลือกวันที่ด้านขวาบนและตรวจสอบข้อมูลการเข้าใช้งานเว็บไซต์ได้เลยครับ

เพิ่ม Task Engagement ใน Job

ต่อไปมาสร้าง Task สำหรับ Engagement เพื่อดึงข้อมูลจาก Google Analytics ไปยัง RDS โดยรับข้อมูลการเข้าใช้งานในทุกๆ วันทั้งเว็บไซต์หรือเฉพาะข้อมูลที่ต้องการจาก Google Analytics ได้

ข้อมูลที่จะดึงจาก Google Analytics ไปยัง RDS คือ

  • Table
    • Engagement
  • Column
    • Date
    • ScreenPageViews
    • UnifiedPageScreen

*เมื่อเพิ่ม Task และ Run Job ไปแล้ว ข้อมูลจะถูกเขียนใน RDS โดยมีชื่อ Table ตามชื่อ Task เช่น Table: Engagement

คลิก + Add Tasks ค้นหา Engagement แล้วติ๊ก Engagement และคลิก Add Tasks

แล้วคลิก Engagement

เลือกแท็บ Columns แล้วคลิก Edit Mapping

แล้วติ๊ก ในคอลัมน์ MAP ออกทั้งหมด ยกเว้น 「Date, ScreenPageViews, UnifiedPageScreen」 ไม่ต้องติ๊กออก แล้วคลิก Save Mapping

เมื่ออัปเดต Mapping เสร็จแล้ว จะเห็นแค่รายการที่ยกเว้นตามด้านล่างนี้
・Date
・ScreenPageViews
・UnifiedPageScreen

แล้วตรวจสอบรายการที่ยกเว้นโดยเลือกแท็บ Query แล้วดูที่ Table Query

Run Job (Engagement)

ย้ายกลับมาหน้าจอ Job ของเราโดยคลิกลิงก์ชื่อ Job ด้านบนซ้ายสุด แล้วเลือกแท็บ Task
แล้วติ๊ก Task ✅ Engagement ที่เพิ่มเข้ามา แล้วคลิก Run เพื่อให้ข้อมูลอัปเดตไปยัง RDS แล้วรอสักครู่

เมื่อ Run เสร็จแล้ว จะแสดง Successful ใน LAST RUN แบบนี้

ตรวจสอบข้อมูล Database ใน RDS (Engagement)

กลับมาที่หน้าจอ Terminal แล้วตรวจสอบข้อมูล Database ใน RDS ที่ใช้เป็นแหล่งข้อมูลปลายทาง ว่าหลังจากที่ Run Job ใน CData Sync ไปแล้ว จะมีข้อมูลของ Google Analytics เข้ามาใน RDS หรือไม่

รันคำสั่งตรวจสอบ Table

SHOW tables;

root@ip-xx-xx-xx-xx:~

MySQL [tinnakorn]> SHOW tables;
+---------------------+
| Tables_in_tinnakorn |
+---------------------+
| Acquisitions        |
| Engagement          |
+---------------------+
2 rows in set (0.004 sec)

MySQL [tinnakorn]>


ต่อไปรันคำสั่งเรียกดูข้อมูลที่เราเพิ่มเข้ามาใน Database ด้วยการ Run Job ไปก่อนหน้า โดยกำหนดวันที่ที่ต้องการตรวจสอบ

SELECT * FROM Engagement WHERE Date = '2023-12-27';

root@ip-xx-xx-xx-xx:~

MySQL [tinnakorn]> SELECT * FROM Engagement WHERE Date = '2023-12-27';
+------------+-----------------+-------------------------------------------------------------------------------------------------------------------+
| Date       | ScreenPageViews | UnifiedPageScreen                                                                                                 |
+------------+-----------------+-------------------------------------------------------------------------------------------------------------------+
| 2023-12-27 |               2 | /th/info-20240109-webinar-ec2backup-th?p=fb1&fbclid=IwAR2UqlNnzWIUgEd_72GwfOlaHJPkLDDbMhxayxwDG12gETEaz3ZTUgxWZuE |
| 2023-12-27 |               2 | /th/info-20240109-webinar-ec2backup-th?p=fb1&fbclid=IwAR31NVE7ey9bsJJm0o9jhfdEMuWGNTLZaD7LeDvYOJFI4-Wfm10AWKTsZdg |
+------------+-----------------+-------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.001 sec)

MySQL [tinnakorn]>


ทีนี้ลองมาดูในส่วนของ Engagement ใน Google Analytics (GA4) ก็สามารถตรวจสอบได้โดยเลือก 「Reports » Life cycle » Engagement » Pages and screens」 นอกจากนี้ยังสามารถเลือกวันที่ด้านขวาบนและตรวจสอบข้อมูลการเข้าใช้งานเว็บไซต์ได้เลยครับ

รับข้อมูลทุกวัน

เมื่อรวบรวมข้อมูลด้วย Google Analytics (GA4) เราสามารถรับข้อมูลได้ทุกวันโดยอัตโนมัติด้วยการใช้งานร่วมกับฟังก์ชัน Schedule ใน CData Sync ครับ

ดูวิธีการได้ที่ด้านล่างนี้ครับ

สรุป

การดึงข้อมูลจาก Google Analytics ไปยัง RDS สามารถดึงข้อมูลทั้งหมดหรือเลือกเฉพาะข้อมูลที่ต้องการเขียนลงใน RDS ได้ตามต้องการโดยแก้ไข Column Mapping ใน Task ที่จะรันไปยัง RDS ครับ

ผมหวังว่าบทความนี้จะเป็นประโยชน์ให้กับผู้อ่านได้นะครับ

POP (Tinnakorn Maneewong) จากบริษัท Classmethod (Thailand) ครับ !

บทความที่เกี่ยวข้อง