Vlastný reklamný systém v PHP 1.

17. ledna 2002

Ak chcete na svojich webových stránkach zobrazovať reklamu, potrebujete určitý systém, ktorý bude zabezpečovať jej zobrazenie. S týmto systémom môžete zobrazovať bannery rôznej hodnoty, rôznych zadávateľov, kontrolovať štatistiky… Umožní vám kombinovať aj platenú reklamu s výmennou.

So svojim reklamným systémom budete mať absolútnu kontrolu nad zobrazovaními bannermi a štatistikami. Systém rozlišuje volanie bannera z dolnej pozície a z hornej pozície, viditeľnej pri rozlíšenií 800×600 bez nutnosti skrolovať. Základný princíp je na "vylosovaní" ID zadávateľa reklamy, skontrolovaní počtu kreditov, zobrazeniu bannera, resp. zobrazeniu iného bannera, ktorý má ešte kredity. Štatistiky budú prístupné verejne, podľa potreby ich môžete zabezpečiť heslom. Ke všetkému budete potrebovať PHP a mySQL.

Tabuľky

Treba vytvoriť dve tabuľky. V jednej budú údaje o zadávateľovi a bannere, do druhej budete ukladať počty klikov, impresií atď.

create table reklama (
id int,
nazov varchar(50),
url varchar(50),
pocet int,
banner varchar(50),
alt varchar(100));

id – identifikačné číslo kampane. V rovnakom čase nesmú byť dve ID rovnaké.
nazov – názov reklamnej kampane – napr. zadávateľ.
url – url, na ktoré bude odkazovať banner.
pocet – pocet impresií bannera – kreditov (v hornej pozícii sa odpočítavajú 2 kredity, v spodnej len jeden, s tým treba rátať pri kalkulovaní ceny).
banner – url obrázku, ktorý sa použije ako banner.
alt – alt text, ktorý sa zobrazí pod bannerom a ako ALTernatívny text k obrázku.

create table rek_stat (
subor varchar(100),
ncas bigint,
impres int,
click int,
id int);

subor – názov suboru, ktorý zobrazuje banner
ncas – Neformátovaný ČAS – čas získaný funkciou Time()
impres – počet impresií bannera, ktoré daný súbor zobrazil
click – počet kliknutí na banner z daného súboru
id – identifikačné číslo kampane – pre ktorú bol v danom súbore zobrazený banner.

Zadávanie kampaní: (príklad)

insert into reklama values (1, ‚Interval.cz‘, ‚http://www.interval.cz‘, 10000, ‚http://www.interval.cz/banner.gif‘, ‚Interval.cz – vse o internetu…‘);

Rovnako ľahko môžete kampane aj mazať:

delete from reklama where id = 1;

Tým pádom máte vytvorené tabuľky, z ktorými budete ďalej pracovať. Dajte do týchto tabuliek nejaké údaje, na skúšku. Teraz prejdite k samotnému skriptu, ktorý zabezpečí zobrazenie bannera na stránke. Najskôr zdrojový kód, potom vysvetlenie.

<?
$ncas = time();
mysql_pconnect("SERVER", "LOGIN", "HESLO");
SRand((double)MicroTime()*1e6);
$rek = mysql_db_query("DB", "Select * from reklama");
$pocet = mysql_num_rows($rek);
$a = Rand(1,$pocet);
@$check = mysql_db_query("DB", "Select * from reklama where id = $a");
@$im = mysql_fetch_array($check);
$imp = $im["pocet"];
if($imp<=0 || !$check || mysql_num_rows($check)==0): ?>
<!– kod vašeho výmenného reklamného systému – napr. BillBoard… –>
<?
else:
$meno_skriptu = $GLOBALS["SCRIPT_NAME"];
$vys = mysql_db_query("DB", "Select * from rek_stat where (subor like ‚$meno_skriptu‘) and (id = $a)");
if(!$vys || mysql_num_rows($vys)==0):
mysql_db_query("DB", "INSERT INTO rek_stat (subor, ncas, impres, click, id) VALUES (‚$meno_skriptu‘, ‚$ncas‘, ‚$kde‘, ‚0‘, ‚$a‘)");
mysql_db_query("DB", "Update reklama set pocet = pocet – $kde where id like ‚$a’");
else:
mysql_db_query("DB", "Update rek_stat set impresions = impresions + $kde where (subor like ‚$meno_skriptu‘) and (id like ‚$a‘)");
mysql_db_query("DB", "Update reklama set pocet = pocet – $kde where id like ‚$a’");
endif;
if($imp>0): ?><center><a href=’rek_click.php?subor=<? echo $meno_skriptu ?>&id=<? echo $a ?>&href=<? echo $im["url"] ?>‘ target=_blank><img src='<?
$gf = $im["banner"];
echo $gf ?>‘ border=0 width=468 height=60 alt="<? echo $im["alt"] ?>"><br><font size=1 face=Tahoma, Verdana, Arial><b><? echo $im["alt"] ?></b></font></a>
<?
endif;
endif;
?>

V prvom riadku zisťujete aktuálny čas v sekundách od 1.1.1970, v druhom sa pripájate na databázu mySQL pomocou funkcie Mysql_Pconnect(). Predpokladáte, že užívateľ hneď neodíde a zobrazí sa mu ešte ďaľšia reklama – preto sa pripájate persistentne. Ak budete používať tento systém, je treba doplniť údaje napísané veľkým písmom, teda DB, HESLO, LOGIN… V treťom riadku inicializujte pomocou funkcie SRand() generátor náhodných čísel. Ďalej si zistite počet kampaní zaregistrovaných v systéme abyste z nich mohli neskôr, pomocou Rand() fukcie, "vyžrebovať" jednu kampaň, ktorej zobrazíte banner. A to iba tehdy, ked má viac ako 0 kreditov (ďaľší riadky). Ak ich nemá, zobrazíte reklamu výmenného systému ako napr. BillBoard, aby propagácia nezaostávala. Ak však kampaň ešte má nejaké kredity, presnejšie viac ako 0, pokračujete a zistíte si všetko potrebné pre zobrazenie bannera.

Pomocou globálnej premennej Script_Name si zistíte názov súboru. Budete ho využívať neskôr v štatistikách. Zistíte si, či súbor už zobrazil nejaký banner, resp. či už má v databáze záznam. Ak ešte nemá, zapíšete do databázy tento súbor s počtom impresií – v našom prípade kreditov, koľko predáte premennou kde pri volaní reklamy. Ale o tom nabudúce. Odpočítajte od celkového počtu impresíí hodnotu, podľa pozície bannera – premenná kde. To isté, až na to, že len zvýšite počet impresii o hodnotu bannera pri konkrétnom súbore a odpočítate od celkového počtu hodnotu bannera v premennej kde, urobíte v prípade, že súbor už má v databázi záznam.

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Mohlo by vás také zajímat

Nejnovější

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *