Зачем? В настоящее время я покупаю трафик из Adwords на свой сайт электронной коммерции. В Adwords я вижу, сколько посещения Я купил и пытаюсь проверить количество посещений моего сайта, анализируя access_log Apache.
Обратите внимание, что у меня установлена Mixpanel, и она сообщает намного меньшее число.
Итак, я попытался установить Apache mod_unique_id
. Я добавил его в свой access_log и попытался посетить первую страницу своего сайта (страницу WordPress). Это журнал:
W2P5AswfRANRW1uZBgVINAAAAAA 50.74.231.163 - - [03/Aug/2018:06:41:06 +0000] "GET / HTTP/1.1" 200 15571
W2P5A8wfRANRW1uZBgVINQAAAAE 50.74.231.163 - - [03/Aug/2018:06:41:07 +0000] "GET /wp-content/plugins/LayerSlider/static/layerslider/css/layerslider.css?ver=6.7.1 HTTP/1.1" 200 3876
W2P5A8wfRANRW1uZBgVINgAAAAM 50.74.231.163 - - [03/Aug/2018:06:41:07 +0000] "GET /wp-content/plugins/contact-form-7/includes/css/styles.css?ver=5.0.1 HTTP/1.1" 200 656
W2P5A8wfRANRW1uZBgVINwAAADw 50.74.231.163 - - [03/Aug/2018:06:41:07 +0000] "GET /wp-content/themes/themextend/css/magnific-popup.css?ver=4.9.5 HTTP/1.1" 200 1816
W2P5A8wfRANRW1uZBgVIOAAAADI 50.74.231.163 - - [03/Aug/2018:06:41:07 +0000] "GET /wp-content/themes/themextend/css/animate.css?ver=4.9.5 HTTP/1.1" 200 4348
W2P5A8wfRANRW1uZBgVIOQAAACY 50.74.231.163 - - [03/Aug/2018:06:41:07 +0000] "GET /wp-content/themes/themextend/css/theme-style.css?ver=4.9.5 HTTP/1.1" 200 3035
W2P5A8wfRANRW1uZBgVIOgAAABI 50.74.231.163 - - [03/Aug/2018:06:41:07 +0000] "GET /wp-content/themes/themextend/style.css?ver=4.9.5 HTTP/1.1" 200 2136
W2P5A8wfRANRW1uZBgVIOwAAACQ 50.74.231.163 - - [03/Aug/2018:06:41:07 +0000] "GET /wp-content/plugins/kingcomposer/includes/frontend/vendors/owl-carousel/owl.theme.css?ver=2.6.17 HTTP/1.1" 200 658
W2P5BMwfRANRW1uZBgVIPAAAADE 50.74.231.163 - - [03/Aug/2018:06:41:08 +0000] "GET /wp-content/plugins/kingcomposer/includes/frontend/vendors/owl-carousel/owl.carousel.css?ver=2.6.17 HTTP/1.1" 200 528
W2P5BMwfRANRW1uZBgVIPQAAACU 50.74.231.163 - - [03/Aug/2018:06:41:08 +0000] "GET /wp-content/themes/themextend/css/slick.css?ver=4.9.5 HTTP/1.1" 200 557
W2P5BMwfRANRW1uZBgVIPgAAAC0 50.74.231.163 - - [03/Aug/2018:06:41:08 +0000] "GET /wp-content/themes/themextend/css/owl.carousel.min.css?ver=4.9.5 HTTP/1.1" 200 912
W2P5BJARzZ5ERwnzv6rD5gAAAIs 50.74.231.163 - - [03/Aug/2018:06:41:08 +0000] "GET /wp-content/themes/themextend/css/meanmenu.min.css?ver=4.9.5 HTTP/1.1" 200 682
W2P5BNIyikkB8rhsjsyUkQAAAMw 50.74.231.163 - - [03/Aug/2018:06:41:08 +0000] "GET /wp-content/themes/themextend/css/theme-default.css?ver=4.9.5 HTTP/1.1" 200 2643
W2P5BISOELTKgpmuElDYuQAAAEI 50.74.231.163 - - [03/Aug/2018:06:41:08 +0000] "GET /wp-content/themes/themextend/css/blog-post.css?ver=4.9.5 HTTP/1.1" 200 4773
Как вы видете:
Как я могу настроить Apache, чтобы я мог подсчитывать каждый посещение на мой сайт правильно?
С отслеживанием на стороне клиента, файлами cookie и т. Д. Помните, что большинство адресов IPv4 находятся за NAT, поэтому на один адрес может быть несколько пользователей.
Одна из реализаций httpd: mod_usertrack.
Если вы используете Google, вы можете получить Аналитика вместе с вашей рекламой.
Ниже приведен фрагмент кода PHP, который я написал, который устанавливает cookie со случайным значением, перезаписывая cookie, если он уже установлен. Вы можете добавить его в начало (или в конец) каждой страницы, которую вы хотите засчитать как отдельное посещение (это и дать ей .php
расширение).
<?php
/*
* generateRandomString() is used to generate the ID, taken from
* https://stackoverflow.com/questions/4356289/php-random-string-generator/4356295#4356295
*/
function generateRandomString($length = 10) {
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, $charactersLength - 1)];
}
return $randomString;
}
// Will generate an ID 12 characters long.
setcookie("visit", generateRandomString(12));
?>
Затем положите %{visit}C
в LogFormat
запись вместо идентификатора, который mod_unique_id
генерировал. Это работает путем установки файла cookie с идентификатором каждый раз, когда клиент посещает реальную страницу, и этот файл cookie будет отображаться в журнале вместо %{visit}C
при каждом посещении. Когда я писал этот ответ, я собирался использовать Переменная сеанса PHP вместо этого, но не мог найти способ включить это в файл журнала Apache.
Это более простое решение, которое я написал до создания сценария PHP и не хотел удалять. Это решение не отвечает на ваш вопрос так же точно, как другое, но вы (или кто-то еще, кто это читает) можете найти его полезным.
Вы можете записывать запросы ресурсов в другой журнал, чтобы в основном журнале отображались только посещения страниц (и роботы). Следующий код проверяет, содержит ли URL просто .css
или .jpg
(при необходимости добавьте или удалите собственные расширения) в разделе VirtualHost конфигурации вашего сайта:
SetEnvIf Request_URI /.css/ assets
SetEnvIf Request_URI /.jpg/ assets
Для записи «посещений» добавьте env=!assets
на ваш CustomLog
запись: CustomLog /path/to/visit/log <logformat identifier> env=!assets
Для записи активов, как указано в списке: CustomLog /path/to/asset/log <logformat identifier> env=assets