AdWords сильно искажает количество кликов — на странице отслеживания третьих лиц пропущено 50% кликов

Я управляю аккаунтами AdWords для нескольких клиентов. Я использую собственную настраиваемую ссылку отслеживания, которую я помещаю в поле URL назначения AdWords для объявлений моего клиента (пример: http://www.mywebsite.com/track.php?id=1234567890 ).

Эта ссылка ведет на простую страницу PHP, которая записывает IP-адрес, помещает файл cookie на удаленный компьютер и сохраняет все в базе данных mysql. Затем он перенаправляет пользователя на целевую страницу клиента.

Проблема в том, что AdWords сообщит о 10 кликах, но моя страница отслеживания PHP сообщает только 5. Почему на моей странице отслеживания пропущено так много кликов?

-За последние 30 дней мое время простоя составило 100%.

-На моем сервере включены отчеты об ошибках. Ошибки не зарегистрированы.

-Мой код:

<?php

//determine which client/campaign this belongs to by reading get id from URL
if (isset($_GET['id'])) {
$tracker_id = $_GET['id'];
} else {
exit('Sorry, that ID is invalid.');
}

//if referrer is same page we just forwarded to, prevent rest of code from running to prevent redirect loop:
if (isset($_SERVER['HTTP_REFERER'])) {
if ($_SERVER['HTTP_REFERER'] == 'http://www.clientshomepage.com') {
//stop running script and send user back to where they originally came from:
echo '<script type="text/javascript">window.history.go(-1);</script>';
exit();
}
}

//check to see if remote machine already has cookie set:
if (!isset($_COOKIE[$tracker_id])) {
//create tracking id:
$cookie_id = mt_rand(100000000, 999999999);
//insert unique ID into cookie and place on remote machine:
setcookie($tracker_id, $cookie_id, time() + (86400 * 365), "/");
} else {
$cookie_id = $_COOKIE[$tracker_id];
}

//log the IP address of the person clicking:
if (isset($_SERVER['REMOTE_ADDR'])) {
$remote_addr = $_SERVER['REMOTE_ADDR'];
} else {
$remote_addr = '';
}

//include pdo/mysql credentials file:
require('pdo.php');

//insert collected data about this click into the database:
try {$sql = "INSERT INTO mytable_name (tracker_id, cookie_id, remote_addr, click_time)
VALUES (:tracker_id, :cookie_id, INET_ATON(:remote_addr), :click_time)";

$stmt = $pdo->prepare($sql);

$stmt->execute(
array(
':tracker_id'               => $tracker_id,
':cookie_id'                => $cookie_id,
':remote_addr'              => $remote_addr,
':click_time'               => time()
)
);

$stmt = null;

} catch (PDOException $err) {
exit('Error Number: ' . $err->getCode() . '<br>' . 'Sorry, there was a database error. Please notify technical support.');
}

//forward user to landing page:
echo '<script>window.location = "http://www.clientslandingpage.com"</script>';//in case redirect fails due to disabled javascript, redirect user old school style:
echo '<meta http-equiv="refresh" content="3;url=http://www.clientslandingpage.com"/>';

?>

2

Решение

Страница, которая вставляется в БД, может кэшироваться. Таким образом, мета-редирект на adwords работает, потому что браузер кеширует его, но ваш сервер не поражен, поэтому он не может быть сохранен в БД. Вы можете попробовать добавить некоторые заголовки без кэширования, такие как:

header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
header("Pragma: no-cache");

(Это предполагает, что вам не хватает нескольких кликов от одного пользователя.)

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]