Rudy Hartadi Webs beta » Tutorial » PHP/MySQL » Cari Tahu Asal Visitor Menggunakan Referer

Download

Visitor Tracker

Total Hits: 90704
Online: 5
Today: 78
Month: 613
Unique: 24946
 
readbud - get paid to read and rate articles

Cari Tahu Asal Visitor Menggunakan Referer

Ditulis pada Kamis, 26 Maret 2009 23:00:10 | Dibaca sebanyak : 859 kali

Mau tahu dari mana pengunjung situsmu berasal? Apakah dari search engine? Dari blog temen? Atau dari forum-forum yang kau ikuti? Semuanya dapat kita cari tahu melalui variabel HTTP_REFERER. Melalui http_referer, kita juga bisa mengetahui query-query search engine apa saja yang menghasilkan kunjungan ke situs kita. Apa manfaat mengetahui asal visitor ini? Banyak sekali. Salah satunya adalah mengetahui, apakah pengunjung kita sudah menemukan apa yang mereka cari, situs kita unggul pada keyword-keyword apa saja, dan tentu saja untuk mengetahui apakah situs kita sudah dapat ditemukan melalui search engine, dan kalau bisa, pada urutan ke berapa.

Sudah cukup banyak website yang menyediakan fasilitas visitor tracking ini. Contohnya: google analytics, histats.com, dan kebanyakan web hosting, baik itu gratisan maupun yang komersial, sudah memasukkan fasilitas untuk tracking semacam ini sebagai salah satu servis mereka. Namun, pada kesempatan kali ini, kita tidak akan membahas tentang penggunaan fasilitas instan tersebut. Sebagai seorang programmer (lebih tepatnya programmer gadungan, hhe), aku akan berbagi sedikit trik untuk membuat referer tracking sederhana menggunakan php dan mysql. Tentu saja artikel ini ditujukan buat kamu yang lebih sreg pakai produk buatan sendiri, layaknya lebih sreg memakai produk buatan Indonesia daripada produk import. Hasyah,

Berikut fungsi sederhana untuk mencatat referer menggunakan php ke dalam database mysql. Fungsi ini saat ini juga kupakai untuk mencatat asal visitor web ini. Yah, sebenarnya udah dimodif dikit sih, biar lebih sederhana. Kalau kamu masih merasa kurang, n pengen ngembangin lagi, silakan atuh.

<?php
function getReferer(){
	//ganti dengan url web kamu
	$url_website="http://rudyhartadi.web.id";

	//variabel untuk mencatat referer
	$referer=$_SERVER['HTTP_REFERER'];

	//cek referer. bila berasal dari web kita, localhost, atau direct access, maka tidak dicatat
	if((!strpos($referer,$url_website,0))&&(!strpos($referer,"http://localhost",0))&&($referer!='')){
		//cek, apakah sudah ada dalam database
		$query=mysql_query("SELECT id FROM referer WHERE referer='$referer'");
		$is_exist=mysql_num_rows($query);

		//jika belum ada, simpan ke database
		if($is_exist==0){
			mysql_query("INSERT INTO `referer`(`referer`) VALUES('$referer')");
		}

		//cek apakah berasal dari google
		//bila iya, kembalikan keyword yang digunakan
		//bila tidak, fungsi preg_match akan menghasilkan nilai false
		preg_match("'^http://www\.google\..*/.*[?|&](?>as_q|q)=(\S[^&]*)'si", $referer, $hasil);
		return urldecode($hasil[1]);
	}
	//bila berasal dari web kita, localhost, atau direct access, kembalikan nilai false
	return false;
}
?>

Sebelumnya, aku harap kamu udah tahu sedikit tentang php & mysql. Karena aku tidak bisa (lebih tepatnya sih, malas, hhe) menjelaskan fungsi getReferer() di atas secara terperinci. Untuk mengetahui cara kerjanya, silakan dibaca di bagian komentarnya. Apabila pengunjung kita datang dari hasil pencarian google, maka fungsi getReferer() akan mengembalikan "query string (keyword)" yang digunakan. Bagaimana untuk search engine yang lain? Yah, silakan berkreasi sendiri. Gampang kok, kan tinggal ubah Regular Expression yang ada di dalam fungsi preg_match() doang?! Hehe.

