'POST',
'callback' => 'adsensei_confirm_code',
'permission_callback' => function(){
return current_user_can( 'manage_options' );
}
));
register_rest_route( 'adsensei-adsense', 'adsensei_adsense_get_details', array(
'methods' => 'POST',
'callback' => 'adsensei_adsense_get_details',
'permission_callback' => function(){
return current_user_can( 'manage_options' );
}
));
register_rest_route( 'adsensei-adsense', 'get_report_status', array(
'methods' => 'POST',
'callback' => 'adsensei_adsense_get_report_status',
'permission_callback' => function(){
return current_user_can( 'manage_options' );
}
));
register_rest_route( 'adsensei-adsense', 'get_report_adsense', array(
'methods' => 'POST',
'callback' => 'adsensei_adsense_get_report_data',
'permission_callback' => function(){
return current_user_can( 'manage_options' );
}
));
register_rest_route( 'adsensei-adsense', 'get_report_stats', array(
'methods' => 'POST',
'callback' => 'adsensei_ads_stats_get_report_data',
'permission_callback' => function(){
return current_user_can( 'manage_options' );
}
));
register_rest_route( 'adsensei-adsense', 'get_report_abtesting', array(
'methods' => 'POST',
'callback' => 'adsensei_adsense_get_report_abtesting_data',
'permission_callback' => function(){
return current_user_can( 'manage_options' );
}
));
register_rest_route( 'adsensei-adsense', 'revoke_adsense_link', array(
'methods' => 'POST',
'callback' => 'adsensei_adsense_revoke_adsense_link',
'permission_callback' => function(){
return current_user_can( 'manage_options' );
}
));
}
function adsensei_adsense_revoke_adsense_link($request_data){
$parameters = $request_data->get_params();
$options = adsensei_get_option_adsense();
$account_id = $parameters['account_id'];
$token = $options['accounts'][ $account_id ]['refresh_token'];
$url = 'https://accounts.google.com/o/oauth2/revoke?token=' . esc_html($token);
$args = array(
'timeout' => 5,
'header' => array( 'Content-type' => 'application/x-www-form-urlencoded' ),
);
$response = wp_remote_post( $url, $args );
if ( is_wp_error( $response ) ) {
echo json_encode( array( 'status' => false ) );
} else {
// remove all the adsense stats
delete_option("adsensei_adsense_api_data");
echo json_encode( array( 'status' => true ) );
}
}
function adsensei_adsense_get_report_status($request_data){
$parameters = $request_data->get_params();
$reportlist =array();
$adsensei_get_option_adsense =adsensei_get_option_adsense();
$account_id ='';
$status = false;
if(isset($adsensei_get_option_adsense['accounts']) && !empty($adsensei_get_option_adsense['accounts'])){
//$account_id =implode(',',array_keys($adsensei_get_option_adsense['accounts']));
$account_id = $adsensei_get_option_adsense['accounts'][""]["details"];
$status = true;
}
$reportlist['adsense'] = array("status"=>$status,"account_id" =>$account_id);
return $reportlist;
}
function adsensei_confirm_code($request_data){
$parameters = $request_data->get_params();
$code = isset($parameters['report']['adsense_code']) ?urldecode( $parameters['report']['adsense_code'] ) :'';
$cid = client_id;
$cs = client_secret;
$code_url = 'https://www.googleapis.com/oauth2/v4/token';
$redirect_uri = 'urn:ietf:wg:oauth:2.0:oob';
$grant_type = 'authorization_code';
$args = array(
'timeout' => 10,
'body' => array(
'code' => $code,
'client_id' => $cid,
'client_secret' => $cs,
'redirect_uri' => $redirect_uri,
'grant_type' => $grant_type,
),
);
$response = wp_remote_post( $code_url, $args );
if ( is_wp_error( $response ) ) {
return json_encode(
array(
'status' => false,
'msg' => 'error while submitting code',
'raw' => $response->get_error_message(),
)
);
} else {
$token = json_decode( $response['body'], true );
if ( null !== $token && isset( $token['refresh_token'] ) ) {
$expires = time() + absint( $token['expires_in'] );
$token['expires'] = $expires;
echo json_encode(
array(
'status' => true,
'token_data' => $token,
)
);
} else {
echo json_encode(
array(
'status' => false,
'response_body' => $response['body'],
)
);
}
}
die;
}
function adsensei_adsense_get_details($request_data){
$parameters = $request_data->get_params();
$url = 'https://adsense.googleapis.com/v2/accounts';
$token_data = wp_unslash( $parameters );
if ( ! is_array( $token_data ) ) {
echo json_encode(
array(
'status' => false,
'error_msg' => esc_html__( 'No token provided. Token data needed to get account details.', 'adsenseib30' ),
)
);
die;
}
$headers = array( 'Authorization' => 'Bearer ' . $token_data['access_token'] );
$response = wp_remote_get( $url, array( 'headers' => $headers ) );
if ( is_wp_error( $response ) ) {
echo json_encode(
array(
'status' => false,
'error_msg' => $response->get_error_message(),
)
);
} else {
$accounts = json_decode( $response['body'], true );
if ( isset( $accounts ) ) {
$options = adsensei_get_option_adsense();
$options['connect_error'] = array();
update_option( 'adsensei_adsense_api_data', $options );
// $adsense_id = $accounts['items'][0]['id'];
// $name = $accounts['items'][0]['name'];
$adsense_id = $accounts["accounts"][0]['displayName'];
$name = $accounts["accounts"][0]['name'];
// adsensei_save_token_from_data( $token_data, $accounts['items'][0]);
adsensei_save_token_from_data( $token_data, $accounts["accounts"][0]);
echo json_encode(
array(
'status' => true,
'adsense_id' => $adsense_id,
'name' => $name,
)
);
} else {
if ( isset( $accounts['error'] ) ) {
$msg = esc_html__( 'An error occurred while requesting account details.', 'advanced-ads' );
if ( isset( $accounts['error']['message'] ) ) {
$msg = $accounts['error']['message'];
}
$options = get_option('adsensei_adsense_api_data');
$options['connect_error'] = array(
'message' => $msg,
);
if ( isset( $accounts['error']['errors'][0]['reason'] ) ) {
$options['connect_error']['reason'] = $accounts['error']['errors'][0]['reason'];
}
update_option( 'adsensei_adsense_api_data', $options );
echo json_encode(
array(
'status' => false,
'error_msg' => $msg,
'raw' => $accounts['error'],
)
);
}
}
}
die;
}
function adsensei_get_option_adsense(){
$default_options =array(
'accounts' => array(),
'ad_codes' => array(),
'unsupported_units' => array(),
'quota' => array(
'count' => 20,
'ts' => 0,
),
'connect_error' => array(),
);
$options = get_option( 'adsensei_adsense_api_data', array() );
if ( ! is_array( $options ) ) {
$options = array();
}
return $options + $default_options;
}
function adsensei_save_token_from_data( $token, $details, $args = array() ) {
$empty_account_data = array(
'access_token' => '',
'refresh_token' => '',
'expires' => 0,
'token_type' => '',
'ad_units' => array(),
'details' => array(),
);
$options = adsensei_get_option_adsense();
$adsense_id = $details ['id'];
if ( ! isset( $options['accounts'][ $adsense_id ] ) ) {
$options['accounts'][ $adsense_id ] = $empty_account_data;
}
$options['accounts'][ $adsense_id ] = array(
'access_token' => $token['access_token'],
'refresh_token' => $token['refresh_token'],
'expires' => $token['expires'],
'token_type' => $token['token_type'],
);
$options['accounts'][ $adsense_id ]['details'] = $details;
update_option( 'adsensei_adsense_api_data', $options );
}
function has_token( $adsense_id = '' ) {
if ( empty( $adsense_id ) ) {
return false;
}
$has_token = false;
$options = get_option();
if ( isset( $options['accounts'][ $adsense_id ] ) && ! empty( $options['accounts'][ $adsense_id ]['refresh_token'] ) ) {
$has_token = true;
}
return $has_token;
}
function adsensei_adsense_get_report_abtesting_data(){
global $wpdb;
$results = $wpdb->get_results( "SELECT * FROM `wp_adsensei_stats` ");
if(!empty($results)) {
$adsensei_table = "
";
$adsensei_table.= "";
$adsensei_table.= '
| ID |
Beginning Of Post |
End Of Post |
Middle Of Post |
After more Tag |
';
foreach($results as $row){
$userip = $row->ad_clicks;
$adsensei_table.= '
| '.$row->id.' |
'.$row->Beginning_of_post.' |
'.$row->End_of_post.' |
'.$row->Middle_of_post.' |
'.$row->After_more_tag.' |
';
}
$adsensei_table.= "";
$adsensei_table.= "
";
}
echo json_encode(
array(
'status' => 'success',
'success_msg' => $adsensei_table,
));
}
function adsensei_adsense_get_report_data($request_data){
$parameters = $request_data->get_params();
$report_period = (isset($parameters['report_period'])&& !empty($parameters['report_period']))?$parameters['report_period'] :'';
$report_type = (isset($parameters['report_type'])&& !empty($parameters['report_type']))?$parameters['report_type'] :'';
$input_based = (isset($parameters['input_based'])&& !empty($parameters['input_based']))?$parameters['input_based'] :'';
$report_view_type = (isset($parameters['report_view_type'])&& !empty($parameters['report_view_type']))?$parameters['report_view_type'] :'';
$forcast_date_count = 0;
$endDate = (isset($parameters['endDate'])&& $parameters['endDate'])?$parameters['endDate'] :date('Y-m-d');
switch ($report_period) {
case 'last_7_days':
$startDate = strtotime(" -6 day");
$forcast_date_count = 7;
break;
case 'last_15_days':
$startDate = strtotime(" -14 day");
$forcast_date_count = 15;
break;
case 'last_30_days':
$startDate = strtotime(" -29 day");
$forcast_date_count = 30;
break;
case 'last_6_months':
$startDate = strtotime("-6 month");
$forcast_date_count = 180;
break;
case 'last_1_year':
$startDate = strtotime('-1 year');
$forcast_date_count = 365;
break;
case 'custom':
$startDate = (isset($parameters['cust_fromdate'])&& !empty($parameters['cust_fromdate']))?strtotime(str_replace("/", "-",$parameters['cust_fromdate'])) :strtotime("now");
$endDate = (isset($parameters['cust_todate'])&& !empty($parameters['cust_todate']))?date("Y-m-d", strtotime(str_replace("/", "-",$parameters['cust_todate']))) :date("Y-m-d");
$forcast_date_count = 365;
break;
case 'all_time':
$startDate = strtotime('-3 year');
$forcast_date_count = 900;
break;
default:
$forcast_date_count = 7;
$startDate = strtotime(" -6 day");
break;
}
$account_id = $parameters['account_id'];
$startDate = date("Y-m-d", $startDate);//date('Y-m-d',$startDate);
$token_data = adsensei_adsense_get_access_token($account_id);
switch ($report_type){
case 'earning_forcast':
$url = 'https://adsense.googleapis.com/v2/accounts/'.esc_html($account_id).'/reports:generate?dateRange='.esc_html($report_period).'&dimensions=MONTH&metrics=ESTIMATED_EARNINGS';
break;
case 'top_device_type':
$report_type = 'PLATFORM_TYPE_CODE';
$url = 'https://adsense.googleapis.com/v2/accounts/'.esc_html($account_id).'/reports:generate?dateRange='.esc_html($report_period).'&dimensions=PLATFORM_TYPE_CODE&metrics=TOTAL_EARNINGS';
break;
case 'earning':
default:
$report_type = 'EARNINGS';
// $url = 'https://www.googleapis.com/adsense/v1.4/accounts/'.esc_html($account_id).'/reports?startDate='.esc_html($startDate).'&endDate='.esc_html($endDate).'&dimension=DATE&dimension=EARNINGS&metric=EARNINGS&useTimezoneReporting=true';
$url = 'https://adsense.googleapis.com/v2/accounts/'.esc_html($account_id).'/reports:generate?dateRange='.esc_html($report_period).'&dimensions=MONTH&metrics=TOTAL_EARNINGS';
break;
}
$token_data = wp_unslash( $token_data);
$headers = array( 'Authorization' => 'Bearer ' . $token_data );
$response = wp_remote_get( $url, array( 'headers' => $headers ) );
if ( is_wp_error( $response ) ) {
echo json_encode(
array(
'status' => false,
'error_msg' => $response->get_error_message(),
)
);
} else {
// $adsense_data_response = json_decode( $response['body'], true );
return json_decode( $response['body'], true );
// return $adsense_data_response['rows'];
}
die;
}
function adsensei_ads_stats_get_report_data($request_data, $ad_id=''){
global $wpdb;
$ad_stats = array();
$ad_id = $_GET['id'];
$mydate = $_GET['date'];
$day = $_GET['day'];
$date_timestamp = strtotime($mydate);
$new_date = date('d_m_Y', $date_timestamp);
$todays_date = date("Y-m-d");
$individual_ad_dates = '';
$array_top5=array();
$col_name_imprsn = 'impressions_'.$new_date;
$col_name_clicks = 'clicks_'.$new_date;
if( $day == "last_7_days" ){
$loop = 7 ;
$month= date("m");
$date_= date("d");
$year= date("Y");
$dates_i = array() ;
$dates_c = '';
for( $i=0; $i<=$loop; $i++ ){
$dates_i[] = ''.date('Y-m-d', mktime(0,0,0,$month,( $date_-$i ) , $year ) );
}
sort($dates_i);
$from_date = $todays_date;
$to_date = $dates_i[0];
if($ad_id=='all') {
$results_impresn_S = $wpdb->get_results(
$wpdb->prepare(
"SELECT date_impression, ad_date FROM `{$wpdb->prefix}adsensei_single_stats_` WHERE ad_date BETWEEN %s AND %s",
$to_date,
$from_date
)
);
}
else
{
$results_impresn_S = $wpdb->get_results(
$wpdb->prepare(
"SELECT date_impression, ad_date FROM `{$wpdb->prefix}adsensei_single_stats_` WHERE ad_date BETWEEN %s AND %s AND `ad_id` = %d",
$to_date,
$from_date,
$ad_id
)
);
}
$array = array_values($results_impresn_S);
$ad_imprsn = 0;
$ad_imprsn_values = array(0,0,0,0,0,0,0) ;
$dates_i_chart = array() ;
for( $i=0; $i<=$loop; $i++ ){
$dates_i_chart[] = ''.date('Y-m-d', mktime(0,0,0,$month,( $date_-$i ) , $year ) );
}
sort($dates_i_chart);
$get_impressions_specific_dates = str_replace('-','/',$dates_i_chart);
foreach ($array as $key => $value) {
$ad_imprsn += $value->date_impression;
$key_ = array_search($value->ad_date, $dates_i_chart);
$ad_imprsn_values[$key_] += $value->date_impression;
}
$individual_impr_day_counts = $ad_imprsn_values;
if($ad_id=='all') {
$results_click_S = $wpdb->get_results(
$wpdb->prepare(
"SELECT date_click, ad_date FROM `{$wpdb->prefix}adsensei_single_stats_` WHERE ad_date BETWEEN %s AND %s",
$to_date,
$from_date
)
);
}
else
{
$results_click_S = $wpdb->get_results(
$wpdb->prepare(
"SELECT date_click, ad_date FROM `{$wpdb->prefix}adsensei_single_stats_` WHERE ad_date BETWEEN %s AND %s AND `ad_id` = %d",
$to_date,
$from_date,
$ad_id
)
);
}
$array_c = array_values($results_click_S);
$ad_clicks = 0;
$ad_click_values = array(0,0,0,0,0,0,0) ;
foreach ($array_c as $key => $value) {
$ad_clicks += $value->date_click;
$key_ = array_search($value->ad_date, $dates_i_chart);
$ad_click_values[$key_] += $value->date_click;
}
$individual_click_day_counts = $ad_click_values;
if($ad_id=="all")
{
$results_top5 = $wpdb->get_results(
$wpdb->prepare(
"SELECT `{$wpdb->prefix}posts`.ID, `{$wpdb->prefix}posts`.post_title,
SUM(`{$wpdb->prefix}adsensei_single_stats_`.date_impression) as total_impression,
SUM(`{$wpdb->prefix}adsensei_single_stats_`.date_click) as total_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
INNER JOIN `{$wpdb->prefix}posts`
ON `{$wpdb->prefix}posts`.ID = `{$wpdb->prefix}adsensei_single_stats_`.ad_id
WHERE `{$wpdb->prefix}adsensei_single_stats_`.ad_date BETWEEN %s AND %s
GROUP BY `{$wpdb->prefix}posts`.post_title
ORDER BY SUM(`{$wpdb->prefix}adsensei_single_stats_`.date_click) DESC
LIMIT 5",
$to_date,
$from_date
)
);
$array_top5 = array_values($results_top5);
}
}
else if( $day == "this_month" ){
$loop = 30 ;
$month= date("m");
$date_= date("d");
$year= date("Y");
$first_date_ = date('Y-m-d',strtotime('first day of this month'));
$current_date_month_ = date('Y-m-d');
if($ad_id=='all') {
$results_impresn_F = $wpdb->get_results(
$wpdb->prepare(
"SELECT date_impression, ad_date FROM `{$wpdb->prefix}adsensei_single_stats_` WHERE ad_date BETWEEN %s AND %s",
$first_date_,
$current_date_month_
)
);
}
else
{
$results_impresn_F = $wpdb->get_results(
$wpdb->prepare(
"SELECT date_impression, ad_date FROM `{$wpdb->prefix}adsensei_single_stats_` WHERE ad_date BETWEEN %s AND %s AND `ad_id` = %d",
$first_date_,
$current_date_month_,
$ad_id
)
);
}
$array = array_values($results_impresn_F);
$ad_imprsn = 0;
$ad_imprsn_values = array() ;
$dates_i_chart = array();
$first_date = date('Y-m-d',strtotime('first day of this month'));
$first__date = $first_date;
$last_date_month = date("Y-m-t", strtotime($first__date));
$begin = new DateTime( $first__date );
$end = new DateTime( $last_date_month );
for($i = $begin; $i <= $end; $i->modify('+1 day')){
$dates_i_chart[] = $i->format("Y-m-d");
$ad_imprsn_values[]=0;
$ad_click_values[] =0;
}
foreach ($array as $key => $value) {
$ad_imprsn += $value->date_impression;
$key_ = array_search($value->ad_date, $dates_i_chart);
$ad_imprsn_values[$key_] += $value->date_impression;
}
$individual_impr_day_counts = $ad_imprsn_values;
$_to_slash = $dates_i_chart;
$get_impressions_specific_dates = str_replace('-','/',$_to_slash);
if($ad_id=='all') {
$results_click_F = $wpdb->get_results(
$wpdb->prepare(
"SELECT date_click, ad_date FROM `{$wpdb->prefix}adsensei_single_stats_` WHERE ad_date BETWEEN %s AND %s",
$first_date_,
$current_date_month_
)
);
}
else
{
$results_click_F = $wpdb->get_results(
$wpdb->prepare(
"SELECT date_click, ad_date FROM `{$wpdb->prefix}adsensei_single_stats_` WHERE ad_date BETWEEN %s AND %s AND `ad_id` = %d",
$first_date_,
$current_date_month_,
$ad_id
)
);
}
$array_c = array_values($results_click_F);
$ad_clicks = 0;
foreach ($array_c as $key => $value) {
$ad_clicks += $value->date_click;
$key_ = array_search($value->ad_date, $dates_i_chart);
$ad_click_values[$key_] += $value->date_click;
}
$individual_click_day_counts = $ad_click_values;
if($ad_id=="all")
{
$results_top5 = $wpdb->get_results(
$wpdb->prepare(
"SELECT `{$wpdb->prefix}posts`.ID, `{$wpdb->prefix}posts`.post_title,
SUM(`{$wpdb->prefix}adsensei_single_stats_`.date_impression) as total_impression,
SUM(`{$wpdb->prefix}adsensei_single_stats_`.date_click) as total_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
INNER JOIN `{$wpdb->prefix}posts`
ON `{$wpdb->prefix}posts`.ID = `{$wpdb->prefix}adsensei_single_stats_`.ad_id
WHERE `{$wpdb->prefix}adsensei_single_stats_`.ad_date BETWEEN %s AND %s
GROUP BY `{$wpdb->prefix}posts`.post_title
ORDER BY SUM(`{$wpdb->prefix}adsensei_single_stats_`.date_click) DESC
LIMIT 5",
$first_date_,
$current_date_month_
)
);
$array_top5 = array_values($results_top5);
}
}
else if( $day == "last_month" ){
$loop = 30 ;
$year = date("Y");
if($ad_id=='all') {
$results_impresn_F = $wpdb->get_results(
$wpdb->prepare(
"SELECT date_impression, ad_date FROM `{$wpdb->prefix}adsensei_single_stats_` WHERE MONTH(ad_date) = MONTH(NOW()) - 1 AND YEAR(ad_date) = %d",
$year
)
);
}
else
{
$results_impresn_F = $wpdb->get_results(
$wpdb->prepare(
"SELECT date_impression, ad_date FROM `{$wpdb->prefix}adsensei_single_stats_` WHERE MONTH(ad_date) = MONTH(NOW()) - 1 AND YEAR(ad_date) = %d AND `ad_id` = %d",
$year,
$ad_id
)
);
}
$array = array_values($results_impresn_F);
$ad_imprsn = 0;
$ad_imprsn_values = array() ;
$ad_click_values = array();
$dates_i_chart= array();
$year = date("Y",strtotime("-1 month"));
$month = date("m",strtotime("-1 month"));
for($d=1; $d<=31; $d++){
$time=mktime(12, 0, 0, $month, $d, $year);
if (date('m', $time)==$month)
$dates_i_chart[] =date('Y-m-d', $time);
$ad_imprsn_values[]=0;
$ad_click_values[]=0;
}
foreach ($array as $key => $value) {
$ad_imprsn += $value->date_impression;
$key_ = array_search($value->ad_date, $dates_i_chart);
$ad_imprsn_values[$key_] += $value->date_impression;
}
$individual_impr_day_counts = $ad_imprsn_values;
$_to_slash = $dates_i_chart;
$get_impressions_specific_dates = str_replace('-','/',$_to_slash);
if($ad_id=='all') {
$results_click_F = $wpdb->get_results(
$wpdb->prepare(
"SELECT date_click, ad_date FROM `{$wpdb->prefix}adsensei_single_stats_` WHERE MONTH(ad_date) = MONTH(NOW()) - 1 AND YEAR(ad_date) = %d",
$year
)
);
}
else
{
$results_click_F = $wpdb->get_results(
$wpdb->prepare(
"SELECT date_click, ad_date FROM `{$wpdb->prefix}adsensei_single_stats_` WHERE MONTH(ad_date) = MONTH(NOW()) - 1 AND YEAR(ad_date) = %d AND `ad_id` = %d",
$year,
$ad_id
)
);
}
$array_c = array_values($results_click_F);
$ad_clicks = 0;
foreach ($array_c as $key => $value) {
$ad_clicks += $value->date_click;
$key_ = array_search($value->ad_date, $dates_i_chart);
$ad_click_values[$key_] += $value->date_click;
}
$individual_click_day_counts = $ad_click_values;
if($ad_id=="all")
{
$results_top5 = $wpdb->get_results(
$wpdb->prepare(
"SELECT `{$wpdb->prefix}posts`.ID, `{$wpdb->prefix}posts`.post_title,
SUM(`{$wpdb->prefix}adsensei_single_stats_`.date_impression) as total_impression,
SUM(`{$wpdb->prefix}adsensei_single_stats_`.date_click) as total_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
INNER JOIN `{$wpdb->prefix}posts`
ON `{$wpdb->prefix}posts`.ID = `{$wpdb->prefix}adsensei_single_stats_`.ad_id
WHERE MONTH(`{$wpdb->prefix}adsensei_single_stats_`.ad_date) = MONTH(NOW()) - 1
AND YEAR(`{$wpdb->prefix}adsensei_single_stats_`.ad_date) = %d
GROUP BY `{$wpdb->prefix}posts`.post_title
ORDER BY SUM(`{$wpdb->prefix}adsensei_single_stats_`.date_click) DESC
LIMIT 5",
$year
)
);
$array_top5 = array_values($results_top5);
}
}
else if( $day == "all_time" ){
$loop = 30 ;
$month= date("m");
$date_= date("d");
$year= date("Y");
$first_date_ = date('Y-m-d',strtotime('first day of this month'));
$current_date_month_ = date('Y-m-d');
if($ad_id=="all"){
$results_impresn_F = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_impression) AS date_impression, ad_year FROM `{$wpdb->prefix}adsensei_single_stats_` GROUP BY ad_year;"
)
);
}
else
{
$results_impresn_F = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_impression) AS date_impression, ad_year FROM `{$wpdb->prefix}adsensei_single_stats_` WHERE ad_id = %d GROUP BY ad_year;",
$ad_id
)
);
}
$array = array_values($results_impresn_F);
$ad_imprsn = 0;
$ad_imprsn_values = array() ;
$ad_imprsn_values_ = array() ;
foreach ($array as $key => $value) {
$ad_imprsn += $value->date_impression;
$ad_imprsn_values[] = $value->ad_year;
$ad_imprsn_values_[] = $value->date_impression;
}
$individual_impr_day_counts = $ad_imprsn_values_;
// individual_impr_day_counts
$get_impressions_specific_dates = $ad_imprsn_values;
if($ad_id=="all"){
$results_click_F = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_click) AS date_click, ad_year FROM `{$wpdb->prefix}adsensei_single_stats_` GROUP BY ad_year;"
)
);
}
else{
$results_click_F = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_click) AS date_click, ad_year FROM `{$wpdb->prefix}adsensei_single_stats_` WHERE ad_id = %d GROUP BY ad_year;",
$ad_id
)
);
}
$array_c = array_values($results_click_F);
$ad_clicks = 0;
$ad_click_values = array();
$ad_click_values_ = array();
foreach ($array_c as $key => $value) {
$ad_clicks += $value->date_click;
$ad_click_values[] = $value->ad_year;
$ad_click_values_[] = $value->date_click;
}
$individual_click_day_counts = $ad_click_values_;
if($ad_id=="all")
{
$results_top5 = $wpdb->get_results(
$wpdb->prepare(
"SELECT `{$wpdb->prefix}posts`.ID, `{$wpdb->prefix}posts`.post_title,
SUM(`{$wpdb->prefix}adsensei_single_stats_`.date_impression) as total_impression,
SUM(`{$wpdb->prefix}adsensei_single_stats_`.date_click) as total_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
INNER JOIN `{$wpdb->prefix}posts`
ON `{$wpdb->prefix}posts`.ID = `{$wpdb->prefix}adsensei_single_stats_`.ad_id
GROUP BY `{$wpdb->prefix}posts`.post_title
ORDER BY SUM(`{$wpdb->prefix}adsensei_single_stats_`.date_click) DESC
LIMIT 5"
)
);
$array_top5 = array_values($results_top5);
}
}
else if( $day == "this_year" ){
$loop = 30 ;
$month= date("m");
$date_= date("d");
$year= date("Y");
$first_date_ = date('Y-m-d',strtotime('first day of this month'));
$current_date_month_ = date('Y-m-d');
if($ad_id=="all")
{
$jan = $wpdb->get_var(
$wpdb->prepare(
"SELECT SUM(date_impression) AS date_impression
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 1 AND YEAR(ad_date) = %d",
$year
)
);
$feb = $wpdb->get_var(
$wpdb->prepare(
"SELECT SUM(date_impression) AS date_impression
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 2 AND YEAR(ad_date) = %d",
$year
)
);
$mar = $wpdb->get_var(
$wpdb->prepare(
"SELECT SUM(date_impression) AS date_impression
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 3 AND YEAR(ad_date) = %d",
$year
)
);
$apr = $wpdb->get_var(
$wpdb->prepare(
"SELECT SUM(date_impression) AS date_impression
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 4 AND YEAR(ad_date) = %d",
$year
)
);
$may = $wpdb->get_var(
$wpdb->prepare(
"SELECT SUM(date_impression) AS date_impression
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 5 AND YEAR(ad_date) = %d",
$year
)
);
$jun = $wpdb->get_var(
$wpdb->prepare(
"SELECT SUM(date_impression) AS date_impression
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 6 AND YEAR(ad_date) = %d",
$year
)
);
$jul = $wpdb->get_var(
$wpdb->prepare(
"SELECT SUM(date_impression) AS date_impression
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 7 AND YEAR(ad_date) = %d",
$year
)
);
$aug = $wpdb->get_var(
$wpdb->prepare(
"SELECT SUM(date_impression) AS date_impression
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 8 AND YEAR(ad_date) = %d",
$year
)
);
$sep = $wpdb->get_var(
$wpdb->prepare(
"SELECT SUM(date_impression) AS date_impression
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 9 AND YEAR(ad_date) = %d",
$year
)
);
$oct = $wpdb->get_var(
$wpdb->prepare(
"SELECT SUM(date_impression) AS date_impression
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 10 AND YEAR(ad_date) = %d",
$year
)
);
$nov = $wpdb->get_var(
$wpdb->prepare(
"SELECT SUM(date_impression) AS date_impression
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 11 AND YEAR(ad_date) = %d",
$year
)
);
$dec = $wpdb->get_var(
$wpdb->prepare(
"SELECT SUM(date_impression) AS date_impression
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 12 AND YEAR(ad_date) = %d",
$year
)
);
}
else
{
$jan = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_impression) AS date_impression
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 1 AND YEAR(ad_date) = %d AND ad_id = %d",
$year,
$ad_id
)
);
$feb = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_impression) AS date_impression
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 2 AND YEAR(ad_date) = %d AND ad_id = %d",
$year,
$ad_id
)
);
$mar = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_impression) AS date_impression
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 3 AND YEAR(ad_date) = %d AND ad_id = %d",
$year,
$ad_id
)
);
$apr = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_impression) AS date_impression
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 4 AND YEAR(ad_date) = %d AND ad_id = %d",
$year,
$ad_id
)
);
$may = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_impression) AS date_impression
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 5 AND YEAR(ad_date) = %d AND ad_id = %d",
$year,
$ad_id
)
);
$jun = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_impression) AS date_impression
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 6 AND YEAR(ad_date) = %d AND ad_id = %d",
$year,
$ad_id
)
);
$jul = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_impression) AS date_impression
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 7 AND YEAR(ad_date) = %d AND ad_id = %d",
$year,
$ad_id
)
);
$aug = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_impression) AS date_impression
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 8 AND YEAR(ad_date) = %d AND ad_id = %d",
$year,
$ad_id
)
);
$sep = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_impression) AS date_impression
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 9 AND YEAR(ad_date) = %d AND ad_id = %d",
$year,
$ad_id
)
);
$oct = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_impression) AS date_impression
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 10 AND YEAR(ad_date) = %d AND ad_id = %d",
$year,
$ad_id
)
);
$nov = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_impression) AS date_impression
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 11 AND YEAR(ad_date) = %d AND ad_id = %d",
$year,
$ad_id
)
);
$dec = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_impression) AS date_impression
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 12 AND YEAR(ad_date) = %d AND ad_id = %d",
$year,
$ad_id
)
);
}
$jan = $jan[0]->date_impression;
$feb = $feb[0]->date_impression;
$mar = $mar[0]->date_impression;
$apr = $apr[0]->date_impression;
$may = $may[0]->date_impression;
$jun = $jun[0]->date_impression;
$july = $july[0]->date_impression;
$aug = $aug[0]->date_impression;
$sep = $sep[0]->date_impression;
$oct = $oct[0]->date_impression;
$nov = $nov[0]->date_impression;
$dec = $dec[0]->date_impression;
if($jan== NULL){$jan = 0;}if($feb== NULL){$feb = 0;}if($mar== NULL){$mar = 0;}
if($apr== NULL){$apr = 0;}if($may== NULL){$may = 0;}if($jun== NULL){$jun = 0;}
if($july== NULL){$july = 0;}if($aug== NULL){$aug = 0;}if($sep== NULL){$sep = 0;}
if($oct== NULL){$oct = 0;}if($nov== NULL){$nov = 0;}if($dec== NULL){$dec = 0;}
$ad_imprsn_values = array();
$ad_imprsn_values = [$jan,$feb, $mar,$apr,$may,$jun,$july,$aug,$sep,$oct,$nov,$dec];
$ad_imprsn = $jan+$feb+ $mar+$apr+$may+$jun+$july+$aug+$sep+$oct+$nov+$dec;
$individual_impr_day_counts = $ad_imprsn_values;
$individual_ad_dates = [1];
if($ad_id=="all")
{
$jan = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_click) AS date_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 1 AND YEAR(ad_date) = %d",
$year
)
);
$feb = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_click) AS date_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 2 AND YEAR(ad_date) = %d",
$year
)
);
$mar = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_click) AS date_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 3 AND YEAR(ad_date) = %d",
$year
)
);
$apr = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_click) AS date_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 4 AND YEAR(ad_date) = %d",
$year
)
);
$may = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_click) AS date_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 5 AND YEAR(ad_date) = %d",
$year
)
);
$jun = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_click) AS date_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 6 AND YEAR(ad_date) = %d",
$year
)
);
$july = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_click) AS date_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 7 AND YEAR(ad_date) = %d",
$year
)
);
$aug = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_click) AS date_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 8 AND YEAR(ad_date) = %d",
$year
)
);
$sep = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_click) AS date_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 9 AND YEAR(ad_date) = %d",
$year
)
);
$oct = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_click) AS date_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 10 AND YEAR(ad_date) = %d",
$year
)
);
$nov = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_click) AS date_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 11 AND YEAR(ad_date) = %d",
$year
)
);
$dec = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_click) AS date_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 12 AND YEAR(ad_date) = %d",
$year
)
);
}
else
{
$jan = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_click) AS date_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 1 AND YEAR(ad_date) = %d AND ad_id = %d",
$year,
$ad_id
)
);
$feb = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_click) AS date_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 2 AND YEAR(ad_date) = %d AND ad_id = %d",
$year,
$ad_id
)
);
$mar = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_click) AS date_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 3 AND YEAR(ad_date) = %d AND ad_id = %d",
$year,
$ad_id
)
);
$apr = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_click) AS date_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 4 AND YEAR(ad_date) = %d AND ad_id = %d",
$year,
$ad_id
)
);
$may = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_click) AS date_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 5 AND YEAR(ad_date) = %d AND ad_id = %d",
$year,
$ad_id
)
);
$jun = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_click) AS date_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 6 AND YEAR(ad_date) = %d AND ad_id = %d",
$year,
$ad_id
)
);
$july = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_click) AS date_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 7 AND YEAR(ad_date) = %d AND ad_id = %d",
$year,
$ad_id
)
);
$aug = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_click) AS date_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 8 AND YEAR(ad_date) = %d AND ad_id = %d",
$year,
$ad_id
)
);
$sep = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_click) AS date_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 9 AND YEAR(ad_date) = %d AND ad_id = %d",
$year,
$ad_id
)
);
$oct = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_click) AS date_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 10 AND YEAR(ad_date) = %d AND ad_id = %d",
$year,
$ad_id
)
);
$nov = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_click) AS date_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 11 AND YEAR(ad_date) = %d AND ad_id = %d",
$year,
$ad_id
)
);
$dec = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(date_click) AS date_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE MONTH(ad_date) = 12 AND YEAR(ad_date) = %d AND ad_id = %d",
$year,
$ad_id
)
);
}
$jan = $jan[0]->date_click;$feb = $feb[0]->date_click;$mar = $mar[0]->date_click;$apr = $apr[0]->date_click;$may = $may[0]->date_click;$jun = $jun[0]->date_click;$july = $july[0]->date_click;$aug = $aug[0]->date_click;$sep = $sep[0]->date_click;$oct = $oct[0]->date_click;$nov = $nov[0]->date_click;$dec = $dec[0]->date_click;
if($jan== NULL){$jan = 0;}if($feb== NULL){$feb = 0;}if($mar== NULL){$mar = 0;}
if($apr== NULL){$apr = 0;}if($may== NULL){$may = 0;}if($jun== NULL){$jun = 0;}
if($july== NULL){$july = 0;}if($aug== NULL){$aug = 0;}if($sep== NULL){$sep = 0;}
if($oct== NULL){$oct = 0;}if($nov== NULL){$nov = 0;}if($dec== NULL){$dec = 0;}
$ad_click_values = array();
$ad_clicks = $jan+$feb+ $mar+$apr+$may+$jun+$july+$aug+$sep+$oct+$nov+$dec;
$ad_click_values = [$jan,$feb, $mar,$apr,$may,$jun,$july,$aug,$sep,$oct,$nov,$dec];
$individual_click_day_counts = $ad_click_values;
if($ad_id=="all")
{
$results_top5 = $wpdb->get_results(
$wpdb->prepare(
"SELECT `{$wpdb->prefix}posts`.ID, `{$wpdb->prefix}posts`.post_title,
SUM(`{$wpdb->prefix}adsensei_single_stats_`.date_impression) as total_impression,
SUM(`{$wpdb->prefix}adsensei_single_stats_`.date_click) as total_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
INNER JOIN `{$wpdb->prefix}posts`
ON `{$wpdb->prefix}posts`.ID = `{$wpdb->prefix}adsensei_single_stats_`.ad_id
WHERE YEAR(`{$wpdb->prefix}adsensei_single_stats_`.ad_date) = %d
GROUP BY `{$wpdb->prefix}posts`.post_title
ORDER BY total_click DESC
LIMIT 5",
$year
)
);
$array_top5 = array_values($results_top5);
}
}
else if( $day == "yesterday" ){
$yesterday_date = date('Y-m-d',strtotime("-1 days"));
if($ad_id=="all")
{
$results_impresn = $wpdb->get_results(
$wpdb->prepare(
"SELECT date_impression
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE `ad_date` = %s",
$yesterday_date
)
);
}
else
{
$results_impresn = $wpdb->get_results(
$wpdb->prepare(
"SELECT date_impression
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE `ad_id` = %d
AND `ad_date` = %s",
$ad_id,
$yesterday_date
)
);
}
$array = array_values($results_impresn);
$ad_imprsn = 0;
foreach ($array as $key => $value) {
$ad_imprsn += $value->date_impression;
}
$get_impressions_specific_dates = str_replace('-','/',$yesterday_date);
if($ad_id=="all")
{
$results_click = $wpdb->get_results(
$wpdb->prepare(
"SELECT date_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE `ad_date` = %s",
$yesterday_date
)
);
}
else
{
$results_click = $wpdb->get_results(
$wpdb->prepare(
"SELECT date_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE `ad_id` = %d
AND `ad_date` = %s",
$ad_id,
$yesterday_date
)
);
}
$array_c = array_values($results_click);
$ad_clicks = 0;
foreach ($array_c as $key => $value) {
$ad_clicks += $value->date_click;
}
if($ad_id=="all")
{
$results_top5 = $wpdb->get_results(
$wpdb->prepare(
"SELECT `{$wpdb->prefix}posts`.ID, `{$wpdb->prefix}posts`.post_title,
SUM(`{$wpdb->prefix}adsensei_single_stats_`.date_impression) as total_impression,
SUM(`{$wpdb->prefix}adsensei_single_stats_`.date_click) as total_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
INNER JOIN `{$wpdb->prefix}posts`
ON `{$wpdb->prefix}posts`.ID = `{$wpdb->prefix}adsensei_single_stats_`.ad_id
WHERE `{$wpdb->prefix}adsensei_single_stats_`.`ad_date` = %s
GROUP BY `{$wpdb->prefix}posts`.post_title
ORDER BY total_click DESC
LIMIT 5",
$yesterday_date
)
);
$array_top5 = array_values($results_top5);
}
}
else if( $day == "today" ) {
if($ad_id=="all")
{
$results_impresn_t = $wpdb->get_results(
$wpdb->prepare(
"SELECT date_impression
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE `ad_date` = %s",
$todays_date
)
);
}
else
{
$results_impresn_t = $wpdb->get_results(
$wpdb->prepare(
"SELECT date_impression
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE `ad_id` = %d
AND `ad_date` = %s",
$ad_id,
$todays_date
)
);
}
$array_i_t = array_values($results_impresn_t);
$ad_imprsn = 0;
foreach ($array_i_t as $key => $value) {
$ad_imprsn += $value->date_impression;
}
$get_impressions_specific_dates = str_replace('-','/',$todays_date);
if($ad_id=="all")
{
$results_click_t = $wpdb->get_results(
$wpdb->prepare(
"SELECT date_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE `ad_date` = %s",
$todays_date
)
);
}
else
{
$results_click_t = $wpdb->get_results(
$wpdb->prepare(
"SELECT date_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE `ad_id` = %d
AND `ad_date` = %s",
$ad_id,
$todays_date
)
);
}
$array_c_t = array_values($results_click_t);
$ad_clicks = 0;
foreach ($array_c_t as $key => $value) {
$ad_clicks += $value->date_click;
}
if($ad_id=="all")
{
//$results_top5 = $wpdb->get_results($wpdb->prepare("SELECT p.post_title,SUM(s.date_impression) as total_impression ,SUM(s.date_click) as total_click FROM {$wpdb->prefix}adsensei_single_stats_ as s INNER JOIN {$wpdb->prefix}posts as p ON p.ID=s.ad_id WHERE s.ad_date = {$todays_date} GROUP BY p.post_title ORDER BY total_click DESC LIMIT 5"));
$results_top5 = $wpdb->get_results(
$wpdb->prepare(
"SELECT `{$wpdb->prefix}posts`.ID, `{$wpdb->prefix}posts`.post_title,
SUM(`{$wpdb->prefix}adsensei_single_stats_`.date_impression) as total_impression,
SUM(`{$wpdb->prefix}adsensei_single_stats_`.date_click) as total_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
INNER JOIN `{$wpdb->prefix}posts`
ON `{$wpdb->prefix}posts`.ID = `{$wpdb->prefix}adsensei_single_stats_`.ad_id
WHERE `{$wpdb->prefix}adsensei_single_stats_`.`ad_date` = %s
GROUP BY `{$wpdb->prefix}posts`.post_title
ORDER BY `{$wpdb->prefix}adsensei_single_stats_`.date_click DESC
LIMIT 5",
$todays_date
)
);
$array_top5 = array_values($results_top5);
}
}
else if( $day == "custom" ) {
$fromdate = $_GET["fromdate"];
$todate = $_GET["todate"];
$get_from = preg_replace('/(.*?)-(.*?)-(.*?)T(.*)/', '$1-$2-$3', $fromdate);
$get_to = preg_replace('/(.*?)-(.*?)-(.*?)T(.*)/', '$1-$2-$3', $todate);
if($ad_id=="all")
{
$results_top5 = $wpdb->get_results(
$wpdb->prepare(
"SELECT `{$wpdb->prefix}posts`.ID,
`{$wpdb->prefix}posts`.post_title,
SUM(`{$wpdb->prefix}adsensei_single_stats_`.date_impression) as total_impression,
SUM(`{$wpdb->prefix}adsensei_single_stats_`.date_click) as total_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
INNER JOIN `{$wpdb->prefix}posts`
ON `{$wpdb->prefix}posts`.ID = `{$wpdb->prefix}adsensei_single_stats_`.ad_id
WHERE `{$wpdb->prefix}adsensei_single_stats_`.`ad_date` = %s
GROUP BY `{$wpdb->prefix}posts`.post_title
ORDER BY `{$wpdb->prefix}adsensei_single_stats_`.date_click DESC
LIMIT 5",
$todays_date
)
);
}
else
{
$results_impresn_C_ = $wpdb->get_results(
$wpdb->prepare(
"SELECT date_impression
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE ad_date BETWEEN %s AND %s
AND `ad_id` = %d",
$get_from,
$get_to,
$ad_id
)
);
}
$array_i_c = array_values($results_impresn_C_);
$ad_imprsn = 0;
$ad_imprsn_values = '';
foreach ($array_i_c as $key => $value) {
$ad_imprsn += $value->date_impression;
$ad_imprsn_values .= $value->date_impression.',';
}
$remove_comma = substr($ad_imprsn_values, 0, -1);
$individual_impr_day_counts = explode(",",$remove_comma);
$period = new DatePeriod(new DateTime(''.$get_from.''), new DateInterval('P1D'), new DateTime(''.$get_to.''.' +1 day'));
$dates_i_chart = '';
foreach ($period as $date) {
$dates_i_chart .= $date->format("Y-m-d").',';
}
$remove_comma_d = substr($dates_i_chart, 0, -1);
$_to_slash = explode(",",$remove_comma_d);
$get_impressions_specific_dates = str_replace('-','/',$_to_slash);
if($ad_id=="all")
{
$results_click_S = $wpdb->get_results(
$wpdb->prepare(
"SELECT date_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE ad_date BETWEEN %s AND %s",
$get_from,
$get_to
)
);
}
else
{
$results_click_S = $wpdb->get_results(
$wpdb->prepare(
"SELECT date_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
WHERE ad_date BETWEEN %s AND %s
AND `ad_id` = %d",
$get_from,
$get_to,
$ad_id
)
);
}
$array_c = array_values($results_click_S);
$ad_clicks = 0;
$ad_click_values = '';
foreach ($array_c as $key => $value) {
$ad_clicks += $value->date_click;
$ad_click_values .= $value->date_click.',';
}
$remove_comma_click = substr($ad_click_values, 0, -1);
$individual_click_day_counts = explode(",",$remove_comma_click);
if($ad_id=="all")
{
$results_top5 = $wpdb->get_results(
$wpdb->prepare(
"SELECT `{$wpdb->prefix}posts`.ID,`{$wpdb->prefix}posts`.post_title,
SUM(`{$wpdb->prefix}adsensei_single_stats_`.date_impression) as total_impression,
SUM(`{$wpdb->prefix}adsensei_single_stats_`.date_click) as total_click
FROM `{$wpdb->prefix}adsensei_single_stats_`
INNER JOIN `{$wpdb->prefix}posts`
ON `{$wpdb->prefix}posts`.ID = `{$wpdb->prefix}adsensei_single_stats_`.ad_id
WHERE `{$wpdb->prefix}adsensei_single_stats_`.`ad_date` BETWEEN %s AND %s
GROUP BY `{$wpdb->prefix}posts`.post_title
ORDER BY `{$wpdb->prefix}adsensei_single_stats_`.date_click DESC
LIMIT 5",
$get_from,
$get_to
)
);
$array_top5 = array_values($results_top5);
}
}
$ad_stats['impressions'] = $ad_imprsn;
$ad_stats['clicks'] = $ad_clicks;
$ad_stats['ad_day'] = $day;
$ad_stats['individual_impr_day_counts'] = $individual_impr_day_counts;
$ad_stats['ad_imp_individual_dates'] = $get_impressions_specific_dates;
$ad_stats['individual_click_day_counts'] = $individual_click_day_counts;
$ad_stats['individual_ad_dates'] = $individual_ad_dates;
$ad_stats['top5_ads'] = $array_top5;
return $ad_stats;
}
function adsensei_adsense_get_access_token($account){
$options = adsensei_get_option_adsense();
// if ( isset( $options['accounts'][ $account ] ) ) {
// if ( time() > $options['accounts'][ $account ]['expires'] ) {
if ( isset( $options['accounts'][""] ) ) {
if ( time() > $options['accounts'][""]['expires'] ) {
$new_tokens = adsensei_adsense_renew_access_token( $account );
if ( $new_tokens['status'] ) {
return $new_tokens['access_token'];
} else {
// return all error info [arr]
return $new_tokens;
}
} else {
return $options['accounts'][""]['access_token'];
}
} else {
// Account does not exists.
if ( ! empty( $options['accounts'] ) ) {
// There is another account connected.
return array(
'status' => false,
'msg' => esc_html__( 'It seems that some changes have been made in the Adsensei Ads settings. Please refresh this page.', 'advanced-ads' ),
'reload' => true,
);
} else {
// No account at all.
return array(
'status' => false,
'msg' => wp_kses( sprintf( __( 'Advanced Ads does not have access to your account (%s) anymore.', 'advanced-ads' ), $account ), array( 'code' => true ) ),
'reload' => true,
);
}
}
}
function adsensei_adsense_renew_access_token( $account ) {
$options = adsensei_get_option_adsense();
$access_token = $options['accounts'][""]['access_token'];
$refresh_token = $options['accounts'][""]['refresh_token'];
$url = 'https://www.googleapis.com/oauth2/v4/token';
$args = array(
'body' => array(
'refresh_token' => $refresh_token,
'client_id' => client_id,
'client_secret' => client_secret,
'grant_type' => 'refresh_token',
),
);
$response = wp_remote_post( $url, $args );
if ( is_wp_error( $response ) ) {
return array(
'status' => false,
'msg' => sprintf( esc_html__( 'error while renewing access token for "%s"', 'advanced-ads' ), $account ),
'raw' => $response->get_error_message(),
);
} else {
$tokens = json_decode( $response['body'], true );
// checking for the $tokens is not enough. it can be empty.
// monitored this, when the access token is revoked from the outside
// this can happen, when the user connects from another domain.
if ( null !== $tokens && isset($tokens['expires_in']) ) {
$expires = time() + absint( $tokens['expires_in'] );
$options['accounts'][ $account ]['access_token'] = $tokens['access_token'];
$options['accounts'][ $account ]['expires'] = $expires;
update_option( 'adsensei_adsense_api_data', $options );
return array(
'status' => true,
'access_token' => $tokens['access_token'],
);
} else {
return array(
'status' => false,
'msg' => sprintf( esc_html__( 'invalid response received while renewing access token for "%s"', 'advanced-ads' ), $account ),
'raw' => $response['body'],
);
}
}
}
function adsensei_load_adsnese_scripts($hook){
if($hook!=='toplevel_page_adsensei-settings'){ return ; }
$js_dir = ADSENSEI_PLUGIN_URL . 'assets/js/';
// $css_dir = ADSENSEI_PLUGIN_URL . 'assets/css/';
// Use minified libraries if SCRIPT_DEBUG is turned off
$suffix = ( adsenseiIsDebugMode() ) ? '' : '.min';
wp_enqueue_script( 'adsensei-admin-adsense', $js_dir . 'connect-adsense' . $suffix . '.js', array('jquery'), ADSENSEI_VERSION, false );
$auth_url = 'https://accounts.google.com/o/oauth2/v2/auth?scope=' .
urlencode( 'https://www.googleapis.com/auth/adsense.readonly' ) .
'&client_id=' . client_id .
'&redirect_uri=' . urlencode( 'urn:ietf:wg:oauth:2.0:oob' ) .
'&access_type=offline&include_granted_scopes=true&prompt=select_account&response_type=code';
wp_localize_script( 'adsensei-admin-adsense', 'adsensei_adsense', array(
'auth_url' => $auth_url
) );
// ab testing js
wp_enqueue_script( 'adsensei-admin-abtesting', $js_dir . 'abtesting-reports' . $suffix . '.js', array('jquery'), ADSENSEI_VERSION, false );
// chart js
wp_enqueue_script( 'adsensei_charts_js', $js_dir . 'Chart' . $suffix . '.js', array('jquery'), ADSENSEI_VERSION, false );
// wp_localize_script( 'adsensei-charts-js' ,'');
wp_enqueue_script( 'adsensei_charts_js' );
}
/**
* Here, We get date in unix format as per condition
* @param type $type
* @return type string
*/
function adsensei_get_date($type) {
switch($type) {
case 'day' :
$timezone = get_option('timezone_string');
if($timezone) {
$server_timezone = date('e');
date_default_timezone_set($timezone);
$result = strtotime('00:00:00') + (get_option('gmt_offset') * 3600);
date_default_timezone_set($server_timezone);
} else {
$result = gmdate('U', gmmktime(0, 0, 0, gmdate('n'), gmdate('j')));
}
break;
}
return $result;
}
/**
* Here, We fetch ads stats from database table as per condition in query
* @global type $wpdb
* @param type $condition
* @param type $ad_id
* @param type $date
* @return type array
*/
function adsensei_get_ad_stats($condition, $ad_id='', $date=null,$parameters ='') {
global $wpdb;
$ad_stats = array();
// var_dump($condition);die;
switch ($condition) {
case 'sumofstats':
// echo 'sdf';die;
$result = $wpdb->get_results(
$wpdb->prepare(
"SELECT SUM(`ad_clicks`) as `clicks`, SUM(`ad_impressions`) as `impressions`
FROM `{$wpdb->prefix}adsensei_stats`
WHERE `ad_id` = %d;",
$ad_id
),
ARRAY_A
);
$ad_stats['impressions'] = $result[0]['impressions'];
$ad_stats['clicks'] = $result[0]['clicks'];
break;
case 'fetchAllBy':
if($ad_id){
$result = $wpdb->get_results(
$wpdb->prepare(
"SELECT * FROM `{$wpdb->prefix}adsensei_stats`
WHERE `ad_thetime` = %d AND `ad_id` = %d;",
$date,
$ad_id
),
ARRAY_A
);
}else{
$result = $wpdb->get_results(
$wpdb->prepare(
"SELECT * FROM `{$wpdb->prefix}adsensei_stats`
WHERE `ad_thetime` = %d;",
$date
),
ARRAY_A
);
}
if($result){
foreach($result as $row){
if($row['ad_device_name'] =='desktop'){
if(isset($ad_stats['desktop']['click'])){
$ad_stats['desktop']['click'] += $row['ad_clicks'];
}else{
$ad_stats['desktop']['click'] = $row['ad_clicks'];
}
if(isset($ad_stats['desktop']['impression'])){
$ad_stats['desktop']['impression'] += $row['ad_impressions'];
}else{
$ad_stats['desktop']['impression'] = $row['ad_impressions'];
}
}
if($row['ad_device_name'] =='mobile'){
if(isset($ad_stats['mobile']['click'])){
$ad_stats['mobile']['click'] += $row['ad_clicks'];
}else{
$ad_stats['mobile']['click'] = $row['ad_clicks'];
}
if(isset($ad_stats['mobile']['impression'])){
$ad_stats['mobile']['impression'] += $row['ad_impressions'];
}else{
$ad_stats['mobile']['impression'] = $row['ad_impressions'];
}
}
if($row['ad_device_name'] =='amp'){
if(isset($ad_stats['amp']['click'])){
$ad_stats['amp']['click'] += $row['ad_clicks'];
}else{
$ad_stats['amp']['click'] = $row['ad_clicks'];
}
if(isset($ad_stats['amp']['impression'])){
$ad_stats['amp']['impression'] += $row['ad_impressions'];
}else{
$ad_stats['amp']['impression'] = $row['ad_impressions'];
}
}
}
}
break;
case 'search':
$ad_thetime = '';
$items_per_page = 20;
$page = (isset($parameters['page'])&& !empty($parameters['page']))?$parameters['page'] :1;
$offset = ($page - 1) * $items_per_page;
if($parameters){
if(isset($parameters['report_period'])){
$endDate = strtotime('now');
switch ($parameters['report_period']) {
case 'last_15days':
$startDate = strtotime("-14 day");
break;
case 'last_30days':
$startDate = strtotime("-29 day");
break;
case 'last_6months':
$startDate = strtotime("-6 month");
break;
case 'last_1year':
$startDate = strtotime('-1 year');
break;
case 'custom':
$startDate = (isset($parameters['cust_fromdate'])&& !empty($parameters['cust_fromdate']))?strtotime($parameters['cust_fromdate']) :strtotime("now");
$endDate = (isset($parameters['cust_todate'])&& !empty($parameters['cust_todate']))?strtotime($parameters['cust_todate']) :strtotime('now');;
break;
case 'all_time':
$startDate = strtotime('-3 year');
break;
default:
$startDate = strtotime(" -6 day");
break;
}
$ad_thetime = $wpdb->prepare( 'WHERE ad_thetime BETWEEN %s AND %s', $startDate, $endDate );
}
}
$search_param = '';
if(isset($parameters['search_param']) && !empty($parameters['search_param'])){
if(empty($ad_thetime)){
$search_param = $wpdb->prepare(
"WHERE ad_id LIKE %s OR
ad_device_name LIKE %s OR
ip_address LIKE %s OR
url LIKE %s OR
browser LIKE %s OR
referrer LIKE %s",
'%' . $parameters['search_param'] . '%',
'%' . $parameters['search_param'] . '%',
'%' . $parameters['search_param'] . '%',
'%' . $parameters['search_param'] . '%',
'%' . $parameters['search_param'] . '%',
'%' . $parameters['search_param'] . '%'
);
}else {
$search_param = $wpdb->prepare(
"AND (ad_id LIKE %s OR
ad_device_name LIKE %s OR
ip_address LIKE %s OR
url LIKE %s OR
browser LIKE %s OR
referrer LIKE %s)",
'%' . $parameters['search_param'] . '%',
'%' . $parameters['search_param'] . '%',
'%' . $parameters['search_param'] . '%',
'%' . $parameters['search_param'] . '%',
'%' . $parameters['search_param'] . '%',
'%' . $parameters['search_param'] . '%'
);
}
}
$results = $wpdb->get_results(
$wpdb->prepare(
"SELECT * FROM `{$wpdb->prefix}adsensei_stats` %s %s LIMIT %d, %d",
$ad_thetime,
$search_param,
$offset,
$items_per_page
),
ARRAY_A
);
$ad_stats = $results;
$result_total = $wpdb->get_row(
$wpdb->prepare(
"SELECT count(*) as total FROM `{$wpdb->prefix}adsensei_stats` %s %s",
$ad_thetime,
$search_param
),
ARRAY_A
);
$log_array = array();
foreach($results as $result){
$ad_id = $result['ad_id'];
$post_type = get_post_meta($ad_id, 'ad_type', true);
$post_label = get_post_meta($ad_id, 'label', true);
$result['ad_type'] = $post_type;
$result['label'] = $post_label;
$log_array[] = $result;
}
$response['posts_data'] = $log_array;
$response['posts_found'] = ($result_total['total']);
return $response;
break;
default:
break;
}
return $ad_stats;
}