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
- Wyczyść cache przeglądarki i ewentualny cache strony.
- Otwórz stronę w trybie incognito, aby sprawdzić, czy kod jest obecny w źródle strony.
- 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.