Oh iya, untuk membuat table dalam database mysql yang akan digunakan untuk menyimpan data referernya, dapat menggunakan struktur table berikut ini:

DROP TABLE IF EXISTS `referer`;
CREATE TABLE IF NOT EXISTS `referer`(
  `id` smallint(5) unsigned NOT NULL auto_increment,
  `referer` text NOT NULL,
  PRIMARY KEY (`id`)
)ENGINE=MyISAM  DEFAULT CHARSET=utf8;

Contoh penggunaan:

<?php
$is_google=getReferer();
echo $is_google?"Kamu berasal dari google dengan keyword: '$is_google'":"Kamu tidak datang dari google";
?>

Kalau masih bingung bagaimana cara pakainya, berikut contoh full scriptnya.

<?php
mysql_connect($server,$username,$password);
mysql_select_db($database);

function getReferer(){
	$url_website="http://rudyhartadi.web.id";
	$referer=$_SERVER['HTTP_REFERER'];
	if((!strpos($referer,$url_website,0))&&(!strpos($referer,"localhost",7))&&($referer!='')){
		$query=mysql_query("SELECT id FROM referer WHERE referer='$referer'");
		$is_exist=mysql_num_rows($query);
		if($is_exist==0){
			mysql_query("INSERT INTO `referer`(`referer`) VALUES('$referer')");
		}
		preg_match("'^http://www\.google\..*/.*[?|&](?>as_q|q)=(\S[^&]*)'si", $referer, $hasil);
		return urldecode($hasil[1]);
	}
	return false;
}

$is_google=getReferer();
echo $is_google?"Kamu berasal dari google dengan keyword: '$is_google'":"Kamu tidak datang dari google";
?>

Catatan: dua baris awal script di atas merupakan fungsi untuk melakukan koneksi ke server mysql dan memilih database yang akan digunakan. Sekali lagi maaf, fungsi tersebut tidak dibahas dalam artikel ini. Sesuaikan variabel yang ada dalam kedua fungsi tersebut sesuai dengan setting servermu dan nama databasemu. Kalau belum tahu tentang cara mengoneksikan mysql dengan php, silakan googling aja ya, hhe.

Seperti apa sih hasil dari fungsi tersebut? Untuk tes, silakan ubah nilai variabel $referer menggunakan string berisi url, misal:

dari
$referer=$_SERVER['HTTP_REFERER'];
menjadi
$referer="http://www.google.com/search?gbv=2&hl=en&q=profil+orang+sukses&start=40&sa=N";

Penting gak sih, mencatat referer? Penting gak penting sih. Tapi gak ada salahnya kok, kalau kita menyimpannya. Sedikit mengulang manfaat yang telah disebutkan di atas. Suatu ketika, ada visitor yang mencari tentang 'profil orang sukses' menggunakan google. Dan ternyata setelah 4 kali menekan tombol next, akhirnya dia menemukan Rudy Hartadi Webs. Setelah mampir ke blog ini, apa yang terjadi? Tentu saja pengunjung itu mengalami kekecewaan. Karena emang aku gak pernah menulis artikel tentang 'profil orang sukses' kok.

Selidik punya selidik, ternyata penyebab blog ini tampil pada hasil pencarian 'profil orang sukses' adalah frasa 'orang-orang yang sukses' yang terdapat pada artikel Menjadi Orang Yang Kreatif, dan kata 'profil' pada artikel Memasukkan JavaScript ke Profile Friendster.

Dengan begitu, kita telah mengetahui, bahwa peringkat blog ini pada saat itu cukup tinggi untuk keyword profil orang sukses, yah walaupun masih urutan ke 40 ke atas sih, tapi mendinglah dibanding jumlah hasil pencarian yang mencapai ratusan, ribuan, bahkan jutaan. Karena peringkat blog kita cukup tinggi dan kita pasti tidak ingin mengecewakan pengunjung berikutnya yang mencari tentang profil orang sukses dan menemukan blog kita lagi, maka kita dapat menulis sebuah artikel tentang profil orang sukses ini. Dengan demikian, pengunjung berikutnya tidak akan kecewa lagi deh.

