Cómo contar clicks correctamente y almacenarlos en MySQL

Con este simple script es posible contar y traquear (código de país e IP) clicks de tus visitantes que han pinchado uno de tus links patrocinados o algún banner de publicidad, por ejemplo. Este script puede utilizarse tanto si ya cuentas con una base de datos de enlaces, o si has realizado modificaciones, con un array de enlaes. Utilizo la base de datos de IP2nation para obtener el código de país de los visitantes y almacenarlo junto con la demás información. También uso la variable de servidor HTTP_REFERER para almacenar la URL (donde haya hecho click el usuario), junto con la otra información. También puedes utilizar este script para cubrir links de afiliados.

Utiliza estas sentencias SQL dentro de tu cliente MySQL.

CREATE TABLE `links` (
  `id` int(11) NOT NULL auto_increment,
  `titel` varchar(75) NOT NULL default '',
  `naam` varchar(35) NOT NULL default '',
  `url` varchar(150) NOT NULL default '',
  `description` text NOT NULL,
  PRIMARY KEY  (`id`)
) TYPE=MyISAM;

CREATE TABLE `clicks` (
  `id` int(10) NOT NULL auto_increment,
  `link_id` int(10) NOT NULL default '0',
  `visitor_ip` varchar(15) NOT NULL default '',
  `click_at` datetime NOT NULL default '0000-00-00 00:00:00',
  `country` char(2) NOT NULL default '',
  `on_page` varchar(50) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM;

Introduce de la misma manera los datos de las tablas de ip2nation.

PHP

Crea un fichero PHP, y pega este código dentro de las etiquetas de PHP.

// place here your database connection code

if (isset($_GET['id']) && intval($_GET['id']) > 0) {
    $delay = 12*3600; // change here the number of hours how often a unique click must be counted
    $sql_check = sprintf("SELECT COUNT(*) AS test FROM clicks WHERE link_id = %d AND visitor_ip = '%s' AND UNIX_TIMESTAMP(click_at) + %d > UNIX_TIMESTAMP(NOW())", $_GET['id'], $_SERVER['REMOTE_ADDR'], $delay);
    if (mysql_result(mysql_query($sql_check), 0, "test") == 0) {
        $country_sql = "SELECT country FROM ip2nation WHERE ip < INET_ATON('".$_SERVER['REMOTE_ADDR']."') ORDER BY ip DESC LIMIT 0,1";
        $country = mysql_result(mysql_query($country_sql), 0, "country");
        $sql_insert = sprintf("INSERT INTO clicks (link_id, visitor_ip, click_at, country, on_page) VALUES (%d, '%s', NOW(), '%s', '%s')", $_GET['id'], $_SERVER['REMOTE_ADDR'], $country, $_SERVER['HTTP_REFERER']);
        mysql_query($sql_insert);
    }
    $sql_url = sprintf("SELECT url FROM link_table WHERE id = %d", $_GET['id']);
    $url = mysql_result(mysql_query($sql_url), 0, "url");
    header("Location: ".$url);
    exit;
} else {
    header("Location: http://www.yourwebsite.com/");
    exit;
}

Cómo utilizar el script en tu sitio web

El script de arriba, sería el link target. Los enlaces que quieras contabilizar y traquear, debes crearlos de este modo:

<a href="http:domain.com/myclickscript.php?id=34">Click this link please</a>

Fuente: finalwebsites.com

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP