Ở phần trước, mình đã hướng dẫn các bạn hiển thị dataLayer chứa ecommerce data theo chuẩn format của Google Analytics. Mình sẽ post lại quy trình tracking enhanced ecommerce cho các bạn nắm rõ:

quy trình triển khai enhanced ecommerce

Quy trình triển khai enhanced ecommerce

Chúng ta đã hoàn thành bước 2: populates dataLayer with details about the eCommerce event in correct format. Ở bài này, mình sẽ hướng dẫn các bạn cách setup tag trong Google Tag Manager để lấy các thông tin ecommerce trong dataLayer này về(bước 3) và gửi tới Google Analytics(bước 4).

Đối với bước 3: lấy các thông tin ecommerce trong dataLayer về, mọi thứ còn đơn giản hơn nhiều nữa, khi mà tất cả bạn cần làm, chỉ là chọn Enable Enhanced Ecommerce Features và tick vào ô Use Data Layer như hình dưới đây đối với tất cả các Tag mà bạn muốn gửi ecommerce data về Google Analytics.

cách lấy ecommerce dataLayer về google analytics

Click vào hình để xem rõ hơn

Nhiệm vụ cuối cùng của chúng ta là setup các tag và đặt điều kiện trigger, cũng như các variable để gửi data về Google Analytics.

Lưu ý là mình vẫn đang mới chỉ áp dụng với activity là Purchases thôi nhé các bạn, để chúng ta hiểu được quy trình triển khai là như thế nào. Các activity khác về mặt quy trình cũng tương tự, chỉ khác các điều kiện. Mình sẽ có những bài cụ thể hơn cho các activity khác sau.

I. Có những cách nào để gửi ecommerce data về Google Analytics?

Trước tiên chúng ta phải hiểu được là làm thế nào để những data này được gửi tới Google Analytics, từ đó chúng ta sẽ xác định được phải tạo Tag nào trong GTM, và Trigger của Tag đó là gì.

Đối với Standard Ecommerce thì mọi thứ đơn giản hơn, bạn chỉ cần tạo Track Type: Transaction và setup Trigger dạng Pageview ở Thankyou Page là được rồi. (Các bạn có thể xem bài viết của anh Vũ Văn Hiển – Founder SocialOne.us và tác giả blog.chamxanh.com để biết thêm về cách setup Standard Ecommerce).

Còn đối với Enhanced Ecommerce, bạn có 2 cách để gửi ecommerce data về Google Analytics:

  • Cách 1 – Pageview Hit: ecommerce data sẽ được gửi chung với Pageview Hit. Tức là khi trang web vừa mới load lên thì các thông tin ecommerce trong dataLayer sẽ được gửi về GA ngay tức khắc. Điều này đồng nghĩa với việc:
    • Bạn bắt buộc phải setup Universal Analytics thông qua Google Tag Manager chứ không được cài đặt trực tiếp trên website.
    • dataLayer script phải được đặt trên Google Tag Manager script để các data được sẵn sàng trước khi Google Tag Manager và Universal Analytics tag được load lên.
    • Các activity có thể áp dụng cách này: Purchases, Product Detail View (và các loại Impressions khác), Checkout. Nói chung là nhưng activity không cần người dùng tương tác, chỉ cần load page lên là đã có thể gửi ecommerce data về rồi.
  • Cách 2 – Event Hit: ecommerce data sẽ được gửi chung với 1 event hit. Tức là chúng ta phải tạo 1 tag với Track type là event. Khi event này được kích hoạt thì thông tin ecommerce trong dataLayer sẽ được gửi về GA. Điều này đồng nghĩa với việc:
    • dataLayer script phải được đặt ngay dưới Google Tag Manager script, để event tag có thể hoạt động.
    • dataLayer script phải chứa 1 custom event để GTM có thể “lắng nghe” được event đó và làm trigger để fire Event Tag của bạn.
    • Các activity có thể áp dụng cách này: tất cả activity (mình recommend các bạn sử dụng cách này cho tất cả các activity). Từ Purchases, Checkout, Impressions cho tới Add/Remove from cart. Đặc biệt hữu ích đối với các activity cần người dùng tương tác như Add/Remove from cart.

II. Cách setup tag để gửi ecommerce data về Google Analytics

Cách 1. Gửi bằng Pageview Hit

