Tracking impressions and clicks is one of the most used features within the Advanced Ads product family. There are a lot of factors that can influence the numbers. Tracking 2.0 is aiming to solve as many of these issues as possible automatically or with optimal default settings.

This page contains information about the changes and how you can get involved in testing them.

How to test Tracking 2.0

We intend to launch Tracking 2.0 with the most important changes regarding Tracking reliability. It would help us a lot if users could install the current Release Candidates on new sites or staging sites and send us feedback, even if all is working as expected.

Release Candidates are stable versions. We are testing them in real environments before a release. With each WordPress site being unique, there are a lot of possibilities for another plugin, server environment, or setting that could influence the results without us being able to catch it with our tests, so your feedback is imminent to us.

When to install Tracking 2.0 RC

We encourage users to install the latest version of Tracking 2.0 in any of the following cases:

  • You are setting up a completely new site
  • Your site is not reporting ad impressions to external parties, like advertisers and a sudden spike or drop in the measured impressions is not relevant to your business
  • You have a staging environment

WP Engine clients: WP Engine offered to measure the impact of our new tracking method on their end. Please let us know if you are hosting with them.

How to test

We are interested in learning if you see significant and unexpected changes after installing Tracking 2.0. So testing just means to install and activate the latest release candidate (see below) and 1) check if there is any error output and 2) if your numbers change.

If you don’t see any changes with your current setup and you are using the Track on load method, consider switching to the JavaScript (AJAX) method and keep testing.

Enable the Tracking debug under Advanced Ads > Stats > Open database management > Debug mode so that significant changes can be identified later.

When comparing numbers with another analytics (like Google Analytics page views), please always consider a full 24h starting at 0:00. Don’t count the day on which you made the switch.

You can also enable WP_DEBUG to catch any PHP-related errors if you see a critical error.

How to install Tracking 2.0

All Access clients should find the link to the latest release candidate below this line. If you purchased Tracking individually then please reach out directly to get your copy. If you don’t see the link then please log in first.

  • download the zip file
  • go to the Plugins > Installed Plugins in your WordPress dashboard
  • disable the currently installed version of Advanced Ads Tracking (no data will be lost), but don’t delete the plugin
  • click on the Add New button at the top left of the page
  • select the zip file you just downloaded and upload it
  • activate the new version
  • go to Advanced Ads > Settings > Tracking if you want to switch the tracking method
  • refresh your site cache if you have one enabled

Keeping the previous official release of Advanced Ads Tracking allows you to switch back to it in case you experience any serious issues. Please report them to us as well.

What do include in a bug report

Please report any issues, possible misunderstanding, and even if you are missing information through our support form.

If you experience unexpected changes in tracking numbers then please include the tracking debug log file and description of why you believe the numbers should be higher or lower.

If you see a critical PHP error then please enable WP_DEBUG and send us the file after reproducing the error.

Release Candidates

RC 1


  • decrease load time of the JavaScript (AJAX) tracking methods down to 1 % (no typo)
  • set JavaScript (AJAX) as the default tracking method
  • renaming of the tracking options in the tracking debug file and added execution time to identify performance issues
  • the tracking debug file has a unique name now so that it cannot be opened by just guessing the name
  • the debug period increased from 24 to 48 hours so that users can catch a full 24 hours starting at 0:00.
  • bots that are known to execute JavaScript are filtered from impression tracking using the JavaScript (AJAX) method
  • the After page loaded completed tracking option was removed and can no longer be selected. It will still work if you selected it until now, but we recommend switching to JavaScript (AJAX) instead

What to look out for

  • there are no changes relevant to users of the Google Analytics tracking method
  • if you are using another tracking method then change it to JavaScript (AJAX)
  • the default tracking method will only change to JavaScript (AJAX) when you have not saved the Tracking settings before
  • when you used the JavaScript (AJAX) tracking method or Cache Busting in Advanced Ads Pro, impressions might decrease due to our filter of JavaScript-executing bots. This is especially the case on sites using AdSense since the AdSense bot was also excluded from being counted
  • when you used another local tracking method (not Google Analytics) on a cached website, switching to the JavaScript (AJAX) will result in tracking more impressions, which is likely to be more accurate than the numbers you saw before that
  • switching to the JavaScript (AJAX) method could also result in fewer impressions on uncached sites since it filters out most traffic from automated bots naturally, which is also more accurate than before
  • if you enabled the Tracking debug option, you might need to remove the log file and start a new one since the format is a bit different
  • the new debug file name has the format advanced-ads-tracking-{URL}-{HASH}.csv

