Here are a couple of possible issues and fixes for the Tracking add-on.
Also, check out the common issues on this page.
Table of Contents
Please read this first
To be more performant, Advanced Ads Tracking does not deliver live stats everywhere. Impression and Click counts are only live on the internal and public stats pages, but not on the ad overview or the ad edit page.
You can change the time this cache renews on Advanced Ads > Settings > Tracking > Recalculate Sums.
Impressions missing completely
Please see the following potential causes of impressions not being tracked at all:
- Keep in mind that the value for impressions might be cached in the backend of Advanced Ads. The updated numbers are always visible under Advanced Ads > Stats.
- Check if impression tracking wasn’t disabled under Advanced Ads > Settings > Tracking or for individual ads.
- Check if the tables for tracking were created. See Tables not created for more details.
Impressions too low
If you have the feeling that impressions are too low, then please consider the following ideas.
- Double-check your settings. Is the ad visible for all users on all pages where you want them?
- Please be aware that 20 to 60% of website users have ad blockers installed. Blocked ads result in lower ad impressions. But Advanced Ads provides different features to deal with ad blockers. Learn more about it in our ad blocker tutorial.
- There is no tracking tool like the other, so minor differences are very normal.
Google Analytics tracking
Google Analytics has a limit of 20 events per page impression. Each ad impression is a single event. Other plugins or custom code might also add events that add up to the limit. Analytics might also limit the number of total hits per month. See also Google Analytics Collection Limits and Quotas.
Other tracking methods
- Tracking is by default disabled for bots. Bots can make up to over 50% of web traffic, and some statistic tools don’t exclude them.
- Some features, like the limit for ad impressions, are using a cached value for impressions that is not updated for each impression for performance reasons. You can set the update interval on Advanced Ads > Settings > Tracking > Recalculate sums.
- If you see the
advads_tracking_methods is not definederror in the browser’s developer console then it is likely that some script optimization removed part of our code from your site. At this point, this is a known issue with ezoic. Please reach out to them for a solution.
Impressions too high
- Each ad is tracked individually. If you use the same ad multiple times per page, every one of its impressions is tracked.
Google Analytics tracking
- The Google Analytics tracking method could push impressions from multiple sites into the same Analytics report if they use the same Analytics ID. This is especially common if you are actively using a test site.
- Go to your Analytics account, navigate to Admin > [choose the property] > [choose the view] > [go to View Settings] and enable Bot Filtering.
Other tracking methods
- Tracking is by default disabled for known bots. However, there could still be a large amount of bot traffic unrecognized as such. Switching to the frontend tracking method with AJAX could help in this case.
- Ads that show up in a delayed sticky position or in a popup are tracked even if they didn’t show up unless you choose the AJAX or Analytics tracking methods (a fix for that is intended)
- If you are using the AMP technology then our tracking falls back to the default method. This allows bots to be tracked as well. You can analyze the impact of this in the tracking debug log (see below).
Different Impressions compared to Analytics
If you notice a huge difference between impressions from ads and page impressions in your page analytics (e.g., Google Analytics) you should be aware of a few things:
- only compare impressions of pages with ads that are reliably on those pages all the time (e.g., without visitor conditions)
- be aware of the differences between the tracking methods
- e.g., track on load could count every visitor, even bots and therefore result in much higher ad impressions
Clicks not tracked
Please make sure that you have set up the target URL like described in the documentation (section Click target URL).
In a nutshell:
- The URL you want to link to must be inserted into the URL field in the ad parameters box of the single ad
- If you already have a link within the ad code (especially in Rich Media or Plain Text ad type) you need to replace the value of the
Clicks too high
The most common reason for too many clicks is bots following the links.
Advanced Ads comes with a filter for the most common bots, but you might want to add more using the advanced-ads-bots filter.
Use the debug mode to identify the user agents of the bots.
Google Analytics has its own bot filter and should not report too many clicks.
Moving your blog
If you are using the frontend tracking method and move your blog to another URL (e.g. after moving from development to production environment) you need to save the Advanced Ads settings again.
Tables not created
If you get a warning that the tables are not created, please disable and enable the plugin again. If that doesn’t help, please try to create them manually using the SQL query below. You might have to adjust the table prefix from wp_ to yours before using the query.
CREATE TABLE `wp_advads_clicks` ( `timestamp` int(10) unsigned NOT NULL, `ad_id` int(10) unsigned NOT NULL, `count` mediumint(8) unsigned NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE `wp_advads_impressions` ( `timestamp` int(10) unsigned NOT NULL, `ad_id` int(10) unsigned NOT NULL, `count` mediumint(8) unsigned NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; ALTER TABLE `wp_advads_clicks` ADD PRIMARY KEY (`timestamp`,`ad_id`); ALTER TABLE `wp_advads_impressions` ADD PRIMARY KEY (`timestamp`,`ad_id`);
In case your tables don’t support utf8mb4, try utf8.
You can enable the tracking debug mode if you are not sure about where your impressions or clicks are coming from. This mode logs every impression and click with additional information, like the exact time, IP address, page URL, or user agent.
You can find the debug mode under Advanced Ads > Stats > Open database management > Debug mode.
The debug mode logs all events for 24 hours. You can also stop it before that period expires or use the manual debug mode described below to log over a longer period.
The debug file has the CSV format which you can open in a plain text editor or spreadsheet software like Excel or Open Office.
The debug mode only works for local tracking methods, i.e., not for Google Analytics tracking.
Manual debug mode
You can enable the debug mode for a longer period than 24 hours by following the information below.
Just enter the following line into your `wp-config.php` file.
define( 'ADVANCED_ADS_TRACKING_DEBUG', true );
You can also just track impressions and clicks for a specific ad by defining the constant with the ad ID as a value.
define( 'ADVANCED_ADS_TRACKING_DEBUG', 34 );
The plugin will now log all impressions and clicks together with the URL, IP address, user agent and ad ID into wp-content/advanced-ads-tracking.csv.
Please make sure to disable this logging and remove the log file after you are finished since it takes extra performance.
It might be useful to also log page impressions in this log file in order to find out if there are specific pages or user agents that don’t see ads. You can use this plugin to add page impression logging to the debug file. Follow the instructions in that plugin to set it up.
Google Analytics tracking
You can debug Analytics tracking in your browser error console.
Go to the Network tab, filter the XHR requests. Impressions are tracked in a
batch call while clicks are sent to Analytics using
collect. When debugging clicks on ads, make sure to enable the Preserve log option (Chrome) in the Network tab so that the call is visible also when you are forwarded to the target URL.
In the Headers section of these calls, you should scroll down to Form Data, which list all calls, the ad name, IDs, etc.
There can be multiple calls to the batch script, one for cache-busted ads and for non-cache-busted.
Issues with email reports
If emails are not sent at all, please check if your WordPress site can send them. You can either send the test email under Advanced Ads > Settings > Tracking or test if WordPress sends the email when using the password recovery function on the login screen.
If email reports are sent too often or at the wrong time, disable the Tracking plugin and re-enable it again. This will reset the cron job that schedules the report.
You can check the status of the cron jobs using the Crontrol plugin. After enabling the plugin, go to Tools > Cron Events and find advanced_ads_daily_email for the full report and advanced_ads_daily_report for the individual ad reports. You can trigger them manually for debugging.
Please notice that no ad reports are sent if you only use the Google Analytics tracking method.
Please also check if cron jobs are executed on your site at all. The mentioned Crontrol plugin can also help you with that since it lists the time when all cron jobs were last executed.
For further debugging of the reports cron jobs, you can enable the cron debug file by adding the following line to your wp.config.php.
define( 'ADVANCED_ADS_TRACKING_CRON_DEBUG', true );
This will log all cron activity under