/* Lagos MiND — Google Analytics 4 * Measurement ID: G-P72B2XZ467 * Privacy: no names, phone numbers, emails, clinical information, or raw * Knowledge Centre search terms are sent to Google Analytics. */ (function () { 'use strict'; var MEASUREMENT_ID = 'G-P72B2XZ467'; var GA_SRC = 'https://www.googletagmanager.com/gtag/js?id=' + MEASUREMENT_ID; window.dataLayer = window.dataLayer || []; window.gtag = window.gtag || function(){ window.dataLayer.push(arguments); }; window.gtag('js', new Date()); window.gtag('config', MEASUREMENT_ID, { anonymize_ip: true, send_page_view: true }); if (!document.querySelector('script[data-lagosmind-ga4]')) { var s = document.createElement('script'); s.async = true; s.src = GA_SRC; s.setAttribute('data-lagosmind-ga4', 'true'); document.head.appendChild(s); } function path() { return window.location.pathname || '/'; } function cleanLabel(value) { return (value || '').toString().trim().slice(0, 100); } function pageType() { var p = path().toLowerCase(); if (/^\/post-/.test(p)) return 'blog_post'; if (/^\/article-/.test(p)) return 'article'; if (p === '/blog' || p === 'blog-2.html') return 'blog_listing'; if (p === '/articles' || p === 'articles-2.html') return 'article_listing'; if (p.indexOf('blog-search') !== -1) return 'blog_search'; if (p.indexOf('articles-search') !== -1) return 'article_search'; if (p.indexOf('/providers') === 0) return 'providers'; return 'page'; } function event(name, params) { if (typeof window.gtag !== 'function') return; window.gtag('event', name, params || {}); } // Useful, non-sensitive page/content reporting. document.addEventListener('DOMContentLoaded', function () { event('page_type_view', { page_type: pageType() }); }); document.addEventListener('click', function (e) { var el = e.target && e.target.closest ? e.target.closest('a,button,[role="button"]') : null; if (!el) return; var href = el.getAttribute('href') || ''; var text = cleanLabel(el.textContent); var lowerHref = href.toLowerCase(); // WhatsApp if (lowerHref.indexOf('wa.me/') !== -1 || lowerHref.indexOf('api.whatsapp.com/') !== -1 || lowerHref.indexOf('whatsapp.com/') !== -1) { event('whatsapp_click', { link_text: text || 'WhatsApp', page_type: pageType() }); return; } // Phone calls — only the fact of the click is recorded. if (lowerHref.indexOf('tel:') === 0) { event('phone_click', { link_text: text || 'Phone', page_type: pageType() }); return; } // Email — do not send the email address. if (lowerHref.indexOf('mailto:') === 0) { event('email_click', { link_text: text || 'Email', page_type: pageType() }); return; } // Get Help / crisis-support CTAs. var helpText = text.toLowerCase(); if (helpText.indexOf('get help') !== -1 || helpText.indexOf('get support') !== -1 || helpText.indexOf('talk to someone') !== -1 || helpText.indexOf('need help') !== -1) { event('get_help_click', { link_text: text || 'Get Help', page_type: pageType() }); } // Knowledge Centre content interaction. if (/^\/post-/.test(href.toLowerCase())) { event('blog_post_click', { page_type: pageType() }); } else if (/^\/article-/.test(href.toLowerCase())) { event('article_click', { page_type: pageType() }); } // Provider profile links. No names or clinical details are sent. if (href.toLowerCase().indexOf('provider.html') !== -1 || href.toLowerCase().indexOf('providers/https://lagosminded.org/') !== -1) { event('provider_profile_click', { page_type: pageType() }); } // File downloads. if (/\.(pdf|docx?|xlsx?|pptx?|csv|zip)(?:[?#]|$)/i.test(lowerHref)) { event('file_download_click', { file_type: (lowerHref.match(/\.([a-z0-9]+)(?:[?#]|$)/i) || [,'unknown'])[1] }); } // External links: record only the host category, not the full URL/query. if (/^https?:\/\//i.test(href)) { try { var u = new URL(href, window.location.href); if (u.hostname !== window.location.hostname) { event('external_link_click', { outbound_host: u.hostname }); } } catch (_) {} } }, true); // Search interaction: intentionally omit the search term. document.addEventListener('submit', function (e) { var form = e.target; if (!form || !form.querySelector) return; var action = (form.getAttribute('action') || '').toLowerCase(); var input = form.querySelector('input[type="search"], input[name="q"], input[name="search"]'); if (!input) return; if (action.indexOf('blog-search') !== -1 || action.indexOf('articles-search') !== -1 || path().toLowerCase().indexOf('blog-search') !== -1 || path().toLowerCase().indexOf('articles-search') !== -1) { event('knowledge_search', { search_type: path().toLowerCase().indexOf('articles') !== -1 ? 'articles' : 'blog' }); } }, true); })();