Advanced Ads - Version 1.14.5

Version Description

  • sanitize Container ID option on save and warn about wrong format
  • made Placements page work when another plugin includes Twitter Bootstrap
  • updated missing ads.txt warning
  • disabled Privacy module on AMP pages so that the Google AMP cache shows them
  • fixed warnings for some features on AMP pages
  • fixed suggestion to switch Auto ads code in plain text ad type to AdSense ad type
Download this release

Release Info

Developer webzunft
Plugin Icon 128x128 Advanced Ads
Version 1.14.5
Comparing to
See all releases

Code changes from version 1.14.4 to 1.14.5

admin/assets/js/admin.js CHANGED
@@ -270,6 +270,15 @@ jQuery( document ).ready(function ($) {
270
  usagediv.show();
271
  }
272
  });
 
 
 
 
 
 
 
 
 
273
  /**
274
  * automatically open all options and show usage link when this is the placement linked in the URL
275
  * also highlight the box with an effect for a short time
@@ -962,13 +971,12 @@ jQuery.fn.advads_buttonset = function() {
962
  * @param arguments_ mixed Widget arguments.
963
  */
964
  function _advads_apply_jqueryui_widget( name, revoke, args ) {
965
- var revoked = {};
966
  var can_apply = true;
967
 
968
  jQuery.each( revoke, function( _index, _name ) {
969
  if ( jQuery.fn[ _name ].noConflict ) {
970
  // Revoke Twitter Bootstrap, assign jQuery UI.
971
- revoked[ _name ] = jQuery.fn[ _name ].noConflict();
972
  }
973
  can_apply = _advads_can_apply_jqueryui_widget( _name );
974
  });
@@ -980,11 +988,6 @@ function _advads_apply_jqueryui_widget( name, revoke, args ) {
980
  }
981
 
982
  var r = this[ name ].apply( this, args );
983
-
984
- jQuery.each( revoked, function( _name, _widget ) {
985
- // Revoke jQuery UI, assign Bootstrap.
986
- jQuery.fn[ _name ] = _widget;
987
- });
988
  return r;
989
  }
990
 
270
  usagediv.show();
271
  }
272
  });
273
+ // show warning if Container ID option contains invalid characters
274
+ $( '#advads-output-wrapper-id' ).keyup( function(){
275
+ var id_value = $( this ).val();
276
+ if( /^[a-z-0-9]*$/.test( id_value ) ){
277
+ $( '.advads-output-wrapper-id-error' ).removeClass( 'advads-error-message' );
278
+ } else {
279
+ $( '.advads-output-wrapper-id-error' ).addClass( 'advads-error-message' ).css( 'display', 'block' );
280
+ }
281
+ });
282
  /**
283
  * automatically open all options and show usage link when this is the placement linked in the URL
284
  * also highlight the box with an effect for a short time
971
  * @param arguments_ mixed Widget arguments.
972
  */
973
  function _advads_apply_jqueryui_widget( name, revoke, args ) {
 
974
  var can_apply = true;
975
 
976
  jQuery.each( revoke, function( _index, _name ) {
977
  if ( jQuery.fn[ _name ].noConflict ) {
978
  // Revoke Twitter Bootstrap, assign jQuery UI.
979
+ jQuery.fn[ _name ].noConflict();
980
  }
981
  can_apply = _advads_can_apply_jqueryui_widget( _name );
982
  });
988
  }
989
 
990
  var r = this[ name ].apply( this, args );
 
 
 
 
 
991
  return r;
992
  }
993
 
admin/includes/ad-health-notices.php CHANGED
@@ -185,7 +185,7 @@ $advanced_ads_ad_health_notices = apply_filters( 'advanced-ads-ad-health-notices
185
  __( 'Last AdSense account connection attempt failed.', 'advanced-ads' ) . ' ' .
186
  // translators: %1$s is the opening a tag and %2$s the closing one.
187
  __( 'Create a new AdSense account %1$shere%2$s.', 'advanced-ads' ) . ' ' . Advanced_Ads_Ad_Health_Notices::get_adsense_error_link( 'noAdSenseAccount' ),
188
- '<a href="https://www.google.com/adsense/start/?utm_source=AdvancedAdsPlugIn&utm_medium=partnerships&utm_campaign=AdvancedAdsPartner" target="_blank">',
189
  '</a>'
190
  ),
191
  'type' => 'problem',
@@ -210,6 +210,16 @@ $advanced_ads_ad_health_notices = apply_filters( 'advanced-ads-ad-health-notices
210
  ) . ' ' . Advanced_Ads_Ad_Health_Notices::get_adsense_error_link( 'ADS_TXT_MISSING' ),
211
  'type' => 'problem',
212
  ),
 
 
 
 
 
 
 
 
 
 
213
  'nested_the_content_filters' => array(
214
  'text' => sprintf(
215
  // translators: %s is a filter hook, here `the_content`.
@@ -288,6 +298,20 @@ $advanced_ads_ad_health_notices = apply_filters( 'advanced-ads-ad-health-notices
288
  __( 'Advanced Ads handles your ads.txt file automatically. You might be able to <strong>remove %1$s</strong>.', 'advanced-ads' ),
289
  implode( ', ', Advanced_Ads_Checks::ads_txt_plugins() )
290
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
291
  'hide' => false,
292
  'timeout' => YEAR_IN_SECONDS,
293
  ),
185
  __( 'Last AdSense account connection attempt failed.', 'advanced-ads' ) . '&nbsp;' .
186
  // translators: %1$s is the opening a tag and %2$s the closing one.
187
  __( 'Create a new AdSense account %1$shere%2$s.', 'advanced-ads' ) . ' ' . Advanced_Ads_Ad_Health_Notices::get_adsense_error_link( 'noAdSenseAccount' ),
188
+ '<a href="https://www.google.com/adsense/start/?utm_source=AdvancedAdsPlugIn&utm_medium=partnerships&utm_campaign=AdvancedAdsPartner1" target="_blank">',
189
  '</a>'
190
  ),
191
  'type' => 'problem',
210
  ) . ' ' . Advanced_Ads_Ad_Health_Notices::get_adsense_error_link( 'ADS_TXT_MISSING' ),
211
  'type' => 'problem',
212
  ),
213
+ // AdSense account alert. . Missing ads.txt – version 3.
214
+ 'adsense_alert_ADS_TXT_ISSUES' => array(
215
+ 'text' => sprintf(
216
+ __( 'One of your sites is missing the AdSense publisher ID in the ads.txt file.', 'advanced-ads' )
217
+ . ' <a class="advads-settings-link" href="%s">'
218
+ . _x( 'Create one now.', 'related to ads.txt file', 'advanced-ads' ) . '</a>',
219
+ admin_url( 'admin.php?page=advanced-ads-settings#general__advads-ads-txt' )
220
+ ) . ' ' . Advanced_Ads_Ad_Health_Notices::get_adsense_error_link( 'ADS_TXT_ISSUES' ),
221
+ 'type' => 'problem',
222
+ ),
223
  'nested_the_content_filters' => array(
224
  'text' => sprintf(
225
  // translators: %s is a filter hook, here `the_content`.
298
  __( 'Advanced Ads handles your ads.txt file automatically. You might be able to <strong>remove %1$s</strong>.', 'advanced-ads' ),
299
  implode( ', ', Advanced_Ads_Checks::ads_txt_plugins() )
300
  ),
301
+ 'type' => 'notice',
302
+ 'hide' => false,
303
+ 'timeout' => YEAR_IN_SECONDS,
304
+ ),
305
+ // Notice about plugins that add header or footer code.
306
+ // Advanced_Ads_Checks::header_footer_plugins().
307
+ 'header_footer_plugins_enabled' => array(
308
+ 'text' =>
309
+ __( 'Advanced Ads handles header and footer codes.', 'advanced-ads' ) . '&nbsp;' .
310
+ sprintf( __( 'You might be able to <strong>remove %1$s</strong>.', 'advanced-ads' ),
311
+ implode( ', ', Advanced_Ads_Checks::header_footer_plugins() )
312
+ ) . '&nbsp;' .
313
+ '<a href="' . ADVADS_URL . 'add-header-and-footer-code-wordpress/#utm_source=advanced-ads&utm_medium=link&utm_campaign=notice-header-footer' . '" target="_blank">' . __( 'Learn how.', 'advanced-ads' ) . '</a>',
314
+ 'type' => 'notice',
315
  'hide' => false,
316
  'timeout' => YEAR_IN_SECONDS,
317
  ),
admin/includes/class-meta-box.php CHANGED
@@ -240,14 +240,17 @@ class Advanced_Ads_Admin_Meta_Boxes {
240
  }
241
 
242
  if ( 'ad-parameters-box' === $box['id'] && Advanced_Ads_Ad_Type_Adsense::content_is_adsense( $ad->content ) && in_array( $ad->type, array( 'plain', 'content' ) ) ) {
243
- $warnings[] = array(
244
- 'class' => 'advads-adsense-found-in-content error',
245
- 'text' => sprintf(
246
- esc_html__( 'This looks like an AdSense ad. Switch the ad type to “AdSense ad” to make use of more features. %sSwitch to AdSense ad%s.', 'advanced' ),
247
- '<button class="button-secondary" id="switch-to-adsense-type">',
248
- '</button>'
249
- )
250
- );
 
 
 
251
  }
252
 
253
  $warnings = apply_filters( 'advanced-ads-ad-notices', $warnings, $box, $post );
240
  }
241
 
242
  if ( 'ad-parameters-box' === $box['id'] && Advanced_Ads_Ad_Type_Adsense::content_is_adsense( $ad->content ) && in_array( $ad->type, array( 'plain', 'content' ) ) ) {
243
+ if ( false === strpos( $ad->content, 'enable_page_level_ads' ) ) {
244
+ $adsense_auto_ads = Advanced_Ads_AdSense_Data::get_instance()->is_page_level_enabled();
245
+ $warnings[] = array(
246
+ 'class' => 'advads-adsense-found-in-content error',
247
+ 'text' => sprintf(
248
+ esc_html__( 'This looks like an AdSense ad. Switch the ad type to “AdSense ad” to make use of more features. %sSwitch to AdSense ad%s.', 'advanced' ),
249
+ '<button class="button-secondary" id="switch-to-adsense-type">',
250
+ '</button>'
251
+ )
252
+ );
253
+ }
254
  }
255
 
256
  $warnings = apply_filters( 'advanced-ads-ad-notices', $warnings, $box, $post );
