Creator here. Tiny ads is my attempt to create a cross site ad network for hackers and side projects. It's more an experiment than a serious business venture. The idea is simple. We place a little ad on each others page with a link back to ones side project. It privacy respecting (no user tracking) and will work in the beginning by me judging which project to include into the ad network. I hope to create a positive s…
Show HN: Ad Network for Sideprojects
61–70 of 82 posts
Re: Show HN: Ad Network for Sideprojects
#62Have you considered accepting bitcoin?
Re: Show HN: Ad Network for Sideprojects
#63Earlier quoted context omitted.
The current state of the art in ad fraud detection has basically become "here is a bunch of weird random stuff, lets see if you get the right answer." That stuff is delivered by dynamic JavaScript. What you are proposing is AMP Ads and is universally hated by advertisers and publishers.
Speaking as someone who knows approximately nothing about ad fraud, what additional protections exist? The scheme you described could be easily thwarted by appropriately sandboxing their script to modify a shadow DOM instead of the real one (and countermeasures like checking the page once in awhile would just as well apply to a JSON approach).
* Buying a low-value ad (like a banner) and cramming a high-value ad (like a video) in there, and lying to the ad server about the visibility, sound, etc, using JavaScript. Sandboxing is typically stymied by a number of cross-domain limitations in real-browsers we can detect server-side.
* Buying installs for a older/hacked browser (or browser extensions) that has been scripted up to load the ads. People would embed these in screen-savers making real users visit these ad pages when the pc owner was unlikely to be around. They won't have the protection real browsers have, and so can trivially modify the network profile.
* Making a headless browser call ads on pages. These pages "look" valid, and you can visit them to see the ads, but the headless browser has collected cookies from various shopping sites, and uses a number of home/DSL proxy services to obscure detection. For any single impression, they look indistinguishable from legitimate traffic.
These are detected in different ways: JavaScript helps some for the first two, but in the second it's mostly that you're looking for bugs in the implementation (and it's just JavaScript gives you a wider search area). Usually these things are "home grown", so if you've got a wide view of the industry, and can change your scripts frequently, you can "detect" them being built in real-time.
However that last one is tricky, and outside of bugs[1], you're left with timing attacks which I won't enumerate because their obscurity is the strongest protection for continued utility, but in general they work on the principle of leaking some identifying data in HTTP and DNS responses, and relying on the fact that that headless browser needs to call lots of ads to pay for the electricity and Internet that it uses, so we get lots of opportunities for a collision.
Re: Show HN: Ad Network for Sideprojects
#64Creator here. Tiny ads is my attempt to create a cross site ad network for hackers and side projects. It's more an experiment than a serious business venture. The idea is simple. We place a little ad on each others page with a link back to ones side project. It privacy respecting (no user tracking) and will work in the beginning by me judging which project to include into the ad network. I hope to create a positive s…
Did you build this with Tailwind? If not, what UI framework did you use?
Re: Show HN: Ad Network for Sideprojects
#65Creator here. Tiny ads is my attempt to create a cross site ad network for hackers and side projects. It's more an experiment than a serious business venture. The idea is simple. We place a little ad on each others page with a link back to ones side project. It privacy respecting (no user tracking) and will work in the beginning by me judging which project to include into the ad network. I hope to create a positive s…
Nice site -- Good luck! I suggest having a native speaker of English do a once-over of your materials for editing help. Some copyediting help: FAQ: Is Tiny Ads GDPR conform? -> "conformant" (or more naturally, "Does Tiny Ads conform to GDPR?" No specific version numbers or IP addresses are saves. -> "saved" How does the blacklisting works? -> "work" It could distract our user when they want to decide to try us out ->…
Re: Show HN: Ad Network for Sideprojects
#66Tiny bit of feedback: I recommend changing the word "blacklist" to "denylist".
Re: Show HN: Ad Network for Sideprojects
#67Love the idea. Just signed up https://secalerts.co and added the script to our homepage.
Re: Show HN: Ad Network for Sideprojects
#68Earlier quoted context omitted.
Lol gotcha. As someone who runs an ad network... good luck with scaling, RIP
> good luck with scaling, RIP Why? Plenty of options to scale Postgres. What alternatives do you use?
I can't speak for Exuma, but I've built several ad networks and buying tools that needed to handle over as much as a trillion daily events, and that means lots of HTTP event collectors writing events down into a lot of otherwise independent streams that you need to merge-sort together into coherent reporting and deduplicate client retries.
In principle, anything with statement-replication (such as one of the multi-master plug-ins for Postgres) could be made to work here, but error recovery tends to be poorly considered (and users expect no downtime here) and so it's almost certainly easier to just write a log file (or let cloudfront or whatever do it), and write a custom log shipper. Dedup in a window is easy, but UPDATE on a tall skinny table even with an INDEX is slow.
If you want to materialise that in Postgres back at home-base, that can probably work. There are a lot of single-writer methods to scale Postgres. I've used Postgres for this and it's fine.
The other problem is configuration: Outside of naive impression counting, your HTTP "event collector" might also need to be smart enough to choose an ad. Naively relying on replication from your configuration database to all your nodes means it's easy to get split-brain, and you're still taking an (often unacceptable) performance hit asking the "local" Postgres server your questions -- Meeting hard-realtime guarantees consistently (usually 30-50msec) is hard for a bit of PHP and Postgres to accomplish. Usually I'll build the decision logic into the configuration payload -- actually pre-compile the decision tree (in one implementation, into C that was loaded by a openresty+lua driver every config-change) so that the code doesn't waste any time asking the database over and over for the same key that probably hasn't changed.
Erlang is also a good choice for adtech people, because it has this cluster-wide messaging, hot code reloading (good for config!), a built-in binary log (disk_log) with replication capabilities, and a in-memory database (mnesia) that is good for generating reports out of.
Re: Show HN: Ad Network for Sideprojects
#69I added my project but on the dashboard,I can't see the picture and there is no edit button ?
Yeah, the first time I tried to add, I got an error message along the lines of it not being able to reach the product URL (which is absolutely available). It wiped out my competitor URL list, so when I resubmitted, they were empty. So I created a second ad that did have the competitor list, it failed again, this time I re-added the competitor list and it seemed to go through. This all because there was no edit button…
Re: Show HN: Ad Network for Sideprojects
#70I'm very selective with the external scripts allowed on my websites. Ad networks are notorious for running malicious JavaScript on popular sites like NYTimes[1] and Yahoo[2] home pages. Any plans for an API so sites can receive ad content as JSON and display it without ever executing your external JavaScript? I might consider it for future side projects if I could npm install your client library instead of including…
> Any plans for an API so sites can receive ad content as JSON and display it without ever executing your external JavaScript? That will be a very easy target for faking impressions...