Как подсчитать показы баннеров и клики



У нас есть небольшой php скрипт, который отображает случайные объявления на нашем сайте . Баннеры подаются из любого места, которое мы обозначим.



Что я действительно хотел бы знать или быть направленным в правильном направлении, так это можем ли мы каким-то образом сопоставить количество показов каждого баннера и, возможно, количество кликов на этом баннере.



Я уверен, что это можно сделать на php и сохранить в БД. Просто у меня нет ключа к разгадке. Я искал в Google, и, похоже, все, что я мог найти, восходит к 2002 и 2003 лол.



Вот наш сценарий:



<?php
$Img1 = "path to image folder/banner.png";
$Alt1 = "alt text for banner";
$Url1 = "http://www.externaldomain.com";

$Img2 ="path to image folder/banner.png";
$Alt2 = "alt text for banner";
$Url2 = "http://www.externaldomain.com";

$Img3 ="path to image folder/banner.png";
$Alt3 = "alt text for banner";
$Url3 = "http://www.externaldomain.com";

$Img4 ="path to image folder/banner.png";
$Alt4 = "alt text for banner";
$Url4 = "http://www.externaldomain.com";

$Img5 ="path to image folder/banner.png";
$Alt5 = "alt text for banner";
$Url5 = "http://www.externaldomain.com";

$num = rand (1,5);

$Image = ${'Img'.$num};
$Alt = ${'Alt' .$num};
$URL = ${'Url'.$num};

Print "<a href="".$URL.""><img src="".$Image."" alt="".$Alt."" /</a>"; ?>


Чтобы инициировать приведенный выше код (мы запускаем запрос include)



<?php include ("../adserver/thescriptabove.php"); ?>


Любая помощь ценится

506   4  

4 ответов:

Я вижу, что вы уже выбрали ответ, поэтому я не уверен, что вы все поняли, но я написал для вас небольшой учебник. Наконец-то это сделано, надеюсь, это все еще поможет вам.

Ваш метод, кажется, отлично работает для обслуживания баннеров, но если вы собираетесь войти в базы данных и отслеживать клики/показы, я бы предложил вам пойти ва-банк. Так что храните свои свойства баннеров в базе данных, а также. Я собираюсь забежать вперед и предположить, что ваш сервер/веб-хост позволяет для нескольких бесплатных баз данных MySql.

Что вам нужно сделать, так это создать базу данных, а также пользователя/администратора для базы данных. Затем вы получите доступ к базе данных с помощью менеджера MySql, большинство веб-хостов предоставляют phpMyAdmin. Как только вы окажетесь внутри базы данных, вам нужно настроить table для записи ваших данных.

Вот как я хочу, чтобы вы его настроили:

|Table Name: Banners      |
|-------------------------|
|Field:    | Type:        |
|-------------------------|
|ID        | int(5)       | The Primary Key and Autoincrement attributes should be set on the ID field as well
|Image     | varchar(100) |
|Url       | varchar(100) |
|Caption   | varchar(100) |
|Views     | int(10)      |
|Clicks    | int(10)      |

Теперь, когда вы закончили с базой данных, начинается самое сложное-PHP. Я в значительной степени сделал это для вас, но это непроверено, так что Я уверен, что там будут жучки, с которыми вам придется поработать. Но это должно указать вам правильное направление и помочь вам учиться.

<?PHP

// First of all, we need to connect to the MySql server
// For more info, check out: http://php.net/manual/en/function.mysql-select-db.php
$conn = mysql_connect("localhost", "username", "password");
if(!$conn){
    die('Could not connect to the MySql Server ' . mysql_error());
}

// Now that we've connected to the MySql sever, we need to select the database
// More info can be found on the same link as above
$db_selected = mysql_select_db('my_database', $conn);
if(!$db_selected) {
    die ('Could not select the MySql Database: ' . mysql_error());
}

// Now we need to check the URL parameters to see, if we came to this page normally or because a banner was clicked
// If normally, we serve a random banner and increment the Views field in the database
// Otherwise, we increment the Clicks field and direct the user to the banner's URL


if(!isset($_GET['Clicked'])){
    // if the Clicked parameter is not set, we came to the page normally

    // Let's select a random banner from the database
    $result = mysql_query("SELECT * FROM banners ORDER BY RAND() LIMIT 1") or die(mysql_error());
    $row = mysql_fetch_array(result);   

    // Now let's increment the Views field for the banner we selected
    mysql_query("UPDATE banners SET Views = Views + 1 WHERE ID = '" . $row['ID'] . "'") or die(mysql_error());

    // let's set the URL to this same page but with the Clicked parameter set
    $url = "banner_server.php?Clicked=" . $row['ID'];

    // Last but not least, we have to output the banner HTML
    // Notice, I set the caption on both the 'alt' and 'title' attributes of the 'img' tag,
    // that's because IE shows the value of the 'alt' tag when an image is hovered,
    // whereas Firefox shows the value of the 'title' tag, just thought you might want that!
    echo "<a href=\"" . $url . "\"><img src=\"" . $row['Image'] . "\" alt=\"" . $row['Caption'] . "\" title=\"" . $row['Caption'] . "\" /></a>";

}else{
    // Otherwise, increment the Clicks field and redirect

    // First, let's get the ID of the banner that was clicked from the Clicked parameter
    $id = (int)$_GET['Clicked'];

    // now let's increment the Clicks field for the banner
    mysql_query("UPDATE banners SET Clicks = Clicks + 1 WHERE ID = '" . $id . "'") or die(mysql_error());

    // now let's select the banner from the database so we can redirect to the URL that's associated with it
    $result = mysql_query("SELECT * FROM banners WHERE ID = '" . $id . "'") or die(mysql_error());
    $row = mysql_fetch_array(result);

    // redirect to the URL
    header("location: " . $row['Url']);
}


