Facebook hirdetési profil kinullázása

Ma felfedeztem, hogy nagyon sok hirdetés jelenik meg a Facebook hírfolyamomban. A hirdetéseket egyrészt utálom, másrészt az esetek 99%-ban nem akkor vásárolok, amikor valaki az arcomba tolt egy hirdetést, hanem akkor, amikor szükségem van rá.

A hirdetéseket elkezdtem hát egyesével elrejteni a Facebook hírfolyamomban. A 3-4. környékén felfedeztem, hogy a lenyíló menüből el lehet jutni a Személyes hirdetési beállítások nevű felületre, ami egészen konkrétan megmutatja a hirdetési profilomat, kilistázza azokat a hozzám rendelt érdeklődési köröket, amik alapján a Facebook megjeleníti a hirdetéseket.

Úgyhogy ezeket kezdtem el törölni. Egyesével, mivel máshogy nem lehet, nincs rá még egy eldugott, halvány link sem, hogy mindent törölhessen az ember.

Viszont hamár programozó vagyok, automatizáltam a feladatot. Lépések:

  1. Navigálj Személyes hirdetési beállítások oldalra!
  2. Üss F12-t és válaszd a Console fület (Google Chrome)!
  3. Illeszd be az alábbi szkriptet a Console-ba és üss Enter-t:
     const WAIT_1 = 1000;
     const WAIT_2 = 500;
     function removeAllInterests() {
         // megkeressük a "Továbbiak" linket:
         const more = document.querySelector('._45yr');
         if (more) {
             // ha van, odagörgetünk és rákattintunk:
             more.scrollIntoView();
             more.click();
    
             // és WAIT_1 milliszek. múlva újra:
             setTimeout(removeAllInterests, WAIT_1);
         } else {
             // ha nincs, akkor a lista végén vagyunk.
             // rákattintunk minden "Eltávolítás" linkre,
             // de csak szép lassanként:
             document.querySelectorAll('[title="Eltávolítás"]')
                 .forEach((e, i, a) => {
                     setTimeout(() => {
                         console.log(`Removing ${i+1}/${a.length}`);
                         e.click();
                     }, i * 500);
                 });
         }
     }
    
  4. Válassz ki egy kategória fület a Facebook beállítási felületén, Az érdeklődési köreid dobozban!
  5. A Console-ba írd be, hogy removeAllInterests();, majd Enter
    • A program másodpercenként rákattint a Továbbiak linkre a lista alján, majd amikor az már nincs, minden egyes érdeklődési körnél rákattint az Eltávolításra.
    • Utóbbinál minden egyes kattintás között fél másodpercet vár, ugyanis azt tapasztaltam, hogy várakozás nélkül a Facebook nem dolgozza fel a szinte egyszerre érkező, többtucatnyi AJAX request mindegyikét.
  6. Ha van még kategória, akkor ismételd meg az előző 2 lépést!

Végigcsináltam minden kategóriánál, meglátjuk, mennyi hirdetés fog jönni ezután. Így néz ki a felület érdeklődési körök nélkül:

Üres érdeklődési körök

Valószínű, hogy a Facebook tevékenységem során új érdeklődési körök be fognak kerülni a profilomba, szóval néha el kell végezni a fentieket, ha tisztán akarom ezt tartani. Mindenesetre jó móka volt. 🙃

Aki még többet akar ezzel mókázni, csinálhat belőle egy GreaseMonkey/TamperMonkey userscript-et, ami akár még egy gombot is betesz a művelet elvégzésére és nem kell utána a Console-al bajlódni.

Zsolt vagyok, full-stack fejlesztő.
Crawlereket, webalkalmazásokat, statikus honlapokat és interaktív vizualizációkat készítek.
Copyright © 2019 Zsolt Jurányi | All rights reserved.