[HN Gopher] Show HN: Simple script to cripple personalized targe...
___________________________________________________________________
Show HN: Simple script to cripple personalized targeting from
Facebook
Author : GeoHubToday
Score : 60 points
Date : 2024-06-22 21:38 UTC (1 hours ago)
(HTM) web link (gist.github.com)
(TXT) w3m dump (gist.github.com)
| Terr_ wrote:
| Reminds me of a court case [0] proactively challenging Facebook,
| due to a time the company gave someone a lifetime ban [1] for
| making this kind of consumer-tool.
|
| [0] https://www.theregister.com/2024/05/02/meta_facebook_tool/
|
| [1] https://slate.com/technology/2021/10/facebook-unfollow-
| every...
| GeoHubToday wrote:
| A lifetime ban from Facebook would be a blessing for me :)
| junto wrote:
| Cool script.
|
| My hack is to live in a country where the local language is not
| my own, and not the one I have set in my Facebook settings.
|
| As a result, Facebook rarely has advertisements that can target
| me, because my language has been filtered out by the advertisers.
|
| When one does appear, it's nearly always in the local language,
| so I'm kind of deaf to it and I'm not going to actively respond
| to anyway.
|
| Luckily they haven't figured that out yet, even though I've been
| an Facebook user for many years.
| stavros wrote:
| My hack is to live in a country that forces Facebook to give me
| an opt-out, and then I click "no" when Facebook asks.
| useEffect wrote:
| my hack is just to not have facebook
| willcipriano wrote:
| My hack is being just young enough that having a Facebook
| would make me feel old.
| m1117 wrote:
| But I'm addicted to the feed!
| 39896880 wrote:
| Facebook makes shadow profiles of you anyway
| somat wrote:
| Then facebook gets to track my shadow self.
| rkagerer wrote:
| Does this just impact ads shown on the site, or does it also cut
| down on data collection and targeting that occurs when you browse
| to third party sites who happen to include javascript from
| Facebook?
|
| How's this technique compare to just staying logged out of
| Facebook? Or using it solely in a sandboxed browsing environment?
| GeoHubToday wrote:
| Even if you stay logged out, your data is collected from your
| mobile devices.
|
| And even if you brick your devices and pull the battery, your
| data is collected by other people's mobile devices.
|
| It all runs to data brokers in the end, and that data has a
| reliance on Facebook for additional refinement.
|
| This technique impacts that refinement step.
| jzig wrote:
| You sound like you have intimate knowledge of the landscape.
| What would be a great disruption?
| unstatusthequo wrote:
| What browser is this intended for? The below error comes up on
| Brave on MacOS. Both most up to date version.
|
| VM172:14 Uncaught TypeError: Cannot read properties of undefined
| (reading 'click') at <anonymous>:14:71 (anonymous) @ VM172:14
| GeoHubToday wrote:
| Ah, that's not a browser delay. That's an internet speed issue.
| I'll have to add more resilience to account for that. Thanks!
| grimgrin wrote:
| yeah, clicking into an advertiser has a ~5 second delay to
| /api/graphql/ at the moment. I was working on resiliency
| myself
| GeoHubToday wrote:
| Lawdy, that's a serious delay!
|
| Okay, I'll see what I can do to wait for NETWORK_IDLE or
| something
| SSLy wrote:
| Intresting, for me the link 404's This page isn't
| available The link may be broken or the Page may have been
| removed. Check to see if the link that you're trying to open is
| correct. Go to Accounts Centre
|
| also Uncaught SyntaxError: await is only valid in
| async functions, async generators and modules
| smashah wrote:
| Godspeed good sir. When those shitheads from PerkinsCoie send you
| a legal threat make sure to share and shame them for it.
| jeremiemyhren wrote:
| I get this on Safari on macOS: SyntaxError: Unexpected identifier
| 'wait'
|
| and this on Chrome on macOS: TypeError: Cannot read properties of
| undefined (reading 'click') at <anonymous>:14:71
| bqmjjx0kac wrote:
| This got a little stuck on a few of the `.click()` calls for me.
| Here's my version: const wait = () => new
| Promise(resolve => setTimeout(resolve, 1000)); const
| getElementsByAriaLabel = (label) =>
| document.querySelectorAll(`[aria-label="${label}"]`);
| const getElementsByRoleAndWidth = (role, width) => Ar
| ray.from(document.querySelectorAll(`[role="${role}"]`)).filter(el
| => el.clientWidth === width); const getElementsByText =
| (text) => Array.from(document.querySelectorAll('*')).filter(el =>
| Array.from(el.childNodes).some(node => node.nodeType ===
| Node.TEXT_NODE && node.textContent.includes(text)) );
| async function clickAndWait(elem) { if (!elem)
| return; elem.click(); await wait();
| } await clickAndWait(getElementsByText("See
| more")[0]); const ads =
| getElementsByRoleAndWidth('listitem', 508); for
| (const ad of ads) {
| console.log(ad.childNodes[0].textContent) await
| clickAndWait(ad.childNodes[0]); await
| clickAndWait(getElementsByText('They uploaded or used a list to
| reach you.')[0]); const dont_allow_btns =
| getElementsByText('Don\'t allow'); for (const btn of
| dont_allow_btns) { btn.click(); }
| await wait(); await
| clickAndWait(getElementsByAriaLabel('Back')[2]);
| await clickAndWait(getElementsByAriaLabel('Back')[2]); }
| Terr_ wrote:
| Separately, Firefox has a feature to isolate Facebook activity
| from other things you do on the web.
| stevage wrote:
| Weirdly, as much as I hate internet ads in general, I actually
| find the FB ones better. I've even bought some stuff from a few
| and been happy.
___________________________________________________________________
(page generated 2024-06-22 23:00 UTC)