Contar visitas con variable?

LzO

Mis conocimientos se limitan mucho, pero voy a comprar trafico para mi web y claro, el trafico lo compro en "trafficholder" y a menos que elijas tu de que web quieres que te lleguen, el trafico te lo envian de cualquier webs que esté en su "red" de trafico, de cualquier vendedor.

Si elijo trafico español, me llegaran visitas españolas de vete tu a saber cuantas webs que vendan trafico en "trafficholder"

Por lo tanto, he visto webs que usan un metodo para contar visitas a "una variable", no se si se dice asi.

Por ejemplo:

www.pagina.com/?track=loquesea

Entonces todas las visitas enviadas a esa direccion, se contabilizaran, asi uno puede llevar un control de si te timan o no, a la hora de comprar trafico.

Pues eso, a ver si alguien amable me dice como hacerlo, cual es el codigo php y si hay que hacer alguna llamada a la bd o algo, es que buscando en google no encuentro nada porque no se como buscarlo.

gracias

LzO

Soltrac, Neb1, yo os invoco.

fijo que alguno sabeis.

dagavi

Sin saber si es eficiente ni nada, puedes tener una tabla en la BD con loas diferentes URLS del track=X, y si cada vez que entren actualizar

if (definido track) {
if (existe bd[track]) ++bd[track]
else bd.añadir(track);
}

Supongo que por cojones tendrás que tirar de BD porque necesitas persistencia.

1 respuesta
NeB1

#1 PHP? No he entendido mucho el sistema, que ventaja te da el hecho de que te lleguen a esa dirección.

Bueno, suponiendo que te refieres a lo que dice #3 y que tienes una base de datos o algo similar:

http://www.pagina.com/?track=loquesea