Nếu bạn đã tạo Universal Analytics tag (mà 90% các bạn dùng Google Tag Manager thì đã tạo tag này) để track Pageview, thì chúng ta chỉ cần vào tag đó và chỉnh sửa lại. Còn đối với các bạn chưa tạo Universal Analytics tag, các bạn cần gỡ hết code Google Analytics trên website và tạo tag mới trên GTM. Đối với cả 2 trường hợp, tag này sau khi tạo hoặc chỉnh sửa, sẽ có thông số như sau:

cài purchases tag cho enhanced ecommerce

Click vào hình để xem rõ hơn

Khi chúng ta áp dụng cách này, thì chúng ta chỉ cần setup 1 lần cho tất cả các activity sử dụng phương pháp Pageview Hit. Vì nếu chúng ta cài đặt nhiều tag như thế này, thì mỗi tag khi kích hoạt sẽ gửi về 1 pageview, điều này là không hợp lý.

Cho nên đối với các activity còn lại mà các bạn muốn sử dụng cách gửi cùng Pageview Hit, thì các bạn chỉ cần đặt điều kiện trong implementation document cho dataLayer script của chúng hiển thị ở trên Google Tag Manager script là được rồi. Mọi việc khác Google Tag Manager sẽ tự lo liệu hết.

Cách 2. Gửi bằng Event Hit

2.1. Phân biệt Event Tag, Event Hit và Custom Event

Trước tiên các bạn cần phân biệt được Event Tag và Custom Event trong Google Analytics:

  • Event Tag là một Tag (như bao tag khác), trong đó bạn thiết lập các Event Category, Action, Label để gửi Event Hit về Google Analytics report.
  • Custom Event là một dạng Trigger. Nghĩa là nó dùng để kích hoạt một Tag nào đó. Custom Event trong GTM nói nôm na là 1 sự kiện xảy ra trên website, được thiết lập để Google Tag Manager “lắng nghe” được sự kiện đó và dựa vào đó để kích hoạt các tag có liên quan tới nó. Các bạn có thể xem hình ở dưới để hiểu rõ hơn về các Default Event và Custom Event trong Google Tag Manager:
custom event trong google tag manager

Click vào hình để xem rõ hơn

Trong Google Tag Manager có rất nhiều default event như:

  • (1)Page View: khi Google Tag Manager script được load lên
  • (3)DOM Ready: khi toàn bộ document của website được load lên (chưa load các external script)
  • (4)Window Loaded: khi toàn bộ document của website, kể cả các external script được load lên
  • (6)gtm.click: khi người dùng click vào 1 nơi bất kỳ trên website
  • gtm.linkClick: khi người dùng click vào 1 link bất kỳ trên website
  • v.v…

Ngoài ra chúng ta có thể thiết lập thêm các Custom Event khác để tạo Trigger mà mình muốn và kích hoạt một tag nào đó. Ví dụ trong hình trên, mình có tạo 2 Custom Event để làm trigger, là:

  • (2)scrollTracking: khi dataLayer script có cặp giá trị ‘event’:’scrollTracking’ được load lên
  • (5)highlighted: trong dataLayer có cặp giá trị ‘event’:’highlighted’ được load lên

Rất dễ hiểu phải ko? Sau này chính bạn cũng có thể tạo được custom event, chỉ cần cho 1 cặp giá trị ‘event’:'{{tên custom event bạn muốn đặt}}’ như trên vào dataLayer script là được rồi.

Luyên thuyên về Event và Custom Event trong GTM xong rồi, các bạn cũng đã hiểu và phân biệt được các khái niệm này rồi, bây giờ chúng ta quay lại với Purchases activity mà chúng ta đang tìm cách tracking.

2.2. Setup Event Tag để gửi Event Hit cho Purchases activity

Các bạn còn nhớ dataLayer script mà bài trước mình đã làm mẫu cho các bạn chứ? Hãy cùng xem lại 1 lần nữa nhé:

Các bạn hãy nhìn vào line 6, có một cặp giá trị ‘event’: ‘purchase’. Đây chính là 1 Custom Event mà mình đã thêm sẵn vào cho các bạn rồi đấy!

Việc bây giờ của các bạn là tạo 1 Trigger trong GTM như hình sau:

trigger cho purchases activity trong enhanced ecommerce

Click vào hình để xem rõ hơn

Tên của trigger các bạn có thể đặt tự do, còn Event Name bạn đặt giá trị đúng với tên Custom Event bạn đã định nghĩa trong dataLayer script (như các ví dụ mình đã làm ở trên).

Sau khi tạo Trigger xong, các bạn tạo 1 Tag với Track Type là Event và thiết lập như trong hình dưới đây:

event tag cho purchases enhanced ecommerce

Click vào hình để xem rõ hơn