Yah, walaupun ini termasuk jurus SEO yang hebat, canggih, spektakuler, dan bombastis, halah lebay, namun jangan sampai blog kita kehilangan fokus/tema utamanya. Peringkat google serta trafik yang tinggi tidak sebanding dengan idealisme kita. Bagaimanapun juga, menjadi diri sendiri adalah hal yang terbaik. Nah lo, mulai gak nyambung tho?!

Gimana? Berminat mencoba? Kalau masih ada problem, jangan pernah ragu untuk berdiskusi ama aku. Bisa lewat komen, e-mail, gtalk, ym, friendster, facebook, myspace, orkut, sms, telpon, dsb. You're Welcome. Maaf ya, kalau pembahasannya membingungkan, hhe.

Komentar untuk artikel ini

Ray pada Rabu, 10 Juni 2009 16:58:32
Bisa tolong diajarin lebih lengkap gak mas untuk masalah tracking ini, karena saya benar-benar butuh banget..

demi kemajuan anak bangsa, hehe..

boleh minta YM / facebook?
rudy-pg pada Minggu, 17 Januari 2010 23:46:42
Hehe, maaf, saya masih newbie. Mungkin kurang bisa membantu. Tapi insya Allah saya akan membantu.

Untuk sementara, silakan diskusi lewat komen saja.
Terima kasih.
xnuxerz pada Jum'at, 31 juli 2009 09:27:23
mas, referrer itu bisa di ganti pake java script ga? coz buat di blogspot boz....

tolong ya boz.. ^.^
rudy-pg pada Jum'at, 31 juli 2009 21:14:43
kalau di javascript, untuk mendeteksi referer bisa pakai properti 'document.referrer'.
Terima kasih.
aby pada Minggu, 7 Maret 2010 13:11:58
Mas, kalau misal aku ada file trace referer di http://siteku.com/referer.php

terus aku iFrame-kan di blogku yang beralamat di http://blogq.com

waktu di database kok yang masuk referernya http://blogq.com, bukan dari pengunjung aslinya..

gmn ya?
dj_afran pada Jum'at, 7 Mei 2010 12:28:16
mas rudy..
saya mw nanya lebih lanjut tentang tutorial mas yang di FTI..
ini link\'a..
http://theftalk.com/t34319-How-to-Inject-JavaScript-via-PHP.html

disitu basename\'a diikuti dengan nama file..
kalau kita menggunakan 1basename saja..
misal.. http://rudyhartadi.web.id
nahh..fungsi php tersebut berfungsi untuk setiap halaman link tersebut beserta isi\'a..

apa yang mesti di rubah mas..??

*maaf saya nanya disini..
*kalau bisa tolong dijawab di blog saya ya mas..
terimakasih sebelumnya.. ^^
Lowongan Pulau Jawa pada Minggu, 9 Mei 2010 05:13:40
thanks share ilmunya mas
Tyas pada Sabtu, 14 Agustus 2010 14:32:00
makasih turial referernya.
Kirim Komentar
Nama :
Website/E-mail :
Komentar :
Sisa Karakter:
 

Recent Comments

kiki: ada yang tau ga cara merubah thema lg kp500 mohon ...
toni: bos,ane kan br donlot opera mini untuk nokia 9300....
rijal: iya nie ... pertanyaan saya juga sama kaya prtanya...
nesa ankho: mas cra masukin tema ke hp e63 gmna sih caranya,, ...
risal: sy punya Laptop ACER ASPIRE 5583NWMXMI tp tidak b...
BadBoyz: cara mengubah tipe sis ke jar lewat hp nokia 5130 ...
ravika: Kenapa copy game pada MMC tidak terbaca pada nokia...
budhi: saya mo cari sms yang dihapus dinokia e63
heri: mas minta tolong solusi utk laptop temen saya,wakt...
arifin gani: yuliadi kalau bilangan prima dari1-100 yang mana y...