<?php
if(!empty($_GET['track']))
{
    // Si nos pasan la variable track hacemos consulta a la BBDD
    // doy por hecho que ya hay una conexión a la misma
    $query = mysql_query("SELECT `id`,`visitas` 
						  FROM `trackers` 
						  WHERE `track`='".mysql_real_escape_string($_GET['track'])."'");
    if($query)
	{
		// Si el dato pasado existe en la base de datos
		if( mysql_num_rows($query) > 0)
		{
			  // No se que querrías hacer en caso de que ya exista
			  // haré como que sumas 1 al número de visitas a ese tracker
			  $res = mysql_fetch_array($query);
			  $query = mysql_query("UPDATE `trackers` 
									SET `visitas`='".($res['visitas'] + 1)"' 
									WHERE `id`='".$res['id']."'");
		}
		else
		{
			   // Tampoco tengo muy claro que querrás hacer si el tracker no
			   // lo tienes agregado a la DB, en este caso lo insertaremos con 0 visitas
			  $query = mysql_query("INSERT INTO `trackers` (`tracker`,`visitas`) 
									VALUES ('".mysql_real_escape_string($_GET['track'])."','0')");
		}
	}
   
} ?>
1 respuesta
LzO

#4 "que ventaja te da el hecho de que te lleguen a esa dirección"

Pues saber diferenciar las visitas que me llegan de manera normal, ya sea desde google, trafico directo, o de otras webs... de las visitas provenientes del trafico que he comprado.

Así a la hora de comprar trafico, en vez de decirles que me lo envien a www.miweb.com les digo que lo envien a www.miweb.com/?track=loquesea para poder llevar un control del mismo

Imagino que ahora te queda mas claro, voy a probar lo que decis, gracias

1 respuesta
NeB1

#5 aaahhhh ok ok ^^ pues sí, tal como te lo he puesto debería funcionar

2 respuestas
Zeroner

Lo que te recomiendo si vas a llevar cualquier tipo de contador es usar REDIS (http://redis.io/), para contadores atómicos es lo ideal.

LzO

#6 Y el codigo ese debo ponerlo, dentro del head? xD

1 respuesta
DarkSoldier

yo crearia un fichero nuevo, algo asi:

visitas.php?dedonde=xxx.es

ahi comprobaria de donde viene (quizas comprobaria la IP o algo asi, mas k nada para asegurarte los F5 xD) actualizaria la base de datos y lo llevaria al index.php

catalon

#8 ese codigo lo metes al principio de php.

El problema con lo que te han puesto, es que tendras un contador unico por todos los referers. Un cliente me pidio algo similar pero lo que el queria era ademas de contar el trafico saber de donde venian, para asi en el futuro comprar el trafico directamente a la web que mejor resultados le daba en lugar de a un intermediario.

Si quieres saber la url del que te envia al trafico seria algo asi:

if(isset($HTTP_REFERER)){
 
if(!eregi($HTTP_HOST, $HTTP_REFERER)){
 
    //Aqui miras si existe el referer, si existe haces un update de su contador. Si no existe haces un insert con el referer y el contador lo metes a 1.
 
}
 
}
LzO

Así también valdría no?

<?php
if(!empty($_GET['ref'])){
      $archivo = fopen("visitas.txt", "a+");
      fwrite($archivo, 'FECHA: '.date('d/m/Y H:i:s').' Desde: '.$_GET['ref']."\n \r");
      fclose($archivo);
      Header('Location: http://www.miweb.com');
} else {
      Header('Location: http://www.miweb.com');
}
?>
2 respuestas
catalon

#11 vas a hacer que cada referer te envie por get quien es? no se si eso va asi e... miratelo bien pk normalmente contratas trafico a un link (www.tuweb.com) y los distintos referers linkan automaticamente a ese link, pero me da la sensacion que crees que cada referer metera quien es por get a mano? no se, a lo mejor me equivoco.

Si lo quieres por archivo entonces supongo que esta bien ese codigo pero ten en cuanta que realmente no tienes ningun contador ahi.... a menos que pretendas contarlo a mano luego, o hacer un codigo que te devuelva el numero de lineas del archivo o algo, no se... Te recomiendo muy mucho que te dejes de archivos y uses base de datos. con que tengas un archivo sqlite te vale, no hace falta ni que tengas servidor mysql ni nada...

2 respuestas
DarkSoldier

en la global $_SERVER hay una variable que indica de donde vienen, quizas te pueda ayudar, y coincido con #12, usa base de datos

1 respuesta
PiradoIV

Yep, $_SERVER es mucho mejor para eso.

Usar una variable está más bien pensado para saber qué botón se ha pulsado en una página (diseño de interfaces), donde hay varios botones que van al mismo sitio y quieres saber cuál utiliza más la gente.

1 respuesta
Soltrac

<?php
echo $_SERVER['HTTP_REFERER'];
?>

1 respuesta
LzO

#6 #12 #13 #14 #15

Al parecer google analytics tiene esta función... de como trackear campañas.

Gracias igual a todos.

1 respuesta
dagavi

#11 Desde mi inexperiencia en PHP, ¿que ocurre con la concurrencia en ese código?

¿Puede ser que entren dos personas, hagan Open y al escribir uno machaque el resultado del otro? (a.k.a. doble actualización)

1 respuesta
NeB1

#17 toda la razon del mundo no tngo muy claro si se machacaria o si daria error al intentar abrir mas de un descriptor en modo escritura.

catalon

#16 Desde mi experiencia google analytics nunca es una buena solucion, a menos que busques la via rapida o no sepas como hacerlo de la manera apropiada. De entrada te digo que el solo hecho de incluir analytics en una pagina ara que esta se cargue unos 2-5segundos mas lenta... parece una tonteria pero se pierden muchos visitantes en esos primeros segundos de tiempo.

De todos modos si vas a usarlo asegurate de meterlo al final de la pagina... e visto cada barbaridad por ahi....

LzO

he encontrado un script muy bueno, es gratis y tiene su panel.

se llama Campaign Analyzer

http://www.eastwright.com/internet/ca/index.html

es un script en perl sino me equivoco, archivo .pm y .cgi y uno .dat tube que subirlos en ascii y binario

y na está muy bien, la variable es ?source= y luego da igual lo que pongas despues, aqui pongo screen de 2 pruebas que hice, con palabra th y test

http://i56.tinypic.com/2czaiyu.jpg

y por ejemplo pinchando en test, te dice el ref (en th no dice ref porque fue directa la visita)

http://i54.tinypic.com/2gtp5w1.jpg

Usuarios habituales

  • LzO
  • catalon
  • NeB1
  • dagavi
  • Soltrac
  • DarkSoldier
  • Zeroner