Ad Click Spam Protection script
Budget: €30 – €250 EUR
Hi, I'm looking for someone that can professionally program a "Ad Click Spam Protection" script that can be added into any PHP website.
NOTE: To filter out all the bot bidders, please solve this captcha here ''4+12 = ?' in your bid description (All bots will receive a one-start bid rating).
* Here is the the project details list for this script:
# SCRIPT - FUNCTIONALITY ->
1. If an Ad Unit is being clicked X times in X period of time by a IPv4/IPv6 address, then the script should remove the Ad Unit(s) for that IPv4/IPv6 address for X duration of time.
2. Must work with Ads that are loaded in an HTML iFrame element (for example AdSense). And should also remove the DIV with the parent ID “ad_unit_*” on a current live page and in the page rendering phase for the blocked Ad Units.
3. Has to detect a touch screen click and the left and right mouse click onto an Ad Unit.
4. Should automatically purge the old database entries.
5. A possibility to set a MySQL Table Prefix in the "configuration.php" or "config.php" file of the script.
6. Support for the FingerPrintJS script "https://github.com/fingerprintjs/fingerprintjs" (If the FingerPrintJS is enabled, then the script should only remove the Ad Unit(s) if the FingerPrint and IP Address matches).
7. Should be programed in the best possible way, to not effect the page load too much.
8. The script should be programmed in a modular way as I will expand the script with more options in future projects.
9. Needs to be compatible with PHP 8.2 and MySQL 8.4 (MariaDB 10.11) and vanilla JavaScript (No jQuery please).
# SCRIPT - WEB CONTROL PANEL ->
1. Login page to configure all the script settings below, including changing the login name and password.
2. Installing of the MySQL Script Tables by simply clicking on a button with a checkbox confirmation warning when overwriting an existing MySQL Table.
3. Setting the Ad Unit Click Limit number and the Ad Unit Time Frame and Block Duration in seconds, minutes, hours or days.
4. An Option to block all Ad Units or just the individual Ad Unit when the Click Limit was reached for an Ad Unit.
5. Display a table list of “Blocked IP Addresses” with the “Fingerprint”, “Blocked Ad Units”, “Blocked Since (Date)”.and “Blocked Until (Date)”.
6. An option to delete all the blocked IP addresses or just individual blocked IP addresses, along with an IP search box.
7. A separate section to Add or Remove permanently blocked IPv4/IPv6 addresses and IPv4/IPv6 address ranges, along with an IP search box.
8. An option to Enable and Disable the FingerPrintJS and the ability to set the script Local Path (Self Hosting) or an External URL (CDN https://openfpcdn.io/fingerprintjs/v4).
# EXTRA INFORMATION ->
Here is a demo page with two iFrame Ad Units that are placed inside a "div id=ad_unit_<number>" tag, http://nervmech.net/test/
If needed you can get full FTP access and MySQL access to the test website for live testing your script.
* Ideal Skills and Experience:
--- Strong knowledge in JavaScript programming.
--- Strong knowledge in PHP programming.
--- Strong knowledge in MySQL programming.
--- Familiarity with website security.
--- Attention to detail.
NOTE: To filter out all the bot bidders, please solve this captcha here ''4+12 = ?' in your bid description (All bots will receive a one-start bid rating).
* Here is the the project details list for this script:
# SCRIPT - FUNCTIONALITY ->
1. If an Ad Unit is being clicked X times in X period of time by a IPv4/IPv6 address, then the script should remove the Ad Unit(s) for that IPv4/IPv6 address for X duration of time.
2. Must work with Ads that are loaded in an HTML iFrame element (for example AdSense). And should also remove the DIV with the parent ID “ad_unit_*” on a current live page and in the page rendering phase for the blocked Ad Units.
3. Has to detect a touch screen click and the left and right mouse click onto an Ad Unit.
4. Should automatically purge the old database entries.
5. A possibility to set a MySQL Table Prefix in the "configuration.php" or "config.php" file of the script.
6. Support for the FingerPrintJS script "https://github.com/fingerprintjs/fingerprintjs" (If the FingerPrintJS is enabled, then the script should only remove the Ad Unit(s) if the FingerPrint and IP Address matches).
7. Should be programed in the best possible way, to not effect the page load too much.
8. The script should be programmed in a modular way as I will expand the script with more options in future projects.
9. Needs to be compatible with PHP 8.2 and MySQL 8.4 (MariaDB 10.11) and vanilla JavaScript (No jQuery please).
# SCRIPT - WEB CONTROL PANEL ->
1. Login page to configure all the script settings below, including changing the login name and password.
2. Installing of the MySQL Script Tables by simply clicking on a button with a checkbox confirmation warning when overwriting an existing MySQL Table.
3. Setting the Ad Unit Click Limit number and the Ad Unit Time Frame and Block Duration in seconds, minutes, hours or days.
4. An Option to block all Ad Units or just the individual Ad Unit when the Click Limit was reached for an Ad Unit.
5. Display a table list of “Blocked IP Addresses” with the “Fingerprint”, “Blocked Ad Units”, “Blocked Since (Date)”.and “Blocked Until (Date)”.
6. An option to delete all the blocked IP addresses or just individual blocked IP addresses, along with an IP search box.
7. A separate section to Add or Remove permanently blocked IPv4/IPv6 addresses and IPv4/IPv6 address ranges, along with an IP search box.
8. An option to Enable and Disable the FingerPrintJS and the ability to set the script Local Path (Self Hosting) or an External URL (CDN https://openfpcdn.io/fingerprintjs/v4).
# EXTRA INFORMATION ->
Here is a demo page with two iFrame Ad Units that are placed inside a "div id=ad_unit_<number>" tag, http://nervmech.net/test/
If needed you can get full FTP access and MySQL access to the test website for live testing your script.
* Ideal Skills and Experience:
--- Strong knowledge in JavaScript programming.
--- Strong knowledge in PHP programming.
--- Strong knowledge in MySQL programming.
--- Familiarity with website security.
--- Attention to detail.