Benchmarks
Plugin footprint 82% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | Checking the installer triggered no errors
This plugin's installer ran successfully
Server metrics [RAM: ▲7.35MB] [CPU: ▲60.55ms] 75% from 4 tests
An overview of server-side resources used by Ad Inserter - Ad Manager & AdSense Ads
The following require your attention
- Extra RAM: Extra memory usage must be kept under 5MB (currently 7.35MB on /wp-admin/ad-inserter.php)
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 10.95 ▲7.49 | 110.22 ▲70.41 |
Dashboard /wp-admin | 10.65 ▲7.31 | 108.86 ▲43.28 |
Posts /wp-admin/edit.php | 10.71 ▲7.35 | 120.41 ▲73.17 |
Add New Post /wp-admin/post-new.php | 13.26 ▲7.36 | 148.27 ▲55.33 |
Media Library /wp-admin/upload.php | 10.60 ▲7.37 | 116.32 ▲83.02 |
Server storage [IO: ▲16.71MB] [DB: ▲0.00MB] Passed 3 tests
Filesystem and database footprint
The plugin installed successfully
Filesystem: 1,897 new files
Database: no new tables, 9 new options
New WordPress options |
---|
ai-install |
db_upgraded |
can_compress_scripts |
widget_ai_widget |
theysaidso_admin_options |
widget_recent-comments |
widget_recent-posts |
widget_theysaidso_widget |
dst_notification_times |
Browser metrics Passed 4 tests
This is an overview of browser requirements for Ad Inserter - Ad Manager & AdSense Ads
This plugin has a minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,888 ▲142 | 14.70 ▲0.35 | 5.61 ▲3.96 | 38.70 ▼5.39 |
Dashboard /wp-admin | 2,232 ▲52 | 5.67 ▲0.02 | 102.51 ▲14.80 | 75.61 ▲36.43 |
Posts /wp-admin/edit.php | 2,153 ▲53 | 2.12 ▲0.12 | 42.84 ▲6.95 | 35.45 ▲0.53 |
Add New Post /wp-admin/post-new.php | 1,727 ▲201 | 20.28 ▼3.34 | 692.89 ▲5.50 | 81.25 ▲25.53 |
Media Library /wp-admin/upload.php | 1,449 ▲49 | 4.28 ▲0.09 | 107.65 ▲6.21 | 80.39 ▲36.32 |
Ad Inserter /wp-admin/ad-inserter.php | 26 | 0.42 | 0.09 | 13.12 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 75% from 4 tests
🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
These items require your attention
- This plugin does not fully uninstall, leaving 9 options in the database
- widget_ai_widget
- widget_recent-posts
- ai-install
- theysaidso_admin_options
- can_compress_scripts
- widget_recent-comments
- widget_theysaidso_widget
- dst_notification_times
- db_upgraded
Smoke tests 50% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | A shallow check that no server-side errors were triggered
The smoke test was a success, however most plugin functionality was not tested
SRP 50% from 2 tests
🔹 Tests weight: 20 | The single-responsibility principle: PHP files have to remain inert when accessed directly, throwing no errors and performing no actions
Please fix the following items
- 808× PHP files trigger errors when accessed directly with GET requests (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'ParagonIE\\ConstantTime\\Base32' not found in wp-content/plugins/ad-inserter/includes/google-api/vendor/paragonie/constant_time_encoding/src/Base32Hex.php:33
- > PHP Fatal error
Uncaught Error: Class 'Monolog\\Formatter\ormalizerFormatter' not found in wp-content/plugins/ad-inserter/includes/google-api-8/vendor/monolog/monolog/src/Monolog/Formatter/ElasticsearchFormatter.php:21
- > PHP Fatal error
Uncaught Error: Class 'Monolog\\Handler\\AbstractProcessingHandler' not found in wp-content/plugins/ad-inserter/includes/google-api/vendor/monolog/monolog/src/Monolog/Handler/RollbarHandler.php:34
- > PHP Fatal error
Uncaught Error: Class 'Monolog\\Handler\\SocketHandler' not found in wp-content/plugins/ad-inserter/includes/google-api/vendor/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php:30
- > PHP Fatal error
Uncaught Error: Interface 'GuzzleHttp\\Event\\SubscriberInterface' not found in wp-content/plugins/ad-inserter/includes/google-api-8/vendor/google/auth/src/Subscriber/AuthTokenSubscriber.php:37
- > PHP Fatal error
Uncaught Error: Class 'phpseclib3\\Crypt\\EC\\BaseCurves\\Prime' not found in wp-content/plugins/ad-inserter/includes/google-api-8/vendor/phpseclib/phpseclib/phpseclib/Crypt/EC/Curves/prime239v1.php:21
- > PHP Fatal error
Uncaught Error: Class 'Monolog\\Handler\\AbstractProcessingHandler' not found in wp-content/plugins/ad-inserter/includes/google-api-8/vendor/monolog/monolog/src/Monolog/Handler/TestHandler.php:73
- > PHP Fatal error
Uncaught Error: Class 'Google\\Auth\\CredentialsLoader' not found in wp-content/plugins/ad-inserter/includes/google-api-8/vendor/google/auth/src/Credentials/UserRefreshCredentials.php:35
- > PHP Fatal error
Uncaught Error: Class 'Google\\Model' not found in wp-content/plugins/ad-inserter/includes/google-api-8/vendor/google/apiclient-services/src/Adsense/ContentAdsSettings.php:20
- > PHP Fatal error
Uncaught Error: Class 'Google\\Collection' not found in wp-content/plugins/ad-inserter/includes/google-api/vendor/google/apiclient-services/src/Adsense/ListLinkedAdUnitsResponse.php:20
- > PHP Fatal error
User-side errors 0% from 1 test
🔹 Test weight: 20 | This is just a short smoke test looking for browser issues
There are user-side issues you should fix
- > GET request to /wp-admin/ad-inserter.php
- > Network (severe)
wp-admin/ad-inserter.php - Failed to load resource: the server responded with a status of 404 (Not Found)
Optimizations
Plugin configuration 93% from 29 tests
readme.txt 94% from 16 tests
It's important to format your readme.txt file correctly as it is parsed for the public listing of your plugin
These attributes need your attention:
- Tags: Please reduce the number of tags, currently 12 tag instead of maximum 10
ad-inserter/ad-inserter.php 92% from 13 tests
"Ad Inserter - Ad Manager & AdSense Ads" version 2.7.32's primary PHP file adds more information about the plugin and serves as the entry point for WordPress
You should first fix the following items:
- Requires at least: Please use periods and digits for the required version (ex. "7.0" instead of "5")
Code Analysis 95% from 3 tests
File types Passed 1 test
🔸 Test weight: 35 | This is an overview of programming languages used in this plugin; dangerous file extensions are not allowed
Good job! No executable or dangerous file extensions detected217,974 lines of code in 1,318 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 1,021 | 26,316 | 71,093 | 148,727 |
JavaScript | 161 | 6,391 | 6,371 | 27,412 |
PO File | 11 | 8,404 | 11,367 | 24,468 |
Markdown | 58 | 3,751 | 0 | 10,851 |
JSON | 38 | 0 | 0 | 3,845 |
CSS | 12 | 473 | 78 | 2,259 |
YAML | 6 | 27 | 1 | 164 |
Python | 2 | 44 | 50 | 149 |
XML | 5 | 0 | 0 | 76 |
Dockerfile | 1 | 8 | 0 | 10 |
make | 1 | 4 | 0 | 9 |
Bourne Shell | 1 | 2 | 0 | 3 |
HTML | 1 | 0 | 0 | 1 |
PHP code 0% from 2 tests
This plugin's cyclomatic complexity and code structure detailed below
These items need your attention
- Cyclomatic complexity of classes should be reduced to less than 1000 (currently 2,727)
- Method cyclomatic complexity should be reduced to less than 100 (currently 642)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.43 |
Average class complexity | 15.43 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 2,727.00 |
Average method complexity | 3.73 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 642.00 |
Code structure | ||
---|---|---|
Namespaces | 83 | |
Interfaces | 90 | |
Traits | 26 | |
Classes | 1,326 | |
▷ Abstract classes | 433 | 32.65% |
▷ Concrete classes | 893 | 67.35% |
▷ Final classes | 92 | 10.30% |
Methods | 7,714 | |
▷ Static methods | 1,486 | 19.26% |
▷ Public methods | 5,899 | 76.47% |
▷ Protected methods | 847 | 10.98% |
▷ Private methods | 968 | 12.55% |
Functions | 764 | |
▷ Named functions | 465 | 60.86% |
▷ Anonymous functions | 299 | 39.14% |
Constants | 2,479 | |
▷ Global constants | 1,403 | 56.60% |
▷ Class constants | 1,076 | 43.40% |
▷ Public constants | 1,043 | 96.93% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
It is recommended to compress PNG files in your plugin to minimize bandwidth usage
31 PNG files occupy 0.17MB with 0.03MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
css/images/ui-icons_222222_256x240.png | 6.76KB | 4.17KB | ▼ 38.24% |
images/ai-amp.png | 8.67KB | 8.92KB | 0.00% |
css/images/ui-icons_cd0a0a_256x240.png | 4.44KB | 4.17KB | ▼ 6.02% |
images/ai-charts-250.png | 10.03KB | 10.29KB | 0.00% |
css/images/ui-icons_888888_256x240.png | 6.83KB | 4.17KB | ▼ 38.92% |