summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/jetpack/modules/wordads/wordads.php')
-rw-r--r--plugins/jetpack/modules/wordads/wordads.php118
1 files changed, 103 insertions, 15 deletions
diff --git a/plugins/jetpack/modules/wordads/wordads.php b/plugins/jetpack/modules/wordads/wordads.php
index c8748e18..9ec3e07f 100644
--- a/plugins/jetpack/modules/wordads/wordads.php
+++ b/plugins/jetpack/modules/wordads/wordads.php
@@ -5,6 +5,7 @@ define( 'WORDADS_BASENAME', plugin_basename( __FILE__ ) );
define( 'WORDADS_FILE_PATH', WORDADS_ROOT . '/' . basename( __FILE__ ) );
define( 'WORDADS_URL', plugins_url( '/', __FILE__ ) );
define( 'WORDADS_API_TEST_ID', '26942' );
+define( 'WORDADS_API_TEST_ID2', '114160' );
require_once( WORDADS_ROOT . '/php/widgets.php' );
require_once( WORDADS_ROOT . '/php/api.php' );
@@ -91,7 +92,6 @@ class WordAds {
}
$this->insert_adcode();
- $this->insert_extras();
}
/**
@@ -131,15 +131,6 @@ class WordAds {
}
/**
- * Add the actions/filters to insert extra-network features.
- *
- * @since 4.5.0
- */
- private function insert_extras() {
- require_once( WORDADS_ROOT . '/php/networks/amazon.php' );
- }
-
- /**
* Register desktop scripts and styles
*
* @since 4.5.0
@@ -181,7 +172,27 @@ HTML;
*/
function insert_head_iponweb() {
$data_tags = ( $this->params->cloudflare ) ? ' data-cfasync="false"' : '';
- echo "<script$data_tags type='text/javascript' src='//s.pubmine.com/head.js'></script>";
+ echo <<<HTML
+ <link rel='dns-prefetch' href='//s.pubmine.com' />
+ <link rel='dns-prefetch' href='//x.bidswitch.net' />
+ <link rel='dns-prefetch' href='//static.criteo.net' />
+ <link rel='dns-prefetch' href='//ib.adnxs.com' />
+ <link rel='dns-prefetch' href='//aax.amazon-adsystem.com' />
+ <link rel='dns-prefetch' href='//bidder.criteo.com' />
+ <link rel='dns-prefetch' href='//cas.criteo.com' />
+ <link rel='dns-prefetch' href='//gum.criteo.com' />
+ <link rel='dns-prefetch' href='//ads.pubmatic.com' />
+ <link rel='dns-prefetch' href='//gads.pubmatic.com' />
+ <link rel='dns-prefetch' href='//tpc.googlesyndication.com' />
+ <link rel='dns-prefetch' href='//ad.doubleclick.net' />
+ <link rel='dns-prefetch' href='//googleads.g.doubleclick.net' />
+ <link rel='dns-prefetch' href='//www.googletagservices.com' />
+ <link rel='dns-prefetch' href='//cdn.switchadhub.com' />
+ <link rel='dns-prefetch' href='//delivery.g.switchadhub.com' />
+ <link rel='dns-prefetch' href='//delivery.swid.switchadhub.com' />
+ <script$data_tags type="text/javascript" src="//s.pubmine.com/head.js"></script>
+ <script$data_tags type="text/javascript" src="//static.criteo.net/js/ld/publishertag.js"></script>
+HTML;
}
/**
@@ -283,46 +294,123 @@ HTML;
*/
function get_ad( $spot, $type = 'iponweb' ) {
$snippet = '';
+ $blocker_unit = 'mrec';
if ( 'iponweb' == $type ) {
$section_id = WORDADS_API_TEST_ID;
$width = 300;
$height = 250;
+ $second_belowpost = '';
if ( 'top' == $spot ) {
// mrec for mobile, leaderboard for desktop
$section_id = 0 === $this->params->blog_id ? WORDADS_API_TEST_ID : $this->params->blog_id . '2';
$width = $this->params->mobile_device ? 300 : 728;
$height = $this->params->mobile_device ? 250 : 90;
- } else if ( 'belowpost' ) {
+ $blocker_unit = $this->params->mobile_device ? 'top_mrec' : 'top';
+ } else if ( 'belowpost' == $spot ) {
$section_id = 0 === $this->params->blog_id ? WORDADS_API_TEST_ID : $this->params->blog_id . '1';
$width = 300;
$height = 250;
+ if ( $this->option( 'wordads_second_belowpost', true ) ) {
+ $section_id2 = 0 === $this->params->blog_id ? WORDADS_API_TEST_ID2 : $this->params->blog_id . '4';
+ $second_belowpost =
+ "g.__ATA.initAd({collapseEmpty:'after', sectionId:$section_id2, width:$width, height:$height});";
+ }
}
+
$data_tags = ( $this->params->cloudflare ) ? ' data-cfasync="false"' : '';
$snippet = <<<HTML
- <script$data_tags type='text/javascript'>
- (function(g){g.__ATA.initAd({sectionId:$section_id, width:$width, height:$height});})(window);
+ <script$data_tags id='s$section_id' type='text/javascript'>
+ (function(g){if('undefined'!=typeof g.__ATA){
+ g.__ATA.initAd({collapseEmpty:'after', sectionId:$section_id, width:$width, height:$height});
+ $second_belowpost
+ }})(window);
</script>
HTML;
} else if ( 'house' == $type ) {
$leaderboard = 'top' == $spot && ! $this->params->mobile_device;
$snippet = $this->get_house_ad( $leaderboard ? 'leaderboard' : 'mrec' );
+ if ( 'belowpost' == $spot && $this->option( 'wordads_second_belowpost', true ) ) {
+ $snippet .= $this->get_house_ad( $leaderboard ? 'leaderboard' : 'mrec' );
+ }
+ }
+
+ $ad_blocker_ad = 'iponweb' == $type ? $this->get_adblocker_ad( $blocker_unit ) : '';
+ $second_belowpost_css = '';
+ $double_mrec = '';
+ if ( 'belowpost' == $spot && $this->option( 'wordads_second_belowpost', true ) ) {
+ if ( 'iponweb' == $type ) {
+ $ad_blocker_ad .= $this->get_adblocker_ad( 'mrec2' );
+ }
+
+ $double_mrec = 'wpmrec2x';
+ $second_belowpost_css = <<<HTML
+ <style type="text/css">
+ div.wpmrec2x{max-width:610px;}
+ div.wpmrec2x div.u > div{float:left;margin-right:10px;}
+ div.wpmrec2x div.u > div:nth-child(3n){margin-right:0px;}
+ </style>
+HTML;
}
$header = 'top' == $spot ? 'wpcnt-header' : '';
$about = __( 'Advertisements', 'jetpack' );
return <<<HTML
- <div class="wpcnt $header">
+ $second_belowpost_css
+ <div class="wpcnt $header $double_mrec">
<div class="wpa">
<span class="wpa-about">$about</span>
<div class="u $spot">
$snippet
</div>
+ $ad_blocker_ad
</div>
</div>
HTML;
}
/**
+ * Get Criteo Acceptable Ad unit
+ * @param string $unit mrec, mrec2, widesky, top, top_mrec
+ *
+ * @since 5.3
+ */
+ public function get_adblocker_ad( $unit = 'mrec' ) {
+ $criteo_id = mt_rand();
+ $height = 250;
+ $width = 300;
+ $zone_id = 388248;
+ if ( 'mrec2' == $unit ) { // 2nd belowpost
+ $zone_id = 837497;
+ } else if ( 'widesky' == $unit ) { // sidebar
+ $zone_id = 563902;
+ $width = 160;
+ $height= 600;
+ } else if ( 'top' == $unit ) { // top leaderboard
+ $zone_id = 563903;
+ $width = 728;
+ $height = 90;
+ } else if ( 'top_mrec' == $unit ) { // top mrec
+ $zone_id = 563903;
+ }
+
+ return <<<HTML
+ <div id="crt-$criteo_id" style="width:{$width}px;height:{$height}px;"></div>
+ <script type="text/javascript">
+ var o = document.getElementById('crt-$criteo_id');
+ if ("undefined"!=typeof Criteo) {
+ var p = o.parentNode;
+ p.style.setProperty('display', 'inline-block', 'important');
+ o.style.setProperty('display', 'block', 'important');
+ Criteo.DisplayAcceptableAdIfAdblocked({zoneid:$zone_id,containerid:"crt-$criteo_id",collapseContainerIfNotAdblocked:true,"callifnotadblocked": function () {var o = document.getElementById('crt-$criteo_id'); o.style.setProperty('display','none','important');o.style.setProperty('visbility','hidden','important'); } });
+ } else {
+ o.style.setProperty('display', 'none', 'important');
+ o.style.setProperty('visibility', 'hidden', 'important');
+ }
+ </script>
+HTML;
+ }
+
+ /**
* Check the reasons to bail before we attempt to insert ads.
* @return true if we should bail (don't insert ads)
*