/** * Denna kod ska köras på varje sida, tidigt i laddningsprocessen, * för att etablera en konsekvent session_id och hämta client_id (från _ga cookie). * * Detta säkerställer att Server Side (Measurement Protocol) träffar * kan matchas mot webbläsarens session. */ // Global variabel för datalagret window.dataLayer = window.dataLayer || []; const SESSION_TIMEOUT_MINUTES = 30; // Standard GA4 session timeout // --- COOKIE HANTERING --- /** * Hämtar värdet från en specifik cookie. * @param {string} name - Namnet på cookien. * @returns {string|null} - Värdet av cookien. */ function getCookie(name) { const nameEQ = name + "="; const ca = document.cookie.split(';'); for(let i = 0; i < ca.length; i++) { let c = ca[i]; while (c.charAt(0) === ' ') c = c.substring(1, c.length); if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length); } return null; } /** * Sätter en cookie med angiven timeout. * @param {string} name - Namnet på cookien. * @param {string} value - Värdet. * @param {number} minutes - Livslängd i minuter. */ function setCookie(name, value, minutes) { let expires = ""; if (minutes) { const date = new Date(); date.setTime(date.getTime() + (minutes * 60 * 1000)); expires = "; expires=" + date.toUTCString(); } // Sätter SameSite=Lax för modern kompatibilitet document.cookie = name + "=" + (value || "") + expires + "; path=/; SameSite=Lax"; } // --- ID GENERERING OCH HÄMTNING --- /** * Försöker hämta Google Analytics Client ID från _ga cookie. * Formatet är vanligtvis GAx.y.CLIENT_ID.SESSION_ID * @returns {string|null} - Den unika klient-ID delen. */ function getGaClientId() { // Regex matchar GAx.y.CLIENT_ID.SESSION_ID och fångar CLIENT_ID-delen const match = document.cookie.match(/_ga=GA\d\.\d\.(\d+\.\d+)/); return match ? match[1] : null; } /** * Hämtar session ID från cookie, eller skapar ett nytt om det inte finns/har gått ut. * Session ID måste vara UNIX timestamp (sekunder) ELLER en sträng som börjar med timestamp i sekunder. * För att följa MP-specifikationen skapar vi en 10-siffrig timestamp. * @returns {string} - Session ID. */ function getSessionId() { let sessionId = getCookie('mp_session_id'); // Om sessionen saknas eller är gammal, skapa ny if (!sessionId) { // Använd UNIX timestamp i sekunder för att följa GA4's rekommendation (max 10 siffror) const nowInSeconds = Math.floor(Date.now() / 1000); // Genererar en unik sträng (t.ex. 1667232000.12345) sessionId = `${nowInSeconds}.${Math.floor(Math.random() * 100000)}`; } // Sätt eller uppdatera cookien för att förlänga sessionen setCookie('mp_session_id', sessionId, SESSION_TIMEOUT_MINUTES); // GA4 Measurement Protocol (MP) kräver att session_id:n till din server // är 10 tecken (sekunder). Vi skickar därför bara timestamp-delen. return sessionId.substring(0, sessionId.indexOf('.')); } // --- INITIERING --- const currentClientId = getGaClientId(); const currentSessionId = getSessionId(); // Pusha klient-ID och session-ID till Data Layer. // Detta kommer att slås samman med alla efterföljande event som har 'event: ...' // och kan användas av er server-side behållare för att skicka MP-träffar. if (currentClientId && currentSessionId) { window.dataLayer.push({ // Läggs på Root (globalt) i datalagret för enkel åtkomst mp_client_id: currentClientId, mp_session_id: currentSessionId }); } else { // För felsökning console.warn("Kunde inte hämta GA Client ID eller Session ID."); } Kul råvaror, köksaker & presenter. Från salt till sugarpaste.

Användarnamn

Inlägg taggade med "golddust"

Glittrig äppelcocktail
Glittrig lite höstlig Drink perfekt till Halloween. Innehåller allt som krävs av en höstdrink. Äpple, kanel, tranbär och glitter. Det går fint att skippa alkoholen. Vill man ha kanelsmak utan sprit tillsätts istället lite mald kanel eller kanelsirap.
Kanapéer med gyllene kycklinglevermousse
Inte lika kostsamt som gåslever men med lyxigt guld på toppen.
Tårta med ryska dekorationer
Ett enkelt sätt att dekorera snyggt är att använda så kallade ryska tyllar. Testa det är hur kul som helst! Så här kan man göra.
Rosa chokladkaka med guldglänsande nötcrunch
Superenkelt, effektfullt och smaskigt sött men med tydlig hallonsmak.
Chokladcravings
Lite nyttigt och lyxigt i chokladen gör den ännu godare.
Chokladkaka med matcha, bär, kokos och guld
En vacker chokladkaka med matcha, bär och kokos. Dekorerad med guld!
Vit chokladkaka med guldnötter
Gör egna chokladkakor med olika dekorativa ätbara utsmyckningar som smakar mer eller mindre. På denna vita kaka ligger det guld i små högar...