2013-05-27 30 views
5

Tôi phải gửi sự kiện trình quản lý thẻ của Google khi người dùng nhấn một nút trên web. Trên thực tế, nút này nằm trong iframe và sau nhấp chuột đó, iframe này bị đóng và một iframe khác xuất hiện ...Đợi dataLayer.push() bằng Trình quản lý thẻ của Google

Tôi đang thiết lập dữ liệu sự kiện này trên sự kiện nhấp từ javascript và sau đó tôi gọi dataLayer.push để gửi thông tin đó đến google analytics.

tôi có thể thấy yêu cầu này từ firebug nhưng nó được hủy trước khi nó đến để google ngay sau khi iframe đóng ...

Có cách nào để chờ cuộc gọi này trước khi đóng cửa iframe của tôi? Có cách nào khác để "đẩy" dữ liệu này không?

Xin cảm ơn trước.

Trả lời

1

Cuối cùng tôi đã không tìm thấy bất kỳ cách nào tốt hơn để làm công việc này vì vậy tôi chỉ tìm thấy một giải pháp:

-Button event.preventDefault() -Tôi gọi push. -Đang chờ một giây. -Tiếp tục hành động mặc định của nút.

2

Để làm cho câu hỏi này hữu ích hơn cho người đọc hiện tại: bây giờ bạn sẽ tạo thẻ trình xử lý sự kiện trong Trình quản lý thẻ của Google và chọn hộp kiểm "chờ thẻ phụ thuộc vào sự kiện này" (thẻ trình xử lý sự kiện không tồn tại trong GTM khi điều này được yêu cầu).

(Và dĩ nhiên, nền tảng kỹ thuật hơi khác một chút được nêu trong câu hỏi - vì một điều datalayer.push không gửi dữ liệu đến Google Analytics).

+0

datalayer.push không gửi dữ liệu đến Google? Làm thế nào để bạn có được dữ liệu mới nếu không? – zapico

+1

Mọi thứ được định cấu hình trong Trình quản lý thẻ được bao bọc trong đối tượng javascript và được chèn vào trang. Datalayer.push thêm cặp khóa/giá trị vào đối tượng dataLayer. Đối tượng datalayer sau đó được đánh giá bằng mã Javascript GTM. Đó là mã GTM chứa có thể gửi thông tin đến Google Analytics (nếu bạn đã định cấu hình thẻ GA), không phải là dataLayer. DataLayer chỉ là (không liên tục) khóa/giá trị lưu trữ, nó không gửi bất cứ điều gì. –

+0

Và kích hoạt để cho GTM biết nó phải gửi dữ liệu là gì? – zapico

Các vấn đề liên quan