Phần mình highlight đỏ: Non Interaction-Hit, mình set là True để cho Event Hit này không tác động tới Bounce Rate cũng như Time On Site, các bạn có thể set nó thành False cũng được.

III. Testing bằng Preview Tool

Trước khi testing, hãy chắc chắn rằng bạn đã enable Enhanced Ecommerce cho view của mình trong Google Analytics. Nếu chưa biết phải cài đặt ở đâu, các bạn hãy xem hình dưới đây và làm theo nhé:

enable enhanced ecommerce trong google analytics

Click vào hình để xem rõ hơn

Các bước lần lượt sẽ là:

  1. Chọn Property của website cần track và chọn View để enable Enhanced Ecommerce (lưu ý: Enhanced Ecommerce có tác dụng ở mức View, nên nếu bạn muốn xem Enhanced Ecommerce report ở nhiều View khác nhau, bạn phải enable EEc ở tất cả các View)
  2. Click vào section Ecommerce Settings
  3. Enable Ecommerce  và Enhanced Ecommerce Settings
  4. Đối với Checkout Steps, nếu bạn có setup tracking Checkout Activity thì mới cần phải tạo các steps này, còn không thì thôi. Sau này mình sẽ có một bài hướng dẫn cách phân tích Checkout steps và triển khai Checkout sao cho phù hợp.

1. Đối với Event Hit

Đối với các bạn tracking bằng cách gửi Event Hit, thì chúng ta sẽ test xem tại thời điểm dataLayer script được load lên, thì custom event đó có kích hoạt để gửi ecommerce data về Google Analytics hay không. Trước tiên, các bạn bật Preview Tool lên và vào website của mình để test đơn hàng. Ở Thank You page, các bạn sẽ thấy giao diện như hình sau:

preview purchase event

Click vào hình để xem rõ hơn

Vì chúng ta đặt dataLayer script ngay dưới GTM script, nên custom event này sẽ load ngay sau khi GTM script load. Như hình trên các bạn có thể thấy event purchases đứng thứ 2, tức chỉ load sau Page View event – tức sau khi GTM script load thôi.

  • Nếu sau khi trang Thank You page load lên mà bạn nhìn vào preview tool vẫn chưa thấy custom event của mình, thì rất có thể dataLayer script này không tồn tại, hoặc tồn tại nhưng có lỗi cú pháp, sai chính tả,… nên GTM không thể nhận diện được. Trường hợp này bạn cần liên hệ developer và tiến hành fix lỗi ngay.

Sau khi click chọn custom event (trường hợp này là purchases), các bạn nhìn bên tay phải, sẽ thấy mục Tags Fired On This Event và thấy có tag mà chúng ta đã tạo không lâu trước đó: “Ecommerce – Transaction”. Điều này có nghĩa là Tag Manager đã gửi thành công 1 Event Hit về Google Analytics rồi.  Điều tiếp theo cần check nữa đó là trong Event Hit này có “mang theo” ecommerce data trong dataLayer chưa.

test purchases event datalayer

Click vào hình để xem rõ hơn

Cũng trong custom event đó, các bạn chuyển qua tab Data Layer như hình trên, sẽ thấy thông tin của dataLayer. Hãy kiểm tra kỹ 1 lần nữa, để chắc chắn các thông tin ecommerce trong đó là chính xác (nhất là giá tiền, dữ liệu này rất dễ bị nhầm lẫn, không được có bất kỳ ký tự gì ngoài số).

2. Đối với Pageview Hit

Với Pageview Hit, quy trình test cũng tương tự, thậm chí còn dễ hơn, bạn chỉ cần chắc chắn rằng dataLayer script được load trước Universal Analytics tag. Điều này đồng nghĩa với Custom event của bạn sẽ xuất hiện trước Page View event.

test pageview hit trong enhanced ecommerce

Click vào hình để xem rõ hơn

Nhìn vào hình trên các bạn có thể thấy purchases event xuất hiện trước Page View event, chứng tỏ dataLayer script đã được triển khai đúng với ý đồ của chúng ta, và cũng dễ hiểu khi Tags Fired On This Event là không có giá trị nào, bởi vì lúc này GTM script còn chưa load được, thì chưa có tag nào fire là điều dễ hiểu.

enhanced ecommerce pageview datalayer test

Click vào hình để xem rõ hơn

Một lần nữa, chúng ta test xem trong custom event này, dataLayer script của chúng ta đã chứa đúng các thông tin ecommerce chưa(như hình trên), nếu chưa, chúng ta cần liên hệ developer để triển khai lại cho đúng.

