Agregué googleanalytcis js ( analytics.js ) a index.html de mi aplicación angular.
<!-- Google Analytics --> <script> (function (i, s, o, g, r, a, m) { i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () { (i[r].q = i[r].q || []).push(arguments) }, i[r].l = 1 * new Date(); a = s.createElement(o), m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m) })(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga'); </script> <!-- End Google Analytics -->Inicio Google Analytics (ga) en mi servicio angular personalizado con o sin cookies dependiendo de si el usuario (ya) ha aceptado todas las cookies. Esto sucede cuando se carga la aplicación (y el usuario aún no ha aceptado todas las cookies). Si los usuarios han permitido las cookies, la decisión también se almacena en una cookie ( cookieConsent ).
if(cookieConsent){ this.ga('create', gaId, "auto"); }else{ this.ga('create', gaId, {"storage": "none"}); //block ga cookies (eg if user has not (yet) allowed cookies) }Más tarde, si el usuario ha aceptado todas las cookies, quiero reiniciar ga para cargar las cookies de ga ( _ga , _gid ). Mi intento actual es el siguiente:
public onCookieConsentChanged(event){ if(event.allowed){ this.ga('create', gaId, "auto"); } }Desafortunadamente, las cookies ga no aparecen después de llamar a onCookieConsentChanged (excepto después de recargar la página completa). ¿Cómo puedo reiniciar correctamente ga para que se carguen las cookies?