Головна · Встановлення · WordPress

SadalClik на WordPress

Два робочі шляхи: через плагін, що ставить контейнер Google Tag Manager, або через functions.php дочірньої теми. Ядро й файли теми патчити не треба. Нижче — куди класти теку /cg/ і що на WordPress ламає лічильник найчастіше.

Підходить для WooCommerce · оновлення WordPress встановлення не зносить

public_html/ wp-admin/ wp-content/ wp-includes/ wp-config.php index.php cg/ cg-tracker.safe.js · collect.php

Крок, який не можна пропустити

Тека /cg/ кладеться в корінь сайту

Спершу FTP, потім тег. У теці лежать два файли: лічильник cg-tracker.safe.js і приймач collect.php. Приймач — це PHP, і він має виконуватись на вашому домені, щоб візити не різали блокувальники. Google Tag Manager PHP-файл створити не може: тег уміє лише вставити JavaScript у сторінку.

Кладіть поруч із wp-config.php — там само, де корінь WordPress:

public_html/
├── wp-admin/
├── wp-content/
├── wp-includes/
├── wp-config.php
└── cg/
    ├── cg-tracker.safe.js
    └── collect.php
ШляхВердиктЧому
/cg/ Вірно Корінь сайту. Оновлення WordPress, теми й плагінів сюди не лізуть.
/wp-content/themes/tema/cg/ Ні Злетить при першому ж оновленні теми. І адреса зміниться, якщо тему поміняєте.
/wp-content/plugins/cg/ Ні Те саме плюс ризик, що оптимізатор порахує теку сміттям.
/wp-content/uploads/cg/ Ні Багато хостингів забороняють виконувати PHP в uploads — collect.php мовчки поверне 403.

Перевірка: відкрийте в браузері https://vash-sajt.com/cg/cg-tracker.safe.js. Має віддатися текст скрипта. Якщо бачите сторінку «404 — не знайдено» від WordPress, файл лежить не там або права не 644.

Права: тека 755, файли 644. Постійні посилання WordPress реальні файли не перехоплюють — правило .htaccess перевіряє наявність файла й пропускає його напряму.

Шлях A · радимо

Через плагін, що ставить контейнер GTM

Site Kit by Google і GTM4WP роблять одне: вставляють у сторінки контейнер Google Tag Manager. Самого коду SadalClik вони не знають — його ви додасте всередині GTM. Зате потім будь-які правки робляться в інтерфейсі GTM, без доступу до сайту.

  1. Поставте контейнер

    Site Kit: Налаштування → під’єднати Tag Manager, обрати контейнер GTM-XXXXXXX. GTM4WP: Settings → Google Tag Manager → вписати ID і увімкнути вставку коду.

  2. Переконайтесь, що він один

    Ctrl+U на головній, пошук по googletagmanager.com/gtm.js. Має знайтися одне входження. Два контейнери на сторінці — кожен візит піде до нас двічі й ліміт тарифу згорить удвічі швидше.

  3. Додайте тег SadalClik

    У GTM: Теги → Створити → Custom HTML, вставити код із панелі, тригер All Pages, позначку «один раз на сторінку» лишити увімкненою.

  4. Preview, потім Submit

    У режимі попереднього перегляду GTM відкрийте свій сайт: тег має бути в списку Fired. Лише після цього публікуйте контейнер.

Site Kit і GTM4WP разом вмикати не треба. Якщо контейнер уже вставляє один плагін, у другому вставку коду вимкніть.

Докладна інструкція по GTM

Шлях B · без GTM

functions.php дочірньої теми

Якщо Tag Manager на сайті не потрібен, скрипт під’єднується штатним способом WordPress. Правило одне: файл редагується лише в дочірній темі. У батьківській темі правка живе до першого оновлення, потім зникає разом із даними.

Варіант через wp_enqueue_script — налаштування їдуть у той самий тег, порядок гарантований:

add_action('wp_enqueue_scripts', function () {
    wp_enqueue_script(
        'cg-tracker',
        home_url('/cg/cg-tracker.safe.js'),
        [], null, true
    );
    wp_add_inline_script('cg-tracker',
        "window.CG_ACC='vash-akaunt';" .
        "window.CG_CG_ENDPOINT='" . home_url('/cg/collect.php') . "';",
        'before'
    );
});

Якщо enqueue не потрібен, той самий код можна вивести в підвал напряму:

add_action('wp_footer', function () { ?>
<script data-cfasync="false" data-no-optimize="1">
  window.CG_ACC = 'vash-akaunt';
  window.CG_CG_ENDPOINT = '<?= home_url('/cg/collect.php') ?>';
</script>
<script src="<?= home_url('/cg/cg-tracker.safe.js') ?>" async></script>
<?php }, 99);
  • Останній аргумент true ставить скрипт у підвал — сторінка його не чекає.
  • Версія null прибирає ?ver= з адреси: файл і так віддається з вашого домену.
  • home_url() сам підставить потрібний протокол і домен — на стейджингу нічого правити не доведеться.
  • У header.php і footer.php теми код не вставляйте: ці файли перезаписуються оновленням.

