Remove the Ad personalisation, until or you have empty preferences or you get blocked for a while to ads preferences
// ==UserScript==
// @name Facebook Ads preferences eraser
// @namespace http://tampermonkey.net/
// @version 0.3
// @description Remove the Ad personalisation, until or you have empty preferences or you get blocked for a while to ads preferences
// @author Martino Mensio
// @match https://www.facebook.com/ds/preferences/*
// @grant none
// ==/UserScript==
/*jshint esversion: 6 */
(function() {
'use strict';
setTimeout(function() {
// alive!!!
console.log('running erasr');
// declaration of the CSS selectors
var interests_selector = 'div[id="interests"]';
var interacted_selector = 'div[id="interacted"]';
var tabs_selector = 'a[role="tab"]';
var buttons_selector = 'button[data-tooltip-content="Remove"]';
var other_buttons_selector = 'button[data-tooltip-content="Hide all ads from this advertiser"]';
// let's see if we have already run this script before (by using the search parameter "deleted"
var current_url = new URL(location.href);
var previously_removed = current_url.searchParams.get('deleted') || 0;
var total_removed = previously_removed;
console.log('previously_removed ' + total_removed);
// when it's the first run, ask if would like to start
if(!total_removed && !confirm('Delete the preferences?')) {
// terminate in this case
return;
}
// locate the vertical zones of interest (your interests and advertisers and businesses)
var zones = [document.querySelector(interests_selector), document.querySelector(interacted_selector)];
console.log(zones);
for (var z of zones) {
// expand the zone
z.click();
console.log('clicked on zone');
// conditionally test if expanded or not
if (!document.querySelectorAll(tabs_selector)) {
z.click();
}
// find the horizontal tabs of this vertical zone
var tabs = z.parentElement.querySelectorAll(tabs_selector);
console.log('found ' + tabs.length + ' tabs');
for (var t of tabs) {
// switch to the tab
t.click();
// find the "x" buttons
var buttons = document.querySelectorAll(buttons_selector);
for (var b of buttons) {
// click each one of them
b.click();
total_removed++;
}
// same as before, but in vertical zone 2 the selector is different
buttons = document.querySelectorAll(other_buttons_selector);
for (var b2 of buttons) {
b2.click();
total_removed++;
}
}
}
var msg = 'Removed ' + total_removed + ' preferences.';
// see if it is the case to reload
var do_reload = false;
if (total_removed != previously_removed) {
// if some more have been removed, ask if continue or stop
do_reload = confirm(msg + ' Reload the page to delete more?');
}
else {
// otherwise just brag to the user
alert(msg);
}
if (do_reload) {
// update the search parameter
current_url.searchParams.set('deleted', total_removed);
// and reload
location.href = current_url.href;
}
}, 10000);
})();