# Copyright (c) 2003 AdCycle.com All rights reserved. # http://www.adcycle.com - download the lastest version of adcycle package AdReports; use strict; sub new { my $this = shift; my $class = ref($this) || $this; my $self = {}; bless $self, $class; return $self; } # >> CREATE DATA TABLE sub create_data_table{ my($self,$master,$where,$group)=@_; my $date=$master->{env}->get_date; $master->{db}->{adcycle}->do("DELETE FROM temp_log"); my $update=$master->{db}->{adcycle}->do(" INSERT INTO temp_log (CID,GID,MID,IMPR,CLICK,ACTION,LOG_DATE) SELECT CID, GID, MID, sum(IMPR) as IMPR, sum(CLICK) as CLICK, sum(ACTION) as ACTION, LOG_DATE FROM daily_log GROUP BY CID, MID, GID, LOG_DATE "); my(@tempref)=$master->{db}->select_multi_row_hash(" SELECT GID, CID, MID, HOUR_IMPR, HOUR_CLICK FROM cp_grouping WHERE HOUR_IMPR>0 OR HOUR_CLICK>0 "); my $temptot=@tempref; for(my $k=0;$k<$temptot;$k++){ my $update=$master->{db}->{adcycle}->do(" UPDATE temp_log SET IMPR=IMPR+$tempref[$k]->{HOUR_IMPR}, CLICK=CLICK+$tempref[$k]->{HOUR_CLICK} WHERE CID=$tempref[$k]->{CID} AND GID=$tempref[$k]->{GID} AND MID=$tempref[$k]->{MID} AND LOG_DATE=$date "); if($update+0==0){ my $insert_list=[ ["CID",$tempref[$k]->{CID}], ["GID",$tempref[$k]->{GID}], ["MID",$tempref[$k]->{MID}], ["IMPR",$tempref[$k]->{HOUR_IMPR}], ["CLICK",$tempref[$k]->{HOUR_CLICK}], ["LOG_DATE",$date]]; $master->{db}->insert_row("temp_log",$insert_list); } } return } # << CREATE DATA TABLE # >> CAMPAIGN HISTORY sub campaign_history{ my($self,$master)=@_; $master->{charts}="yes"; # get config and env vars my $images_url=$master->{config}->get_images_url; my $cgi_bin_url=$master->{config}->get_cgi_bin_url; my $cache=$master->{env}->get_cache; # input vars my $cid=$master->{query}->param('cid'); #get the campaign ref my $cidref=$master->{db}->select_single_row_hash("SELECT * FROM cp where CID='$cid'"); #get the campaign ref my $aidref=$master->{db}->select_single_row_hash("SELECT * FROM ad where AID='$cidref->{AID}'"); # print header $master->{LINK}="campaigns"; $master->{html}->header($master,"Campaign History"); # >> top menu print qq~
Campaign Manager : $cidref->{CAMPAIGN_NAME} : Daily History
~; # << top menu $master->{html}->footer($master); } # << CAMPAIGN HISTORY # >> VIEW CAMPAIGN HISTORY sub view_campaign_history{ my($self,$master)=@_; $master->{charts}="yes"; # get config and env vars my $images_url=$master->{config}->get_images_url; my $cgi_bin_url=$master->{config}->get_cgi_bin_url; my $cache=$master->{env}->get_cache; # input vars my $cid=$master->{query}->param('cid'); #get the campaign ref my $cidref=$master->{db}->select_single_row_hash("SELECT * FROM cp where CID='$cid'"); #get the campaign ref my $aidref=$master->{db}->select_single_row_hash("SELECT * FROM ad where AID='$cidref->{AID}'"); if($master->{whoami} ne "ADMIN"){ my $tmpref=$master->{db}->select_single_row_hash("SELECT * FROM ad where LOGIN='$master->{whoami}'"); if($tmpref->{AID} != $cidref->{AID}){ exit(0); } } # create data table $master->{reports}->create_data_table($master); # print header $master->{LINK}="campaigns"; $master->{html}->header($master,"View Campaign History"); # >> top menu if($master->{whoami} eq "ADMIN"){ print qq~
Campaign Manager : $cidref->{CAMPAIGN_NAME} : Daily History
~; } # << top menu print qq~  
 for: $cidref->{CAMPAIGN_NAME}

~; $master->{reports}->hour_chart_generator($master); print qq~
Impressions
Clicks (x10)
~; print qq~
~; $master->{reports}->day_table_generator($master); if($master->{whoami} eq "ADMIN"){ print qq~
 

~; $master->{reports}->group_table_generator($master); } print qq~
 
