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

Download

Visitor Tracker

Total Hits: 280522
Online: 7
Today: 86
Month: 1252
Unique: 72201

Jaldis Shop

Jaldis Shop

Rakha Styleshop

Rakha Styleshop - Toko Online Kecantikan Wanita

WhizKids

Fornext Technology

Fornext Technology - 	
Lembaga Pendidikan Teknologi & Pengembangan Diri untuk anak-anak (SD, SMP, SMA).

Kos Semarang

Kosemarang.com - Info Kost, Kontrakan, dan Homestay untuk wilayah Semarang.

Aeohost

Melekweb Institute - Panduan, Tips dan Review, yang Membuat Anda Sukses Bisnis Online.
 

Cari Tahu Asal Visitor Menggunakan Referer

Ditulis pada Kamis, 26 Maret 2009 23:00:10 | Dibaca sebanyak : 3290 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.
Kirim Komentar
Nama :
Website/E-mail :
Komentar :
Sisa Karakter:
 

Recent Comments

tito: bro adnan kacamata ne apapun diliat jd terlihat ma...
yudis: harddisk drive saya kebakar atau bisa dibilang han...
Angky: ,gimana cara membuka file berformat .exe di nokia ...
aryu hanifah: mas mau tanya,, cara merubah subnet mask dari 255....
eko: aku mau nanya, boleh minta cara bikin menu bilanga...
krisna: mas.mo tanya komputer saya setiap saya shut down k...
arwan: bos...minta bantuannya dong... ceritanya ane mau k...
ghofar: met pagi pak rudi.. pak maw tanya ne... klo maw ny...
Zyus Andre: Mas mau tanya ... apa keuntungan makai DNS Cisco d...
Enggar: Bgmn cara mngaktfkan bluetooth yg terkunci / tdk b...


ping ip