pillinetwork hesabınızla giriş yapın.

Arama motorlarından sitenize ziyaretçi gönderen anahtar kelimeleri yakalamak

Siteniz belli bir içerik seviyesine ulaştığında arama motorları sitenizde bulunan anahtar kelimelere yönelik trafik göndermeye başlamakta. Hernekadar Google Analytics gibi muhteşem takip araçları bulumakta ise de bazen kendinize özel çözümler üretmek gerekiyor.

Aşağıdaki fonksiyon size belli büyü arama motorlarından sitenize trafik getiren anahtar kelimleri yakalamanıza yardımcı olacaktır.

Kodun can alıcı noktası olarak bilmeniz gerekenler;

  • BaÅŸka siteden sitenize baÄŸlantı aracılığıyla girildiÄŸinde PHP bunu server deÄŸiÅŸkenleri dizisinin HTTP_REFERER indexinde tutar. Yani $_SERVER[HTTP_REFERER] elemanı size tıklanılan adresi verir.
  • Arama motorlarında bir arama yapıldığında anahtar kelime Türkçe olursa Türkçe alfabeye has karakterler URL Encoding tekniÄŸi ile hexadecimal sayısal deÄŸerlere dönüştürülerek ifade edilir. PHP'de urldecode fonksiyonu ile bunu geri çevirebilirsiniz. Ne yazık ki PHP'de Unicode karakter desteÄŸi entegre gelmediÄŸi için mbstring yardımıyla multi-byte karakterleri çevirmeniz gerekiyor.

Lafı fazla uzatarak esas noktadan kopmak istemiyorum. Aşağıda size arama motorlarından gelen anahtar kelimeleri yakalamanız için gerekli olan fonksiyonu yazıyorum

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function anahtar_kelime($adres){
$baslangic = 0;
$anahtar = "";
//çoğu arama motoru anahtar kelimeyi "q" parametresinde tutar
if (strpos($adres, "q=") !== false) $baslangic = strpos($adres, "q=") + 2;
if ($baslangic > 0){
if (strpos($adres, "&", $baslangic) !== false){
$anahtar = substr($adres, $baslangic, (strpos($adres, "&", $baslangic) - $baslangic));
}
else{
$anahtar = substr($adres, $baslangic);
}
}
//burasının çalışması için PHP kurulumunda mbstring extensionun kurulu olması gerekir
$anahtar = mb_convert_encoding(htmlspecialchars(urldecode($anahtar)), "UTF-8", "auto");
return $anahtar;
}

Kullanım örneği:

1
$anahtar_kelime = anahtar_kelime($_SERVER[HTTP_REFERER]);

NOT: Bu kodu geliştirmekte olduğum seri ilan sitesi için yazdım.

Spacer
Spacer
/* Alpharabius yazdı. 22 Temmuz 2009 15:42. 10 yorum var */

Yorumlar

wordpress kurulu bir sistemim var bu fonksiyonları index.php içine gömsem çalışır mı? Yoksa başka türlü bir yol mu izlemeliyim.

Teşekkür ederim.

/* kimkorkarvirginiawoolftan.tumblr.com/ */

yazmış olduğum aşağıdaki kodlada aynı şeyi yapabilirsiniz, kodları uzatıp israf yapmak yerine kısa ve öz yazmak daha iyi olur düşüncesindeyim.


function getkeyword(){

$url=$_SERVER['HTTP_REFERER'];

$parse=parse_url($url);

parse_str($parse['query'],$print);

return $print['q'];
}

/* Kısa ve Öz ! All Rights Reserved. */

@Bilgilen
Wordpress sistemi zaten bu istatistiği sağlamıyor mu?

/* hasan gürsoy @ |innovacube | kötü yazılmış kaynak kodlarından nefret ediyorum... */

@AntiCoder
aynı yorumu yazacaktım ki gördüm sen yazmışsın. parse_url ve parse_str gibi fonksiyonlar varken, manual parsing fazla gereksiz kalmış :)

/* i, dev. */

preg_match('|q=([A-Z0-9 +ŞİIĞÜÇÖ]+)|i',$_SERVER['HTTP_REFERER'],$query);
$query[1];
buda iş görebilir

Güzel bir yazı olmuş hocam sağolun. Fakat,
@fka ve @AntiCoder hocamında dediği gibi parse_url ve parse_str fonksiyonları varken, uzun yoldan tekrar fonksiyon yazmak biraz zahmetli bence :)

asp.net versiyonu var mı. gerçi uğraşsan kolay çıkarabilirsin kodlar benzer ama yine de elinde olan paylaşırsa sevinirim.

üye olunpillinetwork sitelerine yorum ekleyebilmek ve daha fazlası için, üye olun ya da giriş yapın.

Bu yazıyı rapor et. Kural dışı içeriğe rastladığınızda editörlerimize rapor ederek müdahale edilmesini sağlayabilirsiniz. (Hangi durumlarda rapor edebilirim?)

Bu site

Nokta ve pilli ortak yapımı olan kodaman.org hep birlikte içerik üretip gelirini yazarları ile paylaştığımız kolektif bir kod yazarları blogudur. Siz de katılabilirsiniz.

pilliilan

son yorumlar

arama

pillinetwork