admin/includes/class-overview-widgets.php CHANGED
@@ -353,9 +353,12 @@ class Advanced_Ads_Overview_Widgets_Callbacks {
353
  * @param bool $hide_activated if true, hide activated add-ons
354
  */
355
  public static function render_addons( $hide_activated = false ){
356
-
357
- $caching_used = Advanced_Ads_Checks::cache();
358
-
 
 
 
359
  ob_start();
360
  ?><p><?php _e( 'The solution for professional websites.', 'advanced-ads' ); ?></p><ul class='list'>
361
  <li><?php
353
  * @param bool $hide_activated if true, hide activated add-ons
354
  */
355
  public static function render_addons( $hide_activated = false ){
356
+
357
+ $link = ADVADS_URL . 'manual/how-to-install-an-add-on/#utm_source=advanced-ads&utm_medium=link&utm_campaign=overview-install-add-ons';
358
+ ?><p style="text-align: right;"><a href="<?php echo esc_url( $link ); ?>" target="_blank"><?php echo esc_attr__( 'How to install and activate an add-on.', 'advanced-ads' ); ?></a></p><?php
359
+
360
+ $caching_used = Advanced_Ads_Checks::cache();
361
+
362
  ob_start();
363
  ?><p><?php _e( 'The solution for professional websites.', 'advanced-ads' ); ?></p><ul class='list'>
364
  <li><?php
admin/views/ad-output-metabox.php CHANGED
@@ -59,7 +59,8 @@
59
  if ( isset( $options['wrapper-id'] ) ) {
60
  echo $options['wrapper-id']; }
61
  ?>"/>
62
- <p class="description"><?php _e( 'Specify the id of the ad container. Leave blank for random or no id.', 'advanced-ads' ); ?></p>
 
63
  </div>
64
  <hr class="advads-hide-in-wizard"/>
65
  <label class='label advads-hide-in-wizard' for="advads-output-wrapper-class"><?php _e( 'container classes', 'advanced-ads' ); ?></label>
@@ -68,7 +69,7 @@
68
  if ( isset( $options['wrapper-class'] ) ) {
69
  echo $options['wrapper-class']; }
70
  ?>"/>
71
- <p class="description"><?php _e( 'Specify one or more classes for the container. Separate multiple classes with a space', 'advanced-ads' ); ?></p>
72
  </div>
73
  <hr class="advads-hide-in-wizard"/>
74
  <label for="advads-output-debugmode" class="label advads-hide-in-wizard"><?php _e( 'Enable debug mode', 'advanced-ads' ); ?></label>
59
  if ( isset( $options['wrapper-id'] ) ) {
60
  echo $options['wrapper-id']; }
61
  ?>"/>
62
+ <p class="description"><?php _e( 'Specify the id of the ad container. Leave blank for random or no id.', 'advanced-ads' ); ?>
63
+ &nbsp;<span class="advads-output-wrapper-id-error"><?php esc_attr_e( 'An id-like string with only letters in lower case, numbers, and hyphens.', 'advanced-ads' ); ?></span></p>
64
  </div>
65
  <hr class="advads-hide-in-wizard"/>
66
  <label class='label advads-hide-in-wizard' for="advads-output-wrapper-class"><?php _e( 'container classes', 'advanced-ads' ); ?></label>
69
  if ( isset( $options['wrapper-class'] ) ) {
70
  echo $options['wrapper-class']; }
71
  ?>"/>
72
+ <p class="description"><?php _e( 'Specify one or more classes for the container. Separate multiple classes with a space', 'advanced-ads' ); ?>.</p>
73
  </div>
74
  <hr class="advads-hide-in-wizard"/>
75
  <label for="advads-output-debugmode" class="label advads-hide-in-wizard"><?php _e( 'Enable debug mode', 'advanced-ads' ); ?></label>
advanced-ads.php CHANGED
@@ -12,7 +12,7 @@
12
  * Plugin Name: Advanced Ads
13
  * Plugin URI: https://wpadvancedads.com
14
  * Description: Manage and optimize your ads in WordPress
15
- * Version: 1.14.4
16
  * Author: Thomas Maier
17
  * Author URI: https://wpadvancedads.com
18
  * Text Domain: advanced-ads
@@ -39,7 +39,7 @@ define( 'ADVADS_BASE_DIR', dirname( ADVADS_BASE ) ); // directory of the plugin
39
  // general and global slug, e.g. to store options in WP
40
  define( 'ADVADS_SLUG', 'advanced-ads' );
41
  define( 'ADVADS_URL', 'https://wpadvancedads.com/' );
42
- define( 'ADVADS_VERSION', '1.14.4' );
43
 
44
  /*----------------------------------------------------------------------------*
45
  * Autoloading, modules and functions
12
  * Plugin Name: Advanced Ads
13
  * Plugin URI: https://wpadvancedads.com
14
  * Description: Manage and optimize your ads in WordPress
15
+ * Version: 1.14.5
16
  * Author: Thomas Maier
17
  * Author URI: https://wpadvancedads.com
18
  * Text Domain: advanced-ads
39
  // general and global slug, e.g. to store options in WP
40
  define( 'ADVADS_SLUG', 'advanced-ads' );
41
  define( 'ADVADS_URL', 'https://wpadvancedads.com/' );
42
+ define( 'ADVADS_VERSION', '1.14.5' );
43
 
44
  /*----------------------------------------------------------------------------*
45
  * Autoloading, modules and functions
classes/ad-health-notices.php CHANGED
@@ -318,6 +318,11 @@ class Advanced_Ads_Ad_Health_Notices {
318
  } else {
319
  $this->remove( 'ads_txt_plugins_enabled' );
320
  }
 
 
 
 
 
321
 
322
  set_transient( self::DAILY_CHECK_TRANSIENT_NAME, true, DAY_IN_SECONDS );
323
  }
318
  } else {
319
  $this->remove( 'ads_txt_plugins_enabled' );
320
  }
321
+ if ( count( Advanced_Ads_Checks::header_footer_plugins() ) ) {
322
+ $this->add( 'header_footer_plugins_enabled' );
323
+ } else {
324
+ $this->remove( 'header_footer_plugins_enabled' );
325
+ }
326
 
327
  set_transient( self::DAILY_CHECK_TRANSIENT_NAME, true, DAY_IN_SECONDS );
328
  }
classes/ad.php CHANGED
@@ -494,7 +494,10 @@ class Advanced_Ads_Ad {
494
  $options['conditions'] = $conditions;
495
  $options['expiry_date'] = $this->expiry_date;
496
  $options['description'] = $this->description;
497
-
 
 
 
498
  // filter to manipulate options or add more to be saved
499
  $options = apply_filters( 'advanced-ads-save-options', $options, $this );
500
 
494
  $options['conditions'] = $conditions;
495
  $options['expiry_date'] = $this->expiry_date;
496
  $options['description'] = $this->description;
497
+
498
+ // sanitize container ID option
499
+ $options['output']['wrapper-id'] = sanitize_key( $options['output']['wrapper-id'] );
500
+
501
  // filter to manipulate options or add more to be saved
502
  $options = apply_filters( 'advanced-ads-save-options', $options, $this );
503
 
classes/checks.php CHANGED
@@ -364,4 +364,34 @@ class Advanced_Ads_Checks {
364
 
365
  return $ads_txt_plugins;
366
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
367
  }
364
 
365
  return $ads_txt_plugins;
366
  }
367
+
368
+ /**
369
+ * Check for activated plugins that manage header or footer code
370
+ *
371
+ * @return array
372
+ */
373
+ public static function header_footer_plugins(){
374
+
375
+ $plugins = array();
376
+
377
+ // Header Footer Code Manager
378
+ if( function_exists( 'hfcm_options_install' ) ) {
379
+ $plugins[] = 'Header Footer Code Manager';
380
+ }
381
+ // Head, Footer and Post Injections
382
+ if( function_exists( 'hefo_template_redirect' ) ) {
383
+ $plugins[] = 'Head, Footer and Post Injections';
384
+ }
385
+ // Insert Headers and Footers /insert-headers-and-footers/
386
+ if( class_exists( 'InsertHeadersAndFooters', false ) ) {
387
+ $plugins[] = 'Insert Headers and Footers';
388
+ }
389
+ // Header and Footer Scripts /header-and-footer-scripts/
390
+ if( class_exists( 'HeaderAndFooterScripts', false ) ) {
391
+ $plugins[] = 'Header and Footer Scripts';
392
+ }
393
+
394
+
395
+ return $plugins;
396
+ }
397
  }
classes/frontend_checks.php CHANGED
@@ -50,6 +50,9 @@ class Advanced_Ads_Frontend_Checks {
50
  * needs to add ajaxurl in case no other plugin is doing that
51
  */
52
  public function enqueue_scripts() {
 
 
 
53
 
54
  // we don’t have our own script, so we attach this information to jquery
55
  wp_localize_script( 'jquery', 'advads_frontend_checks',
@@ -319,7 +322,7 @@ class Advanced_Ads_Frontend_Checks {
319
  )
320
  ) );
321
 
322
- $nodes[] = array( 'type' => 3, 'data' => array(
323
  'parent' => 'advanced_ads_ad_health',
324
  'id' => 'advanced_ads_ad_health_highlight_ads',
325
  'title' => sprintf( '<label style="color: inherit;"><input id="advanced_ads_highlight_ads_checkbox" type="checkbox"> %s</label>', __( 'highlight ads', 'advanced-ads' ) )
@@ -346,20 +349,67 @@ class Advanced_Ads_Frontend_Checks {
346
  * @param obj $wp_admin_bar
347
  */
348
  $nodes = apply_filters( 'advanced-ads-ad-health-nodes', $nodes );
 
349
  usort( $nodes, array( $this, 'sort_nodes' ) );
350
-
351
  // load number of already detected notices
352
  $notices = Advanced_Ads_Ad_Health_Notices::get_number_of_notices();
353
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
354
  $wp_admin_bar->add_node( array(
355
  'id' => 'advanced_ads_ad_health',
356
- 'title' => __( 'Ad Health', 'advanced-ads' ) . '&nbsp;<span class="advanced-ads-issue-counter">' . $notices . '</span>',
357
  'parent' => false,
358
- 'href' => admin_url( 'admin.php?page=advanced-ads' )
 
 
 
359
  ) );
360
 
 
361
  // show that there are backend notices
362
- if( $notices ){
363
  $wp_admin_bar->add_node( array(
364
  'parent' => 'advanced_ads_ad_health',
365
  'id' => 'advanced_ads_ad_health_more',
@@ -367,16 +417,16 @@ class Advanced_Ads_Frontend_Checks {
367
  'href' => admin_url( 'admin.php?page=advanced-ads' ),
368
  ) );
369
  }
370
-
371
- $display_fine = true;
372
 
373
- foreach ( $nodes as $node ) {
374
- if ( ! isset( $node['type'] ) || ! isset( $node['data'] ) ) { continue; }
375
- if ( $node['type'] === 1 ) { $display_fine = false; }
376
- $wp_admin_bar->add_node( $node['data'] );
377
- }
378
-
379
- if ( $display_fine && !$notices ) {
 
380
  $wp_admin_bar->add_node( array(
381
  'parent' => 'advanced_ads_ad_health',
382
  'id' => 'advanced_ads_ad_health_fine',
@@ -387,7 +437,7 @@ class Advanced_Ads_Frontend_Checks {
387
  )
388
  ) );
389
  }
390
-
391
  $wp_admin_bar->add_node( array(
392
  'parent' => 'advanced_ads_ad_health',
393
  'id' => 'advanced_ads_ad_health_support',
@@ -397,7 +447,16 @@ class Advanced_Ads_Frontend_Checks {
397
  'target' => '_blank',
398
  )
399
  ) );
400
-
 
 
 
 
 
 
 
 
 
401
  }
402
 
403
  /**
@@ -438,8 +497,6 @@ class Advanced_Ads_Frontend_Checks {
438
  * AdSense Quick Start ads are running
439
  */
440
  public function footer_checks() {
441
- $adsense_options = Advanced_Ads_AdSense_Data::get_instance()->get_options();
442
- $notices = Advanced_Ads_Ad_Health_Notices::get_number_of_notices();
443
  ob_start();
444
  ?><!-- Advanced Ads: <?php _e( 'the following code is used for automatic error detection and only visible to admins', 'advanced-ads' ); ?>-->
445
  <style>.hidden { display: none; }
@@ -447,7 +504,16 @@ class Advanced_Ads_Frontend_Checks {
447
  #wpadminbar .advanced-ads-issue-counter { background-color: #d54e21; display: none; padding: 1px 7px 1px 6px!important; border-radius: 50%; color: #fff; }
448
  #wpadminbar .advads-adminbar-is-warnings .advanced-ads-issue-counter { display: inline; }
449
  .advanced-ads-highlight-ads { outline:4px solid blue !important; }</style>
450
- <script type="text/javascript" src="<?php echo ADVADS_BASE_URL . 'admin/assets/js/advertisement.js' ?>"></script>
 
 
 
 
 
 
 
 
 
451
  <script>
452
  var advanced_ads_frontend_checks = {
453
  showCount: function() {
@@ -691,6 +757,10 @@ class Advanced_Ads_Frontend_Checks {
691
  public function after_ad_output( $content = '', Advanced_Ads_Ad $ad ) {
692
  if ( ! isset( $ad->args['frontend-check'] ) ) { return $content; }
693
 
 
 
 
 
694
  // Allow DFP debugging by showing a link that points to the current URL with the 'googfc' parameter.
695
  if ( $ad->type === 'plain' && preg_match( '/gpt\.js/', $content ) ) {
696
  ob_start(); ?>
@@ -716,7 +786,7 @@ class Advanced_Ads_Frontend_Checks {
716
  $content .= Advanced_Ads_Utils::get_inline_asset( ob_get_clean() );
717
  }
718
 
719
- if ( ! $this->can_use_head_placement( $content, $ad ) ) {
720
  ob_start(); ?>
721
  <script>advanced_ads_ready( function() {
722
  var ad_id = '<?php echo $ad->id; ?>';
@@ -753,7 +823,7 @@ class Advanced_Ads_Frontend_Checks {
753
  * @param obj $ad Advanced_Ads_Ad
754
  * @return bool
755
  */
756
- private function can_use_head_placement( $content, Advanced_Ads_Ad $ad ) {
757
 
758
  if ( ! $ad->is_head_placement ) {
759
  return true;
@@ -826,3 +896,4 @@ class Advanced_Ads_Frontend_Checks {
826
  return false;
827
  }
828
  }
 
50
  * needs to add ajaxurl in case no other plugin is doing that
51
  */
52
  public function enqueue_scripts() {
53
+ if ( advads_is_amp() ) {
54
+ return;
55
+ }
56
 
57
  // we don’t have our own script, so we attach this information to jquery
58
  wp_localize_script( 'jquery', 'advads_frontend_checks',
322
  )
323
  ) );
324
 
325
+ $nodes[] = array( 'type' => 3, 'amp' => false, 'data' => array(
326
  'parent' => 'advanced_ads_ad_health',
327
  'id' => 'advanced_ads_ad_health_highlight_ads',
328
  'title' => sprintf( '<label style="color: inherit;"><input id="advanced_ads_highlight_ads_checkbox" type="checkbox"> %s</label>', __( 'highlight ads', 'advanced-ads' ) )
349
  * @param obj $wp_admin_bar
350
  */
351
  $nodes = apply_filters( 'advanced-ads-ad-health-nodes', $nodes );
352
+
353
  usort( $nodes, array( $this, 'sort_nodes' ) );
354
+
355
  // load number of already detected notices
356
  $notices = Advanced_Ads_Ad_Health_Notices::get_number_of_notices();
357
 
358
+ if ( ! advads_is_amp() ) {
359
+ $warnings = 0; // Will be updated using JS.
360
+ } else {
361
+ $warnings = $this->count_visible_warnings( $nodes, array( 1 ) );
362
+ }
363
+
364
+ $issues = $notices + $warnings;
365
+
366
+ $this->add_header_nodes( $wp_admin_bar, $issues, $notices );
367
+
368
+ foreach ( $nodes as $node ) {
369
+ $wp_admin_bar->add_node( $node['data'] );
370
+ }
371
+
372
+ $this->add_footer_nodes( $wp_admin_bar, $issues );
373
+ }
374
+
375
+ /**
376
+ * Count visible notices and warnings.
377
+ *
378
+ * @param array $nodes Nodes to add.
379
+ * @param array $types Warning types.
380
+ */
381
+ private function count_visible_warnings( $nodes, $types = array() ) {
382
+ $warnings = 0;
383
+ foreach ( $nodes as $node ) {
384
+ if ( ! isset( $node['type'] ) || ! isset( $node['data'] ) ) { continue; }
385
+ if ( in_array( $node['type'], $types ) ) {
386
+ $warnings++;
387
+ }
388
+ }
389
+ return $warnings;
390
+ }
391
+
392
+ /**
393
+ * Add header nodes.
394
+ *
395
+ * @param obj $wp_admin_bar WP_Admin_Bar object.
396
+ * @param int $issues Number of all issues.
397
+ * @param int $notices Number of notices.
398
+ */
399
+ public static function add_header_nodes( $wp_admin_bar, $issues, $notices ) {
400
  $wp_admin_bar->add_node( array(
401
  'id' => 'advanced_ads_ad_health',
402
+ 'title' => __( 'Ad Health', 'advanced-ads' ) . '&nbsp;<span class="advanced-ads-issue-counter">' . $issues . '</span>',
403
  'parent' => false,
404
+ 'href' => admin_url( 'admin.php?page=advanced-ads' ),
405
+ 'meta' => array(
406
+ 'class' => $issues ? 'advads-adminbar-is-warnings': '',
407
+ ),
408
  ) );
409
 
410
+
411
  // show that there are backend notices
412
+ if ( $notices ) {
413
  $wp_admin_bar->add_node( array(
414
  'parent' => 'advanced_ads_ad_health',
415
  'id' => 'advanced_ads_ad_health_more',
417
  'href' => admin_url( 'admin.php?page=advanced-ads' ),
418
  ) );
419
  }
420
+ }
 
421
 
422
+ /**
423
+ * Add footer nodes.
424
+ *
425
+ * @param obj $wp_admin_bar WP_Admin_Bar object.
426
+ * @param int $issues Number of all issues.
427
+ */
428
+ public static function add_footer_nodes( $wp_admin_bar, $issues ) {
429
+ if ( ! $issues ) {
430
  $wp_admin_bar->add_node( array(
431
  'parent' => 'advanced_ads_ad_health',
432
  'id' => 'advanced_ads_ad_health_fine',
437
  )
438
  ) );
439
  }
440
+
441
  $wp_admin_bar->add_node( array(
442
  'parent' => 'advanced_ads_ad_health',
443
  'id' => 'advanced_ads_ad_health_support',
447
  'target' => '_blank',
448
  )
449
  ) );
450
+ }
451
+
452
+ /**
453
+ * Filter out nodes intended to AMP pages only.
454
+ *
455
+ * @param array $nodes Nodes to add.
456
+ * @return array $nodes Nodes to add.
457
+ */
458
+ private function filter_nodes( $nodes ) {
459
+ return $nodes;
460
  }
461
 
462
  /**
497
  * AdSense Quick Start ads are running
498
  */
499
  public function footer_checks() {
 
 
500
  ob_start();
501
  ?><!-- Advanced Ads: <?php _e( 'the following code is used for automatic error detection and only visible to admins', 'advanced-ads' ); ?>-->
502
  <style>.hidden { display: none; }
504
  #wpadminbar .advanced-ads-issue-counter { background-color: #d54e21; display: none; padding: 1px 7px 1px 6px!important; border-radius: 50%; color: #fff; }
505
  #wpadminbar .advads-adminbar-is-warnings .advanced-ads-issue-counter { display: inline; }
506
  .advanced-ads-highlight-ads { outline:4px solid blue !important; }</style>
507
+ <?php echo ob_get_clean();
508
+
509
+ if ( advads_is_amp() ) {
510
+ return;
511
+ }
512
+
513
+ $adsense_options = Advanced_Ads_AdSense_Data::get_instance()->get_options();
514
+ $notices = Advanced_Ads_Ad_Health_Notices::get_number_of_notices();
515
+ ob_start();
516
+ ?><script type="text/javascript" src="<?php echo ADVADS_BASE_URL . 'admin/assets/js/advertisement.js' ?>"></script>
517
  <script>
518
  var advanced_ads_frontend_checks = {
519
  showCount: function() {
757
  public function after_ad_output( $content = '', Advanced_Ads_Ad $ad ) {
758
  if ( ! isset( $ad->args['frontend-check'] ) ) { return $content; }
759
 
760
+ if ( advads_is_amp() ) {
761
+ return $content;
762
+ }
763
+
764
  // Allow DFP debugging by showing a link that points to the current URL with the 'googfc' parameter.
765
  if ( $ad->type === 'plain' && preg_match( '/gpt\.js/', $content ) ) {
766
  ob_start(); ?>
786
  $content .= Advanced_Ads_Utils::get_inline_asset( ob_get_clean() );
787
  }
788
 
789
+ if ( ! Advanced_Ads_Frontend_Checks::can_use_head_placement( $content, $ad ) ) {
790
  ob_start(); ?>
791
  <script>advanced_ads_ready( function() {
792
  var ad_id = '<?php echo $ad->id; ?>';
823
  * @param obj $ad Advanced_Ads_Ad
824
  * @return bool
825
  */
826
+ public static function can_use_head_placement( $content, Advanced_Ads_Ad $ad ) {
827
 
828
  if ( ! $ad->is_head_placement ) {
829
  return true;
896
  return false;
897
  }
898
  }
899
+
classes/plugin.php CHANGED
@@ -155,6 +155,9 @@ class Advanced_Ads_Plugin {
155
  * @since 1.0.0
156
  */
157
  public function enqueue_scripts() {
 
 
 
158
  // wp_enqueue_script( $this->get_plugin_slug() . '-plugin-script', plugins_url('assets/js/public.js', __FILE__), array('jquery'), ADVADS_VERSION);
159
  $options = $this->options();
160
  $activated_js = apply_filters( 'advanced-ads-activate-advanced-js', isset( $options['advanced-js'] ) );
@@ -178,6 +181,10 @@ class Advanced_Ads_Plugin {
178
 
179
  echo apply_filters( 'advanced-ads-attribution', sprintf( '<!-- managing ads with Advanced Ads – %s -->', ADVADS_URL ) );
180
 
 
 
 
 
181
  ob_start();
182
  ?><script>
183
  <?php if ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) {
155
  * @since 1.0.0
156
  */
157
  public function enqueue_scripts() {
158
+ if ( advads_is_amp() ) {
159
+ return;
160
+ }
161
  // wp_enqueue_script( $this->get_plugin_slug() . '-plugin-script', plugins_url('assets/js/public.js', __FILE__), array('jquery'), ADVADS_VERSION);
162
  $options = $this->options();
163
  $activated_js = apply_filters( 'advanced-ads-activate-advanced-js', isset( $options['advanced-js'] ) );
181
 
182
  echo apply_filters( 'advanced-ads-attribution', sprintf( '<!-- managing ads with Advanced Ads – %s -->', ADVADS_URL ) );
183
 
184
+ if ( advads_is_amp() ) {
185
+ return;
186
+ }
187
+
188
  ob_start();
189
  ?><script>
190
  <?php if ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) {
includes/functions.php CHANGED
@@ -95,7 +95,14 @@ function advads_can_display_ads(){
95
  * @return bool true if amp url, false otherwise
96
  */
97
  function advads_is_amp() {
98
- if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
 
 
 
 
 
 
 
99
  return false;
100
  }
101
 
95
  * @return bool true if amp url, false otherwise
96
  */
97
  function advads_is_amp() {
98
+ if ( is_admin() || ( defined( 'REST_REQUEST' ) && REST_REQUEST ) ) {
99
+ return false;
100
+ }
101
+
102
+ if ( ! did_action( 'wp' ) ) {
103
+ Advanced_Ads::log( sprintf( esc_html( '%1$s was called before the %2$s action. %3$s' ),
104
+ 'advads_is_amp()', 'wp', wp_debug_backtrace_summary() )
105
+ );
106
  return false;
107
  }
108
 
languages/advanced-ads.pot CHANGED
@@ -3,7 +3,7 @@ msgid ""
3
  msgstr ""
4
  "Project-Id-Version: Advanved Ads\n"
5
  "Report-Msgid-Bugs-To: http://wordpress.org/plugins/plugin-name\n"
6
- "POT-Creation-Date: 2019-07-01 12:37+0000\n"
7
  "POT-Revision-Date: Wed Jul 13 2016 13:23:05 GMT+0200 (CEST)\n"
8
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
9
  "Last-Translator: Thomas Maier <post@webzunft.de>\n"
@@ -154,15 +154,15 @@ msgstr ""
154
  msgid "Visitor Conditions"
155
  msgstr ""
156
 
157
- #: classes/ad-debug.php:272 classes/frontend_checks.php:246
158
- #: admin/includes/ad-health-notices.php:164
159
  msgid ""
160
  "Your website is using HTTPS, but the ad code contains HTTP and might not "
161
  "work."
162
  msgstr ""
163
 
164
  #. %1$s is an anchor (link) opening tag, %2$s is the closing tag.
165
- #: classes/ad-health-notices.php:849
166
  #: modules/gadsense/includes/class-mapi.php:1407
167
  #, php-format
168
  msgid "Learn more about AdSense account issues %1$shere%2$s."
@@ -562,110 +562,110 @@ msgstr ""
562
  msgid "Unable to locate needed folder (%s)."
563
  msgstr ""
564
 
565
- #: classes/frontend_checks.php:92
566
  msgid "Random AdSense ads"
567
  msgstr ""
568
 
569
- #: classes/frontend_checks.php:106 admin/includes/class-settings.php:517
570
  msgid "You look like a bot"
571
  msgstr ""
572
 
573
- #: classes/frontend_checks.php:120
574
  msgid "Ad blocker enabled"
575
  msgstr ""
576
 
577
- #: classes/frontend_checks.php:133
578
  #, php-format
579
  msgid "<em>%s</em> filter does not exist"
580
  msgstr ""
581
 
582
- #: classes/frontend_checks.php:168
583
  msgid "Ads are disabled on this page"
584
  msgstr ""
585
 
586
- #: classes/frontend_checks.php:181
587
  msgid "Ads are disabled in the content of this page"
588
  msgstr ""
589
 
590
- #: classes/frontend_checks.php:193
591
  msgid "the current post ID is 0 "
592
  msgstr ""
593
 
594
- #: classes/frontend_checks.php:207
595
  msgid "Ads are disabled on all pages"
596
  msgstr ""
597
 
598
- #: classes/frontend_checks.php:220
599
  msgid "Ads are disabled on 404 pages"
600
  msgstr ""
601
 
602
- #: classes/frontend_checks.php:233
603
  msgid "Ads are disabled on non singular pages"
604
  msgstr ""
605
 
606
- #: classes/frontend_checks.php:247
607
  #, php-format
608
  msgid "Ad IDs: %s"
609
  msgstr ""
610
 
611
- #: classes/frontend_checks.php:259 admin/includes/ad-health-notices.php:140
612
  #, php-format
613
  msgid "Visible ads should not use the Header placement: %s"
614
  msgstr ""
615
 
616
- #: classes/frontend_checks.php:273 admin/includes/ad-health-notices.php:154
617
  msgid "AdSense violation"
618
  msgstr ""
619
 
620
- #: classes/frontend_checks.php:274 admin/includes/ad-health-notices.php:155
621
  msgid "Ad is hidden"
622
  msgstr ""
623
 
624
- #: classes/frontend_checks.php:275
625
  #, php-format
626
  msgid "IDs: %s"
627
  msgstr ""
628
 
629
- #: classes/frontend_checks.php:288
630
  #, php-format
631
  msgid "The following responsive AdSense ads are not showing up: %s"
632
  msgstr ""
633
 
634
- #: classes/frontend_checks.php:302
635
  msgid "Consent not given"
636
  msgstr ""
637
 
638
- #: classes/frontend_checks.php:314
639
  msgid "debug DFP ads"
640
  msgstr ""
641
 
642
- #: classes/frontend_checks.php:325
643
  msgid "highlight ads"
644
  msgstr ""
645
 
646
- #: classes/frontend_checks.php:332
647
  msgid "Auto ads code found"
648
  msgstr ""
649
 
650
- #: classes/frontend_checks.php:356
651
  msgid "Ad Health"
652
  msgstr ""
653
 
654
- #: classes/frontend_checks.php:366
655
  #, php-format
656
  msgid "Show %d more notifications"
657
  msgstr ""
658
 
659
- #: classes/frontend_checks.php:383
660
  msgid "Everything is fine"
661
  msgstr ""
662
 
663
- #: classes/frontend_checks.php:394 admin/includes/class-ad-type.php:674
664
  #: admin/views/notices/welcome-panel.php:20
665
  msgid "Get help"
666
  msgstr ""
667
 
668
- #: classes/frontend_checks.php:444
669
  msgid ""
670
  "the following code is used for automatic error detection and only visible to "
671
  "admins"
@@ -902,7 +902,7 @@ msgid ""
902
  "load ads dynamically."
903
  msgstr ""
904
 
905
- #: admin/includes/ad-health-notices.php:52
906
  #, php-format
907
  msgid ""
908
  "<strong>Autoptimize plugin detected</strong>. While this plugin is great for "
@@ -911,32 +911,32 @@ msgid ""
911
  "in support for Autoptimize."
912
  msgstr ""
913
 
914
- #: admin/includes/ad-health-notices.php:62
915
  #, php-format
916
  msgid ""
917
  "Plugins that are known to cause (partial) problems: <strong>%1$s</strong>. "
918
  "<a href=\"%2$s\" target=\"_blank\">Learn more</a>."
919
  msgstr ""
920
 
921
- #: admin/includes/ad-health-notices.php:73
922
  #, php-format
923
  msgid ""
924
  "Missing PHP extensions could cause issues. Please ask your hosting provider "
925
  "to enable them: %s"
926
  msgstr ""
927
 
928
- #: admin/includes/ad-health-notices.php:83
929
  #, php-format
930
  msgid ""
931
  "Ads are disabled for all or some pages. See \"disabled ads\" in <a "
932
  "href=\"%s\">settings</a>."
933
  msgstr ""
934
 
935
- #: admin/includes/ad-health-notices.php:91 admin/views/support.php:25
936
  msgid "Advanced Ads related constants enabled"
937
  msgstr ""
938
 
939
- #: admin/includes/ad-health-notices.php:99
940
  #, php-format
941
  msgid ""
942
  "Possible conflict between jQueryUI library, used by Advanced Ads and other "
@@ -944,7 +944,7 @@ msgid ""
944
  "to misfortunate formats in forms, but should not damage features."
945
  msgstr ""
946
 
947
- #: admin/includes/ad-health-notices.php:109
948
  #, php-format
949
  msgid ""
950
  "Some assets were changed. Please <strong>rebuild the asset folder</strong> "
@@ -952,82 +952,97 @@ msgid ""
952
  "disguise."
953
  msgstr ""
954
 
955
- #: admin/includes/ad-health-notices.php:118 admin/includes/notices.php:36
956
  msgid ""
957
  "One or more license keys for <strong>Advanced Ads add-ons are invalid or "
958
  "missing</strong>."
959
  msgstr ""
960
 
961
- #: admin/includes/ad-health-notices.php:121 admin/includes/notices.php:36
962
  #, php-format
963
  msgid "Please add valid license keys <a href=\"%s\">here</a>."
964
  msgstr ""
965
 
966
- #: admin/includes/ad-health-notices.php:130
967
  msgid "Ad expired"
968
  msgstr ""
969
 
970
- #: admin/includes/ad-health-notices.php:177
971
- #: admin/includes/ad-health-notices.php:184
972
  #: modules/gadsense/includes/class-mapi.php:90
973
  msgid "Last AdSense account connection attempt failed."
974
  msgstr ""
975
 
976
  #. %1$s is the opening a tag and %2$s the closing one.
977
- #: admin/includes/ad-health-notices.php:186
978
  #, php-format
979
  msgid "Create a new AdSense account %1$shere%2$s."
980
  msgstr ""
981
 
982
- #: admin/includes/ad-health-notices.php:196
983
- #: admin/includes/ad-health-notices.php:205
 
984
  msgid ""
985
  "One of your sites is missing the AdSense publisher ID in the ads.txt file."
986
  msgstr ""
987
 
988
- #: admin/includes/ad-health-notices.php:198
989
- #: admin/includes/ad-health-notices.php:207
 
990
  msgctxt "related to ads.txt file"
991
  msgid "Create one now."
992
  msgstr ""
993
 
994
  #. %s is a filter hook, here `the_content`
995
- #: admin/includes/ad-health-notices.php:215
996
  #, php-format
997
  msgid "<strong>%s</strong> filter found multiple times."
998
  msgstr ""
999
 
1000
- #: admin/includes/ad-health-notices.php:217
1001
  msgid "Advanced Ads uses the outermost of them."
1002
  msgstr ""
1003
 
1004
  #. %1$s is a plugin name, %2$s is the opening a tag and %3$s the closing one.
1005
- #: admin/includes/ad-health-notices.php:226
1006
  #: admin/includes/ad-health-notices.php:237
1007
  #: admin/includes/ad-health-notices.php:248
1008
- #: admin/includes/ad-health-notices.php:261
 
1009
  #, php-format
1010
  msgid "Learn how to integrate %1$s with Advanced Ads %2$shere%3$s."
1011
  msgstr ""
1012
 
1013
  #. %s is a service or plugin name.
1014
- #: admin/includes/ad-health-notices.php:275
1015
  #: modules/ads-txt/admin/class-advanced-ads-ads-txt-admin.php:187
1016
  #, php-format
1017
  msgid "%s detected."
1018
  msgstr ""
1019
 
1020
- #: admin/includes/ad-health-notices.php:276
1021
  msgid "Learn how this might impact your ad setup."
1022
  msgstr ""
1023
 
1024
- #: admin/includes/ad-health-notices.php:287
1025
  #, php-format
1026
  msgid ""
1027
  "Advanced Ads handles your ads.txt file automatically. You might be able to "
1028
  "<strong>remove %1$s</strong>."
1029
  msgstr ""
1030
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1031
  #: admin/includes/class-ad-groups-list.php:165
1032
  msgid "Ad weight"
1033
  msgstr ""
@@ -1110,86 +1125,86 @@ msgstr ""
1110
  msgid "No ad group created"
1111
  msgstr ""
1112
 
1113
- #: admin/includes/class-ad-type.php:86 admin/includes/class-ad-type.php:92
1114
  msgid "Ad Details"
1115
  msgstr ""
1116
 
1117
- #: admin/includes/class-ad-type.php:87 admin/includes/class-ad-type.php:93
1118
  msgid "Ad Planning"
1119
  msgstr ""
1120
 
1121
- #: admin/includes/class-ad-type.php:88 admin/includes/class-ad-type.php:94
1122
  msgid "Ad Shortcode"
1123
  msgstr ""
1124
 
1125
- #: admin/includes/class-ad-type.php:240
1126
  #, php-format
1127
  msgid "%s ad updated."
1128
  msgid_plural "%s ads updated."
1129
  msgstr[0] ""
1130
  msgstr[1] ""
1131
 
1132
- #: admin/includes/class-ad-type.php:241
1133
  #, php-format
1134
  msgid "%s ad not updated, somebody is editing it."
1135
  msgid_plural "%s ads not updated, somebody is editing them."
1136
  msgstr[0] ""
1137
  msgstr[1] ""
1138
 
1139
- #: admin/includes/class-ad-type.php:242
1140
  #, php-format
1141
  msgid "%s ad permanently deleted."
1142
  msgid_plural "%s ads permanently deleted."
1143
  msgstr[0] ""
1144
  msgstr[1] ""
1145
 
1146
- #: admin/includes/class-ad-type.php:243
1147
  #, php-format
1148
  msgid "%s ad moved to the Trash."
1149
  msgid_plural "%s ads moved to the Trash."
1150
  msgstr[0] ""
1151
  msgstr[1] ""
1152
 
1153
- #: admin/includes/class-ad-type.php:244
1154
  #, php-format
1155
  msgid "%s ad restored from the Trash."
1156
  msgid_plural "%s ads restored from the Trash."
1157
  msgstr[0] ""
1158
  msgstr[1] ""
1159
 
1160
- #: admin/includes/class-ad-type.php:574 admin/includes/class-ad-type.php:575
1161
  msgid "Ad updated."
1162
  msgstr ""
1163
 
1164
  #. translators: %s: date and time of the revision
1165
- #: admin/includes/class-ad-type.php:577
1166
  #, php-format
1167
  msgid "Ad restored to revision from %s"
1168
  msgstr ""
1169
 
1170
- #: admin/includes/class-ad-type.php:578 admin/includes/class-ad-type.php:579
1171
  msgid "Ad saved."
1172
  msgstr ""
1173
 
1174
- #: admin/includes/class-ad-type.php:580
1175
  msgid "Ad submitted."
1176
  msgstr ""
1177
 
1178
- #: admin/includes/class-ad-type.php:582
1179
  #, php-format
1180
  msgid "Ad scheduled for: <strong>%1$s</strong>."
1181
  msgstr ""
1182
 
1183
  #. translators: Publish box date format, see http://php.net/date
1184
- #: admin/includes/class-ad-type.php:584
1185
  msgid "M j, Y @ G:i"
1186
  msgstr ""
1187
 
1188
- #: admin/includes/class-ad-type.php:586
1189
  msgid "Ad draft updated."
1190
  msgstr ""
1191
 
1192
- #: admin/includes/class-ad-type.php:673
1193
  msgid ""
1194
  "You don’t have access to ads. Please deactivate and re-enable Advanced Ads "
1195
  "again to fix this."
@@ -1207,7 +1222,7 @@ msgstr ""
1207
  msgid "Error while trying to register the license. Please contact support."
1208
  msgstr ""
1209
 
1210
- #: admin/includes/class-licenses.php:106 admin/views/setting-license.php:59
1211
  msgid "Please enter a valid license key"
1212
  msgstr ""
1213
 
@@ -1299,11 +1314,16 @@ msgstr ""
1299
  msgid "Settings"
1300
  msgstr ""
1301
 
1302
- #: admin/includes/class-menu.php:210 admin/includes/class-menu.php:237
 
 
 
 
 
1303
  msgid "Sorry, you are not allowed to access this feature."
1304
  msgstr ""
1305
 
1306
- #: admin/includes/class-menu.php:223
1307
  msgid ""
1308
  "You attempted to edit an ad group that doesn&#8217;t exist. Perhaps it was "
1309
  "deleted?"
@@ -1336,7 +1356,7 @@ msgstr ""
1336
 
1337
  #: admin/includes/class-meta-box.php:152 admin/includes/class-meta-box.php:163
1338
  #: admin/includes/class-meta-box.php:168 admin/includes/class-settings.php:610
1339
- #: admin/views/ad-output-metabox.php:81
1340
  #: modules/ads-txt/admin/views/setting-create.php:11
1341
  #: modules/privacy/admin/views/setting-enable.php:2
1342
  msgid "Manual"
@@ -1346,49 +1366,49 @@ msgstr ""
1346
  msgid "Video"
1347
  msgstr ""
1348
 
1349
- #: admin/includes/class-meta-box.php:303
1350
  msgid "Ad Settings"
1351
  msgstr ""
1352
 
1353
- #: admin/includes/class-meta-box.php:405 admin/views/overview.php:6
1354
  msgid "Ads Dashboard"
1355
  msgstr ""
1356
 
1357
- #: admin/includes/class-meta-box.php:416
1358
  #, php-format
1359
  msgid "%d ads – <a href=\"%s\">manage</a> - <a href=\"%s\">new</a>"
1360
  msgstr ""
1361
 
1362
- #: admin/includes/class-meta-box.php:427
1363
  msgid "Get the tutorial via email"
1364
  msgstr ""
1365
 
1366
- #: admin/includes/class-meta-box.php:434
1367
  msgid "Get AdSense tips via email"
1368
  msgstr ""
1369
 
1370
- #: admin/includes/class-meta-box.php:441
1371
  msgid "Visit our blog for more articles about ad optimization"
1372
  msgstr ""
1373
 
1374
  #. %s is our URL
1375
- #: admin/includes/class-meta-box.php:494
1376
  msgid "Latest posts on wpadvancedads.com"
1377
  msgstr ""
1378
 
1379
- #: admin/includes/class-notices.php:444
1380
  #, php-format
1381
  msgid ""
1382
  "You don’t seem to have an email address. Please use <a href=\"%s\" "
1383
  "target=\"_blank\">this form</a> to sign up."
1384
  msgstr ""
1385
 
1386
- #: admin/includes/class-notices.php:462
1387
  msgid ""
1388
  "How embarrassing. The email server seems to be down. Please try again later."
1389
  msgstr ""
1390
 
1391
- #: admin/includes/class-notices.php:467
1392
  #, php-format
1393
  msgid ""
1394
  "Please check your email (%s) for the confirmation message. If you didn’t "
@@ -1411,7 +1431,7 @@ msgstr ""
1411
 
1412
  #: admin/includes/class-overview-widgets.php:105
1413
  #: modules/gadsense/admin/views/adsense-account.php:71
1414
- #: modules/gadsense/admin/views/adsense-account.php:89
1415
  msgid "Connect to AdSense"
1416
  msgstr ""
1417
 
@@ -1475,139 +1495,144 @@ msgstr ""
1475
  msgid "Show %s hidden notices"
1476
  msgstr ""
1477
 
1478
- #: admin/includes/class-overview-widgets.php:360
1479
- msgid "The solution for professional websites."
 
1480
  msgstr ""
1481
 
1482
  #: admin/includes/class-overview-widgets.php:363
 
 
 
 
1483
  #: admin/views/pitch-pro-tab.php:7
1484
  msgid "support for cached sites"
1485
  msgstr ""
1486
 
1487
- #: admin/includes/class-overview-widgets.php:366
1488
- #: admin/includes/class-overview-widgets.php:367
1489
- #: admin/includes/class-overview-widgets.php:368
1490
  #: admin/includes/class-overview-widgets.php:369
 
 
 
1491
  #, php-format
1492
  msgid "integrates with <strong>%s</strong>"
1493
  msgstr ""
1494
 
1495
- #: admin/includes/class-overview-widgets.php:370
1496
  msgid "click fraud protection, lazy load, ad-block ads"
1497
  msgstr ""
1498
 
1499
- #: admin/includes/class-overview-widgets.php:371
1500
  #: admin/views/pitch-pro-tab.php:8
1501
  msgid "11 more display and visitor conditions"
1502
  msgstr ""
1503
 
1504
- #: admin/includes/class-overview-widgets.php:372
1505
  #: admin/views/pitch-pro-tab.php:9
1506
  msgid "6 more placements"
1507
  msgstr ""
1508
 
1509
- #: admin/includes/class-overview-widgets.php:373
1510
  #: admin/views/pitch-pro-tab.php:10
1511
  msgid "placement tests for ad optimization"
1512
  msgstr ""
1513
 
1514
- #: admin/includes/class-overview-widgets.php:374
1515
  #: admin/views/pitch-pro-tab.php:11
1516
  msgid "ad grids and many more advanced features"
1517
  msgstr ""
1518
 
1519
- #: admin/includes/class-overview-widgets.php:381
1520
  msgid ""
1521
  "Analyze clicks and impressions of your ads locally or in Google Analytics, "
1522
  "share reports, and limit ads to a specific number of impressions or clicks."
1523
  msgstr ""
1524
 
1525
- #: admin/includes/class-overview-widgets.php:387
1526
  msgid ""
1527
  "Display ads based on the device or the size of your visitor’s browser, and "
1528
  "control ads on AMP pages."
1529
  msgstr ""
1530
 
1531
- #: admin/includes/class-overview-widgets.php:400
1532
  msgid ""
1533
  "Earn more money and let advertisers pay for ad space directly on the "
1534
  "frontend of your site."
1535
  msgstr ""
1536
 
1537
- #: admin/includes/class-overview-widgets.php:406
1538
  msgid ""
1539
  "Target visitors with ads that match their geo location and make more money "
1540
  "with regional campaigns."
1541
  msgstr ""
1542
 
1543
- #: admin/includes/class-overview-widgets.php:412
1544
  msgid ""
1545
  "Increase click rates on your ads by placing them in sticky positions above, "
1546
  "next or below your site."
1547
  msgstr ""
1548
 
1549
- #: admin/includes/class-overview-widgets.php:418
1550
  msgid ""
1551
  "Users will never miss an ad or other information in a PopUp. Choose when it "
1552
  "shows up and for how long a user can close it."
1553
  msgstr ""
1554
 
1555
- #: admin/includes/class-overview-widgets.php:424
1556
  msgid ""
1557
  "Create a beautiful and simple slider from your ads to show more information "
1558
  "on less space."
1559
  msgstr ""
1560
 
1561
- #: admin/includes/class-overview-widgets.php:430
1562
  msgid ""
1563
  "Place AdSense In-feed ads between posts on homepage, category, and archive "
1564
  "pages."
1565
  msgstr ""
1566
 
1567
- #: admin/includes/class-overview-widgets.php:433
1568
- #: admin/includes/class-overview-widgets.php:608
1569
- #: admin/includes/class-overview-widgets.php:624
1570
  msgid "Install now"
1571
  msgstr ""
1572
 
1573
- #: admin/includes/class-overview-widgets.php:451
1574
- #: admin/includes/class-overview-widgets.php:472
1575
- #: admin/includes/class-overview-widgets.php:497
1576
- #: admin/includes/class-overview-widgets.php:515
1577
- #: admin/includes/class-overview-widgets.php:533
1578
- #: admin/includes/class-overview-widgets.php:551
1579
- #: admin/includes/class-overview-widgets.php:569
1580
- #: admin/includes/class-overview-widgets.php:587
1581
  msgid "Activate now"
1582
  msgstr ""
1583
 
1584
- #: admin/includes/class-overview-widgets.php:480
1585
  msgid "Visit your ad stats"
1586
  msgstr ""
1587
 
1588
- #: admin/includes/class-overview-widgets.php:604
1589
  msgid "Use Genesis specific ad positions."
1590
  msgstr ""
1591
 
1592
- #: admin/includes/class-overview-widgets.php:620
1593
  msgid ""
1594
  "Manage ad positions with WPBakery Page Builder (formerly Visual Composer)."
1595
  msgstr ""
1596
 
1597
- #: admin/includes/class-overview-widgets.php:636
1598
  msgid "Our best deal with all add-ons included."
1599
  msgstr ""
1600
 
1601
- #: admin/includes/class-overview-widgets.php:638
1602
  msgid "Get full access"
1603
  msgstr ""
1604
 
1605
- #: admin/includes/class-overview-widgets.php:652
1606
  #: admin/views/ad-display-metabox.php:48 admin/views/ad-visitor-metabox.php:48
1607
  msgid "Visit the manual"
1608
  msgstr ""
1609
 
1610
- #: admin/includes/class-overview-widgets.php:655
1611
  msgid "Get this add-on"
1612
  msgstr ""
1613
 
@@ -1675,10 +1700,6 @@ msgstr ""
1675
  msgid "Disable shortcode button"
1676
  msgstr ""
1677
 
1678
- #: admin/includes/class-settings.php:269
1679
- msgid "Licenses"
1680
- msgstr ""
1681
-
1682
  #: admin/includes/class-settings.php:286
1683
  msgid "Pro"
1684
  msgstr ""
@@ -1705,10 +1726,6 @@ msgstr ""
1705
  msgid "Are you missing something?"
1706
  msgstr ""
1707
 
1708
- #: admin/includes/class-settings.php:366
1709
- msgid "How to install and activate an add-on."
1710
- msgstr ""
1711
-
1712
  #: admin/includes/class-settings.php:434
1713
  msgid "Choose the roles a user must have in order to not see any ads."
1714
  msgstr ""
@@ -2038,7 +2055,7 @@ msgctxt "Taxonomy Slug"
2038
  msgid "Slug"
2039
  msgstr ""
2040
 
2041
- #: admin/views/ad-group-edit.php:54
2042
  msgid ""
2043
  "An id-like string with only letters in lower case, numbers, and hyphens."
2044
  msgstr ""
@@ -2322,17 +2339,17 @@ msgstr ""
2322
  msgid "Specify the id of the ad container. Leave blank for random or no id."
2323
  msgstr ""
2324
 
2325
- #: admin/views/ad-output-metabox.php:65
2326
  msgid "container classes"
2327
  msgstr ""
2328
 
2329
- #: admin/views/ad-output-metabox.php:71
2330
  msgid ""
2331
  "Specify one or more classes for the container. Separate multiple classes "
2332
  "with a space"
2333
  msgstr ""
2334
 
2335
- #: admin/views/ad-output-metabox.php:74
2336
  msgid "Enable debug mode"
2337
  msgstr ""
2338
 
@@ -2918,43 +2935,43 @@ msgstr ""
2918
  msgid "Your license expired."
2919
  msgstr ""
2920
 
2921
- #: admin/views/setting-license.php:12
2922
  msgid "Update expiry date"
2923
  msgstr ""
2924
 
2925
- #: admin/views/setting-license.php:17
2926
  #, php-format
2927
  msgid ""
2928
  "Click on %2$s if you renewed it or have a subscription or <a href=\"%1$s\" "
2929
  "class=\"advads-renewal-link\" target=\"_blank\">renew your license</a>."
2930
  msgstr ""
2931
 
2932
- #: admin/views/setting-license.php:29
2933
  #, php-format
2934
  msgid "(%d days left)"
2935
  msgstr ""
2936
 
2937
- #: admin/views/setting-license.php:33
2938
  msgid "License key"
2939
  msgstr ""
2940
 
2941
- #: admin/views/setting-license.php:50
2942
  msgid "Deactivate License"
2943
  msgstr ""
2944
 
2945
- #: admin/views/setting-license.php:56
2946
  msgid "Update License"
2947
  msgstr ""
2948
 
2949
- #: admin/views/setting-license.php:56
2950
  msgid "Activate License"
2951
  msgstr ""
2952
 
2953
- #: admin/views/setting-license.php:61
2954
  msgid "License key invalid"
2955
  msgstr ""
2956
 
2957
- #: admin/views/setting-license.php:69
2958
  msgid "active"
2959
  msgstr ""
2960
 
@@ -3078,11 +3095,11 @@ msgid ""
3078
  "for individual help."
3079
  msgstr ""
3080
 
3081
- #: public/views/ad-debug.php:20
3082
  msgid "Ad debug output"
3083
  msgstr ""
3084
 
3085
- #: public/views/ad-debug.php:22
3086
  msgid "Find solutions in the manual"
3087
  msgstr ""
3088
 
@@ -3250,7 +3267,7 @@ msgid "Use ads from your Google AdSense account"
3250
  msgstr ""
3251
 
3252
  #: modules/gadsense/includes/class-ad-type-adsense.php:93
3253
- #: modules/gadsense/includes/class-network-adsense.php:248
3254
  msgid "The Publisher ID has an incorrect format. (must start with \"pub-\")"
3255
  msgstr ""
3256
 
@@ -3258,8 +3275,8 @@ msgstr ""
3258
  msgid "Your AdSense Publisher ID is missing."
3259
  msgstr ""
3260
 
3261
- #: modules/gadsense/includes/class-adsense-report.php:463
3262
- #: modules/gadsense/includes/class-adsense-report.php:482
3263
  msgid "Never"
3264
  msgstr ""
3265
 
@@ -3667,11 +3684,11 @@ msgstr ""
3667
  msgid "Consent method"
3668
  msgstr ""
3669
 
3670
- #: modules/privacy/classes/plugin.php:144
3671
  msgid "Show all ads even without consent."
3672
  msgstr ""
3673
 
3674
- #: modules/privacy/classes/plugin.php:145
3675
  msgid "Cookie"
3676
  msgstr ""
3677
 
@@ -3772,34 +3789,34 @@ msgstr ""
3772
  msgid "Account holder name"
3773
  msgstr ""
3774
 
3775
- #: modules/gadsense/admin/views/adsense-account.php:82
3776
  msgid "Your AdSense Publisher ID <em>(pub-xxxxxxxxxxxxxx)</em>"
3777
  msgstr ""
3778
 
3779
- #: modules/gadsense/admin/views/adsense-account.php:88
3780
  msgid "Yes, I have an AdSense account"
3781
  msgstr ""
3782
 
3783
- #: modules/gadsense/admin/views/adsense-account.php:90
3784
  msgid "Configure everything manually"
3785
  msgstr ""
3786
 
3787
- #: modules/gadsense/admin/views/adsense-account.php:93
3788
  msgid "No, I still don't have an AdSense account"
3789
  msgstr ""
3790
 
3791
- #: modules/gadsense/admin/views/adsense-account.php:94
3792
  msgid "Get a free AdSense account"
3793
  msgstr ""
3794
 
3795
  #. %1$s is the opening link tag to our manual; %2$s is the appropriate closing link tag; %3$s is the opening link tag to our help forum; %4$s is the appropriate closing link tag
3796
- #: modules/gadsense/admin/views/adsense-account.php:144
3797
  #, php-format
3798
  msgid ""
3799
  "Problems with AdSense? Check out the %1$smanual%2$s or %3$sask here%4$s."
3800
  msgstr ""
3801
 
3802
- #: modules/gadsense/admin/views/adsense-account.php:152
3803
  #: modules/gadsense/admin/views/external-ads-links.php:37
3804
  msgid "Can not connect AdSense account. PHP version is too low."
3805
  msgstr ""
3
  msgstr ""
4
  "Project-Id-Version: Advanved Ads\n"
5
  "Report-Msgid-Bugs-To: http://wordpress.org/plugins/plugin-name\n"
6
+ "POT-Creation-Date: 2019-08-15 07:20+0000\n"
7
  "POT-Revision-Date: Wed Jul 13 2016 13:23:05 GMT+0200 (CEST)\n"
8
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
9
  "Last-Translator: Thomas Maier <post@webzunft.de>\n"
154
  msgid "Visitor Conditions"
155
  msgstr ""
156
 
157
+ #: classes/ad-debug.php:272 classes/frontend_checks.php:249
158
+ #: admin/includes/ad-health-notices.php:165
159
  msgid ""
160
  "Your website is using HTTPS, but the ad code contains HTTP and might not "
161
  "work."
162
  msgstr ""
163
 
164
  #. %1$s is an anchor (link) opening tag, %2$s is the closing tag.
165
+ #: classes/ad-health-notices.php:860
166
  #: modules/gadsense/includes/class-mapi.php:1407
167
  #, php-format
168
  msgid "Learn more about AdSense account issues %1$shere%2$s."
562
  msgid "Unable to locate needed folder (%s)."
563
  msgstr ""
564
 
565
+ #: classes/frontend_checks.php:95
566
  msgid "Random AdSense ads"
567
  msgstr ""
568
 
569
+ #: classes/frontend_checks.php:109 admin/includes/class-settings.php:517
570
  msgid "You look like a bot"
571
  msgstr ""
572
 
573
+ #: classes/frontend_checks.php:123
574
  msgid "Ad blocker enabled"
575
  msgstr ""
576
 
577
+ #: classes/frontend_checks.php:136
578
  #, php-format
579
  msgid "<em>%s</em> filter does not exist"
580
  msgstr ""
581
 
582
+ #: classes/frontend_checks.php:171
583
  msgid "Ads are disabled on this page"
584
  msgstr ""
585
 
586
+ #: classes/frontend_checks.php:184
587
  msgid "Ads are disabled in the content of this page"
588
  msgstr ""
589
 
590
+ #: classes/frontend_checks.php:196
591
  msgid "the current post ID is 0 "
592
  msgstr ""
593
 
594
+ #: classes/frontend_checks.php:210
595
  msgid "Ads are disabled on all pages"
596
  msgstr ""
597
 
598
+ #: classes/frontend_checks.php:223
599
  msgid "Ads are disabled on 404 pages"
600
  msgstr ""
601
 
602
+ #: classes/frontend_checks.php:236
603
  msgid "Ads are disabled on non singular pages"
604
  msgstr ""
605
 
606
+ #: classes/frontend_checks.php:250
607
  #, php-format
608
  msgid "Ad IDs: %s"
609
  msgstr ""
610
 
611
+ #: classes/frontend_checks.php:262 admin/includes/ad-health-notices.php:141
612
  #, php-format
613
  msgid "Visible ads should not use the Header placement: %s"
614
  msgstr ""
615
 
616
+ #: classes/frontend_checks.php:276 admin/includes/ad-health-notices.php:155
617
  msgid "AdSense violation"
618
  msgstr ""
619
 
620
+ #: classes/frontend_checks.php:277 admin/includes/ad-health-notices.php:156
621
  msgid "Ad is hidden"
622
  msgstr ""
623
 
624
+ #: classes/frontend_checks.php:278
625
  #, php-format
626
  msgid "IDs: %s"
627
  msgstr ""
628
 
629
+ #: classes/frontend_checks.php:291
630
  #, php-format
631
  msgid "The following responsive AdSense ads are not showing up: %s"
632
  msgstr ""
633
 
634
+ #: classes/frontend_checks.php:305
635
  msgid "Consent not given"
636
  msgstr ""
637
 
638
+ #: classes/frontend_checks.php:317
639
  msgid "debug DFP ads"
640
  msgstr ""
641
 
642
+ #: classes/frontend_checks.php:328
643
  msgid "highlight ads"
644
  msgstr ""
645
 
646
+ #: classes/frontend_checks.php:335
647
  msgid "Auto ads code found"
648
  msgstr ""
649
 
650
+ #: classes/frontend_checks.php:402
651
  msgid "Ad Health"
652
  msgstr ""
653
 
654
+ #: classes/frontend_checks.php:416
655
  #, php-format
656
  msgid "Show %d more notifications"
657
  msgstr ""
658
 
659
+ #: classes/frontend_checks.php:433
660
  msgid "Everything is fine"
661
  msgstr ""
662
 
663
+ #: classes/frontend_checks.php:444 admin/includes/class-ad-type.php:675
664
  #: admin/views/notices/welcome-panel.php:20
665
  msgid "Get help"
666
  msgstr ""
667
 
668
+ #: classes/frontend_checks.php:501
669
  msgid ""
670
  "the following code is used for automatic error detection and only visible to "
671
  "admins"
902
  "load ads dynamically."
903
  msgstr ""
904
 
905
+ #: admin/includes/ad-health-notices.php:53
906
  #, php-format
907
  msgid ""
908
  "<strong>Autoptimize plugin detected</strong>. While this plugin is great for "
911
  "in support for Autoptimize."
912
  msgstr ""
913
 
914
+ #: admin/includes/ad-health-notices.php:63
915
  #, php-format
916
  msgid ""
917
  "Plugins that are known to cause (partial) problems: <strong>%1$s</strong>. "
918
  "<a href=\"%2$s\" target=\"_blank\">Learn more</a>."
919
  msgstr ""
920
 
921
+ #: admin/includes/ad-health-notices.php:74
922
  #, php-format
923
  msgid ""
924
  "Missing PHP extensions could cause issues. Please ask your hosting provider "
925
  "to enable them: %s"
926
  msgstr ""
927
 
928
+ #: admin/includes/ad-health-notices.php:84
929
  #, php-format
930
  msgid ""
931
  "Ads are disabled for all or some pages. See \"disabled ads\" in <a "
932
  "href=\"%s\">settings</a>."
933
  msgstr ""
934
 
935
+ #: admin/includes/ad-health-notices.php:92 admin/views/support.php:25
936
  msgid "Advanced Ads related constants enabled"
937
  msgstr ""
938
 
939
+ #: admin/includes/ad-health-notices.php:100
940
  #, php-format
941
  msgid ""
942
  "Possible conflict between jQueryUI library, used by Advanced Ads and other "
944
  "to misfortunate formats in forms, but should not damage features."
945
  msgstr ""
946
 
947
+ #: admin/includes/ad-health-notices.php:110
948
  #, php-format
949
  msgid ""
950
  "Some assets were changed. Please <strong>rebuild the asset folder</strong> "
952
  "disguise."
953
  msgstr ""
954
 
955
+ #: admin/includes/ad-health-notices.php:119 admin/includes/notices.php:36
956
  msgid ""
957
  "One or more license keys for <strong>Advanced Ads add-ons are invalid or "
958
  "missing</strong>."
959
  msgstr ""
960
 
961
+ #: admin/includes/ad-health-notices.php:122 admin/includes/notices.php:36
962
  #, php-format
963
  msgid "Please add valid license keys <a href=\"%s\">here</a>."
964
  msgstr ""
965
 
966
+ #: admin/includes/ad-health-notices.php:131
967
  msgid "Ad expired"
968
  msgstr ""
969
 
970
+ #: admin/includes/ad-health-notices.php:178
971
+ #: admin/includes/ad-health-notices.php:185
972
  #: modules/gadsense/includes/class-mapi.php:90
973
  msgid "Last AdSense account connection attempt failed."
974
  msgstr ""
975
 
976
  #. %1$s is the opening a tag and %2$s the closing one.
977
+ #: admin/includes/ad-health-notices.php:187
978
  #, php-format
979
  msgid "Create a new AdSense account %1$shere%2$s."
980
  msgstr ""
981
 
982
+ #: admin/includes/ad-health-notices.php:197
983
+ #: admin/includes/ad-health-notices.php:206
984
+ #: admin/includes/ad-health-notices.php:216
985
  msgid ""
986
  "One of your sites is missing the AdSense publisher ID in the ads.txt file."
987
  msgstr ""
988
 
989
+ #: admin/includes/ad-health-notices.php:199
990
+ #: admin/includes/ad-health-notices.php:208
991
+ #: admin/includes/ad-health-notices.php:218
992
  msgctxt "related to ads.txt file"
993
  msgid "Create one now."
994
  msgstr ""
995
 
996
  #. %s is a filter hook, here `the_content`
997
+ #: admin/includes/ad-health-notices.php:226
998
  #, php-format
999
  msgid "<strong>%s</strong> filter found multiple times."
1000
  msgstr ""
1001
 
1002
+ #: admin/includes/ad-health-notices.php:228
1003
  msgid "Advanced Ads uses the outermost of them."
1004
  msgstr ""
1005
 
1006
  #. %1$s is a plugin name, %2$s is the opening a tag and %3$s the closing one.
 
1007
  #: admin/includes/ad-health-notices.php:237
1008
  #: admin/includes/ad-health-notices.php:248
1009
+ #: admin/includes/ad-health-notices.php:259
1010
+ #: admin/includes/ad-health-notices.php:272
1011
  #, php-format
1012
  msgid "Learn how to integrate %1$s with Advanced Ads %2$shere%3$s."
1013
  msgstr ""
1014
 
1015
  #. %s is a service or plugin name.
1016
+ #: admin/includes/ad-health-notices.php:286
1017
  #: modules/ads-txt/admin/class-advanced-ads-ads-txt-admin.php:187
1018
  #, php-format
1019
  msgid "%s detected."
1020
  msgstr ""
1021
 
1022
+ #: admin/includes/ad-health-notices.php:287
1023
  msgid "Learn how this might impact your ad setup."
1024
  msgstr ""
1025
 
1026
+ #: admin/includes/ad-health-notices.php:298
1027
  #, php-format
1028
  msgid ""
1029
  "Advanced Ads handles your ads.txt file automatically. You might be able to "
1030
  "<strong>remove %1$s</strong>."
1031
  msgstr ""
1032
 
1033
+ #: admin/includes/ad-health-notices.php:309
1034
+ msgid "Advanced Ads handles header and footer codes."
1035
+ msgstr ""
1036
+
1037
+ #: admin/includes/ad-health-notices.php:310
1038
+ #, php-format
1039
+ msgid "You might be able to <strong>remove %1$s</strong>."
1040
+ msgstr ""
1041
+
1042
+ #: admin/includes/ad-health-notices.php:313
1043
+ msgid "Learn how."
1044
+ msgstr ""
1045
+
1046
  #: admin/includes/class-ad-groups-list.php:165
1047
  msgid "Ad weight"
1048
  msgstr ""
1125
  msgid "No ad group created"
1126
  msgstr ""
1127
 
1128
+ #: admin/includes/class-ad-type.php:87 admin/includes/class-ad-type.php:93
1129
  msgid "Ad Details"
1130
  msgstr ""
1131
 
1132
+ #: admin/includes/class-ad-type.php:88 admin/includes/class-ad-type.php:94
1133
  msgid "Ad Planning"
1134
  msgstr ""
1135
 
1136
+ #: admin/includes/class-ad-type.php:89 admin/includes/class-ad-type.php:95
1137
  msgid "Ad Shortcode"
1138
  msgstr ""
1139
 
1140
+ #: admin/includes/class-ad-type.php:241
1141
  #, php-format
1142
  msgid "%s ad updated."
1143
  msgid_plural "%s ads updated."
1144
  msgstr[0] ""
1145
  msgstr[1] ""
1146
 
1147
+ #: admin/includes/class-ad-type.php:242
1148
  #, php-format
1149
  msgid "%s ad not updated, somebody is editing it."
1150
  msgid_plural "%s ads not updated, somebody is editing them."
1151
  msgstr[0] ""
1152
  msgstr[1] ""
1153
 
1154
+ #: admin/includes/class-ad-type.php:243
1155
  #, php-format
1156
  msgid "%s ad permanently deleted."
1157
  msgid_plural "%s ads permanently deleted."
1158
  msgstr[0] ""
1159
  msgstr[1] ""
1160
 
1161
+ #: admin/includes/class-ad-type.php:244
1162
  #, php-format
1163
  msgid "%s ad moved to the Trash."
1164
  msgid_plural "%s ads moved to the Trash."
1165
  msgstr[0] ""
1166
  msgstr[1] ""
1167
 
1168
+ #: admin/includes/class-ad-type.php:245
1169
  #, php-format
1170
  msgid "%s ad restored from the Trash."
1171
  msgid_plural "%s ads restored from the Trash."
1172
  msgstr[0] ""
1173
  msgstr[1] ""
1174
 
1175
+ #: admin/includes/class-ad-type.php:575 admin/includes/class-ad-type.php:576
1176
  msgid "Ad updated."
1177
  msgstr ""
1178
 
1179
  #. translators: %s: date and time of the revision
1180
+ #: admin/includes/class-ad-type.php:578
1181
  #, php-format
1182
  msgid "Ad restored to revision from %s"
1183
  msgstr ""
1184
 
1185
+ #: admin/includes/class-ad-type.php:579 admin/includes/class-ad-type.php:580
1186
  msgid "Ad saved."
1187
  msgstr ""
1188
 
1189
+ #: admin/includes/class-ad-type.php:581
1190
  msgid "Ad submitted."
1191
  msgstr ""
1192
 
1193
+ #: admin/includes/class-ad-type.php:583
1194
  #, php-format
1195
  msgid "Ad scheduled for: <strong>%1$s</strong>."
1196
  msgstr ""
1197
 
1198
  #. translators: Publish box date format, see http://php.net/date
1199
+ #: admin/includes/class-ad-type.php:585
1200
  msgid "M j, Y @ G:i"
1201
  msgstr ""
1202
 
1203
+ #: admin/includes/class-ad-type.php:587
1204
  msgid "Ad draft updated."
1205
  msgstr ""
1206
 
1207
+ #: admin/includes/class-ad-type.php:674
1208
  msgid ""
1209
  "You don’t have access to ads. Please deactivate and re-enable Advanced Ads "
1210
  "again to fix this."
1222
  msgid "Error while trying to register the license. Please contact support."
1223
  msgstr ""
1224
 
1225
+ #: admin/includes/class-licenses.php:106 admin/views/setting-license.php:60
1226
  msgid "Please enter a valid license key"
1227
  msgstr ""
1228
 
1314
  msgid "Settings"
1315
  msgstr ""
1316
 
1317
+ #: admin/includes/class-menu.php:131 admin/includes/class-menu.php:135
1318
+ #: admin/includes/class-settings.php:269
1319
+ msgid "Licenses"
1320
+ msgstr ""
1321
+
1322
+ #: admin/includes/class-menu.php:220 admin/includes/class-menu.php:247
1323
  msgid "Sorry, you are not allowed to access this feature."
1324
  msgstr ""
1325
 
1326
+ #: admin/includes/class-menu.php:233
1327
  msgid ""
1328
  "You attempted to edit an ad group that doesn&#8217;t exist. Perhaps it was "
1329
  "deleted?"
1356
 
1357
  #: admin/includes/class-meta-box.php:152 admin/includes/class-meta-box.php:163
1358
  #: admin/includes/class-meta-box.php:168 admin/includes/class-settings.php:610
1359
+ #: admin/views/ad-output-metabox.php:82
1360
  #: modules/ads-txt/admin/views/setting-create.php:11
1361
  #: modules/privacy/admin/views/setting-enable.php:2
1362
  msgid "Manual"
1366
  msgid "Video"
1367
  msgstr ""
1368
 
1369
+ #: admin/includes/class-meta-box.php:306
1370
  msgid "Ad Settings"
1371
  msgstr ""
1372
 
1373
+ #: admin/includes/class-meta-box.php:408 admin/views/overview.php:6
1374
  msgid "Ads Dashboard"
1375
  msgstr ""
1376
 
1377
+ #: admin/includes/class-meta-box.php:419
1378
  #, php-format
1379
  msgid "%d ads – <a href=\"%s\">manage</a> - <a href=\"%s\">new</a>"
1380
  msgstr ""
1381
 
1382
+ #: admin/includes/class-meta-box.php:430
1383
  msgid "Get the tutorial via email"
1384
  msgstr ""
1385
 
1386
+ #: admin/includes/class-meta-box.php:437
1387
  msgid "Get AdSense tips via email"
1388
  msgstr ""
1389
 
1390
+ #: admin/includes/class-meta-box.php:444
1391
  msgid "Visit our blog for more articles about ad optimization"
1392
  msgstr ""
1393
 
1394
  #. %s is our URL
1395
+ #: admin/includes/class-meta-box.php:497
1396
  msgid "Latest posts on wpadvancedads.com"
1397
  msgstr ""
1398
 
1399
+ #: admin/includes/class-notices.php:457
1400
  #, php-format
1401
  msgid ""
1402
  "You don’t seem to have an email address. Please use <a href=\"%s\" "
1403
  "target=\"_blank\">this form</a> to sign up."
1404
  msgstr ""
1405
 
1406
+ #: admin/includes/class-notices.php:475
1407
  msgid ""
1408
  "How embarrassing. The email server seems to be down. Please try again later."
1409
  msgstr ""
1410
 
1411
+ #: admin/includes/class-notices.php:480
1412
  #, php-format
1413
  msgid ""
1414
  "Please check your email (%s) for the confirmation message. If you didn’t "
1431
 
1432
  #: admin/includes/class-overview-widgets.php:105
1433
  #: modules/gadsense/admin/views/adsense-account.php:71
1434
+ #: modules/gadsense/admin/views/adsense-account.php:93
1435
  msgid "Connect to AdSense"
1436
  msgstr ""
1437
 
1495
  msgid "Show %s hidden notices"
1496
  msgstr ""
1497
 
1498
+ #: admin/includes/class-overview-widgets.php:358
1499
+ #: admin/includes/class-settings.php:366
1500
+ msgid "How to install and activate an add-on."
1501
  msgstr ""
1502
 
1503
  #: admin/includes/class-overview-widgets.php:363
1504
+ msgid "The solution for professional websites."
1505
+ msgstr ""
1506
+
1507
+ #: admin/includes/class-overview-widgets.php:366
1508
  #: admin/views/pitch-pro-tab.php:7
1509
  msgid "support for cached sites"
1510
  msgstr ""
1511
 
 
 
 
1512
  #: admin/includes/class-overview-widgets.php:369
1513
+ #: admin/includes/class-overview-widgets.php:370
1514
+ #: admin/includes/class-overview-widgets.php:371
1515
+ #: admin/includes/class-overview-widgets.php:372
1516
  #, php-format
1517
  msgid "integrates with <strong>%s</strong>"
1518
  msgstr ""
1519
 
1520
+ #: admin/includes/class-overview-widgets.php:373
1521
  msgid "click fraud protection, lazy load, ad-block ads"
1522
  msgstr ""
1523
 
1524
+ #: admin/includes/class-overview-widgets.php:374
1525
  #: admin/views/pitch-pro-tab.php:8
1526
  msgid "11 more display and visitor conditions"
1527
  msgstr ""
1528
 
1529
+ #: admin/includes/class-overview-widgets.php:375
1530
  #: admin/views/pitch-pro-tab.php:9
1531
  msgid "6 more placements"
1532
  msgstr ""
1533
 
1534
+ #: admin/includes/class-overview-widgets.php:376
1535
  #: admin/views/pitch-pro-tab.php:10
1536
  msgid "placement tests for ad optimization"
1537
  msgstr ""
1538
 
1539
+ #: admin/includes/class-overview-widgets.php:377
1540
  #: admin/views/pitch-pro-tab.php:11
1541
  msgid "ad grids and many more advanced features"
1542
  msgstr ""
1543
 
1544
+ #: admin/includes/class-overview-widgets.php:384
1545
  msgid ""
1546
  "Analyze clicks and impressions of your ads locally or in Google Analytics, "
1547
  "share reports, and limit ads to a specific number of impressions or clicks."
1548
  msgstr ""
1549
 
1550
+ #: admin/includes/class-overview-widgets.php:390
1551
  msgid ""
1552
  "Display ads based on the device or the size of your visitor’s browser, and "
1553
  "control ads on AMP pages."
1554
  msgstr ""
1555
 
1556
+ #: admin/includes/class-overview-widgets.php:403
1557
  msgid ""
1558
  "Earn more money and let advertisers pay for ad space directly on the "
1559
  "frontend of your site."
1560
  msgstr ""
1561
 
1562
+ #: admin/includes/class-overview-widgets.php:409
1563
  msgid ""
1564
  "Target visitors with ads that match their geo location and make more money "
1565
  "with regional campaigns."
1566
  msgstr ""
1567
 
1568
+ #: admin/includes/class-overview-widgets.php:415
1569
  msgid ""
1570
  "Increase click rates on your ads by placing them in sticky positions above, "
1571
  "next or below your site."
1572
  msgstr ""
1573
 
1574
+ #: admin/includes/class-overview-widgets.php:421
1575
  msgid ""
1576
  "Users will never miss an ad or other information in a PopUp. Choose when it "
1577
  "shows up and for how long a user can close it."
1578
  msgstr ""
1579
 
1580
+ #: admin/includes/class-overview-widgets.php:427
1581
  msgid ""
1582
  "Create a beautiful and simple slider from your ads to show more information "
1583
  "on less space."
1584
  msgstr ""
1585
 
1586
+ #: admin/includes/class-overview-widgets.php:433
1587
  msgid ""
1588
  "Place AdSense In-feed ads between posts on homepage, category, and archive "
1589
  "pages."
1590
  msgstr ""
1591
 
1592
+ #: admin/includes/class-overview-widgets.php:436
1593
+ #: admin/includes/class-overview-widgets.php:611
1594
+ #: admin/includes/class-overview-widgets.php:627
1595
  msgid "Install now"
1596
  msgstr ""
1597
 
1598
+ #: admin/includes/class-overview-widgets.php:454
1599
+ #: admin/includes/class-overview-widgets.php:475
1600
+ #: admin/includes/class-overview-widgets.php:500
1601
+ #: admin/includes/class-overview-widgets.php:518
1602
+ #: admin/includes/class-overview-widgets.php:536
1603
+ #: admin/includes/class-overview-widgets.php:554
1604
+ #: admin/includes/class-overview-widgets.php:572
1605
+ #: admin/includes/class-overview-widgets.php:590
1606
  msgid "Activate now"
1607
  msgstr ""
1608
 
1609
+ #: admin/includes/class-overview-widgets.php:483
1610
  msgid "Visit your ad stats"
1611
  msgstr ""
1612
 
1613
+ #: admin/includes/class-overview-widgets.php:607
1614
  msgid "Use Genesis specific ad positions."
1615
  msgstr ""
1616
 
1617
+ #: admin/includes/class-overview-widgets.php:623
1618
  msgid ""
1619
  "Manage ad positions with WPBakery Page Builder (formerly Visual Composer)."
1620
  msgstr ""
1621
 
1622
+ #: admin/includes/class-overview-widgets.php:639
1623
  msgid "Our best deal with all add-ons included."
1624
  msgstr ""
1625
 
1626
+ #: admin/includes/class-overview-widgets.php:641
1627
  msgid "Get full access"
1628
  msgstr ""
1629
 
1630
+ #: admin/includes/class-overview-widgets.php:655
1631
  #: admin/views/ad-display-metabox.php:48 admin/views/ad-visitor-metabox.php:48
1632
  msgid "Visit the manual"
1633
  msgstr ""
1634
 
1635
+ #: admin/includes/class-overview-widgets.php:658
1636
  msgid "Get this add-on"
1637
  msgstr ""
1638
 
1700
  msgid "Disable shortcode button"
1701
  msgstr ""
1702
 
 
 
 
 
1703
  #: admin/includes/class-settings.php:286
1704
  msgid "Pro"
1705
  msgstr ""
1726
  msgid "Are you missing something?"
1727
  msgstr ""
1728
 
 
 
 
 
1729
  #: admin/includes/class-settings.php:434
1730
  msgid "Choose the roles a user must have in order to not see any ads."
1731
  msgstr ""
2055
  msgid "Slug"
2056
  msgstr ""
2057
 
2058
+ #: admin/views/ad-group-edit.php:54 admin/views/ad-output-metabox.php:63
2059
  msgid ""
2060
  "An id-like string with only letters in lower case, numbers, and hyphens."
2061
  msgstr ""
2339
  msgid "Specify the id of the ad container. Leave blank for random or no id."
2340
  msgstr ""
2341
 
2342
+ #: admin/views/ad-output-metabox.php:66
2343
  msgid "container classes"
2344
  msgstr ""
2345
 
2346
+ #: admin/views/ad-output-metabox.php:72
2347
  msgid ""
2348
  "Specify one or more classes for the container. Separate multiple classes "
2349
  "with a space"
2350
  msgstr ""
2351
 
2352
+ #: admin/views/ad-output-metabox.php:75
2353
  msgid "Enable debug mode"
2354
  msgstr ""
2355
 
2935
  msgid "Your license expired."
2936
  msgstr ""
2937
 
2938
+ #: admin/views/setting-license.php:13
2939
  msgid "Update expiry date"
2940
  msgstr ""
2941
 
2942
+ #: admin/views/setting-license.php:18
2943
  #, php-format
2944
  msgid ""
2945
  "Click on %2$s if you renewed it or have a subscription or <a href=\"%1$s\" "
2946
  "class=\"advads-renewal-link\" target=\"_blank\">renew your license</a>."
2947
  msgstr ""
2948
 
2949
+ #: admin/views/setting-license.php:30
2950
  #, php-format
2951
  msgid "(%d days left)"
2952
  msgstr ""
2953
 
2954
+ #: admin/views/setting-license.php:34
2955
  msgid "License key"
2956
  msgstr ""
2957
 
2958
+ #: admin/views/setting-license.php:51
2959
  msgid "Deactivate License"
2960
  msgstr ""
2961
 
2962
+ #: admin/views/setting-license.php:57
2963
  msgid "Update License"
2964
  msgstr ""
2965
 
2966
+ #: admin/views/setting-license.php:57
2967
  msgid "Activate License"
2968
  msgstr ""
2969
 
2970
+ #: admin/views/setting-license.php:62
2971
  msgid "License key invalid"
2972
  msgstr ""
2973
 
2974
+ #: admin/views/setting-license.php:70
2975
  msgid "active"
2976
  msgstr ""
2977
 
3095
  "for individual help."
3096
  msgstr ""
3097
 
3098
+ #: public/views/ad-debug.php:22
3099
  msgid "Ad debug output"
3100
  msgstr ""
3101
 
3102
+ #: public/views/ad-debug.php:24
3103
  msgid "Find solutions in the manual"
3104
  msgstr ""
3105
 
3267
  msgstr ""
3268
 
3269
  #: modules/gadsense/includes/class-ad-type-adsense.php:93
3270
+ #: modules/gadsense/admin/views/adsense-account.php:83
3271
  msgid "The Publisher ID has an incorrect format. (must start with \"pub-\")"
3272
  msgstr ""
3273
 
3275
  msgid "Your AdSense Publisher ID is missing."
3276
  msgstr ""
3277
 
3278
+ #: modules/gadsense/includes/class-adsense-report.php:472
3279
+ #: modules/gadsense/includes/class-adsense-report.php:498
3280
  msgid "Never"
3281
  msgstr ""
3282
 
3684
  msgid "Consent method"
3685
  msgstr ""
3686
 
3687
+ #: modules/privacy/classes/plugin.php:149
3688
  msgid "Show all ads even without consent."
3689
  msgstr ""
3690
 
3691
+ #: modules/privacy/classes/plugin.php:150
3692
  msgid "Cookie"
3693
  msgstr ""
3694
 
3789
  msgid "Account holder name"
3790
  msgstr ""
3791
 
3792
+ #: modules/gadsense/admin/views/adsense-account.php:85
3793
  msgid "Your AdSense Publisher ID <em>(pub-xxxxxxxxxxxxxx)</em>"
3794
  msgstr ""
3795
 
3796
+ #: modules/gadsense/admin/views/adsense-account.php:92
3797
  msgid "Yes, I have an AdSense account"
3798
  msgstr ""
3799
 
3800
+ #: modules/gadsense/admin/views/adsense-account.php:94
3801
  msgid "Configure everything manually"
3802
  msgstr ""
3803
 
3804
+ #: modules/gadsense/admin/views/adsense-account.php:97
3805
  msgid "No, I still don't have an AdSense account"
3806
  msgstr ""
3807
 
3808
+ #: modules/gadsense/admin/views/adsense-account.php:98
3809
  msgid "Get a free AdSense account"
3810
  msgstr ""
3811
 
3812
  #. %1$s is the opening link tag to our manual; %2$s is the appropriate closing link tag; %3$s is the opening link tag to our help forum; %4$s is the appropriate closing link tag
3813
+ #: modules/gadsense/admin/views/adsense-account.php:148
3814
  #, php-format
3815
  msgid ""
3816
  "Problems with AdSense? Check out the %1$smanual%2$s or %3$sask here%4$s."
3817
  msgstr ""
3818
 
3819
+ #: modules/gadsense/admin/views/adsense-account.php:156
3820
  #: modules/gadsense/admin/views/external-ads-links.php:37
3821
  msgid "Can not connect AdSense account. PHP version is too low."
3822
  msgstr ""
modules/adblock-finder/public/public.php CHANGED
@@ -7,6 +7,10 @@ class Advanced_Ads_Adblock_Finder {
7
  }
8
 
9
  public function print_adblock_check_js() {
 
 
 
 
10
  $options = Advanced_Ads::get_instance()->options();
11
 
12
  $pro_options = get_option( 'advanced-ads-pro' );
7
  }
8
 
9
  public function print_adblock_check_js() {
10
+ if ( advads_is_amp() ) {
11
+ return;
12
+ }
13
+
14
  $options = Advanced_Ads::get_instance()->options();
15
 
16
  $pro_options = get_option( 'advanced-ads-pro' );
modules/gadsense/admin/admin.php CHANGED
@@ -8,7 +8,7 @@ class Advanced_Ads_AdSense_Admin {
8
  protected $notice = null;
9
  private $settings_page_hook = 'advanced-ads-adsense-settings-page';
10
 
11
- const ADSENSE_NEW_ACCOUNT_LINK = 'https://www.google.com/adsense/start/?utm_source=AdvancedAdsPlugIn&utm_medium=partnerships&utm_campaign=AdvancedAdsPartner';
12
 
13
  private function __construct() {
14
  $this->data = Advanced_Ads_AdSense_Data::get_instance();
8
  protected $notice = null;
9
  private $settings_page_hook = 'advanced-ads-adsense-settings-page';
10
 
11
+ const ADSENSE_NEW_ACCOUNT_LINK = 'https://www.google.com/adsense/start/?utm_source=AdvancedAdsPlugIn&utm_medium=partnerships&utm_campaign=AdvancedAdsPartner1';
12
 
13
  private function __construct() {
14
  $this->data = Advanced_Ads_AdSense_Data::get_instance();
modules/gadsense/includes/class-mapi.php CHANGED
@@ -1342,7 +1342,7 @@ class Advanced_Ads_AdSense_MAPI {
1342
 
1343
  // Remove `ads.txt` related alerts if the file is displayed to visitors.
1344
  if ( Advanced_Ads_Ads_Txt_Admin::is_displayed() ) {
1345
- $ads_txt_alerts = array( 'ALERT_TYPE_ADS_TXT_UNAUTHORIZED', 'ADS_TXT_MISSING' );
1346
 
1347
  foreach ( $alerts['items'] as $internal_id => $item ) {
1348
  if ( isset( $item['id'] ) && in_array( $item['id'], $ads_txt_alerts ) ) {
1342
 
1343
  // Remove `ads.txt` related alerts if the file is displayed to visitors.
1344
  if ( Advanced_Ads_Ads_Txt_Admin::is_displayed() ) {
1345
+ $ads_txt_alerts = array( 'ALERT_TYPE_ADS_TXT_UNAUTHORIZED', 'ADS_TXT_MISSING', 'ADS_TXT_ISSUES' );
1346
 
1347
  foreach ( $alerts['items'] as $internal_id => $item ) {
1348
  if ( isset( $item['id'] ) && in_array( $item['id'], $ads_txt_alerts ) ) {
modules/gadsense/public/public.php CHANGED
@@ -32,6 +32,9 @@ class Advanced_Ads_AdSense_Public {
32
  if ( defined( 'ADVADS_ADS_DISABLED' ) ) {
33
  return;
34
  }
 
 
 
35
 
36
  $privacy_options = Advanced_Ads_Privacy::get_instance()->options();
37
  $privacy_enabled = ! empty( $privacy_options['enabled'] ) && 'not_needed' !== Advanced_Ads_Privacy::get_instance()->get_state();
32
  if ( defined( 'ADVADS_ADS_DISABLED' ) ) {
33
  return;
34
  }
35
+ if ( advads_is_amp() ) {
36
+ return;
37
+ }
38
 
39
  $privacy_options = Advanced_Ads_Privacy::get_instance()->options();
40
  $privacy_enabled = ! empty( $privacy_options['enabled'] ) && 'not_needed' !== Advanced_Ads_Privacy::get_instance()->get_state();
modules/privacy/classes/plugin.php CHANGED
@@ -68,6 +68,7 @@ class Advanced_Ads_Privacy
68
  * @return bool
69
  */
70
  public function can_display_by_consent( $can_display, Advanced_Ads_Ad $ad, $check_options ) {
 
71
  if ( ! $can_display ) {
72
  return $can_display;
73
  }
@@ -107,6 +108,10 @@ class Advanced_Ads_Privacy
107
  return 'not_needed';
108
  }
109
 
 
 
 
 
110
  $consent_method = isset( $this->options['consent-method'] ) ? $this->options['consent-method'] : 0;
111
  switch ( $consent_method ) {
112
  case '0':
68
  * @return bool
69
  */
70
  public function can_display_by_consent( $can_display, Advanced_Ads_Ad $ad, $check_options ) {
71
+
72
  if ( ! $can_display ) {
73
  return $can_display;
74
  }
108
  return 'not_needed';
109
  }
110
 
111
+ if ( advads_is_amp() ) {
112
+ return 'not_needed';
113
+ }
114
+
115
  $consent_method = isset( $this->options['consent-method'] ) ? $this->options['consent-method'] : 0;
116
  switch ( $consent_method ) {
117
  case '0':
public/views/ad-debug.php CHANGED
@@ -1,4 +1,5 @@
1
- <?php ob_start(); ?>
 
2
  <script>
3
  // Output script that makes full-screen mode.
4
  if ( typeof advanced_ads_full_screen_debug !== 'function' ) {
@@ -15,7 +16,8 @@ if ( typeof advanced_ads_full_screen_debug !== 'function' ) {
15
  }
16
  }
17
  </script>
18
- <?php echo Advanced_Ads_Utils::get_inline_asset( ob_get_clean() ); ?>
 
19
  <div id="<?php echo $wrapper_id; ?>" style="<?php echo $style; ?>" ondblclick="advanced_ads_full_screen_debug( this );">
20
  <strong><?php _e( 'Ad debug output', 'advanced-ads' ); ?></strong>
21
  <?php echo '<br /><br />' . implode( '<br /><br />', $content ); ?>
1
+ <?php if ( ! advads_is_amp() ):
2
+ ob_start(); ?>
3
  <script>
4
  // Output script that makes full-screen mode.
5
  if ( typeof advanced_ads_full_screen_debug !== 'function' ) {
16
  }
17
  }
18
  </script>
19
+ <?php echo Advanced_Ads_Utils::get_inline_asset( ob_get_clean() );
20
+ endif; ?>
21
  <div id="<?php echo $wrapper_id; ?>" style="<?php echo $style; ?>" ondblclick="advanced_ads_full_screen_debug( this );">
22
  <strong><?php _e( 'Ad debug output', 'advanced-ads' ); ?></strong>
23
  <?php echo '<br /><br />' . implode( '<br /><br />', $content ); ?>
readme.txt CHANGED
@@ -5,7 +5,7 @@ Tags: ads, ad manager, ad rotation, adsense, banner
5
  Requires at least: 4.6
6
  Tested up to: 5.2
7
  Requires PHP: 5.6
8
- Stable tag: 1.14.4
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
@@ -25,6 +25,11 @@ Are you looking for a simple ad manager plugin? These are the top arguments to u
25
  * the only solution with *Ad Health* integration and Google AdSense violation checks
26
  * best rated [free support](https://wordpress.org/support/plugin/advanced-ads)
27
 
 
 
 
 
 
28
  Would you like to know if there is a certain feature, what the optimized setup would be, or how to implement your client’s demands? Just [open a thread in the forum](https://wordpress.org/support/plugin/advanced-ads#new-post)!
29
 
30
  Based on my experience as a publisher with millions of monthly served ads, I've developed this ad management plugin for WordPress when no other solution offered testing and optimization features. It allowed us to grow to 100 MM monthly ad impressions. Benefit from this knowledge about advertising and monetize your website today!
@@ -84,6 +89,10 @@ serve ads by conditions based on the visitor. [List of all visitor conditions](h
84
  * display ads by geolocation with the [Geo Targeting add-on](https://wpadvancedads.com/add-ons/geo-targeting/)
85
  * display ads by browser width with the [Responsive add-on](https://wpadvancedads.com/add-ons/responsive-ads/)
86
 
 
 
 
 
87
  = ad injection | placements =
88
 
89
  Placements to insert ads in pre-defined positions in your theme and content. [List of all placements](https://wpadvancedads.com/manual/placements/)
@@ -123,6 +132,10 @@ Amazing features of the most powerful and easy Google AdSense plugin.
123
  * convert Google AdSense ads into AMP ads automatically with the [Responsive add-on](https://wpadvancedads.com/add-ons/responsive-ads/)
124
  * ads.txt generated with the correct AdSense information automatically
125
 
 
 
 
 
126
  = ads.txt =
127
 
128
  * generates ads.txt with custom content
@@ -290,6 +303,15 @@ Yes. Advanced Ads is based on WordPress standards and therefore easily customiza
290
 
291
  == Changelog ==
292
 
 
 
 
 
 
 
 
 
 
293
  = 1.14.4 =
294
 
295
  * fixed JavaScript issue on ad edit pages
5
  Requires at least: 4.6
6
  Tested up to: 5.2
7
  Requires PHP: 5.6
8
+ Stable tag: 1.14.5
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
25
  * the only solution with *Ad Health* integration and Google AdSense violation checks
26
  * best rated [free support](https://wordpress.org/support/plugin/advanced-ads)
27
 
28
+ This is what our users are saying about Advanced Ads:
29
+
30
+ > We use this plugin to deliver rotating ads on a community news site, and it’s great. Both feature-rich and reliable, your imagination is the limit when it comes to the product you want to create for your users. We’ve delivered over a million ad impressions since we launched less than a year ago, using a combination of sidebar, top, sticky and in-content placements — both HTML5 and images. Advanced Ads makes it easy for our small team to deliver a good experience to our users and our advertisers.
31
+ > mytown304 on wp.org
32
+
33
  Would you like to know if there is a certain feature, what the optimized setup would be, or how to implement your client’s demands? Just [open a thread in the forum](https://wordpress.org/support/plugin/advanced-ads#new-post)!
34
 
35
  Based on my experience as a publisher with millions of monthly served ads, I've developed this ad management plugin for WordPress when no other solution offered testing and optimization features. It allowed us to grow to 100 MM monthly ad impressions. Benefit from this knowledge about advertising and monetize your website today!
89
  * display ads by geolocation with the [Geo Targeting add-on](https://wpadvancedads.com/add-ons/geo-targeting/)
90
  * display ads by browser width with the [Responsive add-on](https://wpadvancedads.com/add-ons/responsive-ads/)
91
 
92
+ > **Fantastic plugin and outstanding support**
93
+ > I tried at least three other ad plugins for WordPress and ‘Advanced Ads’ is by and far the best one. Last but not least in the support. The first port of call are a number of excellent tutorials. And finally the hands on support. I don’t quite know how he does it but the speed and depth of responses are absolutely amazing.
94
+ > djsawyer on wp.org
95
+
96
  = ad injection | placements =
97
 
98
  Placements to insert ads in pre-defined positions in your theme and content. [List of all placements](https://wpadvancedads.com/manual/placements/)
132
  * convert Google AdSense ads into AMP ads automatically with the [Responsive add-on](https://wpadvancedads.com/add-ons/responsive-ads/)
133
  * ads.txt generated with the correct AdSense information automatically
134
 
135
+ Like j4ckson185, there are thousands of happy AdSense users:
136
+
137
+ > Your app is awesome, congratulations! Google Adsense suggests using your app on its official website, it’s incredible!
138
+
139
  = ads.txt =
140
 
141
  * generates ads.txt with custom content
303
 
304
  == Changelog ==
305
 
306
+ = 1.14.5 =
307
+
308
+ * sanitize Container ID option on save and warn about wrong format
309
+ * made Placements page work when another plugin includes Twitter Bootstrap
310
+ * updated missing ads.txt warning
311
+ * disabled Privacy module on AMP pages so that the Google AMP cache shows them
312
+ * fixed warnings for some features on AMP pages
313
+ * fixed suggestion to switch Auto ads code in plain text ad type to AdSense ad type
314
+
315
  = 1.14.4 =
316
 
317
  * fixed JavaScript issue on ad edit pages