// Close the MySql connection
mysql_close($conn);

?>

Удачи

Почему бы вам просто не позволить google analytics сделать это за вас? Запустить событие, когда ссылка нажата, и позволить google захватить его?

onclick="_gaq.push(['_trackEvent', 'Event Name', 'click', 'Button title/name']);"

Вы можете хранить $num в базе данных довольно легко, чтобы получить количество показов. Клики требуют действий на стороне клиента. Самый простой способ-вызвать функцию javascript, которая считается, когда баннер нажат через AJAX:

print "<a href=\"".$URL."\" onclick=\"countClick($num);\"><img src=\"".$Image."\" alt=\"".$Alt."\" /</a>";

Затем попросите вашу функцию javascript (countClick()) выполнить AJAX, который сообщит серверу, что баннер был нажат.

Другой способ состоит в том, чтобы иметь страницу passthru: mysite.com/linkout.php?q=www.google.com, а затем иметь linkout.php подсчитывать эту ссылку и обновлять базу данных, а затем перенаправлять их к переменной, переданной в URL.

Вот мои 2 цента, если у вас есть аналитика на нашем сайте:

Используйте следующий код при выводе ссылки:

<a class="ad" href="http://thecatisginger.com/" target="_blank" onclick="ga('send', 'event', 'Block-3-Ads', 'Click', 'The-Cat-Is-Ginger-Ad');"><img src="http://citybymouth.com/wp-content/uploads/2015/02/TCIG-Advert.jpg" onload="ga('send', 'event', 'Block-3-Ads', 'Impression', 'The-Cat-Is-Ginger-Ad', {'nonInteraction': 1});" /></a>

Пояснить:

<a class="ad" href="http://thecatisginger.com/" target="_blank"
Классическая ссылка ссылка href с классом 'ad', ссылки на сайт, цель открывается в новой вкладке. Легко.
onclick="ga('send', 'event', 'Block-3-Ads', 'Click', 'The-Cat-Is-Ginger-Ad');">

Это новая аналитика.js 'google event tracking, код события onclick, который обычно говорит:" Эй, вы нажали на эту ссылку, поэтому "отправьте" это "событие" в мои аналитические "события" (которые можно проверить в разделе " Realtime > События "или" поведение > события"). "Block-3-Ads" - это область на моем сайте, которую я лично знаю как область, в которой я размещаю объявления, в частности, это правая боковая панель, но это может быть все, что вы хотите, поэтому сделайте свою широкую категорию типа вещи, как коробка, внутри которой вы будете иметь различные ссылки, которые вы хотите отслеживать. "Щелчок" - это просто тип события, которое вы хотите отслеживать, может быть что угодно. "The-Cat-Is-Ginger-Ad" - это конкретное объявление, которое я хочу отслеживать и получать информацию о нем.

<img src="http://citybymouth.com/wp-content/uploads/2015/02/TCIG-Advert.jpg" 

Тогда вы есть img с src. Легко.

onload="ga('send', 'event', 'Block-3-Ads', 'Impression', 'The-Cat-Is-Ginger-Ad', {'nonInteraction': 1});" />

, то есть события onload событие, которое возникает, когда изображение загружается, он говорит, 'отправить' это 'событие', классифицировать его как 'Блок-3-рекламные мероприятия, в основном изображения загрузка расценено как "впечатление", прежде чем он был клик, но не с этой маленькой 'события onload' вызывают, когда он загружает, ее не нажать, но нагрузка / впечатление, и опять же, конкретно, объявление загружен '-кошка-это-имбирь-ад', и, наконец, проходить 'отсутствие связи параметров как 1, который просто говорит google, что вы отслеживаете событие без взаимодействия.

Это довольно само собой разумеющееся,хотя я, возможно, набрал слишком много.

Предупреждение: это не идеально, так как страница может загружаться, и объявление может быть ниже окна просмотра, вне поля зрения пользователя, и все равно получить впечатление, которое не является точным, поэтому далее я буду работать над запуском кода впечатления только один раз, когда пользователь фактически прокручивает само объявление и просматривает его, вместо того, чтобы запускать его каждый раз, когда страница загружается. загружает это изображение.

Comments

    Ничего не найдено.