Jak dodać własny kod Google Analytics 4 w functions.php (bez wtyczek)

Cel: W tym poradniku przedstawione jest, jak dodać kod GA4 do WordPressa bez instalowania wtyczek — wyłącznie za pomocą snippetu w functions.php. Snippet wstrzykuje skrypt gtag.js w sekcji <head>, pomija panel administracyjny i (opcjonalnie) wyklucza wizyty administratorów, aby nie zakłócać statystyk.

Co będzie potrzebne?

  • Dostęp do plików motywu (np. przez FTP/SFTP lub edytor plików w panelu hostingu).
  • ID pomiaru GA4 (format: G-XXXXXXXXXX) z panelu Google Analytics.
  • Motyw potomny (zalecane), aby aktualizacje motywu nie nadpisały zmian.

Krok 1: Skopiowanie snippetu do functions.php

Poniższy kod należy wkleić na końcu pliku functions.php motywu potomnego i podmienić G-XXXXXXXXXX na własne ID pomiaru GA4.

<?php
/**
 * Wstrzyknięcie GA4 (gtag.js) w <head> na front-endzie bez wtyczek.
 * - Nie ładuje się w panelu /wp-admin
 * - Domyślnie pomija administratora (można wyłączyć warunek, jeśli wymagane jest mierzenie także własnych wizyt)
 * - Anonimizuje IP
 */

add_action( 'wp_head', 'prolink_add_ga4_to_head', 20 );
function prolink_add_ga4_to_head() {
    if ( is_admin() ) {
        return;
    }

    // (Opcjonalnie) pominięcie administratorów
    if ( is_user_logged_in() && current_user_can( 'manage_options' ) ) {
        return;
    }

    $measurement_id = 'G-XXXXXXXXXX';

    echo "\n<!-- Google Analytics 4 (gtag.js) -->\n";
    echo "<script async src=\"https://www.googletagmanager.com/gtag/js?id={$measurement_id}\"></script>\n";
    echo "<script>\n";
    echo "  window.dataLayer = window.dataLayer || [];\n";
    echo "  function gtag(){dataLayer.push(arguments);} \n";
    echo "  gtag('consent', 'default', {\n";
    echo "    'analytics_storage': 'denied',\n";
    echo "    'ad_storage': 'denied',\n";
    echo "    'ad_user_data': 'denied',\n";
    echo "    'ad_personalization': 'denied'\n";
    echo "  });\n";
    echo "  gtag('js', new Date());\n";
    echo "  gtag('config', '{$measurement_id}', {\n";
    echo "    'anonymize_ip': true\n";
    echo "  });\n";
    echo "</script>\n";
}

Dlaczego wp_head?

Google zaleca umieszczanie gtag.js w sekcji <head> strony, aby pomiary ładowały się możliwie wcześnie. Hook wp_head wstrzykuje skrypt właśnie w tym miejscu.

Krok 2: (Opcjonalnie) aktywacja po akceptacji cookies

Jeśli strona wykorzystuje baner cookies/Consent Management Platform (CMP), po akceptacji zgody można zaktualizować ustawienia do granted. Przykładowy kod JavaScript:

gtag('consent', 'update', {
  'analytics_storage': 'granted',
  'ad_storage': 'denied',
  'ad_user_data': 'denied',
  'ad_personalization': 'denied'
});

gtag('config', 'G-XXXXXXXXXX');

Krok 3: Testowanie wdrożenia

  1. Wyczyść cache przeglądarki i ewentualny cache strony.
  2. Otwórz stronę w trybie incognito, aby sprawdzić, czy kod jest obecny w źródle strony.
  3. W Google Analytics sprawdź raport „Czas rzeczywisty”, aby zweryfikować, czy odsłony są zliczane.

Alternatywa: użycie kolejki skryptów WordPress

Skrypt GA4 można dodać także za pomocą wp_enqueue_scripts i wp_add_inline_script:

