[object Object]

← back to CelebritySignatures

GA4 events: add game_start (mode/difficulty/category) + game_mode_select on game.html

e44e3a811058c59ddc7eea7977cd99cd07374f96 · 2026-08-04 09:12:14 -0700 · Steve Abrams

Files touched

Diff

commit e44e3a811058c59ddc7eea7977cd99cd07374f96
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Tue Aug 4 09:12:14 2026 -0700

    GA4 events: add game_start (mode/difficulty/category) + game_mode_select on game.html
---
 public/assets/ga-events.js | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/public/assets/ga-events.js b/public/assets/ga-events.js
index 2a866f9..1685fb1 100644
--- a/public/assets/ga-events.js
+++ b/public/assets/ga-events.js
@@ -29,6 +29,19 @@
     if (t.closest('#uploadBtn')) { ev('signature_upload', { step: 'submit_click' }); return; }
     if (t.closest('#loginBtn'))  { ev('account_login_click'); return; }
     if (t.closest('#signupBtn')) { ev('account_signup_click'); return; }
+
+    // Games (game.html) — capture the chosen mode/difficulty/category on Begin
+    var gcard = t.closest('.gcard[data-g]');
+    if (gcard) { ev('game_mode_select', { mode: gcard.getAttribute('data-g') }); return; }
+    if (t.closest('#goBtn')) {
+      var pick = function (sel, attr) { var el = document.querySelector(sel); return el ? el.getAttribute(attr) : ''; };
+      ev('game_start', {
+        mode:       pick('.gcard.on[data-g]', 'data-g'),
+        difficulty: pick('#diffOpts .opt.on[data-d]', 'data-d'),
+        category:   pick('#catOpts .opt.on[data-c]', 'data-c')
+      });
+      return;
+    }
   }, true);
 
   // Murals "Request a quote instead" is a form submit, not a click

← 3b155de GA4 events: wire named conversion/engagement events (mural_o  ·  back to CelebritySignatures  ·  GA4 game_start: guard category param — only log when #catOpt faf97c9 →