I have wondered how easy it would be to just remove Ad Tweets from the DOM.
Turns out it is pretty easy. Here is a small script
const removeAds = () => { // Get all the loaded tweets const nodes = document.querySelectorAll('[data-testid="cellInnerDiv"]'); for (let item of nodes) { // Check if it is an Ad tweet const isSpanAdPresent = Array.from(item.querySelectorAll("span")).some( (span) => span.innerText.trim() === "Ad", ); if (isSpanAdPresent) { // Delete if so item.remove(); } }};
I am not sure what to do with it yet but if I get around to it I will likely add it to a local web extension I have (which does random useful things like redirect Google Maps to use my prefferred Google account). I guess I can run it every X seconds or upon scroll.
Although it seems like the timeline sometimes crashes when using it so perhaps Twitter (understandably) has some logic to protect against users doing this.