Плагіна SadalClik у каталозі WordPress поки немає. Обидва шляхи вище — штатні засоби самого WordPress, нічого зайвого в базу не пишеться.

Підводні камені

Що на WordPress ламає лічильник

Сам код простий. Ламають його не ми і не WordPress, а шар оптимізації поверх нього: кеш, мінімізація, склеювання файлів і відкладений запуск JavaScript. Симптом завжди один — візитів стало помітно менше або вони зникли з частини пристроїв.

Що стоїтьЩо робитьЩо зробити
WP RocketMinify/Combine JavaScript склеює файли й рве порядок; Delay JavaScript execution відкладає запуск до дотику до екрана.Додайте cg-tracker.safe.js у Excluded JavaScript Files і у винятки відкладеного запуску.
LiteSpeed CacheJS Combine і Load JS Deferred міняють момент виконання; Localize Resources копіює зовнішні файли до себе.Впишіть /cg/ у JS Excludes і в Localization Excludes.
AutoptimizeAggregate JS-files збирає все в один файл і часто виносить його вище налаштувань.Поле Exclude scripts from Autoptimize: cg-tracker.
Cloudflare Rocket LoaderПереносить виконання всіх скриптів на потім і міняє їх порядок. Найчастіша причина «тег стоїть, візитів немає».Атрибут data-cfasync="false" на тезі або вимкнений Rocket Loader для домену.
Плагіни «defer all JS»Вішають defer на все підряд, включно з інлайн-налаштуваннями — лічильник стартує раніше, ніж дізнається акаунт.Виняток за іменем файла або атрибут data-no-defer="1".

Типова картина: після вмикання кешу цифра візитів впала втричі, а частка рекламних візитів підскочила. Це не детектор помилився — це частина сторінок віддається з кешу зі склеєним скриптом.

Кеш чиститься після кожної правки: спершу плагін, потім Cloudflare. Інакше ви перевіряєте вчорашню сторінку й робите висновки по ній.

Перевірка

П’ять хвилин, і зрозуміло — працює чи ні

  1. Відкрийте сайт у режимі інкогніто

    Адреса з міткою: https://vash-sajt.com/?gclid=test123. Так візит потрапить у рекламні й буде видно в журналі окремим рядком.

  2. Дивіться вкладку Network

    F12 → Network → фільтр collect. Має бути запит на /cg/collect.php зі статусом 200. Порожньо — скрипт не запустився, шукайте його в оптимізаторі. Статус 403 або 404 — тека лежить не там.

  3. Перевірте вихідний код сторінки

    Ctrl+U і пошук по cg-tracker. Для шляху A поруч має бути gtm.js, для шляху B — ваш власний тег у підвалі.

  4. Загляньте в журнал панелі

    Рядок візиту з’являється майже одразу. Оцінка й причини дописуються протягом десяти хвилин — детектор проходить по свіжих візитах з таким інтервалом.

Тестові візити з gclid рахуються рекламними і витрачають ліміт тарифу. На «Детекторі» це до 10 000 візитів на місяць — на перевірку вистачить із запасом, але ганяти сотні перезавантажень сенсу немає.

Питання по WordPress

Оновлення WordPress або теми знесе встановлення?
Ні, якщо тека /cg/ у корені, а код — у дочірній темі або в GTM. Оновлення чіпає wp-admin, wp-includes і теку батьківської теми. Усе інше лишається на місці.
У мене немає FTP, лише адмінка WordPress.
Файловий менеджер хостингу підійде так само. Через адмінку WordPress завантажити теку з PHP не можна: медіатека кладе файли в uploads, а там виконання PHP зазвичай заборонене.
Сайт на WooCommerce з великим каталогом — не сповільнить?
Лічильник важить менше 20 КБ і вантажиться асинхронно. Запис поведінки вмикається лише для візитів з реклами, звичайному покупцю він не віддається взагалі.
А як бути зі згодою на cookie?
Скрипт можна викликати з GTM за тригером після згоди. Поля форм, паролі та платіжні дані вирізаються ще в браузері, до відправлення.
У мене не WordPress, а Tilda чи інший конструктор.
Там PHP залити нікуди, тому схема з /cg/ на вашому домені не підходить. Напишіть у @sadalclik_bot — підберемо варіант під конкретну платформу.

Інші способи встановлення Усі питання

Подивіться на свій трафік

Акаунт створюється безкоштовно, без картки — платна підписка сама не вмикається. Ми нічого не блокуємо, просто показуємо, хто до вас приходить.