logo

Samiti.dev

วิธีติด Google tag (gtag.js) สำหรับ Next.js 13

เกริ่น

สำหรับคนที่ใช้ Google analytics แล้วจำเป็นต้องติด gtag แล้วไม่สามารถทำได้ โดยในทาง inline script ปกติ

ให้ทำการนำเข้า

import Script from 'next/script'

เพื่อเปลี่ยน code ที่ได้มาจาก Google analytics เป็นรูปแบบ component ที่ Next.js รองรับ

ตามตัวอย่างด้านล่างนี้

import Script from 'next/script'
 
function Home() {
  return (
    <div className="container">
      <Script src="https://www.googletagmanager.com/gtag/js?id=GA_MEASUREMENT_ID" />
      <Script id="google-analytics">
        {`
          window.dataLayer = window.dataLayer || [];
          function gtag(){dataLayer.push(arguments);}
          gtag('js', new Date());
 
          gtag('config', 'GA_MEASUREMENT_ID');
        `}
      </Script>
    </div>
  )
}
 
export default Home

ให้แทน id และ script ที่ได้มาจาก Goole analytics

นอกจากนี้อย่าลืมสร้าง component แยกต่างหาก สำหรับเรนเดอร์ในฝั่ง client

ดังตัวอย่างสุดท้าย

import React from 'react'
import Script from 'next/script'
 
const Gtag = () => {
  return (
    <div className='gtag-script'>
        <Script async src="https://www.googletagmanager.com/gtag/js?id=G-926XD88T4C"></Script>
        <Script id="google-analytics" >
        {`
            window.dataLayer = window.dataLayer || [];
            function gtag(){dataLayer.push(arguments);}
            gtag('js', new Date());
 
            gtag('config', 'G-926XD88T4C');
        `}
        </Script>
  </div>
  )
}
 
export default Gtag