IV. Tận hưởng thành quả

Nếu mọi việc diễn ra trôi chảy, sau 15-30p, các bạn vào report Google Analytics (đã enable Enhanced Ecommerce), chọn ngày mà bạn đang thực hiện test (bước này nhiều người dễ bỏ sót, nên thường không thấy được data của mình, tưởng mình setup sai 😛 ), sau đó xem report Ecommerce trong phần Conversion, sẽ thấy được các data mà mình đã track.

lưu ý khi xem enhanced ecommerce report

Sau 15-30 phút, các bạn sẽ thấy data của mình hiển thị nếu bạn triển khai đúng. Ngày mình thực hiện test là 31/7, nên mình chọn date range là 31/7-31/7

Hy vọng sau 2 bài viết về Enhanced Ecommerce Tracking cho Google Tag Manager này, các bạn làm marketing mà không biết nhiều về code cũng có thể triển khai được EEc cho đơn vị của mình. Nếu có bất kỳ thắc mắc gì, các bạn có thể comment để cùng thảo luận với mình trong bài viết này, mình sẽ cố gắng giải đáp.

Chúc các bạn thành công!


Hoang Nguyen

Theo học Quản trị kinh doanh, tốt nghiệp cử nhân Quản trị du lịch, để rồi theo đuổi Digital Marketing. Thích "vọc" code và những con số, thích chơi guitar và sở hữu một tiệm đàn nho nhỏ...

7 Comments

Ánh · 04/11/2017 at 9:14 am

Hi anh,
Cảm ơn bài viết rất chi tiết của anh :).
Em có triển khai nhưng không biết vì sao test đầy đủ nhưng analytic lại không ghi nhận được số liệu.
Coder bên em chèn test trước với 1 sp cụ thể trong code ecommerce. Code chèn trên toàn trang.
Đây là website bên em: https://divashop.vn/
Đây là test preview GTM:
– Data layer purchase: https://ibb.co/hHDDyG
– Tag purchase: https://ibb.co/mzcbkw
Anh xem giúp em với nhé, vì em không rõ đã triển khai sai ở khâu nào nữa 🙁
Em cảm ơn anh nhiều lắm, ^_^

    Hoang Nguyen · 04/11/2017 at 11:15 pm

    Chào Ánh, trông dataLayer có vẻ ổn rồi. Tuy nhiên em set Event này phần Non-Interaction Hit = True thì sẽ không xem được Event đó trên Real Time đâu.
    Có 2 cách để test:

    1. Set Non-Interaction Hit = False
    2. Chờ vài tiếng sau hoặc qua ngày hôm sau và xem lại report của ngày thực hiện test, lúc này trong phần Behavior->Events sẽ xuất hiện (nếu Tag này hoạt động đúng)

    Em thử xem sao nhé!

    Hoang Nguyen · 04/11/2017 at 11:17 pm

    Và em cũng lưu ý luôn là feature Purchase Tracking này chỉ dành cho Thank You page, tức là sau khi khách hàng đã mua hàng xong nhé, còn chèn nó ở bất kỳ page nào khác cũng là không đúng.

Thạch · 20/10/2017 at 1:56 pm

Cảm ơn anh vì bài viết rất hữu ích.
Em có một câu hỏi là mình có thể dùng Tag trong GTM để chèn datalayer không ạ? hay bắt buộc phải chèn code trực tiếp vào website.
Cảm ơn anh.

    Nguyễn Hữu Hoàng · 20/10/2017 at 2:05 pm

    Được nhé em, GTM có Custom HTML Tag để mình chèn HTML, JS,… thì trong đó mình có thể define dataLayer, giống như là mình thao tác trực tiếp trên website vậy. Tuy nhiên nó cũng có nhược điểm là chỉ lấy được các data trên front-end thôi 🙂

      Thạch · 20/10/2017 at 2:55 pm

      OKay anh.
      Em có tìm hiểu nhiều website khác về Enhanced Ecommerce Tracking nhưng bài viết của anh là dễ hiểu nhất ạ 🙂
      Cảm ơn anh!
      Hi vọng sớm được đọc thêm các bài viết khác của anh về Enhanced Ecommerce Tracking <3

        Nguyễn Hữu Hoàng · 20/10/2017 at 4:05 pm

        Uh dạo này anh đang bận quá nên đang pending, sắp tới rảnh (thất nghiệp :P) anh sẽ cố gắng ra đủ series. Cám ơn em nhé!

Leave a Reply

Your email address will not be published. Required fields are marked *