<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>EthicalAds</title><link href="/" rel="alternate"/><link href="/feeds/all.atom.xml" rel="self"/><id>/</id><updated>2026-04-23T00:00:00-07:00</updated><entry><title>EthicalAds Newsletter - April 2026</title><link href="/blog/2026/04/ethicalads-newsletter-april-2026/" rel="alternate"/><published>2026-04-23T00:00:00-07:00</published><updated>2026-04-23T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2026-04-23:/blog/2026/04/ethicalads-newsletter-april-2026/</id><summary type="html">&lt;h2 id="new-features-from-the-previous-3-months"&gt;New features from the previous 3 months&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;We are continuing to work on our &lt;a href="/advertisers/niche-targeting/"&gt;niche targeting&lt;/a&gt; and analyzer.
  However, we …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features-from-the-previous-3-months"&gt;New features from the previous 3 months&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;We are continuing to work on our &lt;a href="/advertisers/niche-targeting/"&gt;niche targeting&lt;/a&gt; and analyzer.
  However, we wanted to take some of our learnings and apply them to help all campaigns,
  even the ones that are targeted by topic or simply by geography.
  Advertisers frequently have multiple ads in their campaign and now we're using the same embeddings we use for niche targeting to select the ad we think will perform best
  based on the page context.
  It's a little early to say how this is performing, but we're expecting a small bump in performance across the network from this.&lt;/li&gt;
&lt;li&gt;We made some small improvements to make renewals even easier for advertisers
  since it's such a huge part of our business (~65%). Specifically, we have improved billing to allow advertisers to charge a card on file or request a manual invoice.&lt;/li&gt;
&lt;li&gt;Lately, there's been a bit more demand from publishers who operate their own LLMs
  and want to inject ads into LLM responses. We made some improvements specifically so these
  AI publishers can get the domain where the ad goes (something we've shown on our ads for a long time) and get an icon for the advertiser.&lt;/li&gt;
&lt;li&gt;In addition to all of this, we migrated our infrastructure from Azure to AWS.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our
&lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;
and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="q1-advertising-stats"&gt;Q1 advertising stats&lt;/h2&gt;
&lt;p&gt;Last quarter:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$161.8k&lt;/strong&gt; for our publishers and they received March's portion
  of this in a payout last week.
  At the beginning of the year, we were hoping to send $500k to publishers this year
  and it's looking like we're going to get there and then some.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;210 publishers&lt;/strong&gt; on our network with at least one paid ad impression.
  This is slowly growing and we're seeing some publishers come in from other networks to ours.
  Interestingly, the most common way they're finding us is through ChatGPT and other AI chatbots.
  We've invested a little into making ourselves more discoverable by AI
  and it appears to be paying off a bit.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;82.2M&lt;/strong&gt; paid ad views across the world.
  This is quite a bit higher than late last year and we've seen a bit of growth in global campaigns.
  We are continuing to see that in Q2.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for the next few months:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Last quarter, we launched a new &lt;a href="/blog/2026/01/announcing-a-new-larger-ad-format/"&gt;larger ad format&lt;/a&gt;.
  We're actively working on a change to make it trivial to request that format
  but fall back to our more common format if there's no matching advertiser.&lt;/li&gt;
&lt;li&gt;We're planning to surface metrics to publishers around how much of their site
  is indexed for niche targeting. The goal is to increase this by making the data
  more transparent.&lt;/li&gt;
&lt;li&gt;Because of the uptick in demand from publishers wanting to inject ads into LLM responses
  on their own sites, we're building a landing page specifically for these kind of publishers
  to explain why they should choose our network.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="/contact/"&gt;let us know&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/><category term="build-in-public"/></entry><entry><title>EthicalAds Newsletter - January 2026</title><link href="/blog/2026/01/ethicalads-newsletter-january-2026/" rel="alternate"/><published>2026-01-20T00:00:00-08:00</published><updated>2026-01-20T00:00:00-08:00</updated><author><name>David Fischer</name></author><id>tag:None,2026-01-20:/blog/2026/01/ethicalads-newsletter-january-2026/</id><summary type="html">&lt;p&gt;Normally, the later part of the year into the new year are slow times for us.
However, while traffic did …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Normally, the later part of the year into the new year are slow times for us.
However, while traffic did slow down over the holidays,
advertiser demand was higher than ever.
We continue to almost completely sold out in North America and Western Europe.&lt;/p&gt;
&lt;h2 id="new-features-from-the-previous-3-months"&gt;New features from the previous 3 months&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;We are continuing to work on our &lt;a href="/advertisers/niche-targeting/"&gt;niche targeting&lt;/a&gt; and analyzer.
  One area we focused on, although there's more work to do,
  is to break out sections of pages we analyze (called "chunking")
  and analyze more, smaller parts to improve analysis.
  This has begun rolling out to our niche targeting.&lt;/li&gt;
&lt;li&gt;We launched a new &lt;a href="/blog/2026/01/announcing-a-new-larger-ad-format/"&gt;larger ad format&lt;/a&gt;.
  We got a lot of demand for this from advertisers and  publishers. While it's rolling out more fully this month, it is the culmination of a lot of work from the last few months.&lt;/li&gt;
&lt;li&gt;One interesting thing we noticed is an uptick in demand from advertising agencies.
  Agencies have always been part of our advertiser mix, especially for large companies.
  However, there's been a noticeable increase in demand.
  We updated a number of landing pages and our prospectus to mention features agencies
  are interested in including advanced reporting features and some more complex billing.&lt;/li&gt;
&lt;li&gt;We released a &lt;a href="/prospectus/ethicalads-advertiser-prospectus.pdf"&gt;Q1 prospectus&lt;/a&gt;.
  There was a small price increase of roughly 7% in North American topic targeted content and a smaller increase in Europe.
  This was necessary since we're seeing demand there far more than we can currently fill.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="postimage text-center"&gt;
  &lt;img class="w-100 shadow-lg" src="/images/posts/2026-larger-ad-format-example.png" alt="Example of a larger format ad"&gt;
  &lt;p&gt;Example of the new larger ad format&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;You can always see our latest server updates in our
&lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;
and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="q4-advertising-stats"&gt;Q4 advertising stats&lt;/h2&gt;
&lt;p&gt;Last quarter:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$124.3k&lt;/strong&gt; for our publishers and they received December's portion
  of this in a payout last week.
  We are on track to send over half a million dollars to publishers in 2026.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;195 publishers&lt;/strong&gt; on our network with at least one paid ad impression.
  This is slowly growing and we're seeing some publishers come in from other networks to ours.
  Interestingly, the most common way they're finding us is through ChatGPT and other AI chatbots.
  We've invested a little into making ourselves more discoverable by AI
  and it appears to be paying off a bit.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;66.3M&lt;/strong&gt; paid ad views across the world.
  This is a little higher than Q3 2025 but mostly due to some global campaigns.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for the next few months:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We've invested a lot in our niche targeting and analyzer we use for contextual targeting.
  One big upcoming goal is to make more of the features we've built for niche targeting
  more broadly applicable to our regular targeting to try to get better performance
  out of all the campaigns we run.&lt;/li&gt;
&lt;li&gt;We're planning to surface metrics to publishers around how much of their site
  is indexed for niche targeting. The goal is to increase this by making the data
  more transparent.&lt;/li&gt;
&lt;li&gt;While renewals are a huge part of our business (over 65%)
  and we've made this much better than in the past,
  we believe we can make the renewal process even easier for our advertisers.
  We have a few more features around renewal billing and management to simplify the process for our recurring advertisers.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="/contact/"&gt;let us know&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/><category term="build-in-public"/></entry><entry><title>Announcing a New Larger Ad Format</title><link href="/blog/2026/01/announcing-a-new-larger-ad-format/" rel="alternate"/><published>2026-01-09T00:00:00-08:00</published><updated>2026-01-09T00:00:00-08:00</updated><author><name>David Fischer</name></author><id>tag:None,2026-01-09:/blog/2026/01/announcing-a-new-larger-ad-format/</id><summary type="html">&lt;p&gt;This month, we're launching a new, larger ad format.
We've heard from advertisers that our existing formats can sometimes feel …&lt;/p&gt;</summary><content type="html">&lt;p&gt;This month, we're launching a new, larger ad format.
We've heard from advertisers that our existing formats can sometimes feel too small
to fully tell their story. At the same time, some publishers have layouts that can comfortably support a larger placement, and they're looking for ways to earn more than our &lt;a href="/advertisers/ad-design-and-specs/"&gt;standard formats&lt;/a&gt; allow.&lt;/p&gt;
&lt;p&gt;This new format is completely opt-in for both advertisers and publishers.
Advertisers can enable it as an add-on to an existing campaign,
while publishers only need to make a small change to how they request ads from us.
Nothing is being replaced or changed by default.
We're simply offering more flexibility and a new option for those who want it.&lt;/p&gt;
&lt;div class="postimage text-center"&gt;
  &lt;img class="w-100 shadow-lg" src="/images/posts/2026-larger-ad-format-example.png" alt="Example of a larger format ad"&gt;
  &lt;p&gt;Example ad using this larger ad format&lt;/p&gt;
&lt;/div&gt;

&lt;h2 id="specs"&gt;Specs&lt;/h2&gt;
&lt;p&gt;The only differences from our &lt;a href="/advertisers/ad-design-and-specs/"&gt;ad specs&lt;/a&gt; are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The text can be up to 240 characters&lt;/li&gt;
&lt;li&gt;The logo, which is optional, should be a single color and is 160x60 pixels.
  It needs to be a single color to accommodate both light and dark mode sites.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="pricing"&gt;Pricing&lt;/h2&gt;
&lt;p&gt;Initial pricing for this format is set at 2× our &lt;a href="/advertisers/pricing/"&gt;standard ad rates&lt;/a&gt;,
reflecting the increased size and prominence of the placement.
For publishers, this translates directly into &lt;strong&gt;earning double&lt;/strong&gt; what they would from our standard ad formats.
Advertisers get the same high-quality contextual and geo-targeting they expect today but with more space to tell their story.&lt;/p&gt;
&lt;h2 id="getting-started"&gt;Getting started&lt;/h2&gt;
&lt;p&gt;If you're a publisher interested in earning more from your existing inventory,
just send us a &lt;a href="https://server.ethicalads.io/accounts/support/?subject=Larger+ad+format"&gt;support request&lt;/a&gt; and we'll walk you through the details.&lt;/p&gt;
&lt;p&gt;If you're an advertiser, whether you're already running campaigns with us or considering your first one,
we'd love to help you &lt;a href="/advertisers/#inbound-form"&gt;launch a campaign&lt;/a&gt; using this new, larger format.&lt;/p&gt;</content><category term="posts"/><category term="publishers"/><category term="advertisers"/><category term="announcement"/></entry><entry><title>EthicalAds Newsletter - October 2025</title><link href="/blog/2025/10/ethicalads-newsletter-october-2025/" rel="alternate"/><published>2025-10-13T00:00:00-07:00</published><updated>2025-10-13T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2025-10-13:/blog/2025/10/ethicalads-newsletter-october-2025/</id><summary type="html">&lt;p&gt;This is our first update after switching to the quarterly cadence.
There will be a bit more to say and …&lt;/p&gt;</summary><content type="html">&lt;p&gt;This is our first update after switching to the quarterly cadence.
There will be a bit more to say and the numbers will be bigger because they cover 3 months.
However, you can expect the same level of transparency about the network we're building.
The next update will come early next year.&lt;/p&gt;
&lt;h2 id="new-features-from-the-previous-quarter"&gt;New features from the previous quarter&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Some of the improvements we made earlier this year around reporting on campaigns for larger advertisers
  has paid off as a few more advertisers have started using it.
  Larger advertisers have different wants than smaller advertisers: they're running more campaigns in more places
  and they want to see it all in one place. They want performance data in their own system.&lt;/li&gt;
&lt;li&gt;We continued to make improvements to our &lt;a href="/advertisers/niche-targeting/"&gt;niche targeting&lt;/a&gt;.
  A big breakthrough that has helped a lot with classifying content is to group pages by domains
  where we can (many, but not all domains cover similar content),
  and then classify new content based on similarity to these domains.
  This can make ad targeting into a problem of showing the right ad based on domains an advertiser wants to target
  while still being flexible enough to add new relevant content to their targeting.&lt;/li&gt;
&lt;li&gt;We published a &lt;a href="/blog/2025/10/doing-math-with-embeddings-for-better-ai-ad-targeting/"&gt;tech-focused blog&lt;/a&gt;
  on this classification and domains and how new language models
  have made this process much more powerful.&lt;/li&gt;
&lt;li&gt;We released an &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/index.html#adaptive-color-scheme"&gt;automatic light-dark mode&lt;/a&gt; on our ad client.
  We already supported pages with dark mode, but this change helps toggle ads automatically
  for sites that use a UI to toggle their theme between light and dark mode.&lt;/li&gt;
&lt;li&gt;A lot of advertiser campaigns are renewed month to month or quarter to quarter.
  We have greatly simplified this process for advertisers who want to do that.
  Renewing an existing campaign can be totally automated for the advertiser
  or even if there's a gap before the renewal, the advertiser can now do it with 1 button.&lt;/li&gt;
&lt;li&gt;We released a &lt;a href="/prospectus/ethicalads-advertiser-prospectus.pdf"&gt;Q4 prospectus&lt;/a&gt;.
  There was a small price increase of roughly 5% in North American topic targeted content.
  We have been consistently sold out or close to it in North America for the last few quarters.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="postimage text-center"&gt;
  &lt;video class="w-100" controls&gt;
    &lt;source src="/video/light-dark-mode.mp4" type="video/mp4"&gt;
  &lt;/video&gt;
  &lt;p&gt;Video showing the automatic light-dark mode feature for the ad client&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;You can always see our latest server updates in our
&lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;
and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="q3-advertising-stats"&gt;Q3 advertising stats&lt;/h2&gt;
&lt;p&gt;Just a reminder that these stats are now for the quarter. I'll post a bit of detail here about how it compares with the monthly stats we previously reported.&lt;/p&gt;
&lt;p&gt;Last quarter:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$116.7k&lt;/strong&gt; for our publishers and they'll receive September's portion of this in a payout this week.
  Despite reporting numbers quarterly, we are continuing to pay publishers monthly.
  This number is roughly in-line with previously monthly numbers.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;187 publishers&lt;/strong&gt; on our network with at least one paid ad impression.
  This is slowly growing and the trickiest thing is finding high quality publishers
  who are as good for advertisers as the rest of the publishers on our network.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;56.6M&lt;/strong&gt; paid ad views across the world.
  On a monthly basis, this is very similar to what we reported previously.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We are seeing strong demand across our network and we are seeing very robust demand
from advertisers especially for North America and Western Europe.&lt;/p&gt;
&lt;div class="postimage text-center" id="chart"&gt;
  &lt;iframe height="525" class="w-100 shadow-lg border-0"
  src="https://observablehq.com/embed/34e5f0a6a04bbf16@117?cells=plot"&gt;&lt;/iframe&gt;
  &lt;p&gt;This graph highlights some of the improvements we're making to niche targeting. This was taken from our &lt;a href="/blog/2025/10/doing-math-with-embeddings-for-better-ai-ad-targeting/"&gt;blog&lt;/a&gt; on domains classification and clustering.&lt;/p&gt;
&lt;/div&gt;

&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for the rest of the year:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;As I mentioned, we're still making improvements constantly to our analyzer and to our niche targeting.
  One thing coming is we're going to start surfacing to publishers how much of their site has been
  analyzed for niche targeting. Since niche targeted campaigns are some of our highest demand and highest priced
  campaigns, this will give publishers an incentive to help get their sites analyzed.
  Sites can not be analyzed for a few reasons like the publisher blocks automated traffic
  or just challenges we need to work through for specific sites.&lt;/li&gt;
&lt;li&gt;Another big change we're planning to make is to make our analyzer better
  at processing smaller chunks of pages where ads appear.&lt;/li&gt;
&lt;li&gt;We've started to receive some publisher inquiries from developer AI tools.
  We believe this is a growth area for us although we aren't yet sure what the best way to serve these folks is.
  In a lot of cases, there aren't "pages" to analyze and instead there's interactions with AI agents or models
  and choosing the best ad to show depends on what users are asking the AI.
  We're exploring options about great ways to help these publishers monetize their AI tools.
  This may become a priority over the next few months.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="/contact/"&gt;let us know&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/><category term="build-in-public"/></entry><entry><title>Doing Math with Embeddings for Better AI Ad Targeting</title><link href="/blog/2025/10/doing-math-with-embeddings-for-better-ai-ad-targeting/" rel="alternate"/><published>2025-10-08T00:00:00-07:00</published><updated>2025-10-08T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2025-10-08:/blog/2025/10/doing-math-with-embeddings-for-better-ai-ad-targeting/</id><summary type="html">&lt;p&gt;Large language models and their adjacent tools are evolving fast
and they are a powerful way to improve content classification …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Large language models and their adjacent tools are evolving fast
and they are a powerful way to improve content classification,
which is great when you're building a contextual ad network that doesn't track people.
However, LLM prompts and responses can be inconsistent or unpredictable.
We've taken a more reliable approach.
By using (more) deterministic embeddings and creating centroids with related embeddings,
we were able to sharpen up our targeting
and boost performance with less guesswork without relying on any user-specific data.&lt;/p&gt;
&lt;h2 id="historical-context-and-scaling-topic-classification"&gt;Historical context and scaling topic classification&lt;/h2&gt;
&lt;p&gt;First, a little bit of background.
A few years back, we built &lt;a href="https://www.ethicalads.io/blog/2022/11/a-new-approach-to-content-based-targeting-for-advertising/"&gt;our first topic classifier&lt;/a&gt;
that essentially bundled content and keywords together into topics that advertisers could target and buy
similar to what they do for search ads.
To give an example, this allowed advertisers to target DevOps related content with relevant ads.
This approach scaled well up to about 10-15 topics
and gave advertisers an easily understandable way to get good contextual targeting for their campaigns.&lt;/p&gt;
&lt;p&gt;Last year, we built a more advanced way to target content using language model embeddings,
a strategy we called &lt;a href="/advertisers/niche-targeting/"&gt;niche targeting&lt;/a&gt;
(see our &lt;a href="/blog/2024/04/using-embeddings-in-production-with-postgres-django-for-niche-ad-targeting/"&gt;blog&lt;/a&gt; with more dev details).
It works by comparing embedding vectors to find pages semantically similar to an advertiser's landing or product page.
The results were strong, about 25% better performance on average, but scale was a challenge.
There simply weren't enough very closely related pages to build large campaigns.
Also, while the results were great, explaining embeddings to marketers proved difficult,
making the approach harder to sell despite its effectiveness.&lt;/p&gt;
&lt;div class="postimage text-center" id="chart"&gt;
  &lt;iframe height="525" class="w-100 shadow-lg border-0"
  src="https://observablehq.com/embed/34e5f0a6a04bbf16@117?cells=plot"&gt;&lt;/iframe&gt;
&lt;/div&gt;

&lt;h2 id="hybrid-approach-with-embedding-centroids"&gt;Hybrid approach with embedding centroids&lt;/h2&gt;
&lt;p&gt;After generating embeddings for nearly a million pages across our network,
clear clusters of related content began to emerge.
Looking at the &lt;a href="#chart"&gt;graph above&lt;/a&gt;, you can see that URLs for &lt;a href="https://pylint.readthedocs.io"&gt;PyLint&lt;/a&gt;
are close and even somewhat overlapping with those of &lt;a href="https://eslint.org"&gt;ESLint&lt;/a&gt;.
URLs for &lt;a href="https://flask.palletsprojects.com"&gt;Flask&lt;/a&gt; and &lt;a href="https://www.djangoproject.com"&gt;Django&lt;/a&gt;,
two Python web frameworks, form a pretty tight cluster.
And web scraping tools like &lt;a href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/"&gt;BeautifulSoup&lt;/a&gt;
and &lt;a href="https://docs.scrapy.org"&gt;Scrapy&lt;/a&gt; are also very close
showing that embeddings are really capturing the semantic meaning.&lt;/p&gt;
&lt;p&gt;One of the powerful things about embeddings is that you can apply ordinary math to them,
like averaging a group of vectors.
A &lt;strong&gt;centroid&lt;/strong&gt; is exactly that: the mean of a set of related embeddings.
For example, averaging paragraph embeddings can yield a strong representation of an entire page,
and averaging page embeddings often produces a good vector for a domain.
In the graph above, the small circles represent individual web pages
while the larger circles represent these domain centroids,
the semantic center of the pages for each domain.&lt;/p&gt;
&lt;p&gt;New content that's semantically related to domains we've already classified
will land near that content in embedding space
(the &lt;a href="#chart"&gt;chart&lt;/a&gt; reduces this to 2d space, but imagine 100s of dimensions).
This lets us easily answer questions like
"what domains are most closely related to a new domain we're classifying?" or
"how 'Flask-ey' is this new content?".
It also scales to any number of clusters of closely related content.&lt;/p&gt;
&lt;p&gt;Like our earlier topic classifier, this allows us to target ads to content advertisers care about.
But unlike the old model, this approach just requires a few URLs or domains
with the kinds of content an advertiser wants to target.
It's also far easier to explain this type of classification to advertisers:
"we target your ads to the most similar domains across our network based on your landing pages or other URLs you provide"
is easy to understand &lt;em&gt;and&lt;/em&gt; it works pretty well.&lt;/p&gt;
&lt;h2 id="show-me-the-code"&gt;Show me the code!&lt;/h2&gt;
&lt;p&gt;To show some concrete code examples, here's code to generate a domain centroid
from URL embeddings with &lt;a href="https://github.com/pgvector/pgvector-python"&gt;pgvector&lt;/a&gt; and Django:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;django.db&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;models&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;.models&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;UrlEmbedding&lt;/span&gt;

&lt;span class="n"&gt;UrlEmbedding&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;objects&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="c1"&gt;# Store the model the embedding is for&lt;/span&gt;
    &lt;span class="c1"&gt;# This lets you easily swap the model down the road&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exclude&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;vector__isnull&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;values&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;domain&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;annotate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;centroid&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;models&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Avg&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;vector&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;When classifying new pages, it's easy to see how similar the new content's embedding is
to domains where we already have an embedding.
From there, domains can be classified and grouped into topics that advertisers are interested in
although we have found that taking centroids of multiple domains frequently doesn't make sense.
Two web frameworks across different languages may be somewhat far in embedding space
although content very close to either of them is usually a good semantic match.&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;pgvector.django&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;CosineDistance&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;.models&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;DomainCentroid&lt;/span&gt;

&lt;span class="c1"&gt;# New embedding to compare to previously classified domains&lt;/span&gt;
&lt;span class="n"&gt;vector&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;1.457664e-02&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  &lt;span class="mf"&gt;3.473443e-02&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;...&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="c1"&gt;# Closer than this threshold implies the content is related.&lt;/span&gt;
&lt;span class="c1"&gt;# This threshold differs based on your embedding model&lt;/span&gt;
&lt;span class="n"&gt;distance_threshold&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;0.40&lt;/span&gt;

&lt;span class="n"&gt;DomainCentroid&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;objects&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;all&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;annotate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;distance&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;CosineDistance&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;vector&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;vector&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;distance__lte&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;distance_threshold&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;order_by&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;distance&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;This approach offers the best of both worlds.
It has the semantic depth of embeddings, far beyond what simple keywords can capture,
with the clarity and explainability closer to keyword-style targeting.
It scales to anything an advertiser might want to target
since new pages and domains just get embeddings and are automatically matched
to the right clusters of domains and topics.&lt;/p&gt;
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;From the moment we started using embeddings for contextual ad targeting,
we recognized they had great potential for improving performance for advertisers.
Better ad performance means we can generate more money for the sites that host our ads
which is a great virtuous cycle.&lt;/p&gt;
&lt;p&gt;With this approach using centroids, we hope to have another virtuous cycle
where our classifications improve over time as we classify more content.&lt;/p&gt;
&lt;p&gt;Simon Willison's &lt;a href="https://simonwillison.net/2023/Oct/23/embeddings/"&gt;blog post on embeddings&lt;/a&gt;
as well as some of his other posts and presentations have been very influential
in honing our approach. Thanks Simon!&lt;/p&gt;</content><category term="posts"/><category term="content-targeting"/><category term="engineering"/><category term="postgresql"/></entry><entry><title>EthicalAds Newsletter - August 2025</title><link href="/blog/2025/08/ethicalads-newsletter-august-2025/" rel="alternate"/><published>2025-08-12T00:00:00-07:00</published><updated>2025-08-12T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2025-08-12:/blog/2025/08/ethicalads-newsletter-august-2025/</id><summary type="html">&lt;p&gt;Before I dive into the monthly update, going forward,
we'll be switching to having these updates quarterly instead of monthly …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Before I dive into the monthly update, going forward,
we'll be switching to having these updates quarterly instead of monthly.
This will mean there's fewer, larger updates but we're hoping it makes it easier to keep up-to-date
with our progress on building a more transparent ad network.
Expect the next update in early October.&lt;/p&gt;
&lt;h2 id="new-features-from-the-previous-month"&gt;New features from the previous month&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;We made a number of improvements to our &lt;a href="/advertisers/niche-targeting/"&gt;niche targeting&lt;/a&gt;
  and we're going to update our topic classifier
  to use AI model embeddings to classify similar content for advertisers.&lt;/li&gt;
&lt;li&gt;We made a lot of effort classifying the long tail of content across our network,
  tons of developer topics can support small but highly focused niche targeting ad campaigns.
  We've run campaigns focused on such niches as application security testing,
  PDF document extraction, web scraping, Jupyter notebooks, and many more.
  For advertisers who need pretty fine targeting like what they'd get for search ads,
  this is a great option.&lt;/li&gt;
&lt;li&gt;We released a new version of our ad client that allows for much easier customization by publishers
  using CSS properties.
  See the &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/index.html#customizing-styles"&gt;ad client docs&lt;/a&gt; for details.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our
&lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;
and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="july-advertising-stats"&gt;July advertising stats&lt;/h2&gt;
&lt;p&gt;Last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$48,030.42&lt;/strong&gt; for our publishers and they'll receive this in a payout this week.
  This was a healthy increase from June.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;182 publishers&lt;/strong&gt; on our network with at least one paid ad impression.
  This has been slowly creeping up and we've been seeing strong demand for our kind of network from publishers.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;22,164,099&lt;/strong&gt; paid ad views across the world another sizeable increase.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We are seeing strong demand across our network. August started a bit slow for a few days
but we're expecting strong demand through the rest of the month.
There will be some small openings in Europe and in regions beyond North America and Western Europe.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for August:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We are working on an improvement to have an automatic light-dark mode on our ad client.
  This already works using &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme"&gt;"prefers-color-scheme"&lt;/a&gt;
  but this upcoming change will make it work better sites that use a light and dark mode UI toggle.&lt;/li&gt;
&lt;li&gt;We haven't yet finished our upcoming content piece explaining more about how we're using embedding models
  for niche targeting and how off-the-shelf LLMs can improve that.
  We're still experimenting a lot and didn't want to publish a blog detailing our approach
  as we're still working on lots of improvements.&lt;/li&gt;
&lt;li&gt;As I mentioned, we're still making improvements constantly to our analyzer and to our niche targeting.
  The big upcoming change is that we're actively working on improving our topic classifier
  that classifies pages across our network into &lt;a href="/advertisers/#audiences"&gt;audiences&lt;/a&gt;
  we sell to advertisers. This will now classify using similarity techniques that we're refining for niche targeting. We're very excited to talk about this in more detail as it works pretty well.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="/contact/"&gt;let us know&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/><category term="build-in-public"/></entry><entry><title>EthicalAds on Catchy's Bits &amp; Bants - A Dev Marketing Podcast</title><link href="/blog/2025/07/ethicalads-on-catchys-bits-bants-a-dev-marketing-podcast/" rel="alternate"/><published>2025-07-17T00:00:00-07:00</published><updated>2025-07-17T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2025-07-17:/blog/2025/07/ethicalads-on-catchys-bits-bants-a-dev-marketing-podcast/</id><summary type="html">&lt;p&gt;Long time friends of the network &lt;a href="https://www.catchyagency.com"&gt;Catchy&lt;/a&gt; had me on their podcast Bits and Bants
to talk about developer marketing …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Long time friends of the network &lt;a href="https://www.catchyagency.com"&gt;Catchy&lt;/a&gt; had me on their podcast Bits and Bants
to talk about developer marketing, adblockers, and how AI is and will continue to transform ad targeting and advertising more generally.&lt;/p&gt;
&lt;p&gt;Catchy is a fantastic marketing agency really focused on reaching developers and getting results for their clients through both traditional and nontraditional channels. They've been great to work with on a number of campaigns.&lt;/p&gt;
&lt;div class="postimage text-center "&gt;
  &lt;div class="embed-responsive embed-responsive-16by9"&gt;
    &lt;iframe class="embed-responsive-item" src="https://www.youtube-nocookie.com/embed/1VHtp_M93_8?si=NVu6FXC6zsRp7Ncu" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen&gt;&lt;/iframe&gt;
  &lt;/div&gt;
  &lt;p&gt;Catchy's Bits and Bants with David Fischer of EthicalAds&lt;/p&gt;
&lt;/div&gt;</content><category term="posts"/><category term="devmarketing"/><category term="marketing"/><category term="content-targeting"/><category term="ai"/></entry><entry><title>EthicalAds Newsletter - July 2025</title><link href="/blog/2025/07/ethicalads-newsletter-july-2025/" rel="alternate"/><published>2025-07-15T00:00:00-07:00</published><updated>2025-07-15T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2025-07-15:/blog/2025/07/ethicalads-newsletter-july-2025/</id><summary type="html">&lt;h2 id="new-features-from-the-previous-month"&gt;New features from the previous month&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;We released a number of improvements to our analyzer that we use for &lt;a href="/advertisers/niche-targeting/"&gt;niche …&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features-from-the-previous-month"&gt;New features from the previous month&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;We released a number of improvements to our analyzer that we use for &lt;a href="/advertisers/niche-targeting/"&gt;niche targeting&lt;/a&gt;.
  By combining our approach with off-the-shelf embedding models, we were able to &lt;em&gt;significantly&lt;/em&gt;
  increase the percent of our network that can be targeted with niche targeting and greatly increase our inventory
  for a number of niches.&lt;/li&gt;
&lt;li&gt;We released a new &lt;a href="/prospectus/ethicalads-advertiser-prospectus.pdf"&gt;prospectus for Q3&lt;/a&gt;.
  There were some small price increases primarily in North America to balance our demand.
  We are also releasing &lt;a href="/advertisers/pricing/"&gt;pricing&lt;/a&gt; for niche targeting in more regions.&lt;/li&gt;
&lt;li&gt;I appeared on a &lt;a href="https://www.youtube.com/watch?v=1VHtp_M93_8"&gt;podcast&lt;/a&gt;
  with &lt;a href="https://www.catchyagency.com/"&gt;Catchy&lt;/a&gt;,
  a fantastic marketing agency we've worked with on a number of campaigns.
  We talked about developer marketing, ad blockers, and how AI will transform ad targeting and advertising generally.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our
&lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;
and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="june-advertising-stats"&gt;June advertising stats&lt;/h2&gt;
&lt;p&gt;Last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$37,589.22&lt;/strong&gt; for our publishers and they'll receive this in a payout today.
  This was pretty similar with May.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;181 publishers&lt;/strong&gt; on our network with at least one paid ad impression.
  This has been slowly creeping up and we've been seeing strong demand for our kind of network from publishers.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;18,357,814&lt;/strong&gt; paid ad views across the world. This was pretty flat compared with last month.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Demand seems to be extremely strong in North America which is why we enacted a small price increase there.
There are still some openings in Europe although there's been a lot of good campaigns there too.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for July:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In July or early August, we hope to have a content piece explaining more about how we're using embedding models
  for niche targeting and how off-the-shelf LLMs can improve that.&lt;/li&gt;
&lt;li&gt;We're still making improvements constantly to our analyzer and to our niche targeting.
  This is going to be a big focus over the next few months.&lt;/li&gt;
&lt;li&gt;We have some styling improvements prepared on our ad client that publishers can use to better style ads
  on their site using CSS properties (here's the &lt;a href="https://github.com/readthedocs/ethical-ad-client/pull/219"&gt;PR&lt;/a&gt;).
  This has been on the to-do list, and is nearly done.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="/contact/"&gt;let us know&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/><category term="build-in-public"/></entry><entry><title>EthicalAds Newsletter - June 2025</title><link href="/blog/2025/06/ethicalads-newsletter-june-2025/" rel="alternate"/><published>2025-06-05T00:00:00-07:00</published><updated>2025-06-05T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2025-06-05:/blog/2025/06/ethicalads-newsletter-june-2025/</id><summary type="html">&lt;h2 id="new-features-from-the-previous-month"&gt;New features from the previous month&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;We rolled out a number of optimizations to our aggregations and reports based on …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features-from-the-previous-month"&gt;New features from the previous month&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;We rolled out a number of optimizations to our aggregations and reports based on the
  &lt;a href="/blog/2025/02/duckdb-and-postgresql-make-a-great-pair-for-analytical-processing/"&gt;improvements we built with DuckDB&lt;/a&gt;.
  Our reports are both faster and more robust and the data that generates these on a periodic basis
  (mostly nightly but some more frequently) are much faster and have a much lower rate of having to be re-run.&lt;/li&gt;
&lt;li&gt;We have rolled out an improvement to invoicing for advertisers who are automatically renewing campaigns.
  For a little while now, we have had a 10% discount for auto-renewing campaigns. Now it's possible for these
  invoices to be automatically created and billed to a card on file
  (paying manually with a bank transfer is still possible). This smoothes this process for recurring advertisers.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our
&lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;
and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="may-advertising-stats"&gt;May advertising stats&lt;/h2&gt;
&lt;p&gt;Last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$37,937.94&lt;/strong&gt; for our publishers and they'll receive this in a payout by the 15th.
  This was a bit higher than April but only slightly and about what's expected given the extra day in the month.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;178 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;18,679,646&lt;/strong&gt; paid ad views across the world. This was pretty flat compared with April.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We are seeing very strong demand across North America and pretty robust demand but with some openings
in Europe and Oceania.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for June:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We are actively working on some improvements to our analyzer that we use for &lt;a href="/advertisers/niche-targeting/"&gt;niche targeting&lt;/a&gt;.
  We are hoping to make it easier to use off the shelf models and LLM APIs in addition to ones we train.
  The goal is to be able to swap and rerun all the pages where our ads appear through a model quickly.&lt;/li&gt;
&lt;li&gt;We have some styling improvements prepared on our ad client that publishers can use to better style ads
  on their site using CSS properties (here's the &lt;a href="https://github.com/readthedocs/ethical-ad-client/pull/219"&gt;PR&lt;/a&gt;).
  The goal was to roll this out in May, but it will happen in June.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="/contact/"&gt;let us know&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/><category term="build-in-public"/></entry><entry><title>EthicalAds Newsletter - May 2025</title><link href="/blog/2025/05/ethicalads-newsletter-may-2025/" rel="alternate"/><published>2025-05-12T00:00:00-07:00</published><updated>2025-05-12T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2025-05-12:/blog/2025/05/ethicalads-newsletter-may-2025/</id><summary type="html">&lt;h2 id="new-features-from-the-previous-month"&gt;New features from the previous month&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;We rolled out two-factor authentication on our adserver for both publishers and advertisers
  as …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features-from-the-previous-month"&gt;New features from the previous month&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;We rolled out two-factor authentication on our adserver for both publishers and advertisers
  as an opt-in feature. This was requested primarily by developer publishers
  and we are supporting both TOTP authenticator codes as well as backup one-time codes.&lt;/li&gt;
&lt;li&gt;We build a change where advertisers can set a daily cap on their ad buys.
  In many cases, this isn't necessary because our ad server already paces campaigns over
  the length of their campaign, but it can be useful in cases where campaigns are paused
  or when there's a prolonged period of low fill rate (eg. holidays).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our
&lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;
and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="april-advertising-stats"&gt;April advertising stats&lt;/h2&gt;
&lt;p&gt;Last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$37,346.21&lt;/strong&gt; for our publishers and they'll receive this in a payout next week.
  April ended up pretty close to March in terms of revenue.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;177 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;18,849,912&lt;/strong&gt; paid ad views across the world. This is down a bit from last month mostly due to reduced global buys.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;April started to pick up toward the end of the month and I'm expecting May
to be a bit higher than April.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for May:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Following up on the &lt;a href="/blog/2025/02/duckdb-and-postgresql-make-a-great-pair-for-analytical-processing/"&gt;improvements we built with DuckDB&lt;/a&gt;,
  we are building a number of improvements to the aggregated data that we show to advertisers and publishers.
  This should make a lot of our reports faster both on our dashboard and to generate the data that goes into them.&lt;/li&gt;
&lt;li&gt;We are working to improve our automated renewals for advertisers.
  Currently, advertisers can set campaigns to automatically renew
  but we are working on improvements to automate the billing around those campaigns.&lt;/li&gt;
&lt;li&gt;We have some styling improvements prepared on our ad client that publishers can use to better style ads
  on their site using CSS properties (here's the &lt;a href="https://github.com/readthedocs/ethical-ad-client/pull/219"&gt;PR&lt;/a&gt;).
  This will roll out in May.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="/contact/"&gt;let us know&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/><category term="build-in-public"/></entry><entry><title>EthicalAds Newsletter - April 2025</title><link href="/blog/2025/04/ethicalads-newsletter-april-2025/" rel="alternate"/><published>2025-04-15T00:00:00-07:00</published><updated>2025-04-15T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2025-04-15:/blog/2025/04/ethicalads-newsletter-april-2025/</id><summary type="html">&lt;h2 id="new-features-from-the-previous-month"&gt;New features from the previous month&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;We released our &lt;a href="https://www.ethicalads.io/prospectus/ethicalads-advertiser-prospectus.pdf"&gt;Q2 advertiser prospectus&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Internally, we released a big improvement in estimating …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features-from-the-previous-month"&gt;New features from the previous month&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;We released our &lt;a href="https://www.ethicalads.io/prospectus/ethicalads-advertiser-prospectus.pdf"&gt;Q2 advertiser prospectus&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Internally, we released a big improvement in estimating audience sizes for niche campaigns.
  This was enabled by the &lt;a href="/blog/2025/02/duckdb-and-postgresql-make-a-great-pair-for-analytical-processing/"&gt;analytical improvements we built with DuckDB&lt;/a&gt;
  that we wrote about a couple months ago.&lt;/li&gt;
&lt;li&gt;Our fixed header ad placement was slightly delayed due to testing but is rolling out in April.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our
&lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;
and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="march-advertising-stats"&gt;March advertising stats&lt;/h2&gt;
&lt;p&gt;Last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$38,899.15&lt;/strong&gt; for our publishers and they'll receive this in a payout today. February picked up considerably toward the end and March stayed about as strong throughout.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;176 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;22,122,792&lt;/strong&gt; paid ad views across the world. This is back up from February based on a few broad campaigns.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;April is trending pretty similarly to March.
We haven't yet seen significant economic blowback from current events.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for April:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We are preparing a release that enables advertisers and publishers to use 2FA on our management platform.
  We will be supporting TOTP authenticator codes as well as backup one-time codes.&lt;/li&gt;
&lt;li&gt;We are working to improve our automated renewals for advertisers.
  Currently, advertisers can set campaigns to automatically renew
  but we are working on improvements to automate the billing around those campaigns.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="/contact/"&gt;let us know&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/><category term="build-in-public"/></entry><entry><title>EthicalAds Newsletter - March 2025</title><link href="/blog/2025/03/ethicalads-newsletter-march-2025/" rel="alternate"/><published>2025-03-12T00:00:00-07:00</published><updated>2025-03-12T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2025-03-12:/blog/2025/03/ethicalads-newsletter-march-2025/</id><summary type="html">&lt;h2 id="new-features-from-the-previous-month"&gt;New features from the previous month&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;There was a cool content piece we created about &lt;a href="/blog/2025/02/duckdb-and-postgresql-make-a-great-pair-for-analytical-processing/"&gt;how we're using DuckDB&lt;/a&gt;
  and …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features-from-the-previous-month"&gt;New features from the previous month&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;There was a cool content piece we created about &lt;a href="/blog/2025/02/duckdb-and-postgresql-make-a-great-pair-for-analytical-processing/"&gt;how we're using DuckDB&lt;/a&gt;
  and parquet files combined with our usual workhorse of PostgreSQL for all our analytical needs.&lt;/li&gt;
&lt;li&gt;We completed the implementation of a fixed header ad that publishers can opt-in to use on their sites.
  This will roll out in the next week or two after it is done testing.&lt;/li&gt;
&lt;li&gt;We simplified PayPal payouts considerably on our end which should help us complete our publisher payouts faster.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our
&lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;
and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="february-advertising-stats"&gt;February advertising stats&lt;/h2&gt;
&lt;p&gt;Last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$30,846.47&lt;/strong&gt; for our publishers and they'll receive this in a payout later this week. This is roughly in-line with the previous month when accounting for the number of days but the end of the month picked up considerably.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;177 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;16,806,100&lt;/strong&gt; paid ad views across the world. This is down from the previous month even accounting for fewer days in the month but mostly due to fewer very broad campaigns which come and go.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;February ended much stronger than it started and ended much stronger than January. We're expecting March to be even better.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for March:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;While working on the fixed header ad I mentioned above,
  we're going to make our ads a bit easier to customize for publishers using CSS variables.
  This should roll out over the next month.&lt;/li&gt;
&lt;li&gt;We're working on some big improvements in how accurately we can estimate audience sizes for niche campaigns.
  This was enabled by the &lt;a href="/blog/2025/02/duckdb-and-postgresql-make-a-great-pair-for-analytical-processing/"&gt;analytical improvements we built with DuckDB&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="/contact/"&gt;let us know&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/><category term="build-in-public"/></entry><entry><title>DuckDB and PostgreSQL Make a Great Pair for Analytical Processing</title><link href="/blog/2025/02/duckdb-and-postgresql-make-a-great-pair-for-analytical-processing/" rel="alternate"/><published>2025-02-25T00:00:00-08:00</published><updated>2025-02-25T00:00:00-08:00</updated><author><name>David Fischer</name></author><id>tag:None,2025-02-25:/blog/2025/02/duckdb-and-postgresql-make-a-great-pair-for-analytical-processing/</id><summary type="html">&lt;p&gt;Typically, our blog lives at the intersection of privacy, advertising,
and building our business in this niche.
This time, however …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Typically, our blog lives at the intersection of privacy, advertising,
and building our business in this niche.
This time, however, we're going to delve into some database scaling issues
we have been hitting for some time and how we're solving them with DuckDB
on top of our regular daily driver of PostgreSQL.&lt;/p&gt;
&lt;h2 id="postgres-can-do-just-about-everything"&gt;Postgres can do just about everything&lt;/h2&gt;
&lt;p&gt;At both EthicalAds and at our parent company Read the Docs, we use PostgreSQL heavily.
We use Postgres to store basically all our production data and to be our "source of truth"
for all advertising stats, billing, and payouts to publishers.
Postgres handles everything and is among the most dependable pieces of our infrastructure.
Postgres can handle &lt;a href="/blog/2024/04/using-embeddings-in-production-with-postgres-django-for-niche-ad-targeting/"&gt;ML embeddings&lt;/a&gt;
with &lt;a href="https://github.com/pgvector/pgvector"&gt;pgvector&lt;/a&gt; for better contextual ad targeting
and combined with a read replica we scaled our setup to
&lt;a href="/blog/2021/07/handling-100-requests-per-second-with-python-django/"&gt;hundreds of writes per second&lt;/a&gt;.
At EthicalAds, we generally field ~4-5M ad requests per weekday and Postgres
handles this kind of transaction processing effortlessly.&lt;/p&gt;
&lt;h2 id="what-about-analytical-processing"&gt;What about analytical processing?&lt;/h2&gt;
&lt;p&gt;However, one area where we've struggled a bit with Postgres is on analytical queries.
When a new advertiser prospect comes to us and asks how much ad inventory we have on content
related a tool like Terraform, we want to be able to answer that easily.
By aggregating data ahead of time, we can query the data much faster when an advertiser pulls up a report
or needs an estimate on how long their campaign will take.&lt;/p&gt;
&lt;div class="postimage text-center"&gt;
  &lt;img class="w-100 shadow-lg" src="/images/posts/2025-duckdb-postgres-usage.png" alt="Expensive analytical queries can do a number on your database."&gt;
  &lt;p&gt;Expensive analytical queries can do a number on your database.&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;We run these expensive aggregations across our database nightly during lower traffic times
and store the results in a series of tables of daily aggregated data by publisher, by country, by advertiser, and so on.
Altogether, queries take around 45 minutes to an hour and add significant load to our read replica.
Occasionally, (or not so occasionally if they happen to coincide with the &lt;a href="https://www.postgresql.org/docs/current/runtime-config-autovacuum.html"&gt;autovacuum&lt;/a&gt;), they will timeout and have to be re-run.
Despite how much we love Postgres at EthicalAds, this specifically has felt like one of the most brittle pieces of our setup.&lt;/p&gt;
&lt;h2 id="column-wise-storage-duckdb"&gt;Column-wise storage &amp;amp; DuckDB&lt;/h2&gt;
&lt;p&gt;Typically, these kinds of expensive aggregation queries are better fits for column databases, data warehouses and &lt;a href="https://en.wikipedia.org/wiki/Online_analytical_processing"&gt;OLAP databases&lt;/a&gt; generally.
We considered building out a data warehouse or other kinds of column oriented databases
but never found something we really liked and we were always hesitant to add a second production system
that could get out of sync with Postgres.
Postgres additionally has extensions to add some of these capabilities
(eg. &lt;a href="https://github.com/citusdata/citus?tab=readme-ov-file#creating-tables-with-columnar"&gt;citus&lt;/a&gt;)
but these solutions all either didn't work for our use case or
weren't supported on Azure's Managed Postgres, where we are hosted.
This is where using DuckDB came to our rescue.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://duckdb.org/"&gt;DuckDB&lt;/a&gt; is an in-process, analytical database and toolkit for analytical workloads.
It's sort of like SQLite but for analytical workloads and querying data anywhere in a variety of formats.
Like SQLite, you either run it in your app's process (Python for us)
or you can run its own standalone CLI.
It can read from CSV or Parquet files stored on disk or in blob storage
or directly from an SQL database like Postgres.&lt;/p&gt;
&lt;p&gt;Because most of our aggregations are for hourly or daily data and then data virtually never changes
once it's written, it's a great match for a write-once system.
As a result, we began writing parquet files on a daily basis to cloud storage.
&lt;a href="https://parquet.apache.org/"&gt;Apache Parquet files&lt;/a&gt;, are files optimized for column-wise data files
that are widely supported by various tools including Python and DuckDB.&lt;/p&gt;
&lt;blockquote class="blockquote mb-2"&gt;
  &lt;p class="mb-2"&gt;
    “Apache Parquet is an open source, column-oriented data file format designed for efficient data storage and retrieval.”
  &lt;/p&gt;
  &lt;p class="small"&gt;- &lt;a href="https://parquet.apache.org/"&gt;parquet.apache.org&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Using Python and DuckDB, it's easy to query a day or a month's worth of data
whether from a developer laptop or directly from a server
without adding any load on your production database.
Queries that took 5-10 minutes against Postgres frequently take just a few seconds
against parquet files optimized for the purpose.
Here's an example of how to query cloud storage parquet files directly from your app server in Python:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;duckdb&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;fsspec&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;filesystem&lt;/span&gt;

&lt;span class="c1"&gt;# Support for S3 is even more straight-forward&lt;/span&gt;
&lt;span class="n"&gt;duckdb&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sql&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;INSTALL azure&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;duckdb&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sql&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;LOAD azure&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;azure_account_name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;getenv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;AZURE_ACCOUNT_NAME&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;azure_account_key&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;getenv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;AZURE_ACCOUNT_KEY&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;azure_conn_string&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;DefaultEndpointsProtocol=https;AccountName=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;azure_account_name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;;AccountKey=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;azure_account_key&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;

&lt;span class="n"&gt;duckdb&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;register_filesystem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;filesystem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;abfs&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;connection_string&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;azure_conn_string&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="c1"&gt;# Query the daily parquet files&lt;/span&gt;
&lt;span class="c1"&gt;# Want an ORM? There&amp;#39;s a SqlAlchemy driver for DuckDB&lt;/span&gt;
&lt;span class="n"&gt;duckdb&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sql&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&amp;quot;&amp;quot;SELECT COUNT(*) FROM read_parquet(&amp;quot;abfs://datalake/2025-02-01.parquet&amp;quot;);&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Query a month of data&lt;/span&gt;
&lt;span class="n"&gt;duckdb&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sql&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&amp;quot;&amp;quot;SELECT COUNT(*) FROM read_parquet(&amp;quot;abfs://datalake/2025-01-*.parquet&amp;quot;);&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;h2 id="joining-column-wise-data-with-postgres"&gt;Joining column-wise data with Postgres&lt;/h2&gt;
&lt;p&gt;Creating our data lake of parquet files is cool,
but the real power comes from "joining" this columnar optimized data back up against Postgres:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;duckdb&lt;/span&gt;

&lt;span class="c1"&gt;# Enable the Postgres extension for DuckDB&lt;/span&gt;
&lt;span class="n"&gt;duckdb&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sql&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;INSTALL postgres&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;duckdb&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sql&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;LOAD postgres&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;pg_conn_string&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;getenv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;REPLICA_DATABASE_URL&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;duckdb&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sql&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;ATTACH IF NOT EXISTS &amp;#39;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;pg_conn_string&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#39; AS ads_pg (TYPE POSTGRES)&amp;quot;&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# &amp;quot;Join&amp;quot; a daily aggregation back up with our Postgres source of truth&lt;/span&gt;
&lt;span class="c1"&gt;# This query is nearly instant but would take tens of seconds normally&lt;/span&gt;
&lt;span class="n"&gt;duckdb&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sql&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
&lt;span class="s2"&gt;    SELECT&lt;/span&gt;
&lt;span class="s2"&gt;        adv.name as &amp;#39;advertiser_name&amp;#39;,&lt;/span&gt;
&lt;span class="s2"&gt;        COUNT(*) as &amp;#39;impression_cnt&amp;#39;&lt;/span&gt;
&lt;span class="s2"&gt;    FROM read_parquet(&amp;quot;abfs://datalake/2025-02-01.parquet&amp;quot;) pq&lt;/span&gt;
&lt;span class="s2"&gt;    INNER JOIN ads_pg.adserver_advertiser adv&lt;/span&gt;
&lt;span class="s2"&gt;        ON pq.advertiser_id = adv.id&lt;/span&gt;
&lt;span class="s2"&gt;    GROUP BY adv.name&lt;/span&gt;
&lt;span class="s2"&gt;    ORDER BY impression_cnt DESC&lt;/span&gt;
&lt;span class="s2"&gt;    LIMIT 10;&lt;/span&gt;
&lt;span class="s2"&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;This provides a number of advantages including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Unlike some data warehouses that need &lt;strong&gt;lots&lt;/strong&gt; of de-normalized data,
  our parquet files only need the data required to make whatever aggregations we need.
  This keeps them small and fast.
  "Joining" the aggregated data back to Postgres for additional data is fast and easy.&lt;/li&gt;
&lt;li&gt;It's possible to overload your production database with analytical queries,
  but you can't easily overload cloud storage from reading files.&lt;/li&gt;
&lt;li&gt;It's even possible with the &lt;code&gt;COPY&lt;/code&gt; command to run aggregations against parquet files
  and copy the aggregated back to Postgres directly from DuckDB.
  This sounds counter-intuitive but if you're running many different kinds of aggregations
  against the same data, this can be faster than querying directly.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="a-couple-gotchas-and-other-challenges"&gt;A couple gotchas and other challenges&lt;/h2&gt;
&lt;p&gt;"But David. Won't it be slow to run a SQL query against a remote file?"
Firstly, these queries are strictly analytical queries, nothing transactional.
Remember that with any of the major clouds these blob storage files are going to be in or near
the data center where the rest of your servers are running.
Querying them is a lot faster than I expected it to be.
For reports, estimates and other analytical workloads where folks are used to waiting a few seconds,
it works fairly well.&lt;/p&gt;
&lt;p&gt;While DuckDB is pretty smart about &lt;a href="https://duckdb.org/2024/01/26/multi-database-support-in-duckdb.html"&gt;cross database queries&lt;/a&gt;,
I put "joins" in scare quotes in the previous section for a reason.
These are not traditional database joins and at some level DuckDB is querying records
from one database into memory and using it to query the other database.
In some situations, including some we saw in our workloads,
performance can degrade pretty quickly and spike memory and CPU usage on both Postgres and the DuckDB process.
Expensive, cross-database queries require a bit of extra testing and scrutiny.&lt;/p&gt;
&lt;p&gt;Lastly, if anybody from the Azure team happens to be reading this,
we'd love it if you'd add &lt;a href="https://github.com/CrunchyData/pg_parquet/"&gt;pg_parquet&lt;/a&gt; to Azure Managed Postgres
now that it &lt;a href="https://www.crunchydata.com/blog/pg_parquet-an-extension-to-connect-postgres-and-parquet"&gt;supports Azure storage&lt;/a&gt;.
Dumping parquets from Postgres directly would be much more optimized than
doing that from DuckDB. DuckDB is still amazing for reading these files once they're written,
but creating them directly with Postgres would be better still.&lt;/p&gt;
&lt;h2 id="wrapup"&gt;Wrapup&lt;/h2&gt;
&lt;p&gt;Hopefully this was helpful to see some concrete examples of using DuckDB in addition to PostgreSQL
for analytical workloads. We believe there's a lot of potential to use DuckDB with parquet files
for these kinds of queries in more places on EthicalAds and with Read the Docs as well.&lt;/p&gt;
&lt;p&gt;Thanks for tuning in to one of our more technical posts
about some of the challenges of building ad network without invasive tracking.
Please &lt;a href="/contact/#inbound-form"&gt;let us know&lt;/a&gt; if you have any ideas or feedback on our product or service.
We always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="postgresql"/><category term="duckdb"/><category term="performance"/><category term="engineering"/></entry><entry><title>EthicalAds Newsletter - February 2025</title><link href="/blog/2025/02/ethicalads-newsletter-february-2025/" rel="alternate"/><published>2025-02-06T00:00:00-08:00</published><updated>2025-02-06T00:00:00-08:00</updated><author><name>David Fischer</name></author><id>tag:None,2025-02-06:/blog/2025/02/ethicalads-newsletter-february-2025/</id><summary type="html">&lt;h2 id="new-features-from-the-previous-month"&gt;New features from the previous month&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;A new advertiser report with a domain breakdown report was released.
  This report will …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features-from-the-previous-month"&gt;New features from the previous month&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;A new advertiser report with a domain breakdown report was released.
  This report will break down advertiser traffic
  by the domain where the ad was shown. Quite a few advertisers asked for this.&lt;/li&gt;
&lt;li&gt;We ran a few &lt;a href="/advertisers/niche-targeting/"&gt;niche targeting&lt;/a&gt; campaigns end-to-end
  and made a number of improvements including a large scanning project across almost all
  of the commonly browsed pages across our network. We're really excited about this feature
  and think it will yield better results for advertisers (it has so far)
  and enable us to target various developer niches that were too small to target previously.&lt;/li&gt;
&lt;li&gt;We have begun creating a data lake with DuckDB that will allow us to much more efficiently
  get estimates for how large various audiences are for both niche targeting and for just bespoke campaigns.
  For example, advertisers ask us how large of a campaign they could put together for backend devs
  (or SMS 2FA, or databases, or anything they can think of) across just a few countries or even a single country.
  This will allow us to have much more accurate estimates based on historical data.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our
&lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;
and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="january-advertising-stats"&gt;January advertising stats&lt;/h2&gt;
&lt;p&gt;Last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$33,801.05&lt;/strong&gt; for our publishers and they'll receive this in a payout next week.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;176 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;23,585,060&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;January has historically started slowly and this year is no different.
We have a stronger February lined up.&lt;/p&gt;
&lt;p&gt;We recently lowered prices on a &lt;a href="/advertisers/pricing/"&gt;few audiences&lt;/a&gt;
so it's a good time to start a campaign if you've been on the fence.
If you're interested in running a campaign, &lt;a href="/advertisers/#inbound-form"&gt;get in touch&lt;/a&gt;!&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for February:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We hit a few snags but optimizing PayPal payouts but it should roll out this month.
  Did you know that PayPal charges an additional fee for making payments with their API?&lt;/li&gt;
&lt;li&gt;We're aiming to have a new ad format for sites that want a fixed header ad.
  This wasn't finished up last month.&lt;/li&gt;
&lt;li&gt;We're aiming to produce a tech-focused content piece about what we're doing with DuckDB
  and how it's been a great pair with PostgreSQL.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="/contact/"&gt;let us know&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/><category term="build-in-public"/></entry><entry><title>EthicalAds Newsletter - January 2025</title><link href="/blog/2025/01/ethicalads-newsletter-january-2025/" rel="alternate"/><published>2025-01-07T00:00:00-08:00</published><updated>2025-01-07T00:00:00-08:00</updated><author><name>David Fischer</name></author><id>tag:None,2025-01-07:/blog/2025/01/ethicalads-newsletter-january-2025/</id><summary type="html">&lt;h2 id="new-features-from-the-previous-month"&gt;New features from the previous month&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;We released our new
  &lt;a href="/prospectus/ethicalads-advertiser-prospectus.pdf"&gt;prospectus&lt;/a&gt;
  for Q1. It has a price reduction across a …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features-from-the-previous-month"&gt;New features from the previous month&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;We released our new
  &lt;a href="/prospectus/ethicalads-advertiser-prospectus.pdf"&gt;prospectus&lt;/a&gt;
  for Q1. It has a price reduction across a few markets and some more information on
  &lt;a href="/advertisers/niche-targeting/"&gt;niche targeting&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;The legwork for a new advertiser domain breakdown report was finished up
  and we expect the report to be live in the next few days.
  This report will break down advertiser traffic
  by the domain where the ad was shown. Quite a few advertisers asked for this.&lt;/li&gt;
&lt;li&gt;We got a few more advertisers trying our &lt;a href="/advertisers/niche-targeting/"&gt;niche targeting&lt;/a&gt; options.
  This resulted in us building a few additional UX and reporting features for it.&lt;/li&gt;
&lt;li&gt;We began testing some ads on Reddit in a very small way.
  This had a couple goals, market research and trying to get a few new advertisers while doing it.
You can always see our latest server updates in our
&lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;
and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="december-advertising-stats"&gt;December advertising stats&lt;/h2&gt;
&lt;p&gt;Last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$32,527.31&lt;/strong&gt; for our publishers and they'll receive this in a payout next week.
  This number is lower than it has been in recent months.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;176 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;22,086,641&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The holidays always come with lower traffic and revenue every year.
However, they also usually come with slightly higher performance for advertisers despite the much lower traffic.&lt;/p&gt;
&lt;p&gt;We are continuing to see availability in our core markets.
If you've been waiting for a good time to advertise with us,
we have a price reduction
in our latest prospectus and &lt;a href="/advertisers/pricing/"&gt;pricing page&lt;/a&gt;.
If you're interested in running a campaign, &lt;a href="/advertisers/#inbound-form"&gt;get in touch&lt;/a&gt;!&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for January:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We are beginning to experiment with some larger ad placements on publishers who want this.
  If you're an advertiser interested in a larger ad format,
  &lt;a href="/advertisers/#inbound-form"&gt;let us know&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;We're aiming to have a new ad format for sites that want a fixed header ad.&lt;/li&gt;
&lt;li&gt;A few months back we streamlined how our publisher payouts worked on Stripe.
  This makes the process on our end better and ensures that we only collect what data we need
  (Stripe can collect tax information if necessary) and made payouts quicker for publishers using Stripe.
  After some initial exploration, PayPal will be trickier to do the same,
  but we're hoping to have some PayPal improvements over the next month or two.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="/contact/"&gt;let us know&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/><category term="build-in-public"/></entry><entry><title>EthicalAds Newsletter - December 2024</title><link href="/blog/2024/12/ethicalads-newsletter-december-2024/" rel="alternate"/><published>2024-12-06T00:00:00-08:00</published><updated>2024-12-06T00:00:00-08:00</updated><author><name>David Fischer</name></author><id>tag:None,2024-12-06:/blog/2024/12/ethicalads-newsletter-december-2024/</id><summary type="html">&lt;h2 id="new-features-from-the-previous-month"&gt;New features from the previous month&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;We built a bulk importer to handle uploading ads in bulk.
  A couple advertisers …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features-from-the-previous-month"&gt;New features from the previous month&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;We built a bulk importer to handle uploading ads in bulk.
  A couple advertisers asked for this to speed up the process
  when running multiple campaigns across different geo- or contextual targeting.
  This lets advertisers prepare ads in Google Sheets or Excel and import it.&lt;/li&gt;
&lt;li&gt;It's now possible to have lower-privilege accounts for advertisers and publishers
  who can view reports but not change any settings or ads.&lt;/li&gt;
&lt;li&gt;We added some &lt;a href="/advertiser-guide/#measuring-conversions"&gt;new variables&lt;/a&gt;
  that advertisers can use in their landing page links and in UTM parameters.
  This lets advertisers capture the specific ad flight the ad was from
  as well as some other possibilities.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our
&lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;
and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="november-advertising-stats"&gt;November advertising stats&lt;/h2&gt;
&lt;p&gt;Last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$34,754.89&lt;/strong&gt; for our publishers and they'll receive this in a payout next week.
  This number is lower than it has been in recent months.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;178 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;24,144,837&lt;/strong&gt; paid ad views across the world.
  This number is still pretty high but we are running a number of really broad,
  but low priced campaigns.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We are continuing to see weakness in our core markets.
If you've been waiting for a good time to advertise with us,
we have a holiday &lt;a href="/advertisers/pricing/"&gt;price reduction&lt;/a&gt;
you can take advantage of.
If you're interested in running a campaign, &lt;a href="/advertisers/#inbound-form"&gt;get in touch&lt;/a&gt;!&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for December:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We are beginning to experiment with some larger ad placements on publishers who want this.
  If you're an advertiser interested in a larger ad format,
  &lt;a href="/advertisers/#inbound-form"&gt;let us know&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;In addition to a report by publisher, we're building a report that breaks down advertiser traffic
  by the domain where the ad was shown. Quite a few advertisers asked for this.&lt;/li&gt;
&lt;li&gt;We will be releasing our new
  &lt;a href="/prospectus/ethicalads-advertiser-prospectus.pdf"&gt;prospectus&lt;/a&gt;
  for Q1 in the next week.&lt;/li&gt;
&lt;li&gt;We're aiming to have a new ad format for sites that want a fixed header ad.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="/contact/"&gt;let us know&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/><category term="build-in-public"/></entry><entry><title>EthicalAds Newsletter - November 2024</title><link href="/blog/2024/11/ethicalads-newsletter-november-2024/" rel="alternate"/><published>2024-11-06T00:00:00-08:00</published><updated>2024-11-06T00:00:00-08:00</updated><author><name>David Fischer</name></author><id>tag:None,2024-11-06:/blog/2024/11/ethicalads-newsletter-november-2024/</id><summary type="html">&lt;h2 id="new-features-from-the-previous-month"&gt;New features from the previous month&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;We released a new onboarding improvement to email advertisers
  when they launch their first …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features-from-the-previous-month"&gt;New features from the previous month&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;We released a new onboarding improvement to email advertisers
  when they launch their first campaign.
  The goal is to help them with onboarding new advertisers,
  pointing them toward the reporting they want,
  and generally help with navigating our platform.&lt;/li&gt;
&lt;li&gt;Publisher payouts using Stripe are now automated and they went well in October.
  This sped up payouts considerably.&lt;/li&gt;
&lt;li&gt;We did a &lt;a href="/blog/2024/10/ad-performance-by-conversion-action-do-developers-like-ebooks/"&gt;content piece&lt;/a&gt;
  on Ad Performance by Conversion Action
  which compared ad CTRs between ads that link to a product, a form,
  or to some sort of content piece like a webinar or ebook.
  The findings were what we expected to find based on experience
  but worth reading if you're an advertiser considering what your lead magnet is.&lt;/li&gt;
&lt;li&gt;We are continuing to improve our &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/index.html#automatic-ad-rotation"&gt;ad rotation&lt;/a&gt;
  features we built for our ad client. We're continuing to iterate here,
  although we've scaled back rotations somewhat.
  We also building some reporting features around this.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our
&lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;
and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="october-advertising-stats"&gt;October advertising stats&lt;/h2&gt;
&lt;p&gt;Last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$41,677.24&lt;/strong&gt; for our publishers and they'll receive this payout next week.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;181 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;26,279,987&lt;/strong&gt; paid ad views across the world.
  This is the highest it's ever been and our new run of network options
  are allowing us to sell a larger percentage of our traffic especially in regions
  that were historically undersold.
  We also have some very broad campaigns running.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We are seeing some softness in our core markets
after a few mid-sized advertisers put campaigns on hold
and a larger one pulled back.&lt;/p&gt;
&lt;p&gt;We are running a November discount for new advertisers
where we're offering the discounts we &lt;a href="/advertisers/pricing/"&gt;normally&lt;/a&gt;
give at $3k and $25k at lower thresholds ($1k and $5k).
If you're interested in running a campaign, &lt;a href="/advertisers/#inbound-form"&gt;get in touch&lt;/a&gt;!&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for November:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We are building a bulk importer to handle uploading ads in bulk.
  A couple advertisers have asked for this to speed up the process
  when running multiple campaigns.&lt;/li&gt;
&lt;li&gt;We'll be releasing some new advertiser features to have read-only accounts
  that can just see report data but not make any changes to ads themselves.&lt;/li&gt;
&lt;li&gt;There may not be a lot of progress here in the next one month
  but we are beginning to experiment with some larger ad placements on publishers who want this.
  If you're an advertiser interested in a larger ad format,
  &lt;a href="/advertisers/#inbound-form"&gt;let us know&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="/contact/"&gt;let us know&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/><category term="build-in-public"/></entry><entry><title>Ad Performance by Conversion Action: Do Developers Like Ebooks?</title><link href="/blog/2024/10/ad-performance-by-conversion-action-do-developers-like-ebooks/" rel="alternate"/><published>2024-10-29T00:00:00-07:00</published><updated>2024-10-29T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2024-10-29:/blog/2024/10/ad-performance-by-conversion-action-do-developers-like-ebooks/</id><summary type="html">&lt;p&gt;Historically, we've dissuaded advertisers from linking to ebooks and webinars,
especially gated ones, because they tend to have a lower …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Historically, we've dissuaded advertisers from linking to ebooks and webinars,
especially gated ones, because they tend to have a lower click-through rate (CTR)
and advertisers have told us they don't convert as well.
While CTOs and marketers may read ebooks at a higher rate, developers and individual contributors,
who make up the bulk of our ad network don't seem to like them as much.&lt;/p&gt;
&lt;p&gt;Ad landing pages vary by the type of conversion the marketer is looking for whether signing up for a free trial, putting in a credit card or
filling out a lead form for a resource like a webinar.
The ad itself primes visitors on what to expect on the landing page, with terms like "start free", "free ebook", "learn more", or "sign up".
In the rest of this post, we aim to back up our guidance with hard data from our own ad network on what types of ad conversions work best for developers.&lt;/p&gt;
&lt;h2 id="types-of-ad-conversions"&gt;Types of ad conversions&lt;/h2&gt;
&lt;p&gt;A few months back, we created &lt;a href="/advertisers/creatives-that-convert/"&gt;guide to the kind of ad images that performed best&lt;/a&gt; across EthicalAds
and we saw that text-heavy ad images were among the lowest performers.
This time, we categorized all the ads shown on EthicalAds for the last month
by the desired marketing action and compared it with the click-through rate.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Signup form:&lt;/strong&gt; The ad linked to a page where a form was the primary above the fold action, generally with a free trial.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Product page:&lt;/strong&gt; The ad linked directly to a landing or product page on the advertiser's website&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Homepage:&lt;/strong&gt; The ad linked to the advertiser's main home page. In the cases where this works well, the homepage is probably very similar to a product page such as for an advertiser who sells a single product.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Public resource:&lt;/strong&gt; The ad linked to a public resource the advertiser created like an ebook, a video, or the product documentation.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gated resource:&lt;/strong&gt; The ad linked to a lead-gated resource like an ebook or webinar but the visitor was required to submit their name and email to get access.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Blog:&lt;/strong&gt; The ad linked to a blog post explaining a product or a feature of the advertiser's product. Arguably, this is similar to public resource, but we broke it out despite some sample size issues.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Across our network, this was about 23 million paid ad impressions and about 32,000 paid clicks
and each conversion type except for Blogs had at least one million impressions in the month of data.&lt;/p&gt;
&lt;div class="postimage text-center"&gt;
  &lt;img class="w-100 shadow-lg" src="/images/posts/2024-ad-ctr-conversion-type.png" alt="Ad CTR by Conversion Type (Sept-Oct 2024)"&gt;
  &lt;p&gt;&lt;small&gt;Ad CTR by Conversion Type (Sept-Oct 2024)&lt;/small&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h2 id="developers-dont-want-to-read-your-ebook"&gt;Developers don't want to read your ebook&lt;/h2&gt;
&lt;p&gt;OK, the headline on this section is perhaps a little too strong.
However, I think it's fair to say after looking at the data
that developers on our network do not want to read ebooks especially lead-gated ones.
Tailoring ad campaigns to developers is an important part of making sure ads perform well.&lt;/p&gt;
&lt;p&gt;Everyone is busy and developers are no exception.
However, developers &lt;strong&gt;are interested&lt;/strong&gt; in reading about products and services that solve their problems.
While some takeaways that the data points to may be specific to EthicalAds,
some of this is going to apply to anybody doing developer marketing:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Developers are much more willing to give their email for a product trial or a free tier
  than they are for gated content like an ebook or webinar.&lt;/li&gt;
&lt;li&gt;Taking a developer directly to a product landing page or homepage when they click on an ad
  is fine especially if the page's primary target audience is already developers.&lt;/li&gt;
&lt;li&gt;For developer resources like webinars or ebooks,
  make sure this content is public and doesn't require a signup.
  A call to action of "signup" that isn't for a free trial is likely a red flag.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="we-want-your-campaign-to-succeed"&gt;We want your campaign to succeed&lt;/h2&gt;
&lt;p&gt;One thing that separates a niche network like us from the huge ad players,
is that advertisers are always a quick email away from reaching a real person
who knows developer marketing and can offer a little assistance
in running a successful campaign.&lt;/p&gt;
&lt;p&gt;If you need &lt;a href="/advertisers/help-with-your-ads/"&gt;help with your campaign&lt;/a&gt;,
your landing pages, or ads themselves, don't hesitate to get in touch.
We may be a small team, but we've run a lot of campaigns for our advertisers and learned tricks
and best practices to help you get the most out of your next campaign&lt;/p&gt;</content><category term="posts"/><category term="advertisers"/><category term="marketing"/><category term="data-exploration"/></entry><entry><title>EthicalAds Newsletter - October 2024</title><link href="/blog/2024/10/ethicalads-newsletter-october-2024/" rel="alternate"/><published>2024-10-08T00:00:00-07:00</published><updated>2024-10-08T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2024-10-08:/blog/2024/10/ethicalads-newsletter-october-2024/</id><summary type="html">&lt;h2 id="new-features-from-the-previous-month"&gt;New features from the previous month&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;We've started testing our machine-learning powered
  &lt;a href="/advertisers/niche-targeting/"&gt;contextual niche targeting&lt;/a&gt;
  with a small test of …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features-from-the-previous-month"&gt;New features from the previous month&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;We've started testing our machine-learning powered
  &lt;a href="/advertisers/niche-targeting/"&gt;contextual niche targeting&lt;/a&gt;
  with a small test of a couple advertisers.
  So far, the results are pretty promising and we've been able to significantly increase
  the inventory available for some mid-sized developer niches
  (think advertisers interested in two factor auth).&lt;/li&gt;
&lt;li&gt;We released our &lt;a href="https://www.ethicalads.io/prospectus/ethicalads-advertiser-prospectus.pdf"&gt;Q4 advertiser prospectus&lt;/a&gt;.
  The biggest changes were some more details on niche targeting, a modest price increase in North America and a smaller one in Western Europe, and highlighting the ability
  for advertisers to target a wide geographic cross-section with a &lt;a href="/advertisers/pricing/"&gt;"run of network"&lt;/a&gt; campaign.&lt;/li&gt;
&lt;li&gt;We released a new feature Google Sheets export feature to help advertisers
  who view their ad metrics (impressions/clicks/spend) in auto-updating dashboards.
  We are testing this with a few advertisers who had asked for such features
  but if you're interested in this, please &lt;a href="/contact/"&gt;get in touch&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;After some more testing, we are pretty happy with the
  &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/index.html#automatic-ad-rotation"&gt;ad rotation&lt;/a&gt;
  features we built for our ad client. We're continuing to iterate there, but we are seeing
  good engagement without a significant dip in performance.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our
&lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;
and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="september-advertising-stats"&gt;September advertising stats&lt;/h2&gt;
&lt;p&gt;Last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$46,048.59&lt;/strong&gt; for our publishers and they'll receive this payout next Tuesday.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;179 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;20,334,175&lt;/strong&gt; paid ad views across the world.
  This is among the highest it's ever been and our new run of network options
  are allowing us to sell a larger percentage of our traffic especially in regions
  that were historically undersold.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We continue to be sold out in our core markets.
If you run a high-quality developer-focused site
or have a free (ad supported) version of a developer-focused product
and you'd like to monetize with ads,
&lt;a href="/publishers/#inbound-form"&gt;get in touch!&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for October:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We are releasing a new onboarding improvement to email advertisers
  when they launch their first campaign.
  The goal is to help them with onboarding new advertisers,
  pointing them toward the reporting they want,
  and generally help with navigating our platform.&lt;/li&gt;
&lt;li&gt;While we review all the publisher payouts before they go out on the 15th of the month,
  we have fully automated payouts for publishers using Stripe.
  Next week's payouts will be the true test of this.&lt;/li&gt;
&lt;li&gt;We're aiming to have a content piece with where to spend your first marketing dollar
  as a startup (hint: we're a bit better for your 5,000th dollar than the first).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="/contact/"&gt;let us know&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/><category term="build-in-public"/></entry><entry><title>EthicalAds Newsletter - September 2024</title><link href="/blog/2024/09/ethicalads-newsletter-september-2024/" rel="alternate"/><published>2024-09-10T00:00:00-07:00</published><updated>2024-09-10T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2024-09-10:/blog/2024/09/ethicalads-newsletter-september-2024/</id><summary type="html">&lt;h2 id="new-features-from-the-previous-month"&gt;New features from the previous month&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;We produced a blog post breaking down
  &lt;a href="/blog/2024/08/mozillas-privacy-preserving-ad-attribution-the-future-or-an-oxymoron/"&gt;Mozilla's new private ad attribution&lt;/a&gt;.
  The post …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features-from-the-previous-month"&gt;New features from the previous month&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;We produced a blog post breaking down
  &lt;a href="/blog/2024/08/mozillas-privacy-preserving-ad-attribution-the-future-or-an-oxymoron/"&gt;Mozilla's new private ad attribution&lt;/a&gt;.
  The post has analysis on what this means for ads and for privacy
  as well as some background of where this fits in the wider ecosystem of advertising and browsers.&lt;/li&gt;
&lt;li&gt;We made a lot of progress on our niche targeting
  using the &lt;a href="/advertisers/similar-pages/?url=https%3A%2F%2Fwww.mongodb.com%2Fatlas"&gt;ML embeddings/page similarity&lt;/a&gt; and building it into our ad serving.
  Our first cut added over 100ms to ad serving which was totally unacceptable
  (we aim for 50ms total server time). After some fine tuning, we have this down to less than 10ms added time which isn't where we want it to be but good enough to proceed with testing.&lt;/li&gt;
&lt;li&gt;If you studiously watch our &lt;a href="/advertisers/pricing/"&gt;pricing page&lt;/a&gt;,
  you may have noticed that we have a new "run of network" option available.
  This lets advertisers buy a wide cross-section of our network
  at a lower price and then focus on what is performing best.
  It lets us ensure we sell more of our hard-to-sell traffic for our publishers.&lt;/li&gt;
&lt;li&gt;Going along with the performance improvements to our niche targeting,
  we released a number of other performance improvements to speed up ad serving and reporting.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our
&lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;
and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="august-advertising-stats"&gt;August advertising stats&lt;/h2&gt;
&lt;p&gt;In August 2024:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$37,396.64&lt;/strong&gt; for our publishers and they'll receive this payout next Monday.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;180 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;20,205,465&lt;/strong&gt; paid ad views across the world.
  This is significantly up because we've sold more global campaigns.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;August had a slow start as we had a couple advertisers delay starts of their campaigns.
However, we are currently over 98% sold out in our core markets.
We are always looking for high-quality developer-focused sites
or free (ad supported) versions of developer-focused products to host our ads.
&lt;a href="/publishers/#inbound-form"&gt;Get in touch!&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for September:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;As we mentioned last month, we continued a test of having
  &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/index.html#automatic-ad-rotation"&gt;rotating ads automatically&lt;/a&gt; when the browser or tab regains focus.
  After testing for a couple of days, we noticed that this caused a dip in ad performance.
  We have turned this off but we're going to continue working on that this month.&lt;/li&gt;
&lt;li&gt;With niche targeting starting to look reasonably performant,
  we are looking to widen that test to have a paid advertiser use it to target a desired niche.&lt;/li&gt;
&lt;li&gt;We are (again) working on a feature
  around automatic exports of reporting data to Google Sheets for use in ad dashboards
  like Tableau or Looker Studio. We have always had an API for reporting data,
  but a few advertisers have told us they want something easier.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="/contact/"&gt;let us know&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/><category term="build-in-public"/></entry><entry><title>Mozilla's privacy preserving ad attribution: The future or an oxymoron?</title><link href="/blog/2024/08/mozillas-privacy-preserving-ad-attribution-the-future-or-an-oxymoron/" rel="alternate"/><published>2024-08-29T00:00:00-07:00</published><updated>2024-08-29T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2024-08-29:/blog/2024/08/mozillas-privacy-preserving-ad-attribution-the-future-or-an-oxymoron/</id><summary type="html">&lt;p&gt;Back in June,
&lt;a href="https://blog.mozilla.org/en/mozilla/mozilla-anonym-raising-the-bar-for-privacy-preserving-digital-advertising/"&gt;Mozilla acquired&lt;/a&gt;
privacy-centric ad measurement company &lt;a href="https://www.anonymco.com/"&gt;Anonym&lt;/a&gt;
which was founded a few years back by some senior …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Back in June,
&lt;a href="https://blog.mozilla.org/en/mozilla/mozilla-anonym-raising-the-bar-for-privacy-preserving-digital-advertising/"&gt;Mozilla acquired&lt;/a&gt;
privacy-centric ad measurement company &lt;a href="https://www.anonymco.com/"&gt;Anonym&lt;/a&gt;
which was founded a few years back by some senior Meta staff.
Then last week, Mozilla unveiled plans for testing
&lt;a href="https://blog.mozilla.org/netpolicy/2024/08/22/ppa-update/"&gt;privacy preserving attribution&lt;/a&gt;.
Judging from the &lt;a href="https://news.ycombinator.com/item?id=41311479"&gt;HackerNews sentiment&lt;/a&gt;,
it was not well received.&lt;/p&gt;
&lt;p&gt;Clearly we operate an ad network so our opinions are biased.
We firmly believe that advertising can be effective without invasive tracking
and we built a profitable business around it.
In this post I'm going to dive deeper into ad attribution,
what Mozilla is actually doing
and what it means for privacy and advertising more generally.&lt;/p&gt;
&lt;h2 id="what-is-ad-attribution-and-how-does-it-work"&gt;What is ad attribution and how does it work?&lt;/h2&gt;
&lt;p&gt;Ad attribution is simply the measuring the effectiveness of marketing channels
and is usually measured in terms of impressions, clicks, new site visitors, and ultimately conversions and ROI.
At some level, ad attribution is necessary.
Advertisers want to know that the money they're spending on advertising is working.
Otherwise, they'll save their money.
They want to cut channels that don't work well and spend more on ad channels that do.
Nothing wrong with that.&lt;/p&gt;
&lt;p&gt;The most basic level of ad attribution is to use query or UTM parameters
in the URL that attribute a user who visits an advertiser's website
to a particular source like paid advertising, social media, or other sources.
Think something like &lt;code&gt;advertiser.com?utm_source=ethicalads&lt;/code&gt;.
Having a landing page specific to a paid ad channel (&lt;code&gt;advertiser.com/ethicalads&lt;/code&gt;)
or having a promo code for a specific channel ("use promo code EthicalAds at checkout")
works similarly.
When somebody buys a product from an advertiser, the advertiser knows
whether that user came from paid ads or another channel.&lt;/p&gt;
&lt;p&gt;However, as ad campaigns get optimized and as some large ad platforms get control of the market,
ad attribution can sometimes get a little sketchy.
Another common way attribution works is using pixels or beacons.
To give a concrete example, if a person clicks an ad on Facebook that points to an ecommerce site,
the ecommerce site will usually have a Facebook pixel on their product pages, shopping cart pages and checkout page.
Facebook can then see how the ad click performed,
which items were &lt;a href="https://www.facebook.com/business/help/256019281275126/"&gt;added to their cart&lt;/a&gt;,
and if a &lt;a href="https://www.facebook.com/business/help/339239069606476"&gt;purchase was made&lt;/a&gt;.
This data can then feed into an ad optimization loop within Facebook.
Facebook will then offer to "optimize the ad campaign for conversions".
At EthicalAds, we have taken a hard stand against these kinds of ad pixels that track people across the web.&lt;/p&gt;
&lt;p&gt;A lot of privacy conscious users aren't too keen on being tracked across sites they browse
and that has led to a number of efforts to try to do ad attribution
without compromising user privacy.
Google Chrome's &lt;a href="https://privacysandbox.com/news/privacy-sandbox-update/"&gt;now scrapped&lt;/a&gt;
plans to &lt;a href="/blog/2021/03/cookie-changes-are-coming-to-ad-tech/"&gt;kill third-party cookies&lt;/a&gt;
were supposed to herald the end of some of the worst kinds of attribution
as well as some forms of invasive ad targeting.
However, with Google reversing their decision, these attribution methods will continue for a while longer.&lt;/p&gt;
&lt;div class="postimage text-center"&gt;
  &lt;img class="w-75" src="/images/posts/2024-mozilla-privacy-anonym.png" alt="Anonym's promise for ad attribution"&gt;
  &lt;p class="w-75 m-auto"&gt;&lt;small&gt;Anonym's promise for ad attribution: all the advertiser targeting benefits without compromising privacy (credit: &lt;a rel="noopener noreferrer nofollow" href="https://www.anonymco.com/"&gt;Anonym's website&lt;/a&gt;)&lt;/small&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h2 id="current-landscape-of-privacy-preserving-attribution"&gt;Current landscape of privacy-preserving attribution&lt;/h2&gt;
&lt;p&gt;In response to the outcry against tracking,
there's quite a few methods ad providers have tried
when it comes to private ad attribution.
Nobody seems to agree on how to do it.
At EthicalAds, we don't measure conversions for advertisers at all
because we haven't found a method that we've been happy with from a privacy perspective
and the methods outlined here that others have tried require controlling the browser:&lt;/p&gt;
&lt;h3 id="private-click-measurement-apple"&gt;Private Click Measurement (Apple)&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://webkit.org/blog/11529/introducing-private-click-measurement-pcm/"&gt;Private Click Measurement&lt;/a&gt; (PCM)
is an experimental, opt-in feature in the Safari browser championed by Apple.
It allows sites with advertising and ad networks to collect data on conversions
while having a number of &lt;a href="https://privacycg.github.io/private-click-measurement/#privacy"&gt;privacy protections&lt;/a&gt; to prevent cross-site tracking and attributing actions to specific users.
The way it works is that the site that the ads points to will inform the browser of a conversion
and the browser will at a later date report the conversion
through a proxy so the ad clicker's IP is not leaked.&lt;/p&gt;
&lt;p&gt;Apple &lt;a href="https://developer.apple.com/videos/play/wwdc2021/10033/"&gt;promoted this pretty hard&lt;/a&gt;
back in 2021 and 2022 but it never seemed to get off the ground.
As an interesting history, &lt;a href="https://blog.mozilla.org/en/mozilla/understanding-apples-private-click-measurement/"&gt;Mozilla released a blog&lt;/a&gt;
and &lt;a href="https://mozilla.github.io/ppa-docs/pcm.pdf"&gt;a more detailed analysis&lt;/a&gt;
of it that wasn't too favorable.
Because these kinds of proposals need to be implemented by multiple browsers
to become a standard, this all but killed Private Click Measurement.&lt;/p&gt;
&lt;p&gt;At EthicalAds, when Apple was promoting PCM, we tested it with our ad server.
It seemed like a promising approach, but there was no interest in PCM
from our advertisers so we never moved past testing.&lt;/p&gt;
&lt;h3 id="attribution-reporting-google"&gt;Attribution Reporting (Google)&lt;/h3&gt;
&lt;p&gt;Google is (was?) working on a number of privacy focused advertising features
as part of their &lt;a href="https://privacysandbox.com"&gt;Privacy Sandbox&lt;/a&gt; initiative.
One part of the Privacy Sandbox is &lt;a href="https://developers.google.com/privacy-sandbox/relevance/attribution-reporting"&gt;Attribution Reporting&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Attribution Reporting is currently an experimental, opt-in feature in Chrome
that is somewhat similar to Safari's PCM.
However, it differs by allowing measuring ad views in addition to clicks and conversions
and has more entropy -- more bits sent to the advertiser or ad network --
that could be used for more granular tracking of individual users
although far less than would be possible with a cookie.&lt;/p&gt;
&lt;p&gt;A major reason for the Privacy Sandbox features, however, was that Chrome was deprecating and removing
third-party cookies (as Safari and Firefox did) and that has been put on hold indefinitely.
As a result, it's unclear what will happen with Google's Attribution Reporting.&lt;/p&gt;
&lt;p&gt;Like PCM, we've never had an advertiser ask about this type of attribution reporting from Google
although we get requests (and respectfully decline) for Google ad pixels
which are the non-privacy friendly way of doing ad measurement and attribution.&lt;/p&gt;
&lt;h3 id="ad-confirmations-brave"&gt;Ad Confirmations (Brave)&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://brave.com/"&gt;Brave Browser&lt;/a&gt; blocks many analytics tools like Google Analytics
that helps advertisers report on their campaigns.
Many of those same tools can be used to track users across the web.
However, Brave also sells advertising and so they have built some &lt;a href="https://ads-help.brave.com/campaign-performance/reporting/#conversion-reporting-in-brave-ads-manager"&gt;ad attribution&lt;/a&gt;
directly into their browser.&lt;/p&gt;
&lt;p&gt;When a user clicks on an ad in Brave,
the Brave Browser watches if that user later visits a page that represents a conversion for that ad.
This allows Brave to report that conversion back in their ad reporting tools.
I couldn't find a lot of details on exactly how this works
and the &lt;a href="https://github.com/brave/brave-browser/wiki/Security-and-privacy-model-for-ad-confirmations"&gt;details I could find&lt;/a&gt;
related more to the blockchain-based rewards
Brave gives to users who interact with ads.&lt;/p&gt;
&lt;h2 id="how-does-private-ad-attribution-work-and-whats-mozilla-testing"&gt;How does private ad attribution work and what's Mozilla testing?&lt;/h2&gt;
&lt;p&gt;Many developers on HackerNews and elsewhere seemed to view Mozilla working on ad technology as a betrayal.
However, Mozilla has consistently tried to balance commercial benefits and public benefits
and has been open in the past to &lt;a href="https://blog.mozilla.org/en/mozilla/the-future-of-ads-and-privacy/"&gt;privacy-preserving advertising&lt;/a&gt;.
Like us, Mozilla believes that advertising without invasive tracking is possible.&lt;/p&gt;
&lt;blockquote class="blockquote mb-2"&gt;
  &lt;p class="mb-2"&gt;
    “Commercial involvement in the development of the internet brings many benefits; a balance between commercial profit and public benefit is critical.”
  &lt;/p&gt;
  &lt;p class="small"&gt;- &lt;a href="https://www.mozilla.org/en-US/about/manifesto/#principles-09"&gt;The Mozilla Manifesto&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Based on what &lt;a href="https://blog.mozilla.org/en/mozilla/mozilla-anonym-raising-the-bar-for-privacy-preserving-digital-advertising/"&gt;Mozilla has said publicly&lt;/a&gt;
about Privacy-Preserving Attribution (PPA),
their approach has a number of similarities to Apple's and Google's
but there's a few differences.
Also, although Meta isn't mentioned in their blog post,
Meta collaborated with Mozilla on their approach.&lt;/p&gt;
&lt;p&gt;Like Apple's and Google's approach, Mozilla plans to have a method
for the browser itself to record ad impressions and conversions.
As in Apple's approach, they intend to pass data through an anonymous proxy
in order to make sure the relevant parties don't pass around users' IP addresses.&lt;/p&gt;
&lt;p&gt;One big difference is that Mozilla is turning on PPA by default in Firefox.
This was one of the big points of contention among the developer and privacy communities.
However, for starters at least, it can only be used for Mozilla's own ad campaigns
on &lt;a href="https://developer.mozilla.org/en-US/"&gt;Mozilla Developer Network (MDN)&lt;/a&gt;.
They call this kind of restriction an &lt;a href="https://wiki.mozilla.org/Origin_Trials"&gt;"origin trial"&lt;/a&gt; because it is restricted by origin.&lt;/p&gt;
&lt;p&gt;Another big difference is the level of complexity of the proposal.
Apple's PCM implementation is actually pretty simple and attempts to keep data safe by collecting relatively little of it.
Google's proposal is also relatively straight-forward although, as I mentioned, weaker on privacy.
By contrast, Mozilla's proposal seems a lot more complex.&lt;/p&gt;
&lt;p&gt;PPA involves dividing up attribution data into pieces,
adding sufficient statistical noise to ensure privacy,
encrypting the pieces,
sending the parts up to different parties,
and then restricting the types of aggregation reports
possible that combine the two parts.
We'll have to see how their test on MDN goes
and see if we can verify some of these claims.&lt;/p&gt;
&lt;div class="postimage text-center"&gt;
  &lt;img class="w-75" src="/images/posts/2024-mozilla-ad-attribution.png" alt="Mozilla's proposal for ad attribution"&gt;
  &lt;p class="w-75 m-auto"&gt;&lt;small&gt;From Mozilla's &lt;a rel="noopener noreferrer nofollow" href="https://docs.google.com/document/d/1QMHkAQ4JiuJkNcyGjAkOikPKNXAzNbQKILqgvSNIAKw/edit"&gt;Outline of a private attribution measurement API&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;So far, there's been pretty wide agreement that some methods of ad attribution
are more invasive than others and are bad for users' privacy.
At EthicalAds, we think that a lot of people would benefit from more privacy-friendly ways of advertising.
However, as long as the less privacy friendly ways of doing ad attribution
are possible, legal, and the norm, there probably won't be much interest from advertisers
in other methods.
We are watching what Mozilla is doing with interest but it might just become &lt;a href="https://xkcd.com/927/"&gt;yet another competing standard&lt;/a&gt;.&lt;/p&gt;</content><category term="posts"/><category term="privacy"/><category term="adtech"/><category term="fingerprinting"/><category term="attribution"/></entry><entry><title>EthicalAds Newsletter - August 2024</title><link href="/blog/2024/08/ethicalads-newsletter-august-2024/" rel="alternate"/><published>2024-08-13T00:00:00-07:00</published><updated>2024-08-13T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2024-08-13:/blog/2024/08/ethicalads-newsletter-august-2024/</id><summary type="html">&lt;h2 id="new-features-from-the-previous-month"&gt;New features from the previous month&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;We released some quality of life improvements for advertisers
  around cropping and resizing ads …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features-from-the-previous-month"&gt;New features from the previous month&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;We released some quality of life improvements for advertisers
  around cropping and resizing ads to fit &lt;a href="/advertisers/ad-design-and-specs/"&gt;our specs&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;We wrote a &lt;a href="/blog/2024/07/ai-powered-niche-targeting-for-developer-marketers/"&gt;marketing piece&lt;/a&gt;
  on the AI-powered niche targeting we are building.
  This goes along with our more &lt;a href="/blog/2024/04/using-embeddings-in-production-with-postgres-django-for-niche-ad-targeting/"&gt;developer-focused explanation&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;We recently read
  &lt;a href="https://www.useronboard.com/user-onboarding-ux-design/training/"&gt;The Elements of User Onboarding&lt;/a&gt;
  by Samuel Hulick in our
  &lt;a href="/blog/2022/05/running-a-company-book-club-tips-what-we-read/"&gt;book club&lt;/a&gt;.
  Based on this, we made a few improvements to help our user onboarding including our
  new advertiser checklist and pointing to some existing guides we have to help advertisers
  create compelling ads.&lt;/li&gt;
&lt;li&gt;We made a small change to show the domain where the user will go
  when they click on an ad. This is a good move we've wanted to make in the name
  of user experience and transparency, a couple of our core differentiators as an ad network.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our
&lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;
and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="july-advertising-stats"&gt;July advertising stats&lt;/h2&gt;
&lt;p&gt;In July 2024:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$41,421.21&lt;/strong&gt; for our publishers and they'll receive this payout this Thursday.
  This is a little higher than June even accounting for the extra day in July.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;180 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;16,615,674&lt;/strong&gt; paid ad views across the world. Fairly unchanged from the previous month.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;July is having a little bit of a slow start,
but we expect to be inventory constrained within the next few days.
We are always looking for high-quality developer-focused sites
or free (ad supported) versions of developer-focused products to host our ads.
&lt;a href="/publishers/#inbound-form"&gt;Get in touch!&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for August:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We are continuing to work on our niche targeting
  using the &lt;a href="/advertisers/similar-pages/?url=https%3A%2F%2Fwww.mongodb.com%2Fatlas"&gt;ML embeddings/page similarity&lt;/a&gt; and building it into our ad serving.
  We started testing in July and performance was pretty bad. Keeping ads fast is very important to keeping them performant.
  We're going to continue working on this in August.&lt;/li&gt;
&lt;li&gt;We're continuing some of the work we started earlier this year on
  &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/index.html#automatic-ad-rotation"&gt;rotating ads automatically&lt;/a&gt;.
  We're going to begin rotating ads (with limits) when the tab is switched or the window is minimized
  and then comes back into focus.
  This feature is now complete and we're going to be testing it this month.&lt;/li&gt;
&lt;li&gt;We are working on some changes to support a "run of network" blend across geos and topics.
  Many our advertisers buy geo-targeted campaigns
  and we want an easy way to buy campaigns that give a good mix of traffic across a range of geos
  while still making sure the campaign fills a minimum percentage in specific regions.
  Think of a campaign that will fill 25% in North America, 25% in Europe, and 25% across Asia,
  and 25% the rest of the world.
  The changes to make this possible are mostly built already and most of this work will be
  to position and price these campaigns. This lets advertisers buy a wide cross-section
  of our network and then focus on what is performing best and lets us ensure we sell more of our
  hard-to-sell traffic for our publishers.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="/contact/"&gt;let us know&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/><category term="build-in-public"/></entry><entry><title>AI-Powered Niche Targeting for Developer Marketers</title><link href="/blog/2024/07/ai-powered-niche-targeting-for-developer-marketers/" rel="alternate"/><published>2024-07-09T00:00:00-07:00</published><updated>2024-07-09T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2024-07-09:/blog/2024/07/ai-powered-niche-targeting-for-developer-marketers/</id><summary type="html">&lt;p&gt;Showing the right ad to the right audience is critical to get great performance from advertising.
Imagine you have a …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Showing the right ad to the right audience is critical to get great performance from advertising.
Imagine you have a powerful new tool to help ReactJS developers;
showing this to potential customers already using React and JavaScript
is the best way to make every ad dollar count.&lt;/p&gt;
&lt;p&gt;Unlike many display networks that target more broadly,
at EthicalAds, we've always tried show the most relevant ad
in order to get the best performance for our advertisers.
However, advertisers frequently ask how to reach small and more focused groups of developers
that match their product more finely than &lt;a href="/advertisers/#audiences"&gt;our core audiences&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This is why we built a new contextual targeting method that uses AI (ok, it's machine learning) to match
ads and their landing pages to the most similar pages across our network where ads appear.
This will allow serving ads to highly-relevant audiences for almost any type of developer-focused product.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This post is aimed at developer marketers, but if you're interested in the tech
behind this niche targeting and you believe that AI only exists on a PowerPoint
while machine learning happens in Python, check out our
&lt;a href="/blog/2024/04/using-embeddings-in-production-with-postgres-django-for-niche-ad-targeting/"&gt;developer-focused post&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="why-ai-targeted-ads-are-great-for-marketers-developers-and-privacy"&gt;Why AI targeted ads are great for marketers, developers and privacy&lt;/h2&gt;
&lt;p&gt;Historically, display ads have worked best for targeting pretty broad audiences
and focusing on the top of the marketing funnel.
Search ads have been better for specific niches and reaching people who are actively searching for solutions that your product solves.
If you have a product that helps with Kubernetes setups,
reaching developers already struggling with Kubernetes' complexity (and searching Google for solutions)
was the best way. Display ads just couldn't target finely enough.&lt;/p&gt;
&lt;p&gt;However, AI has enabled matching any developer niche to pages across our ad network.
Specifically, it can find sites and pages that pertain to Kubernetes' deployments
and show very contextually relevant ads on them.
Marketers reach the right audience and developers don't get off topic ads.&lt;/p&gt;
&lt;p&gt;Now, you might be thinking, "AI-targeted ads and privacy? Ya right!".
However, instead of relying on data collection,
modern machine learning algorithms can analyze pages
where ads appear and see how similar they are to the ad itself, the company's website and landing pages
without needing to know anything about the user themselves.
So yes, AI-targeted ads can indeed be great for privacy.
It's like having your cake and eating it too, but without anyone spying on your cake preferences.&lt;/p&gt;
&lt;h2 id="niche-targeting-prototype-and-case-study"&gt;Niche targeting prototype and case study&lt;/h2&gt;
&lt;p&gt;While we're still building and refining the capabilities for this targeting,
we wanted to show some early examples of just how it will work.
Here's a &lt;a href="https://www.ethicalads.io/advertisers/similar-pages/?url=https%3A%2F%2Fwww.mongodb.com%2Fatlas"&gt;niche targeting example&lt;/a&gt; where you can see how we're able to target ads
specifically focusing on MongoDB and databases, when serving a MongoDB ad.&lt;/p&gt;
&lt;div class="postimage text-center"&gt;
  &lt;img class="w-75 shadow-lg" src="/images/posts/niche-targeting.png" alt="Niche targeting for MongoDB which matches MongoDB related content"&gt;
  &lt;p&gt;&lt;a href="https://www.ethicalads.io/advertisers/similar-pages/?url=https%3A%2F%2Fwww.mongodb.com%2Fatlas"&gt;Niche targeting example for MongoDB&lt;/a&gt; which matches MongoDB related content&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;If you sell a developer-focused product, you can
&lt;a href="https://www.ethicalads.io/advertisers/similar-pages/?url=https%3A%2F%2Fwww.mongodb.com%2Fatlas"&gt;try it&lt;/a&gt; with your own landing page
and see some of the closest matching across our network.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Tip: the more verbose your landing page is and the more it describes your product in specific terms,
the better this will work.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;We're still refining this and we plan to replace the fairly generic AI model we're using
with a model with more knowledge of the different developer tools, technologies,
and languages. There's also a lot of knobs to twist to set how close an ad needs to be
to the page it appears to be "close enough" but all those details are coming together.&lt;/p&gt;
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;While this approach is still in its early stages,
the end goal is that this new niche targeting will allow us to show ads for almost any product
on highly relevant pages and get great ad performance.
Like search ads, it will let marketers reach people already using the relevant technologies
to the product being offered.&lt;/p&gt;
&lt;p&gt;This is our vision for developer marketing and we're excited with the early results we're seeing.
&lt;a href="https://www.ethicalads.io/advertisers/similar-pages/?url=https%3A%2F%2Fwww.mongodb.com%2Fatlas"&gt;Try the demo&lt;/a&gt; with your product or service
and if the matching pages look like good places where your ad could reach the audience you're looking for,
&lt;a href="/advertisers/#inbound-form"&gt;let's chat&lt;/a&gt; about your next campaign.&lt;/p&gt;</content><category term="posts"/><category term="content-targeting"/></entry><entry><title>EthicalAds Newsletter - July 2024</title><link href="/blog/2024/07/ethicalads-newsletter-july-2024/" rel="alternate"/><published>2024-07-08T00:00:00-07:00</published><updated>2024-07-08T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2024-07-08:/blog/2024/07/ethicalads-newsletter-july-2024/</id><summary type="html">&lt;h2 id="new-features-from-the-previous-month"&gt;New features from the previous month&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;We released a downloadable &lt;a href="/advertisers/creatives-that-convert/"&gt;"Creatives that Convert"&lt;/a&gt; guide
  with data specific to our network …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features-from-the-previous-month"&gt;New features from the previous month&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;We released a downloadable &lt;a href="/advertisers/creatives-that-convert/"&gt;"Creatives that Convert"&lt;/a&gt; guide
  with data specific to our network and ads from real advertisers
  where they changed the copy, image, or targeting to get a performance boost.
  It's gated content that we're using for marketing but we're happy to share it with
  any client or prospective client past or present.&lt;/li&gt;
&lt;li&gt;We updated our &lt;a href="/prospectus/ethicalads-advertiser-prospectus.pdf"&gt;prospectus&lt;/a&gt; for Q3.
  The biggest change is that we are now discounting campaigns that automatically renew.
  Advertisers can opt-in to have their campaign automatically renew
  and get a 10% discount for doing so. Most of our business is already from renewals
  but knowing how many campaigns are renewing will help us better plan our inventory
  and avoid any gaps in ad sales.&lt;/li&gt;
&lt;li&gt;There are some new improvements to our ad client
  specifically requested by publishers to help them detect, manage, and report errors.
  Basically, we overhauled how our client logs warnings and errors to more closely align
  with what publishers want on their sites.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our
&lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;
and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="may-advertising-stats"&gt;May advertising stats&lt;/h2&gt;
&lt;p&gt;In June 2024:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$39,392.12&lt;/strong&gt; for our publishers.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;179 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;16,769,158&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;June ended up a bit better than May and we continue to have very little open inventory in July.
We are expecting another fairly strong month and we're running into limits finding additional
high quality sites to show ads.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for July:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We have some quality of life improvements coming from advertisers
  around cropping and resizing ads to fit our specs.
  These are ready and will be released in the coming days.&lt;/li&gt;
&lt;li&gt;We are working our niche targeting
  using the &lt;a href="/advertisers/similar-pages/?url=https%3A%2F%2Fwww.mongodb.com%2Fatlas"&gt;ML embeddings/page similarity&lt;/a&gt; into our ad serving. At first, we are rolling this out to a small number
  of campaigns to make sure we get the performance (both click-through rates as well as serving speed)
  we need to roll this out more widely. We're starting wider testing this month in July.&lt;/li&gt;
&lt;li&gt;We are working on a small change to our ad format to show the domain where the user will go
  when they click on an ad. We've wanted this for a while and we think it's a good move in the name
  of transparency, one of our core differentiators as a network.&lt;/li&gt;
&lt;li&gt;We're continuing some of the work we started earlier this year on
  &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/index.html#automatic-ad-rotation"&gt;rotating ads automatically&lt;/a&gt;.
  We're going to begin rotating ads (with limits) when the tab is switched or the window is minimized
  and then comes back into focus.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="/contact/"&gt;let us know&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/><category term="build-in-public"/></entry><entry><title>EthicalAds Newsletter - June 2024</title><link href="/blog/2024/06/ethicalads-newsletter-june-2024/" rel="alternate"/><published>2024-06-13T00:00:00-07:00</published><updated>2024-06-13T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2024-06-13:/blog/2024/06/ethicalads-newsletter-june-2024/</id><summary type="html">&lt;h2 id="new-features-from-the-previous-month"&gt;New features from the previous month&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;We released an &lt;a href="/advertisers/help-with-your-ads/"&gt;advertiser testimonial&lt;/a&gt;
  from &lt;a href="https://checkmk.com/?utm_source=ethicalads-testimonial"&gt;Checkmk&lt;/a&gt;,
  a company in the IT/infrastructure monitoring …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features-from-the-previous-month"&gt;New features from the previous month&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;We released an &lt;a href="/advertisers/help-with-your-ads/"&gt;advertiser testimonial&lt;/a&gt;
  from &lt;a href="https://checkmk.com/?utm_source=ethicalads-testimonial"&gt;Checkmk&lt;/a&gt;,
  a company in the IT/infrastructure monitoring space,
  that highlights how collaborating on getting the targeting, messaging, and ad copy all right
  helped them significantly improve their lead volume without increasing campaign costs.
  We believe this kind of feedback loop with a real person who knows our network and audience well
  is one of the strongest selling points of our network.&lt;/li&gt;
&lt;li&gt;We made a few changes to how we send transactional emails,
  that is, emails to advertisers and publishers who have actively signed up.
  Some of our emails were going to spam
  despite our best efforts to not spam people, only email people who sign up,
  and stop when they opt-out. We're hoping to have less of that going forward.&lt;/li&gt;
&lt;li&gt;Most of our ad server related updates this month focused
  on helping us better serve and triage support requests.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our
&lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;
and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="may-advertising-stats"&gt;May advertising stats&lt;/h2&gt;
&lt;p&gt;In May 2024:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$37,051.13&lt;/strong&gt; for our publishers.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;183 publishers&lt;/strong&gt; on our network with at least one paid ad impression. This number is slowly creeping up as we attempt to build our network while maintaining the quality.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;14,657,971&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;May wasn't a great month but it was a good sized improvement on April.
June is shaping up to be even better.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for June:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We are almost done with a downloadable advertiser guide
  with data specific to our network and ads from real advertisers
  where they changed the copy, image, or targeting to get a performance boost.&lt;/li&gt;
&lt;li&gt;We are going to begin discounting campaigns that automatically renew.
  Advertisers will be able to opt-in to have their campaign automatically renew
  and get a 10% discount for doing so. Most of our business is already from renewals
  but knowing how many campaigns are renewing will help us better plan our inventory
  and avoid any gaps in ad sales.&lt;/li&gt;
&lt;li&gt;There are some publisher requested features to our ad client that will be released
  in the next couple weeks as well. These changes relate to how and when the client
  logs events and makes setup and integration mistakes more obvious.&lt;/li&gt;
&lt;li&gt;We are still working on better niche targeting
  using the &lt;a href="/advertisers/similar-pages/?url=https%3A%2F%2Fwww.mongodb.com%2Fatlas"&gt;ML embeddings/page similarity&lt;/a&gt; features and use it directly in our ad serving.&lt;/li&gt;
&lt;li&gt;It may get pushed to July, but we're working on some advertiser quality of life improvements
  to help with resizing and cropping images.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="/contact/"&gt;let us know&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/><category term="build-in-public"/></entry><entry><title>EthicalAds Newsletter - May 2024</title><link href="/blog/2024/05/ethicalads-newsletter-may-2024/" rel="alternate"/><published>2024-05-14T00:00:00-07:00</published><updated>2024-05-14T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2024-05-14:/blog/2024/05/ethicalads-newsletter-may-2024/</id><summary type="html">&lt;h2 id="new-features-from-april"&gt;New features from April&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;We did a wider demo and tech explanation of our
  &lt;a href="/advertisers/similar-pages/?url=https%3A%2F%2Fwww.mongodb.com%2Fatlas"&gt;page similarity&lt;/a&gt;
  features that will help …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features-from-april"&gt;New features from April&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;We did a wider demo and tech explanation of our
  &lt;a href="/advertisers/similar-pages/?url=https%3A%2F%2Fwww.mongodb.com%2Fatlas"&gt;page similarity&lt;/a&gt;
  features that will help us target small audiences by matching pages where our ads appear directly
  with advertiser landing pages.
  The integration into our ad targeting is still being worked on and should be released later this month
  or early June.&lt;/li&gt;
&lt;li&gt;We released a UX improvement for advertisers to let them more easily and quickly
  compare campaigns on a CTR and eCPC basis.&lt;/li&gt;
&lt;li&gt;We had a content piece exploring the trade-offs publishers make and why
  &lt;a href="/blog/2024/05/why-some-sites-show-more-ads-than-content/"&gt;some pages have more ads than content&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our
&lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;
and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="april-advertising-stats"&gt;April advertising stats&lt;/h2&gt;
&lt;p&gt;In April 2024:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$34,269.56&lt;/strong&gt; for our publishers.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;179 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;14,605,508&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;April was not a particularly strong month for us due to a few advertisers pulling back simultaneously.
However, the latter half of the month was much better and while May isn't shaping up to be stellar,
it looks much better than April.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for May:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We are going to do a marketing blog post to go along with our
  &lt;a href="/blog/2024/04/using-embeddings-in-production-with-postgres-django-for-niche-ad-targeting/"&gt;tech blog&lt;/a&gt;
  about the new similar pages/niche targeting functionality.&lt;/li&gt;
&lt;li&gt;We are building some additional integrations to get better niche targeting
  using the same embeddings features and use it directly in our ad serving.&lt;/li&gt;
&lt;li&gt;We are working on some additional testimonials around the "agency-lite"
  features we provide to advertisers to help ensure their campaigns are successful.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="/contact/"&gt;let us know&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/><category term="build-in-public"/></entry><entry><title>Why Some Sites Show More Ads Than Content</title><link href="/blog/2024/05/why-some-sites-show-more-ads-than-content/" rel="alternate"/><published>2024-05-02T00:00:00-07:00</published><updated>2024-05-02T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2024-05-02:/blog/2024/05/why-some-sites-show-more-ads-than-content/</id><summary type="html">&lt;p&gt;Across the Internet, websites adopt different strategies when it comes to incorporating advertisements.
Some sites carefully curate ad placements to …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Across the Internet, websites adopt different strategies when it comes to incorporating advertisements.
Some sites carefully curate ad placements to offer a seamless and unobtrusive browsing experience for their visitors.
On the other hand, some sites bombard visitors with more ads than content, including autoplay videos,
pop-ups (thankfully an endangered species due to dedicated work by browser vendors), or ads that try to trick people into clicking them. I like to call these simply bad ads.&lt;/p&gt;
&lt;p&gt;At EthicalAds, we don't want to overwhelm people with ads and have focused on the less heavy-handed approach,
and we try to make sure that ads complement the content of sites.
In this post, I want to go deeper into why some sites go for an ad experience
that complements content rather than getting in the way
while others show as many obtrusive ads as possible.&lt;/p&gt;
&lt;h2 id="economics-of-internet-ads-dollars-and-cents"&gt;Economics of Internet ads: dollars and cents&lt;/h2&gt;
&lt;p&gt;On the surface, why some sites have a barrage of bad ads is obvious.
More ads, larger ads, and particularly video ads make more money for site owners.
Advertisers are willing to pay more for ad placements that have greater visibility.
This translates into a tempting proposition for site owners seeking to maximize their earnings, but comes at a cost.&lt;/p&gt;
&lt;p&gt;These higher revenue ads often come at the expense of user experience.
Overloading pages with ads, especially intrusive formats like autoplay videos, leads to users being frustrated.
While such aggressive ad strategies may yield short-term gains in terms of ad revenue, they risk alienating users in the long run,
diminishing the likelihood of repeat visits and generally making a site less usable.
For most sites, prioritizing the user experience and having less obtrusive ads with a network like EthicalAds will maximize their long-term revenue.&lt;/p&gt;
&lt;p&gt;The owner of a site that writes about Linux server management and optimization
applied recently about becoming a publisher with EthicalAds.
The site and content were good but in their application they wrote:&lt;/p&gt;
&lt;blockquote class="blockquote mb-2"&gt;
  &lt;p class="mb-2"&gt;
    “I have been trying to transition away from large video and image ads as they slow down my website. I'm hoping EthicalAds will not only be lightweight, but also not compromise current earnings of ~$4-8 CPM.”
  &lt;/p&gt;
  &lt;p class="small"&gt;- A recent Linux-focused publisher prospect&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Unfortunately I had to respond that we aren't really competing against large format or video ads
and that they necessarily pay a higher CPM (our &lt;a href="/advertisers/#pricing"&gt;pricing&lt;/a&gt; is public and sites earn 70% of what advertisers pay).
This exchange clearly illustrates the trade-off between revenue and UX for site owners.
We generally beat networks and ads with a similar ad footprint to ours
in terms of revenue as our target market is premium quality developer-focused sites,
and we're not trying to have our ads get lost in a sea of ads on a lower quality site.&lt;/p&gt;
&lt;h2 id="a-barrage-of-ads-for-drive-by-visitors"&gt;A barrage of ads for drive-by visitors&lt;/h2&gt;
&lt;p&gt;So why do some sites go with the minimalist approach while some fill their site with ads?
The answer has to do with where the traffic for the site comes from.&lt;/p&gt;
&lt;div class="postimage text-center"&gt;
  &lt;img class="w-100 shadow-lg" src="/images/posts/2024-overwhelmed-with-ads.jpg" alt="The first hit on Google for 'what is my user agent' showing no less than 4 ads"&gt;
  &lt;p&gt;The first hit on Google for "what is my user agent" showing no less than 4 ads&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;If the site is optimized for repeat visitors, then the site owner frequently sees more long-term value by not alienating users and keeping up the user experience.
By contrast, sites that only get "drive-by visitors", that is users who visit the single thing they're looking for before bouncing, are not and frequently go with the heavier ad approach.
The visitor isn't coming back so the best approach for the site is to get any ad revenue they can.
Sites like parking pages, content SEO farms, and many &lt;a href="/blog/2021/05/how-invasive-ad-targeting-is-bad-for-journalism-and-other-high-quality-publishers/"&gt;low quality sites&lt;/a&gt; fall into this category
of sites that aren't looking for repeat visitors and that's why they typically show lots of bad ads.&lt;/p&gt;
&lt;p&gt;To highlight this example, I did a Google search for "What is my user agent".
A user agent is something browsers send when requesting a webpage and it identifies your browser as Google Chrome on Mac OS for example.
The first result on Google is a site that answers this question exactly.
However, visitors aren't going to browse the rest of the site or bookmark it for the future.
As a result, the site tries capitalize on ad revenue rather than cultivating a lasting relationship
and has 4 ads as well as another modal ad when I went to close the tab.&lt;/p&gt;
&lt;h2 id="repeat-visitors-hate-bad-ads"&gt;Repeat visitors hate bad ads&lt;/h2&gt;
&lt;p&gt;For users who frequent a website, encountering intrusive ads can be particularly jarring and off-putting.
Bad ads not only disrupt the browsing experience but also erode trust in the site.
For a site built on repeat visitors, bad ads sacrifice the long-term viability
for short term revenue.&lt;/p&gt;
&lt;div class="postimage text-center"&gt;
  &lt;img class="w-75 shadow-lg" src="/images/pages/testimonials/pallets-screenshot.png" alt="Flask's documentation focuses on their content. The developer-focused ad complements without getting in the way."&gt;
  &lt;p class="w-75 m-auto"&gt;Flask's documentation focuses on their content. The developer-focused ad complements without getting in the way.&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;Sites across our network prioritize long-term visitors rather than focusing on short-term revenue
and a barrage of bad ads.
Taking a look at some of &lt;a href="/publishers/list/"&gt;our publishers&lt;/a&gt;
such as the &lt;a href="/publishers/pallets/"&gt;Flask microframework&lt;/a&gt;,
they lead with their content and don't overwhelm users with ads.
This approach keeps developers coming back to their site.&lt;/p&gt;
&lt;p&gt;At EthicalAds, we believe in an ad experience that respects the integrity of content
while maximizing revenue potential over the long run.
This &lt;a href="/advertising-vision/"&gt;advertising vision&lt;/a&gt; helped us build a network of high-quality publishers that works for developer-focused advertisers.
If that sounds like the right fit for your site or for your next marketing campaign,
&lt;a href="/contact/"&gt;get in touch&lt;/a&gt;!&lt;/p&gt;</content><category term="posts"/><category term="publishers"/></entry><entry><title>Using embeddings in production with Postgres &amp; Django for niche ad targeting</title><link href="/blog/2024/04/using-embeddings-in-production-with-postgres-django-for-niche-ad-targeting/" rel="alternate"/><published>2024-04-23T00:00:00-07:00</published><updated>2024-04-23T00:00:00-07:00</updated><author><name>Eric Holscher</name></author><id>tag:None,2024-04-23:/blog/2024/04/using-embeddings-in-production-with-postgres-django-for-niche-ad-targeting/</id><summary type="html">&lt;p&gt;This is an update to our original post on &lt;a href="https://www.ethicalads.io/blog/2022/11/a-new-approach-to-content-based-targeting-for-advertising/"&gt;content-based ad targeting&lt;/a&gt;.
In this post, I'll talk a bit more …&lt;/p&gt;</summary><content type="html">&lt;p&gt;This is an update to our original post on &lt;a href="https://www.ethicalads.io/blog/2022/11/a-new-approach-to-content-based-targeting-for-advertising/"&gt;content-based ad targeting&lt;/a&gt;.
In this post, I'll talk a bit more about our next step, using machine learning (embeddings specifically) to build better contextual ad targeting.&lt;/p&gt;
&lt;p&gt;At the end of our last post,
we were crawling all our publisher's pages,
and categorizing pages into &lt;em&gt;Topics&lt;/em&gt; based on page text.
We did this by training a model with ~100 examples of each topic,
and then storing the topics in our database for fast ad serving.&lt;/p&gt;
&lt;p&gt;This gave us a good starting point for targeting ads by topic,
but we wanted to get more granular.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This post is written for developers, but if you're interested in how this applies to marketers, check out our
&lt;a href="/blog/2024/07/ai-powered-niche-targeting-for-developer-marketers/"&gt;marketing-focused post&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="targeting-each-page-individually-with-embeddings"&gt;Targeting each page individually with embeddings&lt;/h2&gt;
&lt;p&gt;Our new approach is to use &lt;a href="https://en.wikipedia.org/wiki/Word_embedding"&gt;word embeddings&lt;/a&gt; to represent both the advertisers landing page and the publisher pages.
This allows us to generate a representation of these pages,
which can be compared against each other.&lt;/p&gt;
&lt;p&gt;We're currently using Python's &lt;a href="https://www.sbert.net/"&gt;SentenceTransformers&lt;/a&gt; library to generate these embeddings.
We will likely upgrade to a more advanced model in the future,
but this was perfect for our initial tests.&lt;/p&gt;
&lt;h3 id="generating-storing-and-querying-embeddings"&gt;Generating, storing, and querying embeddings&lt;/h3&gt;
&lt;p&gt;A simple example of what this looks like might be:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;bs4&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;sentence_transformers&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;SentenceTransformer&lt;/span&gt;

&lt;span class="c1"&gt;# Generate embeddings for a page&lt;/span&gt;

&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;SentenceTransformer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;MODEL_NAME&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;cache_folder&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;CACHE_FOLDER&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;BeautifulSoup&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;html.parser&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get_text&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;embedding&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;encode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;embedding&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tolist&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;We're then using &lt;a href="https://github.com/pgvector/pgvector"&gt;pgvector&lt;/a&gt; and &lt;a href="https://github.com/pgvector/pgvector-python"&gt;pgvector-python&lt;/a&gt; to manage these embeddings in Django &amp;amp; Postgres,
which is what we're already using in production.&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;django.db&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;models&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;pgvector.django&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;VectorField&lt;/span&gt;

&lt;span class="c1"&gt;# Store the content in Postgres/Django&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Embedding&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;models&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Model&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="c1"&gt;# FK where we keep metadata about the URL&lt;/span&gt;
    &lt;span class="n"&gt;analyzed_url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;models&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ForeignKey&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;AnalyzedUrl&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;on_delete&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;models&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CASCADE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;related_name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;embeddings&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# Model name so we can use different models in the future&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;models&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CharField&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;max_length&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;default&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;null&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;blank&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# The actual embedding&lt;/span&gt;
    &lt;span class="n"&gt;vector&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;VectorField&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dimensions&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;384&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;default&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;null&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;blank&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Then we're able to query the database for the most similar publisher pages to an advertiser's landing page:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;pgvector.django&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;CosineDistance&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;.models&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Embedding&lt;/span&gt;

&lt;span class="c1"&gt;# Find the most similar ads for the page we&amp;#39;re serving an ad on&lt;/span&gt;

&lt;span class="n"&gt;Embedding&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;objects&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;annotate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;distance&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;CosineDistance&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;vector&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;embedding&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;order_by&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;distance&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;h2 id="try-out-a-demo"&gt;Try out a demo&lt;/h2&gt;
&lt;p&gt;You can see a screenshot of our niche targeting in action at the top of this page.
This is a simple proof of concept,
but you can see how we're able to target ads specifically focusing on MongoDB and Databases,
when serving a MongoDB ad.&lt;/p&gt;
&lt;p&gt;You can &lt;a href="https://www.ethicalads.io/advertisers/similar-pages/?url=https%3A%2F%2Fwww.mongodb.com%2Fatlas"&gt;try out our Niche Targeting Demo&lt;/a&gt;,
and let us know how it goes!&lt;/p&gt;
&lt;h2 id="advantages-of-niche-targeting"&gt;Advantages of Niche Targeting&lt;/h2&gt;
&lt;p&gt;There is a huge win both in terms of privacy and user experience with this approach:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;We're able to target ads to pages without needing to know anything about the user.&lt;/strong&gt; The better we get at targeting, the more powerful our ethical advertising approach becomes, and the larger we can scale out network.&lt;/li&gt;
&lt;li&gt;The user experience of minimalist, well-targeted ads is better. We're able to show fewer ads and charge more for them because they perform better. This is a win-win for everyone.&lt;/li&gt;
&lt;li&gt;We were able to implement this approach with minimal changes to our existing infrastructure, mostly because we're already heavily invested in the Python ecosystem and Postgres.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="challenges-and-considerations"&gt;Challenges and Considerations&lt;/h2&gt;
&lt;p&gt;We have a few challenges to overcome with this approach:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We currently aim for 50ms for ad response time, and this approach is currently slower than that. We're working on optimizing this with indexing, and might look at using an in-memory vector store in the future.&lt;/li&gt;
&lt;li&gt;Embeddings currently work pretty well, but can often associate things that are not relevant. For example, we're run into issues where the same words are used to mean different things (eg. "model"), and the embeddings can get confused.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;This approach is still in its early stages, but we're excited about the potential.
The better we can get at ethical ad targeting,
everyone in our network benefits:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Advertisers&lt;/strong&gt; get better ad targeting, ensuring they show up in front of the right users.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Publishers&lt;/strong&gt; get more money while showing a single ad rather than resorting to multiple, larger ads that take over their site&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Users&lt;/strong&gt; get a better experience, with ads that are relevant to the content they are reading.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is our vision for advertising,
and we're excited about the potential of this approach.&lt;/p&gt;
&lt;p&gt;Thanks so much to Simon Willison for his &lt;a href="https://simonwillison.net/2023/Oct/23/embeddings/"&gt;blog post on embeddings&lt;/a&gt;,
which is what inspired me to try this approach.&lt;/p&gt;</content><category term="posts"/><category term="content-targeting"/><category term="engineering"/><category term="postgresql"/></entry><entry><title>EthicalAds Newsletter - April 2024</title><link href="/blog/2024/04/ethicalads-newsletter-april-2024/" rel="alternate"/><published>2024-04-11T00:00:00-07:00</published><updated>2024-04-11T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2024-04-11:/blog/2024/04/ethicalads-newsletter-april-2024/</id><summary type="html">&lt;h2 id="new-features-from-march"&gt;New features from March&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;We shipped an updated version of our &lt;a href="/publisher-guide/"&gt;publisher guide&lt;/a&gt;
  with simplified graphics and explainers about what …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features-from-march"&gt;New features from March&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;We shipped an updated version of our &lt;a href="/publisher-guide/"&gt;publisher guide&lt;/a&gt;
  with simplified graphics and explainers about what we expect from publishers
  and how they can get the most out of EthicalAds.&lt;/li&gt;
&lt;li&gt;We released a new &lt;a href="/advertisers/pricing/"&gt;advertiser pricing page&lt;/a&gt;.
  While our pricing was always upfront, we think having a dedicated pricing page
  in our core navigation will help us set the tone for how we're upfront and transparent with advertisers.&lt;/li&gt;
&lt;li&gt;We're continuing to make progress on our
  &lt;a href="/blog/2022/11/a-new-approach-to-content-based-targeting-for-advertising/"&gt;machine learning based niche targeting&lt;/a&gt;.
  These changes will let us target a lot of smaller audiences that were previously too hard or too small to target.
  We're going to do a bigger launch with blogs and social media explaining this change in April,
  but you can see a technology demo where we show the ability to find similar pages to an advertiser's product or landing page &lt;a href="/advertisers/similar-pages/?url=https%3A%2F%2Fwww.mongodb.com%2Fatlas"&gt;here&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our
&lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;
and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="march-advertising-stats"&gt;March advertising stats&lt;/h2&gt;
&lt;p&gt;In March 2024:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$44,375.69&lt;/strong&gt; for our publishers.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;177 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;17,592,121&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;March was a very strong month but we're seeing a little softness in early April.
Some of this may be seasonality but we're seeing some established advertisers
pulling back in April.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for April:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;As I highlighted above, we're aiming for a bigger launch for our niche targeting features
  including blog posts and working them into our actual ad serving algorithms.&lt;/li&gt;
&lt;li&gt;We are continuing to work on some UX improvements for advertisers
  including better ways to compare campaigns with different prices and CTR on an eCPC basis.&lt;/li&gt;
&lt;li&gt;We aim to release an improvement to our ad rotation features we were working on a few months back.
  Specifically, we are going to try rotating an ad when somebody backgrounds a tab and returns
  to it after a certain amount of time. This kind of change requires some trial and error
  and testing to make sure performance stays as good or gets better,
  but we're excited to keep iterating on ad rotation to make our network better for publishers.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="/contact/"&gt;let us know&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/><category term="build-in-public"/></entry><entry><title>EthicalAds Newsletter - March 2024</title><link href="/blog/2024/03/ethicalads-newsletter-march-2024/" rel="alternate"/><published>2024-03-05T00:00:00-08:00</published><updated>2024-03-05T00:00:00-08:00</updated><author><name>David Fischer</name></author><id>tag:None,2024-03-05:/blog/2024/03/ethicalads-newsletter-march-2024/</id><summary type="html">&lt;p&gt;There's a small change from past newsletters for this month.
Rather than publishing a February newsletter in early March,
we're …&lt;/p&gt;</summary><content type="html">&lt;p&gt;There's a small change from past newsletters for this month.
Rather than publishing a February newsletter in early March,
we're just going to call it our March update.
What isn't changing is that we're still going to discuss our progress
from February and what's coming in the rest of March.&lt;/p&gt;
&lt;h2 id="new-features-from-february"&gt;New features from February&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;We released a feature to target campaigns by the day of the week.
  This was a minor feature but a couple advertisers wanted to run only weekend campaigns.
  We've discussed it in the past, but our network's traffic on weekends
  is less than half a normal weekday.&lt;/li&gt;
&lt;li&gt;We've made a lot of progress toward some big changes in our
  &lt;a href="/blog/2022/11/a-new-approach-to-content-based-targeting-for-advertising/"&gt;machine learning based contextual targeting&lt;/a&gt;.
  These changes will let us target a lot of niches that were previously too hard or too small to target.
  We are still aiming for a public demo this month!&lt;/li&gt;
&lt;li&gt;We are experimenting with some self-serve features to let advertisers
  who know exactly what they want to start a campaign without doing a call with a &lt;s&gt;co-founder&lt;/s&gt; sales rep.&lt;/li&gt;
&lt;li&gt;In related news, we are onboarding a sales rep to help with ad sales
  and publisher outreach. Eric Raszewski is the newest member of our small team
  and has been helping with some sales automation and working
  both our advertiser and publisher funnels.&lt;/li&gt;
&lt;li&gt;There were some UX and other improvements aimed at new and returning publisher
  including added support for GitHub Sponsors as a payout option.
  We're very focused on acquiring premium publishers right now and we're
  promising we'll beat their existing ad network's revenue
  for a similar placement by 10% for at least 3 months.&lt;/li&gt;
&lt;li&gt;We released a &lt;a href="/publishers/calculator/"&gt;publisher revenue calculator&lt;/a&gt;
  to help publishers get an idea of how much they'll earn with EthicalAds.
  If you try it out, we'd love &lt;a href="/contact/"&gt;your feedback&lt;/a&gt;. It's new!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our
&lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;
and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="february-advertising-stats"&gt;February advertising stats&lt;/h2&gt;
&lt;p&gt;In February 2024:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$47,124.69&lt;/strong&gt; for our publishers.
  This is just a little shy of our best month (March 2023)
  but on a 30 day basis, it is the best we've had.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;177 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;19,009,922&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This near revenue record is mostly due to us bringing on a few good sized publishers
this month including &lt;a href="https://eslint.org/"&gt;eslint.org&lt;/a&gt; and &lt;a href="https://dev.to/"&gt;dev.to&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for March:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;As I mentioned above, we're aiming for a technology demo
  for our updated ML targeting where advertisers can see the most relevant
  pages on our network to their landing or product page. We're really excited for this.&lt;/li&gt;
&lt;li&gt;We're working on a number of landing pages focused on publishers
  and generally smoothing out our onboarding process for publishers.
  To start, this will be an updated &lt;a href="/publisher-guide/"&gt;publisher guide&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;We have some UX improvements coming for advertisers as well
  including better ways to compare campaigns with different prices and CTR on an eCPC basis.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="/contact/"&gt;let us know&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/><category term="build-in-public"/></entry><entry><title>EthicalAds Newsletter - January 2024</title><link href="/blog/2024/02/ethicalads-newsletter-january-2024/" rel="alternate"/><published>2024-02-13T00:00:00-08:00</published><updated>2024-02-13T00:00:00-08:00</updated><author><name>David Fischer</name></author><id>tag:None,2024-02-13:/blog/2024/02/ethicalads-newsletter-january-2024/</id><summary type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;Our progress in January was:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We rolled out initial support for ad rotations across our network to all …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;Our progress in January was:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We rolled out initial support for ad rotations across our network to all publishers.
  Currently, we're only rotating ads that have been visible a full minute
  and then only when the user navigates an in-page link.
  Overall, about 1% of ads are being rotated based on these metrics
  with no drop in ad performance.&lt;/li&gt;
&lt;li&gt;We put together some incentives for great developer sites for trying EthicalAds.
  We are promising we'll beat their existing ad network's revenue for a similar placement by 10% for at least 3 months.
  If you've been thinking about trying EthicalAds, &lt;a href="/publishers/#inbound-form"&gt;let us know&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;We put together a content piece about advertising's (third-party)
  &lt;a href="/blog/2024/01/the-cookieless-ad-future-does-cookieless-advertising-work/"&gt;cookieless future&lt;/a&gt;.
  This talks about why and how Chrome is phasing out third-party cookies
  and what the implications are for advertisers, publishers, and ad networks like ours.
  This is a positive privacy step and we were excited to hear
  &lt;a href="https://blog.sentry.io/we-removed-advertising-cookies-heres-what-happened/"&gt;Sentry's success story&lt;/a&gt;
  removing third-party cookies from their homepage.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our
&lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;
and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="january-advertising-stats"&gt;January advertising stats&lt;/h2&gt;
&lt;p&gt;In January 2024:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$42,745.38&lt;/strong&gt; for our publishers.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;174 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;16,906,108&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Despite starting slow as people return to work
(developer sites are visited most when people are working),
we saw good traffic levels throughout the month.
Our ad inventory continues to be very tight in North America and Western Europe
with some openings for more globally targeted campaigns.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for February:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We had a few advertisers who wanted to target based on weekdays or weekends.
  That should roll out for advertisers who want it next month.&lt;/li&gt;
&lt;li&gt;We're working on a huge improvement to our &lt;a href="/blog/2022/11/a-new-approach-to-content-based-targeting-for-advertising/"&gt;machine learning based contextual targeting&lt;/a&gt;.
  This will involve building some improvements
  that will let us target webpages similar to advertiser product landing pages.
  This will mean that for almost any developer product, we can find the content on our network
  that would be a great place to promote that product.
  We're aiming for a demo in March.&lt;/li&gt;
&lt;li&gt;For advertisers who want it, we can take a more actively manage their advertising.
  We can turn off lower performing ads or even slightly tweak ads to try to find something
  that performs even better. Our landing pages talking to these are mostly ready,
  but we're waiting on a few testimonials before they go live.&lt;/li&gt;
&lt;li&gt;We're still hoping to collaborate with a few advertisers who use Tableau (or something similar)
  to make sure we build exactly what they want in terms of reporting.
  If you're interested in this, please &lt;a href="/contact/"&gt;get in touch&lt;/a&gt;!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="/contact/"&gt;let us know&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/><category term="build-in-public"/></entry><entry><title>The Cookieless Ad Future: Does Cookieless Advertising Work?</title><link href="/blog/2024/01/the-cookieless-ad-future-does-cookieless-advertising-work/" rel="alternate"/><published>2024-01-30T00:00:00-08:00</published><updated>2024-01-30T00:00:00-08:00</updated><author><name>David Fischer</name></author><id>tag:None,2024-01-30:/blog/2024/01/the-cookieless-ad-future-does-cookieless-advertising-work/</id><summary type="html">&lt;p&gt;As an ad network that never uses advertising cookies,
you probably won't be surprised that we think cookieless advertising does …&lt;/p&gt;</summary><content type="html">&lt;p&gt;As an ad network that never uses advertising cookies,
you probably won't be surprised that we think cookieless advertising does work.
While many adtech companies will claim that it's impossible do effective advertising
without tracking, there are countless success stories from both offline advertising
and even modern Internet advertising (we built a profitable business around it).&lt;/p&gt;
&lt;p&gt;Later this year, third-party cookies, including almost all ad cookies that aren't Google's and Facebook's,
will stop working in Google Chrome.
This is going to have a major effect on advertisers, publishers,
and especially smaller ad networks.
This post aims to serve as a guide to what's changing, why it's changing,
what we expect the second order effects of the change will be,
and how advertisers can succeed anyway.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Update: Google is &lt;a href="https://privacysandbox.com/news/privacy-sandbox-update/"&gt;no longer phasing out third-party cookies&lt;/a&gt; and will instead "introduce a new experience in Chrome that lets people make an informed choice that applies across their web browsing".&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="third-party-cookies-history-and-phase-out"&gt;Third-party cookies, history and phase-out&lt;/h2&gt;
&lt;p&gt;Need a brief explainer on cookies, first-party vs. third-party, and why cookies are both
necessary and ripe for abuse? Check out this brief video from &lt;a href="https://www.youtube.com/playlist?list=PLFlAJDI87Jg1It3hFaH61sYytK1lAU7fG"&gt;#AskFirefox&lt;/a&gt;:&lt;/p&gt;
&lt;div class="postimage text-center "&gt;
  &lt;div class="embed-responsive embed-responsive-16by9"&gt;
    &lt;iframe class="embed-responsive-item" src="https://www.youtube-nocookie.com/embed/tAxj-7Bn8-s?si=0eXi8L25XA0AS7NF" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen&gt;&lt;/iframe&gt;
  &lt;/div&gt;
  &lt;p&gt;#AskFirefox explains cookies&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;Google plans to phase out third-party cookies completely to &lt;a href="https://developers.google.com/privacy-sandbox/blog/cookie-countdown-2023oct"&gt;Chrome users in Q3 2024&lt;/a&gt;
although this has been &lt;a href="https://www.theverge.com/2021/6/24/22547339/google-chrome-cookiepocalypse-delayed-2023"&gt;delayed before&lt;/a&gt;.
Firefox and Safari have had this privacy feature for years.
While this is a good step by Google,
and the delay is mostly due to &lt;a href="https://www.gov.uk/cma-cases/investigation-into-googles-privacy-sandbox-browser-changes"&gt;competition authorities&lt;/a&gt;
worried about the effect on smaller ad players,
it will hurt smaller ad networks a lot more than the big players like Google and Facebook.&lt;/p&gt;
&lt;p&gt;Google and Facebook do use third-party cookies to be sure.
This is crucial to many forms of retargeting (see &lt;a href="/surveillance-advertising/"&gt;surveillance advertising&lt;/a&gt;).
However, when you see an ad from Google in search, on YouTube or in Google Maps,
Google knows who you are because you are logged in to Google.
They don't need a third-party cookie because they already have a first-party cookie.
They can use everything they know about you to target you with ads.&lt;/p&gt;
&lt;p&gt;Third-party cookie removal will have a significant effect on Google Display Network,
third-party sites that show ads from Google,
but a much smaller effect on most of Google's ads.
By contrast, it will be much harder for a small network to track users
in order to build a profile across the websites they visit.
While third-party cookies being phased out is a positive privacy development,
it will also help entrench the major ad players.&lt;/p&gt;
&lt;h2 id="challenges-for-advertisers-in-the-cookieless-future"&gt;Challenges for advertisers in the cookieless future&lt;/h2&gt;
&lt;p&gt;Without ad cookies, there's going to be a lot of challenges for advertisers and publishers.
Let's discuss advertisers first.&lt;/p&gt;
&lt;p&gt;Advertisers using retargeting are going to struggle with that part of their marketing without cookies.
Most common forms of retargeting, like showing ads to people who have visited the advertiser's website before,
are mostly not going to work without third-party cookies.&lt;/p&gt;
&lt;p&gt;As a result, we think marketing budgets will move from smaller ad networks to the larger ones
as they will be better at using the marketing signals they have to target ads to relevant users.
It will also migrate to direct sponsorships with larger publishers, newsletters, and podcasts,
where the advertiser knows their core audience is.
This is going to cause a strategic shift in how advertisers buy ads.&lt;/p&gt;
&lt;h2 id="how-publishers-will-be-affected"&gt;How publishers will be affected&lt;/h2&gt;
&lt;p&gt;For publishers,
though not publishers on EthicalAds since we already don't have third-party cookies,
they will see reduced revenue in the short run due to Chrome removing third-party cookies.
Many ad networks &lt;a href="/blog/2021/05/how-invasive-ad-targeting-is-bad-for-journalism-and-other-high-quality-publishers/"&gt;treat ad impressions as commodities&lt;/a&gt;
trade-able based on the personal data coming from the ad cookies.
Without the signal from these third-party cookies,
impressions on their site are going to be worth less than before.&lt;/p&gt;
&lt;p&gt;However, as advertisers move toward direct sponsorships and direct marketing,
this trend will probably reverse.
With advertisers looking for good places to reach their target audience,
high quality publishers will be able to differentiate their inventory better.
These publishers will see more interest and be able to command higher ad prices.&lt;/p&gt;
&lt;h2 id="a-success-story-with-cookieless-advertising-sentry"&gt;A success story with cookieless advertising: Sentry&lt;/h2&gt;
&lt;blockquote class="blockquote mb-2"&gt;
  &lt;p class="mb-2"&gt;
    “Display and other channels were severely hampered after cookie removal; our traditional retargeting motion died off pretty quickly as we couldn’t use GA4’s audiences or our Google Ads pixel.”
  &lt;/p&gt;
  &lt;p class="small"&gt;- &lt;a href="https://blog.sentry.io/we-removed-advertising-cookies-heres-what-happened/"&gt;Matt Henderson @ Sentry&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A few months back, &lt;a href="https://sentry.io/"&gt;Sentry&lt;/a&gt; decided to remove ad cookies
and did a &lt;a href="https://blog.sentry.io/we-removed-advertising-cookies-heres-what-happened/"&gt;retrospective&lt;/a&gt;
on the positives and negatives of that change
(EthicalAds and our parent Read the Docs use Sentry for error reporting
and Sentry has advertised with EthicalAds in the past).
The post has a ton of great real-world details of an advertiser proactively dealing with these changes
and is well worth the read. I want to highlight a few key parts though.&lt;/p&gt;
&lt;p&gt;Removing cookies wasn't a calamity, but it did force a number of adaptations.
They had to rework a lot of how they attributed a new user to marketing channels
which is critical as a marketer to know what's working and what isn't.
In something we expect to hear more about as third-party cookies are removed,
Sentry said they "decided to migrate budget to sponsorships and publishers that we instinctively knew had our core audience".&lt;/p&gt;
&lt;p&gt;Probably most important for regular users of the web, it allowed them to
"do away with the annoying cookie consent banners".
Everybody hates cookie banners and they have a
&lt;a href="2023-european-landing-pages-gdpr.md"&gt;negative effect on conversion rates&lt;/a&gt;.
Removing that is a win for everyone.&lt;/p&gt;
&lt;h2 id="the-future-of-advertising-without-third-party-cookies"&gt;The future of advertising without third-party cookies&lt;/h2&gt;
&lt;p&gt;In many ways, this feels like a vindication of our &lt;a href="/advertising-vision/"&gt;ad vision&lt;/a&gt;.
Back in 2017 and 2018, we asked ad networks about how we could run their ads
while respecting visitor privacy on our own site, Read the Docs.
These ad networks told us to take it or leave it.
&lt;strong&gt;We left it&lt;/strong&gt; and built our own sponsorship platform and later ad network.
Now those same networks have to adapt as both regulators and regular people
wake up to the downsides of invasive ad tracking.&lt;/p&gt;
&lt;p&gt;There are going to be ad networks that essentially ignore these coming changes.
They will substitute IP-based targeting or other types of browser fingerprinting
for third-party cookies.
It will be cruder and less accurate, but it will probably work for a while.
There's also going to be new ways to target users with some privacy protections like &lt;a href="https://privacysandbox.com/"&gt;Google's Privacy Sandbox&lt;/a&gt;.
However, Google removing third-party cookies shows the longer term trajectory is clear.
Browsers, regulators, and even regular users with &lt;a href="/blog/2023/01/data-privacy-week-2023-privacy-first-alternatives/#ad-blockers"&gt;ad and tracker blockers&lt;/a&gt;
are going to nibble away at broad data collection and personalized ad targeting.&lt;/p&gt;
&lt;p&gt;This doesn't mean that advertisers won't be able to reach their audience online.
However, it will force a number of adaptations from advertisers, publishers,
and the wider ad ecosystem.
We built our entire business around contextually targeting users with relevant ads
based on the site and page where the ad appears. No personal info required.&lt;/p&gt;
&lt;p&gt;If you want to work with an ad network that understands these issues,
&lt;a href="/contact/"&gt;get in touch&lt;/a&gt;!&lt;/p&gt;</content><category term="posts"/><category term="privacy"/><category term="gdpr"/><category term="adtech"/></entry><entry><title>EthicalAds Newsletter - December 2023</title><link href="/blog/2024/01/ethicalads-newsletter-december-2023/" rel="alternate"/><published>2024-01-09T00:00:00-08:00</published><updated>2024-01-09T00:00:00-08:00</updated><author><name>David Fischer</name></author><id>tag:None,2024-01-09:/blog/2024/01/ethicalads-newsletter-december-2023/</id><summary type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;Our progress in December was:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We trained and released a new version of our topic classifier
  that roughly …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;Our progress in December was:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We trained and released a new version of our topic classifier
  that roughly doubles the size of the training set.
  So far, we're seeing improved accuracy in analyzing the pages where our ads appear.&lt;/li&gt;
&lt;li&gt;On our website, we released our &lt;a href="/prospectus/ethicalads-advertiser-prospectus.pdf"&gt;Q1 prospectus&lt;/a&gt;.
  There were no pricing changes but we did change up the prospectus considerably
  to talk more about our advertising worldview and focus on the value we provide to advertisers.&lt;/li&gt;
&lt;li&gt;Our experiment with ads that rotate occasionally when there's user input hit a few snags
  with a couple publishers. This experiment is live on Read the Docs and our beta client
  and it should roll out more widely in January.&lt;/li&gt;
&lt;li&gt;Years ago, we ran a few campaigns that targeted geographically more finely than countries.
  We made a few improvements to be better able to target both US states and major US metro areas
  in response to advertiser demand.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our
&lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;
and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="december-advertising-stats"&gt;December advertising stats&lt;/h2&gt;
&lt;p&gt;In December 2023:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$39,248.91&lt;/strong&gt; for our publishers.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;173 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;19,916,532&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Our business is highly seasonal and traffic to our network drops drastically
starting around December 18th or so to ~1/3 of normal levels.
All things considered, this was a very strong month for advertising
and we expect a strong January.&lt;/p&gt;
&lt;div class="postimage text-center"&gt;
  &lt;img class="w-100 shadow-lg" src="/images/posts/2023-december-newsletter-graph.png" alt="2023 holiday traffic levels"&gt;
  &lt;p&gt;2023 holiday traffic levels&lt;/p&gt;
&lt;/div&gt;

&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for January:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We're continuing to work on ad rotation and expect to have more hard stats
  about how rotated ads (currently a tiny fraction of the total) perform.&lt;/li&gt;
&lt;li&gt;We're actively working on some incentives for publishers who switch from other networks
  to EthicalAds. If you've been on the fence about trying out our network,
  &lt;a href="/contact/"&gt;let us know&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;One service we frequently provide to advertisers is to more actively manage their advertising.
  We can turn off lower performing ads or even slightly tweak ads to try to find something
  that performs even better. We want to highlight these "agency-lite" features on our website
  and prospectus.&lt;/li&gt;
&lt;li&gt;We're still hoping to collaborate with a few advertisers who use Tableau (or something similar)
  to make sure we build exactly what they want in terms of reporting.
  If you're interested in this, please &lt;a href="/contact/"&gt;get in touch&lt;/a&gt;!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/><category term="build-in-public"/></entry><entry><title>EthicalAds Newsletter - November 2023</title><link href="/blog/2023/12/ethicalads-newsletter-november-2023/" rel="alternate"/><published>2023-12-11T00:00:00-08:00</published><updated>2023-12-11T00:00:00-08:00</updated><author><name>David Fischer</name></author><id>tag:None,2023-12-11:/blog/2023/12/ethicalads-newsletter-november-2023/</id><summary type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;Our progress in November was:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We built an initial experiment to test rotating ads on our own publisher …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;Our progress in November was:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We built an initial experiment to test rotating ads on our own publisher Read the Docs.
  To start with, this will be very conservative and only rotate ads that have been visible
  for over a full minute and only when there's user input.
  We're going to see how this performs in terms of ad performance in December.&lt;/li&gt;
&lt;li&gt;We are making a few improvements to our contextual targeting to support more campaigns
  targeting niche keywords. Our crawler, that crawls sites where our ads appear,
  started running some keyword analysis in addition to the topic analysis we are running.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our
&lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;
and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="november-advertising-stats"&gt;November advertising stats&lt;/h2&gt;
&lt;p&gt;In November 2023:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$42,955.94&lt;/strong&gt; for our publishers.
  This is a good month for revenue but not a record and down slightly from October.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;173 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;20,641,944&lt;/strong&gt; paid ad views across the world.
  This is down from from the previous month but mostly reflects fewer global campaigns.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We have been overbooked quite heavily and that abated slightly in November.
Inventory is still very tight especially in North America where we continue to be sold out almost completely.
There's a bit more inventory globally and a small amount in Europe.&lt;/p&gt;
&lt;p&gt;Last month, I mentioned we were working to bring on some high-quality publishers.
We're happy to announce that &lt;a href="https://dev.to/"&gt;dev.to&lt;/a&gt; has started using EthicalAds
and thrilled to work with the DEV community.
This is the culmination of some hard work and testing
to get a tight integration that works well on both sides.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for December:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We are going to continue our experiments with ad rotation
  where ads have been visible on the page for a minute or more.&lt;/li&gt;
&lt;li&gt;We're improving our topic classifier by adding more examples
  of each of &lt;a href="/advertisers/#audiences"&gt;our audiences&lt;/a&gt; to the training set.&lt;/li&gt;
&lt;li&gt;We'll be releasing our Q1 prospectus and pricing updates in the next week or so.&lt;/li&gt;
&lt;li&gt;We're still hoping to collaborate with a few advertisers who use Tableau (or something similar)
  to make sure we build exactly what they want in terms of reporting.
  If you're interested in this, please &lt;a href="/contact/"&gt;get in touch&lt;/a&gt;!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/><category term="build-in-public"/></entry><entry><title>EthicalAds Newsletter - October 2023</title><link href="/blog/2023/11/ethicalads-newsletter-october-2023/" rel="alternate"/><published>2023-11-07T00:00:00-08:00</published><updated>2023-11-07T00:00:00-08:00</updated><author><name>David Fischer</name></author><id>tag:None,2023-11-07:/blog/2023/11/ethicalads-newsletter-october-2023/</id><summary type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;Our progress in October was:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;On top of our machine learning based classifier we use to categorize pages …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;Our progress in October was:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;On top of our machine learning based classifier we use to categorize pages where our ads appear,
  we added more granular keyword detection which can be useful on campaigns targeting niche
  keywords instead of our broader &lt;a href="/advertisers/#audiences"&gt;audiences section&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;We made a number of advertiser related improvements on our ad server and client
  to improve our ability to target niche keywords.&lt;/li&gt;
&lt;li&gt;We rolled out some improvements to better handle multiple ad placements on the same page.
  Our policy is still to not have our ads beside competitors' ads
  and to have just 1 ad at a time,
  but there are some situations like very long pages (or single-page apps)
  where we allow multiple ad placements on a case by case basis.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our
&lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;
and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="october-advertising-stats"&gt;October advertising stats&lt;/h2&gt;
&lt;p&gt;In October 2023:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$46,293.84&lt;/strong&gt; for our publishers.
  This isn't quite a record month but this is a solid increase from September
  and one of the best months ever.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;173 publishers&lt;/strong&gt; on our network with at least one paid ad impression.
  This is unchanged from the previous month.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;29,268,928&lt;/strong&gt; paid ad views across the world.
  This was a record due to some globally targeted campaigns.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Our inventory continues to be very tight and we are the closest we've ever been to sold out worldwide.
We're doing our best to bring on more high-quality publishers
and we expect to spend more time on that throughout November and December.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for November:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We are going to run some experiments with ad rotation
  where ads have been visible on the page for a minute or more.
  This is part of improving our support for single-page apps and pages with long view times.&lt;/li&gt;
&lt;li&gt;The reporting features we've discussed for the last few months are proceeding, but very slowly.
  We're aiming to collaborate with a few advertisers who use Tableau (or something similar)
  to make sure we build exactly what they want.
  If you're interested in this, please &lt;a href="/contact/"&gt;get in touch&lt;/a&gt;!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/><category term="build-in-public"/></entry><entry><title>EthicalAds Newsletter - September 2023</title><link href="/blog/2023/10/ethicalads-newsletter-september-2023/" rel="alternate"/><published>2023-10-10T00:00:00-07:00</published><updated>2023-10-10T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2023-10-10:/blog/2023/10/ethicalads-newsletter-september-2023/</id><summary type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;Our progress in September was:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We produced two content pieces about what happens
  when a publisher on our …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;Our progress in September was:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We produced two content pieces about what happens
  when a publisher on our network &lt;a href="/blog/2023/09/what-happens-when-elon-musk-tweets-a-link-to-your-service/"&gt;truly goes viral&lt;/a&gt;
  and one on &lt;a href="/blog/2023/09/optimizing-european-ad-campaigns-in-the-gdpr-era/"&gt;optimizing European ad campaigns in the GDPR era&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Our ad server hit v3.0 when we upgraded Django, a core dependency&lt;/li&gt;
&lt;li&gt;Our &lt;a href="/prospectus/ethicalads-advertiser-prospectus.pdf"&gt;Q4 prospectus&lt;/a&gt; is up on our site.
  It contained small price increases for specific &lt;a href="/advertisers/#audiences"&gt;audiences&lt;/a&gt;
  in the US &amp;amp; Canada.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our
&lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;
and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="september-advertising-stats"&gt;September advertising stats&lt;/h2&gt;
&lt;p&gt;In September 2023:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$38,554.01&lt;/strong&gt; for our publishers. This is down slightly from August but is about the same on a day by day basis accounting for the shorter month.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;173 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;18,374,509&lt;/strong&gt; paid ad views across the world. A slight increase over August.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;October is trending a bit higher than September
so we're expecting a slightly stronger month.
We are running a few very broadly targeted campaigns by both geography and topic
which usually results in a higher percentage of our overall inventory being sold.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for October:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The advertiser reporting features that will help integrate our metrics with Tableau
  to update performance metrics automatically, is continuing but very slowly.
  We're aiming to collaborate with a few advertisers who use Tableau (or something similar)
  to make sure we build exactly what our advertisers want.
  If you're interested in this, please &lt;a href="/contact/"&gt;get in touch&lt;/a&gt;!&lt;/li&gt;
&lt;li&gt;We are making some improvements to better handle multiple ad placements on the same page.
  Our policy is still to not have our ads beside competitors' ads
  and to have just 1 ad at a time,
  but there are some situations like very long pages where we allow multiple ad placements on a case by case basis.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/><category term="build-in-public"/></entry><entry><title>Optimizing European Ad Campaigns in the GDPR Era</title><link href="/blog/2023/09/optimizing-european-ad-campaigns-in-the-gdpr-era/" rel="alternate"/><published>2023-09-26T00:00:00-07:00</published><updated>2023-09-26T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2023-09-26:/blog/2023/09/optimizing-european-ad-campaigns-in-the-gdpr-era/</id><summary type="html">&lt;p&gt;General Data Protection Regulation (&lt;a href="https://gdpr.eu/"&gt;GDPR&lt;/a&gt;)
has had a huge effect on the web in Europe and on advertising in particular …&lt;/p&gt;</summary><content type="html">&lt;p&gt;General Data Protection Regulation (&lt;a href="https://gdpr.eu/"&gt;GDPR&lt;/a&gt;)
has had a huge effect on the web in Europe and on advertising in particular.
While the GDPR helps safeguard user privacy and data security and broadly we're fans,
it has also introduced a series of compliance requirements
that can impact the performance of ad campaigns if you aren't careful.&lt;/p&gt;
&lt;p&gt;In this post, we'll explore some of the compliance issues that can arise, discuss alternatives,
and provide practical steps to test your landing pages and maximize ad campaign effectiveness.&lt;/p&gt;
&lt;h2 id="the-gdpr-and-its-impact-on-advertising"&gt;The GDPR and its impact on advertising&lt;/h2&gt;
&lt;p&gt;The GDPR, which came into effect in May 2018,
was designed to protect the privacy of European citizens.
For advertisers, this means that collecting and using personal data
for targeting and tracking purposes has become more regulated.&lt;/p&gt;
&lt;p&gt;One of the biggest challenges from the GDPR
and &lt;a href="https://edps.europa.eu/data-protection/our-work/subjects/eprivacy-directive_en"&gt;the ePrivacy Directive&lt;/a&gt;
which came before it is ensuring that your landing pages don't get lost
in the shadow of those ubiquitous and annoying cookie consent banners.&lt;/p&gt;
&lt;div class="postimage text-center"&gt;
  &lt;img class="w-50 shadow-lg" src="/images/posts/2023-okta-landing-page-banners.png" alt="Landing page for an Okta ad campaign as viewed from the Netherlands via a VPN"&gt;
  &lt;p&gt;It's not entirely clear what is being advertised on this ad landing page&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;In order to &lt;a href="https://gdpr.eu/cookies/"&gt;comply with the GDPR on cookies&lt;/a&gt;,
advertisers need to obtain consent before storing
any cookies that aren't "strictly necessary".
Cookies for targeting, remarketing, and tracking don't count as necessary.
As an American who recently visited the EU, I was overwhelmed with the quantity and verbosity
of the cookie banners I saw on the sites I normally browse from the USA when I visited the same sites from Europe.&lt;/p&gt;
&lt;h2 id="optimizing-landing-pages-with-the-gdpr-in-mind"&gt;Optimizing landing pages with the GDPR in mind&lt;/h2&gt;
&lt;p&gt;Ignoring the GDPR isn't an option but there are a number of ways to maintain
both compliance and the user experience with European ad campaigns and landing pages:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Disable your analytics (statistics cookies) and retargeting (marketing cookies) on EU-focused landing pages. You don't need a cookie banner if you only have strictly necessary cookies or no cookies at all. This will involve finding other nonintrusive ways to attribute conversions to advertising, but your landing pages will convert better with fewer banners before the user learns about your product.&lt;/li&gt;
&lt;li&gt;Create landing pages that are specific to the ad network used (eg. &lt;code&gt;www.example.com/ethical-ads&lt;/code&gt;). When a user converts from that page, you will know it was the result of advertising.&lt;/li&gt;
&lt;li&gt;Only use cookies and prompt for cookie consent later in the process after the visitor has read a little bit about your product. If the user is already interested, they are more likely to give their consent.&lt;/li&gt;
&lt;li&gt;If you insist on having upfront cookies and therefore a banner, prioritize a thoughtful layout and messaging that respects user privacy and clearly communicates the purpose of data collection.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="postimage text-center"&gt;
  &lt;img class="w-50 shadow-lg" src="/images/posts/2023-adobe-landing-page-banners.png" alt="Adobe landing page with a single cookie banner"&gt;
  &lt;p&gt;While this site has a cookie banner, most of the page and product is visible and apparent and the banner can be easily dismissed&lt;/p&gt;
&lt;/div&gt;

&lt;h2 id="testing-your-landing-pages"&gt;Testing your landing pages&lt;/h2&gt;
&lt;p&gt;Testing your landing pages is a crucial step in ensuring GDPR compliance
and a smooth user experience for your European ad campaigns.
You'll need both of these if you want your campaigns to perform well.
A great way to test your pages combines Virtual Private Networks (VPNs) and &lt;a href="https://www.mozilla.org/en-US/firefox/browsers/incognito-browser/"&gt;browser incognito windows&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;With a VPN, you can simulate accessing your landing pages from different geographic locations.
This is especially helpful for a marketer outside Europe testing a campaign focused on Europe.
While there are many VPNs out there, even the &lt;a href="https://protonvpn.com/free-vpn"&gt;free version of ProtonVPN&lt;/a&gt;
will let you test European focused landing pages from outside Europe.&lt;/p&gt;
&lt;p&gt;Browser incognito windows allow you to view your landing pages as if you were a first-time visitor,
without the influence of previously stored cookies or user data.
This helps you evaluate how well your landing pages handle consent requests
and whether they deliver a seamless user experience for users accessing your site for the first time.
The developer tools will also let you simulate browsing from a mobile device where cookie banners
can be even more annoying.&lt;/p&gt;
&lt;div class="postimage text-center"&gt;
  &lt;img class="w-75 shadow-lg" src="/images/posts/2023-chrome-developer-tools.png" alt="Chrome incognito window with developer tools for simulating mobile devices and controlling cookies"&gt;
  &lt;p&gt;The Chrome developer tools combined with an incognito window allow simulating a new user visiting your landing page from their phone&lt;/p&gt;
&lt;/div&gt;

&lt;h2 id="wrapping-it-all-up"&gt;Wrapping it all up&lt;/h2&gt;
&lt;p&gt;Nobody likes cookie banners,
but making sure your landing pages and ad attribution are streamlined
and keep both privacy regulation and user experience in mind is critical
to making sure your ad campaigns will turn visitors into customers.&lt;/p&gt;
&lt;p&gt;If you're ready to advertise on a network that understands the privacy and regulatory landscape
and will help you run campaigns that convert,
&lt;a href="/advertisers/#inbound-form"&gt;let's get started&lt;/a&gt;!&lt;/p&gt;</content><category term="posts"/><category term="advertisers"/><category term="business"/><category term="gdpr"/></entry><entry><title>What Happens When Elon Musk Tweets A Link To Your Service</title><link href="/blog/2023/09/what-happens-when-elon-musk-tweets-a-link-to-your-service/" rel="alternate"/><published>2023-09-19T00:00:00-07:00</published><updated>2023-09-19T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2023-09-19:/blog/2023/09/what-happens-when-elon-musk-tweets-a-link-to-your-service/</id><summary type="html">&lt;p&gt;Back in February, one of the publishers on our ad network went truly viral.
Simon Willison is the author of …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Back in February, one of the publishers on our ad network went truly viral.
Simon Willison is the author of &lt;a href="https://datasette.io/"&gt;Datasette&lt;/a&gt;,
a tool for exploring and publishing data,
and he'd written a &lt;a href="https://simonwillison.net/2023/Feb/15/bing/"&gt;great post&lt;/a&gt;
about some of the issues with Microsoft's hasty release of AI-powered Bing.&lt;/p&gt;
&lt;p&gt;In addition to being in the #1 spot on HackerNews,
Elon Musk &lt;a href="https://twitter.com/elonmusk/status/1625936009841213440"&gt;tweeted&lt;/a&gt; a link directly to the post.
This post is going to cover how our infrastructure responded to this huge spike in traffic
and what we've done since then to make sure EthicalAds will be better prepared if this happens again.&lt;/p&gt;
&lt;div class="postimage text-center"&gt;
  &lt;img class="w-75 shadow-lg" src="/images/posts/2023-musk-tweet-bing.png" alt="Elon Musk tweets a link to Simon's blog on Bing"&gt;
  &lt;p&gt;Elon Musk &lt;a href="https://twitter.com/elonmusk/status/1625936009841213440"&gt;tweets&lt;/a&gt; (X's?) a link directly to Simon's blog on AI-powered Bing&lt;/p&gt;
&lt;/div&gt;

&lt;h2 id="going-viral-vs-going-truly-viral"&gt;Going viral vs. going truly viral&lt;/h2&gt;
&lt;p&gt;On a normal weekday morning US time, EthicalAds serves about 15,000 ad requests every 5 minutes.
That's about 3k requests per minute or ~50 per second
(check out our post about &lt;a href="/blog/2021/07/handling-100-requests-per-second-with-python-django/"&gt;scaling to 100 req/s&lt;/a&gt;).
This is our peak traffic as there's overlap between the US and Europe
which is where a lot of the audience for our ads live and work.
In the vast majority of cases, these requests cannot be cached
and involve reads and writes to databases and caches.&lt;/p&gt;
&lt;p&gt;Both our own blog and various publishers have made it to the top of HackerNews before,
and that usually results in a pretty sizable traffic spike.
However, that's usually just tens of thousands of extra hits.
Between autoscaling and a focus on performant code, we won't even notice.
This spike quadrupled our traffic to ~200 requests per second
and over 1M additional requests.&lt;/p&gt;
&lt;div class="postimage text-center"&gt;
  &lt;img class="w-75 shadow-lg" src="/images/posts/2023-cf-traffic-spike.png" alt="Traffic spiked to 200 requests per second at the peak"&gt;
  &lt;p&gt;Traffic spiked to 200 requests per second at the peak&lt;/p&gt;
&lt;/div&gt;

&lt;h2 id="how-our-infrastructure-responded"&gt;How our infrastructure responded&lt;/h2&gt;
&lt;p&gt;After the tweet at 11:15am local time, we saw a brief downtime for less than 1 minute at 11:19.
In hindsight, this was autoscaling kicking in to handle the surge of requests,
but at the time we mostly dismissed it as a network blip.&lt;/p&gt;
&lt;div class="postimage text-center"&gt;
  &lt;img class="w-75 shadow-lg" src="/images/posts/2023-pagerduty-downtime-alert.png" alt="PagerDuty downtime alert"&gt;
  &lt;p&gt;We got a brief 1 minute downtime alert as we autoscaled up&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;Within about 10 minutes, we knew something was wrong.
We have a number of alerts to let us know when our infrastructure is having a problems.
One of those is an &lt;a href="https://en.wikipedia.org/wiki/Apdex"&gt;Apdex alert&lt;/a&gt;
that triggers whenever our Apdex score drops.
Apdex is pretty convoluted, but basically it measures how far performance is from normal, acceptable performance.
For us, we aim for 50-60ms per ad request with a 95th percentile below 100ms.
By 11:30, despite autoscaling, our median performance was over 100ms and our 95th percentile was over 200!
We weren't down, but our ad server wasn't exactly happy either.&lt;/p&gt;
&lt;p&gt;We immediately dug into Cloudflare traffic analytics,
which is a much lighterweight, shorter term analytics than something like Google Analytics.
Ours stores only a week's worth of data.
Rather than understanding user intent, it's used to get a snapshot of overall
traffic, see who is hitting your servers and how frequently.
It's great for mitigating DDOS attacks
(or an inadvertent one like the &lt;a href="https://en.wikipedia.org/wiki/Slashdot_effect"&gt;Slashdot effect&lt;/a&gt;)
and not intended to optimize conversions.&lt;/p&gt;
&lt;h2 id="what-we-saw-and-how-we-responded"&gt;What we saw and how we responded&lt;/h2&gt;
&lt;p&gt;Cloudflare Analytics showed that we were getting hammered by iPhones.
Nine of our top 15 user agents were iPhones which is &lt;em&gt;not normal&lt;/em&gt; for us at all.
Under normal conditions, our network is about 90% desktop/laptop traffic.
Developers read developer resources on computers, not their phones apparently.
Briefly, we thought our ad server or one of our publishers was getting DDOSed
by disguising fake traffic as iPhones.
We considered a &lt;a href="https://www.cloudflare.com/application-services/products/waf/"&gt;Cloudflare WAF&lt;/a&gt; rules
to challenge all iPhones and Android mobile traffic as well as some per-publisher rules.&lt;/p&gt;
&lt;p&gt;By 12:15, we'd figured out that Simon's blog was getting clobbered,
and that he was #1 on HN.
However, we hadn't seen Elon's tweet yet and we were confused as to why it was so much more traffic than a site usually gets from the #1 spot.
We were also pretty sure by this point that it wasn't a DDOS.
Cloudflare was showing that the requests per IP was low
which usually indicates legitimate traffic rather than something malicious.&lt;/p&gt;
&lt;p&gt;By about 1pm, traffic was still elevated but performance had settled back to normal.
This is also about when we saw Elon's tweet and figured out the cause of this spike.
Simon had a &lt;a href="https://simonwillison.net/2023/Feb/17/analytics/"&gt;followup post&lt;/a&gt;
that showed he got about 1.1M pageviews from that post in a 24 hour period
with the vast majority of that traffic coming from Twitter.&lt;/p&gt;
&lt;div class="postimage text-center"&gt;
  &lt;img class="w-75 shadow-lg" src="/images/posts/2023-cloudflare-waf-challenge-phones.png" alt="A Cloudflare WAF rule to challenge any mobile user"&gt;
  &lt;p&gt;During the traffic spike, we considered creating a rule to challenge all mobile traffic&lt;/p&gt;
&lt;/div&gt;

&lt;h2 id="setting-ourselves-up-for-future-success"&gt;Setting ourselves up for future success&lt;/h2&gt;
&lt;p&gt;Huge traffic spikes like this happen and it's good to be prepared.
Since February, we've setup a number of WAF rules
and rate limiting rules specifically to handle spikes whether natural or from a DDOS.
Some of these rules are running all the time
while some can be toggled on with a moment's notice to handle huge traffic spikes.
Many similar rules have also been rolled out by our parent Read the Docs
which also gets surges of traffic periodically.
Cloudflare has been invaluable for handling these traffic spikes.&lt;/p&gt;
&lt;p&gt;Thanks for reading this post-mortem all the way to the end.
If you have any feedback on this post, our product, or anything else,
&lt;a href="/contact/"&gt;get in touch&lt;/a&gt;!
We always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="analytics"/><category term="performance"/><category term="publishers"/></entry><entry><title>EthicalAds Newsletter - August 2023</title><link href="/blog/2023/09/ethicalads-newsletter-august-2023/" rel="alternate"/><published>2023-09-12T00:00:00-07:00</published><updated>2023-09-12T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2023-09-12:/blog/2023/09/ethicalads-newsletter-august-2023/</id><summary type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;Our progress in August was:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We started rolling out some pricing features directly into our ad server.
  Advertisers …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;Our progress in August was:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We started rolling out some pricing features directly into our ad server.
  Advertisers will start to get pricing estimates based on the targeting they select
  on new campaigns. For advertisers focusing on our &lt;a href="/advertisers/#audiences"&gt;core audiences&lt;/a&gt;,
  these will be spot-on, but might need adjusting for niche targeting options.
  This feature will get our network closer to self-serve.&lt;/li&gt;
&lt;li&gt;We released a small update to our content classifier
  that helped with some memory issues especially on very long web pages.&lt;/li&gt;
&lt;li&gt;We did a back-of-house upgrade to Django, one of our core dependencies,
  to the latest long-term supported version.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our
&lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;
and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="august-advertising-stats"&gt;August advertising stats&lt;/h2&gt;
&lt;p&gt;In August 2023:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$40,317.18&lt;/strong&gt; for our publishers. This is down slightly from July.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;175 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;17,921,969&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;September is trending pretty close to August.
It's been the same story for a while that we are completely booked in the US and Canada
while having a bit of capacity in Europe.&lt;/p&gt;
&lt;p&gt;While total paid ad views was down significantly,
this is mostly due to a small number of advertisers running or not running
very broadly targeted, low price campaigns that don't have a huge impact on revenue.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for September:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We've seen some increased advertiser demand for some reporting features
  that they can plug into their own dashboards.
  We're still gathering some requirements here and a lot of this demand
  comes from big advertisers who don't always move as fast as a nimble startup
  so this feature might roll out slowly.
  Initially, we're expecting to be able to have reports in Tableau
  update performance metrics automatically.
  If you're interested in this, please &lt;a href="/contact/"&gt;get in touch&lt;/a&gt;!&lt;/li&gt;
&lt;li&gt;We should have that content piece we mentioned last month about what happens
  when a publisher on our network &lt;a href="https://twitter.com/ethicaladsio/status/1626239820891832327"&gt;truly goes viral&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;We also are planning another content piece about optimizing European ad campaigns
  and landing pages in the GDPR era.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/><category term="build-in-public"/></entry><entry><title>EthicalAds Newsletter - July 2023</title><link href="/blog/2023/08/ethicalads-newsletter-july-2023/" rel="alternate"/><published>2023-08-14T00:00:00-07:00</published><updated>2023-08-14T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2023-08-14:/blog/2023/08/ethicalads-newsletter-july-2023/</id><summary type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;Our progress in July was:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We rolled out some new frequency capping features that allow
  setting maximum percentages …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;Our progress in July was:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We rolled out some new frequency capping features that allow
  setting maximum percentages of a campaign that will fill
  on certain publishers or in certain countries or regions.
  This will help us balance campaigns and should result in better advertiser performance.&lt;/li&gt;
&lt;li&gt;We implemented a hard stop date for advertising campaigns.
  Some campaigns absolutely need to stop on a certain date
  because they promote a certain event or time-sensitive release.
  This feature should help advertisers run these kinds of campaigns
  and credit any remaining balance that wasn't filled.&lt;/li&gt;
&lt;li&gt;We made a number of landing page adjustments to highlight
  our ad-agency-lite customer service features we do for advertisers.
  Lots of advertisers ask for guidance in creating or tweaking ads
  both before and during campaigns in order to maximize performance.
  We know that every ad network is a little different due to different ad formats or a slightly different audience.
  That's why we check-in on campaigns to make sure advertisers are getting the most for their ad dollars
  and propose changes that advertisers can make to their campaign.
  Typically, these are some of the things an ad agency would do for an advertiser
  and we do it to help us retain advertisers.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our
&lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;
and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="july-advertising-stats"&gt;July advertising stats&lt;/h2&gt;
&lt;p&gt;In July 2023:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$41,849.75&lt;/strong&gt; for our publishers. This is up a bit from June.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;170 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;25,941,085&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;July slightly outperformed June which was a nice surprise.
As with last month, we continue to be almost completely booked up in the US and Canada
and have a little bit of spare capacity in Europe (although that is tightening up due to the price drop).&lt;/p&gt;
&lt;p&gt;August is trending about the same as July and we expect it to be flat to a small improvement.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for August:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We've seen some increased advertiser demand for some reporting features
  that they can plug into their own dashboards.
  We are still gathering requirements, but we expect to move quickly on this.&lt;/li&gt;
&lt;li&gt;We intend to put together a content piece about what happens
  when a publisher on our network &lt;a href="https://twitter.com/ethicaladsio/status/1626239820891832327"&gt;truly goes viral&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;We are building more pricing features directly into our ad server.
  Historically, we've updated prices quarterly in our
  &lt;a href="/prospectus/ethicalads-advertiser-prospectus.pdf"&gt;prospectus&lt;/a&gt;
  but because some campaigns have non-standard targeting or have volume discounts,
  our ad server set the price per flight
  rather than having standard prices for each geographic/topic combination.
  This is another feature that will help us get our network closer to self-serve.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/><category term="build-in-public"/></entry><entry><title>EthicalAds Newsletter - June 2023</title><link href="/blog/2023/07/ethicalads-newsletter-june-2023/" rel="alternate"/><published>2023-07-12T00:00:00-07:00</published><updated>2023-07-12T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2023-07-12:/blog/2023/07/ethicalads-newsletter-june-2023/</id><summary type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;Our progress in June was:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We released an update to our ad client that will improve
  single page …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;Our progress in June was:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We released an update to our ad client that will improve
  single page app (SPA) support. Many publishers use single page apps
  which rewrite the content of the page but don't actually reload it.
  For long lasting pages that transition based on user interaction,
  it may make sense to rotate the ad.&lt;/li&gt;
&lt;li&gt;We wrote a part two blog post of the ad industry that details
  &lt;a href="/blog/2023/06/how-the-internet-ads-industry-works-modern-invasive-ad-targeting/"&gt;modern invasive ad targeting&lt;/a&gt;
  and how it's still possible to get great ad performance without it.&lt;/li&gt;
&lt;li&gt;We added the ability for advertisers to request a new campaign.
  This is a first step toward making our ad platform more self-serve,
  something we've wanted for a long time.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our
&lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;
and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="june-advertising-stats"&gt;June advertising stats&lt;/h2&gt;
&lt;p&gt;In June 2023:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$40,336.00&lt;/strong&gt; for our publishers. This is up marginally from May.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;169 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;24,375,898&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;June outperformed for us in terms of expectations made in late May.
Overall, we continue to be almost completely booked up in the US and Canada
and have a little bit of spare capacity in Europe.
As a result, we lowered our European ad prices slightly for Q3 outside of the UK.&lt;/p&gt;
&lt;p&gt;Looking forward, we expect similar performance in July to June.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for July:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We built some frequency capping features that will allow
  setting maximum percentages of a campaign that will fill
  on certain publishers or in certain countries or regions.
  This should give better performance to our advertisers.&lt;/li&gt;
&lt;li&gt;We are going to release our ad client as a UMD JavaScript module
  which should allow it to be installed by NPM and similar tools.
  This is a quality of life improvement a few publishers have asked for.&lt;/li&gt;
&lt;li&gt;For advertiser campaigns that absolutely need to stop on a certain date
  because they promote a certain event or time-sensitive release,
  we are implementing a "hard stop" date.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/><category term="build-in-public"/></entry><entry><title>How the Internet ads industry works: modern invasive ad targeting</title><link href="/blog/2023/06/how-the-internet-ads-industry-works-modern-invasive-ad-targeting/" rel="alternate"/><published>2023-06-27T00:00:00-07:00</published><updated>2023-06-27T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2023-06-27:/blog/2023/06/how-the-internet-ads-industry-works-modern-invasive-ad-targeting/</id><summary type="html">&lt;p&gt;&lt;strong&gt;This is a follow-up post to our &lt;a href="/blog/2023/05/how-the-internet-ads-industry-works-players-tactics-pii-part-i/"&gt;overview of the ads industry&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The ads we encounter online seem to be …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;strong&gt;This is a follow-up post to our &lt;a href="/blog/2023/05/how-the-internet-ads-industry-works-players-tactics-pii-part-i/"&gt;overview of the ads industry&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The ads we encounter online seem to be increasingly tailored to our personal interests and preferences.
This is no accident but rather the result of modern ad targeting
and the massive personal data collection effort behind it.
Advertisers and adtech companies use sophisticated and sometimes invasive methods to track online behavior,
allowing them to deliver personalized ads to individual users
with what we call &lt;a href="/surveillance-advertising/"&gt;surveillance advertising&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;While some of these approaches have proven effective for advertisers,
they have sparked privacy concerns and ethical debates about the use and collection of personal information.
In this post, we will delve into how ad targeting works, its privacy implications,
the evolving landscape of regulation, and what you as a user can do to protect yourself.&lt;/p&gt;
&lt;h2 id="understanding-ad-targeting-the-basics"&gt;Understanding ad targeting: the basics&lt;/h2&gt;
&lt;p&gt;Before the Internet, to reach a particular group of people,
marketers would buy a newspaper or TV spot that their target demographic reads or watches.
This technique of showing ads based on the surrounding content is called contextual targeting and is still relevant today.
The Internet, however, led to rapid evolution in ad targeting technologies
which enabled ads to be targeted more precisely than ever before.
At the core of this invasive targeting lies an intricate web of data collection on an unprecedented scale.&lt;/p&gt;
&lt;p&gt;These data collection techniques usually involve the use of cookies, pixels, or beacons,
but other approaches like fingerprinting or more rudimentary IP-based targeting can be used
when cookies can't be.
Advertisers running Facebook ads, for example, will deploy a pixel on their own site.
After users browse their site, Facebook will see the unique pixel and know that a specific user has visited
an exact site or even an exact page on a site.
The advertiser can then target that user with personalized ads meant only for users who have visited their site in the past.&lt;/p&gt;
&lt;p&gt;This technique underpins a lot of Internet advertising and is called "retargeting" or "remarketing".
The same technique can be used to show ads to users who watch a specific video, launch a specific mobile app, search for specific terms, or even with a bit of work (Facebook and Google don't make this easy, other adtech companies aren't as picky) to target users who visit specific places in the real world.&lt;/p&gt;
&lt;div class="postimage text-center"&gt;
  &lt;img class="w-50 shadow-lg" src="/images/posts/2023-ad-targeting-fbads-retargeting.png" alt="Retargeting options in Facebook Ads"&gt;
  &lt;p&gt;Facebook Ads retargeting allows showing ads to visitors of specific web pages&lt;/p&gt;
&lt;/div&gt;

&lt;h2 id="privacy-concerns-crossing-the-line-or-good-business"&gt;Privacy concerns: crossing the line or good business?&lt;/h2&gt;
&lt;p&gt;When we talk about invasive ad targeting, privacy concerns inevitably take center stage.
Modern ad targeting techniques mean that huge amounts of personal data
-- browsing and search histories, what people do on their phones, and more --
are being collected and analyzed.&lt;/p&gt;
&lt;p&gt;Notably, while users have a vague sense that what they type into Google Search or browse on Facebook
might be used for ad targeting, users may not understand that their browsing history is collected on other third-party sites as well.
The resulting data collection means that the big ad players have lengthy browsing histories of specific sites visited, videos watched, and apps launched on hundreds of millions if not billions of users.
As if all that data wasn't enough,
the big ad players will ask advertisers to upload even more personal data to better target users with ads.&lt;/p&gt;
&lt;div class="postimage text-center"&gt;
  &lt;img class="w-75 shadow-lg" src="/images/posts/2023-ad-targeting-googleads-uploadpii.png" alt="Similar audiences/Lookalike audiences on Google Ads"&gt;
  &lt;p&gt;Google prompts marketers to upload other people's personal info to target ads&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;In our &lt;a href="/blog/2023/05/how-the-internet-ads-industry-works-players-tactics-pii-part-i/"&gt;previous post&lt;/a&gt;,
we discussed ad exchanges, which facilitate the buying and selling of ad inventory in real-time.
They present some especially acute privacy concerns.
By design, exchanges involve publishers sending up user personal data
(usually obfuscated) for advertisers to bid on.
Unlike the example of browsing Facebook or Google,
it spreads copies of users' personal data to multiple companies,
many of which don't have a direct relationship with the person being shown the ad.
As a result, it means that a data breach at any of the companies in the chain can expose personal data.&lt;/p&gt;
&lt;p&gt;Adtech companies will argue that well-targeted ads enhance the user experience.
Certainly it is better to show relevant products and services that align with a website visitors interests
instead of something completely unrelated.
However, the constant tracking and profiling of individuals can create a sense of unease,
and leading to a sense that ads "follow people" around the Internet.&lt;/p&gt;
&lt;h2 id="does-all-this-data-result-in-better-ads"&gt;Does all this data result in better ads&lt;/h2&gt;
&lt;p&gt;You would think that all this data would result in ad targeting better than you could possibly imagine.
While some companies would lead you to believe that it's impossible to do advertising without tracking,
that simply isn't true.
Almost every single worldwide brand you can name was built with more traditional advertising
before Internet surveillance advertising.
In spite of all the tracking, users still consistently complain about seeing irrelevant ads.&lt;/p&gt;
&lt;h2 id="protect-yourself-from-adtech"&gt;Protect yourself from adtech&lt;/h2&gt;
&lt;p&gt;To address some of the concerns about data collection for ad targeting,
government regulations (and some industry initiatives) have emerged to set standards for data privacy and user consent.
Regulations like the General Data Protection Regulation (GDPR) in the European Union
and the California Consumer Privacy Act (CCPA) among other state regulations in the US
aim to provide more transparency and rules about how and when data is collected,
what it can be used for, and how long it can be retained.
While these are important, hoping the government keeps up with big, well-funded adtech companies
or hoping that they self-regulate aren't the only way to keep yourself safe.&lt;/p&gt;
&lt;p&gt;While it might be strange for an ad company like us to recommend this,
tracker blockers or ad blockers are a great (but not foolproof) way to
&lt;a href="/blog/2023/02/keeping-yourself-safe-from-security-and-privacy-issues-in-advertising/"&gt;protect yourself from security and privacy issues on big ad networks&lt;/a&gt;.
Earlier this year for data privacy week,
we &lt;a href="/blog/2023/01/data-privacy-week-2023-privacy-first-alternatives/#ad-blockers"&gt;recommended some ad blockers&lt;/a&gt;
as well as web browsers and search engines that help you keep your browsing history to yourself.&lt;/p&gt;
&lt;h2 id="responsible-ad-targeting-that-works"&gt;Responsible ad targeting that works&lt;/h2&gt;
&lt;p&gt;We opted-out of all the tracking and invasive targeting and
&lt;a href="/advertising-vision/"&gt;our vision&lt;/a&gt; for advertising is quite different.
Instead of trying to build an ad network for everything, we focus exclusively on developers
so we don't need to track users to show the right ad to the right user.
Instead of letting any site onto our network with little or no oversight,
we talk to and vet every single publisher on our network.
Instead of letting any advertiser run anything in exchange for high ad bids,
we make sure the products advertisers are promoting are real products relevant to our audience.
No bogus sites, no scammy ads, and relevant products next to relevant content. That's it!&lt;/p&gt;
&lt;p&gt;While this focus on quality means we'll never grow to be as big as Google,
it has let us build a sustainable ad business that supports hundreds
of developers with tens of thousands of dollars in ad revenue every month.
Thanks again for coming along with us on this journey to build an ethical ad network
and to learn about how Internet ad targeting works on and off our network.&lt;/p&gt;</content><category term="posts"/><category term="adtech"/><category term="business"/></entry><entry><title>EthicalAds Newsletter - May 2023</title><link href="/blog/2023/06/ethicalads-newsletter-may-2023/" rel="alternate"/><published>2023-06-06T00:00:00-07:00</published><updated>2023-06-06T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2023-06-06:/blog/2023/06/ethicalads-newsletter-may-2023/</id><summary type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;Our progress in May was:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We released an updated &lt;a href="/prospectus/ethicalads-advertiser-prospectus.pdf"&gt;Q3 prospectus&lt;/a&gt;.
  The major changes were slightly increased US …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;Our progress in May was:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We released an updated &lt;a href="/prospectus/ethicalads-advertiser-prospectus.pdf"&gt;Q3 prospectus&lt;/a&gt;.
  The major changes were slightly increased US &amp;amp; Canada prices and slightly decreased European pricing.
  This is in response to our supply and demand where we've been completely booked in North America
  for essentially all of Q2. We are also highlighting a slightly higher discount for campaigns
  exceeding $25k per quarter.&lt;/li&gt;
&lt;li&gt;We wrote a blog post that features the
  &lt;a href="/blog/2023/05/how-the-internet-ads-industry-works-players-tactics-pii-part-i/"&gt;lay of the land of the ad industry&lt;/a&gt;.
  We should have the second installment this month detailing how and why these players
  pass around personal identifiable info.&lt;/li&gt;
&lt;li&gt;We made some first steps toward phasing out some of our earlier approaches toward topic detection
  such as client side keyword and topic detection.
  We've been very happy with the performance and accuracy of our machine learning topic detection.
  This process will continue over the coming months.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our
&lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;
and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="may-advertising-stats"&gt;May advertising stats&lt;/h2&gt;
&lt;p&gt;In May 2023:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$39,935.33&lt;/strong&gt; for our publishers. This is down slightly from April.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;163 publishers&lt;/strong&gt; on our network with at least one paid ad impression.
  This is unchanged from April.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;22,129,392&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We are expecting a small slow down in June especially in Europe,
but overall we've seen steady although noisy growth in terms of advertisers
and campaign sizes.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for June:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We don't do frequency capping (limit showing the same ad to the same user)
  to quite the extent that many ad networks do due to privacy concerns.
  Instead, we focus on frequency capping across time and across a campaign.
  We're working on some additional features in this area which we believe
  will improve campaign performance and improve ad variety for publishers and site visitors.&lt;/li&gt;
&lt;li&gt;We have an update coming on our ad client that will improve
  single page app (SPA) support. Many publishers use single page apps
  which rewrite the content of the page but don't actually reload it.
  For long lasting pages that transition based on user interaction,
  it may make sense to rotate the ad.&lt;/li&gt;
&lt;li&gt;We are rolling out a number of quality of life improvements
  for ourselves around speeding up the publisher payout process
  and configuring campaigns.&lt;/li&gt;
&lt;li&gt;We built a new report for advertisers
  that shows a performance breakdown by topic and intended to release it in May.
  It should be released in the next week.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/><category term="build-in-public"/></entry><entry><title>How the Internet ads industry works: Players, Tactics &amp; PII (Part I)</title><link href="/blog/2023/05/how-the-internet-ads-industry-works-players-tactics-pii-part-i/" rel="alternate"/><published>2023-05-25T00:00:00-07:00</published><updated>2023-05-25T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2023-05-25:/blog/2023/05/how-the-internet-ads-industry-works-players-tactics-pii-part-i/</id><summary type="html">&lt;p&gt;At the most basic level, advertising is a two-sided marketplace with publishers supplying ad impressions and advertisers buying them.
However …&lt;/p&gt;</summary><content type="html">&lt;p&gt;At the most basic level, advertising is a two-sided marketplace with publishers supplying ad impressions and advertisers buying them.
However, as Internet advertising has become more complicated, the landscape has grown
and there's some other parts of the AdTech ecosystem worth highlighting.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Check out &lt;a href="/blog/2023/06/how-the-internet-ads-industry-works-modern-invasive-ad-targeting/"&gt;part two covering modern ad targeting and troves of personal data&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="supply-side"&gt;Supply side&lt;/h2&gt;
&lt;h3 id="ad-networks"&gt;Ad networks&lt;/h3&gt;
&lt;p&gt;An ad network like EthicalAds connects advertisers who want to advertise with publishers
that want to show those ads.
The largest such ad network is &lt;a href="/alternative-to-google-ads/"&gt;Google AdSense&lt;/a&gt; that covers every possible topic and geography.
Facebook has their own much smaller one called Facebook Audience Network,
but there are many smaller networks that focus on niches like ours (developers who care about privacy).
&lt;a href="/alternative-to-carbon-ads/"&gt;CarbonAds&lt;/a&gt; is probably the closest ad network to us.&lt;/p&gt;
&lt;h3 id="publishers"&gt;Publishers&lt;/h3&gt;
&lt;p&gt;Publishers are websites, apps, podcasts, or newsletters that show ads.
These range in size from small sites with very little traffic,
up to some of the biggest ad-funded websites on the Internet.&lt;/p&gt;
&lt;p&gt;Many very large publishers sell their ad inventory directly or even have their own ad server.
This makes most sense for perhaps the top 100 largest websites and apps on the Internet
such as Facebook, Amazon, Snapchat, StackOverflow or Reddit. These publishers are large enough to have their own ad formats, servers, and sales teams.&lt;/p&gt;
&lt;p&gt;Because some of these large publishers have multiple sites
(eg. Amazon sells Twitch ads as well as sponsored products on Amazon itself, Facebook sells Instagram ads),
many very large publishers start to look like ad networks except they are the parent company for their publishers.
Their ads may still be sold by programmatic bidding in a similar way to an exchange or network,
except it is sold directly (called "Programmatic Direct Advertising").&lt;/p&gt;
&lt;h2 id="demand-side"&gt;Demand side&lt;/h2&gt;
&lt;h3 id="advertisers"&gt;Advertisers&lt;/h3&gt;
&lt;p&gt;Advertisers are companies trying to reach consumers to inform them about their products and services
with the ultimate goal of driving more usage and sales.
Advertisers go where their customers or potential customers are
and that usually involves multiple networks and publishers.&lt;/p&gt;
&lt;p&gt;Advertisers have different goals but ultimately they are always concerned with
how much exposure and how many new customers they are getting for their brand and products
compared to how much they are spending while also keeping their brand safe.
They might buy campaigns priced in a variety of different ways from per impression, per click, per lead/acquisition, or even a duration-based ad buy like an offline billboard or a monthly sponsorship.&lt;/p&gt;
&lt;h3 id="ad-agencies"&gt;Ad agencies&lt;/h3&gt;
&lt;p&gt;Many advertisers use an ad agency to buy and place their ads for them on the right networks and publishers.
At EthicalAds, we deal with a number of ad agencies directly and have had good relationships with them.
Frequently, these agencies specialize in a particular segment of the market like developer advertising.&lt;/p&gt;
&lt;p&gt;While agencies usually have access to data like a company's analytics system,
they may not have access to all the same data as the advertiser themselves such as direct conversions
or conversions that happen after talking to a sales rep.&lt;/p&gt;
&lt;h2 id="ad-exchanges"&gt;Ad exchanges&lt;/h2&gt;
&lt;p&gt;Ad exchanges look very similar to ad networks but they are a marketplace that connects multiple advertisers,
the demand side, with multiple ad networks or large publishers, the supply side.
The key difference between a network and an exchange is that the exchange is merely facilitating the sale
like a stock exchange while a network is responsible for their own publishers.
Google operates one of the largest ad exchanges called AdX.&lt;/p&gt;
&lt;p&gt;Ad exchanges create markets for buying and selling of ad space.
In order for ad exchanges to run true auctions and have both bidding prices and asking prices,
they have to treat a lot of traffic as fungible commodities of user metadata such as location information or past actions.
Is an ad placement on the New York Times is the same as an ad on a personal blog if it reaches the right demographic (&lt;a href="/blog/2021/05/how-invasive-ad-targeting-is-bad-for-journalism-and-other-high-quality-publishers/"&gt;we don't think so&lt;/a&gt;)?&lt;/p&gt;
&lt;p&gt;Sales through ad exchanges are frequently handled by "real-time bidding" (RTB) and programmatic advertising,
systems where advertisers place bids against user metadata
(geographic, demographics, past actions, and other behavioral attributes)
and these bids are matched against publisher traffic.&lt;/p&gt;
&lt;p&gt;These approaches usually involve building up databases of personal information on users
in order to better target them with ads.
Like many people in the ad ecosystem, these vast troves of data on millions of users scare us.
They will be covered in more detail in &lt;a href="/blog/2023/06/how-the-internet-ads-industry-works-modern-invasive-ad-targeting/"&gt;part two of this post&lt;/a&gt;.&lt;/p&gt;</content><category term="posts"/><category term="adtech"/><category term="business"/></entry><entry><title>EthicalAds Newsletter - April 2023</title><link href="/blog/2023/05/ethicalads-newsletter-april-2023/" rel="alternate"/><published>2023-05-11T00:00:00-07:00</published><updated>2023-05-11T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2023-05-11:/blog/2023/05/ethicalads-newsletter-april-2023/</id><summary type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;Our progress in April was:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The ads now have a live preview while advertisers edit them.
  We've always …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;Our progress in April was:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The ads now have a live preview while advertisers edit them.
  We've always shown a preview of exactly what the ad looks like, but now it changes in real-time.&lt;/li&gt;
&lt;li&gt;We're slowly rolling out more discussion of our machine learning topic classifier
  into our landing pages. Readers of our blog and our advertisers know about it,
  but we want to highlight it and be transparent about exactly how we classify content
  for great contextual ad targeting.&lt;/li&gt;
&lt;li&gt;Some of our sales process improvements rolled out over the last month.
  Along with a new team member, Emily, we've been able to followup
  with a lot more past advertisers, past leads, and improve the quality of our sales process.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our
&lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;
and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="april-advertising-stats"&gt;April advertising stats&lt;/h2&gt;
&lt;p&gt;In April 2023:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$44,423.82&lt;/strong&gt; for our publishers. While not a record, this is a very good month.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;160 publishers&lt;/strong&gt; on our network with at least one paid ad impression.
  This number has been creeping up nicely. We want it to grow slowly and steadily.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;28,954,706&lt;/strong&gt; paid ad views across the world.
  This beat last month's record.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We've had some success selling a few more very broadly targeted campaigns that are increasing
our overall paid view numbers although sometimes those don't earn as much money as some other campaigns.
Regardless, we are very happy with these numbers. We are expecting May to be similar to April.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for May:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We have a new report coming for advertisers
  that shows a performance breakdown by topic.
  This will be especially interesting for advertisers focused on multiple topics.&lt;/li&gt;
&lt;li&gt;We intend to rollout some additional publisher-focused changes
  that will help publishers using EthicalAds on multiple sites.&lt;/li&gt;
&lt;li&gt;We've been very happy with the performance of our topic classifier.
  It's proven to be more accurate than some of our previous naive attempts
  such as detecting keywords with our ad client.
  As a result we're going to be phasing out some of our other attempts
  and relying on our machine learning a bit more.&lt;/li&gt;
&lt;li&gt;We're still refining it, but we will also have a content piece
  with the lay of the land of the ad industry. Lots of our publishers and many developers
  don't fully understand the ad industry and exploring what it looks like
  and the direction we hope to steer it toward are important.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/><category term="build-in-public"/></entry><entry><title>EthicalAds Newsletter - March 2023</title><link href="/blog/2023/04/ethicalads-newsletter-march-2023/" rel="alternate"/><published>2023-04-11T00:00:00-07:00</published><updated>2023-04-11T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2023-04-11:/blog/2023/04/ethicalads-newsletter-march-2023/</id><summary type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;Our progress in March was:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We rolled out a
  &lt;a href="/advertisers/ad-design-and-specs/"&gt;new landing page detailing our ad specs&lt;/a&gt;
  with a …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;Our progress in March was:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We rolled out a
  &lt;a href="/advertisers/ad-design-and-specs/"&gt;new landing page detailing our ad specs&lt;/a&gt;
  with a number of examples and tips to help campaigns perform their best.&lt;/li&gt;
&lt;li&gt;We made some improvements to the landing pages that compare us against
  &lt;a href="/alternative-to-carbon-ads/"&gt;Carbon&lt;/a&gt; and &lt;a href="/alternative-to-google-ads/"&gt;Google&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;We made a number of improvements to our open source ad server
  which aim to help the folks who use it for their own purposes.
  We'd received some helpful feedback and wanted to show the community some love.&lt;/li&gt;
&lt;li&gt;The improvements we made in &lt;a href="/blog/2023/03/ethicalads-newsletter-february-2023/#new-features"&gt;February&lt;/a&gt;
  to pacing and prioritization were rolled out to (almost) everybody.&lt;/li&gt;
&lt;li&gt;We are making a lot of improvements to our sales process.
  Beginning in early April, Eric and I are onboarding a sales rep to help for the next few months.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our
&lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;
and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="march-advertising-stats"&gt;March advertising stats&lt;/h2&gt;
&lt;p&gt;In March 2023:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$48,749.84&lt;/strong&gt; for our publishers. This was our &lt;strong&gt;best month ever&lt;/strong&gt; for publisher revenue!&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;152 publishers&lt;/strong&gt; on our network with at least one paid ad impression.
  This number has been creeping up nicely. We want it to grow slowly and steadily.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;23,744,797&lt;/strong&gt; paid ad views across the world.
  This was another record for us.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;March was a record month for us.
One change we made to our pricing recently was to lower the cost of some campaigns
in regions that have been historically undersold.
Partially as a result, we sold &lt;strong&gt;a lot&lt;/strong&gt; of traffic in those regions resulting in a huge increase
in total paid ads. While many of these don't earn a lot of money
(region is the biggest factor in &lt;a href="/advertisers/#pricing"&gt;our prices&lt;/a&gt;),
this was very nice to see.&lt;/p&gt;
&lt;p&gt;We don't expect April to be quite as good as March, but it should still be a very good month.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for March:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We have more advertiser UX improvements coming including
  a live preview so our advertisers can see exactly what their ads will look like.&lt;/li&gt;
&lt;li&gt;We are still putting the finishing touches on some ML improvements
  to our content targeting.
  We continue to work with the team behind &lt;a href="https://spacy.io/"&gt;SpaCy&lt;/a&gt;
  to get those most out of our model (using their tool).
  It's great to keep contracting money in the OSS ecosystem.&lt;/li&gt;
&lt;li&gt;A number of improvements we're working on are for our sales process.
  The goal of these are to smooth the process for new and returning advertisers.
  In the past, we've joked that we could sell triple the amount of ads with no
  changes to our product. While that's a bit of an exaggeration,
  advertising requires doing sales and we are ramping up there.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/><category term="build-in-public"/></entry><entry><title>EthicalAds Newsletter - February 2023</title><link href="/blog/2023/03/ethicalads-newsletter-february-2023/" rel="alternate"/><published>2023-03-07T00:00:00-08:00</published><updated>2023-03-07T00:00:00-08:00</updated><author><name>David Fischer</name></author><id>tag:None,2023-03-07:/blog/2023/03/ethicalads-newsletter-february-2023/</id><summary type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;Our progress in February was:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We released a number of performance improvements to our reporting.
  All timeout issues …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;Our progress in February was:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We released a number of performance improvements to our reporting.
  All timeout issues have been resolved and performance is downright snappy on most reports.&lt;/li&gt;
&lt;li&gt;We released some improvements to our ad pacing that will yield
  better performance for our advertisers. Specifically we now allow pacing by the hour instead of by the day to spread out ads across the day more effectively.&lt;/li&gt;
&lt;li&gt;We released a change that will prioritize ads
  with high CTRs. This is another quality of life change for advertisers
  in order to improve their performance.&lt;/li&gt;
&lt;li&gt;We &lt;a href="/advertiser-guide/#measuring-conversions"&gt;documented a few tips on measuring conversions&lt;/a&gt;.
  Advertisers are always comparing how much they spend on ads and what they got in return.
  We want our ad network to be measured consistently
  against other channels so advertisers can see for themselves that our network works well.&lt;/li&gt;
&lt;li&gt;We built a number of internal sales dashboards to better measure our inventory,
  what's starting soon and what is outstanding. The hope here is to be able to bring
  in some additional hands for our small sales team.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our &lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt; and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="february-advertising-stats"&gt;February advertising stats&lt;/h2&gt;
&lt;p&gt;In February 2023:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$34,464.67&lt;/strong&gt; for our publishers.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;147 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;12,773,611&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As we mentioned last month, we expected February to be a bit stronger than January
and we generated about $2,500 in additional revenue for our publishers despite the shorter month.
We expect March to be even stronger still.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for March:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We aim to update our advertiser guide with more examples of successful ads
  and concrete ways to track and measure the success of your ad campaigns
  (without compromising privacy).
  This didn't happen in February because it involved getting permission from advertisers
  which was a bit of a slow process.&lt;/li&gt;
&lt;li&gt;There has been some interest from the open source community in our server.
  We are spending some time to make it easier to take our ad server
  and use it to serve ads for your own project or website.&lt;/li&gt;
&lt;li&gt;Currently, we are combining a few different techniques in order to categorize websites
  where we serve ads including from our ML model, our previous more naive model,
  and in some cases from publishers themselves.
  Now that we're pretty happy with our ML model, we are going to make a few tweaks
  that will result in better targeting results for our advertisers.&lt;/li&gt;
&lt;li&gt;We are also working on some minor UX improvements to our ad server for advertisers.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/><category term="build-in-public"/></entry><entry><title>EthicalAds Newsletter - January 2023</title><link href="/blog/2023/02/ethicalads-newsletter-january-2023/" rel="alternate"/><published>2023-02-08T00:00:00-08:00</published><updated>2023-02-08T00:00:00-08:00</updated><author><name>David Fischer</name></author><id>tag:None,2023-02-08:/blog/2023/02/ethicalads-newsletter-january-2023/</id><summary type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;These are the major features we released in January:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We made numerous reporting and performance improvements
  to our …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;These are the major features we released in January:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We made numerous reporting and performance improvements
  to our advertiser and publisher platform.&lt;/li&gt;
&lt;li&gt;Our ML model has been updated to improve performance. It has also been migrated into its own private repository, so that we can iterate on it without compromising data privacy of our users.&lt;/li&gt;
&lt;li&gt;We got a couple content pieces out on &lt;a href="/blog/2023/01/data-privacy-week-2023-privacy-first-alternatives/"&gt;Privacy Week 2023&lt;/a&gt;
  and on &lt;a href="/blog/2023/02/keeping-yourself-safe-from-security-and-privacy-issues-in-advertising/"&gt;protecting yourself from security and privacy issues on big ad networks&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- IMPORTANT: Update with link when we merge the ad blocker post --&gt;

&lt;p&gt;You can always see our latest server updates in our &lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt; and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="january-advertising-stats"&gt;January advertising stats&lt;/h2&gt;
&lt;p&gt;In January 2023:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$32,078.53&lt;/strong&gt; for our publishers.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;147 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;12,686,867&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As we expected from the guidance in our &lt;a href="/blog/2023/01/ethicalads-newsletter-december-2022/"&gt;December newsletter&lt;/a&gt;,
January was a rough month for advertising and losing one of our biggest clients will do that.&lt;/p&gt;
&lt;p&gt;However, we expect February to be a significantly better month from an ad sales perspective
although not as good as some of our best months ever at the end of last year.
With the price reduction we put in place for Q1, we have multiple advertisers
increasing the size of their campaigns.
While ad budgets are tight and despite economic gloom in the news,
we haven't seen that much spillover into actual campaigns.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for February:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We aim to update our advertiser guide with more examples of successful ads
  and concrete ways to track and measure the success of your ad campaigns
  (without compromising privacy).&lt;/li&gt;
&lt;li&gt;We aim to support GitHub Sponsors as a payout option for open source projects.&lt;/li&gt;
&lt;li&gt;We are working on some changes to how we pace ads over the day and over a campaign.
  We believe there are a number of optimizations to help campaigns perform a little better.&lt;/li&gt;
&lt;li&gt;We're considering additional product changes that help advertisers optimize their campaigns effectively on our platform over the length of the campaign.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/><category term="build-in-public"/></entry><entry><title>Keeping Yourself Safe from Security and Privacy Issues in Advertising</title><link href="/blog/2023/02/keeping-yourself-safe-from-security-and-privacy-issues-in-advertising/" rel="alternate"/><published>2023-02-06T00:00:00-08:00</published><updated>2023-02-06T00:00:00-08:00</updated><author><name>David Fischer</name></author><id>tag:None,2023-02-06:/blog/2023/02/keeping-yourself-safe-from-security-and-privacy-issues-in-advertising/</id><summary type="html">&lt;p&gt;Many of our readers are familiar with privacy issues related to advertising.
If you need some convincing, check out our …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Many of our readers are familiar with privacy issues related to advertising.
If you need some convincing, check out our &lt;a href="/blog/2022/10/privacy-teardown-search-engines/"&gt;privacy teardown on search engines&lt;/a&gt; from a few months ago
comparing the big search companies against some privacy-focused search companies.
Nobody wants their personal information siphoned off to companies they've never heard of.&lt;/p&gt;
&lt;p&gt;We're going to highlight some other issues in the minefield that is adtech
and we have some recommendations to keep you safe and secure.&lt;/p&gt;
&lt;h2 id="malware-in-advertising"&gt;Malware in advertising&lt;/h2&gt;
&lt;p&gt;The days of ad networks running scripts on behalf of advertisers
that made cross-site scripting vulnerabilities (XSS) trivial are mostly gone.
However, that doesn't mean that security issues around advertising have also gone the way of MySpace.&lt;/p&gt;
&lt;p&gt;A very recent trend is malvertising: real advertisers paying to promote malware,
ransomware, or spyware. These kinds of ads usually target people searching for software to install
especially things like developer tools, password managers, and cryptocurrency wallets.
In some cases, the ad landing page which serves the malware is even designed or named to mimic its real counterpart.&lt;/p&gt;
&lt;div class="postimage text-center"&gt;
  &lt;img class="w-50 shadow-lg" src="/images/posts/2023-malvertising-on-google.png" alt="Malware being advertised ('malvertising') in Google search ads"&gt;
  &lt;p&gt;Malware being advertised ("malvertising") in Google search ads in January 2023. &lt;br&gt;Credit: &lt;a href="https://twitter.com/malwrhunterteam/status/1616565189754900480" rel="noopener nofollow"&gt;MalwareHunterTeam on Twitter&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;There's been a big uptick in this kind of advertising over the last month.
While I expect Google and domain registrars will clamp down on the worst offenders pretty quickly,
these kinds of issues resurface periodically both on Google and elsewhere.&lt;/p&gt;
&lt;p&gt;In mid-2018, for example, &lt;a href="https://support.google.com/adspolicy/answer/7648803"&gt;Google kicked off some cryptocurrency advertisers&lt;/a&gt; for promoting ICOs, untrusted wallets, and unlicensed option trading.
Many of those same advertisers just went to less discerning networks to keep doing the same thing.
Our own network had a massive uptick in prospects interested in blockchain advertising that week.&lt;/p&gt;
&lt;h2 id="how-to-keep-yourself-safe"&gt;How to keep yourself safe&lt;/h2&gt;
&lt;div class="postimage text-center"&gt;
  &lt;img class="w-50 shadow-lg" src="/images/posts/2023-ad-blocker-meme.jpg" alt="Even people working in the ad industry protect themselves"&gt;
  &lt;p&gt;Even people working in the ad industry protect themselves. &lt;br&gt;Credit: &lt;a href="https://www.reddit.com/r/adops/comments/yrrmsn/i_feel_seen/" rel="noopener nofollow"&gt;/r/adops on Reddit&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;It might be a bit strange for an ad company like us to recommend this,
but tracker blockers or ad blockers are a great way to keep yourself private and safe
from malware or scams in advertising.
Last month, we had a post for privacy week
where we &lt;a href="/blog/2023/01/data-privacy-week-2023-privacy-first-alternatives/#ad-blockers"&gt;recommended some ad and tracker blockers&lt;/a&gt;
that we use ourselves.&lt;/p&gt;
&lt;p&gt;We are definitely a bit biased since it doesn't block us (because we don't track you),
but EFF's &lt;a href="https://privacybadger.org/"&gt;Privacy Badger&lt;/a&gt; is a great tracker blocker
that works differently than most other ad blockers out there.
While it only blocks trackers, since most ads track you, it ends up blocking a lot of ads.&lt;/p&gt;
&lt;p&gt;A lot of yours and our favorite sites on the internet rely on ads to keep operating.
If you're like us, you want to support them while still protecting your privacy
and keeping yourself safe.
Despite ad blockers and tracker blockers, EthicalAds still reaches tons of developers.&lt;/p&gt;
&lt;div class="postimage text-center"&gt;
  &lt;img class="w-75 shadow-lg" src="/images/posts/2023-privacy-badger-notrackers.png" alt="Results of the EFF's Privacy Badger on our homepage showing no trackers"&gt;
  &lt;p&gt;Results of the EFF's Privacy Badger on our homepage showing no trackers&lt;/p&gt;
&lt;/div&gt;

&lt;h2 id="how-ethicalads-keeps-you-safe"&gt;How EthicalAds keeps you safe&lt;/h2&gt;
&lt;p&gt;Our biggest advantage over the big ad networks is that because we're small,
we have a relationship with every single one of our advertisers.
This keeps our ads relevant to software development and safe from bad actors promoting malware.
It would be an impressive feat of social engineering to get a malware advertiser
onto our network.&lt;/p&gt;
&lt;p&gt;A person on our team reviews every ad for new advertisers before they go live.
We also never run third-party code or serve advertiser hosted resources.
Everything is hosted on our servers.
We built this ad network to run ads on our own site Read the Docs so we completely understand
the concerns publishers have in running ads on their sites.&lt;/p&gt;
&lt;p&gt;The other side of this coin is that we also have also talked to and vetted every single
one of our publishers.
A member of our team checks every publisher site before paid ads go live.
Advertisers care a lot about brand safety (they tell us a lot!).
They don't want the brand they're trying to build
being promoted next to malware or questionable content.&lt;/p&gt;
&lt;p&gt;Both publishers and advertisers care a lot about what they're building.
Our promise to them is that we will treat their brand the way we treat our own.&lt;/p&gt;
&lt;p&gt;Want to advertise or host ads on a network you can trust?
&lt;a href="/contact/"&gt;Get in touch&lt;/a&gt;!&lt;/p&gt;</content><category term="posts"/><category term="security"/><category term="privacy"/><category term="adblock"/><category term="adtech"/></entry><entry><title>Data Privacy Week 2023 - Privacy-first Alternatives</title><link href="/blog/2023/01/data-privacy-week-2023-privacy-first-alternatives/" rel="alternate"/><published>2023-01-23T00:00:00-08:00</published><updated>2023-01-23T00:00:00-08:00</updated><author><name>David Fischer &amp; Ra Cohen</name></author><id>tag:None,2023-01-23:/blog/2023/01/data-privacy-week-2023-privacy-first-alternatives/</id><summary type="html">&lt;p&gt;This week is Data Privacy Week!
To celebrate, we're helping you take charge of your own data by sharing some …&lt;/p&gt;</summary><content type="html">&lt;p&gt;This week is Data Privacy Week!
To celebrate, we're helping you take charge of your own data by sharing some of our favorite privacy-first services.&lt;/p&gt;
&lt;h2 id="web-browsers"&gt;Web Browsers&lt;/h2&gt;
&lt;p&gt;With over 63% of the browser market across devices,
Google Chrome is currently and overwelmingly the dominant web browser.
As Chrome grew, however, people became more conscious of the analytics, user profiling,
and other privacy intrusions built into it.
Maybe allowing a mega-corporation to know every single intimate detail of my life
isn't necessarily a good thing. Who knew?
Lucky for decades-long former Chrome users, there's another Chrome build which doesn't funnel
everything you've ever looked at back to the mothership.&lt;/p&gt;
&lt;p&gt;The open source &lt;a href="https://www.chromium.org/"&gt;Chromium&lt;/a&gt; is actually the code upon which Chrome is built.
Google maintains the codebase, documentation, and &lt;a href="https://download-chromium.appspot.com/"&gt;download site&lt;/a&gt;,
but as open source projects are wont to do,
Chromium has expanded into hundreds if not thousands of splinter projects and companies.
There's an entire section on the Chromium wikipedia page featuring the largest &lt;a href="https://en.wikipedia.org/wiki/Chromium_(web_browser)#Browsers_based_on_Chromium"&gt;browsers based on Chromium&lt;/a&gt;.
Many of which are privacy-focused browsers like &lt;a href="https://brave.com/"&gt;Brave&lt;/a&gt;,
&lt;a href="https://vivaldi.com/"&gt;Vivaldi&lt;/a&gt; and the &lt;a href="https://www.avast.com/secure-browser"&gt;Avast Secure Browser&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The EthicalAds team relies on Firefox and Chromium.
On mobile, DuckDuckGo has a &lt;a href="https://duckduckgo.com/app"&gt;mobile browser&lt;/a&gt;
with some intelligent tracker blocking built-in to keep you safe.&lt;/p&gt;
&lt;h2 id="ad-blockers"&gt;Ad Blockers&lt;/h2&gt;
&lt;p&gt;About as important as the browser itself, are the additional privacy add-ons
that keep you safe from ads and trackers.
Many people like myself used &lt;a href="https://adblockplus.org/"&gt;AdBlockPlus&lt;/a&gt; for years without much thought.
It's a simple, effective service which gives you control over not only which websites are allowed to show ads,
but it even allows you to allow list certain YouTube and Twitch channels to run their ads
so you can support your favorite creators.
The creators of AdBlockPlus have gone on to form the &lt;a href="https://acceptableads.com/about/"&gt;Acceptable Ads Committee&lt;/a&gt;
who's &lt;a href="https://acceptableads.com/standard/"&gt;Acceptable Ads Standard&lt;/a&gt; we follow
as EthicalAds believes in their mission of creating a sustainable compromise between user preference and creator monetization.&lt;/p&gt;
&lt;p&gt;However, by default AdBlockPlus permits "Acceptable Ads" that &lt;a href="https://help.getadblock.com/support/solutions/articles/6000224547-about-acceptable-ads-and-third-party-tracking/"&gt;use third-party tracking&lt;/a&gt;.
The standard for an unacceptable ad is largely focused on how annoying an ad is to the user experience
as opposed to the detrimental effects of &lt;a href="https://www.ethicalads.io/surveillance-advertising/?ref=data-privacy-day-2022"&gt;surveillance advertising&lt;/a&gt; as a whole.&lt;/p&gt;
&lt;p&gt;As an alternative, some of our team relies on &lt;a href="https://privacybadger.org/"&gt;Privacy Badger&lt;/a&gt;.
Privacy Badger is a browser extension from the Electronic Frontier Foundation, that isn't even an ad blocker.
It only blocks &lt;em&gt;trackers&lt;/em&gt;.
However, since most ad networks track users, it ends up blocking most ads (but not us).
Privacy Badger also &lt;a href="https://privacybadger.org/#How-does-Privacy-Badger-work"&gt;doesn't rely&lt;/a&gt; on suppression lists which is how most ad blockers work.
Instead, it learns based on the sites you visit which sites are tracking you across domains and then
either blocks requests to those sites completely or just disables them from storing cookies or other storage like local storage.
Privacy Badger is supported on Firefox, Chrome, Microsoft Edge, and Opera so if you're running one of those, definitely check it out.&lt;/p&gt;
&lt;div class="postimage text-center"&gt;
  &lt;img class="w-50 shadow-lg" src="/images/posts/2022-privacy-badger-bing.png" alt="Results of the EFF's Privacy Badger run on the Bing homepage"&gt;
  &lt;p&gt;Results of the EFF's Privacy Badger run on the Bing homepage&lt;/p&gt;
&lt;/div&gt;

&lt;h2 id="search-engines"&gt;Search Engines&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Check out our posts from last year on
&lt;a href="/blog/2022/11/best-search-engines-for-your-privacy/"&gt;the best search engines for your privacy&lt;/a&gt;
and a &lt;a href="/blog/2022/10/privacy-teardown-search-engines/"&gt;privacy teardown of common search engines&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;When thinking of privacy-first search engines,
your first thought may be &lt;a href="https://duckduckgo.com/"&gt;DuckDuckGo&lt;/a&gt; and for good reason.
They've been a thought leader in the privacy-first movement since their founding in 2008 and
have staked claim that search engines don't have to track users to be profitable.
I'd especially like to shoutout their great blog called &lt;a href="https://spreadprivacy.com/"&gt;Spread Privacy&lt;/a&gt; which is filled with
bite-sized articles on everything from personally actionable privacy tips
to digests on the latest results from the privacy-focused research they're conducting.
Not to mention how DuckDuckGo's supported the movement financially with &lt;a href="https://spreadprivacy.com/2021-duckduckgo-donations/"&gt;over $1,000,000 donated&lt;/a&gt;
to privacy and competition organizations in 2021 alone.
DuckDuckGo is obviously a great pick for any privacy-concious netizen.&lt;/p&gt;
&lt;p&gt;However, there are a number of other great search engines that respect your privacy.
Late last year, we did a &lt;a href="/blog/2022/11/best-search-engines-for-your-privacy/"&gt;review&lt;/a&gt;
of a number of a number of search engines from a data privacy perspective.
Between &lt;a href="https://www.mojeek.com/"&gt;Mojeek&lt;/a&gt;,
&lt;a href="https://search.brave.com/"&gt;Brave Search&lt;/a&gt;, and &lt;a href="https://you.com/"&gt;You.com's search engine&lt;/a&gt;
(their developer-focused search engine &lt;a href="https://you.com/code"&gt;YouCode&lt;/a&gt; is fantastic),
there's a number of great alternatives to Google.&lt;/p&gt;
&lt;div class="postimage text-center"&gt;
  &lt;img class="w-75 shadow-lg" src="/images/posts/2022-search-engine-privacy-youcom.png" alt="Details of Python's hashlib in YouCode search"&gt;
  &lt;p&gt;Details of Python's hashlib in YouCode search&lt;/p&gt;
&lt;/div&gt;

&lt;h2 id="analytics"&gt;Analytics&lt;/h2&gt;
&lt;p&gt;As a crucial step in building our own privacy-first, &lt;a href="/blog/2021/10/building-an-ethical-marketing-funnel/"&gt;ethical marketing funnel&lt;/a&gt;,
we evaluated a number of Google Analytics alternatives.
Specifically we wanted to support open-source organizations
that specialize in anoniminity-preserving aggregation algorithms
for measuring inbound referrals in order to respect the privacy of our site visitor's data.
In order to meet these criteria, we researched dozens of platforms and
narrowed our favorites down to two excellent companies,
Plausible and SimpleAnalytics.&lt;/p&gt;
&lt;p&gt;We at EthicalAds use &lt;a href="https://plausible.io/"&gt;Plausible&lt;/a&gt; as our analytics provider
for a number of reasons including their comprehensive, yet elegant single page displays,
their user-agnostic aggregation methods as outlined in their informative &lt;a href="https://plausible.io/privacy-focused-web-analytics"&gt;privacy statement&lt;/a&gt;,
and most importantly their commitment to maintaining not only their &lt;a href="https://plausible.io/open-source-website-analytics"&gt;open source platform&lt;/a&gt;
but also their &lt;a href="https://plausible.io/docs"&gt;documentation&lt;/a&gt; (a cause near and dear to our hearts).&lt;/p&gt;
&lt;p&gt;Adding privacy-focused analytics has empowered us to take a more data-backed approach to our growth.
We now assess the conversion rates of our A/B test variants for various house ads, landing page SEO-tweaks, as well as our other media inbounds
in order to direct more time and resources to whichever growth channels are proving most effective,
all &lt;em&gt;without&lt;/em&gt; compromising the personal information of our visitors.
That being said, Plausible has only a limited-time free trial period and so isn't necessarily a perfect fit for
up-and-coming open source developers, technical tutorial creators, or data is beautiful enthusiasts who have yet to monetize their growing platforms.&lt;/p&gt;
&lt;p&gt;This is where our second privacy-preserving analytics recommendation shines.
&lt;a href="https://simpleanalytics.com/?ref=ethicalads-blog"&gt;Simple Analytics&lt;/a&gt; is a privacy-first analytics product designed specifically for &lt;em&gt;developers&lt;/em&gt;. Sound familiar?
The resonance between the EthicalAds' &lt;a href="https://www.ethicalads.io/advertising-vision/?ref=data-privacy-day-2022"&gt;Our Ad Vision&lt;/a&gt; and
Simple Analytics' &lt;a href="https://simpleanalytics.com/our-promise"&gt;Our Promise&lt;/a&gt; page is astounding.&lt;/p&gt;
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Data privacy week is relatively new,
but we are thrilled to be in the privacy-first movement,
and happy to take the opportunity to shed a spotlight on some other privacy-first projects who are doing great things.
We've only scratched the surface of the privacy-tech ecosystem here,
but every single product discussed has been used by one of us at EthicalAds.&lt;/p&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any privacy-first products that we should check out,
we always love to hear from you.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; the first version of the post appeared in 2022 but it has been updated for 2023.&lt;/p&gt;</content><category term="posts"/><category term="privacy"/><category term="community"/></entry><entry><title>EthicalAds Newsletter - December 2022</title><link href="/blog/2023/01/ethicalads-newsletter-december-2022/" rel="alternate"/><published>2023-01-10T00:00:00-08:00</published><updated>2023-01-10T00:00:00-08:00</updated><author><name>David Fischer</name></author><id>tag:None,2023-01-10:/blog/2023/01/ethicalads-newsletter-december-2022/</id><summary type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;These are the major features we released in December:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We automated our training process for &lt;a href="https://github.com/readthedocs/ethicalads-model"&gt;our ML model …&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;These are the major features we released in December:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We automated our training process for &lt;a href="https://github.com/readthedocs/ethicalads-model"&gt;our ML model&lt;/a&gt;
  that classifies content to help show the most relevant ad to users.
  We are using &lt;a href="https://lambdalabs.com/"&gt;LambdaLabs&lt;/a&gt; on-demand GPU instances
  to train our model whenever there are changes and a single training costs about $1.
  Full disclosure: LambdaLabs has used EthicalAds.&lt;/li&gt;
&lt;li&gt;We released our &lt;a href="/prospectus/ethicalads-advertiser-prospectus.pdf"&gt;Q1 prospectus&lt;/a&gt;
  which included a price reduction for campaigns focusing on all developers.
  Our prices are updated quarterly based on our supply of ad space for various topics
  and the demand from our advertisers.&lt;/li&gt;
&lt;li&gt;Our &lt;a href="/advertisers/calculator/"&gt;campaign calculator&lt;/a&gt;
  got a few improvements to help people go from calculating to onboarded and advertising with EthicalAds.&lt;/li&gt;
&lt;li&gt;We detailed our reporting interfaces in a new &lt;a href="/advertisers/reporting/"&gt;landing page&lt;/a&gt;.
  Advertisers frequently ask about the kind of information they get from us
  and we want to be as upfront as possible.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our &lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt; and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="december-advertising-stats"&gt;December advertising stats&lt;/h2&gt;
&lt;p&gt;In December 2022:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$39,205.17&lt;/strong&gt; for our publishers. This was a slight increase on November.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;148 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;19,801,179&lt;/strong&gt; paid ad views across the world.
  This is a significant increase month-over-month but a lot of that is due to some lower priced
  but widely targeted campaigns.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;While December held up pretty well in terms of growth, we are expecting a weaker January.
The beginning of the year is frequently a weaker time of year but we've started to see some advertisers
pull back and reduce spending.
Advertising is an easy area to cut in a tougher economic environment but it usually also comes back quickly.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for January:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We'll be ramping up our sales efforts in January to try to fill all of our inventory
  and this will take significant focus.&lt;/li&gt;
&lt;li&gt;In January, we plan to allow a way for advertisers to get report data out of a continually updated
  Google sheet in addition to our existing API.&lt;/li&gt;
&lt;li&gt;We aim to produce a content piece about the positives and negatives (but mostly positives)
  of ad blockers and tracker blockers.
  All of our team uses some sort of blocking technology and in many ways
  it actually results in a better ad ecosystem.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/><category term="build-in-public"/></entry><entry><title>EthicalAds Newsletter - November 2022</title><link href="/blog/2022/12/ethicalads-newsletter-november-2022/" rel="alternate"/><published>2022-12-07T00:00:00-08:00</published><updated>2022-12-07T00:00:00-08:00</updated><author><name>David Fischer</name></author><id>tag:None,2022-12-07:/blog/2022/12/ethicalads-newsletter-november-2022/</id><summary type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;These are the major features we released in November:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We did a followup post on &lt;a href="/blog/2022/11/best-search-engines-for-your-privacy/"&gt;privacy search engine …&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;These are the major features we released in November:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We did a followup post on &lt;a href="/blog/2022/11/best-search-engines-for-your-privacy/"&gt;privacy search engine recommendations&lt;/a&gt;.
  It outlined the landscape and makes a few suggestions,
  but ultimately, the right search engine for you depends on what you're looking for.&lt;/li&gt;
&lt;li&gt;We recorded product overview videos to show what it's like to use our platform.
  They are live on our &lt;a href="https://youtube.com/@ethicalads"&gt;YouTube channel&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;On the product side, we did a number of performance improvements to our reporting
  and offloaded more reporting to Metabase which we've
  &lt;a href="/blog/2021/12/graphing-ad-data-at-ethicalads/"&gt;written about previously&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our &lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt; and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="november-advertising-stats"&gt;November advertising stats&lt;/h2&gt;
&lt;p&gt;In November 2022:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$38,852.04&lt;/strong&gt; for our publishers.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;148 publishers&lt;/strong&gt; on our network with at least one paid ad impression.
  Currently, we are being very&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;17,683,179&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As we mentioned last month, we expected November to be slightly weaker
than the record months we had in September and October.
The end of the year is usually a little weaker both in terms of supply
(folks go on vacations and thus don't view ads) and demand,
but so far things are holding up well by comparison to previous years.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for December:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We are still aiming to get our GPU model building with a CI service.
  This would mean retraining and updating the model anytime
  we add new hand categorized data to our data set.
  This tight feedback loop will create a flywheel to help our model get better more rapidly.&lt;/li&gt;
&lt;li&gt;We will have a Q1 prospectus with updated pricing early in the month.&lt;/li&gt;
&lt;li&gt;We're aiming to integrate parts of our &lt;a href="/advertisers/calculator/"&gt;campaign calculator&lt;/a&gt;
  into our onboarding process to help advertisers plan and start their first campaign.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/><category term="build-in-public"/></entry><entry><title>Best Search Engines for your Privacy</title><link href="/blog/2022/11/best-search-engines-for-your-privacy/" rel="alternate"/><published>2022-11-15T00:00:00-08:00</published><updated>2022-11-15T00:00:00-08:00</updated><author><name>David Fischer</name></author><id>tag:None,2022-11-15:/blog/2022/11/best-search-engines-for-your-privacy/</id><summary type="html">&lt;p&gt;You don't have to use a search engine like Google which retains your queries forever to get great results anymore …&lt;/p&gt;</summary><content type="html">&lt;p&gt;You don't have to use a search engine like Google which retains your queries forever to get great results anymore.
Last month, we did a &lt;a href="/blog/2022/10/privacy-teardown-search-engines/"&gt;privacy teardown&lt;/a&gt; of some large search engines as well as the more privacy minded ones.
Based on our results, we're prepared to make a few recommendations and offer a few tips to keep you safe.&lt;/p&gt;
&lt;h2 id="privacy-search-engine-landscape"&gt;Privacy search engine landscape&lt;/h2&gt;
&lt;p&gt;There's a lot of privacy concerns when searching online:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Big tech companies store search data on millions of individuals including you.&lt;/li&gt;
&lt;li&gt;You can be shown personalized results that keep you in a sort of exposure bubble.&lt;/li&gt;
&lt;li&gt;There's also worries about data sharing with third-parties you have no relationship with.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Fortunately, there's a lot of great alternatives and the right one depends on exactly what you're looking for in a search engine.&lt;/p&gt;
&lt;h3 id="duckduckgo"&gt;&lt;a href="https://duckduckgo.com/"&gt;DuckDuckGo&lt;/a&gt;&lt;/h3&gt;
&lt;div class="postimage text-center"&gt;
  &lt;img class="w-75 shadow-lg" src="/images/posts/2022-search-engine-privacy-duckduckgo.png" alt="DuckDuckGo - a privacy search engine"&gt;
  &lt;p&gt;DuckDuckGo search engine&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;DuckDuckGo has become synonymous, at least among techies, as the private alternative to Google.
The search engine and the company has built their brand on privacy.
In our teardown, DuckDuckGo scored top marks for a lack of cookies and persistent storage and no third-party requests.
It's just a few clicks away to make it your browser's default search engine,
and when the results aren't quite what you're looking for, you can prefix your query with &lt;code&gt;!g&lt;/code&gt; to search Google.&lt;/p&gt;
&lt;p&gt;The user experience is fantastic and they have mobile apps for Android and iOS as well as a Mac desktop app.
The mobile app on Android can also double as tracker protection even for requests made in other apps.
By using Bing's search index under the hood, the search results are pretty close to Google's in quality.
&lt;strong&gt;DuckDuckGo is a great overall choice for a private search engine.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id="mojeek"&gt;&lt;a href="https://www.mojeek.com/"&gt;Mojeek&lt;/a&gt;&lt;/h3&gt;
&lt;div class="postimage text-center"&gt;
  &lt;img class="w-75 shadow-lg" src="/images/posts/2022-search-engine-privacy-mojeek.png" alt="Mojeek, an independent search engine"&gt;
  &lt;p&gt;Mojeek, an independent search engine&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;Mojeek is a UK-based search engine that has built their own search index rather than using Bing's like many of the others here (Mojeek has advertised with EthicalAds in the past).
In our teardown, Mojeek was fantastic and didn't share any data, had no requests blocked by ad blockers,
and in fact, the whole search engine homepage and results page loaded everything from a single domain.&lt;/p&gt;
&lt;p&gt;While the search engine results page is a bit spartan,
it loads very fast and the actual result quality was pretty good.
&lt;strong&gt;If you're looking for an independent search engine that doesn't rely on big tech at all,
Mojeek is amazing.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id="youcom"&gt;&lt;a href="https://you.com/code"&gt;You.com&lt;/a&gt;&lt;/h3&gt;
&lt;div class="postimage text-center"&gt;
  &lt;img class="w-75 shadow-lg" src="/images/posts/2022-search-engine-privacy-youcom.png" alt="Details of Python's hashlib in YouCode search"&gt;
  &lt;p&gt;Details of Python's hashlib in YouCode search&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;You.com allows you to customize your search experience
by showing results from common websites you visit
(You.com has advertised with EthicalAds in the past).
One big advantage that comes from these integrations is that it can function as a great developer search engine
and that's why the team built YouCode search.
YouCode integrates results from common developer sites like StackOverflow
and Read the Docs, the parent of EthicalAds, directly onto the search engine results screen.&lt;/p&gt;
&lt;p&gt;While I couldn't find details on You.com's search index, based on their search results,
it's clear that at least in some queries You.com is relying on Bing's index.
That means that the result quality will stay high.
In our privacy teardown, You.com and YouCode got close to top marks.
&lt;strong&gt;For a search engine tuned for developer queries, You.com and specifically YouCode is a good choice.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id="brave-search"&gt;&lt;a href="https://search.brave.com/"&gt;Brave Search&lt;/a&gt;&lt;/h3&gt;
&lt;div class="postimage text-center"&gt;
  &lt;img class="w-75 shadow-lg" src="/images/posts/2022-search-engine-privacy-brave.png" alt="Brave search"&gt;
  &lt;p&gt;Brave search&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;Brave is a search engine from the folks who created the Brave Browser.
In our teardown, its results were perfect with no cookies, trackers, third-parties, or any other privacy violations.
Like Mojeek but unlike the rest of the bunch, Brave has built their own search index
although in some cases they claim to mix their results with Bing's.
Despite mostly relying on its own search index, I was pretty impressed with the search result quality and order
even when compared to Bing itself.&lt;/p&gt;
&lt;p&gt;Like DuckDuckGo, Brave has desktop and mobile apps so you can search privately everywhere.
They claim not to store searches, clicks, or any other data and allow truly anonymous searches.
Brave specifically mentions that they do not filter or downrank any search results.
&lt;strong&gt;For a good alternative from a team focused on privacy, you can't go wrong with Brave Search.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id="other-alternatives"&gt;Other alternatives&lt;/h3&gt;
&lt;div class="postimage text-center"&gt;
  &lt;img class="w-75 shadow-lg" src="/images/posts/2022-search-engine-privacy-swisscows.png" alt="SwissCows search engine"&gt;
  &lt;p&gt;SwissCows search engine homepage&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;There are even more privacy-focused search engines that we did not detail in our privacy teardown.
You might consider these search engines if you have particular concerns about data jurisdiction.
From a quality perspective, most of these search engines rely on search indexes from other search engines.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://swisscows.com/"&gt;SwissCows&lt;/a&gt;&lt;/strong&gt; - SwissCows is a Swiss-hosted search engine that like DuckDuckGo uses Bing's index to fulfill search queries. It claims its results are "family friendly" and that they do not store any user data.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.qwant.com/"&gt;Qwant&lt;/a&gt;&lt;/strong&gt; - Qwant is a French search engine that also uses Bing's search index.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://searx.info/"&gt;Searx&lt;/a&gt;&lt;/strong&gt; - Searx is an open source meta search engine that relies on results from other search engines.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="recommendations"&gt;Recommendations&lt;/h2&gt;
&lt;p&gt;Unless you have specific concerns,
you can't go too far wrong with any of these privacy-minded alternatives.
As an every day search engine, DuckDuckGo is popular with the EthicalAds and Read the Docs teams
while respecting your privacy.
For a search engine completely separate from the tech titans, try Mojeek or Brave Search
and for a more developer focused search experience, both You.com and DuckDuckGo are great.&lt;/p&gt;
&lt;p&gt;Do you disagree with our recommendations or you have something to add?
&lt;a href="/contact/"&gt;Get in touch&lt;/a&gt;. We always love to hear from you.&lt;/p&gt;</content><category term="posts"/></entry><entry><title>EthicalAds Newsletter - October 2022</title><link href="/blog/2022/11/ethicalads-newsletter-october-2022/" rel="alternate"/><published>2022-11-08T00:00:00-08:00</published><updated>2022-11-08T00:00:00-08:00</updated><author><name>David Fischer</name></author><id>tag:None,2022-11-08:/blog/2022/11/ethicalads-newsletter-october-2022/</id><summary type="html">&lt;p&gt;October wasn't quite a record month in terms of revenue,
but it was our best month ever except for September …&lt;/p&gt;</summary><content type="html">&lt;p&gt;October wasn't quite a record month in terms of revenue,
but it was our best month ever except for September.&lt;/p&gt;
&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;These are the major features we released in October:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We released a &lt;a href="/advertisers/calculator/"&gt;campaign calculator&lt;/a&gt;
  to help advertisers budget for a campaign based on the responses they're hoping to achieve.&lt;/li&gt;
&lt;li&gt;We did our first &lt;a href="/blog/2022/10/privacy-teardown-search-engines/"&gt;privacy teardown of search engines&lt;/a&gt;.
  Depending on the response we get, we think this could be a series of posts
  to educate audiences on what to look for in services from a privacy perspective.&lt;/li&gt;
&lt;li&gt;Our GPU trained contextual targeting model rolled out into production in October.
  So far, the results are much better than the previous iteration.
  There were some performance issues taking the model from development into production,
  but those were worked out.&lt;/li&gt;
&lt;li&gt;We announced our
  &lt;a href="/blog/2022/11/python-software-foundation-ethicalads-working-to-promote-open-source-sponsorship/"&gt;partnership with the PSF&lt;/a&gt;
  to help them manage and roll out their sponsors logos and imagery to all their properties.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our &lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt; and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="october-advertising-stats"&gt;October advertising stats&lt;/h2&gt;
&lt;p&gt;In October 2022:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$45,511.07&lt;/strong&gt; for our publishers. This was our second highest publisher revenue month after September&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;152 publishers&lt;/strong&gt; on our network with at least one paid ad impression.
  This number continues to creep up as more sites become interested in making money without invasive tracking.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;20,236,866&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As I expected, October was a very strong month for us and for our publishers.
We usually see a seasonal slowdown around the holidays and between fewer ads shown over the Thanksgiving holiday
in the US and other seasonal pullback, we expect November to be a quite bit weaker than October.&lt;/p&gt;
&lt;p&gt;We've definitely seen some advertisers tighten their budgets as well and that's further contributing to a weaker finish to the year.
Usually advertising is back to full swing in January or February,
but outside of the brief Covid crash in March 2020,
we haven't operated through a true downturn.
Regardless, we can weather an economic downturn if it comes.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for November:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;From a content marketing perspective, we're planning to do a followup post
  on our privacy teardown of search engines,
  a post with details about how our ML model works,
  and a blog detailing how ad blockers can actually help a privacy-focused network like ours.&lt;/li&gt;
&lt;li&gt;On the product side, we're hoping to get a continuous integration service configured
  for our GPU trained model. This would mean retraining and updating the model anytime
  we add new hand categorized data to our data set.
  This tight feedback loop will create a flywheel to help our model get better more rapidly.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/></entry><entry><title>A new approach to content-based targeting for advertising</title><link href="/blog/2022/11/a-new-approach-to-content-based-targeting-for-advertising/" rel="alternate"/><published>2022-11-07T00:00:00-08:00</published><updated>2022-11-07T00:00:00-08:00</updated><author><name>Eric Holscher</name></author><id>tag:None,2022-11-07:/blog/2022/11/a-new-approach-to-content-based-targeting-for-advertising/</id><summary type="html">&lt;p&gt;In the past few years,
advancements in machine learning have made a new era of content-based ad targeting possible.
Computers …&lt;/p&gt;</summary><content type="html">&lt;p&gt;In the past few years,
advancements in machine learning have made a new era of content-based ad targeting possible.
Computers are now stunningly good at learning how to categorize documents,
which allows us to automate and scale content-based targeting to our entire network.&lt;/p&gt;
&lt;p&gt;This post will cover how our content-based targeting works at a high level,
and the implications for the future growth of our business.
Building great privacy-first ad targeting helps the industry move past the era of invasive user tracking.&lt;/p&gt;
&lt;h3 id="the-problem-grouping-targeting"&gt;The problem: grouping &amp;amp; targeting&lt;/h3&gt;
&lt;p&gt;Building an ad network requires us to serve ads across a number of different sites with differing content.
Many of these sites have content that focuses on a number of different topics.
You can imagine a blog with both Python and Kubernetes content,
and the audience for each of those posts is different.
&lt;strong&gt;Each page of content that we serve should have targeting based on what it's about.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The other major problem is trying to find ways to bundle content together,
so that advertisers can buy a large amount of it.
If we can only offer $100 a month of a very specific audience,
that doesn't scale very effectively.
&lt;strong&gt;We need a way to easily bundle content into high-level topics.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id="our-original-approach-using-naive-tags"&gt;Our original approach: using naive tags&lt;/h3&gt;
&lt;p&gt;Our first approach to solving this problem was based on tagging.
Many publishers manually added tags to their content,
and we allowed them to pass these to us in our ad client.
Our ad client also created tags based on related words appearing multiple times on a page.
Then we grouped a set of keywords together to make topics,
so for example our &lt;em&gt;Data Science&lt;/em&gt; topic was made of &lt;code&gt;nlp&lt;/code&gt;, &lt;code&gt;jupyter&lt;/code&gt;, &lt;code&gt;pytorch&lt;/code&gt;, &lt;code&gt;tensorflow&lt;/code&gt;, and similar keywords.&lt;/p&gt;
&lt;p&gt;This approach allowed us to build out our initial product,
and have reasonably good targeting.
It had a few drawbacks though:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It needed users to tag content, and most pages aren't tagged (eg. software documentation)&lt;/li&gt;
&lt;li&gt;We needed to combine tags into topics, and there will always be some tags we don't know about&lt;/li&gt;
&lt;li&gt;The automatic tagging was quite naive, and had some false positives&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We wanted to build a more robust solution that was able to understand a lot more about each page.&lt;/p&gt;
&lt;h3 id="the-solution-machine-learning"&gt;The solution: machine learning&lt;/h3&gt;
&lt;p&gt;We have implemented a machine learning model that is able to categorize pages based on past content it has seen.
This process is started with an initial set of human categorized data.
Then we pass in data the model hasn't seen before,
and grade it based on how good it scores these topics.
Those grades are then used to update the model,
and it does this thousands of times,
creating the best possible guess for a piece of content.&lt;/p&gt;
&lt;p&gt;When we "train" the ML model,
it is mapping all the various words and phrases in a document into the topic we've assigned the page.
So for example,
the model learns that "natural language processing" on a page means it's highly likely related to &lt;em&gt;Data Science&lt;/em&gt;.
&lt;strong&gt;The magic of the model is that it understands a massive number of words and phrases,
many more than we could ever add manually.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The ML-based model has the following benefits:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The model scales across any technical content that was pass in, without requiring page authors to do anything&lt;/li&gt;
&lt;li&gt;It takes into account the entire page content, and word context, to&lt;/li&gt;
&lt;li&gt;We can easily add more topics, as long as we can categorize a small number of pages of content that belong to that topic.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We're excited to expand our ML targeting in the future.&lt;/p&gt;
&lt;h3 id="next-steps-more-topics-and-more-privacy"&gt;Next steps: more topics and more privacy&lt;/h3&gt;
&lt;p&gt;The ease of adding new topics to our models allows us to continue to expand the topics we're able to target.
In the future,
if an advertiser comes to us wanting to target a specific subset of content,
we should be able to train a deploy this targeting within a week.
We can also scale down into smaller niches,
because we are able to find all the content within our network that matches more specific topics.&lt;/p&gt;
&lt;p&gt;We're excited about this approach,
and hope that improving content-based ad targeting will remove the incentives to track users.
There is a long way to go on our &lt;a href="/advertising-vision/"&gt;vision for privacy-first ads&lt;/a&gt;,
but we think that our machine learning approach is a scalable foundation to build on.&lt;/p&gt;
&lt;p&gt;If you're looking for an ad network that won't compromise your audience,
&lt;a href="/publishers/"&gt;join EthicalAds&lt;/a&gt; and help preserve privacy on the web!&lt;/p&gt;</content><category term="posts"/><category term="content-targeting"/><category term="advertisers"/></entry><entry><title>Python Software Foundation &amp; EthicalAds working to promote open source sponsorship</title><link href="/blog/2022/11/python-software-foundation-ethicalads-working-to-promote-open-source-sponsorship/" rel="alternate"/><published>2022-11-01T00:00:00-07:00</published><updated>2022-11-01T00:00:00-07:00</updated><author><name>Eric Holscher</name></author><id>tag:None,2022-11-01:/blog/2022/11/python-software-foundation-ethicalads-working-to-promote-open-source-sponsorship/</id><summary type="html">&lt;p&gt;We're excited to announce a partnership with the &lt;a href="https://www.python.org/psf/"&gt;Python Software Foundation&lt;/a&gt;.
The PSF is using EthicalAds to power their sponsor …&lt;/p&gt;</summary><content type="html">&lt;p&gt;We're excited to announce a partnership with the &lt;a href="https://www.python.org/psf/"&gt;Python Software Foundation&lt;/a&gt;.
The PSF is using EthicalAds to power their sponsor promotion across their ecosystem of web properties:
helping them deliver value to their sponsors.&lt;/p&gt;
&lt;h2 id="the-problem"&gt;The problem&lt;/h2&gt;
&lt;p&gt;Previously the PSF was just putting static images for their sponsors on their web pages.
This was done manually,
and required a deploy of their website in order to get changes.
This required multiple members of the team to coordinate,
and resulted in lag time for getting sponsors on the website.&lt;/p&gt;
&lt;p&gt;The PSF was looking for a way to promote their sponsors across a number of web properties,
but have a single management and reporting mechanism.
EthicalAds was a great solution for this,
since we have a simple javascript client facilitate the sponsorship displays.
The PSF also wanted to keep track of how many times each sponsor image has been seen and viewed.
Having metrics allows them to quantify the value they are delivering their sponsors.&lt;/p&gt;
&lt;h2 id="the-solution"&gt;The solution&lt;/h2&gt;
&lt;p&gt;The PSF started with the sites that are already included in their sponsorship prospectus.
They were able to integrate our ad client,
and manage the targeting on the backend of our ad server.
The properties we are currently implementing sponsorship on are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href="https://pypi.org/project/urllib3/1.26.7/#changes"&gt;Python Package Index&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;The &lt;a href="https://www.python.org/psf/sponsors/"&gt;PSF sponsor listing page&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="width: 300px; margin: 2rem auto;"&gt;
  &lt;img class="w-100" src="/theme/img/example-ads/aws-psf.png" alt="Example PSF placement"&gt;
  &lt;p class="text-center"&gt;&lt;small&gt;PyPI sponsorship placement&lt;/small&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;You can see the PyPI integration looks similar to our normal ad placements,
where the PSF sponsors page has a custom look and feel.
We are able to customize each of the placements used in our sponsorship platform.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We’re happy to use EthicalAds for sponsor recognition across our web properties with centralized management and respect for privacy.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ee Durbin, Director of Infrastructure, Python Software Foundation&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;With the new ability to show sponsorship logos on all of their properties,
the PSF will be able to expand where sponsors are shown.
All of these different integrations are also able to provide view &amp;amp; click statistics,
without requiring any cookies by the user.&lt;/p&gt;
&lt;h2 id="get-your-own-sponsorship-solution"&gt;Get your own sponsorship solution&lt;/h2&gt;
&lt;p&gt;We're excited about implementing new features on our sponsorship offering,
and working with you to try it out.
If you'd like to create a similar program,
you can sign up for our &lt;a href="https://www.ethicalads.io/sponsorship-platform/"&gt;sponsorship platform&lt;/a&gt;.&lt;/p&gt;</content><category term="posts"/><category term="publishers"/><category term="sponsorship"/><category term="partnership"/><category term="announcement"/></entry><entry><title>EthicalAds Newsletter - September 2022</title><link href="/blog/2022/10/ethicalads-newsletter-september-2022/" rel="alternate"/><published>2022-10-12T00:00:00-07:00</published><updated>2022-10-12T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2022-10-12:/blog/2022/10/ethicalads-newsletter-september-2022/</id><summary type="html">&lt;p&gt;September was a record month in terms of revenue, publisher revenue, and paid ads delivered!&lt;/p&gt;
&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;These are the …&lt;/p&gt;</summary><content type="html">&lt;p&gt;September was a record month in terms of revenue, publisher revenue, and paid ads delivered!&lt;/p&gt;
&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;These are the major features we released in September:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We released a couple cool pieces of content including a retrospective
  in dealing with some
  &lt;a href="/blog/2022/09/watch-out-ad-scammers-are-impersonating-open-source-devs/"&gt;ad scammers impersonating open source developers&lt;/a&gt; and a &lt;a href="/blog/2022/10/privacy-teardown-search-engines/"&gt;privacy teardown of search engines&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;We released our &lt;a href="/prospectus/ethicalads-advertiser-prospectus.pdf"&gt;Q4 prospectus&lt;/a&gt;.
  One significant change here was to further breakdown prices in Europe
  so we can deliver advertisers exactly what they're looking for at a fair price.&lt;/li&gt;
&lt;li&gt;One of the suggestions we got about our contextual targeting model was to spend more time and resources
  on training. As a result, we trained a version in the cloud on GPUs and it does seem to perform
  quite a bit better. That effort started last month and should roll out in October.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our &lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt; and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="september-advertising-stats"&gt;September advertising stats&lt;/h2&gt;
&lt;p&gt;In September 2022:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$47,493.48&lt;/strong&gt; for our publishers. This was our highest publisher revenue month ever!&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;145 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;21,384,298&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Our big push on marketing in August really paid dividends in September.
Last month, I suggested that September would be a very good month and it was a record by all our metrics.
I don't expect October to be quite as good as September for a few reasons, but it will still be a very
strong month.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap for October:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We plan to put our GPU-trained model into production.
  In testing, it has shown considerably improved accuracy over our existing model.&lt;/li&gt;
&lt;li&gt;We are creating a campaign pricing calculator to help advertisers put together a campaign
  that meets their advertising goals and their budget.&lt;/li&gt;
&lt;li&gt;This month, both Eric and I will be at Djangocon US in San Diego.
  If you're coming to the conference, please stop by and say hello!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/></entry><entry><title>Privacy Teardown: Search Engines</title><link href="/blog/2022/10/privacy-teardown-search-engines/" rel="alternate"/><published>2022-10-04T00:00:00-07:00</published><updated>2022-10-04T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2022-10-04:/blog/2022/10/privacy-teardown-search-engines/</id><summary type="html">&lt;p&gt;Do search engines really track you?
What about search engines that claim not to track you?
In this privacy teardown …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Do search engines really track you?
What about search engines that claim not to track you?
In this privacy teardown, we use off-the-shelf tools, data,
and methods to see how traditional and more privacy-focused search engines treat and share your data.&lt;/p&gt;
&lt;p&gt;&lt;a href="#results"&gt;Skip to the results&lt;/a&gt; or skip to our &lt;a href="/blog/2022/11/best-search-engines-for-your-privacy/"&gt;follow-up post with recommendations&lt;/a&gt;!&lt;/p&gt;
&lt;h2 id="methodology"&gt;Methodology&lt;/h2&gt;
&lt;p&gt;We selected the largest traditional search engines Google and Bing as well as a few more privacy-minded search engines like DuckDuckGo, Brave Search, Mojeek and You.com to see how they stack up and whether there was any measurable differences we could see in their data sharing (Mojeek and You.com have advertised with EthicalAds in the past but did not take part in this post).&lt;/p&gt;
&lt;p&gt;For tools, we used a number of off-the-shelf tools and data sources:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://themarkup.org/"&gt;The Markup&lt;/a&gt;, a nonprofit news source that looks at how Big Tech uses technology,
  produced a tool called &lt;a href="https://themarkup.org/blacklight"&gt;Blacklight&lt;/a&gt;. Blacklight looks for third-party cookies, known trackers, non-cookie tracking methods, session or keystroke capturing tech, and other third-party pixels.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://duckduckgo.com/"&gt;DuckDuckGo&lt;/a&gt;, one of the search engines we're analyzing, produces a data set called &lt;a href="https://github.com/duckduckgo/tracker-radar"&gt;Tracker Radar&lt;/a&gt; used by their own mobile browsers, browser extensions, and other tools. Tracker Radar has data on the most common trackers, what they're used for, and a way to group trackers by their parent entity (eg. Doubleclick, GoogleAnalytics, and YouTube are all Google). For our test, we checked Tracker Radar through the &lt;a href="https://chrome.google.com/webstore/detail/duckduckgo-privacy-essent/bkdgflcldnnnapblkhphbgpggdiikppg"&gt;DuckDuckGo Privacy Essentials&lt;/a&gt; extension which also gives a letter grade (A-F) based on the requests loaded and the privacy practices as reported by &lt;a href="https://tosdr.org/"&gt;TOS;DR&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://easylist.to/"&gt;The Easylist&lt;/a&gt;, one of the largest ad blocker lists used by ad blocking extensions like uBlock Origin and AdblockPlus, produces the EasyPrivacy list which has a huge list of trackers, analytics, and other scripts formatted for use by ad blockers. For our test, we ran uBlock Origin with an updated EasyPrivacy list and all other lists disabled.&lt;/li&gt;
&lt;li&gt;The &lt;a href="https://www.eff.org/"&gt;EFF&lt;/a&gt; produces a browser extension called &lt;a href="https://privacybadger.org/"&gt;Privacy Badger&lt;/a&gt; which is an algorithmic tracker blocker. Rather than relying on a list of domains or scripts (like EasyPrivacy or Tracker Radar), the extension knows what tracking looks like and blocks trackers when it sees them.&lt;/li&gt;
&lt;li&gt;We did a brief manual inspection looking at all third-party and subdomain requests as well as cookies and persistent storage. This was a sanity check in case the search engines are handling different requests differently and also to do a quick DNS lookup on subdomains looking for CNAME cloaking, a way to hide third-party trackers as first-party requests.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For each search engine, we loaded the homepage and a search engine results page (SERP).
Extensions were disabled except for the tool being used.&lt;/p&gt;
&lt;p&gt;One caveat to our analysis is that not all tracking can be seen by these methods.
For example, Google could use search history data in their other products without using any third-party trackers
since they are the &lt;em&gt;first-party&lt;/em&gt; when you search Google.
Since data is transmitted to the servers of these search engines, there's no way to tell what their servers do with the data beyond their privacy policies.&lt;/p&gt;
&lt;h2 id="results"&gt;Results&lt;/h2&gt;
&lt;table class="w-100 mt-5 mb-5"&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th colspan="2"&gt;&lt;!-- Intentionally blank --&gt;&lt;/th&gt;
      &lt;th style="height: 8rem"&gt;&lt;span class="small rotate-60-left"&gt;Google&lt;/span&gt;&lt;/th&gt;
      &lt;th style="height: 8rem"&gt;&lt;span class="small rotate-60-left"&gt;Bing&lt;/span&gt;&lt;/th&gt;
      &lt;th style="height: 8rem"&gt;&lt;span class="small rotate-60-left"&gt;DuckDuckGo&lt;/span&gt;&lt;/th&gt;
      &lt;th style="height: 8rem"&gt;&lt;span class="small rotate-60-left"&gt;Brave&lt;/span&gt;&lt;/th&gt;
      &lt;th style="height: 8rem"&gt;&lt;span class="small rotate-60-left"&gt;Mojeek&lt;/span&gt;&lt;/th&gt;
      &lt;th style="height: 8rem"&gt;&lt;span class="small rotate-60-left"&gt;You.com&lt;/span&gt;&lt;/th&gt;
    &lt;/tr&gt;
    &lt;tr class="border-bottom"&gt;
      &lt;td style="height: 6rem" rowspan="4"&gt;
        &lt;span class="small"&gt;&lt;strong&gt;Blacklight&lt;/strong&gt;&lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="small"&gt;Trackers&lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Google --&gt;
        &lt;span class="text-danger" data-toggle="tooltip" title="Trackers found"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Bing --&gt;
        &lt;span class="text-danger" data-toggle="tooltip" title="Trackers found"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- DDG --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No trackers found"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Brave --&gt;
        &lt;span class="text-muted" data-toggle="tooltip" title="Blacklight timed out on Brave Search"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M5.255 5.786a.237.237 0 0 0 .241.247h.825c.138 0 .248-.113.266-.25.09-.656.54-1.134 1.342-1.134.686 0 1.314.343 1.314 1.168 0 .635-.374.927-.965 1.371-.673.489-1.206 1.06-1.168 1.987l.003.217a.25.25 0 0 0 .25.246h.811a.25.25 0 0 0 .25-.25v-.105c0-.718.273-.927 1.01-1.486.609-.463 1.244-.977 1.244-2.056 0-1.511-1.276-2.241-2.673-2.241-1.267 0-2.655.59-2.75 2.286zm1.557 5.763c0 .533.425.927 1.01.927.609 0 1.028-.394 1.028-.927 0-.552-.42-.94-1.029-.94-.584 0-1.009.388-1.009.94z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Mojeek --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No trackers found"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- You.com --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No trackers found"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr class="border-bottom"&gt;
      &lt;td class="small"&gt;3P Cookies&lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Google --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No 3rd party cookies"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Bing --&gt;
        &lt;span class="text-danger" data-toggle="tooltip" title="3rd party cookies"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- DDG --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No 3rd party cookies"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Brave --&gt;
        &lt;span class="text-muted" data-toggle="tooltip" title="Blacklight timed out on Brave Search"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M5.255 5.786a.237.237 0 0 0 .241.247h.825c.138 0 .248-.113.266-.25.09-.656.54-1.134 1.342-1.134.686 0 1.314.343 1.314 1.168 0 .635-.374.927-.965 1.371-.673.489-1.206 1.06-1.168 1.987l.003.217a.25.25 0 0 0 .25.246h.811a.25.25 0 0 0 .25-.25v-.105c0-.718.273-.927 1.01-1.486.609-.463 1.244-.977 1.244-2.056 0-1.511-1.276-2.241-2.673-2.241-1.267 0-2.655.59-2.75 2.286zm1.557 5.763c0 .533.425.927 1.01.927.609 0 1.028-.394 1.028-.927 0-.552-.42-.94-1.029-.94-.584 0-1.009.388-1.009.94z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Mojeek --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No 3rd party cookies"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- You.com --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No 3rd party cookies"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr class="border-bottom"&gt;
      &lt;td class="small"&gt;Non-cookie tracking&lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Google --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No non-cookie tracking"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Bing --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No non-cookie tracking"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- DDG --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No non-cookie tracking"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Brave --&gt;
        &lt;span class="text-muted" data-toggle="tooltip" title="Blacklight timed out on Brave Search"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M5.255 5.786a.237.237 0 0 0 .241.247h.825c.138 0 .248-.113.266-.25.09-.656.54-1.134 1.342-1.134.686 0 1.314.343 1.314 1.168 0 .635-.374.927-.965 1.371-.673.489-1.206 1.06-1.168 1.987l.003.217a.25.25 0 0 0 .25.246h.811a.25.25 0 0 0 .25-.25v-.105c0-.718.273-.927 1.01-1.486.609-.463 1.244-.977 1.244-2.056 0-1.511-1.276-2.241-2.673-2.241-1.267 0-2.655.59-2.75 2.286zm1.557 5.763c0 .533.425.927 1.01.927.609 0 1.028-.394 1.028-.927 0-.552-.42-.94-1.029-.94-.584 0-1.009.388-1.009.94z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Mojeek --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No non-cookie tracking"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- You.com --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No non-cookie tracking"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr class="border-bottom"&gt;
      &lt;td class="small"&gt;Session/key logging&lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Google --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No session/key logging"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Bing --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No session/key logging"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- DDG --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No session/key logging"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Brave --&gt;
        &lt;span class="text-muted" data-toggle="tooltip" title="Blacklight timed out on Brave Search"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M5.255 5.786a.237.237 0 0 0 .241.247h.825c.138 0 .248-.113.266-.25.09-.656.54-1.134 1.342-1.134.686 0 1.314.343 1.314 1.168 0 .635-.374.927-.965 1.371-.673.489-1.206 1.06-1.168 1.987l.003.217a.25.25 0 0 0 .25.246h.811a.25.25 0 0 0 .25-.25v-.105c0-.718.273-.927 1.01-1.486.609-.463 1.244-.977 1.244-2.056 0-1.511-1.276-2.241-2.673-2.241-1.267 0-2.655.59-2.75 2.286zm1.557 5.763c0 .533.425.927 1.01.927.609 0 1.028-.394 1.028-.927 0-.552-.42-.94-1.029-.94-.584 0-1.009.388-1.009.94z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Mojeek --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No session/key logging"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- You.com --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No session/key logging"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
    &lt;/tr&gt;&lt;!-- /Blacklight --&gt;
    &lt;tr class="border-bottom"&gt;&lt;!-- Tracker Radar --&gt;
      &lt;td style="height: 6rem" rowspan="3"&gt;
        &lt;span class="small"&gt;&lt;strong&gt;Tracker&lt;br&gt;Radar&lt;/strong&gt;&lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="small"&gt;Grade&lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Google --&gt;
        &lt;span class="text-danger" data-toggle="tooltip" title="Poor privacy practices"&gt;D&lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Bing --&gt;
        &lt;span class="text-warning" data-toggle="tooltip" title="Unknown privacy practices"&gt;C+&lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- DDG --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="It's a self-grade"&gt;A&lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Brave --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="Unknown privacy practices"&gt;B+&lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Mojeek --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="Unknown privacy practices"&gt;B+&lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- You.com --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="Unknown privacy practices"&gt;B+&lt;/span&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr class="border-bottom"&gt;
      &lt;td class="small"&gt;Trackers&lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Google --&gt;
        &lt;span class="text-danger" data-toggle="tooltip" title="Trackers found"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Bing --&gt;
        &lt;span class="text-danger" data-toggle="tooltip" title="Trackers found"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- DDG --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No trackers found"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Brave --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No trackers found"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Mojeek --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No trackers found"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- You.com --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No trackers found"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr class="border-bottom"&gt;
      &lt;td class="small"&gt;3P requests&lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Google --&gt;
        &lt;span class="text-danger" data-toggle="tooltip" title="3rd party requests"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Bing --&gt;
        &lt;span class="text-danger" data-toggle="tooltip" title="3rd party requests"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- DDG --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No 3rd party requests"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Brave --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No 3rd party requests"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Mojeek --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No 3rd party requests"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- You.com --&gt;
        &lt;span class="text-danger" data-toggle="tooltip" title="3rd party requests"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
    &lt;/tr&gt;&lt;!-- /Tracker Radar --&gt;
    &lt;tr class="border-bottom"&gt;&lt;!-- EasyPrivacy --&gt;
      &lt;td style="height: 6rem"&gt;
        &lt;span class="small"&gt;&lt;strong&gt;Easy&lt;br&gt;Privacy&lt;/strong&gt;&lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="small"&gt;Blocked requests&lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Google --&gt;
        &lt;span class="text-danger" data-toggle="tooltip" title="Numerous ongoing blocked requests"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Bing --&gt;
        &lt;span class="text-danger" data-toggle="tooltip" title="Numerous ongoing blocked requests"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- DDG --&gt;
        &lt;span class="text-warning" data-toggle="tooltip" title="A few blocked requests"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M7.938 2.016A.13.13 0 0 1 8.002 2a.13.13 0 0 1 .063.016.146.146 0 0 1 .054.057l6.857 11.667c.036.06.035.124.002.183a.163.163 0 0 1-.054.06.116.116 0 0 1-.066.017H1.146a.115.115 0 0 1-.066-.017.163.163 0 0 1-.054-.06.176.176 0 0 1 .002-.183L7.884 2.073a.147.147 0 0 1 .054-.057zm1.044-.45a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767L8.982 1.566z"/&gt;
            &lt;path d="M7.002 12a1 1 0 1 1 2 0 1 1 0 0 1-2 0zM7.1 5.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 5.995z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Brave --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No blocked requests"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Mojeek --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No blocked requests"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- You.com --&gt;
        &lt;span class="text-warning" data-toggle="tooltip" title="A few blocked requests"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M7.938 2.016A.13.13 0 0 1 8.002 2a.13.13 0 0 1 .063.016.146.146 0 0 1 .054.057l6.857 11.667c.036.06.035.124.002.183a.163.163 0 0 1-.054.06.116.116 0 0 1-.066.017H1.146a.115.115 0 0 1-.066-.017.163.163 0 0 1-.054-.06.176.176 0 0 1 .002-.183L7.884 2.073a.147.147 0 0 1 .054-.057zm1.044-.45a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767L8.982 1.566z"/&gt;
            &lt;path d="M7.002 12a1 1 0 1 1 2 0 1 1 0 0 1-2 0zM7.1 5.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 5.995z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
    &lt;/tr&gt;&lt;!-- /EasyPrivacy --&gt;
    &lt;tr class="border-bottom"&gt;&lt;!-- Privacy Badger --&gt;
      &lt;td style="height: 6rem"&gt;
        &lt;span class="small"&gt;&lt;strong&gt;Privacy&lt;br&gt;Badger&lt;/strong&gt;&lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="small"&gt;Trackers&lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Google --&gt;
        &lt;span class="text-danger" data-toggle="tooltip" title="Trackers found"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Bing --&gt;
        &lt;span class="text-danger" data-toggle="tooltip" title="Trackers found"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- DDG --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No trackers found"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Brave --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No trackers found"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Mojeek --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No trackers found"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- You.com --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No trackers found"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
    &lt;/tr&gt;&lt;!-- /Privacy Badger --&gt;
    &lt;tr class="border-bottom"&gt;&lt;!-- Manual Inspection --&gt;
      &lt;td style="height: 6rem" rowspan="3"&gt;
        &lt;span class="small"&gt;&lt;strong&gt;Manual&lt;br&gt;Inspection&lt;/strong&gt;&lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="small"&gt;3P requests&lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Google --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No 3rd party requests"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Bing --&gt;
        &lt;span class="text-danger" data-toggle="tooltip" title="3rd party requests"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- DDG --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No 3rd party requests"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Brave --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No 3rd party requests"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Mojeek --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No 3rd party requests"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- You.com --&gt;
        &lt;span class="text-danger" data-toggle="tooltip" title="3rd party requests"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr class="border-bottom"&gt;
      &lt;td class="small"&gt;CNAME cloaking&lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Google --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No CNAME cloaking"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Bing --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No CNAME cloaking"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- DDG --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No CNAME cloaking"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Brave --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No CNAME cloaking"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Mojeek --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No CNAME cloaking"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- You.com --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No CNAME cloaking"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="small"&gt;Persistent unique IDs&lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Google --&gt;
        &lt;span class="text-danger" data-toggle="tooltip" title="Persistent unique IDs for a year or more"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Bing --&gt;
        &lt;span class="text-danger" data-toggle="tooltip" title="Persistent unique IDs for a year or more"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- DDG --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No persistent unique IDs"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Brave --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No persistent unique IDs"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- Mojeek --&gt;
        &lt;span class="text-success" data-toggle="tooltip" title="No persistent unique IDs"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/&gt;
            &lt;path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
      &lt;td class="text-center"&gt;&lt;!-- You.com --&gt;
        &lt;span class="text-warning" data-toggle="tooltip" title="Persistent IDs last 1 month"&gt;
          &lt;svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"  &gt;
            &lt;path d="M7.938 2.016A.13.13 0 0 1 8.002 2a.13.13 0 0 1 .063.016.146.146 0 0 1 .054.057l6.857 11.667c.036.06.035.124.002.183a.163.163 0 0 1-.054.06.116.116 0 0 1-.066.017H1.146a.115.115 0 0 1-.066-.017.163.163 0 0 1-.054-.06.176.176 0 0 1 .002-.183L7.884 2.073a.147.147 0 0 1 .054-.057zm1.044-.45a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767L8.982 1.566z"/&gt;
            &lt;path d="M7.002 12a1 1 0 1 1 2 0 1 1 0 0 1-2 0zM7.1 5.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 5.995z"/&gt;
          &lt;/svg&gt;
        &lt;/span&gt;
      &lt;/td&gt;
    &lt;/tr&gt;&lt;!-- /Manual Inspection --&gt;
  &lt;/thead&gt;
&lt;/table&gt;

&lt;h3 id="google"&gt;Google&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Blacklight&lt;/strong&gt;: Blacklight reported 1 tracker sent to doubleclick.net (Google's ad arm). No keystroke or session capturing found.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tracker Radar&lt;/strong&gt;: Grade D (poor privacy practices). Blocked requests to doubleclick.net and googleadservices.com&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;EasyPrivacy&lt;/strong&gt;: Blocked requests to doubleclick.net and googleadservices.com. Continued to block additional logging requests as long as the tab was in focus.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PrivacyBadger&lt;/strong&gt;: Blocked requests to doubleclick.net&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Manual Inspection&lt;/strong&gt;: Loaded resources from google.com subdomains, doubleclick.net (Google ads), gstatic.com, and ytimg.com (YouTube). All of these resolved to Google's infrastructure. Persisted long term (over 1 year) cookies on a few google.com subdomains and used local storage.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Overall, Google appears to be sharing data with other Google properties but not with any third-parties.
Google does persist long-term unique identifiers even for logged out users simply doing a query or loading the homepage.&lt;/p&gt;
&lt;h3 id="bing"&gt;Bing&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Blacklight&lt;/strong&gt;: No trackers. Third-party cookies detected for "login.microsoftonline.com". No keystroke or session capturing found.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tracker Radar&lt;/strong&gt;: C+ (unknown privacy practices). The Bing homepage had a few requests blocked after scrolling including requests to outbrain.com and zemanta.com, two adtech companies. Tracker Radar noted but did not block requests to Akamai. Repeated homepage loads produced slightly different results. The SERP page reported no trackers and no third-party requests.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;EasyPrivacy&lt;/strong&gt;: Blocked numerous requests to both Microsoft and third-party domains (10-15% of requests) on the homepage. Continued to block additional requests to Bing as long as the tab was in focus. The SERP page only blocked what appeared to be logging requests.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PrivacyBadger&lt;/strong&gt;: On the homepage, allowed a request to akamaized.net. After scrolling on the homepage, blocked requests to cheqzone.com, outbrain.com, and zemanta.com. No trackers found on the SERP page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Manual Inspection&lt;/strong&gt;: Loaded resources from many domains including msn.com subdomains, virtualearth.net (Bing maps), akamaized.net, and cloudfront.net. The one standout request was to trace.mediago.io which is adtech from Baidu, a Chinese search engine. The SERP page loaded data only from bing.com subdomains and microsoft.com subdomains. All of the requests to Microsoft domains resolved to Microsoft's infrastructure. Bing persisted long term cookies on various Microsoft properties and used local storage. Firefox (our test browser) also blocked a number of third-party cookies.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The Bing homepage loads a lot of content compared to many other search engines
including data from third-party ad tech companies. This results in some amount of data sharing.
The Bing SERP page by contrast only appears to communicate with Microsoft.
Bing persists long-term unique identifiers even for logged out users simply doing a query or loading the homepage.&lt;/p&gt;
&lt;div class="postimage text-center"&gt;
  &lt;img class="w-50 shadow-lg" src="/images/posts/2022-privacy-badger-bing.png" alt="Results of the EFF's Privacy Badger run on the Bing homepage"&gt;
  &lt;p&gt;Results of the EFF's Privacy Badger run on the Bing homepage&lt;/p&gt;
&lt;/div&gt;

&lt;h3 id="duckduckgo"&gt;DuckDuckGo&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Blacklight&lt;/strong&gt;: No trackers or third-party cookies detected. No keystroke or session capturing found.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tracker Radar&lt;/strong&gt;: A (it's a self-grade). No third-party requests or trackers reported on the homepage or SERP page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;EasyPrivacy&lt;/strong&gt;: Requests to improving.duckduckgo.com (DuckDuckGo's "anonymous improvement engine") were blocked.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PrivacyBadger&lt;/strong&gt;: No trackers detected on the homepage or SERP page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Manual Inspection&lt;/strong&gt;: DuckDuckGo only made requests to duckduckgo.com and subdomains. None of these domains used CNAME cloaking. DuckDuckGo didn't persist anything to the browser at all.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;DuckDuckGo doesn't load any third-party data and doesn't persist any unique identifiers or anything else.&lt;/p&gt;
&lt;h3 id="brave-search"&gt;Brave Search&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Blacklight&lt;/strong&gt;: Repeated attempts on separate days to run Blacklight on Brave Search timed out. It is possible that Blacklight has an issue with Brave Search or that Brave is blocking Blacklight.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tracker Radar&lt;/strong&gt;: Grade: B+ (unknown privacy practices). No third-party requests or trackers reported on the homepage or SERP page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;EasyPrivacy&lt;/strong&gt;: No requests blocked. All requests went to brave.com or a subdomain.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PrivacyBadger&lt;/strong&gt;: No trackers detected on the homepage or SERP page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Manual Inspection&lt;/strong&gt;: Brave Search only made requests to 3 domains in total: search.brave.com, imgs.search.brave.com, and cdn.search.brave.com. None of these domains used CNAME cloaking. Brave did not persist any cookies. They did persist some data to local storage but it did not appear to contain any unique identifiers.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Brave doesn't load any third-party data and doesn't persist any unique identifiers.&lt;/p&gt;
&lt;div class="postimage text-center"&gt;
  &lt;img class="w-50 shadow-lg" src="/images/posts/2022-ddg-privacy-essentials-bravesearch.png" alt="Results of DuckDuckGo's Privacy Essentials (using Tracker Radar) on Brave Search"&gt;
  &lt;p&gt;Results of DuckDuckGo's Privacy Essentials (using Tracker Radar) on Brave Search&lt;/p&gt;
&lt;/div&gt;

&lt;h3 id="mojeek"&gt;Mojeek&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Blacklight&lt;/strong&gt;: No trackers or third-party cookies detected. No keystroke or session capturing found.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tracker Radar&lt;/strong&gt;: Grade: B+ (unknown privacy practices). No third-party requests or trackers reported on the homepage or SERP page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;EasyPrivacy&lt;/strong&gt;: No requests blocked. All requests went to www.mojeek.com strictly.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PrivacyBadger&lt;/strong&gt;: No trackers detected on the homepage or SERP page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Manual Inspection&lt;/strong&gt;: Mojeek only made requests strictly to www.mojeek.com. Mojeek didn't persist anything to the browser at all.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mojeek doesn't load any third-party data and doesn't persist any unique identifiers or anything else.&lt;/p&gt;
&lt;div class="postimage text-center"&gt;
  &lt;img class="w-75 shadow-lg" src="/images/posts/2022-blacklight-results-mojeek.png" alt="Results of Blacklight run on Mojeek.com"&gt;
  &lt;p&gt;Results of Blacklight run on Mojeek.com&lt;/p&gt;
&lt;/div&gt;

&lt;h3 id="youcom"&gt;You.com&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Blacklight&lt;/strong&gt;: No trackers or third-party cookies detected. No keystroke or session capturing found.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tracker Radar&lt;/strong&gt;: Grade: B+ (unknown privacy practices). The homepage and SERP page reported third-party requests to Plausible.io, a privacy-friendly analytics company and to launchdarkly.com, a service that helps developers run A/B tests and experiments (Note: LaunchDarkly has advertised with EthicalAds) but none of these requests were blocked.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;EasyPrivacy&lt;/strong&gt;: Two requests blocked to a launchdarkly.com subdomain (one allowed). All other requests to you.com, a subdomain, or t-msedge.net (Microsoft's CDN).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PrivacyBadger&lt;/strong&gt;: No trackers detected on the homepage or SERP page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Manual Inspection&lt;/strong&gt;: You.com made requests to you.com and subdomains, plausible.io, and launchdarkly.com subdomains. None of these domains used CNAME cloaking. You.com persisted some cookies although none for more than a month. They also used local storage but it did not appear to contain any unique identifiers.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You.com does load third-party resources from a small list of select partners but doesn't persist any long term unique identifiers.&lt;/p&gt;
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;From a privacy perspective, the more privacy minded search engines
did a better job not sharing data or using long term unique identifiers (a hallmark of tracking)
than the big search engines like Google or Bing.
Google appeared to share data across Google properties but not with third-parties.&lt;/p&gt;
&lt;p&gt;We didn't see any of the worst practices like CNAME cloaking or logging keystrokes.
The worst practice we saw was considerable third-party data sharing with adtech companies on the Bing homepage.
By contrast, however, the Bing SERP page kept data with Microsoft.&lt;/p&gt;
&lt;p&gt;Comparing the tools we used, the browser extensions did a better job of detecting all the third-party requests
than Blacklight although that isn't too surprising since we had much more control with the extensions.
The exhaustive EasyPrivacy list blocked the most requests but many of those were not third-party requests
or trackers. Both Privacy Badger and DuckDuckGo Privacy Essentials/Tracker Radar did very similarly
in identifying and blocking trackers.&lt;/p&gt;
&lt;p&gt;Hopefully you enjoyed this privacy teardown post for search engines.
Please &lt;a href="/contact/"&gt;get in touch&lt;/a&gt; if you have any ideas or feedback on this teardown or our methodology.
We always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="privacy"/><category term="privacy-teardown"/></entry><entry><title>Watch Out: Ad Scammers are Impersonating Open Source Devs</title><link href="/blog/2022/09/watch-out-ad-scammers-are-impersonating-open-source-devs/" rel="alternate"/><published>2022-09-20T00:00:00-07:00</published><updated>2022-09-20T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2022-09-20:/blog/2022/09/watch-out-ad-scammers-are-impersonating-open-source-devs/</id><summary type="html">&lt;p&gt;As we mentioned in our &lt;a href="/blog/2022/08/ethicalads-newsletter-july-2022/"&gt;newsletter recently&lt;/a&gt;,
EthicalAds was targeted by an ad scam ring.
Fortunately, we were able to …&lt;/p&gt;</summary><content type="html">&lt;p&gt;As we mentioned in our &lt;a href="/blog/2022/08/ethicalads-newsletter-july-2022/"&gt;newsletter recently&lt;/a&gt;,
EthicalAds was targeted by an ad scam ring.
Fortunately, we were able to see through the scam quickly and to protect ourselves and our advertisers.
However, we thought this would make for an interesting post to discuss the brazen scams folks try to pull.&lt;/p&gt;
&lt;h2 id="anatomy-of-a-scam"&gt;Anatomy of a scam&lt;/h2&gt;
&lt;p&gt;As our network grows, we knew we would have a target on our back for scammers.
Since we don't track users and have pledges around what data we retain
in our &lt;a href="https://server.ethicalads.io/.well-known/dnt-policy.txt"&gt;Do Not Track policy&lt;/a&gt;,
scammers will go after us and think we're easy pickings.
When there's money to be made online, people will try to do it.&lt;/p&gt;
&lt;p&gt;The way these scams usually work is that a person will set up a site, request an ad publisher account,
and then simulate fake traffic to the site and rake in the earnings.
We have plenty of defenses to protect ourselves from these sorts of scams.&lt;/p&gt;
&lt;p&gt;Probably our biggest defense is our relative size to the big networks.
Unlike larger ad networks, we vet every single publisher site we onboard.
We talk to every publisher, we only do a few at most in any given week, and the process isn't automated.
A person from our team looks at our publisher sites both before and after paid ads are turned on to make sure everything looks good.
This keeps both off-topic, non-developer sites as well as outright scams off our network.&lt;/p&gt;
&lt;p&gt;What we didn't expect was that we would get fake developer sites
with fake backstories applying to join our network.&lt;/p&gt;
&lt;h2 id="ad-scammers-are-brazen"&gt;Ad scammers are brazen&lt;/h2&gt;
&lt;p&gt;In late July, we got some requests that appeared to come from documentation for decent sized open source libraries.
Docs sites for code modules are a natural place to put an ad in front of an engaged audience
and it puts money directly into the hands of open source maintainers.
This is our bread and butter and we built EthicalAds to do exactly this for &lt;a href="https://readthedocs.org/"&gt;Read the Docs&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;When we first let one of these sites onto our network (they'd switched from a competitor),
we knew something was wrong almost immediately.
There was a little more traffic than was normal for a library like this, but a huge percentage looked automated.
We regularly look at a few internal metrics like what percentage of ads we send are viewed and how long they appear on the screen. But the metrics screamed that this new site wasn't normal traffic at all.
Within a few days, we kicked them off and refunded the small amount of traffic that got through to our advertisers.&lt;/p&gt;
&lt;p&gt;We got requests like this almost daily for weeks.
At first, we thought this example was one of a kind.
Soon, we discovered that scammers had registered similar domains to various modules' real domains,
made a sites that proxied traffic to the real library's site but could inject ads,
and created fake personas to impersonate the real library's devs:
names and emails that loosely matched one of the developers on GitHub.
There were dozens of examples but to name some specific modules:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://caolan.github.io/async/v3/"&gt;AsyncJS&lt;/a&gt;  (&lt;a href="https://asyncjs.xyz/"&gt;fake mirror&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/massimocandela/dataflux"&gt;DatafluxJS&lt;/a&gt;  (&lt;a href="https://dataflux-js.xyz"&gt;fake mirror&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://noblox.js.org/"&gt;NobloxJS&lt;/a&gt;  (&lt;a href="https://nobloxjs.xyz/"&gt;fake mirror&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/toolcool-org/toolcool-color-picker"&gt;Tool Cool Color Picker&lt;/a&gt;  (&lt;a href="https://tc-color-picker.xyz/"&gt;fake mirror&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;While the scammers seem to have temporarily stopped applying to our network,
they created dozens of fake sites and dozens of fake personas
implying that they're doing this with some scale across other ad networks as well.
These scams weren't particularly hard to see through but were more noteworthy for how shameless they were.
In each case, the scammers were pretending to be the real developer while attempting to monetize that person's work.&lt;/p&gt;
&lt;p&gt;In a few examples where we could get the real developer's email address from their GitHub profile,
we emailed the developer to see if they'd heard of this "unofficial mirror",
but in each case they confirmed our suspicion that they hadn't.
These developers hadn't done anything wrong,
but most werely that surprised that somebody would try to profit from their work.&lt;/p&gt;
&lt;h2 id="keeping-our-defenses-strong"&gt;Keeping our defenses strong&lt;/h2&gt;
&lt;p&gt;In response to knowing we're now on the scammers' radar,
we made a few changes to make sure our network stays safe:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We do some additional scrutiny on the clients viewing our ads.&lt;/li&gt;
&lt;li&gt;Our vetting process for incoming publishers has become more formalized
  and got a few additional steps to ensure sites on our network are real and on topic.&lt;/li&gt;
&lt;li&gt;We now have a system that alerts us to significant changes in traffic (quantity or quality) to a publisher.&lt;/li&gt;
&lt;li&gt;We have a live publisher KPIs dashboard that can show trends and key metrics for all our publishers at once.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As we grow, size may not always be our best defense,
but we intend to make sure our network stays exclusive, secure, and high quality.&lt;/p&gt;
&lt;p&gt;Thanks for coming along with us on this journey to build an ethical ad network
and an introduction to the shadier side of the ad business.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any fraud prevention ideas
or feedback on our product.
We always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="security"/><category term="adtech"/></entry><entry><title>EthicalAds Newsletter - August 2022</title><link href="/blog/2022/09/ethicalads-newsletter-august-2022/" rel="alternate"/><published>2022-09-08T00:00:00-07:00</published><updated>2022-09-08T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2022-09-08:/blog/2022/09/ethicalads-newsletter-august-2022/</id><summary type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;On the marketing side, we did a &lt;a href="https://news.ycombinator.com/item?id=32650878"&gt;Show HN post&lt;/a&gt;
that got a fair amount of traction
and …&lt;/p&gt;</summary><content type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;On the marketing side, we did a &lt;a href="https://news.ycombinator.com/item?id=32650878"&gt;Show HN post&lt;/a&gt;
that got a fair amount of traction
and a &lt;a href="https://www.producthunt.com/posts/ethicalads"&gt;ProductHunt launch&lt;/a&gt; (that didn't).
This coincided with our &lt;a href="/blog/2022/08/going-v10-the-backstory-and-future-of-our-ad-network/"&gt;v1.0.0 release post&lt;/a&gt; that talks about our backstory and the future of our network.&lt;/p&gt;
&lt;p&gt;These are the other major features we released in August:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We worked quite a bit on updating our landing pages to better explain our product positioning
  as an open source, privacy-focused ad network that uses contextual (rather than behavioral) targeting.
  We added more screenshots of the product and answering more questions
  about process and reporting before they're asked.&lt;/li&gt;
&lt;li&gt;We rolled out a few advances to better detect and handle ad fraud.
  While ad fraud is part of the industry, we work very hard to minimize it from impacting our advertisers.
  We have an upcoming blog post detailing some of the blatant tactics we've seen.&lt;/li&gt;
&lt;li&gt;Also in our ad server, we added a number of reporting improvements that improved performance
  and showed more of our metrics in graphical form.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our &lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt; and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="august-advertising-stats"&gt;August advertising stats&lt;/h2&gt;
&lt;p&gt;In August 2022:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$34,591.50&lt;/strong&gt; for our publishers.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;133 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;14,258,799&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As I mentioned in July, we saw a large advertiser scale back their marketing
and this impacted us during early to mid-August as we scrambled to fill our inventory.
Fortunately, we are now very booked up through September and a little into October.&lt;/p&gt;
&lt;p&gt;September should be close to a record month for both our revenue and payouts to publishers.
It will also feature a significant increase in paid ad views
due to a few new lower priced campaigns running with cheaper targeting options.&lt;/p&gt;
&lt;h2 id="our-wins"&gt;Our wins&lt;/h2&gt;
&lt;p&gt;We got a significant amount of inbound publishers and advertisers from our ShowHN post
and the &lt;a href="https://www.developermarkepear.com/blog/paid-advertising-developer-marketing"&gt;great review&lt;/a&gt;
from a customer last month on a developer marketing blog.
These write-ups are continuing to pay huge dividends in terms of getting the word out about us.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We continued to make really good progress on our ML model for contextual targeting.
  After contacting some of the devs, we started working with one of the folks from SpaCy on a contract basis
  to help improve our model and there's been some good work started there
  that I expect to continue throughout the month.
  It always feels great to build our product while putting money directly into the hands
  of open source devs.&lt;/li&gt;
&lt;li&gt;On the marketing side, we're going to produce a blog series that does privacy teardowns
  of popular websites. The first one will be in September.&lt;/li&gt;
&lt;li&gt;It feels like 2022 is still getting started but September is time to create our Q4 prospectus already.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/></entry><entry><title>Going v1.0: The Backstory and Future of Our Ad Network</title><link href="/blog/2022/08/going-v10-the-backstory-and-future-of-our-ad-network/" rel="alternate"/><published>2022-08-30T00:00:00-07:00</published><updated>2022-08-30T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2022-08-30:/blog/2022/08/going-v10-the-backstory-and-future-of-our-ad-network/</id><summary type="html">&lt;p&gt;A few weeks ago, we released the v1.0 version of our ad server.
This release coincided with a huge …&lt;/p&gt;</summary><content type="html">&lt;p&gt;A few weeks ago, we released the v1.0 version of our ad server.
This release coincided with a huge upgrade to our contextual targeting, machine learning model.
We wanted to take the time to share our story of how we got here,
the details of both the software and movement we're building,
and what's coming next for EthicalAds.&lt;/p&gt;
&lt;h2 id="our-story"&gt;Our story&lt;/h2&gt;
&lt;p&gt;A few years back, we were building Read the Docs, a documentation hosting platform,
but there wasn't any monetization.
It was a service with millions of monthly visitors that thousands of projects relied on for their docs
but run by folks with day jobs who wore pagers for their side project.
It wasn't sustainable.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Today, we now have ~130 publishers and we gross just under $60k per month in ad revenue
of which 70% goes to publishers&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The obvious way to monetize was ads.
However, we cared about the privacy of our visitors
and we didn't want ad companies to track our users around the web.
We went to a few ad networks and asked if we could proxy ad traffic or even just run ads without cookies.
They laughed at us and told us to take it or leave it.
So we built our own ad network including writing our ad server and client from scratch
and did all our own sales and marketing.&lt;/p&gt;
&lt;p&gt;Fast forward to July 2020, when our friends over at CodeFund shut down, we launched our ad network.
Expanding our ads beyond Read the Docs had been on the roadmap
but CodeFund shutting down greatly accelerated our schedule
while also dropping a number of sites interested in privacy-preserving ads into our lap.&lt;/p&gt;
&lt;p&gt;Today, we now have ~130 publishers and we gross just under $60k per month in ad revenue
of which 70% goes to publishers.
Most of our publishers are small sites or open source projects so to send them ~$40k/mo feels great.&lt;/p&gt;
&lt;h2 id="building-a-content-targeted-ad-network-with-machine-learning"&gt;Building a content-targeted ad network with machine learning&lt;/h2&gt;
&lt;p&gt;Firstly, we only show developer-related ads on developer sites.
No ads about a product whose site you visited last week and nothing off topic.
All our advertisers sell SaaS products for developers, cloud infrastructure,
they're hiring devs, or something like that.&lt;/p&gt;
&lt;p&gt;All our publishers (that's advertising lingo for sites showing ads) are hand approved.
We make sure each site is the right fit for our advertisers and protect their brands.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;"EthicalAds' targeting provides a better ad experience for our community members."&lt;/p&gt;
&lt;p&gt;&amp;mdash; Ido Shamun, Co-founder &amp;amp; CTO of daily.dev&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Beyond the basics, we built a crawler that crawls the sites on our network to help target our ads.
Using an ML classifier (built with &lt;a href="https://spacy.io/"&gt;SpaCy&lt;/a&gt;),
it can tell if a page is about data science or about full stack development.
This contextual targeting allows advertisers to reach the niche they are focused on
and ensure the ads perform well.
If you're really interested, you can try out our classifier, a part of our model,
on &lt;a href="https://huggingface.co/spaces/davidfischer/ea-classifier"&gt;HuggingFace&lt;/a&gt;, a site for sharing ML models.&lt;/p&gt;
&lt;p&gt;After trying out our model and training it for a couple of months,
we were finally happy enough with the performance to integrate it into our ad serving pipeline.
We're really proud of this and that's why we went from v0.55.0 (yes, 50+ pre-stable releases) to v1.0.0.&lt;/p&gt;
&lt;h2 id="whats-next"&gt;What's next&lt;/h2&gt;
&lt;p&gt;Apart from privacy, one thing that separates us from the big ad players like Google and Facebook
is that they can sell ads for almost anything you can think of.
Currently, we have some traffic for a lot of developer niches,
but outside of our main &lt;a href="/advertisers/#audiences"&gt;audiences and topics&lt;/a&gt;,
it can be a challenge to run really focused campaigns on topics like "2 Factor Authentication"
or "Web Development with Go".&lt;/p&gt;
&lt;p&gt;However, as we get larger, our contextual targeting will scale well as our network scales
and these highly focused campaigns will be possible.
It's not an understatement to say that this kind of more advanced contextual targeting is the future of EthicalAds.&lt;/p&gt;
&lt;p&gt;Another area we are looking at is to help sponsorships
at large organizations deliver more value for sponsors.
Currently, we're helping the Python Software Foundation
to promote their sponsors across their ecosystem of web properties
while also allowing them to report important metrics like how many times a sponsor's logo was seen and clicked.
Check it our on the sidebar of the &lt;a href="https://pypi.org/project/urllib3/#for-enterprise"&gt;Python Package Index&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="join-us-for-whats-next"&gt;Join us for what's next&lt;/h2&gt;
&lt;p&gt;We're really excited about implementing new features on our ad network and continuing to iterate on sponsorships.
Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap.
We always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="ad-server"/><category term="community"/><category term="machine-learning"/></entry><entry><title>Fixed Footer Ad Placements in our Ad Client</title><link href="/blog/2022/08/fixed-footer-ad-placements-in-our-ad-client/" rel="alternate"/><published>2022-08-23T00:00:00-07:00</published><updated>2022-08-23T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2022-08-23:/blog/2022/08/fixed-footer-ad-placements-in-our-ad-client/</id><summary type="html">&lt;p&gt;Last month, we released a new feature in our ad client
that enabled publishers to quickly and easily add a …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Last month, we released a new feature in our ad client
that enabled publishers to quickly and easily add a floating, text-only ad placement
fixed to their site footer without having to write custom code.
Ensuring an ad is unobtrusive, visible,
and fits with the rest of a website goes a long way toward having good ad performance.
By having a well-tested, high-performing placement out of the box,
we can help publishers get something that works well quickly.&lt;/p&gt;
&lt;h2 id="usage"&gt;Usage&lt;/h2&gt;
&lt;p&gt;This feature is available to any publisher who wants to use it
by setting the &lt;code&gt;data-ea-style="fixedfooter"&lt;/code&gt; attribute on their ad placement.
The mobile and desktop optimized ad is displayed without an image
and only takes up a minimal amount of real estate on the page.
See our &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/#fixedfooter"&gt;full documentation&lt;/a&gt; on the feature for details.&lt;/p&gt;
&lt;p&gt;A number of publishers had requested this feature and a few had built it themselves
for their own site and we wanted to have a base implementation available for all our publishers.
Already we've been recommending it to some new and a few existing publishers
and we've seen a number of them choose use it.&lt;/p&gt;
&lt;p&gt;If there are features you're interested to see in our ad client,
please &lt;a href="/contact/"&gt;let us know&lt;/a&gt;.&lt;/p&gt;</content><category term="posts"/><category term="ad-client"/></entry><entry><title>EthicalAds Newsletter - July 2022</title><link href="/blog/2022/08/ethicalads-newsletter-july-2022/" rel="alternate"/><published>2022-08-16T00:00:00-07:00</published><updated>2022-08-16T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2022-08-16:/blog/2022/08/ethicalads-newsletter-july-2022/</id><summary type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;These are the major features we released in July:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Our machine learning model that analyzes the content around …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;These are the major features we released in July:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Our machine learning model that analyzes the content around where our ads appear
  so we can show the best possible ad rolled into production.
  Showing the best possible ad makes more money for publishers and shows advertisers' ads
  in the right context to perform amazingly.&lt;/li&gt;
&lt;li&gt;In our ad client, we released an
  &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/#fixedfooter"&gt;ad fixed to the footer&lt;/a&gt;.
  Already a number of publishers have chosen it and it performs great!&lt;/li&gt;
&lt;li&gt;In our &lt;a href="/advertisers/#audiences"&gt;audiences section&lt;/a&gt;,
  we added some details of the top publishers across our network
  for each of the major topics we focus on.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our &lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt; and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="july-advertising-stats"&gt;July advertising stats&lt;/h2&gt;
&lt;p&gt;In July 2022:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$35,670.95&lt;/strong&gt; for our publishers.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;131 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;14,563,179&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We continue to see strong demand for advertising and these figures are just below
our all time records.&lt;/p&gt;
&lt;h2 id="our-wins"&gt;Our wins&lt;/h2&gt;
&lt;p&gt;We received &lt;a href="https://www.developermarkepear.com/blog/paid-advertising-developer-marketing"&gt;a very nice review&lt;/a&gt;
from a customer on a developer marketing blog
that has resulted in a significant number of advertiser prospects asking for more information.
There's truly no greater praise than a customer telling others about us.&lt;/p&gt;
&lt;h2 id="tricky-bits"&gt;Tricky bits&lt;/h2&gt;
&lt;p&gt;For August, we did see a large advertiser reduce spending
and we expect a small slowdown over the month.
We have 3-4 advertisers who each account for about 10% of our total revenue
and losing one of them results in unsold inventory.
Running an ad network is always a balance between supply of ad placements
and demand for developer eyeballs and finding that balance can be tricky
especially since advertising is usually not sold in contracts longer than a quarter.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We received some &lt;a href="https://twitter.com/AsiaOrangio/status/1552277640953745408"&gt;great feedback&lt;/a&gt;
  on our product positioning and landing pages and we are working to improve our marketing
  and positioning in August.
  We are also reading a book on positioning
  (&lt;a href="https://www.goodreads.com/book/show/45166937-obviously-awesome"&gt;"Obviously Awesome"&lt;/a&gt; for the curious)
  in our &lt;a href="/blog/2022/05/running-a-company-book-club-tips-what-we-read/"&gt;company book club&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;In August, we dealt with a fair amount of ad scammers testing our defenses.
  Fortunately, we were able to discover them quickly and protect ourselves and our advertisers.
  This is a constant battle and hopefully we can share some of what we've learned
  and some of the brazen tactics from the scammers in an upcoming post.&lt;/li&gt;
&lt;li&gt;We plan on making a number of improvements to our ad reporting for advertisers
  including speeding up performance and showing more graphs, maps, and charts
  to help make sense of all the data.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/></entry><entry><title>EthicalAds Newsletter - June 2022</title><link href="/blog/2022/07/ethicalads-newsletter-june-2022/" rel="alternate"/><published>2022-07-14T00:00:00-07:00</published><updated>2022-07-14T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2022-07-14:/blog/2022/07/ethicalads-newsletter-june-2022/</id><summary type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;These are the major features we released in June:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We made a number of improvements to detecting keywords …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;These are the major features we released in June:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We made a number of improvements to detecting keywords where we show ads.
  In the end, this project scoped up a little bit and we built a pretty awesome (for us anyway)
  machine learning model that detects what pages are about.
  It will roll into production in July.&lt;/li&gt;
&lt;li&gt;We rolled out an updated &lt;a href="/prospectus/ethicalads-advertiser-prospectus.pdf"&gt;Q3 prospectus&lt;/a&gt;
  and a small simplification to our pricing.&lt;/li&gt;
&lt;li&gt;We released a new &lt;a href="/blog/2022/06/publisher-spotlight-series-kyle-polich-from-data-skeptic/"&gt;publisher spotlight interview&lt;/a&gt;
  with Kyle Polich from Data Skeptic.&lt;/li&gt;
&lt;li&gt;Just to follow up on a May feature, we saw quite a few publishers start using the fallback ads!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our &lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt; and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="june-advertising-stats"&gt;June advertising stats&lt;/h2&gt;
&lt;p&gt;In June 2022:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$37,579.32&lt;/strong&gt; for our publishers.
  This is slightly down from our record month in May but still very good.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;128 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;15,407,959&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There's a lot of talk of a market downturn but that hasn't shown up yet
in our numbers. We are continuing to see strong demand for advertising.&lt;/p&gt;
&lt;h2 id="tricky-bits"&gt;Tricky bits&lt;/h2&gt;
&lt;p&gt;While we're pretty excited about the ML model we built,
we don't have a true data scientist at EthicalAds or at Read the Docs.
As a result, there's been quite a ramp up in terms of learning the ML state of the art.
We have created a &lt;a href="https://spacy.io/"&gt;SpaCy&lt;/a&gt; based text classifier.
This is tricky because it's outside of our comfort zone,
but to go from almost nothing to something just about ready for production
in less than a month is very cool.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;As I mentioned earlier, our topic detection project will roll out in July.&lt;/li&gt;
&lt;li&gt;I'm a little late in posting this blog but we released support
  for an &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/#fixedfooter"&gt;ad fixed to the footer&lt;/a&gt;
  of the page directly to our ad client in early July.
  This allows publishers to have a high performing ad placement without any custom code.&lt;/li&gt;
&lt;li&gt;We are building topic specific landing pages for our core topics
  like data science and security &amp;amp; privacy. The goal is to help our SEO and rank for things
  advertisers search for like "advertising to data scientists".&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/></entry><entry><title>Publisher Spotlight Series: Kyle Polich from Data Skeptic</title><link href="/blog/2022/06/publisher-spotlight-series-kyle-polich-from-data-skeptic/" rel="alternate"/><published>2022-06-14T00:00:00-07:00</published><updated>2022-06-14T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2022-06-14:/blog/2022/06/publisher-spotlight-series-kyle-polich-from-data-skeptic/</id><summary type="html">&lt;figure&gt;
    &lt;figcaption&gt;Listen to this interview:&lt;/figcaption&gt;
    &lt;audio controls src="/audio/publisher-spotlight-kyle-dataskeptic.mp3"&gt;
            Your browser does not support the &lt;code&gt;audio&lt;/code&gt; element.
    &lt;/audio&gt;
&lt;/figure&gt;

&lt;p&gt;&lt;em&gt;This is part of our publisher spotlight series …&lt;/em&gt;&lt;/p&gt;</summary><content type="html">&lt;figure&gt;
    &lt;figcaption&gt;Listen to this interview:&lt;/figcaption&gt;
    &lt;audio controls src="/audio/publisher-spotlight-kyle-dataskeptic.mp3"&gt;
            Your browser does not support the &lt;code&gt;audio&lt;/code&gt; element.
    &lt;/audio&gt;
&lt;/figure&gt;

&lt;p&gt;&lt;em&gt;This is part of our publisher spotlight series where we highlight publishers
using EthicalAds and help them tell their story.
This second episode is with Kyle Polich from &lt;a href="https://dataskeptic.com/"&gt;Data Skeptic&lt;/a&gt;,
a podcast about data science, machine learning, and AI.
You can check out our &lt;a href="/blog/2022/01/publisher-spotlight-series-ido-shamun-from-dailydev/"&gt;previous episode here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ra: Hi I'm Ra from EthicalAds and firstly I'd like to introduce my guest who is Kyle Polich,
the producer of Data Skeptic podcast, a podcast all about innovations in data science.
So Kyle, can you tell me what is Data Skeptic?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Kyle: Well it really started out as kind of my passion
project wanting to do some science communication about the field of
data science and you know my broader interests in computer
science and AI and machine learning and topics like that.&lt;/p&gt;
&lt;p&gt;And it's evolved into a show that's run by a small team of people and I get to host it
where every week I tend to talk
to someone who's done some interesting either research
which is mostly our focus or sometimes
industry or just interesting data related project.
Usually correlating with whatever our current season's theme is.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Can you tell me a little bit more about how you choose a theme for the season?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Well it's kind of an evolving process.
I started doing that only a few years into the show and I
really like it as the format it helps me kind of focus on
getting deep into one topic instead of just you know,
buffet-style sampling everything.&lt;/p&gt;
&lt;p&gt;So it's kind of a combination of what I think is most
interesting to me at the moment if I'm feeling selfish or what I
think is important in the public consciousness or just a really good topic
that there isn't enough information available about if I'm feeling more generous.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yeah, so
you started Data Skeptic almost for your own curiosity.
But it sounds like you've transformed it almost
into like a platform to raise awareness for,
data science research or important things going
on in the data literate community,
I'm going to say.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You know, it's such an evolving field, so much has happened in the last,
even in the time I've been doing Data Skeptic.
Natural language processing is revolutionized.&lt;/p&gt;
&lt;p&gt;I studied it in grad school and I'm not
gonna say everything I learned there was useless,
but like we use completely different techniques that didn't exist then.
So the challenge to stay up with the
literature is a great sort of exercise for me that
I get from doing the show
and I get the joy of sharing that with all the listeners.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yeah, it seems
like everyone has a podcast these days.
I mean we have one right now basically.
So what kind of sets Data Skeptic apart from the zeitgeist?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;That's a good question. I think of it as Data Skeptic, a sort of our own stage.
We're not a big corporate backed media giant that
gets featured on the front page of ITunes.
People hear about us, word of mouth.&lt;/p&gt;
&lt;p&gt;And you know, if there were an analogy to like music and music venues,
I'm an underground club where I feature upcoming acts that
maybe you haven't heard of yet so well there,
you know, do you have to have some sort of celebrity status names on the show.
I try and interview guests that I think are doing really cutting
edge things that are going to become more prevalent in the future.
So I'd like to think we're sort of the underground opening act for big things.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I've noticed you feature a lot of PhD students or candidates even on your program,
which I greatly admire, because at the end of the day,
PhD students are often times the boots on the ground,
if not the first name on the paper.
Has like providing a platform for these up and coming data stars,
crossed your mind at the origins of Data Skeptic,
or is that something that kind of developed?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;That's just been a side bonus.
I didn't really anticipate that when I started the
show and knowing I wanted to do it weekly.&lt;/p&gt;
&lt;p&gt;Honestly,
my early motivations and and concerns were really about
can I keep up the pace of the content?
And as I kind of jumped that hurdle, then it became more about like,
what is the platform really for my gosh, we actually have listeners,
what do they want to hear and how do we make
this continue to grow and still stay true to itself?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Can you tell me a little bit about your audience and who, I mean,
there are people who, you know, heard about it from a fellow data enthusiast,
but like who are your audience?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Well, it's a pretty diverse group.
I mean, you can make some broad assumptions and you'll probably be correct,
you know, right, people working in data careers or adjacent to those.&lt;/p&gt;
&lt;p&gt;We've done some surveys over time to get a better sense of this.
So I would say it's, it's a lot broader umbrella than you might think.
It's not that 80% of listeners have the title data scientist.
Some are entrepreneurs who
maybe you are never going to build a machine learning model,
but they want to know what's going on in ML because it could impact their businesses.&lt;/p&gt;
&lt;p&gt;So I think the commonality I find is just a good curiosity and
that's what I appreciate and try and deliver on for listeners.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;That makes a lot of sense.
Especially when thinking about the potential corporate
benefits of bringing ML into business.
It's a frequent joke where the CDO of the company will say,
can we use machine learning for this?
And the good engineer will say no, it doesn't make sense.
And the great engineer will say yes, but I'll need a raise.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;So how large is your listener base on like a monthly basis?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Well, I don't want to give you a flippant answer, but when we crossed,
I think 10 million total downloads, I stopped looking at the stats.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;That's amazing.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Thank you. We've been doing it for many years.
So the more episodes you put out, you know,
it's not as impressive as if I had put out five episodes,
but very proud of what we've accomplished.&lt;/p&gt;
&lt;p&gt;There came a point when,
especially as we started introducing advertisers on the show,
that there was a push and pull, you know,
should we cover things that would get us
higher paying advertisers or things like that?
And I did not want us to become overly metrics driven.&lt;/p&gt;
&lt;p&gt;I've helped a lot of businesses do that and
that's really the right thing for a corporation.
Data Skeptic isn't so much a corporation,
it's sort of a not very profitable branch of my consulting business.
That's sort of subsidized by other work.
Like I said, passion project. Right.&lt;/p&gt;
&lt;p&gt;I wanted to be more true to,
let's pick good seasons and put out really good content.
If the numbers drop, my team's gonna let me know,
but I don't want to be thinking about my weekly download numbers as much as I am about
"How do we make a good show?"&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;That makes a lot of sense.
Can you tell me a little bit more
about how this passion project that you started from,
I'm gonna put out an episode a week for as long as I can turn into something that
you can monetize and then how you went about
that initial monetization of your traffic and audience.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Sure.
So the biggest hurdle you have to cross in the podcast world
is having enough listeners that someone wants to work with you.
If you have, you know, 100 listeners,
it just doesn't make sense right for me to cut you a
check for the small amount people would pay for that few downloads.
The broad podcasting ecosystem is a CPM business.&lt;/p&gt;
&lt;p&gt;So I don't know why M is 1000 but cost per 1000 downloads.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;It's Latin&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Okay, well thank you for that. That's a new one.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sorry. We also use CPM in advertising.
So I had the same question continue.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Perfect, thank you for that. Yeah.
But then if you listen to the majority of podcasts,
they kind of have this,
you hear a lot of like mattress companies and razor companies and
there's sort of a few key industries propping up the industry,
the podcasting advertising industry.&lt;/p&gt;
&lt;p&gt;We started there but my audience was big enough and niche enough that
we figured it made more sense to do direct sales.
So now we engage typically with like more of like a
company who will have a longer term ad play with us.&lt;/p&gt;
&lt;p&gt;We have four annual sponsors right now
and they'll appear once per month on the show
and think about it from their unit economics,
it's partially a brand play and also the fact that like
one deal close could be a huge thing for them.&lt;/p&gt;
&lt;p&gt;You know, if you're selling razor blades at a discount price,
you have to go for high volume if you have an enterprise SaaS
tool that companies need and it's a win win for both sides.
A couple of sales is great.
So we figured kind of this platform of how do we get
quality products that we vet to our technical audience so that both sides of
the equation might be happy was really the right place for us to explore.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;That makes a lot of sense.
And that brings I guess as to why I'm here talking to you today
is you've recently decided to also start hosting EthicalAds on your site.
Because as a podcast obviously distributed through many sources.
but you do have your own website and you've
started hosting display ads and not just any display ads,
I might add EthicalAds.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Indeed&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Can you tell me a little bit about that and how that happened?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Sure
Well, I had seen EthicalAds around on other sites that I liked.
Just kind of technical focus things for developers and data scientist types.
So it was sort of, I felt like I had a pure review in that sense, you know,
I didn't necessarily check with anybody about it,
but I became aware of the brand from being on sites
like that technical stuff and we previously had used Google AdSense.
I don't know how much detail should go into but out
of great frustration with them just abandoned ads on the site.&lt;/p&gt;
&lt;p&gt;And then I thought, you know,
why don't we plug in EthicalAds and see if this will work for us.
So that was a great start for us to resume having some display presence on the site.
And I also like the fact that it has this anonymous qualities,
we're not doing a lot of tracking and this kind
of stuff were just serving what we hope are good
ads that my viewers to our website are actually gonna
potentially like and click on if it's appropriate for them.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yeah. So I guess I'm kind of curious how you came to the idea of
display advertising for your website independent of EthicalAds.
You said,
you tried Google ads first and it didn't like um work out for you.
Okay. I do want to know about like the the the gritty details if if you'll spare me.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Sure.
Well I guess the problem with AdSense was,
and I don't want to claim like I'm a victim here,
but I think there was sort of a cyber bullying thing going on.
We started getting a high amount of like complaints about like,
oh this is a fraud site, this has adult content,
all these things which just were not true
and there's like this like moderation thing we
could go in and complain about it and then
we were suspended and I just wasn't making
enough money to fight with Google customer service,
which was totally unavailable.
So I just kind of gave up out of frustration.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Okay, so kind of like this mega corps
bureaucracy almost, um, just didn't make it a viable option for you.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Yeah, like we got suspended for no reason and we didn't have an easy recourse.
It just didn't make sense for me to look into it after a point.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;That completely makes sense. It's here to like supplement your income.
and your time is valuable.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;For sure.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;So what has obviously revenue from your mid roll ads
greatly exceeds the display
ad revenue just due to the nature of
podcast distribution, but what has advertising as an industry enabled you to do?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Perhaps like improve your podcast or your business or how has it
um supported you?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Well, the business side,
it's kind of hard to quantify what I call halo opportunities in halo revenue.
A couple of consulting deals a year will materialize out of
people who have been either recent or long time listeners.&lt;/p&gt;
&lt;p&gt;So that's a huge benefit right? To have lead generation that way.
I don't actually even mention on the show that I do
consulting because I'm not necessarily looking to do lead gen,
I'd rather have someone kind of find me or at least be aware, hey,
maybe that's our guy.&lt;/p&gt;
&lt;p&gt;So what advertising has really done for us besides that,
that I kind of don't have in a spreadsheet exactly has been able to
generate us a source of revenue that we can reinvest in the podcast itself.&lt;/p&gt;
&lt;p&gt;We hope that as we get more display revenue, we can invest in the site,
more writers, paid writers to come on and do posts for the blog, better content,
better source photos,
all this kind of stuff and hopefully create
a harmonious cycle there And whether it's the
online stuff with EthicalAds or the mid roll ads we have in the podcast,
it's really just been a reinvestment process for us to go from
myself to now a team of four people who are
all compensated for their work contributing to the show.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;That sounds really exciting.
Especially you mentioned some desire to explain and into written content, blog content.
Do you have some kind of vision for the future of
Data Skeptic as like a community hub beyond a podcast?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It's something we're carefully thinking about.
We definitely have some launches coming up this year
that will head in that direction.&lt;/p&gt;
&lt;p&gt;As far as like being a community where hey,
this is the place to go and learn data science.
We've thought a lot about that.
And I think there are just better places like MOOCs
and courses and things to do that where there's a support
team in place rather than just me and maybe a
few people kind of hanging out in Slack or something.&lt;/p&gt;
&lt;p&gt;So I don't know if that's exactly the community we want to build,
but we hope to be a resource for people who
are really getting their hands dirty and data science.&lt;/p&gt;
&lt;p&gt;So if you are,
let's say trying to get into some streaming processing
or your first steps in natural language processing,
we're gonna have some solutions available for people
in the future that will make things like that easier
and maybe some opportunities in career development.&lt;/p&gt;
&lt;p&gt;So we're exploring ways that can be harmonious both for
our visitor and however we generate revenue from those sources
and looking into kind of a path like that for
expansion rather than trying to be yet another community.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;That makes sense.
In a similar vein,
do you have any exciting news that you'd like to share about upcoming episodes?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Absolutely, if you don't mind? And this one's right on brand
as we've been talking about, we do a season's theme on Data Skeptic.
Earlier this year, we finished up our "time series season".
Then we did K-means clustering for little short while,
which is the famous algorithm.&lt;/p&gt;
&lt;p&gt;We're now finishing up a series.
We call physically distributed all about remote work and the
transition to kind of stay at home type things.
Our new series, which will be out later this year.
Probably about the time this airs or soon to be. In a run for a couple months.
It's called Data Skeptic Ad Tech.
And it's all about the advertising technology that powers the ads we see online.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Oooh. We have a great difficulty at EthicalAds calling ourselves ad tech because
we are smart about content, not about users.
And ad tech is deeply, deeply ingrained with
some, some sketchy stuff that I'm sure your users will hear about.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Yeah.
It's like electricity can be used for good and for bad.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Exactly. Is there anything else that you would like to add?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Just excited to be on board. The sign up was really easy, appreciated
getting in touch with you guys and looking forward to seeing
what we can develop with EthicalAds in the future.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Awesome. We are definitely looking forward to hearing more
about the data science of big ad tech.
I just wanted to say thank you so much for agreeing to this
interview taking the time out of your day to talk with me and answer some questions.
Here's to many more payouts.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Thank you so much!&lt;/p&gt;</content><category term="posts"/><category term="publisher-spotlight"/></entry><entry><title>EthicalAds Newsletter - May 2022</title><link href="/blog/2022/06/ethicalads-newsletter-may-2022/" rel="alternate"/><published>2022-06-09T00:00:00-07:00</published><updated>2022-06-09T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2022-06-09:/blog/2022/06/ethicalads-newsletter-may-2022/</id><summary type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;These are the major features we released in the last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In May, we rolled out the ability …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;These are the major features we released in the last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In May, we rolled out the ability for publishers to show their own fallback house ads
  when we don't have a paid ad to show.
  You can access it on &lt;code&gt;Fallback Ads&lt;/code&gt; menu in your publisher dashboard, if you want to try it out.&lt;/li&gt;
&lt;li&gt;After seeing the success of the small onboarding improvements in our ad server,
  we reworked a number of our standard customer support responses
  to help get new publishers and advertisers on the platform as easily and quickly as possible.&lt;/li&gt;
&lt;li&gt;Our keyword analyzer is now spidering across the most visited pages in our network.
  This helps us better understand the content where we show ads, curate topics, and show the most relevant ad.&lt;/li&gt;
&lt;li&gt;We did some initial work on building more targeting and pricing information into our ad server.
  Specifically, having multiple preset regions and topics based on what advertisers frequently buy.&lt;/li&gt;
&lt;li&gt;On the marketing front, we produced a page on how we are
  &lt;a href="/alternative-to-carbon-ads/?ref=newsletter"&gt;different from other developer ad networks like CarbonAds&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our &lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt; and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="may-advertising-stats"&gt;May advertising stats&lt;/h2&gt;
&lt;p&gt;In May 2022:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$39,991.85&lt;/strong&gt; for our publishers. Just a hair under $40k which we hope to break in the coming months.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;125 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;16,183,111&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;May was another record breaking month in terms of revenue and it's great to keep the network growing.
Revenue was very consistent over the month and showed the usual ebb and flow of our traffic
with peaks on weekdays and valleys on weekends.&lt;/p&gt;
&lt;h2 id="tricky-bits"&gt;Tricky bits&lt;/h2&gt;
&lt;p&gt;Unfortunately, we said goodbye to our wonderful account manager and customer success rep Ra
who left us for what sounds like an amazing data science role in New York City.&lt;/p&gt;
&lt;p&gt;Although we hand-approve our publishers, we do continuously go back and look at low performers.
In May, we worked with a few low performers to try to improve the ad placements on their site.
While we had some successes here and a large publisher and some small ones were able to bring their
numbers up, a few publishers had to be offboarded from the network.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We're continuing to work on our topic-detection infrastructure.
  We made improvements in May and expect to continue to iterate here in June.&lt;/li&gt;
&lt;li&gt;In June, we expect to have a new publisher spotlight post (&lt;a href="/blog/2022/01/publisher-spotlight-series-ido-shamun-from-dailydev/"&gt;our first with daily.dev&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;We will also have an updated &lt;a href="/prospectus/ethicalads-advertiser-prospectus.pdf"&gt;Q3 prospectus&lt;/a&gt;
  in the next few days.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/></entry><entry><title>Community Ads Program - Request for Proposals</title><link href="/blog/2022/05/community-ads-program-request-for-proposals/" rel="alternate"/><published>2022-05-16T00:00:00-07:00</published><updated>2022-05-16T00:00:00-07:00</updated><author><name>Ra Cohen</name></author><id>tag:None,2022-05-16:/blog/2022/05/community-ads-program-request-for-proposals/</id><summary type="html">&lt;p&gt;Here at EthicalAds, we believe advertising can be used as a force for good, supporting open source and fostering community …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Here at EthicalAds, we believe advertising can be used as a force for good, supporting open source and fostering community among devs across the world.&lt;/p&gt;
&lt;h2 id="seeking-proposals-for-our-community-ads-program"&gt;Seeking proposals for our Community Ads Program&lt;/h2&gt;
&lt;p&gt;As part of realizing our &lt;a href="https://www.ethicalads.io/advertising-vision/?ref=community-ads-rfp"&gt;Advertising vision&lt;/a&gt;, we like to give back to the developer community by running &lt;strong&gt;free&lt;/strong&gt; ads for open source projects and community initiatives like open source conferences.
This is called our &lt;a href="https://www.ethicalads.io/community-ads/?ref=community-ads-rfp"&gt;Community Ads Program&lt;/a&gt;.
These ads are for developer serving initiatives that simply don't have the budget for paid advertising.
Historically, we've been proactive about reaching out to causes that we personally attend like regional python conferences, but we'd love to support other initiatives.&lt;/p&gt;
&lt;p&gt;Do you have an open source project that is entirely free to use that you'd like to share with the world?
Do you run a conference or are starting a local chapter of a developer group that you'd like to advertise?
&lt;a href="https://www.ethicalads.io/community-ads/?ref=community-ads-rfp"&gt;Let us know&lt;/a&gt;!&lt;/p&gt;
&lt;h2 id="previous-community-ads"&gt;Previous Community Ads&lt;/h2&gt;
&lt;p&gt;We've been running free ads for community events for years now in a variety of languages.
Some examples of ads we've run before:&lt;/p&gt;
&lt;div class="postimage text-center"&gt;
  &lt;img src="/images/pages/community-ads-pycon-example.png" alt="Want to give a talk at Pycon US 2022? Proposals open now until Dec 20th. Apply today!" style="max-width: 300px"&gt;
  &lt;p&gt;An ad raising awareness for the Call for Proposals for Pycon US 2022.&lt;/p&gt;
&lt;/div&gt;

&lt;div class="postimage text-center"&gt;
  &lt;img src="/images/posts/2022-pycamp.png" alt="¡Programa tus ideas sin límites durante todo un fin de semana all-inclusive!" style="max-width: 300px"&gt;
  &lt;p&gt;An ad for a Spanish Python conference, PyCamp 2022.&lt;/p&gt;
&lt;/div&gt;

&lt;div class="postimage text-center"&gt;
  &lt;img src="/images/posts/2019-PyBay.png" alt="Support your SF Bay Area PyCon. Join 750+ Pythonistas in San Francisco Aug 15-18" style="max-width: 300px"&gt;
  &lt;p&gt;An ad for a Bay Area Python conference from 2019.&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;As you can see, these are often ads for regional technical conferences but they don't have to be.
We'd love to run more ads supporting the developer community either by raising awareness for dev-focused charities or non-profit organizations.&lt;/p&gt;
&lt;h2 id="know-of-a-worthy-cause"&gt;Know of a worthy cause?&lt;/h2&gt;
&lt;p&gt;Spread the word by submitting a &lt;a href="https://www.ethicalads.io/community-ads/?ref=community-ads-rfp"&gt;community ad application&lt;/a&gt; today!&lt;/p&gt;</content><category term="posts"/><category term="community"/><category term="ads"/></entry><entry><title>Running a company book club: tips &amp; what we read</title><link href="/blog/2022/05/running-a-company-book-club-tips-what-we-read/" rel="alternate"/><published>2022-05-05T00:00:00-07:00</published><updated>2022-05-05T00:00:00-07:00</updated><author><name>Eric Holscher</name></author><id>tag:None,2022-05-05:/blog/2022/05/running-a-company-book-club-tips-what-we-read/</id><summary type="html">&lt;p&gt;Here at EthicalAds we've been running a book club to help our team grow and learn.
This post will cover …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Here at EthicalAds we've been running a book club to help our team grow and learn.
This post will cover a few topics:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Advice on running a lightweight book club&lt;/li&gt;
&lt;li&gt;How we're running our book club&lt;/li&gt;
&lt;li&gt;Reviews of the books we've read&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We've found this process quite valuable for growing our skills.
Our team is mostly people with a developer background,
so we've been focusing more on business &amp;amp; marketing topics,
since that's where we all have a lot to learn.&lt;/p&gt;
&lt;h2 id="book-club-goals-advice"&gt;Book club goals &amp;amp; advice&lt;/h2&gt;
&lt;p&gt;We've read 4 books in our book club so far,
and we have learned a few tips and tricks for making sure it feels valuable to everyone:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Don't overthink what is required to get started. We didn't have a concrete outcome when we started, and are still learning as we go. Just get started!&lt;/li&gt;
&lt;li&gt;When you pick a book, have an actionable task that we want to be able to solve once we read the book.
    - As an example, our next book is around writing better email. Our goal is to improve our default email replies for publishers &amp;amp; advertisers in our support tooling.&lt;/li&gt;
&lt;li&gt;Change the topics of the book each time, so that you're getting a well-rounded set of topics that affect your business.
    - We've covered open source, positioning, copywriting, and marketing thus far.&lt;/li&gt;
&lt;li&gt;Make sure you're producing something when you read the book, otherwise it can feel like you're reading a lot of theory, but not putting that knowledge to work.
    - You'll also retain the information more if you're forced to use it, rather than just read it.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="how-to-run-a-book-club"&gt;How to run a book club&lt;/h2&gt;
&lt;p&gt;Our book club is pretty lightweight.
It looks like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We have a recurring weekly meeting for 30 minutes, to handle whatever needs to be discussed that week, generally what we've read.&lt;/li&gt;
&lt;li&gt;During the reading, each member of the team takes notes around what they thought was interesting or actionable for our company, and we mostly discuss this in our 30 meeting.&lt;/li&gt;
&lt;li&gt;We usually aim for around 30-60 minutes of reading, to keep the time commitment manageable.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When we want to decide which book to read, we:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Discuss what we want to get out of the book, and which topic to focus on.&lt;/li&gt;
&lt;li&gt;Then each member of the team looks for a book that they think would fit well (3 total).&lt;/li&gt;
&lt;li&gt;We discuss each book, and decide as a team which one to read (if there isn't an obvious choice, we just flip a digital coin).&lt;/li&gt;
&lt;li&gt;We discuss a basic plan for an area of the business to improve after reading the book, so we have an actionable goal at the end of the book to put the information to use.&lt;/li&gt;
&lt;li&gt;We start reading!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There's likely improvements we'll keep making as we go,
but this is enough for us to get a lot of value from book club.&lt;/p&gt;
&lt;h2 id="book-reviews"&gt;Book reviews&lt;/h2&gt;
&lt;p&gt;These are reviews of the books that we've already read,
presented in the order we read them.
If you're looking for some ideas for what to read,
this might be a good place to start!&lt;/p&gt;
&lt;h3 id="working-in-public-the-making-and-maintenance-of-open-source-software-nadia-eghbal"&gt;&lt;a href="https://press.stripe.com/working-in-public"&gt;Working in Public: The Making and Maintenance of Open Source Software - Nadia Eghbal&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Our goal with this book was to better understand the publishers of our platform,
many of which are open source projects.
We are also an open source project ourselves,
so that was another avenue that we also wanted to read more about.
The book is a high-level overview of how open source works,
and is a wonderful categorization of the various types of open source projects.&lt;/p&gt;
&lt;p&gt;As someone who has done a lot of open source work,
I found Nadia wonderfully put words to a lot of concepts I understood but couldn't explain.
If you have a business need or personal curiosity to understand how open source functions,
this book is a wonderful "Getting Started" guide.&lt;/p&gt;
&lt;h3 id="building-a-brand-story-clarify-your-message-so-customers-will-listen-donald-miller"&gt;&lt;a href="https://buildingastorybrand.com/"&gt;Building a Brand Story: Clarify Your Message So Customers Will Listen - Donald Miller&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;In the Story Brand framework, a hero (customer) has a problem, meets a guide
who gives them a plan to solve the problem and succeed.
As a business, our job is to position ourselves as the guide
helping the customer to succeed.
The core message of the brand story is to put the customer first.
This applies to all aspects of a business but especially (for a business like ours)
on our website and in our email communication
This is the key to having customers read and engage with our business.&lt;/p&gt;
&lt;p&gt;There are a few consequences of the Story Brand framework. They are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The customer is the hero of the story. Not the brand.&lt;/li&gt;
&lt;li&gt;Messaging needs to be simple and straight-forward. Our website is akin to an elevator pitch. Offers should be direct and above the fold. Sometimes less is more.&lt;/li&gt;
&lt;li&gt;Give the customer a plan for how our business helps them succeed. The solution by itself isn't a plan.&lt;/li&gt;
&lt;li&gt;After the hero has succeeded, affirm their success and tell stories of heroes who have succeeded.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="the-growth-marketing-handbook-julian-shapiro"&gt;&lt;a href="https://www.julian.com/guide/growth/intro"&gt;The Growth Marketing Handbook - Julian Shapiro&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;In an effort to prioritize the actionable, our EthicalAds book club tacked Julian Shapiro’s blog “The Growth Marketing Handbook” as our second group project. Touching on everything from designing and A/B testing landing pages to user acquisition channels and onboarding, the handbook certainly tries to cover it all. While we figured out our brand’s story and thus strategy pretty thoroughly in our first book club book, we took reading this handbook’s sections on webpages as a guide for revamping our user’s experience on our own site. Unfortunately, the “making ads” section wasn’t very insightful as it largely reiterated the lessons learned in landing page design such as an emphasis on concision and clarity with regards to the benefits of your product for your user. The section on “running ads” was particularly interesting to us as it was almost entirely focused on optimizations for tracker-based advertising and how to optimize retargeted ads for conversions differently. While we have no plans to ever run ads on surveillance adtech platforms, the section did illuminate some key differentiators for us to highlight when comparing our service to that of our competitors. All in all, strategy was covered pretty thoroughly in our first book but “The Growth Marketing Handbook” is definitely worth a read for the website optimization guidance.&lt;/p&gt;
&lt;h3 id="the-copywriters-handbook-a-step-by-step-guide-to-writing-copy-that-sells-robert-bly"&gt;&lt;a href="https://us.macmillan.com/books/9781250238016/thecopywritershandbook"&gt;The Copywriter's Handbook: A Step-By-Step Guide To Writing Copy That Sells - Robert Bly&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The book was divided into two major sections, one that gives a theoretical foundation around copywriting, and one that applies that knowledge to specific fields (eg. Writing Online Ads or Writing Direct Mail). Our team read the book without the goal of becoming copywriters, but learning more about copywriting in general.&lt;/p&gt;
&lt;p&gt;This meant we found the higher level theoretical information quite useful, giving concrete advice for the value and craft of writing great copy that sells. The individual sections on specific types of copywriting were more of a high-level reference for that specific type of copywriting, and we didn't find much value in these sections. In fact, we only read 1/2 of the later sections of the book, focusing on areas where we thought would be most applicable. However, given the nature of the writing as a high-level reference, we didn't get as much value out of the sections that we already knew a lot about. I would recommend reading the topic-specific sections if there is an area you would find value in an overview of, instead of deeper insight into a specific area you already know about.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Best of luck getting started on your book club.&lt;/p&gt;</content><category term="posts"/><category term="company"/><category term="books"/><category term="#BuildInPublic"/></entry><entry><title>EthicalAds Newsletter - April 2022</title><link href="/blog/2022/05/ethicalads-newsletter-april-2022/" rel="alternate"/><published>2022-05-03T00:00:00-07:00</published><updated>2022-05-03T00:00:00-07:00</updated><author><name>Ra Cohen</name></author><id>tag:None,2022-05-03:/blog/2022/05/ethicalads-newsletter-april-2022/</id><summary type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;These are the major features we released in the last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In our server, we've begun implementing server-side …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;These are the major features we released in the last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In our server, we've begun implementing server-side keywords analysis! This will let us swap out our algorithms easier for better topic-detection in the future.&lt;/li&gt;
&lt;li&gt;We've also started crafting custom advertiser keyword dashboards in &lt;a href="https://www.ethicalads.io/blog/2021/12/graphing-ad-data-at-ethicalads/?ref=april-newsletter"&gt;metabase&lt;/a&gt; to give our recurring clients more insight into which keywords affect CTR the most.&lt;/li&gt;
&lt;li&gt;In our publisher dashboard, we've launched a new publisher onboarding checklist to make getting approved for paid ads easier than ever.&lt;/li&gt;
&lt;li&gt;We're also debuting a similar advertiser onboarding page in our dashboard for new advertisers, outlining the steps to kick-off their campaigns.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our &lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt; and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="april-advertising-stats"&gt;April advertising stats&lt;/h2&gt;
&lt;p&gt;In April 2022:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$38,967.84&lt;/strong&gt; for our publishers.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;124 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;16,246,064&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;April was another record breaking month in terms of revenue!
Our daily revenue peaked at almost $2500 and not a single day saw less than $1000 in revenue.&lt;/p&gt;
&lt;h2 id="tricky-bits"&gt;Tricky bits&lt;/h2&gt;
&lt;p&gt;We succeeded in selling all of our traffic in high-demand topics and regions in April, leading to the aforementioned revenue record!
Thus, we've been brainstorming new methods of getting the word out to new publishers such as revamping our landing pages and producing quality original content.
Expanding our network by onboarding new publishers is now our top priority so we can continue to meet advertiser demand.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reworking our topic-detection infrastructure and algorithm in our server (in progress!!).&lt;/li&gt;
&lt;li&gt;Highlighting our 10% discount on ad buys over $3000 in the flight report page.&lt;/li&gt;
&lt;li&gt;Building more information about pricing into our ad server, so we can work towards automated self-serve re-up campaigns.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/></entry><entry><title>Does Content Imply User Intent?</title><link href="/blog/2022/04/does-content-imply-user-intent/" rel="alternate"/><published>2022-04-26T00:00:00-07:00</published><updated>2022-04-26T00:00:00-07:00</updated><author><name>Ra Cohen</name></author><id>tag:None,2022-04-26:/blog/2022/04/does-content-imply-user-intent/</id><summary type="html">&lt;p&gt;When was the last time you clicked on an ad while browsing social media?
While scrolling through your feed of …&lt;/p&gt;</summary><content type="html">&lt;p&gt;When was the last time you clicked on an ad while browsing social media?
While scrolling through your feed of friends and family, ads for random gadgets or cheesy games annoy many, but why?
The ad itself is undoubtedly tailored to your own personal interests or brands that you like. So why is it irritating?
Because you as a user, had no intention of shopping. Your purpose in logging on was to socialize, not to shop.&lt;/p&gt;
&lt;h2 id="intent-is-irreplaceable"&gt;Intent is irreplaceable&lt;/h2&gt;
&lt;p&gt;Search ads have been the dominant form of display ad since they were invented over 20 years ago and to no wonder.
If a user is actively searching for a flower store, there is already an intent to purchase flowers present which motivated this search.
The same can be true of software products and solutions. If a developer is using a search engine to find a cloud hosting service,
chances are good that they intend to utilize a cloud hosting service in the near future.
&lt;strong&gt;User Intent&lt;/strong&gt; is the &lt;a href="https://www.crazyegg.com/blog/guide-user-intent/"&gt;greatest individual factor&lt;/a&gt; to convert a potential candidate into a paying customer.&lt;/p&gt;
&lt;p&gt;But search engines are not the only places where software developers exhibit their intent.
From using online tools like &lt;a href="https://jsbin.com"&gt;jsbin.com&lt;/a&gt; rendering their html edits in real-time to scouring package documentation to fix their latest bug,
software developers telegraph their intentions primarily through the content that they are viewing.
This can be numerically demonstrated in the comparison of Click through rates (CTR) on content-targeted campaigns vs non-content targeted campaigns.&lt;/p&gt;
&lt;h2 id="what-our-data-says"&gt;What our data says&lt;/h2&gt;
&lt;p&gt;First we'll examine the average weekly CTR across all of our advertising flights that are targeting geographic locations only.
If we had no campaigns ending that week, it's been logged as a 0.
As you can see, almost every week our geo-only campaigns fall below our network average CTR of 0.1%.&lt;/p&gt;
&lt;div class="postimage text-center"&gt;
  &lt;img class="w-75 shadow-lg" src="/images/posts/2022-no-keywords-ctr.png" alt="A screenshot of the Click through Rates for untargeted campaigns"&gt;
  &lt;p&gt;the average weekly CTR for untargeted campaigns in Q3 and Q4 of 2021&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;But how do our content-targeted campaigns fare? Using the same weekly aggregation, it's evident that our content-targeted campaigns frequently exceed our network's average CTR.&lt;/p&gt;
&lt;div class="postimage text-center"&gt;
  &lt;img class="w-75 shadow-lg" src="/images/posts/2022-keywords-ctr.png" alt="A screenshot of the Click through Rates for content-targeted campaigns"&gt;
  &lt;p&gt;the average weekly CTR for content-targeted campaigns in Q3 and Q4 of 2021&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;Our CTR (click through rate) is consistently higher on campaigns which employ content-targeting in addition to geographic targeting.
Which leads one to wonder, given that geography is a factor of the user whereas content is a factor of the publishing website,
why has so much of ad-tech been focusing on user-targeting and &lt;a href="https://www.ethicalads.io/surveillance-advertising/?ref=content-as-intent"&gt;surveillance advertising&lt;/a&gt; as opposed to content-targeting?&lt;/p&gt;
&lt;h2 id="the-return-of-content-targeting"&gt;The Return of Content Targeting&lt;/h2&gt;
&lt;p&gt;Content Targeting is by no means a new invention. It's been around for as long as niche publications have existed.
Fishing pole ads in fishing magazines and motor oil ads in car magazines have existed for decades.
However, in the last 15 years, the ad-tech industry largly swapped over to user-targeting under the misguided notion that intent doesn't expire.
Buy 1 dvd player online and you'll continue to get dvd players showing up in ads for months although the problem that these ads are trying to fix is already solved.
So how did we get here?&lt;/p&gt;
&lt;p&gt;One marketing company Invoca said on &lt;a href="https://www.invoca.com/blog/tracking-cookies-are-dead-what-marketers-can-do-about-it"&gt;the topic&lt;/a&gt;,
“For years, marketers have been addicted to using third-party data,
but it wasn’t because third-party data was the most effective way to reach their target customers.
Actually, it was because that data was just so easy for them to access and execute short-term campaigns."
And we're inclined to agree.&lt;/p&gt;
&lt;p&gt;We have been operating the EthicalAds network for almost 2 years now and have achieved our highest revenue month to date just last month in March,
all without ever using any user tracking.
By matching developers with ads relevant to their interests, here and today, based on what they're currently reading
we can garauntee our advertisers connect not only with the right &lt;a href="https://www.ethicalads.io/our-audience/?ref=content-as-intent"&gt;software developer audience&lt;/a&gt;,
but more importantly, reach those valuable potential customers right when they're grappling the problem that you're trying to solve.
When developers posses a problem, they use the EthicalAds network to find answers and thus posses the intent to try your solution.&lt;/p&gt;
&lt;h2 id="would-you-like-to-learn-more"&gt;Would you like to learn more?&lt;/h2&gt;
&lt;p&gt;Ready to reach your intended audience when they need you most?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.ethicalads.io/advertisers/?ref=content-as-intent"&gt;Launch your campaign today!&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><category term="posts"/><category term="content-targeting"/><category term="advertisers"/><category term="marketing"/><category term="intent"/></entry><entry><title>EthicalAds Newsletter - March 2022</title><link href="/blog/2022/04/ethicalads-newsletter-march-2022/" rel="alternate"/><published>2022-04-12T00:00:00-07:00</published><updated>2022-04-12T00:00:00-07:00</updated><author><name>Ra Cohen</name></author><id>tag:None,2022-04-12:/blog/2022/04/ethicalads-newsletter-march-2022/</id><summary type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;These are the major features we released in the last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Launched semi-automatic campaign wrap-up emails. Advertiser's now …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;These are the major features we released in the last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Launched semi-automatic campaign wrap-up emails. Advertiser's now get a one glance view of any campaigns that have ended, campaigns which are currently running, and a 1 reply ask to make re-ups easier than ever!&lt;/li&gt;
&lt;li&gt;Expanded our &lt;a href="https://www.ethicalads.io/advertiser-guide/?ref=newsletter"&gt;Advertiser's Guide&lt;/a&gt; to include more examples of great ads.&lt;/li&gt;
&lt;li&gt;Updated our &lt;a href="https://www.ethicalads.io/privacy-policy/?ref=newsletter"&gt;Privacy Policy&lt;/a&gt; to explicitly mention our usage of 3rd party analytics platform, Plausible.&lt;/li&gt;
&lt;li&gt;Improved our interface with the PSF expanding our &lt;a href="https://www.ethicalads.io/sponsorship-platform/?ref=jan-newsletter"&gt;Sponsorship Management Platform&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our &lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt; and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="march-advertising-stats"&gt;March advertising stats&lt;/h2&gt;
&lt;p&gt;In March 2022:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$31,749.65&lt;/strong&gt; for our publishers.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;118 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;14,605,352&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;March continued to pick up steam and resulted in even more revenue for our publishers.
We also expanded our network adding 10 more publishers in March alone!&lt;/p&gt;
&lt;h2 id="tricky-bits"&gt;Tricky bits&lt;/h2&gt;
&lt;p&gt;We're on track to be sold out in North America and Europe by the end of April!
This is great news for our publishers as it means we're able to pay them more money for their traffic.
Our attention now turns back to acquiring more publishers and expanding our network to accommodate all of our advertisers' campaigns.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reworking our topic-detection infrastructure and algorithm in our server.&lt;/li&gt;
&lt;li&gt;Highlighting our 10% discount on ad buys over $3000 in the flight report page.&lt;/li&gt;
&lt;li&gt;Building more information about pricing into our ad server, so we can work towards automated self-serve re-up campaigns.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/></entry><entry><title>EthicalAds Newsletter - February 2022</title><link href="/blog/2022/03/ethicalads-newsletter-february-2022/" rel="alternate"/><published>2022-03-14T00:00:00-07:00</published><updated>2022-03-14T00:00:00-07:00</updated><author><name>Ra Cohen</name></author><id>tag:None,2022-03-14:/blog/2022/03/ethicalads-newsletter-february-2022/</id><summary type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;These are the major features we released in the last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href="https://www.ethicalads.io/our-audience/?ref=newsletter"&gt;About Our Audience&lt;/a&gt; page now features …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;These are the major features we released in the last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href="https://www.ethicalads.io/our-audience/?ref=newsletter"&gt;About Our Audience&lt;/a&gt; page now features a snazzy graph depiting the volume of our traffic for each topic.&lt;/li&gt;
&lt;li&gt;Rolled out the &lt;a href="https://www.ethicalads.io/blog/2022/03/floating-ad-placements-in-our-ad-client/?ref=newsletter"&gt;floating ad placement&lt;/a&gt; to more domains on Read the Docs.&lt;/li&gt;
&lt;li&gt;Optimized our aggregation algorithms to keep us informed regarding our network and traffic more rapidly than ever.&lt;/li&gt;
&lt;li&gt;We made a number of performance optimizations to keep our ads serving as fast as possible.&lt;/li&gt;
&lt;li&gt;We rolled out a change to use Cloudflare's geolocation in our ad targeting. This seemed a better way to keep up-to-date and also to avoid billing for ads where the geolocation can't be determined (eg. Tor).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our &lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt; and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="february-advertising-stats"&gt;February advertising stats&lt;/h2&gt;
&lt;p&gt;In February 2022:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$$31,060.46&lt;/strong&gt; for our publishers.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;108 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;15,283,991&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Despite being 10% shorter than January, our revenue increased by 1.67% in February!
This puts us  on track for a great March.
Our &lt;a href="https://www.ethicalads.io/sponsorship-platform/?ref=jan-newsletter"&gt;Sponsorship Management Platform&lt;/a&gt; Beta also
once again served over &lt;strong&gt;2,500,000&lt;/strong&gt; sponsored logo placements in February.&lt;/p&gt;
&lt;h2 id="tricky-bits"&gt;Tricky bits&lt;/h2&gt;
&lt;p&gt;We're still slightly undersold in February but making gains everyday.
March is on track to beat February but in order to really set us over the top,
we're trying to close more globally targeted campaigns.
The EthicalAds audience extends all around the globe!
Getting new and exciting tools in front of developers that actually help them solve problems
they're working on right now, is always exciting.
Filling our global traffic with good offers is where we have the most room to grow in this capacity of serving our community.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reworking our topic-detection infrastructure and algorithm in our server.&lt;/li&gt;
&lt;li&gt;Highlighting our 10% discount on ad buys over $3000 in the flight report page.&lt;/li&gt;
&lt;li&gt;Expanding our advertiser's guide with even more examples of great ads.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/></entry><entry><title>Floating Ad Placements in our Ad Client</title><link href="/blog/2022/03/floating-ad-placements-in-our-ad-client/" rel="alternate"/><published>2022-03-08T00:00:00-08:00</published><updated>2022-03-08T00:00:00-08:00</updated><author><name>David Fischer</name></author><id>tag:None,2022-03-08:/blog/2022/03/floating-ad-placements-in-our-ad-client/</id><summary type="html">&lt;p&gt;A couple of months ago, we began testing a new feature in our ad client
that enabled users to quickly …&lt;/p&gt;</summary><content type="html">&lt;p&gt;A couple of months ago, we began testing a new feature in our ad client
that enabled users to quickly and easily add a floating ad placement
to their site without having to write custom code.
Today, we're announcing this feature is available to any publisher.&lt;/p&gt;
&lt;h2 id="floating-placements-perform"&gt;Floating placements perform&lt;/h2&gt;
&lt;p&gt;This new placement has been running about 10% of Read the Docs' ad traffic
and all of the traffic on Read the Docs' &lt;a href="https://docs.readthedocs.io/en/stable/"&gt;own documentation&lt;/a&gt;.
So far, the data has been very promising with ads leading to clickthroughs 31% more than our normal placement.
Having ads that work without resorting to either personalized tracking
or being intrusive is our core mission.
Better performing ads result in happier advertisers and more money in independent publishers' pockets.&lt;/p&gt;
&lt;h2 id="usage"&gt;Usage&lt;/h2&gt;
&lt;p&gt;This feature is available to any publisher who wants to use it
by setting the &lt;code&gt;data-ea-style="stickybox"&lt;/code&gt; attribute on their ad placement.
For very wide screens, this will cause the advertisement to be in a dismissable
box in the lower right corner (this can be styled with CSS).
For screens below ultra wide, the ad will be a standard inline ad placement.&lt;/p&gt;
&lt;p&gt;A number of publishers had requested this feature or had built it themselves
for their own site and we wanted to have a base implementation available for all our publishers.
See our &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/#stickybox"&gt;full documentation&lt;/a&gt; on the feature for details.&lt;/p&gt;
&lt;p&gt;If there are features you're interested to see in our ad client,
please &lt;a href="/contact/"&gt;let us know&lt;/a&gt;.&lt;/p&gt;</content><category term="posts"/><category term="ad-client"/></entry><entry><title>EthicalAds Newsletter - January 2022</title><link href="/blog/2022/02/ethicalads-newsletter-january-2022/" rel="alternate"/><published>2022-02-10T00:00:00-08:00</published><updated>2022-02-10T00:00:00-08:00</updated><author><name>Ra Cohen</name></author><id>tag:None,2022-02-10:/blog/2022/02/ethicalads-newsletter-january-2022/</id><summary type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;These are the major features we released in the last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In the ad server, we've added tighter …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;These are the major features we released in the last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In the ad server, we've added tighter Stripe integrations for our advertisers to view
  previous invoices.&lt;/li&gt;
&lt;li&gt;We also revamped our keyword aggregation algorithms to run much faster and more reliably.&lt;/li&gt;
&lt;li&gt;A publisher's view rate is now displayed in their publisher portal as a key indicator of their placement quality. View rate is the number of times an ad is viewed, which is higher when it's more visible on the page. It will likely never be 100%, since some users will close the browser after requesting an ad, but before it is displayed.&lt;/li&gt;
&lt;li&gt;Upgraded to Python 3.8 along with many other small bug fixes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our &lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt; and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="january-advertising-stats"&gt;January advertising stats&lt;/h2&gt;
&lt;p&gt;In January 2022:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$30,543.39&lt;/strong&gt; for our publishers.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;110 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;13,326,966&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Our holiday slump mildly carried over into January
resulting in 2% less paid views and 4% less ad revenue.
On the plus side, our &lt;a href="https://www.ethicalads.io/sponsorship-platform/?ref=jan-newsletter"&gt;Sponsorship Management Platform&lt;/a&gt; Beta
served over &lt;strong&gt;2,700,000&lt;/strong&gt; sponsored logo placements in January.&lt;/p&gt;
&lt;h2 id="tricky-bits"&gt;Tricky bits&lt;/h2&gt;
&lt;p&gt;For the first time in 6 months, our current largest hurdle to growth
is expanding our advertisers and their campaigns.
We have available ad inventory across all regions.
This is partly an aftershock of advertisers taking a break during the holidays
and amplified by the fact that some of our larger advertisers
manually split their campaigns between domains on the EthicalAds network.
Thus, some of our sites have consistently high Fill Rates (&amp;gt;80%) whereas
others flunctuate wildly between 40-90% based on the amount of daily traffic.
We're happy to report that we're starting several new campaigns in February.
Thus February is already on track to beat January
in terms of both views and publisher revenue.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reworking our topic-detection infrastructure and algorithm in our server.&lt;/li&gt;
&lt;li&gt;Highlighting our 10% discount on ad buys over $3000 in the flight report page.&lt;/li&gt;
&lt;li&gt;New graphics summarizing the volume of views and popular topics across our network.&lt;/li&gt;
&lt;li&gt;Rolling out the floating ad placement to more domains on Read the Docs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/></entry><entry><title>EthicalAds Newsletter - December 2021</title><link href="/blog/2022/01/ethicalads-newsletter-december-2021/" rel="alternate"/><published>2022-01-17T00:00:00-08:00</published><updated>2022-01-17T00:00:00-08:00</updated><author><name>Ra Cohen</name></author><id>tag:None,2022-01-17:/blog/2022/01/ethicalads-newsletter-december-2021/</id><summary type="html">&lt;p&gt;Happy New Year! December was a shorter month for us at EthicalAds so this update will be short and sweet …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Happy New Year! December was a shorter month for us at EthicalAds so this update will be short and sweet.&lt;/p&gt;
&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;These are the major features we released in the last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Debuted the beta for our &lt;a href="https://www.ethicalads.io/sponsorship-platform/"&gt;sponsorship platform&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Released our &lt;a href="https://www.ethicalads.io/prospectus/ethicalads-advertiser-prospectus.pdf"&gt;advertising prospectus&lt;/a&gt; for 2022.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our &lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt; and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="december-advertising-stats"&gt;December advertising stats&lt;/h2&gt;
&lt;p&gt;In December 2021:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$31,782.17&lt;/strong&gt; for our publishers.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;102 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;13,654,617&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As expected, our views did decrease precipitously during the holidays (down around 40% from November),
but our revenue only decreased by 8% over the same time.
This was due mostly to some large, inexpensive campaigns wrapping up
in addition to launching some highly targeted campaigns with a higher avergae CPM.&lt;/p&gt;
&lt;h2 id="tricky-bits"&gt;Tricky bits&lt;/h2&gt;
&lt;p&gt;Onboarding new publishers remains our largest hurdle to growth.
We're attempting to combat this by creating and sharing interesting new content,
like our first &lt;a href="https://www.ethicalads.io/blog/2022/01/publisher-spotlight-series-ido-shamun-from-dailydev/"&gt;publisher interview&lt;/a&gt; with the creator of daily.dev Ido Shamun.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;Not many items on our roadmap were changed in the December flurry but
we are conducting exciting research into incorporating more complex natural language processing methods as a part of our decision engine.&lt;/p&gt;
&lt;p&gt;The major features in our upcoming roadmap:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improved keyword extraction occurring in the ad server as opposed to the ad client.&lt;/li&gt;
&lt;li&gt;More intuitive graphs in the ad server for advertisers and publishers.&lt;/li&gt;
&lt;li&gt;Adding view time reporting to ensure high quality views are counted as such.&lt;/li&gt;
&lt;li&gt;Highlighting our 10% discount on ad buys over $3000 in the flight report page.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/></entry><entry><title>Publisher Spotlight Series: Ido Shamun from Daily.dev</title><link href="/blog/2022/01/publisher-spotlight-series-ido-shamun-from-dailydev/" rel="alternate"/><published>2022-01-06T00:00:00-08:00</published><updated>2022-01-06T00:00:00-08:00</updated><author><name>David Fischer</name></author><id>tag:None,2022-01-06:/blog/2022/01/publisher-spotlight-series-ido-shamun-from-dailydev/</id><summary type="html">&lt;figure&gt;
    &lt;figcaption&gt;Listen to this interview:&lt;/figcaption&gt;
    &lt;audio controls src="/audio/publisher-spotlight-ido-shamun-dailydev.mp3"&gt;
            Your browser does not support the &lt;code&gt;audio&lt;/code&gt; element.
    &lt;/audio&gt;
&lt;/figure&gt;

&lt;p&gt;&lt;em&gt;This is part of a new publisher spotlight …&lt;/em&gt;&lt;/p&gt;</summary><content type="html">&lt;figure&gt;
    &lt;figcaption&gt;Listen to this interview:&lt;/figcaption&gt;
    &lt;audio controls src="/audio/publisher-spotlight-ido-shamun-dailydev.mp3"&gt;
            Your browser does not support the &lt;code&gt;audio&lt;/code&gt; element.
    &lt;/audio&gt;
&lt;/figure&gt;

&lt;p&gt;&lt;em&gt;This is part of a new publisher spotlight series where we highlight publishers
using EthicalAds and help them tell their story.
This first episode is with Ido Shamun from &lt;a href="https://daily.dev"&gt;Daily.dev&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;David: Hello and and welcome to sort of the first episode of an EthicalAds podcast.
I'd like to introduce my guest who is Ido Shamun, one of the founders of Daily.dev,
which aims to be every developers homepage. Welcome Ido.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ido: Hey David, it's great to be here. Good luck with your new series.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Thanks. It might be a very short series, but we'll see how it goes.
So firstly I'd love to get in your words, what is Daily.dev?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;So Daily.dev is a platform for developers.
We aggregate news, developer news from all over the web. Hundreds of sources.
We personalize it for the developers so they get only the content they are interested in.
We've been running this product for like three years already,
four years and it's growing growing pretty great so far.
Um, we've reached 100,000 weekly active users,
almost 60,000 users every day. So it's going pretty good. I would say.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;That's a lot of daily actives.
Yeah, it sounds, it sounds like it's going really well. How'd you get started?
What made you get started on this?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;So we started as a side project honestly.
We started it as out of a need that we
had in our engineering team back in our previous company.
So we had like, we had this slack bot that kept sending us notifications,
on new content from different sources.
And we thought, maybe we can build something out of it and create something for
other developers so they will be able to enjoy it as well.
So we started slowly releasing the first version,
someone entered us on ProductHunt slowly the
world of mouth increased and at some point,
we decided to go full on on this project and we founded the company and now
we've been growing the team as well, so yeah.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;That's fantastic. That sounds like everything's going really well.
What sort of tech stack are you looking at with with Daily.dev?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;So mainly we look at NodeJS, Javascript, React
for the front end and we have several,
services written in Golang and Python.&lt;/p&gt;
&lt;p&gt;Really depends on the task at hand. Python is very great at
scraping and Golang for performance, critical missions,
but mostly JavaScript is our go to language&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sure, that's cool.
The developer homepage has been sort of like the
goal of a lot of products in the past,
Maybe google reader, but definitely iGoogle. I remember that service.
I was a user of iGoogle which was sort of like a
developer homepage gave you some features like that.
Maybe even Reddit.
Reddit could be considered the homepage for for people.
What sets Daily.dev apart from these other things.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;So first of all,
I think the fact that we are aiming only for developers really enables
us uh to fit our solution to the audience to the community.
Because if we wanted, for example to aggregate news
for the general audience,
then the product would probably end up being something totally different.
So the fact that we're doing it for developers gives us,
a better a very chance to succeed in our mission.
We also choose some unique way to implement this vision,
which is a browser extension.
So we we have both a browser extension and a web app that we built later on,
but we started as a browser extension that overrides your new tab.
So we are actually on page once you install us.
So every time you open a new tab, you see the news for developers like you.
You can choose and get whatever you want out of it.
And maybe even comment or up-vote the
articles you love and contact with other developers.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;That's really cool.
By occupying the new tab space, I feel like every developer has got like 50 tabs and sometimes you close them,
you declare tab bankruptcy and go back to go back to square zero for the next day.
Some people, some people don't declare bankruptcy for a couple weeks.
By doing that, you must be doing like a ton of traffic,
You talked a little bit about your daily
actives and your monthly actives or weekly actives.
What kind of total traffic are you doing even excluding duplicates?
So, you know, not just users, but like total traffic. You must be doing a ton.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Yes, a total traffic in around 30 million page views per month.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;That's a lot.
I think going back to sort of like my work and Read the Docs,
that's probably about where Read the Docs is
and Read the Docs is massive and hosts tons of projects.
So you're you're handling an absolute ton of traffic. That's really cool.
II also think it's interesting that
you talked about focusing really on developers.
You know, that that's sort of something that we at EthicalAds.
That that's exactly what we're doing, right.
You know, we're not super innovative in those terms.
We're just another ad network,
but by really focusing on developers and the
goals of developers and what developers want.
I think that
there's almost always a niche you can carve out for yourself. So that's really cool.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;And today developers are not that niche even.
It's a very big community in a very big audience.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yeah, true, true. Yeah.
This is going to be the simple question: how does Daily.dev make money?
How do you how do you monetize your traffic and audience.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;So obviously we we run ads. This is exactly the reason we're doing this interview.
But for us we knew from the first moment that this product should be free.
We don't like the paywall thing of content,&lt;/p&gt;
&lt;p&gt;So we have to figure out a different way
to make money and make this project sustainable.
So we saw advertisements as a potential monetization channel,
which for now works great.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yeah, that's that's really cool.
You know, Read the Docs had a similar issue with sustainability early in our history,
and ads really made sense for us as well.
It sort of grows as your audience grows,
typically as your audience is growing your server costs
are growing and all sorts of things are growing.
So having something that that scales with that is good rather than
things that don't like user donations sometimes
don't scale with the size of the project.
Sometimes they do, sometimes they scale in weird ways.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Now, one of the interesting questions and part of the reason
why I think it's really interesting to talk to you
from like the EthicalAds business perspective is you show
a mix of EthicalAds and ads from Carbon,
another developer focused ad network.
Why did you go that route instead of sticking with a single ad network?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I think the same reason as a network
looks for many publishers and many advertisers you don't want
to be locked to one single network,
that can theoretically do whatever they want with you, right?
Because I'm tied, I'm bound to this one network.
Now if if the prices go up, I have nothing to do with it.
If something bad happens and suddenly there have no advertisers there,
again in this situation I can't do anything.
Where if I try to work with several networks, then I reduce my risk as a business
and get a more stable monetization channel.&lt;/p&gt;
&lt;p&gt;We also for some clients do direct deals if they ask us for something very custom.
So for Daily.dev, we actually have three ways to to sell ads.
So it's through Carbon, through Ethical and through direct deals.
We also believe that, you know, competition is very good for everyone.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yeah, good.
We are happy to compete with Carbon as far as we compete.
We're both sort of tiny when you compare us with say something like Google.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Now in the past you used CodeFund.
Do you want to talk a little bit about that?
What happened to CodeFund?
I think Eric Barry who was sort of the founder of Code Fund, he probably talked to you a lot,
I talked to Eric a lot too. How did you like working with CodeFund?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Eric Berry is still a very good friend even though you know we went our
separate ways in some way after he had to close CodeFund.
But I think CodeFund is also some of the reason we are doing this mix [with Carbon and EthicalAds] after
we experienced the shutdown of the network that we work with,
we saw the impact on our revenue, so we knew we had to tackle it in some way.&lt;/p&gt;
&lt;p&gt;But the experience with CodeFund was pretty great,
The people behind it and what they did was truly amazing.
Unfortunately things have turned out the way they turned,
but for us it was a real joy.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yeah.
Eric Berry was fantastic when he was working on CodeFund.
I mean, he's still fantastic today.
I still talk to Eric from time to time. I count him as a friend.
The privacy preserving ad space
is pretty small and it was sad for Eric to leave that space.
But at the same time, very good for us as that sort of helped us launch our network.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Notably you don't have Google ads in the mix,
Were you just are you just happy enough with the existing mix of two
or three if you count your own direct sales or was there a particular reason you didn't want Google ads?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Actually there was a particular reason we don't want advertisements that
don't have to do anything with developers to be on our feed.
For example, I don't want to see Nike shoes on our feed.
Not that I have anything against Nike shoes, but it's just not a tool for developers.&lt;/p&gt;
&lt;p&gt;I want our community members to feel feel at home and don't feel someone is trying to sell to them.
Whenever I get a chance to talk to someone who uses this Daily.dev,
they always mention that they don't even know that it's ads on there.
It's very native to their experience.
You obviously know because you sell the ads,
but you can see tools like MongoDB, Slack, CircleCI all of those companies and services that developers look for.
Whereas in GoogleAds,
you can get something based on your recent Google search,
so it really doesn't fit our audience?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yeah, I completely understand. That's that's feedback that we do get.
You're not the first person to give me that feedback.
In fact on Read the Docs, we thought something similar.
We didn't want to show ads based on your past Google
searches or based on retargeted traffic or something like that,
even though as somebody who sort of sells advertising for a living,
I know that those work.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I know that those work decently well for advertisers, but it can sort of take you out of the moment.
If you're reading a very tech heavy site or something like that and then suddenly you get an ad
for Nike shoes because you bought shoes a week ago that can sort of take you out of it.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Yeah, we also prefer --
so someone coined the term context aware ads --
I think where we put the the ad based on the content you see,
not necessarily the content you read [previously].
So, although right now we are doing kind of a mix between the two,
we want to we want to slowly shift to context aware,
which has obviously less tracking and less everything that has to
do with privacy.
If you read a web development article,
all I have to do is target based on the article which is about web development,
I don't need to know anything about you,
which immediately removes all the privacy concerns out of the equation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;You're basically pitching my business,
This is fantastic.
That's sort of one of the things that we really
specialize in is having really targeting ads to content.
Obviously we still have some big advertisers who buy everything developer related.
But we have advertisers who just want to buy
maybe back end web development or advertisers who just
want to buy Blockchain or advertisers who just want
to buy like data science or something like that.
We definitely believe in sort of like context targeted ads
over behavioral targeted or past action targeted ads.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;It's interesting to hear you talk about that because normally
that's sort of like on the ad networks problem.
But I guess if you're selling your own ads some of the time that that becomes [your problem].
You're going to have advertisers say, "hey, I want to buy Daily.dev,
but just this niche, not all developers".&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We are a general purpose tool for developers.
It's not like we are a data science tool.
If we were a data science tool or part of the data science community,
I want to show only data science ads.
In our case, every user has different preferences and
is looking for something different.
So although you own the network and you sell the ads,
I still need to be able to indicate to you as a network what kind of
ad I need in this case because we are more flexible than just the usual [publisher].&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yeah.
You are you you definitely delve a little deeper
into that than than most of our publishers.
That's for sure.
But that's also what makes it kind of interesting to talk to you about this.
So that that's really cool.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Have you had an advertiser reach out to you and ask you specifically "I want this niche".
Is that a common occurrence or has that happened a few times or tell me about that.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This is especially the case when they reach out to us out for direct deals.
Otherwise we direct them to you or to Carbon depending on the customer,
because closing a direct deal for us is a lot of overhead.
So sometimes we prefer to pay the rev share and just
direct the client to you.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sure. I understand.
It does come down to it.
When you're building a site right?
If you can handle that relationship efficiently yourself,
handle your own sponsorships or your own deals,
you're gonna make more money than you would
with handing it off to ads, but it also is a distraction.
So it is sort of a trade off.
I think there is sort of a threshold sometimes where sites get big enough,
where they're big enough to handle some of their own deals.
That's probably about where you are.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Some sites are just too small for that.
There's just no way that they could handle the overhead of a deal like that.
That's interesting.
You're sort of talking exactly to sort of like the life cycle.
As publishers get big.
Once the publisher is enormous,
they don't need somebody like us or even somebody like Carbon.
Yeah, there's definitely sort of a mix in this size.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I think the journey is still very long until we just this point.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sure. Us too.
What has the revenue from advertising sort of enabled you to do for Daily.dev?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It enabled us to go full on on this project without
risking our personal life in a way because we were able to get a decent salary
at the time we started.
It enables us now to hire new team
members and to be able to build the product much faster.
You touched it at first, but having the ads really enables us to focus on growth
rather than monetization because it grows end by end.
So if you grow the community,
the monetization channels will grow as well and we don't have to think about churn
and conversion rates and stuff like this.
We can really focus on delivering great value to the users and just increase the awareness to the product.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cool. Yeah, that's fantastic.
What are some new features that are coming for Daily.dev?
If you could talk about them? I don't want spoilers if you don't want to spoil it.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We're pretty open about the things we build and we have also the change log
that we keep pumping with news like almost every week.
So this is obviously a great place to check if you want to see what we released before.
But anyway, what's upcoming next is we are planning a revamp of our layout.
The grid will remain the same,
but you will see a new sidebar with tons of new options for navigation and quick links and everything you need.
So the user interface is going to change pretty drastically.
And we're also looking for ways to
increase the communication between different users.
We're thinking about letting the community publish their own [content].
by submitting like HackerNews or connecting with each others in a way of two.
So 2022 will probably be around community and networking with other developers on the platform.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;That's awesome.
Hopefully 2022 is a big year.
It's coming up. Every time I say that I sort of scare myself a little bit.
I know it's like just two weeks away&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I guess we're recording this in December,
although it probably won't go live until January, just a meta discussion,
breaking down that third wall.
Before I let you go,
is there is there anything else you want to add,
anything about EthicalAds, anything not add related. Really anything.
Do you want to give a shout out to anybody?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Looking at everything that's going on right now with the developers landscape,
this is a great time to be a developer.
Everyone is interested in developer tools and making the life of developers
much easier and simpler.
I really appreciate the fact that
I have the chance to serve such a great community and I hope I will
keep doing it for the upcoming years and
I'm so grateful to have great partners like you.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Thank you very much. You know, I totally agree with you.
It's a great time to build a product.
That that's exactly what we're doing. That's exactly what you're doing.
It's fantastic.
It's probably the best time in history to create something new.
So you know that it's a great time to be alive I suppose.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Yeah, it's super easy to create products this day.
You almost need to think only about business logic.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yeah. With all the services out there.
Basically every time I think about Stripe, I'm like, "oh man Stripe's magical".
How could I run a business without Stripe.
There's a Stripe for everything though
like there's a different product for
whatever it is, whatever it is you need to do.
There's something to help you build that.
So yeah, it's truly a great time to be a developer.
It's such like a great positive outlook. I love it.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Thanks a lot Ido for for doing this interview and taking the
time out of your day to talk with me
and answer these questions and everything like that.
I really appreciate it.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Thank you David.&lt;/p&gt;</content><category term="posts"/><category term="publisher-spotlight"/></entry><entry><title>EthicalAds Newsletter - November 2021</title><link href="/blog/2021/12/ethicalads-newsletter-november-2021/" rel="alternate"/><published>2021-12-10T00:00:00-08:00</published><updated>2021-12-10T00:00:00-08:00</updated><author><name>Ra Cohen</name></author><id>tag:None,2021-12-10:/blog/2021/12/ethicalads-newsletter-november-2021/</id><summary type="html">&lt;p&gt;Last month we were able to get the whole ads team together for our first ever in-person EthicalAds meetup!&lt;/p&gt;
&lt;h2 id="new-features"&gt;New …&lt;/h2&gt;</summary><content type="html">&lt;p&gt;Last month we were able to get the whole ads team together for our first ever in-person EthicalAds meetup!&lt;/p&gt;
&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;These are the major features we released in the last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Rolled out our new &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/#placement-style"&gt;floating ad&lt;/a&gt; type for all publishers as well as implemented its usage on Read the Docs' &lt;a href="https://docs.readthedocs.io/en/stable/"&gt;own documentation&lt;/a&gt;. This is an opt-in feature that publishers can choose if they want a floating ad in the corner which is a pretty common setup.&lt;/li&gt;
&lt;li&gt;Added a stripe integration so advertisers can view previous invoices.&lt;/li&gt;
&lt;li&gt;Clarified flight completion/budget remaining progress bar.&lt;/li&gt;
&lt;li&gt;Made some infrastructure improvements to better manage our load and isolate reporting from our live transactional data.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our &lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt; and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="november-advertising-stats"&gt;November advertising stats&lt;/h2&gt;
&lt;p&gt;In November 2021:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$34,679.11&lt;/strong&gt; for our publishers.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;102 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;19,103,581&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Given that November has a US holiday in it,
we expected a drop in revenue and views.
Imagine our surprise to see that our revenue actually increased in November by just over 8%!&lt;/p&gt;
&lt;h2 id="tricky-bits"&gt;Tricky bits&lt;/h2&gt;
&lt;p&gt;The holidays tend to slow down traffic and thus ad views/revenue across the world.
We are expecting a decrease in our key performance metrics as the year wraps up.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improved graphs in the ad server for advertisers and publishers.&lt;/li&gt;
&lt;li&gt;Adding view time reporting to ensure high quality views are counted as such.&lt;/li&gt;
&lt;li&gt;Highlighting our 10% discount on ad buys over $3000 in the flight report page.&lt;/li&gt;
&lt;li&gt;Improved keyword detection in the ad client.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/></entry><entry><title>Graphing Ad Data at EthicalAds</title><link href="/blog/2021/12/graphing-ad-data-at-ethicalads/" rel="alternate"/><published>2021-12-07T00:00:00-08:00</published><updated>2021-12-07T00:00:00-08:00</updated><author><name>David Fischer</name></author><id>tag:None,2021-12-07:/blog/2021/12/graphing-ad-data-at-ethicalads/</id><summary type="html">&lt;p&gt;Respecting user privacy doesn't mean flying blind.
While we don't track or store personal data at EthicalAds,
running an ad …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Respecting user privacy doesn't mean flying blind.
While we don't track or store personal data at EthicalAds,
running an ad network does generate a ton of data!
This is data like the publishers where certain ads perform best
or the best time of day or region to run certain ads.&lt;/p&gt;
&lt;p&gt;However, the data was a bit hard to explore,
let alone creating and telling a compelling story from the data.
It was tied up in PostgreSQL and usually required complex joins
to get at anything meaningful.
We knew the data we were collecting could help us understand and improve our product,
but exploring our data, understanding it,
and presenting it to our advertisers, publishers, or even just ourselves was hard.&lt;/p&gt;
&lt;h2 id="business-intelligence-more-than-just-an-oxymoron"&gt;Business intelligence - more than just an oxymoron&lt;/h2&gt;
&lt;p&gt;We knew we needed a tool to bridge the gap between what we had and what we wanted to know.
Ideally, it could help us with exploration, tracking our key performance indicators,
and presenting data to our advertisers, publishers, and ourselves.&lt;/p&gt;
&lt;p&gt;We gave &lt;a href="https://www.metabase.com/?ref=ethicalads.io"&gt;Metabase&lt;/a&gt; a try
on a glowing recommendation from &lt;a href="https://twitter.com/coderberry"&gt;Eric Berry&lt;/a&gt;,
who previously founded CodeFund, another company dedicated to ethical advertising.
Eric raved about Metabase and used it in CodeFund's product before it shut down.&lt;/p&gt;
&lt;p&gt;Maybe as developers we have an implicit bias against data analysis and BI tools
or maybe it's just me and I hadn't found one I liked.
However, after trying Metabase, I was hooked.
You could explore data with or without SQL, share graphs with coworkers,
and there was an easy and secure way to embed them into our product.
Lastly, this never impacts production since our setup exclusively connects to a read-replica.&lt;/p&gt;
&lt;div class="postimage text-center"&gt;
  &lt;img class="w-75" src="/images/posts/2021-dashboard-screenshot-graphs.png" alt="A screenshot of the EthicalAds dashboard with an embedded Metabase graph"&gt;
  &lt;p&gt;The EthicalAds dashboard with an embedded Metabase graph&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;In about a week, we went from no data stack at all,
to taking visualizations from the exploration stage right into production.
It was easy to explore our data and there was a nice way to embed
graphs and charts directly into our ad server for advertisers and publishers.
It also became an invaluable way to track our business KPIs.
Metabase is the perfect tool for a small team like ours.&lt;/p&gt;
&lt;h2 id="data-we-have-yet-to-explore"&gt;Data we have yet to explore&lt;/h2&gt;
&lt;p&gt;A few months back, we started collecting data on how long an ad is on the screen (we call it "view time").
We think this is a really valuable metric in understanding what leads to clickthroughs
and we think that advertisers will really like it.
Advertisers routinely tell us they love all the data we share with them
and that other networks are far less transparent.&lt;/p&gt;
&lt;p&gt;Over the next couple months, we'll be diving into this and other data.
Hopefully we'll have some great insights to share.&lt;/p&gt;</content><category term="posts"/><category term="graphing"/><category term="business"/><category term="kpis"/></entry><entry><title>EthicalAds providing free analytics with Simple Analytics</title><link href="/blog/2021/11/ethicalads-providing-free-analytics-with-simple-analytics/" rel="alternate"/><published>2021-11-30T00:00:00-08:00</published><updated>2021-11-30T00:00:00-08:00</updated><author><name>Eric Holscher</name></author><id>tag:None,2021-11-30:/blog/2021/11/ethicalads-providing-free-analytics-with-simple-analytics/</id><summary type="html">&lt;p&gt;EthicalAds is excited to be a part of the privacy-first ecosystem.
We provide our publishers a revenue stream without compromising …&lt;/p&gt;</summary><content type="html">&lt;p&gt;EthicalAds is excited to be a part of the privacy-first ecosystem.
We provide our publishers a revenue stream without compromising the privacy of their users,
and we love supporting those sites moving away from any kind of tracking.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Today we're proud to announce that we've partnered with another privacy-first company,
&lt;a href="https://simpleanalytics.com/?ref=ethicalads-blog"&gt;Simple Analytics&lt;/a&gt;,
to enable you to have free privacy-first analytics on your site.&lt;/strong&gt;
They are a great alternative to Google Analytics,
and pair well with &lt;a href="https://www.ethicalads.io/alternative-to-google-ads/"&gt;EthicalAds as an alternative to Google Ads&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="what-is-simple-analytics"&gt;What is Simple Analytics?&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://simpleanalytics.com/?ref=ethicalads-blog"&gt;Simple Analytics&lt;/a&gt; is a privacy-first analytics product.
They provide similar promises to EthicalAds in terms of privacy,
and have a similar audience of developer-focused sites.&lt;/p&gt;
&lt;p&gt;Quoting from &lt;a href="https://simpleanalytics.com/our-promise"&gt;Simple Analytics' Our Promise&lt;/a&gt; page:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We will never collect personal information&lt;/li&gt;
&lt;li&gt;We will never sell your data&lt;/li&gt;
&lt;li&gt;No tracking pixels on our platform&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Because they don't sell your data,
they have to charge money to make the business work.
We thought it was a shame that price would be a barrier to making the web more private,
so we came up with a partnership.&lt;/p&gt;
&lt;h2 id="funding-the-privacy-first-web"&gt;Funding the privacy-first web&lt;/h2&gt;
&lt;p&gt;Thinking more deeply about our two different businesses,
it seems like we could benefit each other in different ways.
EthicalAds is about generating revenue for publishers, and Simple Analytics is a service those exact same publishers are likely buying.
There are some pretty interesting ways to combine that when you focus on the actual sites using both of our tools.
It really made us start thinking of ways that we could use EthicalAds to power the privacy-first revolution of website publishing.&lt;/p&gt;
&lt;p&gt;Simple Analytics wasn't able to offer a free plan.
Having a 14-day free trial allows users to try it,
but we're excited about being able to offer a permanent free tier for developer-focused sites.&lt;/p&gt;
&lt;h2 id="the-offer"&gt;The offer&lt;/h2&gt;
&lt;p&gt;A Simple Account normally costs $19 a month for 100k page views and $59 for 1 million page views.
In this joint offer,
we would like to give away a free Simple Analytics account for everybody that starts publishing on EthicalAds.
You can also apply if you already have a Simple Analytics subscription.&lt;/p&gt;
&lt;p&gt;To get started apply to be a publisher and mention Simple Analytics in your email:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.ethicalads.io/publishers/#inbound-form" class="btn btn-primary lift mr-0 mr-sm-5 mb-2" data-aos="fade-left" data-aos-delay="200"&gt;
  Apply to be a publisher
&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Offer Terms:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You have a developer-focused site&lt;/li&gt;
&lt;li&gt;You have at least 20,000 paid ad views per month&lt;/li&gt;
&lt;li&gt;You agree with our &lt;a href="https://www.ethicalads.io/publisher-policy/"&gt;Publisher Policy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;This deal is valid until December 31st, 2021, but we will continue to pay for Simple Analytics as long as you are a publisher on EthicalAds&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When you sign up through this deal,
EthicalAds will share your email with Simple Analytics so they can open a free account for you.
When you don't publish anymore EthicalAds will signal Simple Analytics and your plan will convert to a paid account from that moment on.
Simple Analytics will send you a message before they convert your account to paid.&lt;/p&gt;
&lt;/blockquote&gt;</content><category term="posts"/><category term="privacy"/><category term="analytics"/><category term="partnership"/></entry><entry><title>EthicalAds Newsletter - October 2021</title><link href="/blog/2021/11/ethicalads-newsletter-october-2021/" rel="alternate"/><published>2021-11-08T00:00:00-08:00</published><updated>2021-11-08T00:00:00-08:00</updated><author><name>Ra Cohen</name></author><id>tag:None,2021-11-08:/blog/2021/11/ethicalads-newsletter-october-2021/</id><summary type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;These are the major features we released in the last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In the ad server, we now have …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;These are the major features we released in the last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In the ad server, we now have graphs describing key insights for advertisers and publishers.&lt;/li&gt;
&lt;li&gt;We added new landing pages describing our open source ad network and the benefits of being a data science publisher on our network.&lt;/li&gt;
&lt;li&gt;Demoed a new floating ad type on &lt;a href="https://docs.readthedocs.io/en/stable/"&gt;Read the Docs' own documentation&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Added reporting on our ad server so we can know which reports people are engaging with.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our &lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt; and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="october-advertising-stats"&gt;October advertising stats&lt;/h2&gt;
&lt;p&gt;In October 2021:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$32,097.44&lt;/strong&gt; for our publishers.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;102 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;19,714,391&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What's really exciting about October is that although we only had
a 2.5% increase in the number of paid views from September,
in October we saw a 7.5% increase in our paid clicks!
Just over &lt;strong&gt;24,000&lt;/strong&gt; paid ads were clicked in October
As we grow, we can be more selective with our advertisers,
ensuring users on the EthicalAds network see only high quality, relevant ads
that you might actually be interested in.&lt;/p&gt;
&lt;h2 id="tricky-bits"&gt;Tricky bits&lt;/h2&gt;
&lt;p&gt;We continue expanding our network by onboarding new publishers.
To accomplish this, we're focusing on raising the eCPM in a variety of ways.
Firstly we raised the prices this quarter on our highest demand traffic.
Secondly, we're phasing out CPC or Cost Per Click pricing.
This ensures our publishers get paid for their views and
incentivizes our advertisers to craft high performing, attractive ads.&lt;/p&gt;
&lt;p&gt;You can see our progress by observing the increase of our publisher payouts over time:&lt;/p&gt;
&lt;div class="postimage"&gt;
  &lt;img class="w-100" src="/images/charts/2021-october-publisherpayouts.png" alt="Monthly payouts of our publishers over time"&gt;
  &lt;p&gt;Monthly payouts of our publishers over time.&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;If you're looking to monetize your site or indy project
while respecting your audience's privacy,
&lt;a href="/publishers/#inbound-form"&gt;get in touch&lt;/a&gt;!&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improved graphs in the ad server for advertisers and publishers.&lt;/li&gt;
&lt;li&gt;Adding view time reporting to ensure high quality views are counted as such.&lt;/li&gt;
&lt;li&gt;Highlighting our 10% discount on ad buys over $3000 in the flight report page.&lt;/li&gt;
&lt;li&gt;Infrastructure improvements to better manage our load and isolate reporting from our live transactional data.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/></entry><entry><title>Building an Ethical Marketing Funnel</title><link href="/blog/2021/10/building-an-ethical-marketing-funnel/" rel="alternate"/><published>2021-10-19T00:00:00-07:00</published><updated>2021-10-19T00:00:00-07:00</updated><author><name>Ra Cohen</name></author><id>tag:None,2021-10-19:/blog/2021/10/building-an-ethical-marketing-funnel/</id><summary type="html">&lt;h2 id="the-marketing-funnel-problem"&gt;The marketing funnel problem&lt;/h2&gt;
&lt;p&gt;When growing an online business, it's important to consider
where your prospects are coming from and …&lt;/p&gt;</summary><content type="html">&lt;h2 id="the-marketing-funnel-problem"&gt;The marketing funnel problem&lt;/h2&gt;
&lt;p&gt;When growing an online business, it's important to consider
where your prospects are coming from and how to convert these prospects into customers.
One key insight into this conversion comes from observing how your users interact with your site.
Without some understanding of why people click on your page, what they do while they're there,
and how this behavior corresponds to paying customers,
you're at a serious disadvantage when it comes to optimizing your site to grow your business.
Part of this process is building marketing funnel.&lt;/p&gt;
&lt;p&gt;A marketing funnel is a continuous mission of getting, keeping, and growing your customer base
while using technology to meet their needs more efficiently.
However, many implementations of marketing funnels execute this mission
by collecting and hoarding personally identifiable information of individual customers.
This is by no means required by the definition nor is it even necessary
as marketing funnels have existed long before web browser trackers let alone the internet.&lt;/p&gt;
&lt;h2 id="our-specific-business"&gt;Our specific business&lt;/h2&gt;
&lt;p&gt;EthicalAds is a small start-up currently focusing on expanding our userbase which comes in two segments.
We have potential advertisers who want to run new ad campaigns on our ad network and
we have potential publishers who want to host ads on their websites/platforms
in exchange for a lionshare of the generated ad revenue.&lt;/p&gt;
&lt;p&gt;In order to attract new users, we've created a number of advertiser/publisher focused ads
and advertiser/publisher specific landing pages augmenting our general referral sources
like search engines or the "Ad served Ethically" text which runs beneath every ad.
However, we previously had no good way of determining the relative success of these various approaches.
In order to prioritize our time on new ads, landing pages, or other marketing strategies,
we wanted data to guide our decision making to help us meet the needs of our customers efficiently.
In other words, we needed a marketing funnel.
Specifically, we wanted our marketing funnel to be privacy-preserving, open-source, and transparent.
In a word, Ethical.&lt;/p&gt;
&lt;p&gt;To get started we needed two things,  a measurement of a successful conversion and
a way to quantify which marketing methods were leading to the most conversions
while maintaining our must-haves of everything being open-source and not-personally identifying.&lt;/p&gt;
&lt;div class="postimage px-md-10"&gt;
 &lt;img class="w-100" src="/images/posts/2021-marketing-funnel-diagram.png" alt="A diagram of the EthicalAds marketing funnel"&gt;
 &lt;p&gt;Our marketing funnel&lt;/p&gt;
&lt;/div&gt;

&lt;h3 id="defining-success"&gt;Defining success&lt;/h3&gt;
&lt;p&gt;Since there are a variety of onboarding locations that draw new users to our site
such as a tailored landing page from an ad,
a blog post linked from a third party site like HackerNews or Twitter,
or our home page from a search engine,
defining a "success" is trickier than it first seems.
There are some obvious win conditions such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;An advertiser prospect fills out the "contact us" form on the Advertiser page
  which leads to a conversion (new advertiser account and paid invoice)&lt;/li&gt;
&lt;li&gt;A prospective publisher fills out the "contact us" form on the Publisher page
  which leads to a conversion (new publisher account and approved to host paid ads)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;but there are also harder to quantify successes such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;An interested visitor educates themself on Surveilance Advertising in our Learning Hub&lt;/li&gt;
&lt;li&gt;A media-affiliated user fills out the generic "contact us" form&lt;/li&gt;
&lt;li&gt;A potential advertiser or publisher navigates to a page, browses for awhile,
  and then fills out a "contact us" form&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Since this is our first marketing funnel,
we decided to focus on only the first two scenarios as "successes"
which is fairly simple since all of our contact us forms
result in the same "form submitted" page when filled out.
There are some drawbacks to this approach
such as spammy form submissions being considered successes or even
good leads for advertisers/publishers who simply didn't convert all of the way,
but opening a line of dialogue between us and the user seems to be the largest hurdle right now.&lt;/p&gt;
&lt;p&gt;Thus we defined opening a successful channel of communication as a success
even if it doesn't necessarily always result in a conversion.
Our forms contain only relevant information to an individual's request,
and is the only point in our marketing funnel where user PII is collected,
specifically their name and email address so that we may reply to their inquiry.
This alone however does not inform us as to how a user arrived on our site or how they heard about us.
For that we needed analytics.&lt;/p&gt;
&lt;h3 id="open-source-analytics"&gt;Open-source analytics&lt;/h3&gt;
&lt;p&gt;After surveying a variety of open source analytics solutions, we decided to use Plausible.
They have a great article on why one ought to choose &lt;a href="https://plausible.io/vs-google-analytics"&gt;Plausible over Google Analytics&lt;/a&gt;.
With a simple onboarding process, they provide a light weight, open source option to monitoring inbound traffic source statistics
in a privacy-preserving, aggregated format as well as tools for measuring successful conversions
(which we defined as contact form submissions) per traffic source.&lt;/p&gt;
&lt;p&gt;All we had to do was add a distinct &lt;code&gt;?ref&lt;/code&gt; tag for each ad url
to inform Plausible to aggregate the inbounds from that url as traffic from a distinct source.
We also added a &lt;code&gt;?ref&lt;/code&gt; to the 'ads by EthicalAds' link underneath every placement
and try to include them on our content distributions as well.
This identifier is displayed to the user in the url and is in no way personally identifying.
Check the url for this article! Did you see it on twitter or hackernews?
If so, the url should have a &lt;code&gt;?ref=twitter-ethical-funnel&lt;/code&gt; or &lt;code&gt;?ref=hackernews-ethical-funnel&lt;/code&gt; at the end
which will go away once you explore the site as we don't track our users in our ads or locally.&lt;/p&gt;
&lt;p&gt;Now we can A/B test new ads and landing pages for advertisers and publishers
to determine which images, formats, and copy convince users to get in touch with us.
We can also see which types of content are generating not only large quantities of traffic,
but also good resonance traffic comprised of potential advertisers or publishers.&lt;/p&gt;
&lt;p&gt;Being able to determine which ads or articles are generating not only the most traffic or form submissions,
but also are generating the most successes proportionally to the amount of traffic,
enables us to determine where we should spend our time marketing for the most value.&lt;/p&gt;
&lt;p&gt;We've had our funnel up and running for a little over two months now
and are looking forward to sharing some preliminary results with y'all in a follow-up blog post.
If you have any more questions about how we set up our marketing funnel or EthicalAds in general,
please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt;. We always love to hear from you!&lt;/p&gt;
&lt;p&gt;As always, we are thrilled to have you along with us on our journey to build an ethical ad network.&lt;/p&gt;</content><category term="posts"/><category term="marketing"/><category term="privacy"/></entry><entry><title>Do the Ads on your Site Respect Privacy</title><link href="/blog/2021/10/do-the-ads-on-your-site-respect-privacy/" rel="alternate"/><published>2021-10-12T00:00:00-07:00</published><updated>2021-10-12T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2021-10-12:/blog/2021/10/do-the-ads-on-your-site-respect-privacy/</id><summary type="html">&lt;p&gt;As a website owner (a publisher), you take pride in the work you put on the internet.
However, with many …&lt;/p&gt;</summary><content type="html">&lt;p&gt;As a website owner (a publisher), you take pride in the work you put on the internet.
However, with many approaches to online advertising, your users could be sharing more with ad networks than you think.
You know some online advertising collects data about your visitors,
but maybe you aren't quite sure how that works or what you can do to stop it.
Are the ads you're running on your site spying on you and your users?
Here's some red flags:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;External resources:&lt;/strong&gt; Does your ad network allow advertisers to run their own scripts or load resources on your site?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Surveillance tech:&lt;/strong&gt; Does your ad network use things like cross-site cookies, fingerprinting, or other tracking technologies?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Personalized targeting:&lt;/strong&gt; Does your ad network allow targeting that is so specific as to be nearly personal?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cookie warnings:&lt;/strong&gt; Does your ad network recommend you have a cookie warning to comply with privacy regulation?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Data broker:&lt;/strong&gt; Does your ad network make money exclusively from ads? Or are they also selling user data?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Do you know the answers to the questions above for the ads running on your site.
Ask your ad network and see what they say.
Better yet, run a privacy scanner like &lt;a href="https://themarkup.org/blacklight"&gt;Blacklight&lt;/a&gt;
on your site and see what user tracking technologies are running.&lt;/p&gt;
&lt;h2 id="advertiser-provided-cookies-code-or-resources"&gt;Advertiser provided cookies, code, or resources&lt;/h2&gt;
&lt;p&gt;Probably the biggest things to watch out for when selecting an ad network
are advertiser provided resources, code, or cookies.
If an advertiser hosts the images or other resources for an advertisement,
they can cookie and track the users on your site across the web
(and then &lt;a href="/blog/2021/05/how-invasive-ad-targeting-is-bad-for-journalism-and-other-high-quality-publishers/"&gt;show ads to your users more cheaply elsewhere&lt;/a&gt;).&lt;/p&gt;
&lt;div class="postimage"&gt;
  &lt;a href="/images/posts/2021-third-party-resources.png"&gt;
  &lt;img class="w-100" src="/images/posts/2021-third-party-resources.png" alt="An ad network loading third-party resources"&gt;
  &lt;/a&gt;
  &lt;p&gt;An ad network loading third-party resources.&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;This image shows an ad network adding a Google tracking pixel along with the ad image.
This is used for large advertisers who want to have a report of all their ads in a single Google dashboard.
This site owner may not even know that their users are being sent to a third party,
and without looking at the actual HTML it's impossible to tell.&lt;/p&gt;
&lt;p&gt;Even worse than loading a tracking pixel is to run JavaScript code
provided by advertisers.
In addition to being a security nightmare,
this allows for even more exfiltration of data from your site
including some cookie values or logged-in user data displayed on your site.
While common a decade ago, thankfully allowing advertisers to run code on publisher sites
has become rarer today.&lt;/p&gt;
&lt;p&gt;With EthicalAds, we vet all our advertisers
but we still never let them run arbitrary code or cookie users on your site.
We don't save a cookie from our domains either.
Advertising can work without knowing any personal details or past sites you've visited.
With us, you don't need a &lt;a href="/blog/2021/02/can-you-eliminate-annoying-cookie-banners-from-your-site/"&gt;cookie warning banner&lt;/a&gt;
and the ads on your site will already comply with privacy regulation like the GDPR.&lt;/p&gt;
&lt;h2 id="fingerprinting-supercookies-and-other-nefarious-tracking-tech"&gt;Fingerprinting, supercookies, and other nefarious tracking tech&lt;/h2&gt;
&lt;p&gt;Some common browsers like Firefox and Safari already block many third-party cookies.
This is a great step toward a more private web.
However, to "work around" a lack of cookies, some ad networks use fingerprinting
in an attempt to uniquely identify visitors for ad targeting.&lt;/p&gt;
&lt;p&gt;Fingerprinting and other tracking tech can take a few forms but some of the most common are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Browser Fingerprinting:&lt;/strong&gt; &lt;a href="https://ssd.eff.org/en/module/what-fingerprinting"&gt;Browser fingerprinting&lt;/a&gt;,
  is the process of uniquely identifying individual users based on their browser
  and other data about them like their IP address.
  These browser attributes can be anything from how the browser identifies itself
  to settings you've changed to protect your privacy.
  Customizations can make your browser appear unique rather than look like everybody else.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Supercookies:&lt;/strong&gt; So called &lt;a href="https://blog.mozilla.org/security/2021/01/26/supercookie-protections/"&gt;"supercookies"&lt;/a&gt;
  use trackers hidden in other parts of browser like local storage, ETags, or HSTS headers.
  These are not cleared by clearing cookies
  and can potentially identify users uniquely or be used in combination with fingerprinting.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CNAME Cloaking:&lt;/strong&gt; &lt;a href="https://webkit.org/blog/11338/cname-cloaking-and-bounce-tracking-defense/"&gt;CNAME Cloaking&lt;/a&gt;
  involves a publisher setting up a subdomain for an ad tech tracker.
  This can make a third-party cookie look like a first-party cookie and gets around most tracking protection.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Some of these tracking methods are easy to spot.
If you see data from your ad network in local storage, that's a red flag.
However, for some forms of fingerprinting, it happens only on the ad network's servers
and you have no way of knowing.&lt;/p&gt;
&lt;p&gt;EthicalAds doesn't use any fingerprinting technology.
You don't need to trust us. All our code
&amp;mdash; both the &lt;a href="https://github.com/readthedocs/ethical-ad-client"&gt;client&lt;/a&gt; that runs on your site
and the &lt;a href="https://github.com/readthedocs/ethical-ad-server"&gt;server&lt;/a&gt; serving the ads &amp;mdash; is open source.
We don't track users to target them with ads because we're confident in our contextual targeting.&lt;/p&gt;
&lt;h2 id="contextual-targeting-works"&gt;Contextual targeting works&lt;/h2&gt;
&lt;p&gt;Almost all offline advertising from billboards, TV or radio spots, or ads in magazines
use contextual targeting rather than personalized targeting.
This means that a company pays to show a billboard in an area where they believe their customers live or visit.
A relevant ad will appear in a magazine about a related topic or during a TV show about a similar topic
or that has the right audience.
&lt;a href="/advertising-vision/"&gt;Our vision&lt;/a&gt; for advertising is built on this and applies it to the web.&lt;/p&gt;
&lt;p&gt;Advertising doesn't need to track your users to work well both for your site and for advertisers.
Our ads are targeted only on the content of the page where the ad will be displayed and very rough geography.
If you want to monetize your developer-focused site without compromising your audience,
&lt;a href="/publishers/"&gt;join EthicalAds&lt;/a&gt; and help preserve privacy on the web!&lt;/p&gt;</content><category term="posts"/><category term="cookies"/><category term="privacy"/><category term="publishers"/></entry><entry><title>EthicalAds Newsletter - September 2021</title><link href="/blog/2021/10/ethicalads-newsletter-september-2021/" rel="alternate"/><published>2021-10-06T00:00:00-07:00</published><updated>2021-10-06T00:00:00-07:00</updated><author><name>Ra Cohen</name></author><id>tag:None,2021-10-06:/blog/2021/10/ethicalads-newsletter-september-2021/</id><summary type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;These are the major features we released in the last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Our new &lt;a href="https://www.ethicalads.io/prospectus/ethicalads-advertiser-prospectus.pdf"&gt;prospectus&lt;/a&gt; came out.
  We raised …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;These are the major features we released in the last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Our new &lt;a href="https://www.ethicalads.io/prospectus/ethicalads-advertiser-prospectus.pdf"&gt;prospectus&lt;/a&gt; came out.
  We raised the geo-prices in the US and EU in order to combat our overbooking issue and earn more money for our publishers.&lt;/li&gt;
&lt;li&gt;We added a read replica database which improves the performance of our dashboard.&lt;/li&gt;
&lt;li&gt;In the advertiser dashboard, when you copy an advertisement to a new flight, they're ordered by the age of the ad, newest first.&lt;/li&gt;
&lt;li&gt;Now when a 'Contact Us' form is filled out, we ask if they would like to start receiving our newsletter.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our &lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt; and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="september-advertising-stats"&gt;September advertising stats&lt;/h2&gt;
&lt;p&gt;In September 2021:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$31,380.78&lt;/strong&gt; for our publishers.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;103 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;19,238,786&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;September was our best month to date in terms of paid views and revenue!
We had a 12% increase in September's revenue from August which was a 15% increase from July before that.&lt;/p&gt;
&lt;p&gt;Part of our revenue improvements were due to price increases that went into effect over the last quarter
and partially due to selling more of our harder to sell inventory.
Our effective cost per thousand impressions (eCPM) has improved across the board.
The US &amp;amp; Canada eCPM has improved from $2.87 in June to $2.93 in September,
our APAC eCPM went from $0.56 in June to $0.68 in September,
and our EU eCPM went all the way from $2.40 to $2.92 in September.
This means more money in the pockets of our publishers!&lt;/p&gt;
&lt;h2 id="tricky-bits"&gt;Tricky bits&lt;/h2&gt;
&lt;p&gt;We still have the fortunate problem of being overbooked in the US and EU especially,
which has resulted in many of our on-going campaigns falling behind schedule.
We've adjusted our roadmap priorities to focus more heavily on publisher acquisition.
We are also looking into additional ways of managing pricing,
so that we are able to better determine priority of ads across time.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;New landing pages describing our open source ad network and the benefits of being a data science publisher on our network.&lt;/li&gt;
&lt;li&gt;Adding graphs to our advertising dashboard.&lt;/li&gt;
&lt;li&gt;Highlighting our 10% discount on ad buys over $3000 in the flight report page.&lt;/li&gt;
&lt;li&gt;Infrastructure improvements to better manage our load and isolate reporting from our live transactional data.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/></entry><entry><title>EthicalAds Newsletter - August 2021</title><link href="/blog/2021/09/ethicalads-newsletter-august-2021/" rel="alternate"/><published>2021-09-17T00:00:00-07:00</published><updated>2021-09-17T00:00:00-07:00</updated><author><name>Ra Cohen</name></author><id>tag:None,2021-09-17:/blog/2021/09/ethicalads-newsletter-august-2021/</id><summary type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;These are the major features we released in the last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Giving the publisher the ability to turn …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;These are the major features we released in the last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Giving the publisher the ability to turn off/on their own payouts, managing their own payment schedule.&lt;/li&gt;
&lt;li&gt;In the ad client, we shrunk the size of the client by about 40% which results in faster load times.&lt;/li&gt;
&lt;li&gt;We released our Surveillance Advertising informational page to the &lt;a href="https://www.ethicalads.io/surveillance-advertising/"&gt;Learning Hub&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our &lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt; and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="august-advertising-stats"&gt;August advertising stats&lt;/h2&gt;
&lt;p&gt;In August 2021:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$27,913.01&lt;/strong&gt; for our publishers.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;104 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;18,521,177&lt;/strong&gt; paid ad views across the world marking another increase over July's ~14 million views.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We started a number of new global campaigns this month which boosted our paid view count significantly,
although we are still limited by publishers across the network.&lt;/p&gt;
&lt;h2 id="tricky-bits"&gt;Tricky bits&lt;/h2&gt;
&lt;p&gt;We still have the fortunate problem of being overbooked in the US and EU especially,
which has resulted in many of our on-going campaigns falling behind of schedule.
In order to honor our existing advertising flights, we're scheduling out new flights to start in October.
We're also releasing our new prospectus in October, raising the price of these overbooked geos.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adding graphs to our advertising dashboard.&lt;/li&gt;
&lt;li&gt;Adding "view time" statistics to our reporting, so that we can better understand how ads are performing.&lt;/li&gt;
&lt;li&gt;Highlighting our 10% discount on ad buys over $3000 in the flight report page.&lt;/li&gt;
&lt;li&gt;Improved performance of our dashboard, after doing some infrastructure work to improve our databases.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/></entry><entry><title>EthicalAds Newsletter - July 2021</title><link href="/blog/2021/08/ethicalads-newsletter-july-2021/" rel="alternate"/><published>2021-08-18T00:00:00-07:00</published><updated>2021-08-18T00:00:00-07:00</updated><author><name>Ra Cohen</name></author><id>tag:None,2021-08-18:/blog/2021/08/ethicalads-newsletter-july-2021/</id><summary type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;These are the major features we released in the last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In our ad server, we added &lt;code&gt;noopener …&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;These are the major features we released in the last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In our ad server, we added &lt;code&gt;noopener&lt;/code&gt; to our ad links as a security precaution.&lt;/li&gt;
&lt;li&gt;Our ad server now raises a warning on link redirects and errors when advertisers are creating an ad, to make sure it isn't an error in the URL.&lt;/li&gt;
&lt;li&gt;Also in our ad server, we created actions to allow our staff to handle
  the creation and customization of new advertising flights.&lt;/li&gt;
&lt;li&gt;On our website, we created our first iteration of an &lt;strong&gt;ethical&lt;/strong&gt; marketing funnel
  by implementing a transparent, human-readable first-person cookie,
  running the open-source, privacy-friendly &lt;a href="https://plausible.io/vs-google-analytics"&gt;Plausible analytics&lt;/a&gt;,
  and creating our first ad-specific landing page for &lt;a href="https://www.ethicalads.io/publishers/topics/python/"&gt;prospective Python publishers&lt;/a&gt;.
  Lookout for a blog post on how we did it, coming out soon!&lt;/li&gt;
&lt;li&gt;Also on our website, we launched our &lt;a href="https://www.ethicalads.io/blog/2021/07/ethicalads-publisher-referral-offer-july-2021/"&gt;Publisher Referral Offer&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our &lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt; and &lt;a href="https://ethical-ad-client.readthedocs.io/en/latest/changelog.html"&gt;ethical-ad-client changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="july-advertising-stats"&gt;July advertising stats&lt;/h2&gt;
&lt;p&gt;In July 2021:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$23,981.08&lt;/strong&gt; for our publishers.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;105 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;16,257,531&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In July we undertook an effort to ensure the high quality of our network,
we removed a number of under-performing publishers
and onboardeded some new publishers, though we continue to &lt;a href="https://www.ethicalads.io/blog/2021/07/ethicalads-publisher-referral-offer-july-2021/"&gt;look for more&lt;/a&gt;!
We also launched a few globally-targeted ad-buys which resulted in a sizable increase of views from June's ~14.6 million paid views.&lt;/p&gt;
&lt;h2 id="tricky-bits"&gt;Tricky bits&lt;/h2&gt;
&lt;p&gt;We are still verging on max capacity with regards to ad inventory specifically in the US and EU.
We focused our efforts this month are marketing in order to attract new publishers.
We rolled out our new marketing funnel and were even featured on
&lt;a href="https://news.ycombinator.com/item?id=27987650"&gt;HackerNews&lt;/a&gt;
&lt;a href="https://news.ycombinator.com/item?id=27975685"&gt;twice&lt;/a&gt;.
Unfortunately, determining the success of these new endeavors
takes time as we don't want to change too many variables at once,
lest we not know which avenues had the greatest impact.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Implementing a view time metric for our ads to ensure a fair system for counting valid views
  as well as provide a metric for publisher quality.&lt;/li&gt;
&lt;li&gt;Releasing our Surveillance Advertising informational page to the Learning Hub.&lt;/li&gt;
&lt;li&gt;Highlighting our 10% discount on ad buys over $3000 in the flight report page.&lt;/li&gt;
&lt;li&gt;Updating our Publisher Guide with new examples of superior placements
  and some explanation as to why they are so desirable.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/></entry><entry><title>Handling 100 Requests Per Second with Python &amp; Django</title><link href="/blog/2021/07/handling-100-requests-per-second-with-python-django/" rel="alternate"/><published>2021-07-27T00:00:00-07:00</published><updated>2021-07-27T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2021-07-27:/blog/2021/07/handling-100-requests-per-second-with-python-django/</id><summary type="html">&lt;p&gt;&lt;strong&gt;In a followup post, we discuss a traffic spike to &lt;a href="/blog/2023/09/what-happens-when-elon-musk-tweets-a-link-to-your-service/"&gt;200 requests per second&lt;/a&gt;!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Usually, our blog focuses on advertising …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;strong&gt;In a followup post, we discuss a traffic spike to &lt;a href="/blog/2023/09/what-happens-when-elon-musk-tweets-a-link-to-your-service/"&gt;200 requests per second&lt;/a&gt;!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Usually, our blog focuses on advertising, privacy,
and our journey in building a business around the intersection of the two.
This post is going to go under the hood and discuss some of the technology and scaling challenges
we ran into with our ad server.&lt;/p&gt;
&lt;div class="postimage"&gt;
 &lt;img class="w-100" src="/images/posts/2021-adserver-performance-throughput.png" alt="Ethical ad server throughput on a normal week"&gt;
 &lt;p&gt;Normal throughput of our ad server peaks at about 3,500 requests per minute which is ~60 requests per second. The small drops are nights and the big ones are weekends.&lt;/p&gt;
&lt;/div&gt;

&lt;h2 id="breaking-out-the-ad-server"&gt;Breaking out the ad server&lt;/h2&gt;
&lt;p&gt;Before late 2019, ads on Read the Docs were served by a Django app that was actually part of the Read the Docs code line.
We knew we wanted to break it out into a separate service to prepare for launching our ad network.
However, the process was a bit tricky since we knew that on day one this new server
would need to handle around 20-30 requests per second and traffic spikes could take that number to 60 or higher.
To prepare for this, we relentlessly focused on our app performance.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Anecdotally, Python and Django are not considered the most performant language and framework.
We didn't want to do a from-scratch rewrite, however, in a more performant language.
There was also a strong desire to use a similar setup to Read the Docs
as that's what our small team (of 5 at that time) knew well.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;To improve the performance, we actually spent quite a bit of time digging through New Relic traces
and going over each Postgres query in &lt;a href="https://django-debug-toolbar.readthedocs.io/en/latest/"&gt;Django Debug Toolbar&lt;/a&gt;.
For an ad server like ours, just a few different APIs -- like requesting an ad and viewing an ad --
account for almost all transactions.
We even have unit tests to ensure the number of database queries doesn't change in these APIs.&lt;/p&gt;
&lt;p&gt;When we were pretty confident that the ad server was ready to go live code-wise,
we did some load testing to make sure it could handle the traffic.
There were definitely a few false starts during the initial rollout
and in the end we decided to put it through a full load test.&lt;/p&gt;
&lt;h2 id="load-testing-our-ad-server"&gt;Load testing our ad server&lt;/h2&gt;
&lt;p&gt;To make sure we could handle the load we knew we were going to see once we rolled out the ad server,
we did a staging deployment to Heroku and to &lt;a href="https://azure.microsoft.com/en-us/services/app-service/"&gt;Azure's AppService&lt;/a&gt;
to compare how they performed.
This wasn't particularly complex given that this app was structured to be cloud agnostic from the start.
After that, we used &lt;a href="https://github.com/JoeDog/siege"&gt;siege&lt;/a&gt; to test the deployment
at various loads up to 100 ad requests per second.
These were real requests exactly like we'd see in production and we wanted to see how staging would cope.&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;Heroku (4 Standard-2x dynos, 10 Gunicorn processes each, ~$200/mo)&lt;/dt&gt;
&lt;dd&gt;
&lt;p&gt;This is a pretty standard Heroku setup to handle a performance heavy application.
  We tested it at various thoughputs but it was able to handle 100 requests per second without dropping requests.
  However, we did see our 99th percentile performance (p99) creep up to the 550-600ms range which is pretty bad.
  On Heroku, 100 concurrent requests would also bump us into some pricier Redis and Postgres setups
  to handle over 100 connections.&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;Heroku (10 Standard-2x dynos, 10 Gunicorn processes each, ~$500/mo)&lt;/dt&gt;
&lt;dd&gt;
&lt;p&gt;In this example, we more than doubled the provisioning.
  This setup performed much better although it didn't seem to be exactly linearly better which was a little odd.
  Our p99 was closer to 350ms in a 100 requests per second setup and it didn't drop any requests.
  The median performance (p50) stayed about the same at 80-90ms.&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;AppService (4 Premium P1s, 10 Gunicorn processes each, ~$300/mo)&lt;/dt&gt;
&lt;dd&gt;
&lt;p&gt;This was a pretty comparable setup in Azure to the Heroku setups.
  We ran the exact same code and the configuration was as close as possible.
  We tested various numbers of instances and the performance scaled very linearly with instance count.
  Performance was quite a bit better with a p50 of ~75ms and the p99 was drastically improved to ~200ms.
  Even in longer and larger tests (with more instances in some cases),
  we saw much better performance on AppService than on Heroku.&lt;/p&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;The end result of the load tests was that we launched the ad server on AppService
where got predictable performance and the right bang for the buck.
Heroku definitely wins in ease of deployment and it has a lot of advantages and flexibility.
However, for this kind of application where performance and predictability were critical,
AppService was the right choice.&lt;/p&gt;
&lt;div class="postimage"&gt;
 &lt;img class="w-100" src="/images/posts/2021-adserver-performance-percentile.png" alt="Normal real-world performance from New Relic"&gt;
 &lt;p&gt;With our current performance over a normal week, New Relic reports our p50 at 58ms and the p99 at 105ms.&lt;/p&gt;
&lt;/div&gt;

&lt;h2 id="performance-today"&gt;Performance today&lt;/h2&gt;
&lt;p&gt;A few months after rolling things out to production we encountered some issues with AppService.
In response, we switched to autoscaled &lt;a href="https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/overview"&gt;VM scaling sets&lt;/a&gt;.
Using the same siege setup, we were able to show that VM scaling sets
(which we also use on Read the Docs) not only scaled better
but also cut about 15ms off of our p50.
We aren't sure why they're faster but we assume it's some overhead with AppService and containerization.
That doesn't sound like much but it's actually quite a lot when
you consider we didn't change the database or ad server code whatsoever.
Except under unusual load, we're usually scaled to about 3-4 instances.&lt;/p&gt;
&lt;p&gt;We've done a few further optimizations like reducing cache requests to Redis
(the fastest request is the one you don't have to make).
Currently, about 20ms of a normal request is taken in Python
while the remainder is consumed in Postgres and Redis.
This shows the upper bound of any framework or language optimizations.
Django and Python may be slow but at most replacing them could shave 10-15ms off our performance.
Improvements on our infrastructure or how we handle data would yield better results.&lt;/p&gt;
&lt;div class="postimage"&gt;
 &lt;img class="w-100" src="/images/posts/2021-adserver-performance-breakdown.png" alt="Performance breakdown of the ad server"&gt;
 &lt;p&gt;A little over half our server time is spent in Postgres while Python is just under half&lt;/p&gt;
&lt;/div&gt;

&lt;h2 id="our-next-scaling-challenge"&gt;Our next scaling challenge&lt;/h2&gt;
&lt;p&gt;Our next big scaling challenge is how to have good performance on different continents.
We can optimize server performance all we want but Europe and Asia are 80-100ms worse due purely to latency.
Currently, our source of truth is what is in our Postgres database
and reworking our solution to actually process ad requests at the edge will be a big change.
This will be more complex than CDN edge caching since most of our requests involve DB writes.
Multi-writer scenarios for databases are never easy.&lt;/p&gt;
&lt;p&gt;Thanks for coming along with us on this journey to build an ethical ad network
and the technical challenges that come along with that.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or service.
We always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="django"/><category term="python"/><category term="performance"/><category term="scalability"/><category term="engineering"/></entry><entry><title>EthicalAds Publisher Referral Offer - July 2021</title><link href="/blog/2021/07/ethicalads-publisher-referral-offer-july-2021/" rel="alternate"/><published>2021-07-16T00:00:00-07:00</published><updated>2021-07-16T00:00:00-07:00</updated><author><name>Ra Cohen</name></author><id>tag:None,2021-07-16:/blog/2021/07/ethicalads-publisher-referral-offer-july-2021/</id><summary type="html">&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: This referral program has ended.
However, we are still interested in additional publishers.
Please reach out at &lt;a href="mailto:ads@ethicalads.io"&gt;ads@ethicalads …&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: This referral program has ended.
However, we are still interested in additional publishers.
Please reach out at &lt;a href="mailto:ads@ethicalads.io"&gt;ads@ethicalads.io&lt;/a&gt; to get in touch.&lt;/p&gt;
&lt;p&gt;Want to help grow EthicalAds and our privacy preserving vision for the future of advertising?
We are currently at ad capacity and are thus looking to expand our number of publishers.&lt;/p&gt;
&lt;h2 id="our-offer"&gt;Our Offer&lt;/h2&gt;
&lt;p&gt;Refer a new publisher to EthicalAds and once they join the network,
you'll get a onetime &lt;strong&gt;$50 bonus&lt;/strong&gt; to your payout when they earn their first payout.&lt;/p&gt;
&lt;h2 id="a-good-fit"&gt;A Good Fit&lt;/h2&gt;
&lt;p&gt;Not every publisher who applies to join the EthicalAds network is approved.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Our network is focused exclusively on developers in order to keep the content and audience well-targeted without creepy tracking.&lt;/li&gt;
&lt;li&gt;Sites ought to have more than 10k hits in a month in order to see revenue in a timely fashion.&lt;/li&gt;
&lt;li&gt;Ideally they'll be value-aligned in our goal of a private internet for all.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Feel free to spread the word perhaps with this tweet:&lt;/p&gt;
&lt;p&gt;Remember to change the things in [brackets]!&lt;/p&gt;
&lt;h2 id="sample-tweet"&gt;Sample Tweet&lt;/h2&gt;
&lt;p&gt;Join me as a publisher on the world's first privacy preserving ad network, EthicalAds &lt;code&gt;https://www.ethicalads.io/publishers/?referral=[your email address]&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Alternatively, if you know of someone who sounds like a good fit, consider sending them a message:&lt;/p&gt;
&lt;h2 id="sample-email"&gt;Sample Email&lt;/h2&gt;
&lt;p&gt;FROM: [your name]&lt;/p&gt;
&lt;p&gt;TO: [your friend’s name]&lt;/p&gt;
&lt;p&gt;SUBJECT: Ethical Advertising Network Referral&lt;/p&gt;
&lt;p&gt;Hey [Friend],&lt;/p&gt;
&lt;p&gt;To make money, I host EthicalAds on my website and I think you'd be a good fit too.
They're a privacy focused company who is building an open-source ad network for devs.
I like that they respect the privacy of my users and don't store any user data.
Check them out: &lt;code&gt;https://www.ethicalads.io/publishers/?referral=[your email address]&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Thanks, [your name]&lt;/p&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback for us,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="publisher"/><category term="offer"/></entry><entry><title>EthicalAds Newsletter - June 2021</title><link href="/blog/2021/07/ethicalads-newsletter-june-2021/" rel="alternate"/><published>2021-07-12T00:00:00-07:00</published><updated>2021-07-12T00:00:00-07:00</updated><author><name>Ra Cohen</name></author><id>tag:None,2021-07-12:/blog/2021/07/ethicalads-newsletter-june-2021/</id><summary type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;These are the major features we added in the last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In our ad server, we updated the …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;These are the major features we added in the last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In our ad server, we updated the weighting algorithm to slightly bias showing CPC ads on higher CTR publishers.&lt;/li&gt;
&lt;li&gt;Our ad server now tracks historical changes to ad campaigns,
  allowing us to track changes over time to better understand performance.&lt;/li&gt;
&lt;li&gt;Also in our ad server, we added actions to allow our staff to handle
  adding new publishers and processing publisher payouts.&lt;/li&gt;
&lt;li&gt;On our website, we updated our &lt;a href="/prospectus/ethicalads-advertiser-prospectus.pdf"&gt;prospectus&lt;/a&gt; and &lt;a href="/advertisers/#pricing"&gt;pricing&lt;/a&gt; information for Q3.&lt;/li&gt;
&lt;li&gt;We also recently expanded our &lt;a href="/publisher-guide/"&gt;Publisher Guide&lt;/a&gt; on the Learning Hub.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our &lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="june-advertising-stats"&gt;June advertising stats&lt;/h2&gt;
&lt;p&gt;June was a slight improvement over May for advertising
as we had some new ad buys start as well as a couple new publishers.&lt;/p&gt;
&lt;p&gt;In June 2021:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$24,362.13&lt;/strong&gt; for our publishers.
  Of this, $12,696.56 was to third-party publishers, with the rest to Read the Docs.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;106 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;14,574,934&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Reminder, we are actively working to onboard
new, high quality publishers, which will expand our ad inventory.&lt;/p&gt;
&lt;h2 id="tricky-bits"&gt;Tricky bits&lt;/h2&gt;
&lt;p&gt;We are still verging on max capacity with regards to ad inventory.
We slightly raised our prices in Q3 in our high demand areas to address this.
Also, we rolled out a number of new house ads across the network to find new publishers.
Unfortunately, determining the success of these new ads is difficult
without using common third-party tools that track users.
We are looking into privacy preserving analytics options for our website.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adding a staff interface for customizing ad flights.&lt;/li&gt;
&lt;li&gt;We are still not sure of the best way to implement referrals.
  We might try something simple to see if it works, and build on it if we find that it works.&lt;/li&gt;
&lt;li&gt;View time for ads will allow us to ensure a fair system for counting valid views
  as well as provide a metric for publisher quality.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/></entry><entry><title>EthicalAds Newsletter - May 2021</title><link href="/blog/2021/06/ethicalads-newsletter-may-2021/" rel="alternate"/><published>2021-06-15T00:00:00-07:00</published><updated>2021-06-15T00:00:00-07:00</updated><author><name>Ra Cohen</name></author><id>tag:None,2021-06-15:/blog/2021/06/ethicalads-newsletter-may-2021/</id><summary type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;These are the major features we added in the last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In our ad server, we added a …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;These are the major features we added in the last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In our ad server, we added a support form to make it easier
  for advertisers and publishers alike to get in contact with us.&lt;/li&gt;
&lt;li&gt;Also in our ad server, we added actions to allow our staff to better assist in
  the creation, modification, and management of advertisers and their campaigns.&lt;/li&gt;
&lt;li&gt;On our website, we updated and streamlined our &lt;a href="/advertising-vision/#community-ads"&gt;Community Ad&lt;/a&gt; information.
  Now open source community projects can apply to have their ads run for free
  by like-minded publishers when a paid ad is not available.&lt;/li&gt;
&lt;li&gt;We also recently launched our &lt;a href="/learning-hub/"&gt;Learning Hub&lt;/a&gt;.
  Your one stop shop resource for information on EthicalAds, our audience, and
  what makes a good advertisement. More on that later.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our &lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="may-advertising-stats"&gt;May advertising stats&lt;/h2&gt;
&lt;p&gt;May was a great month for advertising as we had some new ad buys start.&lt;/p&gt;
&lt;p&gt;In May 2021:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$23,495.17&lt;/strong&gt; for our publishers.
  Of this, $11,719.57 was to third-party publishers, with the rest to Read the Docs.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;104 publishers&lt;/strong&gt; on our network with at least one paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;14,659,563&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In May, we undertook an effort to increase the performance of publishers
with the lowest Click Through Rates.
In some cases, we were able to increase performance
while in others, we agreed to part ways.
As we approach our ad capacity, we are actively working to onboard
new, high quality publishers, which will expand our ad inventory.&lt;/p&gt;
&lt;h2 id="learning-hub"&gt;Learning Hub&lt;/h2&gt;
&lt;p&gt;Discover more about EthicalAds right from the navigation bar!
Our new &lt;a href="/learning-hub/"&gt;Learning Hub&lt;/a&gt; collects information regarding
who we are, our vision for the future of advertising,
and statistics on the make-up of our audience. It also contains:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Advertiser's Guide which details how to craft a great advertisement
  for &lt;em&gt;our&lt;/em&gt; audience including insights into what has worked well in the past.&lt;/li&gt;
&lt;li&gt;Publisher's Guide which details how to monetize your audience with EthicalAds.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="tricky-bits"&gt;Tricky bits&lt;/h2&gt;
&lt;p&gt;We are on the verge of max capacity with regards to ad inventory.
With our processes becoming more standardized, allowing new staff to handle day to day operations,
we are now ready to focus on growing the network.
Marketing and growth is a challenge for any small business.
Thankfully, an advertising network gets better as it grows bigger.
More advertisers means more money for publishers and
more publishers means a larger pool of specific topics for advertisers.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The most recent changes to targeting will be highlighted in the advertiser's dashboard.&lt;/li&gt;
&lt;li&gt;We are designing a referral system for our current publishers.&lt;/li&gt;
&lt;li&gt;Ad Click prioritization will be coming to our network.
  Advertisers who pay per click will be matched with
  publishers who have high click through rates.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/></entry><entry><title>How Invasive Ad Targeting is Bad for Journalism and Other High-Quality Publishers</title><link href="/blog/2021/05/how-invasive-ad-targeting-is-bad-for-journalism-and-other-high-quality-publishers/" rel="alternate"/><published>2021-05-25T00:00:00-07:00</published><updated>2021-05-25T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2021-05-25:/blog/2021/05/how-invasive-ad-targeting-is-bad-for-journalism-and-other-high-quality-publishers/</id><summary type="html">&lt;p&gt;It used to be if you wanted to reach a particular group of people with your message
you’d buy …&lt;/p&gt;</summary><content type="html">&lt;p&gt;It used to be if you wanted to reach a particular group of people with your message
you’d buy ad space on a billboard where those people are likely to see it
or buy an ad spot in a newspaper section that your target market reads.
On the internet before hyper-targeted advertising,
this meant finding an online publication for your product
or buying up specific, relevant terms on search engines.
If you plan to introduce a new line of cat food?
You run an ad on &lt;a href="https://moderncat.com"&gt;ModernCat.com&lt;/a&gt;
or you pay to take the top search engine result for "cat food".&lt;/p&gt;
&lt;p&gt;With the rise of ad tech powered by personal data collection,
advertisers can reach cat lovers (or any targeted group)
by paying ad tech companies to show their ads wherever the audience goes.
Maybe you pay top dollar for ModernCat.com for a little while,
but after you've got cookies to track their visitors onto other sites,
you can reach the same folks on lower quality channels more cheaply.&lt;/p&gt;
&lt;h2 id="what-impression-commoditization-means-to-publishers"&gt;What impression commoditization means to publishers&lt;/h2&gt;
&lt;p&gt;The result of this intrusive targeting and tracking people across sites is a race to the bottom.
Advertising dollars have moved away from publications with well researched content written by knowledgeable authors
to low quality SEO optimized sites with re-purposed material developed to maximize paid ad impressions.
While there are a lot of reasons for the fall of newspapers, this dynamic shift is a major factor.
Instead of spending money on investigative reporters,
it makes more economic sense to churn out clickbait that rephrases research done elsewhere.&lt;/p&gt;
&lt;p&gt;In essence, all impressions are the same from an ad tech perspective.
It doesn't matter if ads appear on the paper of record or on a clickbait site
if they reach a similar audience.
Ad views have become a commodity.
For most ad-funded sites including many newspapers,
the race for views comes at the cost of sacrificing quality.&lt;/p&gt;
&lt;h2 id="what-publishers-can-do-about-it"&gt;What publishers can do about it&lt;/h2&gt;
&lt;p&gt;Publishers can take back their audience and advertising revenue in a few ways.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cut off ad tech surveillance technology.&lt;/strong&gt;
  Ad tech is driven by personal data which, with some exceptions, is collected from individual publishers sites
  through the use of third-party cookies, fingerprinting, and other tracking technologies.
  Publishers should eliminate or severely restrict what ad tech can run on their site.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Stop providing ad space for tracking companies to show ads.&lt;/strong&gt;
  Where it isn't possible to restrict the ad network in terms of tracking,
  remove ads that track users completely.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This doesn't mean giving up your ad revenue, though.
While there seems to be unlimited ad space online there is a very limited amount of quality ad space.
Larger publishers can work directly with advertisers to privately place ads often driving up their own revenue
&lt;a href="https://open.nytimes.com/to-serve-better-ads-we-built-our-own-data-program-c5e039bf247b"&gt;as the New York Times did&lt;/a&gt;.
For publishers that are too small or unable to hire a sales force,
they can find an ad network that will place ads without sacrificing user privacy
or siphoning off their audience's data for the ad network's gain.&lt;/p&gt;
&lt;p&gt;Giving small and mid-size publishers a way to monetize their audience without giving up their privacy
is the reason we built the EthicalAds network.
There are lots of developer-focused sites that are too small to sell ads directly.
If you're looking for an ad network that won't compromise your audience,
&lt;a href="/publishers/"&gt;join EthicalAds&lt;/a&gt; and help preserve privacy on the web!&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Thanks to Greg Muscarella for the inspiration and feedback on this post.&lt;/em&gt;&lt;/p&gt;</content><category term="posts"/><category term="adtech"/><category term="publishers"/></entry><entry><title>Willful Words and Pretty Pictures</title><link href="/blog/2021/05/willful-words-and-pretty-pictures/" rel="alternate"/><published>2021-05-20T00:00:00-07:00</published><updated>2021-05-20T00:00:00-07:00</updated><author><name>Ra Cohen</name></author><id>tag:None,2021-05-20:/blog/2021/05/willful-words-and-pretty-pictures/</id><summary type="html">&lt;h2 id="about-me"&gt;About Me&lt;/h2&gt;
&lt;p&gt;I tried to backpeddle. "No one is personally listening in to your conversations, grandma, it was an analogy …&lt;/p&gt;</summary><content type="html">&lt;h2 id="about-me"&gt;About Me&lt;/h2&gt;
&lt;p&gt;I tried to backpeddle. "No one is personally listening in to your conversations, grandma, it was an analogy." Explaining my new job to my grandmother was not going well. Bemoaning the evils of modern Ad Tech by highlighting how corporations were tracking her around the web &lt;em&gt;may&lt;/em&gt; not have been the wisest approach. Knowing that my grandmother is an avid online shopper, I tried another tact, "You know how when you're reading the news, you get those big flashy banners for stuff you already looked at and decided to not buy?"  "Oh, I see those all of the time!" Progress. "Yeah! They're big and flashy and purposefully annoying in order to distract you? My company is an advertising network that connects developer-focused publishers," "Developers?" Right, to my grandmother a developer worked in real estate. "Coders, like me - we connect techy publishers with relevant, respectful ads for products that actually work. And we do it without storing any information about you or what you were looking at!" My enthusiasm was met with silence and I was worried that I'd lost her again, "Grandma?" Hesitantly she spoke, "But does &lt;strong&gt;&lt;em&gt;it&lt;/em&gt;&lt;/strong&gt; work? Honey, my dad always said the louder the soap salesman, the more soap he'll sell." She then told me a story of her father, my great-grandfather, who was in fact a soap salesman himself.&lt;/p&gt;
&lt;p&gt;One morning in the summer of 1938, my great-grandfather was out for a walk by the river early and he noticed people washing their clothing in the river without bar soap. He decided then and there to tap that market and would go down on his walk every morning with a box full of soap to sell. Selling by the river early in the morning before the factory opened worked incredibly well, until other soap vendors realized the simplistic brilliance of his approach. Soon my great-grandfather was in competition and learned that he had to get creative with drawing attention. My grandmother cautioned me, "The loud, charismatic vendor inevitably sells more soap than the quiet, reserved one." Oy. This is the mindset that has been shaping advertising for the past 100 years; this is how we have arrived at the current state of the internet, almost unbrowsable without an ad-blocker thanks to pop-ups, banner ads, and booby-trapped x's. At least, we were getting somewhere. She definitely understood that our publishers were our river and that we are the soap-sellers, but how do I explain ad-blockers? So I asked my grandma "What if yelling was out-lawed?" "Make yelling illegal?" she repeated incredulously. I told her a little bit about how ad-blockers worked, mildly surprised that I hadn't already set her up with one when I set up her laptop, and explained that EthicalAds gets around ad-blockers &lt;em&gt;because&lt;/em&gt; our ads are quiet and reserved. "Hmmm..."  After careful consideration, she made up her mind.&lt;/p&gt;
&lt;p&gt;"You have your foot in the door, not a seat at the table. Have you considered making your ads &lt;strong&gt;&lt;em&gt;~beautiful~&lt;/em&gt;&lt;/strong&gt;?"&lt;/p&gt;
&lt;p&gt;I'm Ra Cohen: data scientist, people person, and the latest addition to the EthicalAds team. Using pretty pictures, willful words, and data science, I'm on a mission to help people reach their audience and tell their story.&lt;/p&gt;
&lt;h2 id="pretty-pictures"&gt;Pretty Pictures&lt;/h2&gt;
&lt;p&gt;As a data scientist, I know just how much impact framing and perspective can have on impressions. A graph zoomed in around all of the action will tell a very different, more turbulent story than the same data presented on a graph with its origin at 0. My design philosophy draws from the Data-Ink ratio principle. The less ink you can use over all, the better, and that ink which you do use should be fundamental to conveying your data. I'm excited to apply my eye for artistry not only in illuminating the beauty of data, but also to illustrate the beauty of advertising. Beauty captures our attention like nothing else, stirring us to action with the promise of a better tomorrow. Is that not also the goal of advertising? To reincarnate Helen of Troy into the image that launches a thousand clicks?&lt;/p&gt;
&lt;p&gt;A picture may be worth a thousand words, but context can make it worth a million.&lt;/p&gt;
&lt;h2 id="willful-words"&gt;Willful Words&lt;/h2&gt;
&lt;p&gt;Good writing is the intersection of clarity and purpose. Conveying information and motivating one's audience are best accomplished by the &lt;strong&gt;willful word&lt;/strong&gt;, a word mindfully chosen to perform work and left free of clutter. Due to the brevity of advertising, the creatively willful word thrives. The attention of your reader is valuable and respected. We are happy to assist in the creation of your advertising copy upon request. Your time is valuable too, so I endeavor to keep all emails to the point as I assist with advertiser and publisher account management.&lt;/p&gt;
&lt;p&gt;I am also happy to schedule a phone call to discuss your data.&lt;/p&gt;
&lt;h2 id="data-science"&gt;Data Science&lt;/h2&gt;
&lt;p&gt;Like all science, the first step to data science is to ask a &lt;strong&gt;&lt;em&gt;question&lt;/em&gt;&lt;/strong&gt;. Are you a publisher who wants help understanding how our latest updates affected your profits? Or do you want to compare your data over a few ad placement spots in order to maximise your click through rates? Perhaps you're an advertiser who wants to know how changing your targeting will affect your total number of impressions. Send us an email; I breathe data! In school, I took courses in our data science graduate program to fulfil my undergrad computer science requirements. After graduation, I went to work as a research scientsit for two years where I built visualization dashboard prototypes for DARPA. I'm glad to now be working at EthicalAds, shaping the future of advertising for a more respectful, beautiful future.&lt;/p&gt;
&lt;p&gt;As always, we are thrilled to have you along with us on our journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="community"/><category term="introductions"/></entry><entry><title>EthicalAds Newsletter - April 2021</title><link href="/blog/2021/05/ethicalads-newsletter-april-2021/" rel="alternate"/><published>2021-05-11T00:00:00-07:00</published><updated>2021-05-11T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2021-05-11:/blog/2021/05/ethicalads-newsletter-april-2021/</id><summary type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;Here's the major features we added in the last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;On our ad client, we made some improvements …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;Here's the major features we added in the last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;On our ad client, we made some improvements to our contextual targeting.
  We now parse pages where ads will appear to discover their main topics in order to better target them
  with the right kind of ad. As always, we focus on content and contextual targeting,
  not targeting ads based on learning about users or about past actions users have taken.
  While we've only taken the first steps here, the end result is greatly improved targeting
  and the ability to target more niches with high quality ads which is one of the keys to good ad performance.&lt;/li&gt;
&lt;li&gt;In our ad server, we made a number of small improvements for our advertisers to improve their workflows
  and better allow them to make decisions to improve ad performance.
  This included better ways to compare past performance to current performance and the ability to easily reuse
  past high-performing ads.&lt;/li&gt;
&lt;li&gt;We also took the first steps toward prioritizing higher performing and higher priced ads.
  We believe this is the right step to ensure that publishers are getting the most they can from their ad spots,
  while giving advertisers incentives to produce high quality ads.
  While we expect this will drive a slight increase in publisher revenue, so far the impact has been very small.
  We are continuing to make improvements to ad prioritization in May and beyond.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our &lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="april-advertising-stats"&gt;April advertising stats&lt;/h2&gt;
&lt;p&gt;April was an interesting month for advertising
as we had rolled out some of our contextual targeting changes and had some new ad buys start.&lt;/p&gt;
&lt;p&gt;In April 2021:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$23,831.85&lt;/strong&gt; for our publishers.
  Of this, $12,154.71 was to third-party publishers, with the rest to Read the Docs.
  While not a surprise, this was an all-time record for our third-party publishers!&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;101 publishers&lt;/strong&gt; on our network with a paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;17,507,857&lt;/strong&gt; paid ad views across the world.
  The biggest reason for a large increase in ad views was that we received a couple ad buys
  with nearly global targeting.
  While these don't always bring in lots of revenue as global targeting isn't very expensive,
  they can have a big impact on the total number of ads.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So far, May is looking to continue the gains that we made in April
but if we are able to close a few ad buys we have in the pipeline,
that could put our revenue over the top.&lt;/p&gt;
&lt;h2 id="new-hire"&gt;New hire&lt;/h2&gt;
&lt;p&gt;On the hiring front, we were able to find a talented person to help with advertiser and publisher account management.
Ra Cohen brings a background in machine learning and a passion for connecting with people
to our small corner of the ads industry.
Expect a full introduction in the next couple weeks.
We are lucky to have them.&lt;/p&gt;
&lt;h2 id="tricky-bits"&gt;Tricky bits&lt;/h2&gt;
&lt;p&gt;With the hiring complete, onboarding will probably be the trickiest part in the immediate future.
Bringing on a new person is always hard when it's done well and we expect this won't be any different.
This will involve making a lot of processes we have more regular but in the long term
we expect this will lead to better outcomes and faster response times for our publishers and advertisers.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;With the improvements we've been able to make on ad prioritization,
  we will be rolling out the ability to have "flex advertisers".
  This will give advertisers who opt-in to this program lower prices but without guaranteed inventory.
  This helps us ensure that as many ad slots have paid ads for our publishers while letting us balance our inventory.
  In the &lt;em&gt;much longer&lt;/em&gt; term, we see this as a first-step toward a form of bidding for ads
  that will be familiar to advertisers used to the big ad networks.&lt;/li&gt;
&lt;li&gt;We are building improvements into both our ad client and ad server to improve our contextual targeting.
  We believe that good contextual targeting is one of the keys to our network's success.
  This lets advertisers reach the audience they want as well as possible without creepy targeting
  and without requiring publishers to do the work of categorizing all their content.
  By automatically categorizing content, we'll have more inventory for more niches that advertisers want to target.
  For publishers, this is also a win because better targeted ads cost more and bring in more revenue.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/></entry><entry><title>EthicalAds Newsletter - March 2021</title><link href="/blog/2021/04/ethicalads-newsletter-march-2021/" rel="alternate"/><published>2021-04-12T00:00:00-07:00</published><updated>2021-04-12T00:00:00-07:00</updated><author><name>David Fischer</name></author><id>tag:None,2021-04-12:/blog/2021/04/ethicalads-newsletter-march-2021/</id><summary type="html">&lt;h2 id="march-advertising-stats"&gt;March advertising stats&lt;/h2&gt;
&lt;p&gt;March was another record month ever for advertising
although &lt;a href="/blog/2021/03/ethicalads-newsletter-february-2021/"&gt;February&lt;/a&gt; was better per day due to being …&lt;/p&gt;</summary><content type="html">&lt;h2 id="march-advertising-stats"&gt;March advertising stats&lt;/h2&gt;
&lt;p&gt;March was another record month ever for advertising
although &lt;a href="/blog/2021/03/ethicalads-newsletter-february-2021/"&gt;February&lt;/a&gt; was better per day due to being a shorter month.&lt;/p&gt;
&lt;p&gt;In March 2021:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$23,994.57&lt;/strong&gt; for our publishers, another record but only 1% over February.
  Of this, $10,711.54 was to third-party publishers, with the rest to Read the Docs.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;104 publishers&lt;/strong&gt; on our network with a paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;14,768,103&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We expected revenue to publishers other than Read the Docs to exceed our own revenue in March and that didn't happen.
However, that looks nearly certain in April due to some larger advertisers shifting toward the wider ad network.&lt;/p&gt;
&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;Here's the major features we added in the last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;On the business side, we released a &lt;a href="/press/"&gt;media kit&lt;/a&gt;
  to help us get more traction and be part of the privacy conversation around advertising
  which is an important goal and requires constant effort.&lt;/li&gt;
&lt;li&gt;On our ad server, we made a number of reporting improvements for both publishers and advertisers.
  These included showing more data, giving more high level overviews of data, and speeding up our existing reports.&lt;/li&gt;
&lt;li&gt;We started automatically including the publisher name when redirecting to an advertiser's site.
  The advertising industry could use a bit of transparency
  and advertisers sometimes don't know where their ads are being shown.
  Our aim is to be as transparent as possible and give advertisers the ability to make more informed decisions.&lt;/li&gt;
&lt;li&gt;We made a small tweak to our ad display algorithm when the same person requests multiple ads within a few seconds.
  We now cache the ad and show the exact same ad and only bill advertisers a single impression for it.
  For most publishers, this made almost no difference but for some this resulted in fewer ad views being counted
  and therefore less revenue.
  We believe this is more fair to advertisers and incentivizes publishers to have good ad placements.&lt;/li&gt;
&lt;li&gt;In our infrastructure, we've solved most of our performance/IO problems from the previous month.
  We are archiving data out of our transactional database on a regular basis after it is processed
  to help with performance.
  Longer term, we will probably use a separate reporting database for both performance
  but for now, we're keeping it simple.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest server updates in our &lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="tricky-bits"&gt;Tricky bits&lt;/h2&gt;
&lt;p&gt;We still aim to hire an account manager
to help manage advertiser and publisher relationships.
Initially, we were looking for somebody to work around 20 hours per week
but we've added a bit more range -- 20 to 32 hours -- to give the role a bit more flexibility.
We're looking for somebody who is early in their career or returning to their previous career
and wants to ease into it with a flexible position.&lt;/p&gt;
&lt;p&gt;Hiring is always hard and takes a lot of time to do well.
If this role sounds interesting to you,
please &lt;a href="mailto:ads@ethicalads.io?subject=Ads%20account%20manager%20role"&gt;get in touch with any questions&lt;/a&gt;!
In addition, Read the Docs is hiring a &lt;a href="https://blog.readthedocs.com/job-frontend/"&gt;frontend developer&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Beginning in April, we're going to expand our advertising logic to take into account an ad's price and performance
  when choosing which ad to show.
  One advertiser has agreed to be a flex advertiser with part of their ad buys in Q2
  which will give them lower prices but not guaranteed inventory and this feature was a necessary step.
  This helps us ensure that as many ad slots have paid ads for our publishers while letting us balance our inventory.
  Initially, we expect this will drive a slight increase in revenue to publishers as we prioritize higher priced ads.
  Longer term, this aligns incentives to have better performing ads for advertisers and better performing placements on publisher sites.&lt;/li&gt;
&lt;li&gt;We are building improvements into both our ad client and ad server to improve our contextual targeting.
  We believe that good contextual targeting is one of the keys to our network's success.
  This lets advertisers reach the audience they want as well as possible without creepy targeting
  and without requiring publishers to do the work of categorizing all their content.
  By automatically categorizing content, we'll have more inventory for more niches that advertisers want to target.
  For publishers, this is also a win because better targeted ads cost more and bring in more revenue.&lt;/li&gt;
&lt;li&gt;For the last few months, we mentioned supporting custom ad formats as a sort of sponsorship.
  This has been deprioritized for now in favor of other improvements.
  However, we did get some interest on the sponsorship side.
  Some larger sites expressed interest in using our ad server to manage their own internal sponsorships
  while using our management interface and reporting.
  Depending on demand, we may build some more features around that.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/></entry><entry><title>Cookie Changes are Coming to Ad Tech</title><link href="/blog/2021/03/cookie-changes-are-coming-to-ad-tech/" rel="alternate"/><published>2021-03-11T00:00:00-08:00</published><updated>2021-03-11T00:00:00-08:00</updated><author><name>David Fischer</name></author><id>tag:None,2021-03-11:/blog/2021/03/cookie-changes-are-coming-to-ad-tech/</id><summary type="html">&lt;p&gt;Last week, &lt;a href="https://www.blog.google/products/ads-commerce/a-more-privacy-first-web/"&gt;Google announced&lt;/a&gt;
that after they phase out third-party cookies in Chrome next year,
they "will not build alternate …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Last week, &lt;a href="https://www.blog.google/products/ads-commerce/a-more-privacy-first-web/"&gt;Google announced&lt;/a&gt;
that after they phase out third-party cookies in Chrome next year,
they "will not build alternate identifiers to track individuals as they browse across the web."
On the surface, this looks like a win for a more private web.
This would put Chrome, the most popular browser, on a similar footing to Safari and Firefox
which block most third-party tracking out of the box.
As more details started to come out about Google's vision, however,
things started to get a bit murkier.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Update: After delaying phasing out third-party cookies multiple times and sometimes for reasons legitimately outside their control, Google is &lt;a href="https://privacysandbox.com/news/privacy-sandbox-update/"&gt;no longer phasing out third-party cookies&lt;/a&gt;. They will instead "introduce a new experience in Chrome that lets people make an informed choice that applies across their web browsing".&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="googles-vision-for-the-future-of-ads"&gt;Google's vision for the future of ads&lt;/h2&gt;
&lt;p&gt;In Google's vision, ads targeted to users' interests aren't going away but are merely changing.
Built on Google's &lt;a href="https://www.chromium.org/Home/chromium-privacy/privacy-sandbox"&gt;Privacy Sandbox&lt;/a&gt;,
which is part of the open source engine behind Chrome,
Google promises these changes will create a more private web
while keeping targeted advertising just as effective.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;"Advances in aggregation, anonymization, on-device processing and other privacy-preserving technologies offer a clear path to replacing individual identifiers."&lt;/p&gt;
&lt;p&gt;David Temkin&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Director of Product Management, Ads Privacy and Trust at Google&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Instead of ad networks or ad tech companies keeping and storing data on users to target them with ads,
Google is testing an approach they call &lt;a href="https://github.com/WICG/floc"&gt;Federated Learning of Cohorts (FLoC)&lt;/a&gt;
which will have your browser learn about the things you like so you can be targeted with ads.
Likewise, for personalized ads, they have another approach called &lt;a href="https://github.com/WICG/turtledove"&gt;Turtledove&lt;/a&gt;.
These will expose new browser APIs that advertisers and ad networks can use to target ads.&lt;/p&gt;
&lt;p&gt;Make no mistake,
while these changes have some privacy benefits, they also are about control.
Google's vision for ads put them at the center of the ads ecosystem.
Google controls the browser you're probably using right now
and they'll control how these new tools and APIs like FLoC can be used for advertising.
In addition, Google has a first-party relationship with you and they don't need third-party cookies.
They can continue to use the emails you receive in Gmail,
the places you get directions to in Google Maps, the videos you watch on YouTube,
and the things you search for on Google to target you with ads.&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://www.eff.org/deeplinks/2021/03/googles-floc-terrible-idea"&gt;Electronic Frontier Foundation (EFF) called FLoC a "terrible idea"&lt;/a&gt;.
They say it will help ad tech companies fingerprint users
so they can uniquely identify them more easily.
Any site which supports logging in could easily request FLoC data and add it to users' data profiles,
connecting that with the existing personal information they have on this user.&lt;/p&gt;
&lt;h2 id="what-ad-tech-companies-are-doing-about-it"&gt;What ad tech companies are doing about it&lt;/h2&gt;
&lt;p&gt;The response from the ad tech side of the industry ranges
depending on where the company sits in the ecosystem.
Even if Google's vision doesn't become a reality
-- we expect some of it will and some of it won't --
the end of third-party cookies won't be the death knell for ad tech,
behavioral targeting, or personalized ads.&lt;/p&gt;
&lt;p&gt;There are a lot of alternatives to cookies for tracking users across the web which are more invasive.
For many ad tech players, third-party cookies going away won't affect them at all because they use these methods of tracking.
The list of the techniques used to circumvent cookie restrictions
is potentially endless but here are some common techniques:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Fingerprinting:&lt;/strong&gt; As the EFF called out, fingerprinting,
  or the process of uniquely identifying individual users based on their browser
  and other data about them like their IP address is common practice in the ad tech space.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Supercookies:&lt;/strong&gt; So called &lt;a href="https://blog.mozilla.org/security/2021/01/26/supercookie-protections/"&gt;"supercookies"&lt;/a&gt;
  use trackers hidden in other parts of browser like ETags or HSTS headers.
  These are not cleared by clearing cookies and can potentially identify users uniquely or be used with fingerprinting.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CNAME Cloaking:&lt;/strong&gt; &lt;a href="https://webkit.org/blog/11338/cname-cloaking-and-bounce-tracking-defense/"&gt;CNAME Cloaking&lt;/a&gt;
  involves a publisher setting up a subdomain for an ad tech tracker so it appears as a first-party domain for cookie purposes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Advertisers and ad tech companies are also leery of Google having too much control.
With states like California and Virginia adopting privacy legislation,
they know the privacy landscape is changing and some of them are trying to get in front of it with their own proposals.
The Trade Desk, an ad tech company,
has an alternative approach they call &lt;a href="https://www.thetradedesk.com/us/about-us/industry-initiatives/unified-id-solution-2-0"&gt;Unified ID 2.0&lt;/a&gt;.
This will only work for sites and apps that support logins
since it operates off of hashed email addresses, but once logged in,
users can be targeted with personalized ads.
While this isn't an approach we want to see become the norm, it is at least upfront and clear.&lt;/p&gt;
&lt;p&gt;Lastly, some companies are trying to pressure Google and other players into slowing or reversing these changes.
When Apple's iOS 14 required apps using ad tracking to request user permission,
Facebook cried foul and is claiming that these &lt;a href="https://www.washingtonpost.com/technology/2020/12/16/facebook-apple-idfa-ios14-small-business/"&gt;privacy protections hurt small businesses&lt;/a&gt;.
The UK's Competition and Markets Authority (CMA) at the request of advertising market participants
is specifically investigating the changes to Chrome and the Privacy Sandbox.
Only the big ad players want to keep the status quo for ad tracking.
These tactics might delay things, but with users and governments asking for privacy improvements, they're going to come.&lt;/p&gt;
&lt;p&gt;We generally oppose all of these attempts at tracking users across the web,
and are building on a more privacy-focused foundation of contextual ad targeting.&lt;/p&gt;
&lt;h2 id="how-do-these-changes-affect-ethical-advertising"&gt;How do these changes affect ethical advertising?&lt;/h2&gt;
&lt;p&gt;For our small ethical advertising segment of the industry,
these changes will have pretty minimal effect.
Third-party cookies and all their prospective replacements
are all about gathering information on you (and millions of people like you)
in order to target ads to you based on your interests or to you personally.
Ethical advertising doesn't use third-party cookies
and doesn't store personal information.
We aren't trying to show ads to you personally, but instead
like traditional advertising on TV, in newspapers, or in magazines,
ethical ads are targeted to the content of the page.
We put ads for developers on developer focused sites. That's it.&lt;/p&gt;
&lt;p&gt;If you're interested in a future for advertising without intrusive surveillance and user tracking,
read more about our &lt;a href="/advertising-vision/"&gt;vision for ethical advertising&lt;/a&gt;.&lt;/p&gt;</content><category term="posts"/><category term="cookies"/><category term="adtech"/><category term="fingerprinting"/></entry><entry><title>EthicalAds Newsletter - February 2021</title><link href="/blog/2021/03/ethicalads-newsletter-february-2021/" rel="alternate"/><published>2021-03-08T00:00:00-08:00</published><updated>2021-03-08T00:00:00-08:00</updated><author><name>David Fischer</name></author><id>tag:None,2021-03-08:/blog/2021/03/ethicalads-newsletter-february-2021/</id><summary type="html">&lt;h2 id="february-advertising-stats"&gt;February advertising stats&lt;/h2&gt;
&lt;p&gt;February was our best month ever for advertising.
Despite being a shorter month, we were still able …&lt;/p&gt;</summary><content type="html">&lt;h2 id="february-advertising-stats"&gt;February advertising stats&lt;/h2&gt;
&lt;p&gt;February was our best month ever for advertising.
Despite being a shorter month, we were still able to beat our previous bests from &lt;a href="/blog/2021/02/ethicalads-newsletter-january-2021/"&gt;January&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In February 2021:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$23,854.36&lt;/strong&gt; for our publishers.
  Of this, $11,671.47 was publishers other than our own publisher (Read the Docs) which is a 5.5% increase over January.
  Going forward, we're going to report these numbers together.
  In March and beyond, we expect the revenue to outside publishers will surpass revenue to our own site.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;106 publishers&lt;/strong&gt; on our network with a paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;13,600,740&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We're working hard to grow revenue for all our publishers, and we're expecting another record month in March.&lt;/p&gt;
&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;Here's the major features we added in the last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;On the business side, we released our &lt;a href="/prospectus/ethicalads-advertiser-prospectus.pdf"&gt;Q2 prospectus&lt;/a&gt;
  which contains some of our new testimonials and some small additions like mentioning that CPC-based pricing is available.&lt;/li&gt;
&lt;li&gt;On our ad client, we rolled out our dark mode improvements
  built on &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme"&gt;&lt;code&gt;prefers-color-scheme&lt;/code&gt;&lt;/a&gt;
  to our beta client which is used by Read the Docs. This means sites that want to try it out can do so.
  Some Sphinx documentation themes already are.&lt;/li&gt;
&lt;li&gt;On our ad server, we improved a few reports (notably a report required by &lt;a href="https://acceptableads.com/"&gt;Acceptable Ads&lt;/a&gt;)
  and made some tweaks to speed up our throughput.&lt;/li&gt;
&lt;li&gt;In our infrastructure, we're really pushing the I/O on our server which is writing tens of times per second.
  We worked to try to alleviate some of this pressure and that will continue into March.&lt;/li&gt;
&lt;li&gt;While not strictly ads related, Read the Docs did extend an offer to a new person to join our team!
  More on that later.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest updates in our &lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="tricky-bits"&gt;Tricky bits&lt;/h2&gt;
&lt;p&gt;We still aim to hire a part-time account manager
to help manage advertiser and publisher relationships.
Hiring is always hard and takes a lot of time to do well.
If this role sounds interesting to you,
please &lt;a href="mailto:ads@ethicalads.io?subject=Ads%20account%20manager%20role"&gt;get in touch with any questions&lt;/a&gt;!
In addition, Read the Docs is hiring a &lt;a href="https://blog.readthedocs.com/job-frontend/"&gt;frontend developer&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Infrastructure will continue to cause some headaches in the next few months.
Read the Docs Community completed a move from Azure to AWS in February
and EthicalAds will probably follow suit in the next few months.
In addition, we've been hitting I/O limits as I mentioned above and while we've made improvements there
and our latency is pretty darn good, we still want to do more.
Our data points pretty directly to faster ads performing better.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We want to give both advertisers and publishers high level data right in their dashboard when they first login.
  These are stats like exactly how much advertising money they've spent or earned this month
  and how this month compares with last month.
  This feature is still on our roadmap but we didn't wrap it up in February.&lt;/li&gt;
&lt;li&gt;We're going to expand our advertising logic to take into account price when selecting ads.
  One advertiser has agreed to be a flex advertiser with part of their ad buys in Q2
  which will give them lower prices but not guaranteed inventory.
  This helps us ensure that as many ad slots have paid ads for our publishers while letting us balance our inventory.&lt;/li&gt;
&lt;li&gt;One publisher agreed to try out EthicalAds for some custom ad placements with non-standard sizes
  and per-month pricing rather than CPM.
  We have begun pitching this to advertisers and we may build some additional features to better support this based on interest.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/></entry><entry><title>Can you Eliminate Annoying Cookie Banners from your Site?</title><link href="/blog/2021/02/can-you-eliminate-annoying-cookie-banners-from-your-site/" rel="alternate"/><published>2021-02-22T00:00:00-08:00</published><updated>2021-02-22T00:00:00-08:00</updated><author><name>David Fischer</name></author><id>tag:None,2021-02-22:/blog/2021/02/can-you-eliminate-annoying-cookie-banners-from-your-site/</id><summary type="html">&lt;p&gt;Even before the General Data Protection Regulation (GDPR) went into effect in 2018
with its cookie consent policy, internet users …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Even before the General Data Protection Regulation (GDPR) went into effect in 2018
with its cookie consent policy, internet users have had unavoidable pop-up messages
thrust onto their screens on every page urging them to "accept all" cookies.&lt;/p&gt;
&lt;p&gt;Leaving aside for a moment how that has conditioned people to discard their privacy with a single click,
the experience is challenging on laptops. On mobile, it can be especially painful
with the cookie banner often occupying the majority of the smartphone's screen.&lt;/p&gt;
&lt;div style="width: 300px; margin: 2rem auto;"&gt;
  &lt;img class="w-100" src="/images/posts/2021-cookie-banners-ft-example.png" alt="A cookie banner on the Financial Times taking up about half the screen"&gt;
  &lt;p class="text-center"&gt;&lt;small&gt;A cookie banner on the Financial Times taking up about half the screen&lt;/small&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h2 id="why-exactly-are-these-cookie-banners-needed"&gt;Why exactly are these cookie banners needed?&lt;/h2&gt;
&lt;p&gt;The &lt;a href="https://gdpr.eu/cookies/"&gt;EU's GDPR&lt;/a&gt; requires that web sites get consent from visitors &lt;em&gt;before&lt;/em&gt; setting any non-essential cookies.
"Non-Essential Cookies" are those that are not strictly required for your site to function.
For example, a cookie to keep you logged in may be essential but an analytics cookie from a third-party would not be.
&lt;a href="https://www.oag.ca.gov/privacy/ccpa"&gt;California's Consumer Privacy Act&lt;/a&gt; (CCPA) requires only that visitors be notified of the use of cookies
if they are used for the purpose of collecting personal information; consent is not required.&lt;/p&gt;
&lt;h2 id="how-can-a-site-eliminate-cookie-banners"&gt;How can a site eliminate cookie banners?&lt;/h2&gt;
&lt;p&gt;The answer is simple in theory, but can be difficult depending on how your site works.
If you don't collect personal information or allow third parties to collect personal information
and you only set essential cookies,
you will not need to set a cookie banner.&lt;/p&gt;
&lt;p&gt;For most sites, the cookies that trigger the laws and violate user privacy are advertising cookies
and website analytics.
Until recently these have been difficult to do without.
Advertising is a proven business model for high traffic websites
and analytics are critical to understanding your site and users.
However, the internet has responded to users demand for increased privacy by providing privacy-aware services.&lt;/p&gt;
&lt;h2 id="privacy-oriented-services-that-eliminate-the-requirement-of-cookie-banners"&gt;Privacy-oriented services that eliminate the requirement of cookie banners&lt;/h2&gt;
&lt;p&gt;When it comes to analytics, the internet has seen a host of alternatives to industry giant Google Analytics come to market.
They include &lt;a href="https://www.cloudflare.com/web-analytics/"&gt;Cloudflare&lt;/a&gt;,
&lt;a href="https://usefathom.com"&gt;Fathom&lt;/a&gt;,
&lt;a href="https://plausible.io/"&gt;Plausible&lt;/a&gt; and more.
These either don't set cookies at all or can easily be configured not to.&lt;/p&gt;
&lt;p&gt;Finding a solution for internet advertising that doesn't trigger cookie banners or violate user privacy has been a larger challenge.
Some ad tech companies are working hard to keep tracking and targeting users without cookies.
This may meet the letter of the law, but definitely violates its intent.&lt;/p&gt;
&lt;p&gt;This is one of the many reasons we built EthicalAds.
Our &lt;a href="/advertising-vision/"&gt;vision for advertising&lt;/a&gt; is that ads can work well without tracking users.
Instead of setting advertising cookies and learning from users' browsing history,
we focus by advertising only to developers and target ads based on content alone.
And &lt;a href="/blog/2018/04/ethical-advertising-works/"&gt;this approach works&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;If you're tired of seeing a cookie banner on your site,
&lt;a href="/publishers/"&gt;join EthicalAds&lt;/a&gt; and ditch those annoying banners!&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Thanks to Greg Muscarella for the inspiration and feedback on this post.&lt;/em&gt;&lt;/p&gt;</content><category term="posts"/><category term="cookies"/></entry><entry><title>EthicalAds Newsletter - January 2021</title><link href="/blog/2021/02/ethicalads-newsletter-january-2021/" rel="alternate"/><published>2021-02-08T00:00:00-08:00</published><updated>2021-02-08T00:00:00-08:00</updated><author><name>David Fischer</name></author><id>tag:None,2021-02-08:/blog/2021/02/ethicalads-newsletter-january-2021/</id><summary type="html">&lt;h2 id="january-advertising-stats"&gt;January advertising stats&lt;/h2&gt;
&lt;p&gt;In January, we returned to growth as expected from a slow holiday season.
While the year always …&lt;/p&gt;</summary><content type="html">&lt;h2 id="january-advertising-stats"&gt;January advertising stats&lt;/h2&gt;
&lt;p&gt;In January, we returned to growth as expected from a slow holiday season.
While the year always starts a little slow, January started with a lot of advertiser interest and publishers
interested in making money with ads.&lt;/p&gt;
&lt;p&gt;In January 2021:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$10,566.78&lt;/strong&gt; for our publishers, a 12% increase from December and 5% increase from November, our previous peak.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;103 publishers&lt;/strong&gt; on our network with a paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;6,095,608&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;li&gt;Read the Docs, our own publisher, generated &lt;strong&gt;$16,381.53&lt;/strong&gt; on 6,929,551 paid ad impressions. Of our reported metrics, this was the only one down slightly and it was due to a few large advertisers balancing their spend between Read the Docs and our larger ad network.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For February, we are expecting another record breaking month in terms of daily traffic, daily revenue, and ads served.
It may not be as high as January in total (it'll be very close) but that's simply due to the number of days in the month.&lt;/p&gt;
&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;Here's the major features we added in the last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;On our ad client, we built a feature that allows ads to be displayed in light-mode or dark-mode
  based on the user's preferences if the publisher displaying the ad also supports this.&lt;/li&gt;
&lt;li&gt;On our ad server, we added a number of quality of life improvements,
  including automating some advertiser setup and fixing some minor data consistency bugs.&lt;/li&gt;
&lt;li&gt;In our infrastructure, we started archiving old, raw data on ad impressions
  (remember, we &lt;a href="/advertising-vision/"&gt;do not track user personal data&lt;/a&gt;)
  to keep our transactional database small and fast.&lt;/li&gt;
&lt;li&gt;On our website, we put up a job opening which we'll talk about in the next section.
  We also launched some more advertiser and publisher testimonials.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest updates in our &lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="growing-our-team"&gt;Growing our team&lt;/h2&gt;
&lt;p&gt;We posted a new part-time job opening
and we're hoping to bring somebody on to help manage advertiser and publisher relationships.
The job is going to be heavy on customer service but has some
light sales and marketing involved too.
This person will have a lot of impact on how EthicalAds continues to grow.&lt;/p&gt;
&lt;p&gt;This person will work directly with me (David) and with Eric
to make sure our publishers are getting as much money as they can
while our advertisers are getting the best results we can deliver.
We pride ourselves on the high level of service we provide,
and working closely with both publishers and advertisers helps to get great results.&lt;/p&gt;
&lt;p&gt;If this role sounds interesting to you,
please &lt;a href="mailto:ads@ethicalads.io?subject=Ads%20account%20manager%20role"&gt;get in touch with any questions&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;Also, Read the Docs is hiring a &lt;a href="https://blog.readthedocs.com/job-frontend/"&gt;frontend developer&lt;/a&gt;
and a &lt;a href="https://blog.readthedocs.com/job-devrel/"&gt;developer advocate with documentation skills&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="tricky-bits"&gt;Tricky bits&lt;/h2&gt;
&lt;p&gt;As we mentioned in December, hiring and onboarding new team members are hard work and require a lot of time to do well.
Now that we've started getting applications, we expect that this will take some time
but the end result will hopefully be faster responses to our advertisers and publishers.&lt;/p&gt;
&lt;p&gt;Hiring new people really can't come soon enough.
Between the the time spent on hiring (which is very important to get right),
time spent on working on &lt;a href="https://blog.readthedocs.com/czi-grant-announcement/"&gt;Read the Docs' CZI grant&lt;/a&gt;,
and some upcoming infrastructure changes at Read the Docs,
we're all feeling spread a bit thin.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We want to give both advertisers and publishers high level data right in their dashboard when they first login.
  These are stats like exactly how much advertising money they've spent or earned this month
  and how this month compares with last month.&lt;/li&gt;
&lt;li&gt;We're hoping to expand our advertising logic to take into account price when selecting ads.
  One advantage of this would allow us to have lower priority advertisers who buy ads at a lower rate
  but don't receive guarantees of inventory. This is helpful to make sure publishers are always showing paid ads
  while letting us balance our inventory.
  In January, we did start pitching this advertisers but haven't sold it or completed building it yet.&lt;/li&gt;
&lt;li&gt;We started exploring customized ad placements on single high-value publishers.
  This is different from our traditional ad offering which shows ads across our network
  and instead focuses on buying most or all inventory for a single publisher.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/></entry><entry><title>EthicalAds Newsletter - December 2020</title><link href="/blog/2021/01/ethicalads-newsletter-december-2020/" rel="alternate"/><published>2021-01-12T00:00:00-08:00</published><updated>2021-01-12T00:00:00-08:00</updated><author><name>David Fischer</name></author><id>tag:None,2021-01-12:/blog/2021/01/ethicalads-newsletter-december-2020/</id><summary type="html">&lt;h2 id="december-advertising-stats"&gt;December advertising stats&lt;/h2&gt;
&lt;p&gt;December was a slightly down month here at EthicalAds from our record-breaking November.
Considering the major holidays …&lt;/p&gt;</summary><content type="html">&lt;h2 id="december-advertising-stats"&gt;December advertising stats&lt;/h2&gt;
&lt;p&gt;December was a slightly down month here at EthicalAds from our record-breaking November.
Considering the major holidays, I'll still call that a win.
The bulk of our advertising is shown during business hours and there were a lot fewer business hours in December.&lt;/p&gt;
&lt;p&gt;In December 2020:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$9,373.04&lt;/strong&gt; for our publishers, a 7% decrease from November.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;89 publishers&lt;/strong&gt; on our network with a paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;5,227,541&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In &lt;a href="/blog/2020/12/ethicalads-newsletter-november-2020/"&gt;November&lt;/a&gt;, we mentioned we were holding out hope of a December increase
while mentioning that it is a historically down month for advertising.
We got pretty close, but weren't quite able to get there.
For January, in spite of the New Years holiday which results in a few days of lower traffic,
we're expecting a return to growth.&lt;/p&gt;
&lt;p&gt;It's amazing to look back and realize that while we've been sustaining Read the Docs with advertising for a few years now,
our wider EthicalAds network just started in July and we've been going for only six months.
In just those six months, we've grown from nothing and generated &lt;strong&gt;$42,239&lt;/strong&gt; for our publishers.&lt;/p&gt;
&lt;h2 id="read-the-docs-advertising-stats"&gt;Read the Docs advertising stats&lt;/h2&gt;
&lt;p&gt;For 2021, we wanted to begin to also report Read the Docs' advertising stats just like we're doing for the ad network.
We've reported these numbers previously in yearly &lt;a href="https://blog.readthedocs.com/read-the-docs-2019-stats/"&gt;Read the Docs stats posts&lt;/a&gt;
but not on a monthly basis like we are for EthicalAds.
We will continue to break out third-party publishers just as we have been so stats will continue to be comparable month over month.
For Read the Docs in December, we achieved &lt;strong&gt;$17,656.37&lt;/strong&gt; in advertising revenue on &lt;strong&gt;8,575,795&lt;/strong&gt; paid ad views.
Our goal here is to treat our own publisher, Read the Docs, as just a regular publisher as far as the ad network is concerned.
From a company perspective, we will be separating them out in terms of accounting and budget as well.&lt;/p&gt;
&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;The big things we added last month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We broke out our headlines and calls to action in our ads.
  This allows publishers with custom integrations to style them differently and gives advertisers
  a convenient way to show which content should be called out.&lt;/li&gt;
&lt;li&gt;We added some new reporting for advertisers to break down their performance by geography and by publisher.
  We expect that as advertisers analyze this data we are going to get requests to advertise only on specific publishers
  or on more limited geographic subsets. We are still working out exactly how to sell that.&lt;/li&gt;
&lt;li&gt;We rolled out some testimonials from advertisers and publishers on this site.&lt;/li&gt;
&lt;li&gt;We also delivered a &lt;a href="/prospectus/ethicalads-advertiser-prospectus.pdf"&gt;new prospectus for Q1 2021&lt;/a&gt;.
  The largest change was a modest price increase for targeting the US &amp;amp; Canada
  where demand continues to outstrip our supply.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest updates in our &lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="growing-our-team"&gt;Growing our team&lt;/h2&gt;
&lt;p&gt;Last month we mentioned that we'd be hoping to expand our team and that's going to start this month.
Both the Read the Docs team and the ads team are going to expand
and job postings will be up by the end of the month.&lt;/p&gt;
&lt;p&gt;For advertising, we are looking to bring on a part-time person
to help manage advertiser and publisher relationships.
At the beginning, this role will involve some customer service along with some light sales and marketing,
but the role could specialize in either direction as we continue to grow.
As I mentioned, this will start as a part-time role but we hope it will become a full-time role
by the second half of the year.&lt;/p&gt;
&lt;p&gt;This person will work directly with me (David) and with Eric
to make sure our publishers are getting as much money as they can
while our advertisers are getting the best results we can deliver.
Unlike many SaaS businesses, advertising is a little higher touch,
and working closely with both publishers and advertisers helps to get great results.&lt;/p&gt;
&lt;p&gt;If this role sounds interesting to you, please &lt;a href="mailto:ads@ethicalads.io?subject=Ads%20relationship%20manager%20role"&gt;let us know&lt;/a&gt;!&lt;/p&gt;
&lt;h2 id="tricky-bits"&gt;Tricky bits&lt;/h2&gt;
&lt;p&gt;Both hiring and afterward onboarding new team members are hard work and require a lot of time to do well.
We expect that this will take some time but the end result will hopefully be faster responses
to our advertisers and publishers.&lt;/p&gt;
&lt;p&gt;Beginning in 2021, we want to treat Read the Docs as simply another publisher
and this means separating out the budget and accounting of each.
To get specific, we'll be attributing 70% of ad revenue on Read the Docs to Read the Docs itself
and count the other 30% of the revenue toward the EthicalAds network just as we do with third-party publishers.
This will let us better allocate resources to grow both sides of the company.&lt;/p&gt;
&lt;p&gt;Another upcoming challenge in the next month is an engineering challenge around how we save data for long term archival.
While we &lt;a href="/advertising-vision/"&gt;explicitly do not track user personal data&lt;/a&gt;,
we still end up storing a large amount of data on ad impressions
in case we get issues with fraud or merely a billing dispute.
This data is close to exceeding what's reasonable to store in our transactional database and we'll need to move
into a system that can scale up a lot but it won't have real-time requirements.
While this is a fairly well-understood OLTP/OLAP kind of problem,
adding new infrastructure to our reporting is never easy.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We want to give both advertisers and publishers high level data right in their dashboard when they first login.
  These are stats like exactly how much advertising money they've spent or earned this month
  and how this month compares with last month.&lt;/li&gt;
&lt;li&gt;We're hoping to expand our advertising logic to take into account price when selecting ads.
  This will allow us to assure maximum revenue for a publisher,
  but we don't want to always show a single ad on that site, either.&lt;/li&gt;
&lt;li&gt;We hope to do a beta test of a sponsorship program with a publisher,
  which is an extension of the ad network to allow for specific and customized placements on high-value publishers.
  If you're get advertisers asking you directly how to advertise on your site,
  please let us know.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/></entry><entry><title>EthicalAds Newsletter - November 2020</title><link href="/blog/2020/12/ethicalads-newsletter-november-2020/" rel="alternate"/><published>2020-12-03T00:00:00-08:00</published><updated>2020-12-03T00:00:00-08:00</updated><author><name>Eric Holscher</name></author><id>tag:None,2020-12-03:/blog/2020/12/ethicalads-newsletter-november-2020/</id><summary type="html">&lt;h2 id="november-advertising-stats"&gt;November advertising stats&lt;/h2&gt;
&lt;p&gt;November was a record-breaking month here at EthicalAds.
Even though we had a major US holiday and …&lt;/p&gt;</summary><content type="html">&lt;h2 id="november-advertising-stats"&gt;November advertising stats&lt;/h2&gt;
&lt;p&gt;November was a record-breaking month here at EthicalAds.
Even though we had a major US holiday and only 30 days,
we were able to increase publisher revenue by over 30% this month.&lt;/p&gt;
&lt;p&gt;The major driver of increased revenue was being added to the Acceptable Ads list in mid-November.
We estimate this will increase publisher revenue by 10-15%,
which explains a lot of the increase in publisher revenue.
The other major driver of revenue is adding additional publishers to the network,
which we continue to do.&lt;/p&gt;
&lt;p&gt;In November 2020:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$10,059.39&lt;/strong&gt; for our publishers, breaking $10,000 for the first time!&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;79 publishers&lt;/strong&gt; on our network with a paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;5,484,006&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We are excited that all of our core metrics increased this month.
We hope they will continue to increase in December,
but December is historically a low traffic month because there are more global holidays,
so we'll have to wait to find out!&lt;/p&gt;
&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;The big things we added this month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We were approved for the Acceptable Ads program, which required changes to both our server and client to track traffic we can attribute to the program.&lt;/li&gt;
&lt;li&gt;We added reporting for Advertisers to see what Countries and Publishers their ads are showing on the most.&lt;/li&gt;
&lt;li&gt;We added keyword reporting for Publishers. This allows them to see the performance of the various keywords they are sending on incoming traffic.&lt;/li&gt;
&lt;li&gt;We improved our payout workflow, which is part of the work required to lower our payout limit of $50.&lt;/li&gt;
&lt;li&gt;We added backend support for Fill Rate tracking. This allows us to understand more about how ads are being filled across keywords, geos, and publishers.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest updates in our &lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="tricky-bits"&gt;Tricky bits&lt;/h2&gt;
&lt;p&gt;This month has felt like the ad network has really hit its stride.
The inclusion of EthicalAds on the Acceptable Ads program is a major benefit,
and has removed our longest-running difficulty.&lt;/p&gt;
&lt;p&gt;As part of launching the ad network,
we have had 2 members of the team (Eric &amp;amp; David) fully focused on advertising.
As we look to grow the network,
we are hoping to expand our team by at least one person in the near future.
We have started thinking about a job description for the person we hope to bring on.
Hiring is always a challenge,
but we're excited about having growth to be able to think about supporting an additional team member.
The role we're imagining is an part-time account executive,
but someone who is interested in growing into a larger full-time business role over time.&lt;/p&gt;
&lt;p&gt;As part of this transition,
our team member Eric will be scaling back his involvement on advertising from close to 100% of time to 50%.
This will allow us to bring on an additional team member without hurting our budget too much,
until we can fully support having a team of 3 people.&lt;/p&gt;
&lt;p&gt;We have also almost fully completed the separation of Read the Docs and EthicalAds.
In January 2021,
we are planning to fully separate the businesses in terms of our accounting and budget.
This will be the end result of the transition of Read the Docs to being a normal Publisher on EthicalAds.
It will likely take us a few months to fully work through this transition,
but it will allow us to grow advertising more quickly as we see growth in the ad network.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;The major features in our upcoming roadmap:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We're still hoping to adapt our ad format to &lt;a href="https://github.com/readthedocs/ethical-ad-server/issues/152"&gt;break out a headline and a call to action&lt;/a&gt;. This will standardize our ad display, along with making sure that all our advertisers have ads that work across multiple formats.&lt;/li&gt;
&lt;li&gt;We want to give advertisers a way to change the flight targeting of their advertisements. Changing targeting generally changes the pricing, so this will require the dashboard knowing more about pricing for different targeting options.&lt;/li&gt;
&lt;li&gt;We're hoping to expand our advertising logic to take into account price when selecting ads. This will allow us to assure maximum revenue for a publisher, but we don't want to always show a single ad on that site, either.&lt;/li&gt;
&lt;li&gt;We hope to do a beta test of a sponsorship program with a publisher, which is an extension of the ad network to allow for specific placements on high-value publishers.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks again for being along with us on this journey to build an ethical ad network.
Please &lt;a href="mailto:ads@ethicalads.io"&gt;email us&lt;/a&gt; if you have any ideas or feedback on our product or roadmap,
we always love to hear from you.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/></entry><entry><title>EthicalAds Newsletter - October 2020</title><link href="/blog/2020/11/ethicalads-newsletter-october-2020/" rel="alternate"/><published>2020-11-02T00:00:00-08:00</published><updated>2020-11-02T00:00:00-08:00</updated><author><name>Eric Holscher</name></author><id>tag:None,2020-11-02:/blog/2020/11/ethicalads-newsletter-october-2020/</id><summary type="html">&lt;h2 id="advertising-stats"&gt;Advertising stats&lt;/h2&gt;
&lt;p&gt;October was another productive month on our side.
We continue to onboard new publishers and advertisers.
Growing the …&lt;/p&gt;</summary><content type="html">&lt;h2 id="advertising-stats"&gt;Advertising stats&lt;/h2&gt;
&lt;p&gt;October was another productive month on our side.
We continue to onboard new publishers and advertisers.
Growing the network each month feels great,
and we're always looking for more folks to join.&lt;/p&gt;
&lt;p&gt;In terms of development,
we've been focusing a lot on performance and reporting improvements.
This work makes sure ads load fast, which improves the user experience.
The additional reporting improvements we've made should help publishers understand the ads running on their site in more detail.&lt;/p&gt;
&lt;p&gt;In terms of stats, in October 2020:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We generated &lt;strong&gt;$7,580.43&lt;/strong&gt; for our publishers&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;72 publishers&lt;/strong&gt; on our network with a paid ad impression.&lt;/li&gt;
&lt;li&gt;We had &lt;strong&gt;4,571,606&lt;/strong&gt; paid ad views across the world.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Notably, we actually had fewer ad views this month, mostly because one of larger publishers had some integration issues.
We were able to increase revenue though with fewer ads,
which shows that our pricing increases are starting to take effect.&lt;/p&gt;
&lt;h2 id="new-features"&gt;New features&lt;/h2&gt;
&lt;p&gt;The big things we added this month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We have started adding &lt;a href="https://www.ethicalads.io/publishers/readthedocs/"&gt;testimonials&lt;/a&gt; to our website from our publishers and advertisers. We only have a couple completed, but will be adding more in the near future.&lt;/li&gt;
&lt;li&gt;We have added reporting for publishers that show Geo and Advertiser breakdowns. These are in beta and will be enabled for everyone this week.&lt;/li&gt;
&lt;li&gt;We have added &lt;a href="https://github.com/readthedocs/ethical-ad-client/pull/29/"&gt;viewport tracking&lt;/a&gt; to our ad client. This is a backstop to our Publisher Policy, confirming that ads are actually viewed for billing purposes.&lt;/li&gt;
&lt;li&gt;We migrated our hosting infrastructure from a Docker-based solution to a VM-based solution. This brought a 3x improvement to our average server response latency, which is now 45ms on average and 75ms at the 99th percentile.&lt;/li&gt;
&lt;li&gt;As part of this server migration we have built the capability to do &lt;a href="https://github.com/readthedocs/ethical-ad-server/pull/260/files"&gt;periodic report generation&lt;/a&gt;. We're currently updating the Geo reports each hour, but will tweak this over time as we figure out what the best options here are.&lt;/li&gt;
&lt;li&gt;We also updated our ad integration on Read the Docs to use the standard ethical-ad-client. This is one of the last steps of making Read the Docs "just another publisher" and not be special. As part of this, we removed legacy ad types, and now all ads are the same image+text or image-only ads.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can always see our latest updates in our &lt;a href="https://ethical-ad-server.readthedocs.io/en/latest/developer/changelog.html"&gt;ethical-ad-server changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="tricky-bits"&gt;Tricky bits&lt;/h2&gt;
&lt;p&gt;It feels like we've managed to address most of our existing issues. Our server performance has been a nagging issue since launched, and it's very excited to have fixed it and seen quite impressive gains. Having additional infrastructure to handle periodic reporting is also another major thing we needed to do, so that we can add more reporting without impacting advertising performance.&lt;/p&gt;
&lt;p&gt;We have a signed contract with the Acceptable Ads program, which is a major milestone. We expect this change to roll out early in November, which we forecast will bring an increase of 15% more ads shown. This will increase our publishers revenue and removes a large structural barrier that we faced to competing with other advertising networks.&lt;/p&gt;
&lt;p&gt;One of our ongoing worries is about balancing supply and demand on the network. Especially with keyword targeting, it can be hard to maintain fill rates across our publisher network while also fully filling campaigns for our advertisers. We expect this will continue to be a difficult task forever, but we're slowly starting to understand how to balance this tension. We're also working to manage expectations on both sides, knowing that forecasting web traffic isn't an exact science.&lt;/p&gt;
&lt;h2 id="upcoming-features"&gt;Upcoming features&lt;/h2&gt;
&lt;p&gt;Our upcoming roadmap has a few major tasks on it this month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We're planning to adapt our ad format to &lt;a href="https://github.com/readthedocs/ethical-ad-server/issues/152"&gt;break out a headline and a call to action&lt;/a&gt;. This will standardize our ad display, along with making sure that all our advertisers have ads that work across multiple formats.&lt;/li&gt;
&lt;li&gt;We're working on a Publisher Prospectus, which is similar to our &lt;a href="https://www.ethicalads.io/prospectus/ethicalads-advertiser-prospectus.pdf"&gt;advertiser prospectus&lt;/a&gt; -- a single place to understand what being a publisher looks like.&lt;/li&gt;
&lt;li&gt;We didn't get to it last month, but we want additional publisher &amp;amp; advertiser landing pages. We hope to build topic-specific pages to share more information for specific audiences on these pages, to go along with our testimonials.&lt;/li&gt;
&lt;li&gt;We started conversations about trademarking EthicalAds, but haven't applied for it yet. This process will take 4-6 months, but we do want to make sure we've gotten it started.&lt;/li&gt;
&lt;li&gt;We plan to take our expanded publisher reports and add similar improvements to our advertising reports.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are many other small tasks we'll continue to work on, along with lots of email :)&lt;/p&gt;
&lt;p&gt;Thanks again for following along on our journey, and we're excited to continue to build something we can all be proud of.&lt;/p&gt;</content><category term="posts"/><category term="newsletter"/><category term="community"/></entry></feed>