Details about changes in Tracking 2.0

Improved AJAX tracking is now the default method

Until now, the default tracking method counted an ad impression when the ad was sent from the server to the browser. That technique could inflate ad impressions when sites had a lot of bot traffic or count too few impressions when sites were cached and didn’t use our Cache Busting option.

The JavaScript (AJAX) method reliably counts ad impressions from real visitors and excludes traffic that should not be counted at all. At the same time, it was using a lot of resources. This made it a risk to be used on servers with limited capacities or sites with very much traffic.

Our goal was always to find a default tracking method that solved all issues to never let users worry about it. It took years to brainstorm and the last six months to develop and test it since nothing like this existed before in any ad management plugin or related product. We tested a lot of methods and worked with a well-known hosting provider to decide on the path to go.

After a lot of testing and conversations with hosting providers, we were able to improve the existing JavaScript (AJAX) method. Depending on the number of other plugins installed and your hosting provider, the new method is reducing the tracking time down to 1 %. The reliability and speed of this improved version makes it a great default option for most websites.

Technical changes

If you are technically experienced then you might want to learn that instead of using admin-ajax.php for tracking impressions which included loading WordPress in the backend, we are now using a custom file hosted under wp-content/ajax-handler.php to store impressions. This file contains all the logic needed to store an impression directly in the database. In our tests, this file needed less than 10 ms from being called to store the impression. You should see an error if the file was not created automatically.

If you are concerned about the additional file directly storing impressions in your database then you can still set the ADVANCED_ADS_TRACKING_LEGACY_AJAX constant to true in your wp-config.php to fall back to using admin-ajax.php as before.

The filter advanced-ads-tracking-after-writing-into-db is not working with the new method. There might be a handful of users hooking into it who should consider changes.

The custom tracking file is updated after changes in the backend, if needed. When you set a constant, e.g., ADVANCED_ADS_TRACKING_IGNORE_LOGGED_IN_USERSthe change is only reflected after reloading WP admin once again.

You can also switch to the still-existing Google Analytics tracking method to track and store ad impressions outside of your WordPress installation.

“After page loaded completed” deprecated

The After page load completed tracking method was a compromise between the previous default and the new JavaScript (AJAX) method and no longer makes sense. If you had it enabled before Tracking 2.0 then you can still use it for a while. We are going to remove and switch users to the new JavaScript (AJAX) method at some point in the future. You might want to switch proactively before that happens.

Limited support for “Track on load”

We intend to rename the previous default option Track on load to On Request. We are only recommending it to users who know why they choose it and will limit support for it due to the many influences and potential conflicts. It is not a bad choice per se, but should only be selected if you understand the consequences.

Tracking debug file

We have rewritten the tracking debug log file logic. Old files are no longer working and should be removed.

The new debug file name has the format advanced-ads-tracking-{URL}-{HASH}.csv.

We changed the information about the tracking method used into a version closer to the option selected in the backend.

The file includes a new “Execution time” column that contains the time needed to write an impression into the database. This should help you to identify potential server issues. This time does not include the time that the request needs to be sent from your browser to the server, which can vary depending on the distance between both.

The default tracking debug period increased from 24 to 48 hours so that users can catch a full 24 hours starting at 0:00.

The ADVANCED_ADS_TRACKING_DEBUG constant which you can set in wp-config.php to enable the debug mode for longer than 48 hours, now accepts 0 to disable debug mode, 1 to enable it for all ads and an ad ID, e.g., 123 to enable it for a single ad only.

The debug mode option in WP admin overrides the setting of the ADVANCED_ADS_TRACKING_DEBUG constant. If you set the latter to 0 to disable debug mode, you can still enable it for 48 hours through the backend.

Other changes

The constant ADVANCED_ADS_TRACKING_IGNORE_LOGGED_IN_USERS that removes tracking for logged-in users now must be set to true instead of having any value to work.