~; $master->{html}->footer($master); } # << VIEW CAMPAIGN HISTORY # >> VIEW GROUP HISTORY sub view_group_history{ my($self,$master)=@_; $master->{charts}="yes"; # get config and env vars my $images_url=$master->{config}->get_images_url; my $cgi_bin_url=$master->{config}->get_cgi_bin_url; my $cache=$master->{env}->get_cache; # input vars my $gid=$master->{query}->param('gid'); #get the campaign ref my $gidref=$master->{db}->select_single_row_hash("SELECT * FROM groups where GID='$gid'"); $master->{reports}->create_data_table($master); # print header $master->{LINK}="groups"; $master->{html}->header($master,"View Group History"); # >> top menu print qq~
Group Manager : $gidref->{GROUP_NAME}
~; # << top menu print qq~  
 for: $gidref->{GROUP_NAME}

~; $master->{reports}->group_hour_chart_generator($master); print qq~
Impressions
Clicks (x10)
~; print qq~
~; $master->{reports}->group_day_table_generator($master); print qq~
 
 
  • Back to Group: $gidref->{GROUP_NAME}

  • Back to Group Manager
    ~; $master->{html}->footer($master); } # << VIEW GROUP HISTORY # >> VIEW ADTYPE HISTORY sub view_adtype_history{ my($self,$master)=@_; $master->{charts}="yes"; # get config and env vars my $images_url=$master->{config}->get_images_url; my $cgi_bin_url=$master->{config}->get_cgi_bin_url; my $cache=$master->{env}->get_cache; # input vars my $tid=$master->{query}->param('tid'); #get the campaign ref my $tidref=$master->{db}->select_single_row_hash("SELECT * FROM adtype where TID='$tid'"); $master->{reports}->create_data_table($master); # print header $master->{LINK}="groups"; $master->{html}->header($master,"View AdType History"); # >> top menu print qq~
    AdType Manager : $tidref->{NAME}
    ~; # << top menu print qq~
    ~; $master->{reports}->adtype_day_table_generator($master); print qq~
     
    ~; print qq~
    Impressions
    Clicks (x10)
    ~; $master->{html}->footer($master); } # << VIEW ADTYPE HISTORY # >> HOUR CHART GENERATOR sub hour_chart_generator{ my($self,$master)=@_; # get config and env vars my $images_url=$master->{config}->get_images_url; my $cgi_bin_url=$master->{config}->get_cgi_bin_url; my $cache=$master->{env}->get_cache; my $hour=$master->{env}->get_hour; # input vars my $cid=$master->{query}->param('cid'); #get the ad media my(@dailyref)=$master->{db}->select_multi_row_hash("SELECT sum(IMPR) as IMPR, sum(CLICK) as CLICK,LOG_HOUR FROM daily_log where CID='$cid' GROUP BY CID,LOG_DATE,LOG_HOUR ORDER BY LOG_DATE DESC,LOG_HOUR DESC LIMIT 23"); my $dailytot=@dailyref; my $gridref=$master->{db}->select_single_row_hash("SELECT SUM(HOUR_IMPR) as IMPR,SUM(HOUR_CLICK) as CLICK FROM cp_grouping WHERE CID='$cid'"); $gridref->{CLICK}*=10+0; my $sample_Values="$gridref->{IMPR}"; my $sample_Values2="$gridref->{CLICK}"; my $sample_Labels="$hour"; for(my $k=0;$k<$dailytot;$k++){ $dailyref[$k]->{CLICK}*=10+0; $sample_Values2="$dailyref[$k]->{CLICK},".$sample_Values2; $sample_Values="$dailyref[$k]->{IMPR},".$sample_Values; $sample_Labels="$dailyref[$k]->{LOG_HOUR},".$sample_Labels; } print qq~ ~; } # << HOUR CHART GENERATOR # >> DAY TABLE GENERATOR sub day_table_generator{ my($self,$master)=@_; # get config and env vars my $images_url=$master->{config}->get_images_url; my $cgi_bin_url=$master->{config}->get_cgi_bin_url; my $cache=$master->{env}->get_cache; my $hour=$master->{env}->get_hour; my $date=$master->{env}->get_date; # input vars my $cid=$master->{query}->param('cid'); my $month=$master->{query}->param('month'); my $year=$master->{query}->param('year'); my $where=""; if($year+0==0){ $month=$master->{db}->single_result("SELECT MONTHNAME('$date')"); $year=$master->{db}->single_result("SELECT YEAR('$date')"); $where=qq~AND MONTHNAME(LOG_DATE)='$month' AND YEAR(LOG_DATE)='$year'~; } if($year>0 && length($month)>0){ $where=qq~AND MONTHNAME(LOG_DATE)='$month' AND YEAR(LOG_DATE)='$year'~; } #get the ad media my(@dailyref)=$master->{db}->select_multi_row_hash(" SELECT sum(IMPR) as IMPR, sum(CLICK) as CLICK, DATE_FORMAT(LOG_DATE,'%M, %d %Y') as COOL, LOG_DATE FROM temp_log WHERE CID='$cid' $where GROUP BY CID, LOG_DATE ORDER BY LOG_DATE DESC "); my $dailytot=@dailyref; # find max $master->{IMPR}=0; $master->{CLICK}=0; for(my $k=0;$k<$dailytot;$k++){ if($dailyref[$k]->{IMPR}>$master->{IMPR}){ $master->{IMPR}=$dailyref[$k]->{IMPR}; } if($dailyref[$k]->{CLICK}>$master->{CLICK}){ $master->{CLICK}=$dailyref[$k]->{CLICK}; } } $master->{WIDTH}=200; # >> print "
    "; my(@dateref)=$master->{db}->select_multi_row_hash(" SELECT DISTINCT MONTHNAME(LOG_DATE) AS xMONTHNAME, YEAR(LOG_DATE) as xYEAR, MONTH(LOG_DATE) as xMONTH FROM temp_log WHERE CID=$cid ORDER BY xYEAR DESC, xMONTH DESC "); my $datetot=@dateref; print qq~
    ~; # << # first row print qq~ ~; my $impr_sum=0; my $click_sum=0; my $rot=0; for(my $k=0;$k<$dailytot;$k++){ my $ctp=$master->{tools}->ctp_calculation($dailyref[$k]->{IMPR},$dailyref[$k]->{CLICK}); $impr_sum+=$dailyref[$k]->{IMPR}; $click_sum+=$dailyref[$k]->{CLICK}; my $impr=$dailyref[$k]->{IMPR}; my $click=$dailyref[$k]->{CLICK}; $dailyref[$k]->{IMPR}=$master->{tools}->comma_insert($dailyref[$k]->{IMPR}); $dailyref[$k]->{CLICK}=$master->{tools}->comma_insert($dailyref[$k]->{CLICK}); my $color="EEEEEE"; if($rot==1){ $color="EEEEDE"; $rot=0; }else{ $rot++; } print qq~ ~; } my $ctp=$master->{tools}->ctp_calculation($impr_sum,$click_sum); $impr_sum=$master->{tools}->comma_insert($impr_sum); $click_sum=$master->{tools}->comma_insert($click_sum); print qq~
    Date Impr Clicks CTR  
    $dailyref[$k]->{COOL} $dailyref[$k]->{IMPR}  $dailyref[$k]->{CLICK}  $ctp\% ~; $master->{reports}->bar_table($master,$impr,$click); print qq~
    Total: $impr_sum $click_sum $ctp\%  
    ~; } # << DAY TABLE GENERATOR # >> GROUP TABLE GENERATOR sub group_table_generator{ my($self,$master)=@_; # get config and env vars my $images_url=$master->{config}->get_images_url; my $cgi_bin_url=$master->{config}->get_cgi_bin_url; my $cache=$master->{env}->get_cache; my $hour=$master->{env}->get_hour; my $date=$master->{env}->get_date; # input vars my $cid=$master->{query}->param('cid'); my $month=$master->{query}->param('month'); my $year=$master->{query}->param('year'); my $where=""; if($year+0==0){ $month=$master->{db}->single_result("SELECT MONTHNAME('$date')"); $year=$master->{db}->single_result("SELECT YEAR('$date')"); $where=qq~AND MONTHNAME(LOG_DATE)='$month' AND YEAR(LOG_DATE)='$year'~; } if($year>0 && length($month)>0){ $where=qq~AND MONTHNAME(LOG_DATE)='$month' AND YEAR(LOG_DATE)='$year'~; } #get the ad media my(@dailyref)=$master->{db}->select_multi_row_hash(" SELECT sum(IMPR) as IMPR, sum(CLICK) as CLICK, GID FROM temp_log where CID='$cid' $where GROUP BY GID ORDER BY GID "); my $dailytot=@dailyref; $master->{IMPR}=0; $master->{CLICK}=0; for(my $k=0;$k<$dailytot;$k++){ if($dailyref[$k]->{IMPR}>$master->{IMPR}){ $master->{IMPR}=$dailyref[$k]->{IMPR}; } if($dailyref[$k]->{CLICK}>$master->{CLICK}){ $master->{CLICK}=$dailyref[$k]->{CLICK}; } } $master->{WIDTH}=200; # first row print qq~ ~; my $sample_Values="0"; my $sample_Values2="0"; my $sample_Labels="0"; my $impr_sum=0; my $click_sum=0; my $rot; for(my $k=0;$k<$dailytot;$k++){ my $gidref=$master->{db}->select_single_row_hash("SELECT * FROM groups WHERE GID='$dailyref[$k]->{GID}'"); $impr_sum+=$dailyref[$k]->{IMPR}; $click_sum+=$dailyref[$k]->{CLICK}; my $color="EEEEEE"; if($rot==1){ $color="EEEEDE"; $rot=0; }else{ $rot++; } my $ctp=$master->{tools}->ctp_calculation($dailyref[$k]->{IMPR},$dailyref[$k]->{CLICK}); my $impr=$master->{tools}->comma_insert($dailyref[$k]->{IMPR}); my $click=$master->{tools}->comma_insert($dailyref[$k]->{CLICK}); print qq~ ~; } my $ctp=$master->{tools}->ctp_calculation($impr_sum,$click_sum); $impr_sum=$master->{tools}->comma_insert($impr_sum); $click_sum=$master->{tools}->comma_insert($click_sum); print qq~
    Group Impr Clicks CTR  
    $gidref->{GROUP_NAME} $impr  $click  $ctp\% ~; $master->{reports}->bar_table($master,$dailyref[$k]->{IMPR},$dailyref[$k]->{CLICK}); print qq~
    Total: $impr_sum $click_sum $ctp\%  
    ~; } # << GROUP TABLE GENERATOR # >> GROUP DAY TABLE GENERATOR sub group_day_table_generator{ my($self,$master)=@_; # get config and env vars my $images_url=$master->{config}->get_images_url; my $cgi_bin_url=$master->{config}->get_cgi_bin_url; my $cache=$master->{env}->get_cache; my $hour=$master->{env}->get_hour; my $date=$master->{env}->get_date; # input vars my $gid=$master->{query}->param('gid'); my $month=$master->{query}->param('month'); my $year=$master->{query}->param('year'); my $where=""; if($year+0==0){ $month=$master->{db}->single_result("SELECT MONTHNAME('$date')"); $year=$master->{db}->single_result("SELECT YEAR('$date')"); $where=qq~AND MONTHNAME(LOG_DATE)='$month' AND YEAR(LOG_DATE)='$year'~; } if($year>0 && length($month)>0){ $where=qq~AND MONTHNAME(LOG_DATE)='$month' AND YEAR(LOG_DATE)='$year'~; } #get the ad media my(@dailyref)=$master->{db}->select_multi_row_hash(" SELECT sum(IMPR) as IMPR, sum(CLICK) as CLICK, DATE_FORMAT(LOG_DATE,'%M, %d %Y') as COOL, LOG_DATE FROM temp_log where GID='$gid' $where GROUP BY LOG_DATE ORDER BY LOG_DATE DESC "); my $dailytot=@dailyref; # find max $master->{IMPR}=0; $master->{CLICK}=0; for(my $k=0;$k<$dailytot;$k++){ if($dailyref[$k]->{IMPR}>$master->{IMPR}){ $master->{IMPR}=$dailyref[$k]->{IMPR}; } if($dailyref[$k]->{CLICK}>$master->{CLICK}){ $master->{CLICK}=$dailyref[$k]->{CLICK}; } } $master->{WIDTH}=200; # >> print ""; my(@dateref)=$master->{db}->select_multi_row_hash(" SELECT DISTINCT MONTHNAME(LOG_DATE) AS xMONTHNAME,YEAR(LOG_DATE) as xYEAR,MONTH(LOG_DATE) as xMONTH FROM temp_log WHERE GID=$gid ORDER BY xMONTHNAME DESC, xMONTH DESC "); my $datetot=@dateref; print qq~
    ~; # << # first row print qq~ ~; my $impr_sum=0; my $click_sum=0; my $rot; for(my $k=0;$k<$dailytot;$k++){ my $ctp=$master->{tools}->ctp_calculation($dailyref[$k]->{IMPR},$dailyref[$k]->{CLICK}); $impr_sum+=$dailyref[$k]->{IMPR}; $click_sum+=$dailyref[$k]->{CLICK}; my $color="EEEEEE"; if($rot==1){ $color="EEEEDE"; $rot=0; }else{ $rot++; } my $impr=$master->{tools}->comma_insert($dailyref[$k]->{IMPR}); my $click=$master->{tools}->comma_insert($dailyref[$k]->{CLICK}); print qq~ ~; } my $ctp=$master->{tools}->ctp_calculation($impr_sum,$click_sum); $impr_sum=$master->{tools}->comma_insert($impr_sum); $click_sum=$master->{tools}->comma_insert($click_sum); print qq~
    Date Impr Clicks CTR  
    $dailyref[$k]->{COOL} $dailyref[$k]->{IMPR}  $dailyref[$k]->{CLICK}  $ctp\% ~; $master->{reports}->bar_table($master,$dailyref[$k]->{IMPR},$dailyref[$k]->{CLICK}); print qq~
    Total: $impr_sum $click_sum $ctp\%  
    ~; } # << GROUP DAY TABLE GENERATOR # >> ADTYPE DAY TABLE GENERATOR sub adtype_day_table_generator{ my($self,$master)=@_; # get config and env vars my $images_url=$master->{config}->get_images_url; my $cgi_bin_url=$master->{config}->get_cgi_bin_url; my $cache=$master->{env}->get_cache; my $hour=$master->{env}->get_hour; my $date=$master->{env}->get_date; # input vars my $tid=$master->{query}->param('tid'); my $month=$master->{query}->param('month'); my $year=$master->{query}->param('year'); my $where=""; if($year+0==0){ $month=$master->{db}->single_result("SELECT MONTHNAME('$date')"); $year=$master->{db}->single_result("SELECT YEAR('$date')"); $where=qq~AND MONTHNAME(LOG_DATE)='$month' AND YEAR(LOG_DATE)='$year'~; } if($year>0 && length($month)>0){ $where=qq~AND MONTHNAME(LOG_DATE)='$month' AND YEAR(LOG_DATE)='$year'~; } #get the ad media my(@dailyref)=$master->{db}->select_multi_row_hash(" SELECT sum(IMPR) as IMPR, sum(CLICK) as CLICK, DATE_FORMAT(LOG_DATE,'%M, %d %Y') as COOL, LOG_DATE FROM temp_log,cp WHERE cp.TID='$tid' AND cp.CID=temp_log.CID $where GROUP BY LOG_DATE ORDER BY LOG_DATE DESC "); my $dailytot=@dailyref; # find max $master->{IMPR}=0; $master->{CLICK}=0; for(my $k=0;$k<$dailytot;$k++){ if($dailyref[$k]->{IMPR}>$master->{IMPR}){ $master->{IMPR}=$dailyref[$k]->{IMPR}; } if($dailyref[$k]->{CLICK}>$master->{CLICK}){ $master->{CLICK}=$dailyref[$k]->{CLICK}; } } $master->{WIDTH}=200; # >> print ""; my(@dateref)=$master->{db}->select_multi_row_hash(" SELECT DISTINCT MONTHNAME(LOG_DATE) AS xMONTHNAME,YEAR(LOG_DATE) as xYEAR,MONTH(LOG_DATE) as xMONTH FROM temp_log,cp WHERE cp.TID='$tid' AND cp.CID=temp_log.CID ORDER BY xYEAR DESC, xMONTH DESC "); my $datetot=@dateref; print qq~
    ~; # << # first row print qq~ ~; my $impr_sum=0; my $click_sum=0; my $rot; for(my $k=0;$k<$dailytot;$k++){ my $ctp=$master->{tools}->ctp_calculation($dailyref[$k]->{IMPR},$dailyref[$k]->{CLICK}); $impr_sum+=$dailyref[$k]->{IMPR}; $click_sum+=$dailyref[$k]->{CLICK}; my $color="EEEEEE"; if($rot==1){ $color="EEEEDE"; $rot=0; }else{ $rot++; } my $impr=$master->{tools}->comma_insert($dailyref[$k]->{IMPR}); my $click=$master->{tools}->comma_insert($dailyref[$k]->{CLICK}); print qq~ ~; } my $ctp=$master->{tools}->ctp_calculation($impr_sum,$click_sum); $impr_sum=$master->{tools}->comma_insert($impr_sum); $click_sum=$master->{tools}->comma_insert($click_sum); print qq~
    Date Impr Clicks CTR  
    $dailyref[$k]->{COOL} $dailyref[$k]->{IMPR}  $dailyref[$k]->{CLICK}  $ctp\% ~; $master->{reports}->bar_table($master,$dailyref[$k]->{IMPR},$dailyref[$k]->{CLICK}); print qq~
    Total: $impr_sum $click_sum $ctp\%  
    ~; } # << ADTYPE DAY TABLE GENERATOR # >> GROUP HOUR CHART GENERATOR sub group_hour_chart_generator{ my($self,$master)=@_; # get config and env vars my $images_url=$master->{config}->get_images_url; my $cgi_bin_url=$master->{config}->get_cgi_bin_url; my $cache=$master->{env}->get_cache; my $hour=$master->{env}->get_hour; # input vars my $gid=$master->{query}->param('gid'); #get the ad media my(@dailyref)=$master->{db}->select_multi_row_hash("SELECT sum(IMPR) as IMPR, sum(CLICK) as CLICK,LOG_HOUR FROM daily_log where GID='$gid' GROUP BY LOG_DATE,LOG_HOUR ORDER BY LOG_DATE DESC,LOG_HOUR DESC LIMIT 23"); my $dailytot=@dailyref; my $gridref=$master->{db}->select_single_row_hash("SELECT SUM(HOUR_IMPR) as IMPR,SUM(HOUR_CLICK) as CLICK FROM cp_grouping WHERE GID='$gid'"); $gridref->{CLICK}*=10+0; my $sample_Values="$gridref->{IMPR}"; my $sample_Values2="$gridref->{CLICK}"; my $sample_Labels="$hour"; for(my $k=0;$k<$dailytot;$k++){ $dailyref[$k]->{CLICK}*=10+0; $sample_Values2="$dailyref[$k]->{CLICK},".$sample_Values2; $sample_Values="$dailyref[$k]->{IMPR},".$sample_Values; $sample_Labels="$dailyref[$k]->{LOG_HOUR},".$sample_Labels; } print qq~ ~; } # << GROUP HOUR CHART GENERATOR # >> BAR TABLE sub bar_table{ my($self,$master,$impr,$click)=@_; my $images_url=$master->{config}->get_images_url; my $width_blue=2; if($master->{IMPR}>0){ $width_blue=int(($impr/$master->{IMPR})*$master->{WIDTH})+2; } my $width_clearb=$master->{WIDTH}-$width_blue; my $width_orange=2; if($master->{CLICK}>0){ $width_orange=int(($click/($master->{CLICK}*2))*$master->{WIDTH})+2; } my $width_clearo=$master->{WIDTH}-$width_orange; print qq~

    ~; } # << BAR TABLE # >> DAY CHART GENERATOR sub day_chart_generator{ my($self,$master)=@_; # get config and env vars my $images_url=$master->{config}->get_images_url; my $cgi_bin_url=$master->{config}->get_cgi_bin_url; my $cache=$master->{env}->get_cache; my $hour=$master->{env}->get_hour; my $date=$master->{env}->get_date; # input vars my $cid=$master->{query}->param('cid'); #get the ad media my(@dailyref)=$master->{db}->select_multi_row_hash("SELECT sum(IMPR) as IMPR, sum(CLICK) as CLICK,LOG_DATE FROM daily_log where CID='$cid' GROUP BY CID,LOG_DATE ORDER BY LOG_DATE DESC, LIMIT 14"); my $dailytot=@dailyref; my $cidref=$master->{db}->select_single_row_hash("SELECT TODAY_IMPR as IMPR,TODAY_CLICK as CLICK FROM cp WHERE CID='$cid'"); $cidref->{CLICK}*=10+0; my $sample_Values="$cidref->{IMPR}"; my $sample_Values2="$cidref->{CLICK}"; my $sample_Labels="$date"; for(my $k=0;$k<$dailytot;$k++){ $dailyref[$k]->{CLICK}*=10+0; $sample_Values2="$dailyref[$k]->{CLICK},".$sample_Values2; $sample_Values="$dailyref[$k]->{IMPR},".$sample_Values; $sample_Labels="$dailyref[$k]->{LOG_DATE},".$sample_Labels; } my $height=$dailytot*40+85; print qq~ ~; } # << DAY CHART GENERATOR sub campaigns{ my($self,$master)=@_; # get config and env vars my $images_url=$master->{config}->get_images_url; my $cgi_bin_url=$master->{config}->get_cgi_bin_url; my $cache=$master->{env}->get_cache; # advertiser info my $aidref=$master->{db}->select_single_row_hash("SELECT * FROM ad where LOGIN='$master->{whoami}'"); # get the campaigns my(@cidref)=$master->{db}->select_multi_row_hash("SELECT * FROM cp WHERE AID='$aidref->{AID}' ORDER BY CAMPAIGN_NAME"); my $cidtot=@cidref; # print header $master->{LINK}="campaigns"; $master->{html}->header($master,"Advertiser Campaigns"); print qq~
    ~; my $last_class="td3"; my $counter=0; my $old_link_type; my $coo; for(my $k=0;$k<$cidtot;$k++){ # money calcs my $ctp=$master->{tools}->ctp_calculation($cidref[$k]->{DELIVERED_IMPR},$cidref[$k]->{DELIVERED_CLICK}); my $earnings=$cidref[$k]->{CPM}*$cidref[$k]->{DELIVERED_IMPR}/1000+$cidref[$k]->{CPC}*$cidref[$k]->{DELIVERED_CLICK}; my $effcpm=0; if($cidref[$k]->{DELIVERED_IMPR}>0){ $effcpm=$earnings/($cidref[$k]->{DELIVERED_IMPR}/1000); } $effcpm=sprintf("%.2f",$effcpm); $effcpm="\$$effcpm"; $earnings=sprintf("%.2f",$earnings); $earnings="\$$earnings"; if($cidref[$k]->{CPM}+$cidref[$k]->{CPC}==0){ $earnings="N/A"; $effcpm="N/A"; } # link type my $link_type="Text"; if($cidref[$k]->{HEIGHT}>1 && $cidref[$k]->{WIDTH}>1){ $link_type="$cidref[$k]->{WIDTH}x$cidref[$k]->{HEIGHT}"; } # class control if($link_type ne $old_link_type){ $old_link_type=$link_type; $counter++; if($counter > 2){$counter=1}; } if($counter==1){$last_class="td3";} if($counter==2){$last_class="td4";} my $color="td3"; if($coo==1){ $color="td5"; $coo=0; }else{ $coo++; } my $status="Off"; if($cidref[$k]->{STATUS}==1){ $status="Active"; } $cidref[$k]->{DELIVERED_IMPR}=$master->{tools}->comma_insert($cidref[$k]->{DELIVERED_IMPR}); $cidref[$k]->{DELIVERED_CLICK}=$master->{tools}->comma_insert($cidref[$k]->{DELIVERED_CLICK}); print qq~ ~; } print qq~
    Campaigns for: $aidref->{ADVERTISER_NAME}
     Name Ad Type Status Impr Clicks CTP Functions
     $cidref[$k]->{CAMPAIGN_NAME} $link_type $status $cidref[$k]->{DELIVERED_IMPR}  $cidref[$k]->{DELIVERED_CLICK}  $ctp\% View Report
     
     
    ~; $master->{html}->footer($master); } # END VIEW ADVERTISERS sub campaign_report{ my($self,$master)=@_; # get config and env vars my $images_url=$master->{config}->get_images_url; my $cgi_bin_url=$master->{config}->get_cgi_bin_url; my $date=$master->{config}->get_date; my $cache=$master->{env}->get_cache; # input vars my $cid=$master->{query}->param('cid'); # advertiser info my $aidref=$master->{db}->select_single_row_hash("SELECT * FROM ad where LOGIN='$master->{whoami}'"); #get the campaign ref my $cidref=$master->{db}->select_single_row_hash("SELECT * FROM cp where CID='$cid' AND AID='$aidref->{AID}'"); #get the ad media my(@midref)=$master->{db}->select_multi_row_hash("SELECT * FROM cp_media where CID='$cid'"); my $midtot=@midref; # print header $master->{html}->header($master,"Report for: $cidref->{CAMPAIGN_NAME}"); # start and end dates my @MONTH; my @DAY; my @MONTH2; my @DAY2; my %YEAR; my %YEAR2; my ($smonth,$sday,$syear)=$master->{tools}->date_splice("$cidref->{START_DATE}"); $DAY[$sday+0]=" selected"; $MONTH[$smonth+0]=" selected"; $YEAR{"$syear"}=" selected"; my ($emonth,$eday,$eyear)=$master->{tools}->date_splice("$cidref->{END_DATE}"); $DAY2[$eday+0]=" selected"; $MONTH2[$emonth+0]=" selected"; $YEAR2{"$eyear"}=" selected"; # checkboxes my %ui; if($cidref->{MAX_IMPR}==0){$ui{1}=" checked ";}; my %uc; if($cidref->{MAX_CLICK}==0){$uc{1}=" checked ";}; my %udi;if($cidref->{MAX_DAILY_IMPR}==0){$udi{1}=" checked ";}; my %udc;if($cidref->{MAX_DAILY_CLICK}==0){$udc{1}=" checked ";}; # geometry my $geometry="$cidref->{WIDTH} x $cidref->{HEIGHT}"; if($cidref->{WIDTH}==1 && $cidref->{HEIGHT}==1){ $geometry="Text Link"; } ########################### ########### CAMPAIGN ADS ## my $today_ctp=$master->{tools}->ctp_calculation($cidref->{TODAY_IMPR},$cidref->{TODAY_CLICK}); my $total_ctp=$master->{tools}->ctp_calculation($cidref->{DELIVERED_IMPR},$cidref->{DELIVERED_CLICK}); my $status=qq~Off~; if($cidref->{IMPR_BIN}+$cidref->{CLICK_BIN}>0){ $status=qq~On~; } #IMPRESSION BIN:$cidref->{IMPR_BIN}
    #CLICK BIN:$cidref->{CLICK_BIN}
    my $xDELIVERED_IMPR=$cidref->{DELIVERED_IMPR}; my $xDELIVERED_CLICK=$cidref->{DELIVERED_CLICK}; $cidref->{DELIVERED_IMPR}=$master->{tools}->comma_insert($cidref->{DELIVERED_IMPR}); $cidref->{DELIVERED_CLICK}=$master->{tools}->comma_insert($cidref->{DELIVERED_CLICK}); $cidref->{TODAY_IMPR}=$master->{tools}->comma_insert($cidref->{TODAY_IMPR}); $cidref->{TODAY_CLICK}=$master->{tools}->comma_insert($cidref->{TODAY_CLICK}); print qq~  
    Campaign Report
      Impressions Clicks CTR
    Today $cidref->{TODAY_IMPR} $cidref->{TODAY_CLICK} $today_ctp\%
    Total $cidref->{DELIVERED_IMPR} $cidref->{DELIVERED_CLICK} $total_ctp\%

    ~; #get the ad media my(@dailyref)=$master->{db}->select_multi_row_hash("SELECT sum(IMPR) as IMPR, sum(CLICK) as CLICK,DATE_FORMAT(LOG_DATE,'%b %d, %Y') as COOL,LOG_DATE FROM daily_log where CID='$cid' GROUP BY LOG_DATE ORDER BY LOG_DATE DESC"); my $maxi=0; for(my $k=0;$k<7;$k++){ if($dailyref[$k]->{IMPR}>$maxi){ $maxi=$dailyref[$k]->{IMPR}; } } $maxi++; for(my $k=0;$k<7;$k++){ my $impr=$dailyref[$k]->{IMPR}+0; my $widthi=(158/$maxi)*$impr+2; my $widthi2=160-$widthi; my $click=$dailyref[$k]->{CLICK}+0; if(!$dailyref[$k]->{LOG_DATE}){ $dailyref[$k]->{LOG_DATE}="NA"; } $impr=$master->{tools}->comma_insert($impr); print qq~ ~; } print qq~
    $dailyref[$k]->{COOL} $impr
    ~; my $max_iremaining=$cidref->{MAX_IMPR}-$xDELIVERED_IMPR; my $max_cremaining=$cidref->{MAX_CLICK}-$xDELIVERED_CLICK; my $max_idisplay=$cidref->{MAX_IMPR}; if($cidref->{MAX_IMPR}==0){ $max_idisplay="Unlimited"; $max_iremaining="Unlimited"; } my $max_cdisplay=$cidref->{MAX_CLICK}; if($cidref->{MAX_CLICK}==0){ $max_cdisplay="Unlimited"; $max_cremaining="Unlimited"; } print qq~
    Status: $status
    Campaign Name: $cidref->{CAMPAIGN_NAME}
    Ad Type: $geometry
    Start Date: $cidref->{START_DATE}
    End Date: $cidref->{END_DATE}
    Impr Target: $max_idisplay
    Click Target: $max_cdisplay
    Impr Remaining: $max_iremaining
    Clicks Remaining: $max_cremaining

     - Daily History

     
     
     
    ~; for(my $k=0;$k<$midtot;$k++){ my $ctp=$master->{tools}->ctp_calculation($midref[$k]->{TOTAL_IMPR},$midref[$k]->{TOTAL_CLICK}); my $type="GIF"; if($midref[$k]->{AD_TYPE}==1){ $type="HTML"; } $midref[$k]->{TOTAL_IMPR}=$master->{tools}->comma_insert($midref[$k]->{TOTAL_IMPR}); $midref[$k]->{TOTAL_CLICK}=$master->{tools}->comma_insert($midref[$k]->{TOTAL_CLICK}); print qq~ ~; # if($midref[$k]->{AD_TYPE}==0){ # print qq~~; # }else{ # print qq~~; # } # print qq~ # # ~; } print qq~
    Campaign Ad Performance  
    Name Type Priority Impr Clicks CTR
    $midref[$k]->{NAME} $type $midref[$k]->{WEIGHT} $midref[$k]->{TOTAL_IMPR}  $midref[$k]->{TOTAL_CLICK}  $ctp\%
    Edit | Reset | DeleteEdit | Reset | Delete
     
     
     
    ~; ########### CAMPAIGN ADS ## ########################### ########################### ########### DISPLAY ADS ## print qq~
    Campaign Ads ~; # [Add a New GIF Ad]   [Add a New HTML Ad] print qq~
    ~; for(my $k=0;$k<$midtot;$k++){ my $ctp=$master->{tools}->ctp_calculation($midref[$k]->{TOTAL_IMPR},$midref[$k]->{TOTAL_CLICK}); my $img_url=$midref[$k]->{IMG_URL}; my $click_url=$midref[$k]->{CLICK_URL}; my $alt=$midref[$k]->{ALT}; my $under_text=$midref[$k]->{UNDER_TEXT}; $img_url=~s/IDNUMBER+/$cache/g; $click_url=~s/IDNUMBER+/$cache/g; $alt=~s/IDNUMBER+/$cache/g; $under_text=~s/IDNUMBER+/$cache/g; if(length($under_text)>0){ $under_text=qq~$under_text~; } print qq~ ~; } print qq~
    $midref[$k]->{NAME} ~; if($midref[$k]->{AD_TYPE}==0){ print qq~
    {WIDTH} height=$cidref->{HEIGHT} border=$midref[$k]->{BORDER} alt="$alt">
    $under_text
    ~; }else{ my $rich_ad=$midref[$k]->{RICH}; $rich_ad=~s/IDNUMBER+/$cache/g; print qq~
    $rich_ad
    ~; } print qq~
     
     
     
     
    ~; ########### DISPLAY ADS ## ########################### $master->{html}->footer($master); } # Copyright (c) 2003 AdCycle.com All rights reserved. # http://www.adcycle.com - download the lastest version of adcycle 1;