İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Kendi reklam sistemimizi kodlayalım!

netster

0
İyinet Üyesi
Katılım
7 Eylül 2004
Mesajlar
445
Reaction score
24
Konum
Ankara
Çok merak edilen ve bir çok webmasterın istediği bir şeydir bu reklam sistemi. Kısaca bir bahsedelim ;

Nedir bu reklam sistemi ?

Bu sistem ile kontrol panelinizden reklamları girersiniz ve reklamlarınızın görüntülenme ve tıklanma gibi istatistiklerinize ulaşabilirsiniz.


Hadi başlayalım....

Öncelikle reklamlarımızı gireceğimiz bir veritabanı oluşturmamız gerekiyor. Çünkü reklamlarımızı veritabanımıza ekleyeceğiz ve istediğimiz zaman istatistiklere ulaşabileceğiz. Örnek olması açısından basit bir veritabanı nasıl olur veriyorum :

Kod:
CREATE TABLE `reklam` (
  `id` int(11) NOT lisanssız auto_increment,
  `aktif` int(1) NOT lisanssız,
  `reklambasligi` varchar(255) NOT lisanssız,
  `reklammetini` varchar(255) NOT lisanssız,
  `reklamadresi` date NOT lisanssız,
  `goruntulenme` int(11) NOT lisanssız,
  `tiklanma` int(11) NOT lisanssız,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

Şimdi açıklamalara geçelim ,

id = Veritabanına eklenen her reklamın benzersiz bir id si olması gerekiyor. Reklamlarımızı gösterirken verileri id den çekeceğiz. Reklam eklediğinizde id kısmı otomatik olarak eklenir sizin bu bölüme dokunmanız gerekmez.

aktif = Bu bölümde reklamlarımızın aktif olup olmadığını belirliyoruz. Mesela 1 aktif ise 2 pasif olsun. Sadece aktif reklamlarımızın gösterimini yapacağız.

reklambasligi = İsminden de anlaşılacağı üzere bu bölüm reklamlarımızın başlıklarını saklayacağımız bölüm. örn : Hosting Forumları

reklammetini = Reklam metinini saklayacağımız bölüm. örn : Türkiye'nin tek webhosting forumu.

reklamadresi = Açıklamaya gerek var mı? :) Reklamlarımızın tıklanınca gideceği adres. örn : http://www.hostingforumlari.net

goruntulenme = Reklamlarımızın kaç kere görüntülendiğini gösteren bölüm. Bu bölüm reklam görüntüleme sayfasına ekleyeceğimiz bir kod vasıtası ile otomatik olarak artacaktır.

tiklanma = Reklamlarımıza kaç kere tıklanıldığının görüntülendiği bölüm. Bu bölüm reklamlarımıza tıklandığında otomatik olarak artacaktır.


Veritabanı bölümümüz tamamlandı. Sanırım aklınızda bu bölüm ile ilgili bir soru kalmadı. Şimdi reklamlarımızı görüntüleyeceğimiz sayfa ile devam edelim.

Reklamlarımızı görüntüleyeceğimiz sayfa .php kodlama ile yapılacak. Örnek olması açısından ben kodları yine alt tarafa ekliyorum.

PHP:
<?php 
$host = "localhost";
$mysqladi = ""; 
$mysqlsifre ="";
$db = "";
@mysql_connect ("$host", "$mysqladi", "$mysqlsifre") or die 
("Hatalara inanmıyorum ama bir hata var");
@mysql_select_db ("$db") or die 
("Veritabanı uff olmuş heralde bir türlü bağlanılmıyor");

$reklamal=mysql_query("select * from `reklam` where `aktif`='1' 
order by rand() limit 1");
while ($rows=mysql_fetch_array($reklamal) ) {

$reklambasligi=$rows[reklambasligi];
$reklammetini=$rows[reklammetini];
$reklamadresi=$rows[rekadresi];
$id=$rows[id];

$gosterimekle=mysql_query("UPDATE reklam SET 
gosterim=gosterim+1 WHERE id='$id'");

<a href="/git.php?url='.$id.'" target="_blank"><u><strong>'.$reklambasligi.'</strong></u>'.$reklammetini.'</a>

}

?>

İşte gördüğünüz gibi. Yukarıda reklamlarımızı nasıl çekeceğimizi açıklayan kodlar mevcut tabiki siz <a href....> olarak giden kısımı reklamlarınızın nasıl görüntülenmesini istiyorsanız o şekilde düzenleyebilirsiniz.

Şimdi kodları açıklayalım..

PHP:
$host = "localhost";
$mysqladi = ""; 
$mysqlsifre ="";
$db = "";

Bu kısım veritabanına bağlanmamızı sağlayan en önemli kısım.

$mysqladi = ""; kısmına mysql kullanıcı isminizi.
$mysqlsifre=""; kısmına mysql şifrenizi.
$db=""; kısmına da veritabanı isminizi gireceksiniz.


PHP:
$reklamal=mysql_query("select * from `reklam` where `aktif`='1' order by rand() limit 1");
while ($rows=mysql_fetch_array($reklamal) ) {

Bu kısımda veritabanımızda ki reklamları çektiğimiz kısım. dikkat ettiyeniz where aktif='1' olarak çekiyoruz yani veritabanına reklamımızı eklerken aktif kısmını 1 yapmanız gerek. Eğer 2 veya 0 olursa pasif olacaktır reklam yani çekilmeyecektir.

PHP:
order by rand() limit 1
in anlamı ise veritabanımızda diyelim 5 tane reklam var ama bu rand() ile rastgele limit 1 ile de sadece 1 tane reklamı çekiyoruz. Yani veritabanımızda ki reklamlar rastgele gösterilecektir. Dönüşümlü olarak.

PHP:
$gosterimekle=mysql_query("UPDATE reklam SET gosterim=gosterim+1 WHERE id='$id'");

Burasıda yine önemli bir bölüm. Reklamlarınız her gösterildiğinde veritabanımızaki gösterim bölümüne +1 gösterim eklenecektir.

Dikkat ettiyseniz <a href > ile link verdiğimiz adres git.php?$id bu da demek oluyor ki bir de git.php dosyası kodlamamız gerekecek. Bu git.php dosyasında ise reklamlarınıza tıklanıldıysa o tıklamaların istatistikleri eklenecek. Hadi git.php dosyamızı kodlamaya başlayalım.

PHP:
$host = "localhost";
$mysqladi = ""; 
$mysqlsifre ="";
$db = "";
@mysql_connect ("$host", "$mysqladi", "$mysqlsifre") or die 
("Hatalara inanmıyorum ama bir hata var");
@mysql_select_db ("$db") or die ("Veritabanı uff olmuş 
heralde bir türlü bağlanılmıyor");

$id=$_GET["url"];
$reklamal=mysql_query("select reklamadresi from reklam where id='$id'");
while ($rows=mysql_fetch_assoc($reklamal) ) {
$reklamadresi=$rows[reklamadresi];

header ("Location:$reklamadresi");
}

$tiklanmaekle=mysql_query("UPDATE reklam SET tiklanma=tiklanma+1 WHERE id='$id'");


Bitti :)

Hadi yine kodları açıklayalım.
PHP:
 $host = "localhost";
$mysqladi = ""; 
$mysqlsifre ="";
$db = "";

kısmı yukarıdaki ile aynı. Yine buraya da bilgilerimizi gireceğiz ki veritabanına bağlanabilsin.
PHP:
$id=$_GET["url"];
ile bir önceki reklam sayfasından gelen reklam id sini alıyoruz ki git.php dosyamız hangi reklama tıklanıldığını bilsin ve buna göre o reklamın adresine gitsin.

PHP:
$reklamal=mysql_query("select reklamadresi from reklam where id='$id'");
while ($rows=mysql_fetch_assoc($reklamal) ) {

Burada da yukarıda aldığımız id numarasına göre hangi reklamı seçeceğini buluyor.

PHP:
header ("Location:$reklamadresi");

Header ile git.php dosyamızdan reklam adresine yönlendiriyoruz.


PHP:
$tiklanmaekle=mysql_query("UPDATE reklam SET tiklanma=tiklanma+1 WHERE id='$id'");

tiklanmaekle ise id numarasını aldığımız reklamımıza +1 tıklanma ekliyor.


Kolaymış değil mi? :) Soru veya sorunlarınızı bekliyorum.

Dikkat! Bu yazı izin alınmadan ve kaynak link eklenmeden başka sitelerde yayınlanamaz.

Kaynak : http://www.hostingforumlari.net/t-kendi-reklam-sistemimizi-kodlayalim
 

GreeNEyeS

0
İyinet Üyesi
Onaylı Üye
Katılım
6 Ağustos 2005
Mesajlar
1,753
Reaction score
27
Konum
istanbul
Mesela kodların yanlış sayma gibi bir durumu varmı?
Kesin birebir bilgileri veriyormu?
 

axl

0
İyinet Üyesi
Katılım
4 Şubat 2008
Mesajlar
706
Reaction score
17
makalenin başında veritabanı kodları yazıyor

bu kodları nereye yazacağız ne diye kaydedeceğiz...
 

GreeNEyeS

0
İyinet Üyesi
Onaylı Üye
Katılım
6 Ağustos 2005
Mesajlar
1,753
Reaction score
27
Konum
istanbul
makalenin başında veritabanı kodları yazıyor

bu kodları nereye yazacağız ne diye kaydedeceğiz...

Kod:
CREATE TABLE `reklam` (
  `id` int(11) NOT lisanssız auto_increment,
  `aktif` int(1) NOT lisanssız,
  `reklambasligi` varchar(255) NOT lisanssız,
  `reklammetini` varchar(255) NOT lisanssız,
  `reklamadresi` date NOT lisanssız,
  `goruntulenme` int(11) NOT lisanssız,
  `tiklanma` int(11) NOT lisanssız,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

Eğer bu kodları soruyorsanız.
Bir not defteri açın, içine kodları kopyalayın, sonrada adını sitem.sql olarak kayıt edin. Gerisinide biliyorsunuzdur ( phpmyadmin )
 

netster

0
İyinet Üyesi
Katılım
7 Eylül 2004
Mesajlar
445
Reaction score
24
Konum
Ankara
Mesela kodların yanlış sayma gibi bir durumu varmı?
Kesin birebir bilgileri veriyormu?

Tıklanma bilgilerini çıkış dosyamıza eklediğimiz için yanlış sayma olasılığı çok düşük. O sayfaya her yönlendirildiğinizde veritabanına tıklama +1 olarak eklenir.

Görüntülenme bilgilerinide reklamlarımızı görüntleyeceğimiz dosyamıza ekledik. Yeniden yönlendirme , urlrewrite vs olmadığı sürece o bilgiler ekrana her geldiğinde +1 olarak görüntülenme ekleniyor. Aksi taktirde görüntülenme +3-+5 gibi kafasına görede eklenebilir. Bu yukarıda yazdıklarım sadece en temel reklam sistemi. Bunu cookieler ile destekleyip bir süre içinde aynı bilgisayardan 2. tıklamayı önlemek felan tamamen sizin hayal gücünüze kalmış.


makalenin başında veritabanı kodları yazıyor

bu kodları nereye yazacağız ne diye kaydedeceğiz...

Web sitenizin güncel veritabanına da ekleyebilirsiniz yada sadece reklam için yeni bir veritabanıda oluşturabilirsiniz.
 

KaRaKTeR

0
İyinet Üyesi
Katılım
6 Temmuz 2004
Mesajlar
1,920
Reaction score
36
zamanında iyinetin vardı reklam scripti hata satacaktı birkaç kişiye ama sonra ne oldu bilmiyorum sanırım yalan oldu :)
 

zemed

0
İyinet Üyesi
Katılım
19 Nisan 2010
Mesajlar
0
Reaction score
2
Konum
php.exe
Elimde buna benzer bir proje var. Kazanç ortaklığı tarzında. Minik adsense :)

Ama tek bir şirketin ürünleri yayımlanacak. Hal böyleyken sahte tıklamaların önüne geçmek gerek.

Ben adsense gibi, script taglarıyla bir iframe açtırıp ürün bağlantılarının sonuna 50-100 karakterlik bir token koyup, gelen token değeri veritabanında da varsa geçerli tıklama saymayı düşünüyorum. Lakin, script tagı ile ekrana birşey basıldığında(document.write) bu verilere direkt kaynak kodunda okunmuyor ve google indexlemiyor. Müşterim de kaynak kodunda gözükmesini istiyor. Kitapyurdu.com sistemi gibi düz html kodları...

Bu sefer de ciddi bir koruma şart oluyor. ip, cookie, session gibi. İşin bu kısmında tıkandım sayılır :)

Ciddiyet ve son derece yüksek önem gerektiren bir konu aslında.
 

netster

0
İyinet Üyesi
Katılım
7 Eylül 2004
Mesajlar
445
Reaction score
24
Konum
Ankara
@zemed ,

Eğer tek bir müşteri birden fazla da yayıncı olacaksa reklam kodlarını gizlemeniz müşterinin yararına olur. Aksi taktirde google o reklamları indexler ve googleden gelen tıklar bile + olarak eklenir.

Sizin için en uygun seçenek bu yukarıda açıkladığım kodlara ek olarak cookie eklemeniz bunun yanında da reklamlara tıklayan ip leri veri tabanına eklemeniz. Bu şekilde cookie lere bir çözüm bulsalar dahi aynı ip den gelen tıkları görebilir ve geçersiz seçebilirsiniz. Hoş yapacak adam her türlü yapar ama ne kadar önlem alırsanız sizin yararınıza olur.
 

zemed

0
İyinet Üyesi
Katılım
19 Nisan 2010
Mesajlar
0
Reaction score
2
Konum
php.exe
Aslında müşterinin istediği de googlenin ürünleri yayımcıların sitesinde listelemesi.

Kod oluşturulunca, kodların üst tarafına <img tagı içinde sayaç tarzı .js koymayı düşünüyorum. Böylelikle siteye gelen - ve o gelen kişinin tıklayarak ana siteye gitmesi durumlarını karşılaştırıyorum. Bu esnada, ip,tarayıcı,referer,cookie ile kontrol etmeyi düşünüyorum. Hoş, bu saydıklarım curl ve proxy ile geçilir ama dediğiniz gibi ne kadar önlem alırsak yararımıza olur.
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst