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();
}
};