Главная · Установка · 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 — подберём вариант под конкретную платформу.

Другие способы установки Все вопросы

Посмотрите на свой трафик

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