api_service == null){ require_once ADSENSEI_PLUGIN_DIR . '/admin/includes/rest-api-service.php'; $this->api_service = new ADSENSEI_Ad_Setup_Api_Service(); } } /** * List of all hooks which are used in this class */ public function adsensei_amp_condition_hooks(){ global $adsensei_mode; if($adsensei_mode != 'new'){ return ; } // Below the Header //Amp custom theme add_action( 'ampforwp_add_loop_class', array($this, 'ampforwp_add_loop_class_above_ad') ); add_action( 'ampforwp_after_header', array($this, 'adsensei_display_ads_below_the_header') ); add_action( 'ampforwp_before_head', array($this, 'adsensei_display_ads_before_head') ); add_action( 'ampforwp_design_1_after_header', array($this, 'adsensei_display_ads_below_the_header') ); //Below the Footer add_action( 'amp_post_template_footer', array($this, 'adsensei_display_ads_below_the_footer') ); //Below Footer Sticky AD add_action( 'amp_post_template_footer', array($this, 'adsensei_display_ads_sticky_doubleclick') ); //ABove the Footer add_action( 'amp_post_template_above_footer', array($this, 'adsensei_display_ads_above_the_footer') ); //Above the Post Content add_action( 'ampforwp_before_post_content', array($this, 'adsensei_display_ads_above_the_post_content') ); add_action( 'ampforwp_inside_post_content_before', array($this, 'adsensei_display_ads_above_the_post_content') ); // Below the Post Content add_action( 'ampforwp_after_post_content', array($this, 'adsensei_display_ads_below_the_post_content') ); add_action( 'ampforwp_inside_post_content_after', array($this, 'adsensei_display_ads_below_the_post_content') ); //Below The Title add_action('ampforwp_below_the_title',array($this, 'adsensei_display_ads_below_the_title')); //Above the Related Post add_action('ampforwp_above_related_post',array($this, 'adsensei_display_ads_above_related_post')); // Below the Author Box add_action( 'ampforwp_below_author_box', array($this, 'adsensei_display_ads_below_author_box') ); // In loops add_action('ampforwp_between_loop', array($this, 'adsensei_display_ads_between_loop'),10,1); // Ad After Featured Image #42 add_action('ampforwp_after_featured_image_hook',array($this, 'adsensei_display_ads_after_featured_image')); add_filter('amp_story_auto_ads_configuration',array($this,'adsensei_amp_story_ads')); } public function adsensei_amp_story_ads($data){ return $this->adsensei_amp_condition_ad_code('adsensei_amp_story_ads',$data); } public function adsensei_display_ads_after_featured_image(){ $this->adsensei_amp_condition_ad_code('adsensei_after_featured_image'); } public function adsensei_display_ads_between_loop($count){ $this->adsensei_amp_condition_ad_code('adsensei_ads_in_loops', $count); } public function adsensei_display_ads_below_author_box(){ $this->adsensei_amp_condition_ad_code('adsensei_below_author_box'); } public function adsensei_display_ads_above_related_post(){ $this->adsensei_amp_condition_ad_code('adsensei_above_related_post'); } public function adsensei_display_ads_below_the_title(){ $this->adsensei_amp_condition_ad_code('adsensei_below_the_title'); } public function adsensei_display_ads_below_the_post_content(){ $this->adsensei_amp_condition_ad_code('adsensei_below_the_post_content'); } public function adsensei_display_ads_above_the_post_content(){ $this->adsensei_amp_condition_ad_code('adsensei_above_the_post_content'); } public function adsensei_display_ads_above_the_footer(){ $this->adsensei_amp_condition_ad_code('adsensei_above_the_footer'); } public function adsensei_display_ads_below_the_footer(){ $this->adsensei_amp_condition_ad_code('adsensei_below_the_footer'); } public function adsensei_display_ads_sticky_doubleclick(){ $this->adsensei_amp_condition_ad_code('adsensei_sticky_ad_doubleclick'); } public function adsensei_display_ads_below_the_header(){ $this->adsensei_amp_condition_ad_code('adsensei_below_the_header'); } public function adsensei_display_ads_before_head(){ $this->adsensei_amp_condition_ad_code('adsensei_before_head'); } /** * Here, We are displaying ads or group ads according to amp where to display condition * @param type $condition * @param type $count */ public function adsensei_amp_condition_ad_code($condition, $count=null){ $result = $this->adsensei_amp_condition_get_ad_code($condition, $count); if($condition == 'adsensei_amp_story_ads') return $result; else echo $result; } public function adsensei_amp_condition_get_ad_code($condition, $count=null){ // if (adsensei_is_amp_endpoint()){ // return ; // } global $adsensei_options; $adsensei_ads = $this->api_service->getAdDataByParam('adsensei-ads'); if(isset($adsensei_ads['posts_data'])){ foreach($adsensei_ads['posts_data'] as $key => $value){ $ads =$value['post_meta']; if($value['post']['post_status']== 'draft'){ continue; } if(isset($ads['enabled_on_amp']) && !$ads['enabled_on_amp']){ continue; } if(!isset($ads['position'])){ continue; } if(isset($ads['ad_id'])) $post_status = get_post_status($ads['ad_id']); else $post_status = 'publish'; if(isset($ads['random_ads_list'])) $ads['random_ads_list'] = unserialize($ads['random_ads_list']); if(isset($ads['visibility_include'])) $ads['visibility_include'] = unserialize($ads['visibility_include']); if(isset($ads['visibility_exclude'])) $ads['visibility_exclude'] = unserialize($ads['visibility_exclude']); if(isset($ads['targeting_include'])) $ads['targeting_include'] = unserialize($ads['targeting_include']); if(isset($ads['targeting_exclude'])) $ads['targeting_exclude'] = unserialize($ads['targeting_exclude']); $is_on = adsensei_is_visibility_on($ads); $is_visitor_on = adsensei_is_visitor_on($ads); if($is_on && $is_visitor_on && $post_status=='publish' ||$condition == 'adsensei_amp_story_ads'){ if($ads['position'] =='amp_after_featured_image' && $condition == 'adsensei_after_featured_image'){ $tag= ''; echo adsensei_replace_ads_new( $tag, 'CusAds' . $ads['ad_id'], $ads['ad_id'] ); }else if(($ads['position'] =='amp_below_the_header' || $ads['position'] == 'after_header') && $condition == 'adsensei_below_the_header'){ $tag= ''; echo adsensei_replace_ads_new( $tag, 'CusAds' . $ads['ad_id'], $ads['ad_id'] ); }else if($ads['position'] =='amp_doubleclick_sticky_ad' && $condition == 'adsensei_sticky_ad_doubleclick'){ global $adsensei_options; $ads_id = $ads['adsensei_ad_old_id']; $width = ( isset($adsensei_options['ads'][$ads_id]['g_data_ad_width']) ) ? $adsensei_options['ads'][$ads_id]['g_data_ad_width'] : '300'; $height = ( isset($adsensei_options['ads'][$ads_id]['g_data_ad_height']) ) ? $adsensei_options['ads'][$ads_id]['g_data_ad_height'] : '250'; $network_code = $adsensei_options['ads'][$ads_id]['network_code']; $ad_unit_name = $adsensei_options['ads'][$ads_id]['ad_unit_name']; add_filter('amp_post_template_data',array($this, 'adsensei_enque_ads_specific_amp_script')); $output = ''; echo $output; }else if($ads['position'] =='amp_below_the_footer' && $condition == 'adsensei_below_the_footer'){ $tag= ''; echo adsensei_replace_ads_new( $tag, 'CusAds' . $ads['ad_id'], $ads['ad_id'] ); }else if($ads['position'] =='amp_above_the_footer' && $condition == 'adsensei_above_the_footer'){ $tag= ''; echo adsensei_replace_ads_new( $tag, 'CusAds' . $ads['ad_id'], $ads['ad_id'] ); }else if($ads['position'] =='amp_above_the_post_content' && $condition == 'adsensei_above_the_post_content'){ $tag= ''; echo adsensei_replace_ads_new( $tag, 'CusAds' . $ads['ad_id'], $ads['ad_id'] ); }else if($ads['position'] =='amp_below_the_post_content' && $condition == 'adsensei_below_the_post_content'){ $tag= ''; echo adsensei_replace_ads_new( $tag, 'CusAds' . $ads['ad_id'], $ads['ad_id'] ); }else if($ads['position'] =='amp_below_the_title' && $condition == 'adsensei_below_the_title'){ $tag= ''; echo adsensei_replace_ads_new( $tag, 'CusAds' . $ads['ad_id'], $ads['ad_id'] ); }else if($ads['position'] =='amp_above_related_post' && $condition == 'adsensei_above_related_post'){ $tag= ''; echo adsensei_replace_ads_new( $tag, 'CusAds' . $ads['ad_id'], $ads['ad_id'] ); }else if($ads['position'] =='amp_below_author_box' && $condition == 'adsensei_below_author_box'){ $tag= ''; echo adsensei_replace_ads_new( $tag, 'CusAds' . $ads['ad_id'], $ads['ad_id'] ); }else if($ads['position'] =='amp_ads_in_loops' && $condition == 'adsensei_ads_in_loops'){ $tag= ''; $ads_loop_number = (isset($ads['ads_loop_number']) && !empty($ads['ads_loop_number']))? $ads['ads_loop_number'] : 1; $ad_code =''; $displayed_posts = get_option('posts_per_page'); if(intval($ads_loop_number) == $count){ echo adsensei_replace_ads_new( $tag, 'CusAds' . $ads['ad_id'], $ads['ad_id'] ); } }else if($ads['position'] =='adsensei_before_head' && $condition == 'before_header'){ $tag= ''; echo adsensei_replace_ads_new( $tag, 'CusAds' . $ads['ad_id'], $ads['ad_id'] ); }else if($ads['position'] =='amp_story_ads' && $condition == 'adsensei_amp_story_ads'){ $data = array(); if($ads['ad_type'] == 'adsense') { $data[] = array( "ad-attributes" => array( "type" => "adsense", "data-ad-client" =>esc_attr($ads['g_data_ad_client']), "data-ad-slot" => esc_attr($ads['g_data_ad_slot']), ), ); }elseif($ads['ad_type'] == 'double_click') { $data[] = array( "ad-attributes" => array( "type" => "doubleclick", "data-slot" => esc_attr($ads['network_code']).'/'.esc_attr($ads['ad_unit_name']), ), ); } return $data; } else if( $condition == 'adsensei_below_the_footer' && $ads['adsense_ad_type'] == 'adsense_sticky_ads' ){ $width = (isset($ads['g_data_ad_width']) && !empty($ads['g_data_ad_width'])) ? $ads['g_data_ad_width'] : '300'; $height = (isset($ads['g_data_ad_height']) && !empty($ads['g_data_ad_height'])) ? $ads['g_data_ad_height'] : '250'; add_filter('amp_post_template_data',array($this, 'adsensei_enque_ads_specific_amp_script')); $output = ''; $output .= ''; $output .= ''; $output .= ''; echo $output; } } } } } public function adsensei_enque_ads_specific_amp_script($data){ if ( empty( $data['amp_component_scripts']['amp-sticky-ad'] ) ) { $data['amp_component_scripts']['amp-sticky-ad'] = 'https://cdn.ampproject.org/v0/amp-sticky-ad-latest.js'; } return $data; } } if (class_exists('adsensei_output_amp_condition_display')) { add_action('amp_init', 'adsensei_amp_hooks_call'); function adsensei_amp_hooks_call(){ $adsensei_condition_obj = new adsensei_output_amp_condition_display; $adsensei_condition_obj->adsensei_amp_condition_hooks(); } };