<?php
add_action( 'wp_enqueue_scripts', function () {
    if ( is_admin() ) { return; }
    if ( is_user_logged_in() && current_user_can( 'manage_options' ) ) { return; }

    $measurement_id = 'G-XXXXXXXXXX';

    wp_enqueue_script(
        'ga4',
        'https://www.googletagmanager.com/gtag/js?id=' . rawurlencode( $measurement_id ),
        [],
        null,
        false
    );

    $inline = "
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('consent', 'default', {
        'analytics_storage': 'denied',
        'ad_storage': 'denied',
        'ad_user_data': 'denied',
        'ad_personalization': 'denied'
      });
      gtag('js', new Date());
      gtag('config', '{$measurement_id}', { 'anonymize_ip': true });
    ";
    wp_add_inline_script( 'ga4', $inline );
}, 20 );

Najczęstsze błędy

  • Podwójna implementacja: jednoczesne włączenie snippetu i wtyczki GA może zawyżyć statystyki.
  • Błędne ID: należy użyć aktualnego identyfikatora GA4 (zaczynającego się od G-).
  • Lokalizacja: skrypt powinien znajdować się w <head>, aby działał poprawnie.
  • Cache: brak odświeżenia cache po wdrożeniu powoduje, że kod nie jest widoczny od razu.

Podsumowanie

Dodanie kodu Google Analytics 4 w pliku functions.php jest prostym i skutecznym sposobem na wdrożenie analityki bez instalowania dodatkowych wtyczek. Dzięki temu rozwiązaniu można zachować lekkość strony i pełną kontrolę nad tym, jakie dane są przesyłane do Google Analytics.

Zamów wycenę
Polityka prywatności | Regulamin
Pro-link 2005-2020

Ta strona korzysta z ciasteczek

Niezbędne ciasteczka umożliwiają prawidłowe funkcjonowanie strony internetowej, zapewniając podstawowe funkcje, takie jak nawigacja po stronie i dostęp do jej zabezpieczonych obszarów. Bez tych ciasteczek strona nie może działać prawidłowo.

Niezbędne

Niezbędne ciasteczka umożliwiają prawidłowe funkcjonowanie strony internetowej, zapewniając podstawowe funkcje, takie jak nawigacja po stronie i dostęp do jej zabezpieczonych obszarów. Bez tych ciasteczek strona nie może działać prawidłowo.

Zgoda na Analitykę

Wyrażam zgodę na wykorzystywanie plików cookie Google Analytics w celu prowadzenia anonimowych statystyk, analizy sposobu korzystania ze strony oraz jej ulepszania, przy czym część danych może być także używana przez Google do personalizacji i pomiaru skuteczności reklam.

Zgoda na Reklamy spersonalizowane

Wyrażam zgodę na wykorzystywanie przez Google plików cookie i podobnych technologii w celu wyświetlania reklam spersonalizowanych, pomiaru ich skuteczności oraz zapewnienia bezpieczeństwa strony poprzez odróżnianie użytkowników od botów.

Informacje

Ciasteczka (cookies) to małe pliki tekstowe, które mogą być wykorzystywane przez strony internetowe, by usprawnić doświadczenie użytkownika. Zgodnie z przepisami prawa, możemy przechowywać na Twoim urządzeniu ciasteczka, które są ściśle niezbędne do funkcjonowania tej strony. W przypadku wszystkich innych typów ciasteczek potrzebujemy Twojej zgody. Oznacza to, że ciasteczka klasyfikowane jako niezbędne są przetwarzane na podstawie art. 6 ust. 1 lit. f RODO. Wszystkie pozostałe ciasteczka, czyli te z kategorii preferencji i marketingu, są przetwarzane na podstawie art. 6 ust. 1 lit. a RODO. Nasza strona korzysta z różnych rodzajów ciasteczek. Niektóre ciasteczka są umieszczane przez usługi stron trzecich, które pojawiają się na naszych stronach. W każdej chwili możesz zmienić lub wycofać swoją zgodę z Oświadczenia o ciasteczkach na naszej stronie internetowej. Dowiedz się więcej o tym, kim jesteśmy, jak możesz się z nami skontaktować i jak przetwarzamy dane osobowe, zapoznając się z naszą Polityką Prywatności.