Benchmarks
Plugin footprint 65% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | All plugins must install correctly, without throwing any errors, warnings, or notices
The plugin installed gracefully, with no errors
Server metrics [RAM: ▲2.87MB] [CPU: ▲25.54ms] Passed 4 tests
An overview of server-side resources used by Advanced Ads – Ad Manager & AdSense
This plugin has minimal impact on server resources
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 5.23 ▲1.76 | 60.99 ▲22.81 |
Dashboard /wp-admin | 6.54 ▲3.19 | 79.91 ▲20.92 |
Posts /wp-admin/edit.php | 6.66 ▲3.30 | 81.53 ▲37.41 |
Add New Post /wp-admin/post-new.php | 9.17 ▲3.28 | 124.42 ▲24.19 |
Media Library /wp-admin/upload.php | 6.51 ▲3.27 | 66.08 ▲34.23 |
Groups & Rotation /wp-admin/admin.php?page=advanced-ads-groups | 6.59 | 70.00 |
Placements /wp-admin/admin.php?page=advanced-ads-placements | 6.68 | 66.53 |
Dashboard /wp-admin/admin.php?page=advanced-ads | 6.63 | 61.76 |
Ads 0 /wp-admin/post-new.php?post_type=advanced_ads&new=new | 7.12 | 88.73 |
Settings /wp-admin/admin.php?page=advanced-ads-settings | 6.72 | 68.99 |
Import & Export /wp-admin/admin.php?page=advanced-ads-import-export | 6.65 | 58.77 |
Server storage [IO: ▲2.45MB] [DB: ▲0.03MB] Passed 3 tests
How much does this plugin use your filesystem and database?
No storage issues were detected
Filesystem: 440 new files
Database: no new tables, 12 new options
New WordPress options |
---|
widget_recent-posts |
advanced_ads_ads_txt |
db_upgraded |
widget_advads_ad_widget |
theysaidso_admin_options |
advanced-ads-internal |
advanced-ads-ad-health-notices |
advanced-ads-notices |
widget_recent-comments |
widget_theysaidso_widget |
... |
Browser metrics Passed 4 tests
An overview of browser requirements for Advanced Ads – Ad Manager & AdSense
Normal browser usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,095 ▲348 | 14.18 ▼0.16 | 2.94 ▲1.28 | 41.02 ▼0.59 |
Dashboard /wp-admin | 2,411 ▲236 | 5.60 ▼0.01 | 99.04 ▼23.40 | 83.69 ▲39.28 |
Posts /wp-admin/edit.php | 2,300 ▲200 | 2.17 ▲0.15 | 48.04 ▲9.32 | 40.07 ▲7.80 |
Add New Post /wp-admin/post-new.php | 6,244 ▲4,718 | 24.20 ▲0.99 | 929.40 ▲278.23 | 36.94 ▼15.90 |
Media Library /wp-admin/upload.php | 1,638 ▲247 | 4.25 ▲0.05 | 105.31 ▲5.41 | 47.83 ▲4.46 |
Groups & Rotation /wp-admin/admin.php?page=advanced-ads-groups | 1,541 | 2.37 | 56.36 | 77.29 |
Placements /wp-admin/admin.php?page=advanced-ads-placements | 1,707 | 2.37 | 43.66 | 85.72 |
Dashboard /wp-admin/admin.php?page=advanced-ads | 1,392 | 2.20 | 31.64 | 36.37 |
Ads 0 /wp-admin/post-new.php?post_type=advanced_ads&new=new | 4,410 | 9.45 | 222.17 | 137.61 |
Settings /wp-admin/admin.php?page=advanced-ads-settings | 2,511 | 2.39 | 46.89 | 57.72 |
Import & Export /wp-admin/admin.php?page=advanced-ads-import-export | 1,272 | 2.17 | 31.60 | 33.02 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.03MB] 50% from 4 tests
🔸 Tests weight: 35 | It is important to correctly uninstall your plugin, without leaving any traces
The following items require your attention
- This plugin did not uninstall without warnings or errors
- > Warning in wp-includes/class-wp-hook.php+310
call_user_func_array() expects parameter 1 to be a valid callback, cannot call abstract method AdvancedAds\Framework\Installation\Install::uninstall()
- The uninstall procedure has failed, leaving 12 options in the database
- widget_theysaidso_widget
- db_upgraded
- advanced-ads-ad-health-notices
- widget_recent-posts
- can_compress_scripts
- advanced-ads-adsense
- widget_advads_ad_widget
- advanced-ads-internal
- advanced_ads_ads_txt
- widget_recent-comments
- ...
Smoke tests 25% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | This is a shallow check for server-side errors
Even though everything seems fine, this is not an exhaustive test
SRP 0% from 2 tests
🔹 Tests weight: 20 | The single-responsibility principle applies for WordPress plugins as well - please make sure your PHP files perform no actions when accessed directly
The following issues need your attention
- 6× PHP files perform the task of outputting text when accessed with GET requests:
- > /wp-content/plugins/advanced-ads/admin/views/overview-addons-line.php
- > /wp-content/plugins/advanced-ads/public/views/public.php
- > /wp-content/plugins/advanced-ads/admin/views/ad-usage-metabox.php
- > /wp-content/plugins/advanced-ads/admin/views/notices/error.php
- > /wp-content/plugins/advanced-ads/admin/views/ad-list/view-list.php
- > /wp-content/plugins/advanced-ads/packages/mobiledetect/mobiledetectlib/export/exportToJSON.php
- 182× PHP files trigger errors when accessed directly with GET requests (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'Advanced_Ads_Ad_List_Filters' not found in wp-content/plugins/advanced-ads/admin/views/ad-list-filters.php:2
- > PHP Notice
Undefined variable: text in wp-content/plugins/advanced-ads/admin/views/notices/error.php on line 1
- > PHP Notice
Trying to get property 'ID' of non-object in wp-content/plugins/advanced-ads/admin/views/ad-parameters-size.php on line 4
- > PHP Fatal error
Uncaught Error: Call to undefined function esc_attr() in wp-content/plugins/advanced-ads/admin/views/notices/info.php:1
- > PHP Fatal error
Uncaught Error: Call to undefined function esc_attr() in wp-content/plugins/advanced-ads/admin/views/ad-list/shortcode.php:1
- > PHP Fatal error
Uncaught Error: Call to undefined function wp_advads() in wp-content/plugins/advanced-ads/views/admin/screens/group-form.php:9
- > PHP Notice
Undefined variable: post_types in wp-content/plugins/advanced-ads/admin/views/settings/general/disable-post-types.php on line 1
- > PHP Fatal error
Uncaught Error: Call to undefined function esc_html_e() in wp-content/plugins/advanced-ads/admin/views/upgrades/pro-tab.php:2
- > PHP Warning
include(ADVADS_ABSPATHadmin/views/ad-usage.php): failed to open stream: No such file or directory in wp-content/plugins/advanced-ads/admin/views/ad-usage-metabox.php on line 9
- > PHP Fatal error
Uncaught Error: Call to undefined function esc_html__() in wp-content/plugins/advanced-ads/admin/views/post-ad-settings-hint-metabox.php:11
- > PHP Fatal error
User-side errors 0% from 1 test
🔹 Test weight: 20 | This is a shallow check for browser errors
Please fix the following user-side errors
- 4 occurences, only the last one shown
- > GET request to /wp-admin/admin.php?page=advanced-ads-import-export
- > Javascript (severe) in unknown
/wp-admin/load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils,wp-polyfill-inert,regenerator-runtime,wp-polyfill,wp-hooks&ver=6.3.1 1:28721 Uncaught DOMException: Failed to execute 'insertBefore' on 'Node': The new child element contains the parent.
Optimizations
Plugin configuration 97% from 29 tests
readme.txt 94% from 16 tests
The readme.txt file is important because it is parsed by WordPress.org for the public listing of your plugin
Please fix the following attributes:
- Tags: Please delete some tags, you are using 12 tag instead of maximum 10
advanced-ads/advanced-ads.php Passed 13 tests
The main file in "Advanced Ads – Ad Manager & AdSense" v. 1.47.5 serves as a complement to information provided in readme.txt and as the entry point to the plugin
41 characters long description:
Manage and optimize your ads in WordPress
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | Executable files are not allowed as they can serve as attack vectors
Good job! No executable or dangerous file extensions detected35,703 lines of code in 380 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 306 | 5,933 | 15,178 | 28,083 |
JavaScript | 32 | 661 | 1,106 | 4,439 |
CSS | 4 | 119 | 116 | 1,410 |
PO File | 1 | 561 | 701 | 1,247 |
JSON | 2 | 0 | 0 | 171 |
Markdown | 6 | 53 | 0 | 136 |
SVG | 26 | 0 | 0 | 119 |
XML | 2 | 0 | 0 | 83 |
YAML | 1 | 1 | 0 | 15 |
PHP code Passed 2 tests
A brief analysis of cyclomatic complexity and code structure for this plugin
This plugin has no cyclomatic complexity problems
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.48 |
Average class complexity | 30.27 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 253.00 |
Average method complexity | 4.14 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 78.00 |
Code structure | ||
---|---|---|
Namespaces | 21 | |
Interfaces | 5 | |
Traits | 0 | |
Classes | 141 | |
▷ Abstract classes | 6 | 4.26% |
▷ Concrete classes | 135 | 95.74% |
▷ Final classes | 1 | 0.74% |
Methods | 1,378 | |
▷ Static methods | 310 | 22.50% |
▷ Public methods | 1,131 | 82.08% |
▷ Protected methods | 47 | 3.41% |
▷ Private methods | 200 | 14.51% |
Functions | 74 | |
▷ Named functions | 21 | 28.38% |
▷ Anonymous functions | 53 | 71.62% |
Constants | 80 | |
▷ Global constants | 21 | 26.25% |
▷ Class constants | 59 | 73.75% |
▷ Public constants | 59 | 100.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
PNG files should be compressed to save space and minimize bandwidth usage
27 PNG files occupy 0.25MB with 0.15MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
admin/assets/img/placements/manual.png | 13.25KB | 4.31KB | ▼ 67.47% |
admin/assets/img/placements/background.png | 5.03KB | 1.63KB | ▼ 67.60% |
admin/assets/img/tinymce-icon.png | 1.98KB | 1.30KB | ▼ 34.22% |
admin/assets/img/placements/ads-in-header.png | 6.85KB | 2.19KB | ▼ 68.10% |
admin/assets/img/output-left.png | 6.95KB | 2.75KB | ▼ 60.48% |