I wrote something very similar for reddit a while back using an extension called Tampermonkey. Reddit uses the same CSS classes on all their promoted content so if twitter does this same this could work.
Basically, you make an eventlistener on the scroll wheel and do document.getElementsByClassName('promoted-css-class-name'). Loop over the array of elements found and set the element style to 'display:none' for every element found every time you scroll.
Oh, adding the event listener to the scroll is very clever. I was trying to do it "right" and using a MutationObserver to find when they added nodes to the document but this gets too convoluted fast.
This doesn’t work. I have blocked over 26k accounts and I still see ads. I don’t have blocked Apple or DuckDuckGo and most of the time I see those, but every single day I’m blocking more and more sponsored accounts because they keep appearing. You can’t block all of them.
Here’s my Block List. Not sure why it didn’t update for two months, maybe it doesn’t work anymore:
For promoted, you'll need to use like a browser extension or something 3rd party to remove those. I would be VERY surprised if they gave native ways like this to mute the main income source of their platform (promoted tweets/ads). haha
They have the "See this less often" option if you click the options chevron within the promoted content. I'm convinced it's a placebo feature but...that's just me.
Yeah, that (placebo), or it could mean "see this less often" of this TYPE of ad. So more about the content than the actual ad. Again, I highly doubt they are just going to let users use the platform without any ads.
My assumption is that is only for the particular ad or company and that they will just show you ads from other places instead. More of a way to nudge the system into showing you more "relevant" promoted tweets than actually removing them.
The change I've made is that I set the display of the promoted tweets to none, rather than setting their opacity to 0: article.setAttribute('style', 'display: none');