From 71e6f6b70601a5a6fa20645c2f01a6bf9f7b19ff Mon Sep 17 00:00:00 2001 From: "tri.susilo" Date: Mon, 29 Apr 2024 13:02:14 +0700 Subject: google tag --- .../product-detail/components/ProductDetail.tsx | 6 ++++++ src/core/utils/googleTag.js | 24 ++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/src-migrate/modules/product-detail/components/ProductDetail.tsx b/src-migrate/modules/product-detail/components/ProductDetail.tsx index 3b1bdbea..bfdf5b43 100644 --- a/src-migrate/modules/product-detail/components/ProductDetail.tsx +++ b/src-migrate/modules/product-detail/components/ProductDetail.tsx @@ -23,6 +23,8 @@ import SimilarBottom from './SimilarBottom' import SimilarSide from './SimilarSide' import VariantList from './VariantList' +import { gtagProductDetail } from '@/core/utils/googleTag' + type Props = { product: IProductDetail } @@ -34,6 +36,10 @@ const ProductDetail = ({ product }: Props) => { const router = useRouter() const { setAskAdminUrl, askAdminUrl, activeVariantId } = useProductDetail() + useEffect(() => { + gtagProductDetail(product); + },[product]) + useEffect(() => { const createdAskUrl = whatsappUrl({ template: 'product', diff --git a/src/core/utils/googleTag.js b/src/core/utils/googleTag.js index cc6d1283..65fad570 100644 --- a/src/core/utils/googleTag.js +++ b/src/core/utils/googleTag.js @@ -33,6 +33,20 @@ const sumTotal = (variants) => { } } +const mapProducts = (product) => { + const res = { + item_id: product.id, + item_name: product.name, + discount: product.lowest_price.priceDiscount, + // index: 0, + item_brand: product.manufacture.name, + item_category: product.categories, + item_variant: product.variants, + price: product.lowest_price.price, + quantity: product.stock_total + } + return res +} export const gtagAddToCart = (variant, quantity) => { const param = { currency: 'IDR', @@ -77,3 +91,13 @@ export const gtagPurchase = (variants, shipping, transactionId) => { } gtag('event', 'purchase', param) } + +export const gtagProductDetail = (product) => { + const items = mapProducts(product) + const param = { + currency: 'IDR', + value: product.id, + items + } + gtag('event', 'view_item', param) +} \ No newline at end of file -- cgit v1.2.3