AdBlock Tracker & Usergroup Swap

AdBlock Tracker & Usergroup Swap v3.0.0 Release Candidate 1

No permission to buy ($45.00)
These has been thoroughly tested and running live for over a week without issue. It's RC1 but should be fine for all users. Please do report any issues found, if any.

New Features:

  • Cache JavaScript TTL (minutes) option is now functional (default: 15); provides a large performance boost
  • Ajax routes now use XF.config for JavaScript caching; supports full-page cache for users and guests
  • New option: Enable Mobile + Browser Detection Cache (enabled by default)
  • Detection scripts now dynamically remove disabled methods from the JavaScript payload
  • Replaces old "single detection resets non-detects" option with X detections reset non-detects (default: 2)
  • Monthly cron to automatically [Reset and Delete] users with ≥ X usergroup swaps
  • New "Logging options" tab to configure what is recorded in the user change log
  • 1-hour cache added to reduce load from repeated user-agent requests
Optimizations:
  • Ajax routes overhauled to prevent tampering
  • Number of bait classes now randomized
  • Detection elements adjusted to avoid skipping from tools like AdGuard that ignore off-screen bait
  • User alerts have been restyled for better clarity
  • Displays revised with clearer instructions and descriptions
  • AdBlock Tracker log layout simplified for better readability
Fixes:
  • Validation added to ensure at least one detection method is enabled when saving options
  • JavaScript cache is busted on options save so settings apply immediately
  • Negative values no longer allowed in Flood check on clear status
  • Number boxes now use proper step values (e.g. 5 or 15)
  • Obsolete table xf_wutime_adblock_tracker_javascript deleted
  • Fixed bug where $tracker->save() was called after $tracker->delete()
  • EasyList’s full class selectors now correctly ignored during bait generation to prevent false clears
  • UglifyJS() added to build.json to properly generate min.js and replace outdated XF compiler
Install/Upgrade Behavior
  • cache_js TTL updated to 15 minutes on upgrade for all users
  • Drops xf_wutime_adblock_tracker_javascript table during upgrade
Composer Updates:
  • Crawler Detection updated from v1.3.4 to v1.3.5
  • Minification tool updated from v1.3.73 to v1.3.75

Attachments

  • Screenshot 2025-07-15 at 8.35.07 PM.webp
    Screenshot 2025-07-15 at 8.35.07 PM.webp
    68.4 KB · Views: 8
  • Screenshot 2025-07-15 at 8.35.28 PM.webp
    Screenshot 2025-07-15 at 8.35.28 PM.webp
    27.5 KB · Views: 8
  • Screenshot 2025-07-15 at 8.35.38 PM.webp
    Screenshot 2025-07-15 at 8.35.38 PM.webp
    21.5 KB · Views: 7
  • Screenshot 2025-07-15 at 8.36.00 PM.webp
    Screenshot 2025-07-15 at 8.36.00 PM.webp
    34.4 KB · Views: 6
  • Screenshot 2025-07-15 at 8.36.25 PM.webp
    Screenshot 2025-07-15 at 8.36.25 PM.webp
    22.4 KB · Views: 6
  • Screenshot 2025-07-15 at 8.37.05 PM.webp
    Screenshot 2025-07-15 at 8.37.05 PM.webp
    31.8 KB · Views: 8
  • Like
Reactions: duderuud
  • UPDATE: Crawler Detection updated from v1.3.4 to v1.3.5
  • UPDATE: Minification updated from v1.3.73 to v1.3.75
  • FIX: For the delete_entities case, removed the $tracker->save() call after $tracker->delete(), as the entity is already deleted and saving is not needed.
  • UPDATE: useFriendlyUrls for Ajax requests if useFriendlyUrls is enabled
  • UPDATE: Tracking detection code base upgraded v4.0 => v5.0
  • FIX: Error loading default EasyList if server connection fails to download from host
  • UPDATE: mobiledetect/mobiledetectlib 3.74.3
  • FIX: Remove addon version custom option value on uninstall()
  • Like
Reactions: Sal Collaziano
  • UPDATE: Refactored primary detection method to remove attack vector
  • UPDATE: Improved detection under Firefox with AdGuard, uBlock, AdBlock Plus
  • UPDATE: Update detection to include newly added variables to obfuscation array
  • UPDATE: Obfuscate reject and resolve promise methods
  • UPDATE: Obfuscate XHR and script requests
  • UPDATE: Precompile order of obfuscation array elements to be most performant prior to execution
  • UPDATE: Tracking detection code base upgraded v3.0 => v4.0
  • Like
Reactions: Stuart Wright
  • UPDATE: Detected entity to always remove the adblock group, regardless of status
    • This ensures the adblock group is fully removed (from both tracked changes and permanent groups) and the cache is rebuilt, covering all bases.
  • UPDATE: Extend the User Upgrade Service on upgrade()
    • Hooks into the upgrade process directly, ensuring adblock status is cleared when the user’s groups are updated.
    • Also manually removes the adblock group from secondary_group_ids if needed.
  • UPDATE: Crawler Detection updated to v1.3.4
  • ADD: Minified admin.min.js in _build _files now that the auto service is permanently offline
  • UPDATE: Crawler Detection updated from v1.3.0 to v1.3.2
  • FIX: Properly fix FA icon sprite rendering for XenForo v2.3.x (backwards compatible with XF 2.2.x)
  • FIX: Template modification adjustment for XenForo 2.3.6
  • FIX: Improper FA icon reference
  • Like
Reactions: Stuart Wright
  • FIX: Sorting in XF 2.3.x for Statistics
  • UPDATE: Merge all pagination/sorting to native JS
  • UPDATE: Merge all statistics pages to the same code
  • FIX: Remove XF 2.2.x and 2.3.x separate templates (everything uses same now)
Thanks @stacy.c
IMPORTANT: Future releases move to a requirement of PHP v8.0+ for performance improvements
IMPORTANT: This will be the last release to officially support PHP 7.4.x (read note at bottom)
  • UPCOMING: Better detector performance
  • UPCOMING: Improved efficiency with mobile detection
  • ADD: Improved detection of browser types
  • ADD: Improved detection when ignoring crawlers
  • UPDATE: Browser Detection v2.7.000 to v2.8.00
  • UPDATE: Crawler Detection v1.2.119 to v1.3.00
  • Requirements: PHP >=7.4 to < 8.2
Note: I will include instructions in the next release if a PHP requirement of PHP 7.4.x needs to be maintained by any customers. However, this will be provided as "use at your own risk".
  • Like
Reactions: Stuart Wright
  • NEW: Rebuild user's usergroup cache on user upgrade when removing AdBlocking
  • FIX: Rebuild user's usergroup cache on admin delete (only if in role)
  • FIX: Admin delete/reset ran logic regardless of requiring it
Back
Top Bottom