<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Gareth Hates AdTech]]></title><description><![CDATA[The Inescapable Vortex of Advertising Technology]]></description><link>https://www.garethhatesadtech.com</link><image><url>https://substackcdn.com/image/fetch/$s_!QMzU!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9982ec53-e46c-4b94-8412-018db3d86a0a_1024x1024.png</url><title>Gareth Hates AdTech</title><link>https://www.garethhatesadtech.com</link></image><generator>Substack</generator><lastBuildDate>Mon, 18 May 2026 01:49:29 GMT</lastBuildDate><atom:link href="https://www.garethhatesadtech.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Gareth Glaser]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[garethhatesadtech@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[garethhatesadtech@substack.com]]></itunes:email><itunes:name><![CDATA[Gareth Glaser]]></itunes:name></itunes:owner><itunes:author><![CDATA[Gareth Glaser]]></itunes:author><googleplay:owner><![CDATA[garethhatesadtech@substack.com]]></googleplay:owner><googleplay:email><![CDATA[garethhatesadtech@substack.com]]></googleplay:email><googleplay:author><![CDATA[Gareth Glaser]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[A Tale of Two Cities]]></title><description><![CDATA[Hello All,]]></description><link>https://www.garethhatesadtech.com/p/a-tale-of-two-cities</link><guid isPermaLink="false">https://www.garethhatesadtech.com/p/a-tale-of-two-cities</guid><dc:creator><![CDATA[Gareth Glaser]]></dc:creator><pubDate>Wed, 15 Oct 2025 13:55:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!vPD_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c20e1b-12a7-404c-8512-25fa49d4f483_500x500.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello All,</p><p>I&#8217;ve got a bit of catching up to do &#8211; I originally wrote this post up on Monday, and while I feel like a lifetime has transpired since then, I think it&#8217;s still worthwhile to respond to a few great articles that came out in the last week.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Gareth Hates AdTech! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>The first I&#8217;d like to explore is a post from Scott Messer that got great engagement &#8211; <a href="https://www.linkedin.com/posts/smesser_programmatic-adtech-curation-activity-7383464041798623232-7iNT?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAAAOyvR8BP2jkp5oV9vvOrVvzgEItupNdUsc">https://www.linkedin.com/posts/smesser_programmatic-adtech-curation-activity-7383464041798623232-7iNT?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAAAOyvR8BP2jkp5oV9vvOrVvzgEItupNdUsc</a> - on Friday, after the podcast, Scott pinged me with a thought &#8211; that Prebid would be for SSPs and OpenAds would be for DSPs &#8211; and I said you need to post that right now. It&#8217;s a very interesting thought.</p><p>I cheekily withheld from him <em>why</em> I thought it was interesting. It&#8217;s an interesting premise because when I reflect upon the reasons that Jeff outlined as his justifications for their creating OpenAds, I realized none of them materially affect SSPs. This alone, without transaction ID, is indicative enough of the diverging interests of legacy SSPs and legacy DSPs to justify separate auction mechanisms to satisfy their unique requirements. Let&#8217;s dig in.</p><p>Last friday on the show Jeff outlined three reasons to create OpenAds &#8211; Obfuscation, Duplication, and Sometimes Lying. People have been up in arms about these characterizations, but broadly speaking, I think they&#8217;re objectively true. Without re-explaining them for the 1000th time, I came to the realization that SSPs <em>overwhelmingly benefit from these behaviors</em> while DSPs optimizing to performance are <em>actively hurt by them</em>.</p><p>SSPs benefit from them in numerous ways.</p><p>Obfuscation? They would be the ones doing the obfuscating, so they&#8217;re always aware of it. And if an SSP is choosing to obfuscate, it means they&#8217;re doing it because they think the DSP is going to bid <em>more</em> money with <em>less </em>information. It&#8217;s a tool in the SSP kit. I can&#8217;t say it&#8217;s my favorite, but hey, until literally the past 2-3 months DSPs haven&#8217;t seemed to care so who am I to judge.</p><p>Duplication? From a curation perspective, SSPs are immune to lots of duplication &#8211; if anyone is duplicating things, it&#8217;s either happening on a page where they ostensibly can see it (and would take the time to), or they would be the ones doing it. They can also work with vendors like Gamera to gain powerful optics into on-page stuff, and a few SSPs do (we work with a couple of curation platforms &#8211; as always, hit me up to learn more). From a non-curation perspective, where SSPs have a different job &#8211; to just get the right user IDs in front of DSPs as many times as humanly possible - duplication is so effective that it has become a business model unto itself.</p><p>Sometimes Lying? I think this is a nod to ID bridging, but there are plenty of other forms of fraud. ID bridging satisfies the unsophisticated DSPs insatiable thirst for User IDs &#8211; this, like duplication, has literally become a business model unto itself.</p><p>All of this being said, assuming these things are problems for buyers, in the current DSP SSP paradigm, curation actually solves all three of these problems <em>pretty darn well</em>. This is because SSPs aren&#8217;t shackled with the sins of the father, namely, they&#8217;re not expected to be a &#8220;neutral ad purchaser from all SSPs.&#8221; In my estimation, most of these problems are only really issues if you can&#8217;t buy directly from publishers, and by virtue of the fact that curation gets to just buy from <em>within </em>an SSP, curation is essentially each SSP building their own version of OpenPath (which is brilliant, and certainly good for buyers who use it &#8211; as long as competition exists).</p><p>What makes this whole debacle 5-D chess is that the SSPs get to have their cake and eat it too. By manipulating the auction infrastructure to support the three sins, and <em>also</em> offering curation, they get to create the disease while also innocently selling the cure. DSPs, meanwhile, look <em>selfish</em> when they roll out their own version of direct to publisher technology, and for certain unsophisticated buyers (folks just trying to deliver against UserID lists), buying across the three sins actually performs <em>better</em> (later in this article on bad incentives fucking up our whole ecosystem). Hats off to the SSPs for majestically satisfying both ends of the performance and brand spectrum simultaneously.</p><p>So yes, I think Scott&#8217;s description is interesting &#8211; because we now know that Prebid is largely built by SSPs for SSPs, and OpenAds was built to solve problems that SSPs don&#8217;t have! We&#8217;ll see if other DSPs get the memo and actually try to create efficiency and performance for their clients the way that TTD is.  Is OpenAds the <em>only</em> solution to this?  No, I think not.  I think people will come up with other creative ones, there will be iteration, and there will be improvement.  But did we need a catalyst for change?  Yes, we certainly did.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vPD_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c20e1b-12a7-404c-8512-25fa49d4f483_500x500.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vPD_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c20e1b-12a7-404c-8512-25fa49d4f483_500x500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!vPD_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c20e1b-12a7-404c-8512-25fa49d4f483_500x500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!vPD_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c20e1b-12a7-404c-8512-25fa49d4f483_500x500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!vPD_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c20e1b-12a7-404c-8512-25fa49d4f483_500x500.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vPD_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c20e1b-12a7-404c-8512-25fa49d4f483_500x500.jpeg" width="500" height="500" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a5c20e1b-12a7-404c-8512-25fa49d4f483_500x500.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:500,&quot;width&quot;:500,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:48799,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.garethhatesadtech.com/i/176234021?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c20e1b-12a7-404c-8512-25fa49d4f483_500x500.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vPD_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c20e1b-12a7-404c-8512-25fa49d4f483_500x500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!vPD_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c20e1b-12a7-404c-8512-25fa49d4f483_500x500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!vPD_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c20e1b-12a7-404c-8512-25fa49d4f483_500x500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!vPD_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c20e1b-12a7-404c-8512-25fa49d4f483_500x500.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Another closing thought for this one &#8211; with the Google remedies coming up, there will be a proliferation of Adservers that offer meta-auction management and direct sales management that are super cheap. If I were a prebid management company, I&#8217;d be building this, like, yesterday. Ping me if you&#8217;d like some advice!</p><p>The other article I&#8217;d like to address is my buddy Rob Webster&#8217;s <a href="https://www.linkedin.com/pulse/saving-open-web-why-we-need-stop-selling-programmatic-robert-webster-sdhoe/?trackingId=8BAH2wLgQtyq778WOrwE5A%3D%3D">https://www.linkedin.com/pulse/saving-open-web-why-we-need-stop-selling-programmatic-robert-webster-sdhoe/?trackingId=8BAH2wLgQtyq778WOrwE5A%3D%3D</a> who is a buy side guy doing a lovely job of getting the message out that Programmatic doesn&#8217;t perform and some heads need to roll about it (shout out to Jana as well).</p><p>Rob captures a lot of things very well and I generally love this piece (especially his vision of the future, which I can get behind), but I want to dig into this because I think it&#8217;s a refrain that goes unexamined :</p><p>&#8220;This is the structural rot at the heart of the open exchange. It&#8217;s not that people are evil; it&#8217;s that the incentives are backwards. As Matthew Prince of Cloudflare puts it, traffic has never been a good proxy for value, yet we built an entire industry around maximizing it. Publishers were caught in a system designed to fail them.&#8221;</p><p>The question I&#8217;d like to ask is which incentives and why. Mr. Prince seems to say that publishers were just &#8220;incentivized to get traffic,&#8221; but I don&#8217;t think he digs deeper. And then Rob digs into quality and exchanges &#8211; but I think this is wrong, or at least, incomplete. And I think it&#8217;s because as an industry, we&#8217;ve become confused (or even worse, hoodwinked) about what open web programmatic is for. Once again, a reminder, facebook is generating <em>meaningful</em> CPMs for UGC content, and we can&#8217;t seem to get high prices for new yorker essays about luxury vehicles. There must be more to this story.</p><p>I, for many years, believed I worked in a business designed to deliver effective digital advertising for buyers.</p><p>We might not.</p><p>There is a nonzero chance that to date none of us in programmatic have worked in a business built to deliver effective digital ads.</p><p>The ugly reality might be that the primary consumers and clients of programmatic to date have been Agencies primarily concerned with a way to capture more margin. Making ads work as well as possible was simply not their priority. The job of DSPs (on behalf of many of these agencies) has been to :</p><ol><li><p>Deliver ads to a list of User IDs</p></li><li><p>Facilitate kickbacks at every point in the value chain in order for agencies to recapture margin downstream that they&#8217;re not allowed to put in their initial proposal. DSP, SSP, Sales House &#8211; you name it, they were all in on it and getting squeezed.</p></li></ol><p>People keep painting the commoditization of publisher inventory as technological or structural, and blaming programmatic for it as a tool. In reality, it&#8217;s not the tool that did it, it&#8217;s the users of the tool &#8211; the target audience &#8211; and that audience consisted of buyers that don&#8217;t give a shit if their ads perform or not. How on god&#8217;s green earth do we expect publishers to be able to charge anything if buyers don&#8217;t care about performance?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ly6k!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26be3145-592b-498f-85e3-97c8cd96ece2_640x459.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ly6k!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26be3145-592b-498f-85e3-97c8cd96ece2_640x459.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ly6k!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26be3145-592b-498f-85e3-97c8cd96ece2_640x459.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ly6k!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26be3145-592b-498f-85e3-97c8cd96ece2_640x459.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ly6k!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26be3145-592b-498f-85e3-97c8cd96ece2_640x459.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ly6k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26be3145-592b-498f-85e3-97c8cd96ece2_640x459.jpeg" width="640" height="459" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/26be3145-592b-498f-85e3-97c8cd96ece2_640x459.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:459,&quot;width&quot;:640,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:66232,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.garethhatesadtech.com/i/176234021?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26be3145-592b-498f-85e3-97c8cd96ece2_640x459.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ly6k!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26be3145-592b-498f-85e3-97c8cd96ece2_640x459.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ly6k!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26be3145-592b-498f-85e3-97c8cd96ece2_640x459.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ly6k!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26be3145-592b-498f-85e3-97c8cd96ece2_640x459.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ly6k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26be3145-592b-498f-85e3-97c8cd96ece2_640x459.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>That&#8217;s what&#8217;s been causing the race to the bottom. It&#8217;s actually not even the user-based buying in and of itself &#8211; it&#8217;s user based buying with a complete disregard for post-delivery outcomes. How could publisher inventory be worth anything or be at all differentiated if the buyers aren&#8217;t optimizing? And I think we&#8217;re finding out now that lots of buyers <em>haven&#8217;t been</em>. Now, I don&#8217;t mean to paint with too broad of a brush &#8211; I&#8217;m sure there are plenty of buyers who just stopped buying programmatic because it didn&#8217;t work, and maybe even some who want to do the right thing &#8211; but there were enough of these &#8220;unsophisticated buyers&#8221; to line the pockets of ad tech companies for about 20 years.</p><p>So don&#8217;t blame OpenRTB. Don&#8217;t blame the structure. Blame the fact that we&#8217;ve built an industry to serve a set of clients that will never pay more than bottom of the barrel rates because they have absolutely no reason to &#8211; they don&#8217;t care if the ads work or not, they just want to hit a userID as cheaply as humanly (or machinery) possible without serving to something that lands them on the front page of adweek in a negative way (cue our two billion dollar cover your ass publicly traded companies).</p><p>That being said, things are changing. Chalice does case studies about buying at super high CPMs for advertisers actually concerned with outcomes. The Trade Desk, much to my boyish delight, has decided to actually build infrastructure that is dedicated to making advertising campaigns perform better, and even though all of you keep giving them shit for it, they barrel forward undeterred. It is from actors like this that the new future will flow forth, and their inevitable competitors. This is why I&#8217;ve started a company dedicated to making the web perform better by helping create high-value metadata and analytics in this new efficient ecosystem.</p><p>In response to Rob&#8217;s article I will go back to my refrain &#8211; Facebook average CPMs are between $10 and $25. This means that advertisers, at times, are willing to pay $25 CPMs for banners because the post-click CPAs are so competitive.</p><p>That world can exist on the open web. Even if we have DSPs and an &#8220;Auction Management Company&#8221; charging 30% across the two of them (I can dream can&#8217;t I?), that&#8217;s $7-$17.5 net to publishers. Can you imagine how the internet would look if that&#8217;s what website CPMs were? Hell, can you imagine how the <em>global economy</em> would look? And even if open web CPMs were 50% of that, we would be in a magnificently superior place to where we are now. Thank goodness a few companies are trying to make it happen.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Gareth Hates AdTech! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The March Of Quality is Unstoppable]]></title><description><![CDATA[Maybe I'm Actually An Ad Tech Golden Retriever]]></description><link>https://www.garethhatesadtech.com/p/the-march-of-quality-is-unstoppable</link><guid isPermaLink="false">https://www.garethhatesadtech.com/p/the-march-of-quality-is-unstoppable</guid><dc:creator><![CDATA[Gareth Glaser]]></dc:creator><pubDate>Thu, 09 Oct 2025 18:47:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/iAvdjGl-Vfw" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I&#8217;ve been thinking a lot about what would be appropriate to write about in advance of tomorrow&#8217;s show, where Jeff Green, the arguable leader of the independent ad tech world, will be coming on to our podcast (watch here) </p><div id="youtube2-iAvdjGl-Vfw" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;iAvdjGl-Vfw&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/iAvdjGl-Vfw?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>TIDs have been beaten to death, though I know a lot of you will want to talk about them. Extending the topic, people may want me to try to talk about TTD&#8217;s press releases and what they&#8217;re working on.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Gareth Hates AdTech! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>But I think you&#8217;re going to get lots of that. I think the thing that is worth doing right now is trying to contextualize the moment. And if we do, I think it will provide all of us with clarity.</p><p>Before I dig in &#8211; a disclaimer. This article is not meant to condemn or pass judgment on any of these practices. If I&#8217;m being honest, I personally have both benefitted from them and been massively damaged when the industry shifted to do away with them. So don&#8217;t think of this article as judgment from an ivory tower; rather, this is my attempt at a relatively objective commentary on celestial bodies.</p><p>The thesis : The past 15 years of ad tech have included a series of improvements and paradigm shifts towards quality (damnit, Erez, might&#8217;ve been right about this whole thing, but don&#8217;t tell him).</p><p><strong>Quality Reckoning 1 - Domain Spoofing &amp; Toolbars</strong></p><p>Originally, the first big scandals were related to domain spoofing (this was prior to header bidding existing). In the original ad tech platforms, in order to deal with the fact that ad tags sometimes rendered into unfriendly/hard iframe environments (sorry, this is a relatively technical concept &#8211; the idea behind a hard iframe is that the code executing inside of the iframe can&#8217;t talk to anything outside of it. Think about your ad rendering inside of a box that isn&#8217;t allowed to know anything about what&#8217;s outside of it) those ad tags allowed you to hardcode a domain into the tag. Basically, you could type &#8220;&amp;domain=&#8221; at the end of the tag and the ad exchanges would pass that domain into the bidstream to be purchased from buyers.</p><p>Can you guess what there was a ton of in this era? That&#8217;s right, domain spoofing and toolbar traffic. Exchanges were flooded with Facebook inventory, Yahoo inventory, you name it &#8211; whichever domains drove the highest CPMs (I&#8217;m sure there&#8217;s a Fou out there who will reply and say THIS IS STILL HAPPENING!) produced by people fabricating the domains using &amp;domain=. This is because the market at the time basically just wanted to &#8220;buy domains&#8221; for certain brands &#8211; and the technology that existed could be exploited to meet those demands. There also wasn&#8217;t a lot of post-bid detection, and as long as the report said you served to &#8220;<a href="http://foxnews.com">foxnews.com</a>&#8221; the buyers were stoked. So, participants in the ecosystem realized they could make meaningful amounts of money by &#8220;misrepresenting&#8221; their inventory &#8211; or in the case of toolbars, just not disclosing that it wasn&#8217;t being sold by the publisher itself, rather by another technology provider.</p><p>There was a massive reckoning. AppNexus shut off dozens of ad networks and significant portions of their traffic. Many ad exchange volumes precipitously declined. Companies went out of business and the ecosystem transformed. This wasn&#8217;t done because the sellers wanted to &#8211; sure some publishers were mad, but other &#8220;sellers&#8221; were the ones reaping the benefits! The change was made because buyers demanded it. And, at the end of the day, as Brian explained with many graphs &#8211; what happened was a redistribution, not tremendous shrinkage. And this will be a refrain if we look closely &#8211;</p><p><strong>Effect of tactics on Buyers</strong> : Uncertain what they&#8217;re buying, often buying something that isn&#8217;t what it says it is. Less effective optimization.</p><p><strong>Effect of tactics on Publishers</strong> : for publishers being spoofed, money going to spoofers and not to them. For rest of publishers, money being routed away from their supply.</p><p><strong>Reckoning #2 - MFA</strong></p><p>The next reckoning in my wildly incomplete history, other than the introduction of header bidding which wasn&#8217;t really a reckoning, was MFA (MADE FOR ADVERTISING). The MFA business model consisted of driving traffic to websites with hyper-engaging content (all you elitists out there, slide shows are still entertaining. Instagram is basically a giant slide show and Snapchat is disappearing slideshows) with very high ad density.</p><p>These websites came into being because buyers, at the time, wanted viewable inventory on specific audiences. Those were the only two things they were looking for &#8211; and an intelligent MFA site could deliver each of them at scales unprecedented on other websites. In case any of you were wondering, the largest MFA operations I&#8217;ve seen were capable of driving between 500 million and 2 billion advertising impressions <em>per day</em>. Comscore top 10, easy.</p><p>However, based on data, some buyers decided that MFA wasn&#8217;t providing incremental sales. A number of players entered the space to clean up MFA, and low and behold, MFA was rooted out of the ecosystem. Once again, certain companies went out of business. Certain sellers are making a lot less money today because we rooted out MFA. Once again the predilections of buyers dictated the behavior of the market &#8211; both in the creation of MFA, and then in its destruction.</p><p><strong>Effect of tactics on Buyers </strong>: a combination of bad press and less-than-stellar performance.</p><p><strong>Effect of tactics on Publishers </strong>: spend routed away from non-MFA publishers due to volume bias.</p><p><strong>Reckoning #3 - Bid Jamming and ID Bridging</strong></p><p>Which brings us to the current moment. The buy side has gotten progressively smarter, albeit slowly, over the past 15 years. The current paradigm on the buy side is still buying user IDs &#8211; with the caveat that the sites aren&#8217;t classified as MFA (most buyers still haven&#8217;t fixed outcomes, which would be the <em>right</em> way to stop buying MFA). Within our current infrastructure, there are two ways to get this money that have absolutely nothing to do with your website or your traffic &#8211; 1. Send more of those IDs (ID-bridging), 2. Make your website seem bigger than it is, so that your surface area to the bidder helps you get around throttling and pacing.</p><p>What you&#8217;ll notice is that each of these phenomena have gotten progressively <em>less</em> egregious. The ecosystem is undeniably getting cleaner and cleaner. Domain spoofing was basically outright fraud, MFA was certainly <em>not</em> outright fraud (I will fight people on this one, I wrote an article about it), but it was deemed unsavory, and ID Bridging and request inflation to get around algorithms are decidedly <em>not</em> fraud at all (well, some id bridging is fraud lol) &#8211; they are, however, practices that make it harder for discerning buyers to do their job, so it&#8217;s not a surprise that buyers don&#8217;t like them.</p><p><strong>Effect of tactics on Advertisers</strong> : Uncertain what they&#8217;re buying, often buying something that isn&#8217;t what it says it is. Less effective optimization.</p><p><strong>Effect of tactics on Publishers</strong> : Volume bias &#8211; publishers not rewarded on the performance of their inventory, rather on the ability to build a stack that duplicates and id bridges as much as possible.</p><p><strong>This Is The Publisher&#8217;s Moment</strong></p><p>I think at this moment we are presented with an opportunity to slay the dragon at the heart of what has hurt publishing on the web. At its core, programmatic disconnected the user and the advertising experience. What I think many have failed to realize is that the true destructive component of this is not necessarily buying &#8220;your audience&#8221; cheaper elsewhere &#8211; the real destructive component of this is that buyers became convinced that just buying &#8220;the user&#8221; was enough.</p><p>This is because programmatic has been, admittedly, built like shit. It&#8217;s been hacked together by systems that weren&#8217;t built to do this, all under the suppression of a monopolist who had everything they needed to make it <em>not</em> work like shit. I believe the most pernicious knock on effect has been that inventory <em>description</em> has been left by the wayside &#8211; and buyers exclusively optimized to UserID x Domain for many, many years. All of the inefficient (and totally rational) tactics above are downstream of this highly unintelligent and mediocre buyer preference.</p><p>This meant that all inventory itself was a commodity. This is why MFA worked. This is why the only way to increase your CPMs seems to be to directly negotiate. This is why ID bridging works, this is why bid jamming works. It&#8217;s because the primary <em>determinant</em> of CPM in this ecosystem <em>is the user ID </em>and <em>maybe</em> domain. In that world, all banner slots are made equal &#8211; it&#8217;s the user who drives the value. How are we at all surprised that ad density is a mess? The only way to make more money is to place more ads! When you get one of the valuable users you need to squeeze as much value out of them as possible (Gamera measures this BTW, I promise around 20% of a publisher&#8217;s users make all of the money). Simultaneously, if all ad slots are the same, how do you get share of voice? You get <em>your</em> commodity ad slots in front of the bidder as many times as humanly possible.</p><p>Sincera and Jounce, to their credit, began the trend of changing thinking about this. Things like ad to content ratio being <em>valuable</em> and correlated to outcomes is actually a <strong>big fucking deal</strong>. The foundation is laid for buyers to start <em>actually evaluating advertising opportunities</em> and not just <em>evaluating users</em> &#8211; and Gamera (my company) exists to continue this precise trend by adding real time metrics and some other fancy stuff into the mix to complement systems like Sincera or Deepsee.</p><p>As a corollary to this, buyers also want to become more intentional in what they&#8217;re buying. In a world of duplication and ID bridging <em>this gets harder and harder</em>, because discerning which unique advertising opportunities are which, and then buying the ones you actually want while dealing with pacing, is inherently difficult in such a noisy environment with all kinds of throttling.</p><p>This &#8220;cleanup,&#8221; if it actually happens which I hope it does, I believe will have very similar effects to the MFA cleanup. Just as MFA publishers winning budgets meant that those budgets didn&#8217;t go to other publishers, technologies that are superior duplicators and bridgers take budgets away from technology platforms that aren&#8217;t superior duplicators and bridgers. And if you as a publisher aren&#8217;t working with those platforms, or are limiting the number of exchanges you&#8217;re working with because reasons, you&#8217;re probably getting less of the pie than you would be in efficient equilibrium.</p><p>I think it is important to internalize this. The budgets are <em>finite</em>. Right now, we have an environment where supply competes on the ability to ID bridge (normally this is the purview of the middle men) and the ability to duplicate (which overrides bidding algorithms), <em>not</em> on the quality of the advertising experiences and the outcomes they drive. The drive towards quality that Jounce and Sincera tried to initiate was partially foiled by the fact that even with the data, the decision systems were being overridden. You don&#8217;t need to be a psychic to see that buyers don&#8217;t like that, and they&#8217;re going to do whatever it takes to unravel those things. I actually don&#8217;t think the minutiae matters &#8211; rather in this moment, we have practices that actively make it more difficult for publishers with quality advertising experiences who aren&#8217;t good at duplicating and bridging to be discovered by buyers, and we have a number of buyers who are coming out and saying that they aren&#8217;t up for an ecosystem that works that way anymore.</p><p>This is, in my mind, an undeniable good. There will be casualties as there have been in every quality paradigm shift. But wow &#8211; this might be the one. This might be the one that restructures the ecosystem so that it actually starts to <em>perform</em>. This might be the moment that grows the digital advertising pie instead of finding a way to redistribute branding budgets amongst those who are the best at manipulating the systems involved. I&#8217;m not so naive as to think that there won&#8217;t still be people who figure out new tricks, and there are always tricks to figure out. But between the line the trade desk is taking and curation (SSPs are a fantastic place to seat logic that also undoes duplication and id bridging BTW), I&#8217;m feeling as optimistic as ever. At least that&#8217;s what I&#8217;m betting my business on, and I&#8217;m planning on bringing as many publishers as I can with me to the promised land. And even if you&#8217;re a cynic about the big players, I think the toothpaste is out of the tube for this &#8211; the ability to compete on quality amongst the buy side companies will be a forcing factor for the rest of the ecosystem.</p><p>The equilibrium for facebook is around $20 CPM. That&#8217;s how well their inventory performs &#8211; that&#8217;s how much they can charge buyers, pocketing all of it themselves. And it&#8217;s ads on UGC. Can you imagine if programmatic reached an equilibrium even 50% of the way there? It isn&#8217;t impossible. We just need to break out of the old ways of doing things. I will leave you with a fact that should haunt all of us at night &#8211; Facebook has about 5-15% of the traffic of a large ad exchange. And it commands 4x the banner budget of <em>our entire industry</em>. Maybe it&#8217;s time to hold the &#8220;experts&#8221; to account for the fact that the ads on our websites aren&#8217;t working.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Gareth Hates AdTech! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The Quiet Riot]]></title><description><![CDATA[Prepare Thyselves for a Tome]]></description><link>https://www.garethhatesadtech.com/p/the-quiet-riot</link><guid isPermaLink="false">https://www.garethhatesadtech.com/p/the-quiet-riot</guid><dc:creator><![CDATA[Gareth Glaser]]></dc:creator><pubDate>Thu, 28 Aug 2025 21:05:34 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!QMzU!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9982ec53-e46c-4b94-8412-018db3d86a0a_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This is another transaction ID post, because this shit is <em>juicy.</em> If you don&#8217;t know what transaction ID is, please read my previous post here : <a href="https://www.garethhatesadtech.com/p/the-great-transaction-id-debate">https://www.garethhatesadtech.com/p/the-great-transaction-id-debate</a></p><p>After you&#8217;ve read that and you&#8217;re suffering like the rest of us, it&#8217;s time for you to engage intellectually with what prebid has just done &#8211; available here https://github.com/prebid/Prebid.js/pull/13800 . If you&#8217;re not familiar with reading PRs, this PR makes transaction IDs <em>bidder specific</em>. This means the little ID associated with an auction, which DSPs wanted to use to understand all of the different ways they receive requests for a single auction from all of the exchanges, can no longer be used for that purpose. Ostensibly, this means it can now be used to de-duplicate requests <strong>within</strong> one exchange and not <strong>between</strong> them&#8230;but then again, not even really that, because exchanges are now solely responsible for grading their own homework and could theoretically fabricate them.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Gareth Hates AdTech! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>I want to talk through the <em>technical</em> details of why the old version of transaction ID (the one that was consistent across exchanges) could be bad for publishers, because I hear a lot of things bandied about as &#8220;reasons&#8221; that I&#8217;m not sure hold up to deep intellectual scrutiny. By the way, I would be happy to be wrong about any of this &#8211; just let me know in the comments with insults and ad homs if I&#8217;ve mischaracterized something, or if you&#8217;re a real lunatic &#8211; post the actual explanation of why I&#8217;m incorrect.</p><p>I will then conclude with my thoughts on the question behind the question here &#8211; because I think this is a turning point for our industry, and right now, we&#8217;ve taken a turn backwards. But let&#8217;s get on with it.</p><p>As a refresher &#8211; the old transaction ID passes an auction unique identifier downstream through all supply paths so that a buyer knows a given bid request is from a given auction for an ad unit.</p><p><em><strong>Let&#8217;s hear some arguments</strong></em></p><p><strong>It allows for data leakage</strong></p><p>The argument here is that transaction ID provides a join key that can be used to synchronize audiences across exchanges. Let&#8217;s chart this out</p><p></p><p>Exchange A</p><p>PMP 1 - Auto Intenders</p><p>Exchange User ID 1234</p><p></p><p>Exchange B</p><p>Open Market Ad Request</p><p>Exchange User ID 5678</p><p></p><p>In the current state, without cookie syncing one cannot discern that this is the same auction and therefore the same user. However, it&#8217;s worth noting, that while these ad exchange user IDs are distinct &#8211; each ad exchange needs to do a cookie sync with the DSP. This means that in reality, this request to the DSP looks like this :</p><p></p><p>Exchange A</p><p>PMP 1 - Auto Intenders</p><p>Exchange User ID 1234</p><p>DSP ID 0101</p><p></p><p>Exchange B</p><p>Open Market Ad Request</p><p>Exchange User ID 5678</p><p>DSP ID 0101</p><p></p><p>Therefore, in this scenario the DSP is fully capable of discerning that the open market ad request user is the same one as the auto intender PMP one &#8211; and could ostensibly &#8220;take&#8221; that data.</p><p>So why are people worried about the addition of a transaction ID? What data leakage are they referring to? From my understanding, here&#8217;s why :</p><p></p><p>Exchange A</p><p>PMP 1 - Auto Intenders</p><p>User ID 1234</p><p>DSP ID 0101</p><p>TransactionID 9999</p><p></p><p>Exchange B</p><p>Open Market Ad Request</p><p>User ID 5678</p><p>DSP ID 0101</p><p>TransactionID 9999</p><p></p><p>In this scenario, only the DSP has access to &#8220;DSP ID&#8221; &#8211; the join key &#8211; the synced cookie &#8211; but with the addition of the transaction ID, <em>anybody with access to logs from both exchanges has a join key for the audience</em>. Exchanges and DMPs have all sorts of deals for ID syncs and usage and hashing and permissioning and all kinds of madness &#8211; which means that the addition of this join key has the potential to create a data leakage issue via logs for anybody who has the logs. It has been voiced to me that this concern is about <em>curators</em> &#8211; and because curators have log access, ID vendors and publishers are worried about their audiences seeping out.</p><p>Is this a problem? Probably, for ad exchanges honoring their agreements. Is this transaction ID&#8217;s problem? I don&#8217;t think so. Exchanges don&#8217;t <em>have</em> to share these things with people. They ostensibly don&#8217;t share the DSP User IDs today, because if they did, they&#8217;d have the same exposure they&#8217;d have with transaction ID. So why do they have to share the transaction id?</p><p><strong>Transaction IDs will expose flooring strategies</strong></p><p>I&#8217;ve also heard concerns about price floors, but they normally just consist of the sentence &#8220;my price flooring strategy will be exposed,&#8221; occasionally with the word &#8220;sequential&#8221; or &#8220;tiered.&#8221; In light of this, I&#8217;d like to explore what data DSPs <em>already</em> have when it comes to price floors &#8211; and what additional data they&#8217;d be able to procure about price floors should they have a &#8220;unified&#8221; view from transaction id.</p><p>Right now, DSPs receive user IDs, pages, user agents, and a bajillion other things. This means that even without a transactionId join, their data set looks like this (assuming no ID bridging, which further complicates things as we&#8217;ll explore in a moment) :</p><p></p><p>Page : <a href="http://xyz.com/yay">xyz.com/yay</a></p><p>userID : 1234</p><p>User agent : 1310923</p><p>Price floor : 1.00</p><p></p><p>Page : <a href="http://xyz.com/yay">xyz.com/yay</a></p><p>userID : 1234</p><p>User agent : 1310923</p><p>Price floor : 2.00</p><p></p><p>Page : <a href="http://xyz.com/yay">xyz.com/yay</a></p><p>userID : 1234</p><p>User agent : 1310923</p><p>Price floor : 0</p><p></p><p>In this scenario, the current state of things with no transactionid, the supposition is that the various price floors &#8211; even with all other components of the bid requests held constant &#8211; result in additional yield. I&#8217;m not sure I understand how or why this would happen, but it&#8217;s certainly possible I guess.</p><p>The argument is then that if DSPs see this</p><p></p><p>Page : <a href="http://xyz.com/yay">xyz.com/yay</a></p><p>userID : 1234</p><p>User agent : 1310923</p><p>Price floor : 1.00</p><p>TransactionID : 5678</p><p></p><p>Page : <a href="http://xyz.com/yay">xyz.com/yay</a></p><p>userID : 1234</p><p>User agent : 1310923</p><p>Price floor : 2.00</p><p>TransactionID : 5678</p><p></p><p>Page : <a href="http://xyz.com/yay">xyz.com/yay</a></p><p>userID : 1234</p><p>User agent : 1310923</p><p>Price floor : 0</p><p>TransactionID : 5678</p><p></p><p>And can use that transaction ID, the price flooring strategy that&#8217;s creating additional yield breaks. I&#8217;m not sure if I buy it &#8211; but I guess maybe?</p><p></p><p>Price floors alone don&#8217;t seem that compelling to me &#8211; because if the DSP is receiving the same user, on the same page, with all of the same attributes, a bunch of times (and has historicals for this) &#8211; but with very inconsistent price floors, why wouldn&#8217;t they just wait and bid for their valuation? Even without transaction ID, they have a join key &#8211; the user id &#8211; and they can see all the floors passed at the placement level for a given user. The transaction ID doesn&#8217;t actually afford them that much different data, and I&#8217;m hard pressed to come up with a &#8220;bid low&#8221; strategy that works with transaction IDs but doesn&#8217;t work with User IDs.</p><p><strong>Transaction IDs break ID bridging</strong></p><p>The real beast comes in when you add in the concept of ID bridging. When I look at the bid requests above, the thing that really stands out to me is the UserID. It&#8217;s a trivial deduplication effort, and trivial to just ignore the price floors, when the UserID is the same across all of the bid requests. Basically, any argument that you could make for using Transaction ID you could effectively execute using UserID with the same logic.</p><p>Frankly, user IDs <em>should look like this and this should work</em>. ID resolution should happen at the publisher level. But it doesn&#8217;t always &#8211; it often happens at the middle man level &#8211; and I think that&#8217;s why middle men are able to so effectively harvest profits from this (and not necessarily pass those through to publishers BTW).</p><p>When you add ID bridging, and don&#8217;t have transaction ID, the bid requests to the DSP now look like this :</p><p></p><p>Page : <a href="http://xyz.com/yay">xyz.com/yay</a></p><p>DSP userID : 8574</p><p>User agent : 1310923</p><p>Price floor : 1.00</p><p></p><p>Page : <a href="http://xyz.com/yay">xyz.com/yay</a></p><p>DSP userID : 2634</p><p>User agent : 1310923</p><p>Price floor : 2.00</p><p></p><p>Page : <a href="http://xyz.com/yay">xyz.com/yay</a></p><p>DSP userID : 0984</p><p>User agent : 1310923</p><p>Price floor : 0</p><p></p><p>If I&#8217;m an algorithm, or even a human, and I&#8217;m looking at this &#8211; this <em>really</em> looks like different people getting different ads. I have two reactions to this &#8211; 1. I&#8217;m not at all surprised that this is an effective yield optimization technique, 2. I think this is a form of fraud.</p><p>It makes more money because different users will have wildly different valuations, and now the variable price flooring strategy can <em>really</em> work.</p><p>The reason I think this is a form of fraud is this impression can only be one person. It can only be one DSP User ID, at least that&#8217;s how it&#8217;s supposed to be in the buyerUID field (which is what I&#8217;m referring to with user ID here). This means that <em>someone</em> in this scenario is lying &#8211; advertently or inadvertently. I think that person is almost <em>never</em> publishers, and almost <em>always</em> an intermediary.</p><p>But we need to ask ourselves as an industry &#8211; is this acceptable? At what point does this become willful misrepresentation?</p><p>So, DSPs are fed up with this. They want to have a transaction ID tied to this &#8211; so now these requests will look like this &#8211;</p><p>Page : <a href="http://xyz.com/yay">xyz.com/yay</a></p><p>userID : 8574</p><p>User agent : 1310923</p><p>Price floor : 1.00</p><p>TransactionID : 5678</p><p></p><p>Page : <a href="http://xyz.com/yay">xyz.com/yay</a></p><p>userID : 2634</p><p>User agent : 1310923</p><p>Price floor : 2.00</p><p>TransactionID : 5678</p><p></p><p>Page : <a href="http://xyz.com/yay">xyz.com/yay</a></p><p>userID : 0984</p><p>User agent : 1310923</p><p>Price floor : 0</p><p>TransactionID : 5678</p><p></p><p>This join key makes it very, very easy for them to see &#8220;bid request A from partner A came in with this userID for the same bid requests from partner B with this other userID.&#8221; And then they can drop the hammer on partner B if they want to and also ensure they&#8217;re not bidding against themselves on what they think are different users but are actually the same. </p><p>Now, is the transaction ID actually necessary? Eh &#8211; Kind of. The DSP could also check its logs once it serves to the page and true up the IDs declared in the bid request with the IDs they found in the browser. I would argue this is just as effective for finding ID bridging, and just as effective for dinging supply paths. And if they unraveled the ID bridging by refusing to pay for every ad rendered to a misdeclared buyerUID, they can now use UserID (with other fields) as a transactionID.</p><p>So while the transactionID is a valuable datapoint in hunting for ID bridging malfeasance, I&#8217;m not certain it&#8217;s a necessary one. But I do also think that ID bridging is actually a far <em>larger</em> problem than has been discussed to date.</p><p><strong>Downstream of ID Bridging you have Bid Jamming</strong></p><p>If you look at every one of my examples, the <em>assumption</em> is that DSPs are going to have the same thing presented to them multiple times, often with radically different valuations each time because of a bunch of different fields within each bid request. There&#8217;s a reason this isn&#8217;t something mentioned explicitly by publishers in all of the transactionID discussions &#8211; and it&#8217;s because people tacitly <em>know</em> that this isn&#8217;t something present in a healthy market. Basically, the ID Bridging problem gives birth to a bid jamming problem, where bid duplication has the effect of making the algorithm think you have a lot of differentiated inventory when in reality you&#8217;re selling one thing. You get to test out a bunch of different values in a bunch of different fields to see what elicits the highest bid from the algorithm, and this <em>crushes it</em> for yield.</p><p>The elephant in the room is that there&#8217;s a universe where transaction IDs, when leveraged to their full extent, could theoretically help to kill all of these things at once. A DSP could theoretically bid once per transaction ID. That is, assuming they&#8217;re capable of maintaining state in real time for &#8220;have I served to this transactionID&#8221; across like 10 gazillion QPS, which like, maybe? </p><p></p><p>But if this were to actually happen there are a lot of people who will make less money &#8211; a supposition substantiated by the fact that today they indisputably make more money by engaging in bid jamming combined with ID bridging.</p><p>While people may cite other things, this is what scares people. Because it&#8217;s created so much lift for publisher revenue the notion of losing it is a frightening one.</p><p><strong>Conclusion About Stated Arguments About TransactionId</strong></p><p>My goal with this examination is not to dismiss the publishers&#8217; concerns with transactionId. Well, actually, it kind of was. But in the course of doing so I hope I also drove home the point that we wouldn&#8217;t necessarily <em>need</em> transactionId to solve a lot of the problems that transactionId solves if there weren&#8217;t a bunch of things happening at once that back DSPs into a corner. For instance, I think if we successfully killed ID bridging, it would be a lot easier for DSPs to SPO and deal with bid jamming, because user IDs would be a lot closer to transaction IDs. But that&#8217;s not happening &#8211; and I&#8217;m not sure whose fault that is at this point.</p><p>This is where we get into the foundation of the &#8220;public&#8221; sell-side argument. If these problems can theoretically be solved without transactionId, why do we need it? Why not just do what gareth says and fix id bridging and then build your own strategies for bid jamming?</p><p>And I understand that, I really do. However, the notion that taking away something that makes auctions more efficient (transactionId) could be <em>good</em> for the long term health of independent programmatic is a hard pill to swallow for anyone who believes in the future of the industry. Furthermore, I&#8217;d be remiss if I didn&#8217;t lament the lack of public debate about this outside of my articles and a few slack channels that most of the industry doesn&#8217;t participate in.</p><p><strong>What We Should Actually Be Debating</strong></p><p>But this is all for the &#8220;public&#8221; argument. I think there&#8217;s a far more consequential &#8220;private&#8221; debate that we should be having &#8211; and that&#8217;s &#8220;is bid request duplication sustainable?&#8221;</p><p>I don&#8217;t think people spend a lot of time thinking about this. Smart people know if you do it more, you make more money. But just because smart people can tickle the ivories of programmatic to make more money doesn&#8217;t mean that this is a &#8220;sell side&#8221; desirable thing. What&#8217;s good for the goose isn&#8217;t necessarily good for the gander, and not all publishers were created equal. Just because you&#8217;re a publisher doesn&#8217;t mean bid jamming necessarily benefits you &#8211; in fact, if bid jamming becomes an optimization vector, and you&#8217;re not a master of it, you&#8217;re being harmed by it. Spend is being routed <em>away</em> from you if you aren&#8217;t doing it as aggressively as possible today. Transaction Id therefore <em>benefits</em> publishers who are not bid jamming beasts, and <em>hurts</em> publishers who are. I would expect the publisher debate about this to be more robust, which is kind of why I find it surprising that this is a &#8220;DSP vs publisher&#8221; debate and not a &#8220;bid jammer vs not bid jammer&#8221; debate. DSPs are not going to suddenly &#8220;spend less money&#8221; because transactionId allows them to deduplicate bid streams. That&#8217;s as bad for them as it is for publishers!</p><p>Even beyond that, and beyond the arguments that have been publicly discussed, the problem here is a fundamental independent ad tech one. It&#8217;s that we are running our industry like Jon Hamm in Mad Men. In writing this article I remembered that originally people managed sales conflict by obfuscation &#8211; by hiding what people were actually buying from the buyers. I think this mentality hangs over to today &#8211; where people think &#8220;information should command an additional arbitrary price,&#8221; and that somehow there&#8217;s more money to be made when you withhold data.</p><p>I have news for you. This strategy has failed. Programmatic is not gaining marketshare, it is not growing, and it is not trusted. Programmatic&#8217;s competition, the walled gardens, do not withhold information from themselves. From their clients? Maybe. But not from their algorithms.</p><p>We have enough challenges to overcome &#8211; it&#8217;s an own goal to keep trying to run our business like a 1950s advertising agency &lt;&gt; magazine publisher negotiation. There&#8217;s a simple heuristic to live by in programmatic &#8211; More Statistically Significant Data is Better. Full stop. I&#8217;m a believer that sharing data will result in everyone making more money &#8211; even if some buyers are able to get things cheaper.</p><p>Programmatic is a 30bn business. Facebook is over 100bn for display banners. There&#8217;s a lot of money that can come our way if we can make our channel actually work instead of infighting over the scraps of the walled gardens. And the buy side of the programmatic ecosystem has its role to play in this &#8211; if more data doesn&#8217;t lead to more advertising dollars and therefore more competition and money for publishers, then their home&#8217;s foundation will erode out from under them. I think they know that.</p><p>There are certainly people who benefit from obfuscation. We need to decide if the obfuscation is worth stifling the growth of our industry.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Gareth Hates AdTech! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The Great Transaction ID Debate]]></title><description><![CDATA[Why can't we all just get along?]]></description><link>https://www.garethhatesadtech.com/p/the-great-transaction-id-debate</link><guid isPermaLink="false">https://www.garethhatesadtech.com/p/the-great-transaction-id-debate</guid><dc:creator><![CDATA[Gareth Glaser]]></dc:creator><pubDate>Thu, 14 Aug 2025 13:03:01 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Nd0y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3870c68c-893d-4eb9-b56f-441381ff1f84_500x514.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Nd0y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3870c68c-893d-4eb9-b56f-441381ff1f84_500x514.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Nd0y!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3870c68c-893d-4eb9-b56f-441381ff1f84_500x514.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Nd0y!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3870c68c-893d-4eb9-b56f-441381ff1f84_500x514.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Nd0y!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3870c68c-893d-4eb9-b56f-441381ff1f84_500x514.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Nd0y!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3870c68c-893d-4eb9-b56f-441381ff1f84_500x514.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Nd0y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3870c68c-893d-4eb9-b56f-441381ff1f84_500x514.jpeg" width="500" height="514" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3870c68c-893d-4eb9-b56f-441381ff1f84_500x514.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:514,&quot;width&quot;:500,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Nd0y!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3870c68c-893d-4eb9-b56f-441381ff1f84_500x514.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Nd0y!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3870c68c-893d-4eb9-b56f-441381ff1f84_500x514.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Nd0y!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3870c68c-893d-4eb9-b56f-441381ff1f84_500x514.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Nd0y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3870c68c-893d-4eb9-b56f-441381ff1f84_500x514.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Thanks to a LinkedIn post from Mr O&#8217;Sullivan, there has been a <em>heated</em> debate about something called a transaction ID in bid requests. I&#8217;d like to explore this topic in detail, because this is one of those scenarios that manages to make <em>everyone</em> look bad, which is an opportunity that a hater like myself cannot let go unattended.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Gareth Hates AdTech! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>The thesis behind transaction IDs is simple &#8211; in the Prebid auction, which is really the core programmatic auction, we would assign a unique &#8220;transaction&#8221; ID to each execution of the publisher ad stack. This transaction ID would be signaled out to DSPs, letting them know that regardless of how a given bid request gets to them it&#8217;s still part of a unique on-page auction. This would allow them to know that bid request A from partner X and bid request B from partner Y are actually from the same prebid auction, compare the metadata in the bid requests, ostensibly not bid into that auction more than once, ensure things are as they&#8217;re supposed to be, detect ID bridging and other tomfoolery, and all manner of good things for transparency and programmatic health.</p><p>O&#8217;Sullivan innocently asked &#8220;why wouldn&#8217;t we do this?&#8221; And personally, I think it&#8217;s a radically fair question. Purposefully obfuscating the actual impression opportunity auction from the buyers just seems like bad faith to me &#8211; it&#8217;s one of the myriad reasons that programmatic works like shit, because all of this garbage programmatic shenanigans makes it impossible to actually optimize anything and bid intelligently.</p><p>However, not so much to my surprise, the publisher community reacted to this with <em>vitriol</em>, or at least a few people did. The defenses were about what you&#8217;d expect, mostly flavors of &#8220;yeah so you want me to stop playing the game and make less money? You can pound sand.&#8221; Here&#8217;s a brief summary of the arguments I saw:</p><ol><li><p>Obfuscating final auction allows us to use price floors to manipulate bidding more effectively</p></li><li><p>Obfuscating final auction allows us to bid jam / request duplicate more effectively and evade detection</p></li><li><p>Obfuscating final auction makes id bridging reconciliation hard, and id bridging makes us mucho dollares</p></li><li><p>Obfuscating final auction prevents people from mapping user IDs between exchanges without paying hash tollkeepers (it&#8217;s a join key, the primary threat coming from middle men like curators who could use it to back into data segments</p></li></ol><p>The first three are what I normally refer to as &#8220;gaming bullshit (GB) .&#8221; And I get it. I really do. It makes more money &#8211; I mean hell, I am <em>the bid jamming guy</em>. I have been advocating for bid jamming since before it was cool &#8211; see my article here from <em>september 2023</em> <a href="https://www.garethhatesadtech.com/p/bid-jammin">https://www.garethhatesadtech.com/p/bid-jammin</a> .</p><p>But I&#8217;ve evolved, and while I still advocate for <em>some</em> GB, it&#8217;s not for the same reasons as many of you rapscallions out there who <em>love</em> GB.</p><p>A <em>bad</em> argument for GB is that &#8220;it makes me more money.&#8221; It&#8217;s bad because it&#8217;s potentially myopic &#8211; we don&#8217;t know what the knock on effects of these techniques are in terms of making programmatic work badly and nobody is doing a good job of measuring programmatic health <em>over time</em> as opposed to <em>in this moment</em>. It&#8217;s on my roadmap, okay?</p><p>However, because publishers aren&#8217;t thinking this way, it&#8217;s perfectly possible that the extra 3-5% you&#8217;re squeezing out of your programmatic auctions is making your site perform 30% worse on a ROAS basis for advertisers who actually optimize things. This is because the GB that results in 3-5% yield for publishers could quite feasibly be resulting in 20-30% higher CPMs for buyers, with the excess going to the GB middle men platforms. This generalization won&#8217;t be universal, some very talented GB people own their own pipes, but for many publishers it&#8217;s the case &#8211; the GB might be doing long term harm in the name of short term good.</p><p>However, in the interest of truth, we cannot let the buyers off unscathed. There exists a <em>great</em> argument for GB. And that&#8217;s that most advertisers <em>don&#8217;t give a shit about performance</em>.</p><p>If you&#8217;re running a DSP, and your buyers don&#8217;t give a shit about performance, that&#8217;s why you can&#8217;t buy through more direct supply paths. It&#8217;s not because &#8220;publishers and middle men aren&#8217;t doing XYZ.&#8221; If you don&#8217;t have buyers <em>clamoring</em> to shut off bad middle men who take high fees, you don&#8217;t <em>need</em> to deduplicate your auctions.</p><p>This is all to say that if your buyers actually wanted to fix things, <em>we don&#8217;t need transaction ID to do it</em>. Just buy through a single path. We know paths are commoditized, and we know the only &#8220;value&#8221; being added in the middle is by GB. So why keep it alive? Because unfortunately, the phone call is coming from inside the house &#8211; the primary facilitator of the shenanigans is the prioritization of middle men by your own agency clients. We don&#8217;t really need to save them from themselves. They don&#8217;t need a white knight &#8211; they just want to deliver to their list of user IDs and get back to politicking for more budgets. The tricky part here becomes when DSPs have one advertiser who cares about performance, and another who insists on their looney tunes supply path. In this scenario, when they bid against themselves, theoretically the performance advertiser might be getting punished from having additional demand in the auction from the goofball advertiser and the bidder might&#8217;ve prioritized pacing things differently &#8211; but that&#8217;s about the only use case I can think of that&#8217;s really a &#8220;rock and a hard place.&#8221;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!n0Cs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ee0d6db-5bbf-4f03-ad60-0581a7f344df_507x500.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!n0Cs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ee0d6db-5bbf-4f03-ad60-0581a7f344df_507x500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!n0Cs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ee0d6db-5bbf-4f03-ad60-0581a7f344df_507x500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!n0Cs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ee0d6db-5bbf-4f03-ad60-0581a7f344df_507x500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!n0Cs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ee0d6db-5bbf-4f03-ad60-0581a7f344df_507x500.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!n0Cs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ee0d6db-5bbf-4f03-ad60-0581a7f344df_507x500.jpeg" width="507" height="500" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5ee0d6db-5bbf-4f03-ad60-0581a7f344df_507x500.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:500,&quot;width&quot;:507,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!n0Cs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ee0d6db-5bbf-4f03-ad60-0581a7f344df_507x500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!n0Cs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ee0d6db-5bbf-4f03-ad60-0581a7f344df_507x500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!n0Cs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ee0d6db-5bbf-4f03-ad60-0581a7f344df_507x500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!n0Cs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ee0d6db-5bbf-4f03-ad60-0581a7f344df_507x500.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Thus we have a situation where frankly everyone has <em>some</em> responsibility for a really shitty nash equilibrium. Sellers don&#8217;t want to make a change that will effectively make them less money. Buyers can&#8217;t do what needs to be done to solve this without seller action. We therefore have a Gordian knot that we need to cut.</p><p>There is but one way (well, one <em>nice</em> way).</p><p>Incentives.</p><p>If buyers can properly reward publishers who pass a deduplicating identifier, if they can make more money from the added transparency than they make from GB, we have an escape hatch. Do I know how this would work? No. I&#8217;m not on a product team at a DSP right now. But I think there absolutely could be a way.</p><p>Without the incentive built properly, you are effectively asking publishers to make less money for doing the right thing. We all know that sucks. That being said, there&#8217;s nothing inherently wrong with transaction IDs. I think a global join key is actually a fundamental component of a healthy and transparent marketplace. But we&#8217;re not going to get there unless the incentives are there &#8211; and while they don&#8217;t seem that complicated to me, they do seem rather difficult to align.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Gareth Hates AdTech! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Dynamic Bulldinkie]]></title><description><![CDATA[Complicated Problems, Simple Solutions]]></description><link>https://www.garethhatesadtech.com/p/dynamic-bulldinkie</link><guid isPermaLink="false">https://www.garethhatesadtech.com/p/dynamic-bulldinkie</guid><dc:creator><![CDATA[Gareth Glaser]]></dc:creator><pubDate>Thu, 24 Jul 2025 14:23:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!oBq5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc152a422-bd2d-4aed-9c93-6b280abc1c1b_576x433.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>My &#8220;back to NYC triumphant blog post&#8221; has been spurred by a conversation in Beeler chat about Dynamic Revshares (basically, are they &#8220;OK&#8221; or bad for publishers).</p><p>For the uninitiated, a dynamic revenue share refers to a pricing dynamic within an ad exchange wherein the exchange charges a different revenue share fee on an auction by auction basis. For the ultra uninitiated, ad exchanges charge publishers a percentage of revenue for the honor of selling publisher inventory to ad buyers (buying via DSPs), and this revenue share is typically written out and negotiated in a contract but not always.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Gareth Hates AdTech! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Let&#8217;s start out with why exchanges would do this &#8211;</p><p>In 2025, all ad exchanges have to submit their bids to another auction (at least in banners and native and OLV) &#8211; the Prebid auction &#8211; that occurs on the publisher page or in the publisher&#8217;s instance of prebid server. This bid has to be <em>net </em>of their fees &#8211; namely, they can&#8217;t submit their gross bid and then extract their fees later, as this would make the auction clear on false pretenses, so they have to submit the amount the publisher would actually get paid if their bid wins. Because of this, there exist scenarios wherein the ad exchange&#8217;s fee, and not the bid they were able to procure, preclude them from winning an auction &#8211; an example :</p><p>Ad Exchange A receives a $1 bid from DSP A, charges a 20% fee, so submits a bid of $.80 to prebid.</p><p>Ad Exchange B receives a $.90 bid from DSP B, charges a 5% fee, so submits a bid of $.855 to prebid.</p><p>In this scenario, even though Ad Exchange A received a significantly higher bid, Ad Exchange B wins the prebid auction because they&#8217;re charging a lower fee.</p><p>Ad exchanges 10 years ago didn&#8217;t have to worry about this scenario, because they weren&#8217;t bidding into prebid auctions &#8211; which means their greed basically went unchecked. But now, there&#8217;s competition out there, and they have to compete both on how high of a bid they can get from DSPs <em>and</em> their fees.</p><p>In its most basic form, Dynamic Revshares were born out of the fact that their fees actually affect their ability to win auctions. Ad Exchange A sees the above example happening (probably because some sales person complains about Ad Exchange B eating their lunch even though Ad Exchange A is more prestigious), and decides to do something about it. They realize if their machine learning teams (lol) can properly predict what the market clearing price for an impression will be, they can ratchet down their revenue share to win the impression (because a smaller percentage of something is worth way more than nothing at all).</p><p>So, in scenario above,</p><p>Ad Exchange A receives $1 bid from DSP A, their machine learning says it thinks the clear price will be $.86 because data scientists are infallible geniuses, and recommends that Ad Exchange A takes a fee of 11% just to be safe. They submit a bid of $.89.</p><p>Ad Exchange B, who doesn&#8217;t have a team of perfect AI data scientists, doesn&#8217;t have dynamic revshares. They lose the auction with their $.855 bid.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6Az5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fef8ed0-f8f3-43af-8df6-e83562d24784_360x203.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6Az5!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fef8ed0-f8f3-43af-8df6-e83562d24784_360x203.gif 424w, https://substackcdn.com/image/fetch/$s_!6Az5!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fef8ed0-f8f3-43af-8df6-e83562d24784_360x203.gif 848w, https://substackcdn.com/image/fetch/$s_!6Az5!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fef8ed0-f8f3-43af-8df6-e83562d24784_360x203.gif 1272w, https://substackcdn.com/image/fetch/$s_!6Az5!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fef8ed0-f8f3-43af-8df6-e83562d24784_360x203.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6Az5!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fef8ed0-f8f3-43af-8df6-e83562d24784_360x203.gif" width="360" height="203" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7fef8ed0-f8f3-43af-8df6-e83562d24784_360x203.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:203,&quot;width&quot;:360,&quot;resizeWidth&quot;:360,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6Az5!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fef8ed0-f8f3-43af-8df6-e83562d24784_360x203.gif 424w, https://substackcdn.com/image/fetch/$s_!6Az5!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fef8ed0-f8f3-43af-8df6-e83562d24784_360x203.gif 848w, https://substackcdn.com/image/fetch/$s_!6Az5!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fef8ed0-f8f3-43af-8df6-e83562d24784_360x203.gif 1272w, https://substackcdn.com/image/fetch/$s_!6Az5!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fef8ed0-f8f3-43af-8df6-e83562d24784_360x203.gif 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>This, in my opinion, is the <em>cleanest</em> form of dynamic revenue sharing and is basically totally okay. This is because the dynamic revenue shared &#8220;flexed&#8221; down, and exclusively down. There was no &#8220;harm&#8221; here because they charged <em>less</em> than they normally do, and this article is going to be about harm, but I would advocate that this scenario in every instance will just make programmatic more efficient.</p><p>But what about <em>less</em> straightforward circumstances? Hearing about dynamic revenue shares, we should all be reminded of Project Bernanke </p><p>https://www.adtechexplained.com/p/google-project-bernanke-explained</p><p> &#8211; wherein dynamic revenue shares were being used in unsavory ways.</p><p>The unsavory way I want to talk about today where instead of decreasing their fees to win marketshare, ad exchanges <em>increase</em> their fees to maximize their profits. This can be as a result of simple greed (if your contract permits it), or a function of trying to compensate for when they flex down and their take rates look lower than their investors would like. And if you&#8217;re a <em>real</em> sketchball, sometimes you flex <em>down</em> so hard that you actually <em>add money from your other advertisers to your bids</em>. Literally, taking a negative revenue share as a company, and then making up for it later by charging the snot out of publishers. This is a cousin of Bernanke, just executed with a little less market control, and it is absolutely happening.</p><p>This, in my mind, is <em>bad</em> dynamic revenue sharing. This is just auction manipulation, where ad exchanges really look a lot more like arbitrageurs taking primary positions on media than they do neutral ad exchanges hosting unbiased and fast auctions. But I&#8217;ve been doing some soul searching on <em>why</em> it&#8217;s bad, because while lots of people complain about this behavior, I have yet to see someone articulate the actual negative effects this will have on the ecosystem, outside of some loose assumption of &#8220;publisher opportunity cost,&#8221; which I think is shaky.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oBq5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc152a422-bd2d-4aed-9c93-6b280abc1c1b_576x433.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oBq5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc152a422-bd2d-4aed-9c93-6b280abc1c1b_576x433.jpeg 424w, https://substackcdn.com/image/fetch/$s_!oBq5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc152a422-bd2d-4aed-9c93-6b280abc1c1b_576x433.jpeg 848w, https://substackcdn.com/image/fetch/$s_!oBq5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc152a422-bd2d-4aed-9c93-6b280abc1c1b_576x433.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!oBq5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc152a422-bd2d-4aed-9c93-6b280abc1c1b_576x433.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oBq5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc152a422-bd2d-4aed-9c93-6b280abc1c1b_576x433.jpeg" width="576" height="433" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c152a422-bd2d-4aed-9c93-6b280abc1c1b_576x433.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:433,&quot;width&quot;:576,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!oBq5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc152a422-bd2d-4aed-9c93-6b280abc1c1b_576x433.jpeg 424w, https://substackcdn.com/image/fetch/$s_!oBq5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc152a422-bd2d-4aed-9c93-6b280abc1c1b_576x433.jpeg 848w, https://substackcdn.com/image/fetch/$s_!oBq5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc152a422-bd2d-4aed-9c93-6b280abc1c1b_576x433.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!oBq5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc152a422-bd2d-4aed-9c93-6b280abc1c1b_576x433.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>It&#8217;s bad because in ad tech, we have a fundamental opportunity and a fundamental problem with transparency. And I don&#8217;t mean this as a buzzword, even though it is one. I mean this from the perspective of digital advertising is fundamentally broken when it doesn&#8217;t distinguish between <em>working media</em> and <em>fees</em>. And digital advertising is uniquely in a position to fix this.</p><p>There are companies that try. Fiducia is trying. Sellers.json is maybe kind of trying, if dangling your bare foot on the ground counts as getting off of the couch. But no principal actors (ie. DSPs and SSPs) are really doing it, and that&#8217;s who we need to fix the problem.</p><p>The reason this lack of transparency is bad for publishers is because these auction shenanigans (and the surrounding lack of transparency) create scenarios where <em><strong>the cost of publisher media looks artificially high</strong></em>. In the name of middle men taking their fees, a report consumed by an advertiser, or consumed by an advertiser attribution data science god(dess), is basically saying &#8220;publisher inventory cost X,&#8221; when in reality, the cost of publisher inventory was &#8220;Y Media + Z Middle Man Fees,&#8221; where Y and Z will function in crazy ratios sometimes (there certainly exist impressions where the middle man fees exceed the cost of the media).</p><p>It is then fully possible that the advertiser or data science creature decides that inventory <em>doesn&#8217;t work for their campaign</em> and pause all future spend to that publisher, when in reality, that publisher <em><strong>might&#8217;ve been ROI positive if not for the stinky middle men</strong></em>.</p><p>This is harm. Hell, this is, like, <em>meaningful</em> harm. I am not a lawyer, but there&#8217;s a non zero chance that the way ad tech has been constructed has led to <em>unfathomable damage to publisher revenue </em>by not disclosing what was working media and what were fees to middle men.</p><p>And that&#8217;s the solution here &#8211; it&#8217;s not complicated &#8211; we need to denote the cost of working media and the cost of middle men fees in every transaction in the ecosystem. It wouldn&#8217;t be hard to do, we already have supply chains &#8220;modeled,&#8221; and this is a simple thing for people to append. But it is a major uphill battle to make it happen, because I&#8217;m willing to bet these shenanigans are the tip of the iceberg.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pftw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24271020-1174-4219-839d-85608998672c_500x500.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pftw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24271020-1174-4219-839d-85608998672c_500x500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!pftw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24271020-1174-4219-839d-85608998672c_500x500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!pftw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24271020-1174-4219-839d-85608998672c_500x500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!pftw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24271020-1174-4219-839d-85608998672c_500x500.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pftw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24271020-1174-4219-839d-85608998672c_500x500.jpeg" width="500" height="500" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/24271020-1174-4219-839d-85608998672c_500x500.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:500,&quot;width&quot;:500,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!pftw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24271020-1174-4219-839d-85608998672c_500x500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!pftw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24271020-1174-4219-839d-85608998672c_500x500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!pftw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24271020-1174-4219-839d-85608998672c_500x500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!pftw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24271020-1174-4219-839d-85608998672c_500x500.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>All of that being said, if you&#8217;re a lawyer who works at/with a publisher, we were able to prove damages with Bernanke. Maybe you could be the ones who light a fire under the ass of transparency with a couple of strongly worded letters&#8230;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Gareth Hates AdTech! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Ad Networks 2.0 are dead. Long live Ad Networks 3.0.]]></title><description><![CDATA[Curation is nature healing]]></description><link>https://www.garethhatesadtech.com/p/ad-networks-20-are-dead-long-live</link><guid isPermaLink="false">https://www.garethhatesadtech.com/p/ad-networks-20-are-dead-long-live</guid><dc:creator><![CDATA[Gareth Glaser]]></dc:creator><pubDate>Fri, 02 May 2025 13:03:07 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!LWQn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68485d85-1156-4d9a-b533-edc572cbdfe2_1600x830.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome back to GHAT! I&#8217;m excited to bring you the latest edition, because I spend more time thinking about ad tech than I should, and it will give me a bit of catharsis if I can subject all of you to my ad tech curse even if just for a few minutes.</p><p>Today I&#8217;d like to reframe things. I think ad tech has done that good old ad tech thing where shit has gotten super confusing again. People are talking about Curators, Signal, Agents, you name it &#8211; like we&#8217;ve invented a bunch of new things.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Gareth Hates AdTech! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>We haven&#8217;t.</p><p>We&#8217;ve just made up names for the same things happening in different places. Don&#8217;t get me wrong, the same thing happening in new places can drastically change the landscape of an ecosystem &#8211; but it can also serve to confuse and befuddle, when in reality, I am of the opinion that ad tech is healing itself and becoming simpler.</p><p>I will tease all of you with my shower thought that spurred the rest of this article, and it was a silly &#8220;omg this is true&#8221; moment for me. That thought is that I am fairly certain, with a bit of shoe-horning and an army of ops people (or agents perchance?), I could recreate the entirety of Ad Tech in Google Ad Manager (GAM).</p><p>All of it.</p><p>Creative trafficking, placement level targeting and optimization, data. You name it. I could do all of it in GAM. I&#8217;m just gonna need to export a <em>lot</em> of ad tags and upload a <em>lot </em>of line items. This is because fundamentally, all of ad tech consists of a few basic functions. Sure we&#8217;ve built a bunch of companies, and we&#8217;ve invented the ridiculous concept of &#8220;buy side&#8221; and &#8220;sell side&#8221; ad tech, and we&#8217;ve modularized the components of the system &#8211; but at its core, what OpenRTB, and what all of independent ad tech <em>seeks</em> to do is create a simple marketplace of supply and demand, targeting the demand to the supply. Because of this, with sufficient will, we could absolutely execute that vision within a single GAM account. It&#8217;s a wild thought. And it should scare you, because it&#8217;s indicative of the unnecessary complexity that we&#8217;ve introduced through all of our ad tech shenanigans.</p><p>With this logic in mind, I&#8217;d like to reframe the emergence of Curation. I love Ciaran and Kev&#8217;s &#8220;SSA (super signal aggregator),&#8221; framework, and their investment thesis around signal, but I think it overcomplicates things. Signals have always existed in ad tech, every component of a bid request is a signal, and data signal vendor aggregators are actually nothing new (in fact, this was the original job of the DSP). I actually think focusing on signal, as opposed to function, makes the landscape look confusing. Curation begins to make a lot more sense if you do a feature comparison of each of the companies in the value chain, and we plot those over time. So that&#8217;s what we&#8217;re going to do!</p><p>Let&#8217;s start here &#8211; pre-curation and pre-header bidding life :</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LWQn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68485d85-1156-4d9a-b533-edc572cbdfe2_1600x830.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LWQn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68485d85-1156-4d9a-b533-edc572cbdfe2_1600x830.png 424w, https://substackcdn.com/image/fetch/$s_!LWQn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68485d85-1156-4d9a-b533-edc572cbdfe2_1600x830.png 848w, https://substackcdn.com/image/fetch/$s_!LWQn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68485d85-1156-4d9a-b533-edc572cbdfe2_1600x830.png 1272w, https://substackcdn.com/image/fetch/$s_!LWQn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68485d85-1156-4d9a-b533-edc572cbdfe2_1600x830.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LWQn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68485d85-1156-4d9a-b533-edc572cbdfe2_1600x830.png" width="1456" height="755" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/68485d85-1156-4d9a-b533-edc572cbdfe2_1600x830.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:755,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!LWQn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68485d85-1156-4d9a-b533-edc572cbdfe2_1600x830.png 424w, https://substackcdn.com/image/fetch/$s_!LWQn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68485d85-1156-4d9a-b533-edc572cbdfe2_1600x830.png 848w, https://substackcdn.com/image/fetch/$s_!LWQn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68485d85-1156-4d9a-b533-edc572cbdfe2_1600x830.png 1272w, https://substackcdn.com/image/fetch/$s_!LWQn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68485d85-1156-4d9a-b533-edc572cbdfe2_1600x830.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I don&#8217;t expect this image to be exhaustive, sure there are probably a few features and functions in there that I missed, but this is the core of it. This was a simple world where DSPs ran campaigns, and SSPs executed their most important function &#8211; &#8220;Buyer Auction Hosting&#8221;. In this scenario, the SSPs are the holders of auctions. There are other auctions to be sure &#8211; the internal DSP auction, the ad server auction, but those auctions are not aggregating prices across many DSPs for a given impression. The SSP auction is <em>the</em> programmatic auction in this era.</p><p>And SSPs were closed systems, which actually really sucked. In your core adserver, because nobody was bidding, you had to traffic an estimated yield per SSP, which of course would vary wildly based on how many exchanges were called before them, and I feel quite comfortable saying that this era, while discrete and easy to understand (DSPs = Buyers, SSPs = Marketplaces), the publishers got totally screwed..</p><p>The reason is simple &#8211; the closed nature of SSPs meant that demand was wildly fragmented. That fragmentation meant that inter-SSP competition was really almost non-existent, and publishers actually had zero clue on an impression by impression basis what each impression was actually worth &#8211; and rarely were there other bidders to push the price up. So things sold cheap in auctions with relatively few participants &#8211; especially compared with a modern header bidding auction! Imagine, a single SSP, vs a header bidding auction with 30 exchanges calling 200 DSPs each &#8211; the bidder density difference is easily an order of magnitude.</p><p>So yea, this era, while simple, sucked.</p><p>But then, we invented header bidding</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_6DP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b5ce4b9-dda6-444d-bedc-96718f4dc2a1_1600x780.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_6DP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b5ce4b9-dda6-444d-bedc-96718f4dc2a1_1600x780.png 424w, https://substackcdn.com/image/fetch/$s_!_6DP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b5ce4b9-dda6-444d-bedc-96718f4dc2a1_1600x780.png 848w, https://substackcdn.com/image/fetch/$s_!_6DP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b5ce4b9-dda6-444d-bedc-96718f4dc2a1_1600x780.png 1272w, https://substackcdn.com/image/fetch/$s_!_6DP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b5ce4b9-dda6-444d-bedc-96718f4dc2a1_1600x780.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_6DP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b5ce4b9-dda6-444d-bedc-96718f4dc2a1_1600x780.png" width="1456" height="710" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3b5ce4b9-dda6-444d-bedc-96718f4dc2a1_1600x780.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:710,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_6DP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b5ce4b9-dda6-444d-bedc-96718f4dc2a1_1600x780.png 424w, https://substackcdn.com/image/fetch/$s_!_6DP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b5ce4b9-dda6-444d-bedc-96718f4dc2a1_1600x780.png 848w, https://substackcdn.com/image/fetch/$s_!_6DP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b5ce4b9-dda6-444d-bedc-96718f4dc2a1_1600x780.png 1272w, https://substackcdn.com/image/fetch/$s_!_6DP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b5ce4b9-dda6-444d-bedc-96718f4dc2a1_1600x780.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Header bidding, at its core, created a <em>second</em> auction outside of the one that occurred inside of the SSP. At first some SSPs resisted, because the fragmentation that drove their margins and market positions was directly threatened by HB (especially if you were early in the stack). But HB won. HB <em>really</em> won. Look how much it won here :</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qH4r!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bed4bb7-df67-41ba-b9fb-924baf20c291_915x630.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qH4r!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bed4bb7-df67-41ba-b9fb-924baf20c291_915x630.png 424w, https://substackcdn.com/image/fetch/$s_!qH4r!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bed4bb7-df67-41ba-b9fb-924baf20c291_915x630.png 848w, https://substackcdn.com/image/fetch/$s_!qH4r!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bed4bb7-df67-41ba-b9fb-924baf20c291_915x630.png 1272w, https://substackcdn.com/image/fetch/$s_!qH4r!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bed4bb7-df67-41ba-b9fb-924baf20c291_915x630.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qH4r!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bed4bb7-df67-41ba-b9fb-924baf20c291_915x630.png" width="915" height="630" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2bed4bb7-df67-41ba-b9fb-924baf20c291_915x630.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:630,&quot;width&quot;:915,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!qH4r!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bed4bb7-df67-41ba-b9fb-924baf20c291_915x630.png 424w, https://substackcdn.com/image/fetch/$s_!qH4r!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bed4bb7-df67-41ba-b9fb-924baf20c291_915x630.png 848w, https://substackcdn.com/image/fetch/$s_!qH4r!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bed4bb7-df67-41ba-b9fb-924baf20c291_915x630.png 1272w, https://substackcdn.com/image/fetch/$s_!qH4r!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bed4bb7-df67-41ba-b9fb-924baf20c291_915x630.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>That, my friends, is Rubicon&#8217;s stock price between 2015 and 2018. And that&#8217;s the visualization of someone betting against header bidding, which is the embodiment of a competitive market as opposed to a fragmented one. This is because 3 b-grade SSPs participating in a competitive auction <em>mops the floor</em> with a single a-grade SSP in a fragmented implementation.</p><p>But I digress. The actual thing I&#8217;d like to illustrate in my first diagram is that the most important function of an SSP (in my opinion), the Buyer Auction Hosting, is now <em>shared</em>. Two things are doing it. There&#8217;s a SSP buyer auction, and there&#8217;s a Prebid buyer auction.</p><p>That&#8217;s redundant. It was redundant in 2016, it&#8217;s redundant in 2025. We simply don&#8217;t need two systems to manage auctions with bidding systems.</p><p>The obvious upshot of this is that the bidders who traditionally bid into the SSP auctions can now leap-frog the SSPs and bid directly into the prebid auction. I swore until I was blue in the face running RTK that this would happen and happen fast.</p><p>But it didn&#8217;t.</p><p>There are probably 5x the number of Prebid bidders that there are DSPs &#8211; what we saw is that DSPs had drunk their own kool-aid of being buy-side people, and had somehow convinced themselves that bidding into prebid was a &#8220;sell side function,&#8221; even though it was literally <em>technologically identical</em>. Oh, that and the fact that we came to learn that tons of Agency Holding companies have deals in place with ad exchanges, where they can extract margin at the ad exchange level and engage in shenanigans, but this isn&#8217;t a missive about corruption.</p><p>What we did see is one enterprising DSP figure this out and begin to get involved with Prebid &#8211; The Trade Desk. I remain gobsmacked that more DSPs have not gotten in on the game &#8211; but I guess I&#8217;ve heard about a few internationally. But let&#8217;s visualize TTD&#8217;s OpenPath :</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Mksl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11784c2d-20ba-4c5f-b923-17d06988f7ee_1600x963.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Mksl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11784c2d-20ba-4c5f-b923-17d06988f7ee_1600x963.png 424w, https://substackcdn.com/image/fetch/$s_!Mksl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11784c2d-20ba-4c5f-b923-17d06988f7ee_1600x963.png 848w, https://substackcdn.com/image/fetch/$s_!Mksl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11784c2d-20ba-4c5f-b923-17d06988f7ee_1600x963.png 1272w, https://substackcdn.com/image/fetch/$s_!Mksl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11784c2d-20ba-4c5f-b923-17d06988f7ee_1600x963.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Mksl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11784c2d-20ba-4c5f-b923-17d06988f7ee_1600x963.png" width="1456" height="876" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/11784c2d-20ba-4c5f-b923-17d06988f7ee_1600x963.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:876,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Mksl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11784c2d-20ba-4c5f-b923-17d06988f7ee_1600x963.png 424w, https://substackcdn.com/image/fetch/$s_!Mksl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11784c2d-20ba-4c5f-b923-17d06988f7ee_1600x963.png 848w, https://substackcdn.com/image/fetch/$s_!Mksl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11784c2d-20ba-4c5f-b923-17d06988f7ee_1600x963.png 1272w, https://substackcdn.com/image/fetch/$s_!Mksl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11784c2d-20ba-4c5f-b923-17d06988f7ee_1600x963.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Zoinks. As you can see, the redundancy (the features shared in the Venn diagram) that came about as a result of header bidding created an opportunity for disintermediation.</p><p>This makes perfect sense.</p><p>The universe <em>hates</em> inefficiency. It took us 10 years, but eventually this redundancy was laid bare &#8211; and it resulted in the worst case scenario for SSPs, which is one of their primary revenue sources cutting them out of the equation.</p><p>I don&#8217;t think anyone was actually surprised by this. The moment prebid emerged anyone with a brain knew &#8220;wait, if there&#8217;s another auction, why don&#8217;t DSPs just bid into that?&#8221; &#8211; It just took the DSPs awhile to pull their heads out of their keisters and get the work done. But to be honest&#8230;most DSPs still haven&#8217;t done it. And the same way that Prebid took off like a rocket as a way for SSPs to equal the playing field with Google, those wily exchanges figured out a way to prevent this DSP disintermediation.</p><p>That way is curation.</p><p>The crux of this article is that Curation is simply SSPs playing defense. Prebid was the first domino to fall, moving SSP functionality out of the SSP and making them redundant. SSPs were now resigned to slowly watching their businesses dwindle as more and more innovation happened in the primary buyer auction, the Prebid auction.</p><p>But in their infinite wisdom, they realized &#8220;If Prebid can take functionality away from us, what if we could take functionality away from the DSPs?&#8221;</p><p>Getting people to <em>change</em> DSPs is impossible. Everyone knows that. Ask Chango. But Prebid&#8217;s appeal was that it didn&#8217;t replace SSPs, it wasn&#8217;t an alternative, it just took one or two things that they did and moved them while still cooperating with them. In fact, it benefited them and they are the ones who designed it!</p><p>So, if I&#8217;m an SSP, I&#8217;m wondering what parts of a DSP could I move out of the DSP, thereby entrenching myself in the value chain?</p><p>Well, turns out <em>most</em>. And it turns out that <em>most </em>DSP functions actually work <em>better</em> when you&#8217;re close to the inventory. This is because Header Bidding created a glut of duplication and noise, and DSPs haven&#8217;t done what they need to do to make things work better (ie. pick 2 exchanges, ditch the rest). My thesis on this one is that they became addicted to buying UserID lists, and that&#8217;s an easy business to run, so they didn&#8217;t think to invest in actually optimizing what they were buying. As long as they &#8220;got their ID,&#8221; it was gucci. So they&#8217;re now sleeping in a bed that they&#8217;ve made.</p><p>So what does this functionality shift look like?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0Pp3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd60be32-8321-47b8-9d8d-d2880e0b8b11_1263x648.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0Pp3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd60be32-8321-47b8-9d8d-d2880e0b8b11_1263x648.png 424w, https://substackcdn.com/image/fetch/$s_!0Pp3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd60be32-8321-47b8-9d8d-d2880e0b8b11_1263x648.png 848w, https://substackcdn.com/image/fetch/$s_!0Pp3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd60be32-8321-47b8-9d8d-d2880e0b8b11_1263x648.png 1272w, https://substackcdn.com/image/fetch/$s_!0Pp3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd60be32-8321-47b8-9d8d-d2880e0b8b11_1263x648.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0Pp3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd60be32-8321-47b8-9d8d-d2880e0b8b11_1263x648.png" width="1263" height="648" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dd60be32-8321-47b8-9d8d-d2880e0b8b11_1263x648.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:648,&quot;width&quot;:1263,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0Pp3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd60be32-8321-47b8-9d8d-d2880e0b8b11_1263x648.png 424w, https://substackcdn.com/image/fetch/$s_!0Pp3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd60be32-8321-47b8-9d8d-d2880e0b8b11_1263x648.png 848w, https://substackcdn.com/image/fetch/$s_!0Pp3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd60be32-8321-47b8-9d8d-d2880e0b8b11_1263x648.png 1272w, https://substackcdn.com/image/fetch/$s_!0Pp3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd60be32-8321-47b8-9d8d-d2880e0b8b11_1263x648.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>We now see the Venn diagram creeping the other direction. SSPs, through deal ID infrastructure that they&#8217;d built ages ago, actually already had the skeleton of targeting systems &#8211; all they needed to do was a little bit of workflow work to turn this into a UI a media buyer could use to change what inventory went to campaigns. And because SSPs were so close to the inventory, and inherently didn&#8217;t have the ridiculous duplication that all DSPs can&#8217;t seem to convince themselves to turn off, campaign optimization <em>works better in the SSP than in the DSP</em>.</p><p>And that brings us to the current day. One thing I&#8217;d like to emphasize is that this trajectory <strong>hasn&#8217;t actually created any new functionality</strong>. What it has done is moved features and functions from one class of company to another &#8211; which brings me to what I think is the important conclusion of this article</p><p>Buy Side and Sell Side frameworks for viewing the industry are outdated.</p><p>There are Bidder Networks and there&#8217;s Prebid. That&#8217;s it. Prebid is the monetization auction, and the Bidder Networks are the bidding mechanisms. Maybe they&#8217;re DSPs &#8211; maybe they&#8217;re DSPs + SSPs + Curators &#8211; but at the end of the day, the output of those systems is a bid, and the functionality within them is <em>identical</em> in that their simple goal is to derive a bid and spend budgets.</p><p>This is a good thing.</p><p>The concept of buy side and sell side holds us back when competing with walled gardens &#8211; it puts two hands into the cookie jar when walled gardens only have one, not to mention the data asymmetry and inefficiency that comes from integrating two ancient ad tech companies. Andthe Google ruling means that things are going to get even more egalitarian if AdX has to bid into prebid, at which point we&#8217;ll finally get pretty close to recreating walled garden performance (yes, the final hurdle for the open internet is the artificial insertion of GAM into the monetization flow).</p><p>But the world is indisputably getting simpler and therefore better. We now have bidders, in a few different flavors, and we have Prebid. Soon, we might even be free of GAM. And just in time for LLMs to destroy the internet as we know it, we might actually build systems that rival Google and Facebook.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Gareth Hates AdTech! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Throttling: The Vicious Cycle]]></title><description><![CDATA[Or, The Ugliest Band-Aid]]></description><link>https://www.garethhatesadtech.com/p/throttling-the-vicious-cycle</link><guid isPermaLink="false">https://www.garethhatesadtech.com/p/throttling-the-vicious-cycle</guid><dc:creator><![CDATA[Gareth Glaser]]></dc:creator><pubDate>Wed, 12 Mar 2025 20:17:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!0504!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde1e0a2-795f-4d6a-8580-f7c99d6231f1_687x500.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome back to a GHAT mini post. Apologies for the infrequency &#8211; I am working hard on my new company that I&#8217;m shamelessly going to plug in this article. That being said, in the course of scaling up my business, I have had my nose shoved into something that I knew was an issue, but I didn&#8217;t realize the scope or the depth.</p><p>The issue, and one that is quite possibly seriously compromising the performance of independent Ad tech, is Throttling.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Gareth Hates AdTech! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p><strong>What is Throttling</strong></p><p>In the world of ad exchanges and real time bidding, things are communicated via packets of information called &#8220;Bid Requests.&#8221; A bid request is a bundle that includes metadata about an advertising opportunity &#8211; IP address, user IDs, page URL, etc &#8211; and these bundles are used to evaluate the expected value of a given advertising opportunity for an advertiser within a bidding environment.</p><p>From the ad exchange perspective, and getting a little technical, depending on your infrastructure (but especially if you are working with off the shelf cloud providers like Amazon), one of cost centers can be something called &#8220;egress.&#8221; Egress refers to the cost associated with transmitting information to other systems, or in this scenario, the cost of sending bid requests to bidding environments. This means that just by virtue of working with a bidding environment, exchanges incur additional costs &#8211; the costs associated with sending out the requests to that environment.</p><p>Simultaneously, from the buy side perspective, there is a cost to evaluating the given advertising opportunities against your expected value model. This is generally related to &#8220;compute,&#8221; or processing costs, but there are other costs as well. It generally costs even more money than egress does. This means that for open market bidding systems, there are fixed costs to operate the infrastructure regardless of spend.</p><p>In general, companies don&#8217;t like costs, and want to avoid unnecessary ones, or even &#8220;non-optimal&#8221; ones &#8211; which brings us to the birth of throttling.</p><p>Throttling refers to the act of limiting the number of bid requests that go to a given bidder, at least originally, to optimize costs. Because of egress, and because of compute, it is in the interest of both the sell side system and the buy side system to not incur costs for bid requests that will never result in an impression transaction. So, basic initial implementations were &#8220;I, the world&#8217;s greatest DSP, have no advertisers in Brazil. Do not send me Brazilian traffic mr. ad exchange. Or do, and I&#8217;ll just stop working with you, because you&#8217;re a commodity.&#8221;</p><p><strong>Throttling Grows Up</strong></p><p>But then the nerds got involved. I&#8217;m not sure if this started on the sell side or the buy side, but I&#8217;m assuming it&#8217;s the buy side, and some machine learning person went &#8220;hey, I bet I can design an algorithm that dynamically listens to more of what we want and less of what we don&#8217;t want. It will improve outcomes for our advertisers, because I&#8217;m a data scientist and I know what&#8217;s right, and also save us money. Give me a promotion please.&#8221; And then, in the infinite wisdom of DSP leadership, they went &#8220;Fuck yea, let&#8217;s give this person more money and power.&#8221; And thus dynamic DSP throttling was born, where DSPs had internal algorithms to choose which advertising opportunities they evaluated for bidding and which ones they just ignored completely.</p><p>SSPs all of the sudden saw bid rates (the rate at which DSPs bid on their traffic) wiggle all over the place. Some poor account manager probably reached out to the DSP and went &#8220;what is happening?!?!&#8221; to which the DSP replied &#8220;lol, get better traffic bro,&#8221; and then the SSP leadership team got fired by their board for not knowing what was going on. But then, genius idea, someone at the SSP realized the inverse of the DSP realization &#8220;It would seem the DSP bids more often according to some kind of horrible arbitrary pattern. What if we send more stuff according to that arbitrary pattern?&#8221; Honestly, it was probably the same machine learning person who built the dynamic throttling algorithm at the DSP. And they said to their leadership &#8220;Hey, if we dynamically change which bid requests we send to the DSP, we can manipulate their bid rates and get them to spend more money with us. I know, because I built the DSP algorithm, and I know how to trick it. Wait did I say that out loud? Nevermind, oh, and by the way, egress costs will go down too!&#8221; The new leadership team, put in place by the board, saw revenue going up double digit percentage points with their magic new algorithm and made this person a C level.</p><p>And this brings us to where we are today. Throttling is a mess. It is a game of machine learning algorithms trying to learn and optimize to other machine learning algorithms, based on signals that <s>probably</s> have very dubious statistically significant optimizable value in the first place. This has resulted in two even worse things :</p><ol><li><p>This dynamic throttling war is partially responsible for bid jamming. The more systems throttle, at least initially, the more money you make by slapping as many bid requests into their face as possible. This is not publishers&#8217; fault. This shit worked because of these dumb throttling algorithms.</p></li><li><p>Now, publishers are implementing <em>their own</em> machine learning algorithms manipulating the ad requests that go to exchange from their prebid auctions &#8211; because now exchanges throttle inbound too, it&#8217;s just great &#8211; the cost incentives are different because sending requests from the client doesn&#8217;t cost publishers money, but certainly ad exchanges throttle what they listen to from publishers, and building algorithms to game their algorithms indisputably can make more money from publishers.</p></li></ol><p>We are now in the endgame of this vicious cycle of throttling spend down and then building algorithms to game and throttle spend up. I put it at about the 4th circle of hell &#8211; we aren&#8217;t quite with Satan in the ice dungeon in the middle of the earth yet, but we&#8217;re basically swimming in feces up to our necks. Or maybe that was the 6th circle, I don&#8217;t remember.</p><p>And this bullshit makes it really difficult when you want to actually fix the ecosystem. I know this because my company is fixing inventory categorization &#8211; I think ad placements, and sites, and everything having to do with inventory classification in bid requests could be much, much better. And we built a better mousetrap. Gamera classifies inventory more effectively than a GAM ad unit ever could, models performance, and creates stable identifiers that increase the performance of ad campaigns &#8211; helping publishers put their best foot forward to buyers and helping buyers reduce CPC and CPV and CPA by 35%+ (I&#8217;ll stop selling now I promise). But, because programmatic is busted, I can&#8217;t transmit my data directly through the pipes, so I&#8217;ve given up on that for now.</p><p>But what we <em>do</em> do is curate. We build PMPs (and help others build PMPs in combination with our inventory signals) using our data. And because of those stupid throttling algorithms, that are optimizing to signals that are awful, it&#8217;s a magic guessing game of the percentage dropoff of signals we send in via the client, signals sent out in bid requests, and therefore signals heard by DSPs.</p><p>In some circumstances, we see 99.9% dropoff rate from signals sent in via the client to signals heard in the DSP. <em>99.9 fucking %</em>. Nobody at the DSP or the exchange can explain why &#8211; because it isn&#8217;t humans doing this, it&#8217;s machine learning algorithms optimizing to machine learning algorithms optimizing to other machine learning algorithms. I swear, the amount of money paid to these throttling analysis people probably could&#8217;ve cured some horrible disease by now.</p><p>And this leads me to my conclusion for this article &#8211; which is that these throttling algorithms, because they&#8217;re making decisions based on imperfect bid request data (read : garbage inventory identifiers and user IDs) and based on <em>other</em> machine learning algorithms are<strong> indisputably</strong> making the industry more inefficient. It means there are advertising opportunities that buyers are missing out on, which means buyers get shittier results and that publishers make less money. This is a direct result of how the infrastructure is designed, and the vicious cycle of bid jamming and throttling on throttling.</p><p>So how do we fix it?</p><p>I think the fix is rather simple &#8211; in 2025, there&#8217;s no reason to be listening to more than 2 exchanges, and DSPs should compete on who throttles the least (and therefore who can perform the best). I remember a call with Jeff Green, well, my only call ever with Jeff, where I pitched Jeff on the direct, fee-less exchange I&#8217;ve written about before. His response was &#8220;we&#8217;re TTD, the fact that we can listen to everything means that we can find opportunities our competition can&#8217;t. I don&#8217;t need one exchange.&#8221; His position was an anti-throttling one at its core &#8211; basically, throttling makes our adversaries weaker. I couldn&#8217;t argue with him, because he wasn&#8217;t wrong. And his statement rings true to this day, probably 8 years later.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0504!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde1e0a2-795f-4d6a-8580-f7c99d6231f1_687x500.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0504!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde1e0a2-795f-4d6a-8580-f7c99d6231f1_687x500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!0504!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde1e0a2-795f-4d6a-8580-f7c99d6231f1_687x500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!0504!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde1e0a2-795f-4d6a-8580-f7c99d6231f1_687x500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!0504!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde1e0a2-795f-4d6a-8580-f7c99d6231f1_687x500.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0504!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde1e0a2-795f-4d6a-8580-f7c99d6231f1_687x500.jpeg" width="687" height="500" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fde1e0a2-795f-4d6a-8580-f7c99d6231f1_687x500.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:500,&quot;width&quot;:687,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:65904,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.garethhatesadtech.com/i/158950027?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde1e0a2-795f-4d6a-8580-f7c99d6231f1_687x500.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0504!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde1e0a2-795f-4d6a-8580-f7c99d6231f1_687x500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!0504!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde1e0a2-795f-4d6a-8580-f7c99d6231f1_687x500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!0504!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde1e0a2-795f-4d6a-8580-f7c99d6231f1_687x500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!0504!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffde1e0a2-795f-4d6a-8580-f7c99d6231f1_687x500.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>There will always be listening and bidding optimization &#8211; a tradeoff between cost efficiency and performance &#8211; but Ad Tech needs performance to win if it&#8217;s going to survive.</p><p>Thanks for reading! And try out my data, it works great, or if you&#8217;re a publisher, make sure you&#8217;re using us for your direct sales (amongst all of our epic publisher products). Or that we&#8217;re at least implemented so that when we fix the internet for advertisers and DSPs you&#8217;re included in the party.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Gareth Hates AdTech! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Flash Post - I Was Wrong About Curation]]></title><description><![CDATA[But not for the reasons you think]]></description><link>https://www.garethhatesadtech.com/p/flash-post-i-was-wrong-about-curation</link><guid isPermaLink="false">https://www.garethhatesadtech.com/p/flash-post-i-was-wrong-about-curation</guid><dc:creator><![CDATA[Gareth Glaser]]></dc:creator><pubDate>Mon, 25 Nov 2024 14:02:37 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!-HUC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F444548ff-d224-41b3-a76f-d52fb004f705_600x400.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>Disclosure &#8211; this is a fleshing out of some of my comments in Rob Beeler&#8217;s epic slack channel.&nbsp; He&#8217;s built an awesome community engaging in substantive discussions. </strong><a href="https://beeler.tech/community/">https://beeler.tech/community/</a></p><p>No, this is not a retraction.&nbsp; I wasn&#8217;t <em>fully</em> wrong about curation.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Gareth Hates AdTech! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-HUC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F444548ff-d224-41b3-a76f-d52fb004f705_600x400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-HUC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F444548ff-d224-41b3-a76f-d52fb004f705_600x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!-HUC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F444548ff-d224-41b3-a76f-d52fb004f705_600x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!-HUC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F444548ff-d224-41b3-a76f-d52fb004f705_600x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!-HUC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F444548ff-d224-41b3-a76f-d52fb004f705_600x400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-HUC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F444548ff-d224-41b3-a76f-d52fb004f705_600x400.jpeg" width="600" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/444548ff-d224-41b3-a76f-d52fb004f705_600x400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:42876,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-HUC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F444548ff-d224-41b3-a76f-d52fb004f705_600x400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!-HUC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F444548ff-d224-41b3-a76f-d52fb004f705_600x400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!-HUC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F444548ff-d224-41b3-a76f-d52fb004f705_600x400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!-HUC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F444548ff-d224-41b3-a76f-d52fb004f705_600x400.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>As a technologist, curation still doesn&#8217;t make sense to me.&nbsp; If we&#8217;re looking for optimal outcomes for advertisers on the open web, all of my prior criticisms still apply.</p><p>I was wrong about the <em>focus</em> of my criticism &#8211; and about the reason for curation existing.</p><p>My prior assumption was that curation existed because of fragmentation of <em>data</em>.&nbsp; That isn&#8217;t actually what it is, though that is the guise it hides under.</p><p>Now that I&#8217;ve seen the guts of curation, curation exists because DSPs are dropping the ball on performance.&nbsp; And enterprising SSPs, being wiley as they are, have discovered a way to take advantage of this.</p><p>I am reimagining curation.&nbsp; It is not a data play.&nbsp; It is not a technology play in <em>any</em> way.</p><p>It is a pure business model play, and that business model is that of the affiliate network.</p><p>Exchanges have built their own agency sales/adops affiliate networks.</p><p>For those of you unfamiliar with the affiliate model, it&#8217;s a pure play performance model wherein the affiliate gets compensated when they cause an outcome to occur &#8211; and they&#8217;re often compensated a % of the revenue generated by the outcome.&nbsp; In this scenario, the outcome is getting an Agency to buy against a PMP, and it&#8217;s an affiliate platform on steroids, because the affiliates get to construct their own custom offers (custom PMPs) based on a menu of things provided by the ad exchange.&nbsp; This is genius.&nbsp; In the curation affiliate model, the curator then gets to set their own terms &#8211; often up to 30% <strong>of total spend</strong>!&nbsp; An unimaginable amount of compensation to an adops lead who creates tremendous results for their brand or agency &#8211; but not for a curator!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XsVK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb43d15de-86c4-4c80-b845-44aefa6a2266_568x500.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XsVK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb43d15de-86c4-4c80-b845-44aefa6a2266_568x500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!XsVK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb43d15de-86c4-4c80-b845-44aefa6a2266_568x500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!XsVK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb43d15de-86c4-4c80-b845-44aefa6a2266_568x500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!XsVK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb43d15de-86c4-4c80-b845-44aefa6a2266_568x500.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XsVK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb43d15de-86c4-4c80-b845-44aefa6a2266_568x500.jpeg" width="568" height="500" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b43d15de-86c4-4c80-b845-44aefa6a2266_568x500.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:500,&quot;width&quot;:568,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:60447,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!XsVK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb43d15de-86c4-4c80-b845-44aefa6a2266_568x500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!XsVK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb43d15de-86c4-4c80-b845-44aefa6a2266_568x500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!XsVK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb43d15de-86c4-4c80-b845-44aefa6a2266_568x500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!XsVK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb43d15de-86c4-4c80-b845-44aefa6a2266_568x500.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>But, like I said in my prior article, these crazy numbers are not meant to be a condemnation of the affiliates (the &#8220;curators&#8221;) or the exchanges.&nbsp; They&#8217;re executing a business model that is inarguably adding value for someone, because their fees are deducted in-flow, and the bids through their dealIds are still higher than all of the other bids in the auctions (assuming they win), at least in header bidding unified auction environments.</p><p>The question that we need to be asking ourselves is&#8230;why is this possible?&nbsp; Why is it possible for a sales person, often with zero proprietary technology, to bundle up some inventory and sell it directly to agencies and those bundles <em>outperform other strategies in the DSP?</em></p><p>There is a potential explanation.&nbsp; Many industry old-heads repeat the refrain that the only system in ad tech that ever worked for performance was Right Media.&nbsp; The theory that I&#8217;ve heard put forward there is that unlike OpenRTB, which allows broad-pipe integrations between demand and supply, Right Media had a very &#8220;manual&#8221; linking process for what were essentially mini-exchanges within Right Media.&nbsp; This meant that the optimization algorithms got a new bite-size chunk of inventory to optimize to with each new link, but none of those chunks were ever anything near the size of the modern ad exchange (especially in the world of header bidding).&nbsp; The optimization algorithms, therefore, were able to build more accurate predictive models for performance, because they weren&#8217;t constantly trying to &#8220;boil the ocean&#8221; with every new campaign.</p><p>There&#8217;s a nonzero chance that Curation is simply narrowing down the pool of inventory that DSPs optimize to, and by virtue of that fact (limiting the number of places that the optimization algorithm has to consider), improving performance by enough to justify a 20-30% fee. &nbsp; Also, if you&#8217;re a pro-trader on a DSP, and you&#8217;re not reading this article and thinking about starting a curation business, I don&#8217;t know what you&#8217;re doing.&nbsp; Because it seems to me that you could be making 20-30% of the budgets you manage :D.</p><p>Now this could be BS, and my goodness, Right Media is 20 years old.&nbsp; I can only imagine that data science has come a long way since then.</p><p>Other explanations also exist.  For example, many DSPs are relatively religious about not pooling client performance data &#8212; Pepsi would probably be pretty unhappy with you if you looked at their top performing campaign and then shot a note to Coke &#8220;Hey guys, check this out, it works AWESOME!&#8221;  Curation, on the other hand, revels in the performance data from one agency or brand enhancing performance for another,  and operates nice and neutrally as a vendor on the &#8220;sell-side.&#8221;</p><p>But the point remains &#8211; people are doing this and it&#8217;s making campaigns work better.&nbsp; I was wrong because I painted curation as a data play, it&#8217;s actually much less sophisticated than that.&nbsp; It&#8217;s an affiliate sales play.&nbsp; And algorithms worth hundreds of millions of dollars are getting upstaged by sales/adops people.</p><p>This all being said, DSPs could of course build their own version of curation &#8211; allow members within your platforms to sell targeting and optimization templates to one another for a % of spend going to the person selling the template.&nbsp; I bet it would work even better!&nbsp; I also bet all of the current curation companies would get in on the game.</p><p>But like, isn&#8217;t this kind of the job of a DSP?&nbsp; To help individual DSP users run campaigns super well?&nbsp; Hopefully curation just ushers in a new era of focus on outcome-based optimization, but people need to come to terms with the value it&#8217;s actually providing first.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Gareth Hates AdTech! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The Ad Tech Tax Explained]]></title><description><![CDATA[It Ain't What You Think]]></description><link>https://www.garethhatesadtech.com/p/the-ad-tech-tax-explained</link><guid isPermaLink="false">https://www.garethhatesadtech.com/p/the-ad-tech-tax-explained</guid><dc:creator><![CDATA[Gareth Glaser]]></dc:creator><pubDate>Mon, 18 Nov 2024 14:02:36 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!PlFY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbd2ba5f-e9f7-47bb-972f-7f41fbc397b6_500x680.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome back to GHAT.&nbsp; Today is a philosophical examination of motive and incentive in ad tech in order to explain the ad tech tax, which doesn&#8217;t seem to be going anywhere even though everyone keeps complaining about it. &nbsp; My thesis is that most people who complain about the ad tech tax think it exists because people are greedy, or dumb, or short-sighted.&nbsp; I think most people are wrong.&nbsp;&nbsp;</p><p>If we engage in deep thinking about the various forces within the ad tech value chain, we can uncover how everyone acting in good faith can result in a remarkably inefficient ecosystem.&nbsp; It is only with this understanding that we can transform it.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Gareth Hates AdTech! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Please note, as with most of my writing, my intention is to bring the ideal independent digital marketing world into being, not reflecting on the &#8220;reality&#8221; of the world today.&nbsp; I also have no horses in this race, and enjoy partnerships with all of the entities described here.&nbsp; This is not meant to castigate anyone &#8211; merely to explain why the world as it is probably isn&#8217;t going anywhere soon unless there&#8217;s a meaningful disruptive force.&nbsp; I also believe that independent marketing infrastructure is the lifeblood of the open web, and to the extent that we care about the decentralized distribution of information, it is our duty to improve these technologies to the best of our ability.&nbsp; On to the discussion.</p><p>The villain of today&#8217;s article is something we all know well.&nbsp; It&#8217;s been around as long as I&#8217;ve been in ad tech, and certainly before, and it&#8217;s not going anywhere any time soon.&nbsp; The villain in ad tech is the Revenue Share.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PlFY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbd2ba5f-e9f7-47bb-972f-7f41fbc397b6_500x680.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PlFY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbd2ba5f-e9f7-47bb-972f-7f41fbc397b6_500x680.jpeg 424w, https://substackcdn.com/image/fetch/$s_!PlFY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbd2ba5f-e9f7-47bb-972f-7f41fbc397b6_500x680.jpeg 848w, https://substackcdn.com/image/fetch/$s_!PlFY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbd2ba5f-e9f7-47bb-972f-7f41fbc397b6_500x680.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!PlFY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbd2ba5f-e9f7-47bb-972f-7f41fbc397b6_500x680.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PlFY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbd2ba5f-e9f7-47bb-972f-7f41fbc397b6_500x680.jpeg" width="500" height="680" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fbd2ba5f-e9f7-47bb-972f-7f41fbc397b6_500x680.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:680,&quot;width&quot;:500,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:61157,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!PlFY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbd2ba5f-e9f7-47bb-972f-7f41fbc397b6_500x680.jpeg 424w, https://substackcdn.com/image/fetch/$s_!PlFY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbd2ba5f-e9f7-47bb-972f-7f41fbc397b6_500x680.jpeg 848w, https://substackcdn.com/image/fetch/$s_!PlFY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbd2ba5f-e9f7-47bb-972f-7f41fbc397b6_500x680.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!PlFY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbd2ba5f-e9f7-47bb-972f-7f41fbc397b6_500x680.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><strong>Loss Aversion</strong></p><p>For the uninitiated, a revenue share refers to paying a vendor a % of revenue as opposed to a flat fee &#8211; the attractive part of revenue shares being that they&#8217;re directly proportional to the amount of money spent on or paid for media, with no &#8220;guaranteed&#8221; fees..&nbsp; The reason revenue shares work is because of a game theory concept called Loss Aversion (read more here <a href="https://en.wikipedia.org/wiki/Loss_aversion">https://en.wikipedia.org/wiki/Loss_aversion</a>), the TLDR of loss aversion is that people <em>hate</em> paying and losing money, especially publishers in my experience, and they hate it so much that they will sacrifice potential expected value (ie. make less money over all) as long as they can avoid something being framed as a loss.&nbsp; An example, which all media people will identify with &#8211; which do you think your average publisher would prefer :&nbsp;</p><ul><li><p>Publisher pays vendor $3 guaranteed, has a 70% chance to make $10 (publisher is net +7)</p></li><li><p>Publisher pays vendor $0 guaranteed, has a 70% chance to make $10, but has to pay $8 of the $10 (publisher is net +2)</p></li></ul><p>Publishers will pick the second option <em>almost every time</em>.&nbsp; This is because the 30% chance of losing $3 is untenable to them; the notion of a guaranteed cost without guaranteed revenue is unacceptable.&nbsp; This, even though the expected value of the first option is meaningfully higher!</p><p>And the rabbit hole goes further!&nbsp; Not only does loss aversion cause non-optimal decision making, which you could also say is just an outsourcing of the risk associated with technology costs, but because of the nuances of ad tech, it actually creates the illusion of fully aligned incentives that are not quite there.&nbsp; In many scenarios, it would make sense that a revenue should align two parties who both want to maximize the total value of a thing &#8211; a % of revenue means you want the revenue number to be as high as possible.&nbsp; However, in the world of unified auctions, it does <em>not totally </em>mean that. This is kind of a complicated theory, so buckle up, but it is actually the case.</p><p><strong>Demand Inelasticity</strong></p><p>The thing that breaks the incentive structure of revenue shares is bid jamming (article here https://www.garethhatesadtech.com/p/bid-jammin).&nbsp; The net effect of bid jamming is demand inelasticity wherein the bid variability for differential supply paths within a single auction is <em>so high</em> that the additional share of voice generated by a reduction in vendor take rate (read: taking a lower revenue share) is actually <em>negligible</em>.&nbsp; I know because I tried this.&nbsp; I built an SSP, got bids from the trade desk, and took <em>zero vig</em>, and guess what?&nbsp; It didn&#8217;t win any more than any other supply path!&nbsp;&nbsp;</p><p>When it comes to incentives, SSPs/Exchanges now have a strange decision to make.&nbsp; I, as an SSP, do not increase my share of voice (or increase it minimally) by reducing my fees.&nbsp; Therefore, I can assume that my <em>a priori</em> share of voice is actually somewhat static &#8211; so I am now incentivized, in order to maximize my margin, to either increase my SOV in other ways (hello ID bridging and curation), or to maximize my margin, because me taking higher fees won&#8217;t decrease <em>my</em> revenue, just that silly publisher&#8217;s.&nbsp; Additionally, for ID bridging and for Curation, I only care that they increase my share of voice with their differentiated bids &#8211; if I can, I want to scoop off as much margin as possible and not pass additional cash to the publisher.&nbsp; Because of this demand inelasticity, my optimization is not to maximize the size of my payout to publishers, my optimization is to maximize my SOV and my margin.&nbsp; Increase Publisher Revenue? Yes.&nbsp; Maximize? No.</p><p><strong>The Aggregate Effect is not Intuitive</strong></p><p>Let&#8217;s illustrate this. For example, each new ad tech entrant adds 15% to the total CPM in the transaction, through some sort of value add &#8211; be it increased outcome rates, some kind of auction manipulation, whatever. Without demand inelasticity, aka in a perfect market, if they pass 100% of the 15% through to the publisher, they would maximize their share of voice, and for every reduction to that 15% they extracted in fees, their share of voice would decrease proportionally because the bid would decrease.&nbsp; <strong>However, because demand is inelastic, this is not the case</strong>.&nbsp; The additional fees subtracted from the bids <strong>generally do not lead</strong> to a reduction in share of voice, or at least not cleanly or linearly. So what&#8217;s the net result?&nbsp; The vendor is incentivized to take as high of a fee as possible while still maintaining their edge in the auction &#8211; which is often super, super, high.&nbsp; We&#8217;re talking 15% of value and a 14% fee &#8211; but still transact.</p><p>This math, I believe, is what has sent our industry awry. &nbsp; Every vendor does this math, and if they&#8217;re truly adding 15% of value, they can charge the 14%...and publishers are still happy with their 1% lift because they&#8217;ve taken no risk! &nbsp; There&#8217;s no real incentive to upset the apple cart here either &#8211; you&#8217;d think vendor competition would have them squeezing one another, but with everyone adding different kinds of value (and weird price inelasticity in a given auction due to throttling and whatnot), it&#8217;s a phenomenon that hasn&#8217;t come into vogue.&nbsp; Even with SSPs, the biggest commodity players in the industry, I&#8217;ve observed that meaningful reductions in take rate don&#8217;t lead to proportional increases in share of voice.</p><p>Publishers don&#8217;t care because they live in a world of header bidding &#8211; even if the SSPs and Curators generated $10 of surplus value, if they take $9 of it and pay the publisher $1, the publisher is still coming out ahead.&nbsp;&nbsp;</p><p>And this, my friends, has been happening over, and over, and over with tech layer and tech vendor after tech layer and tech vendor.&nbsp; The revenue share, and specifically the sell-side revenue share, has created an environment where the lion&#8217;s share of the surplus value created by independent ad tech vendors has <em>gone to those ad tech vendors</em>.&nbsp; But, I would argue, the vendors <em>are not to blame!</em>&nbsp; This is the expressed preference of publishers, who are allergic to costs and loss averse. Things are especially muddy in the exchange space, due to price inelasticity and entrenched relationships between DSPs and SSPs, and that&#8217;s why we <em>do</em> see innovation in the header bidding management layer (RTK, my company, did not charge revenue shares for our software.&nbsp; We were the only ones in the space not to do so at the time, this was in 2015.&nbsp; We included an ad exchange in it, but even with zero revenue share, my friends at TTD meaningfully throttled down our supply path, though it was probably our fault &#8211; RIP).&nbsp; This is also why I don&#8217;t like Curation.&nbsp; It is inarguable that Curation helps publishers, just like it is inarguable that SSPs help publishers, but the problem I have with it is that it&#8217;s just another rev share &#8211; publishers have become vessels for new technology to ride along, but get paid a measly wage for their services.</p><p><strong>Why should we care?</strong></p><p>We should care because our competition here, X, Google, Facebook, etc, does not have this value siphon draining dollars from their ecosystem.&nbsp; Every incremental % of value that they create is funneled into making their technologies more effective or their content better.&nbsp; And until we figure this out, and fix the massive revenue leaks in our industry, we will lose to them more and more.&nbsp; AppLovin, in an ecosystem that grew up and came into being after the DSP and SSP existed, does not operate and make most of their money in RTB.&nbsp; It is important to understand why.</p><p><strong>What can we do?</strong></p><p>Apart from publishers changing their behavior, which I will not hold my breath for, I think the onus is on DSPs to really dig into bid jamming and select <em>single</em> supply paths to publishers.&nbsp; I don&#8217;t mean SPO to 3 or 4, I mean SPO to <strong>one.</strong>&nbsp; If the demand inelasticity goes away a lot of these problems fix themselves and people actually have to compete on take rate.&nbsp; I won&#8217;t hold my breath for this either, but it would go a long way.</p><p>There are other solutions, but I&#8217;m going to use them in my products, SO I&#8217;m not going to spill all of my secrets to you here :).&nbsp;&nbsp;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Gareth Hates AdTech! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Curation Stinks]]></title><description><![CDATA[Don't @ Me]]></description><link>https://www.garethhatesadtech.com/p/curation-stinks</link><guid isPermaLink="false">https://www.garethhatesadtech.com/p/curation-stinks</guid><dc:creator><![CDATA[Gareth Glaser]]></dc:creator><pubDate>Wed, 25 Sep 2024 16:15:53 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!fvcw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F295d5ddc-bd08-4d5a-aaa3-550f98314bac_632x395.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>Curation Stinks</strong></p><p>I have been given a gift, not-so-rarely afforded to those in my position, wherein Ad Tech has created another thing that I think is dumb, but all of you seem to be buying.&nbsp; That thing is &#8220;curation.&#8221;</p><p>In light of that, a disclaimer &#8211; I may at some point sell some of you some kind of product that does this.&nbsp; I will not be happy that I am selling it.&nbsp; I will take no joy in it.&nbsp; But damnit, if you want to pay for something that does this, do not consider this article a statement that I will never build it, because I might.</p><p>With no further ado, let us explore Curation in the depths of its silliness.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fvcw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F295d5ddc-bd08-4d5a-aaa3-550f98314bac_632x395.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fvcw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F295d5ddc-bd08-4d5a-aaa3-550f98314bac_632x395.jpeg 424w, https://substackcdn.com/image/fetch/$s_!fvcw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F295d5ddc-bd08-4d5a-aaa3-550f98314bac_632x395.jpeg 848w, https://substackcdn.com/image/fetch/$s_!fvcw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F295d5ddc-bd08-4d5a-aaa3-550f98314bac_632x395.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!fvcw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F295d5ddc-bd08-4d5a-aaa3-550f98314bac_632x395.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fvcw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F295d5ddc-bd08-4d5a-aaa3-550f98314bac_632x395.jpeg" width="632" height="395" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/295d5ddc-bd08-4d5a-aaa3-550f98314bac_632x395.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:395,&quot;width&quot;:632,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:58450,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!fvcw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F295d5ddc-bd08-4d5a-aaa3-550f98314bac_632x395.jpeg 424w, https://substackcdn.com/image/fetch/$s_!fvcw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F295d5ddc-bd08-4d5a-aaa3-550f98314bac_632x395.jpeg 848w, https://substackcdn.com/image/fetch/$s_!fvcw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F295d5ddc-bd08-4d5a-aaa3-550f98314bac_632x395.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!fvcw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F295d5ddc-bd08-4d5a-aaa3-550f98314bac_632x395.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.garethhatesadtech.com/subscribe?"><span>Subscribe now</span></a></p><p><strong>What Is Curation</strong></p><p>In simple terms, Curation is a kind-of new form of &#8220;bundling.&#8221;&nbsp; Bundling means grouping the inventory of multiple publishers together using some kind of logic, and then going out and pitching agencies/advertisers directly on your shiny new &#8220;bundle.&#8221;&nbsp; The defining logic of the bundle could be anything &#8211; certain pieces of inventory, data, sitelists, whatever.&nbsp; You name it, someone is bundling it, and someone is pitching it.</p><p>Historically, bundling was done as a standalone platform business model.&nbsp; This is why people refer to curation as the new form of Ad Network &#8211; because this was literally the pitch of ad networks for a decade.&nbsp; Have a contextual data set?&nbsp; Great, let&#8217;s sign up some publishers, layer the contextual data set on top of it, and close some direct advertiser deals.&nbsp; How about cookie data about users?&nbsp; Awesome, let&#8217;s start TACODA, the 2005 Behavioral Ad Network.&nbsp; Unique (or not-so-unique) data has been and continues to be the lynchpin of countless ad network businesses.</p><p>But now it&#8217;s 2024, and appropriately, bundling in its modern form uses the favorite mutant offspring of the Ad Tech middle man &#8211; the Deal ID.&nbsp; Deal IDs are the foundational technology of PMPs (Private Marketplaces), which have been &#8220;Curating&#8221; for years.&nbsp; Deal IDs are logic-based labels that are dynamically applied to bid requests by an ad exchange.&nbsp; In direct opposition to bundling of old, where you had a separate technological entity, Deal IDs allow you to bundle within a pre-existing piece of tech that already has inventory integrated with it &#8211; the ad exchange.&nbsp; We&#8217;ve made a frictionless transition to this for reasons I will describe later.</p><p>Deal IDs are a strange creature.&nbsp; They were originally invented for publishers to do their own bundling, and I would argue that this was in a sense &#8220;okay,&#8221; while still not being optimal.&nbsp; Their initial use was meant to be a semi-direct sold methodology, something in between programmatic guaranteed and open auction. But in truth,&nbsp; the notion of a publisher needing to label something that was typically already readily available for targeting to DSPs always rubbed me the wrong way, often tacking on some pulled-out-of-a-hat pricing to sweeten the inefficiency deal.&nbsp; Don&#8217;t get me wrong, I&#8217;m sure there were some people who used them properly and had a good reason for doing so, but over time they became progressively more and more meaningless.</p><p>I think the reason that Deal IDs became so fraught is because they&#8217;re by design adding an inefficient component to programmatic auctions. This is because a Deal ID system is actually a <em>targeting</em> system &#8211; wherein the system user sets up a list of things they&#8217;d like to apply this Deal ID to, and then the Deal ID system applies it when appropriate.&nbsp; In the case of modern curation, the targeting system is used to integrate the dataset, whatever it may be, with the bid requests generated by the ad exchange.&nbsp; So the flow is as follows :&nbsp;</p><ol><li><p>Publisher loads website.&nbsp; Prebid runs, sends requests to ad exchanges.&nbsp; Maybe publisher or a publisher vendor passes in some KVPs for targeting, maybe they don&#8217;t.</p></li><li><p>Requests land in the ad exchange.&nbsp; Ad exchange executes a lookup, where they have a BUNCH of Deal ID rules set up each with its own set of qualifying targeting (inventory, geo, data provider, blah blah)</p></li><li><p>Qualifying requests get the appropriate Deal ID appended to them.</p></li><li><p>Requests go out to DSPs, with a subset of requests having the relevant Deal ID(s) appended, to be labeled as &#8220;PMPs&#8221;</p></li></ol><p>The problem I have with targeting in this context is that it&#8217;s <em>way</em> too close to the concept of a &#8220;campaign&#8221; in a DSP for me to believe it&#8217;s efficient.&nbsp; In fact, the universal Deal ID troubleshooting email consists of the following &#8220;HEY DO YOU HAVE TARGETING TURNED ON IN ADDITION TO THE DEAL ID BECAUSE ITS NOT DELIVERING AND THAT&#8217;S PROBABLY&nbsp; WHY.&#8221;&nbsp; A DSP campaign contains a list of rules of things for the campaign to target, meanwhile, the deal ID system is executing a&#8230;list of rules of things for the deal ids to target.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_E0H!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd54b43d-c778-48d1-a5a0-0d79fc3109c8_612x408.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_E0H!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd54b43d-c778-48d1-a5a0-0d79fc3109c8_612x408.jpeg 424w, https://substackcdn.com/image/fetch/$s_!_E0H!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd54b43d-c778-48d1-a5a0-0d79fc3109c8_612x408.jpeg 848w, https://substackcdn.com/image/fetch/$s_!_E0H!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd54b43d-c778-48d1-a5a0-0d79fc3109c8_612x408.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!_E0H!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd54b43d-c778-48d1-a5a0-0d79fc3109c8_612x408.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_E0H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd54b43d-c778-48d1-a5a0-0d79fc3109c8_612x408.jpeg" width="612" height="408" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bd54b43d-c778-48d1-a5a0-0d79fc3109c8_612x408.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:408,&quot;width&quot;:612,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:63252,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_E0H!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd54b43d-c778-48d1-a5a0-0d79fc3109c8_612x408.jpeg 424w, https://substackcdn.com/image/fetch/$s_!_E0H!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd54b43d-c778-48d1-a5a0-0d79fc3109c8_612x408.jpeg 848w, https://substackcdn.com/image/fetch/$s_!_E0H!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd54b43d-c778-48d1-a5a0-0d79fc3109c8_612x408.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!_E0H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd54b43d-c778-48d1-a5a0-0d79fc3109c8_612x408.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.garethhatesadtech.com/subscribe?"><span>Subscribe now</span></a></p><p>When things are being done twice in the ad tech supply chain&nbsp; it&#8217;s normally the sign of a problem.&nbsp; And not only are Deal IDs watered-down forms of DSP targeting, in their modern form, they&#8217;re often hurting more than they&#8217;re helping.&nbsp; This is because Deal IDs are arbitrary, middleware-introduced signals that could mean absolutely anything, including <em>nothing at all</em>.&nbsp; It could be &#8220;homepage ATF on News Sites&#8221; or it could be &#8220;users who like potatoes.&#8221;&nbsp; It could be a &#8220;whitelist&#8221; of literally every domain available in that exchange, packaged under a Deal ID because you&#8217;ve probably turned off your targeting for Deal IDs and this is a way for an ad exchange to slip mr. advertiser impressions that they don&#8217;t want.&nbsp; And this brings us to the krux (I spelled this like this in my first draft and I refuse to fix it) of the issue &#8211; we are using Deal IDs <em>badly</em>, and I&#8217;m not certain there&#8217;s a way to put the toothpaste back in the tube.</p><p>And it gets worse.&nbsp; Their original invention, while introducing targeting inefficiency, at the very least meant that Publishers or exchanges were using a shitty way to communicate optimization information to the buy side while keeping 100% of the fruits of their inefficient method.&nbsp; But modern &#8220;curation&#8221; has added a new component &#8211; the Deal ID middle man.&nbsp;&nbsp;</p><p>There are a few flavors of these middle men :&nbsp;</p><ol><li><p>Inventory Curation &#8211; &#8220;we&#8217;re going to put websites and ad units into a Deal ID so that you don&#8217;t have to build your own whitelists of these things&#8221;</p></li><li><p>Data Based Curation &#8211; &#8220;we have contextual or behavioral data we&#8217;re using to govern when this Deal ID applies&#8221;</p></li></ol><p>Where this gets spicy in the modern era is the sneaky-and-gross-but-totally-clever introduction of the third party curation provider.&nbsp; You see, dear reader, exchanges have been scared of becoming pure proxy servers for some time (or, disturbingly aware of the fact that that&#8217;s what they are).&nbsp; Given this unpleasant truth, they quite cleverly had the idea &#8220;what if we allow other companies to enrich the bid requests we&#8217;re sending out, without having to implement code anywhere else, and then they get a vig on the PMP.&#8221;&nbsp; In other words, exchanges had the realization they can become an integration point for data, and subtract a revenue share en-route that they then pay to those third parties, while also outsourcing the sales against that data.</p><p>This is great for exchanges because they make a vig on their PMPs and have someone else doing sales for them.</p><p>This is great for the &#8220;curators&#8221; because they make a vig on their PMPs, and they don&#8217;t have to provide any technology other than &#8220;when&#8221; to apply the PMP &#8211; they can be basically pure sales companies.&nbsp; Plus they can often activate without additional technology on publishers already integrated with the exchanges.</p><p>This sucks because the signals going to DSPs aren&#8217;t what they could be, and we&#8217;ve managed to introduce yet another middle man into the ad tech supply chain.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mgAp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ef0f5c4-dd3e-4e5f-b1bb-b214eaf4208b_500x500.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mgAp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ef0f5c4-dd3e-4e5f-b1bb-b214eaf4208b_500x500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!mgAp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ef0f5c4-dd3e-4e5f-b1bb-b214eaf4208b_500x500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!mgAp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ef0f5c4-dd3e-4e5f-b1bb-b214eaf4208b_500x500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!mgAp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ef0f5c4-dd3e-4e5f-b1bb-b214eaf4208b_500x500.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mgAp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ef0f5c4-dd3e-4e5f-b1bb-b214eaf4208b_500x500.jpeg" width="500" height="500" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3ef0f5c4-dd3e-4e5f-b1bb-b214eaf4208b_500x500.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:500,&quot;width&quot;:500,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:48070,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!mgAp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ef0f5c4-dd3e-4e5f-b1bb-b214eaf4208b_500x500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!mgAp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ef0f5c4-dd3e-4e5f-b1bb-b214eaf4208b_500x500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!mgAp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ef0f5c4-dd3e-4e5f-b1bb-b214eaf4208b_500x500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!mgAp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ef0f5c4-dd3e-4e5f-b1bb-b214eaf4208b_500x500.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/p/curation-stinks?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.garethhatesadtech.com/p/curation-stinks?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p>Per my many articles on trying to fix ad tech, there are certain places where certain activities should occur in the programmatic supply chain.&nbsp; Targeting and optimization are the purview of the DSP.&nbsp; This is a <em>good</em> thing.&nbsp; We shouldn&#8217;t all be trying to build targeting systems and optimization algorithms, let some people specialize and get super good at it. Ultimately, I don&#8217;t like Curation, or Deal Ids, because I think bundling is <em>bad</em>.</p><p>Bundling is <em>bad</em> because the application of a given bundle may contain many different components, some of which may or may not be transparent to the DSP (or, frankly, might be totally value-less and already available without the bundle).&nbsp; This results in signal <em>reduction</em> and signal <em>muddying</em> &#8211; where the primary differentiated signal the DSP has is the deal ID, when in reality, the deal ID itself might be composed of signals unavailable to the DSP.</p><p>By reducing and muddying signals sent to DSPs, we&#8217;re making campaigns perform worse. By making campaigns perform worse, we&#8217;re making ad tech worse.&nbsp; Now, the counterargument to this is that some signal is better than no signal &#8211; and while that may be true, the argument of &#8220;well this makes more money than the alternative so we&#8217;re going to let it happen&#8221; is the justification for most of the bad things in ad tech.&nbsp; And because so many people aren&#8217;t actually optimizing their performance properly, bundling becomes another way to make middle men rich and hoover more money out of working media.</p><p>So what&#8217;s the solution here?&nbsp; My solution is that any signal that would be used to append a Deal ID <em>should</em> be communicated in its raw form to the DSP, and in doing so, the DSP will more effectively optimize the campaign to the signals that lead to outcomes.</p><p><strong>Curation Shouldn&#8217;t Exist, DSPs should just be better listeners</strong></p><p>I&#8217;ve done a lot of complaining about exchanges and middle men in this article, but at the end of the day, I believe the party most responsible for the emergence of curation middle men is the DSP.&nbsp; This is because I believe the <em>right</em> way to do this would be for Publishers to append whatever first (or third) party data they had to their bid requests in its raw form, instead of using a grouped Deal ID proxy, and DSPs should consume that data for optimization.</p><p>This would involve some OpenRTB cleanup &#8211; you might have a dozen different fields from a dozen different data providers flowing into the DSP, but in the age of artificial intelligence, more data is a <em>good</em> thing and should improve the performance of biddable media.&nbsp; DSPs should always want as much data as possible to back-correlate to campaign outcomes, and if they don&#8217;t, then there should be new DSPs who fire up who want to listen to that data and use it to back test versions of their optimization algorithms.&nbsp; &nbsp; Allow me to illustrate this future with an example :&nbsp;</p><p>A curation provider provides &#8220;MFA-free&#8221; deal IDs.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.garethhatesadtech.com/subscribe?"><span>Subscribe now</span></a></p><p><strong>Current Curation Implementation</strong></p><p>Curation Provider crawls websites, has a list of websites it thinks are MFA as a result of its 10-point assessment system (i&#8217;m being generous here).</p><p>Bid request comes in, curation provider reads page URL, replies with a binary &#8220;Deal ID or No Deal ID&#8221;</p><p>All bid requests have normal information associated with them + non MFA requests get DealID:NOMFATKS appended to them</p><p>Agency buys Deal.&nbsp; Agency Logic consists of &#8220;well, NOMFATKS performs better than Open Exchange Buying, so I guess it&#8217;s worth the 15%&#8221; (once again, being generous here, it could be that it performs worse for their campaigns but they just really don&#8217;t want that MFA)</p><p><strong>Future Perfect State Implementation</strong></p><p>All bid requests have normal information +&nbsp;</p><p>fpd.InventoryData:</p><blockquote><p>AdDensity:1234</p><p>AdCount:6</p><p>InView:Yes</p><p>AttentionScore:75</p></blockquote><p>Basically, we pass each of the components that the Curator used to make the determination that it was MFA into the bid request, and we optimize to <em>those</em>.&nbsp; This means we do surgery instead of chopping with an axe.&nbsp; Theoretically, this could get messy if a publisher is working with a bunch of different data providers, but I would argue this is no different than working with 20 different userID providers, which people do today and nobody seems that upset about.</p><p>Now the DSP correlates campaign performance to the components that comprise MFA.&nbsp; Maybe some impressions that would have been purchased before for being &#8220;MFA&#8221;, now get purchased because of nuance in their scores, or some impressions from &#8220;non MFA&#8221; sites that would&#8217;ve been purchased, don&#8217;t get purchased because they have a component score that doesn&#8217;t correlate to outcomes.</p><p>The tricky part of this implementation is billing &#8211; Deal IDs are easy because middle men just get a vig (once again, the plague of all ad tech).&nbsp; This means that to do this the right way we need some prebid work.</p><ol><li><p>Each additional Data Provider needs to be A/B tested on a subsegment of traffic, and performance needs to be measured.&nbsp; Test needs to happen for a long enough time for DSPs to adapt to the signal.</p></li><li><p>Data Providers can then bill on a usage fee, or on a % of lift, whatever they prefer.</p></li></ol><p>I don&#8217;t just think this reform is important, I think it is <em>foundational</em>. Deal IDs are a core thing that holds back open web buying from performing as well as it could.&nbsp; My implementation would mean that we harness the power of open source to build optimization data that isn&#8217;t just &#8220;as good&#8221; as walled garden data, it&#8217;s <em>better</em> because of how many different data providers can compete on the lift they can create for advertisers.&nbsp; In this architecture, which is death of 3pc proof BTW, Open Web buying could enter a new era of increasing performance, and DSPs truly compete on their ability to find signal in noise to drive outcomes for their clients.</p><p>So yea, I think this would be awesome.&nbsp; Oh, and I&#8217;ll let you guys know on Linkedin when/if I have any curation products available.&nbsp; It&#8217;ll probably be soon.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.garethhatesadtech.com/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[And All That Could Have Been]]></title><description><![CDATA[A World Without GAM]]></description><link>https://www.garethhatesadtech.com/p/and-all-that-could-have-been</link><guid isPermaLink="false">https://www.garethhatesadtech.com/p/and-all-that-could-have-been</guid><dc:creator><![CDATA[Gareth Glaser]]></dc:creator><pubDate>Mon, 16 Sep 2024 18:30:27 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qsCB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40331905-96d0-4b81-8330-f1a928cb81db_500x649.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qsCB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40331905-96d0-4b81-8330-f1a928cb81db_500x649.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qsCB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40331905-96d0-4b81-8330-f1a928cb81db_500x649.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qsCB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40331905-96d0-4b81-8330-f1a928cb81db_500x649.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qsCB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40331905-96d0-4b81-8330-f1a928cb81db_500x649.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qsCB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40331905-96d0-4b81-8330-f1a928cb81db_500x649.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qsCB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40331905-96d0-4b81-8330-f1a928cb81db_500x649.jpeg" width="500" height="649" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/40331905-96d0-4b81-8330-f1a928cb81db_500x649.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:649,&quot;width&quot;:500,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!qsCB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40331905-96d0-4b81-8330-f1a928cb81db_500x649.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qsCB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40331905-96d0-4b81-8330-f1a928cb81db_500x649.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qsCB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40331905-96d0-4b81-8330-f1a928cb81db_500x649.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qsCB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40331905-96d0-4b81-8330-f1a928cb81db_500x649.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Welcome to a flash-installment of GHAT, which overrode my scheduled programming (me complaining about Curation, which you will all get in a week or two), as I think this is a time-sensitive article that everyone should read.</p><p>I want to talk about what the world would be like without GAM.&nbsp; There&#8217;s a non-zero chance that GAM and ADX will be separated by uncle sam, and I believe that this could be the beginning of the end of GAM.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Gareth Hates AdTech! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>My reasoning for this is that 95% of the people using GAM don&#8217;t actually need it.&nbsp; And the remaining 5%, Prebid could build a competitor that displaces GAM in a matter of months, with the actual migration process taking 3-5 years.</p><p>This is not to say that Prebid could function as an ad server right now, per Tom Kershaw&#8217;s testimony for the DOJ it is missing a bajillion core features.&nbsp; But those features are missing not because they&#8217;re impossible or even difficult to build in a superior way to GAM, rather because nobody at Prebid wanted to waste their time building something that very few people would use.&nbsp; Hell, we BUILT one of the core ones, even though I was bitching the whole time that no one would use it.</p><p>So, without further ado, the world without GAM.</p><p><strong>First, The History</strong></p><p>The concept of the publisher ad server is <em>ancient</em>.&nbsp; In a training I gave all of my RTK employees, and maybe even had a training video or two on back at AppNexus, I discussed the emergence of the ad server.&nbsp; In a sentence, the ad server is an abstraction layer that serves to swap out, target, and count the ads on publisher websites without an engineer having to change the ads on that website manually.</p><p>This needed to exist in 2005 because many things were direct sold (ie. the publisher made a deal directly with an advertiser), and things that weren&#8217;t direct sold went out to Ad Networks that weren&#8217;t interconnected.&nbsp; The Ad Server lived, thrived, and was necessary in a world where the systems <em>didn&#8217;t actually communicate with one another</em>.&nbsp; Rather, you ping ponged advertising impressions from system to system using javascript tags resulting in client side redirects, and every advertising system had its own internal economics that weren&#8217;t exposed to other systems.</p><p><strong>This Began To Change With RTB</strong></p><p>The first RTB systems, and I&#8217;ll just go with Right Media for this, changed the game by allowing networks to expose their economics to one another &#8211; in a simple sentence, instead of ping ponging advertising opportunities between one another with no communication about price, they could bid into one another&#8217;s advertising opportunities.&nbsp;</p><p>This concept, of one advertising ecosystem (ie. a network) bidding into another advertising ecosystem is the foundation of modern ad tech.&nbsp;&nbsp;</p><p>The trajectory looks like this :&nbsp;</p><p>Phase 1 - Early RTB (RMX, AdECN)</p><p>A single platform that houses multiple ad network entities.&nbsp; These ad network entities leverage the platform itself to bid into one another.</p><p>Phase 2 - Inter-Platform Bidding / OpenRTB Emergence</p><p>Instead of the various participants in the advertising auctions being housed within one platform, we develop technology for platforms to communicate with one another.&nbsp; This is when the concept of the DSP and the SSP emerged, and OpenRTB attempted to standardize the communication between those companies.&nbsp; Ad Exchanges are born here.</p><p>Phase 3 - Header Bidding</p><p>Header Bidding applies the same bidding theory that existed for Ad Networks (now called DSPs and SSPs) to a level of abstraction lower, within the publisher monetization stack, previously the exclusive purview of the ad server.&nbsp; Various Ad Networks now participate in a meta-auction at the publisher ad opportunity level, where the bids they get from their technology platform partners are passed along into an ultimate publisher level auction conducted by a javascript client side header bidding framework.&nbsp; Currently, but not necessarily, this then gets pushed into GAM.</p><p>The difference between Phase 3, where every system is capable of communicating live bids to one another for every single ad opportunity, and Phase 0 where the ad server was born, is <em>tremendous</em>.&nbsp;&nbsp;</p><p>In a world where every system is capable of bidding, Publishers without direct sales truly don&#8217;t need an ad server.&nbsp; This is 95% (or maybe 99%?) of publishers. &nbsp; And to be clear, this means that 99% of publishers who are using GAM are only using it <strong>because adx is the only participant in this supply chain that refuses to bid into other technology platforms</strong>.</p><p><strong>So, in light of this, I&#8217;d like to describe Phase 4 - A world without GAM</strong></p><p>In a world without GAM, we centralize all direct sold and programmatic inventory into a unified, single on page auction.&nbsp; Let&#8217;s make this auction perfect &#8211; here we go &#8211;</p><p>Step 1 &#8211; Inventory Definition</p><p>I&#8217;ve written about inventory definition in other articles, it&#8217;s how a publisher labels the inventory they have available.&nbsp; Publishers shouldn&#8217;t be responsible for this.&nbsp; Publishers should put ads where they want them to go, and then an automated system like Adelaide or Contextful or some other startup that I&#8217;m an advisor to (feel free to hit my dms) dynamically labels the inventory in a way that gives it stable, predictive performance value for advertisers.</p><p>Step 2 - Publisher First Party Data Addition</p><p>Publishers use first party data already for all kinds of stuff &#8211; typically communicated into GAM via key-value pairs.&nbsp; In Step 2, the publisher appends this first party data to the various ad holes on their website, and also uses the Prebid Real Time Data Module to append any other data from its vendors to the upcoming advertising auctions.&nbsp; This is standardized, and all enriching data for this ad advertising opportunity is appended here in a single step.&nbsp; Publishers can exert control over who sees what data, or they can blast everything to everybody as they see fit.  This almost entirely exists today in Prebid.</p><p>The reason things aren&#8217;t all consolidated here is primarily because OpenRTB also has to get its shit together regarding taxonomies for this stuff, and DSPs need to start ingesting and optimizing to the data fields more flexibly and stop driving people to use PMPs for dumb shit (article to follow next week).</p><p>Step 3 - Live Auction For Inventory</p><p>Requests are sent out for bids.&nbsp; In this Platonic future, the publisher has two sets of bidders.&nbsp;&nbsp;</p><p>1. Direct Sold &#8211; they&#8217;ve configured a bidding platform with their direct sold campaigns, they can use a DSP for this.&nbsp; Using a DSP actually has meaningful benefits, as their campaigns will be able to simultaneously target O&amp;O inventory and do audience extension in a unified way (appnexus can already do this, and has been able to for over a decade).&nbsp; DSPs are also fantastic at outcome optimization.&nbsp; GAM is terrible at or incapable of both of these things.&nbsp;&nbsp;</p><p>DSPs already have access control management, the concept of teams, and the ability to create tremendous hierarchy in their uses that is almost always superior to GAM&#8217;s ridiculous Teams feature.</p><p>We would need to introduce the concept of priority level (ie. guaranteed, p1-1000, etc), but that&#8217;s not super complicated and with the right incentives DSPs will build it quickly under the tutelage of a knowledgeable sell sider.</p><p>2. Programmatically Sold &#8211; all programmatic bidders compete in a unified auction.</p><p>In addition to the DSP housing the managed campaigns, the publisher has <em>all</em> of its other bidders.&nbsp; Ad Exchanges, DSPs who are now going Prebid Direct, you name it, everyone can participate in a single unified auction with modular implementation.&nbsp; Prebid Server becomes a big deal, because it provides basically infinite biddable scalability with zero latency impact.</p><p>Step 4 - Delivery</p><p>Prebid now renders the ad to the page directly.&nbsp; This saves us around 800ms of GAM doing bullshit, making ads across the internet perform better, and also exposes the auction dynamics via Open Source, so it literally becomes impossible for anyone to engage in shenanigans.</p><p><strong>Fin</strong></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Gareth Hates AdTech! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>This is Ad Tech 3.0.&nbsp; Let&#8217;s Make It Happen.</p><p><em>Feature disclaimers</em></p><p>Forecasting, or a tool to help publishers plan their direct sales, is something easily built as a plug-in to Prebid.&nbsp; In fact, forecasting coupled to an ad server sucks, if it were in Prebid you could have multiple forecasting vendors compete with one another and pick the one you liked best.&nbsp; It would be epic.</p><p>Ad Quality Controls for Publishers&nbsp; &#8211; easily accomplished by prebid, in fact I&#8217;m pretty sure Prebid is carrying this football forward and its always been one of my pet projects.&nbsp; This would objectively work better in Prebid than it does today.</p><p>Anything else an ad server can do Prebid could do better.</p><p><strong>Secondary Benefits of Ad Tech 3.0</strong></p><p>The Industry Grows Like a Mofo &#8211; using Prebid Server, anyone who wants to start a DSP can buy directly from any publisher using Prebid in a biddable way with trivial integration costs (zero latency cost, the cost of additional fanout in server, and prebid server could really easily add a throttling methodology for testing new bidders to control costs).&nbsp; We have tremendous new competition in the DSP space, because Ad Exchanges go away.&nbsp; Fewer Middle Men.&nbsp; This has a bajillion benefits.</p><p>Publishers Make More Money &#8211; by reducing auction latency, and making it much easier for bidders to integrate directly with publishers, and by simplifying the competitive workflows, Publishers <strong>undoubtedly</strong> make more money in this scenario.&nbsp; They have more competition for their ads, they have more transparency, and they own their future.</p><p>Advertisers Get Better Results &#8211; better data, communicated in a standard way, with better transparency on the auction methodology.&nbsp; Campaigns work better, more people spend money on the open web.</p><p>This would possibly save internet publishing.&nbsp; It would certainly make everyone more money.&nbsp; And there&#8217;s only one thing stopping this optimal outcome from happening &#8211;</p><p><strong>ADX DOESNT BID INTO PREBID.</strong></p><p>Thanks for coming to my Ted Talk.&nbsp; Happy Antitrust.  Also I won&#8217;t hold my breath</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Hj6Z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00cc2fad-4ab2-423c-8b2a-b27944eb90a0_500x676.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Hj6Z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00cc2fad-4ab2-423c-8b2a-b27944eb90a0_500x676.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Hj6Z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00cc2fad-4ab2-423c-8b2a-b27944eb90a0_500x676.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Hj6Z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00cc2fad-4ab2-423c-8b2a-b27944eb90a0_500x676.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Hj6Z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00cc2fad-4ab2-423c-8b2a-b27944eb90a0_500x676.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Hj6Z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00cc2fad-4ab2-423c-8b2a-b27944eb90a0_500x676.jpeg" width="500" height="676" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/00cc2fad-4ab2-423c-8b2a-b27944eb90a0_500x676.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:676,&quot;width&quot;:500,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Hj6Z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00cc2fad-4ab2-423c-8b2a-b27944eb90a0_500x676.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Hj6Z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00cc2fad-4ab2-423c-8b2a-b27944eb90a0_500x676.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Hj6Z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00cc2fad-4ab2-423c-8b2a-b27944eb90a0_500x676.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Hj6Z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00cc2fad-4ab2-423c-8b2a-b27944eb90a0_500x676.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Gareth Hates AdTech! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[MFA is Programmatic's Dark Mirror]]></title><description><![CDATA[Why am I publishing this lol]]></description><link>https://www.garethhatesadtech.com/p/mfa-is-programmatics-dark-mirror</link><guid isPermaLink="false">https://www.garethhatesadtech.com/p/mfa-is-programmatics-dark-mirror</guid><dc:creator><![CDATA[Gareth Glaser]]></dc:creator><pubDate>Wed, 19 Jun 2024 06:01:04 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!LUYT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F388b3001-1ed4-4656-ace2-7831e34ba2d9_532x400.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome to another installment of Gareth Hates Ad Tech, wherein I completely unnecessarily make enemies out of people I really do quite like.&nbsp; If you&#8217;re reading this and you feel put on blast, please know that I&#8217;m only trying to help make sure that we all have a place in the economy in 5-10 years.&nbsp; Sometimes a little tough love is necessary. Also, you're all sipping rose and aperol spritzes right now, so don't expect me to have any sympathy for you.</p><p>Today&#8217;s dead horse that I&#8217;m going to reanimate solely for the purpose of sledgehammering once again is MFA.&nbsp; I know, I know, <em>another</em> article about MFA?&nbsp; Please will people shut up about MFA?&nbsp;&nbsp;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Gareth Hates AdTech! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>No!</p><p>And I won&#8217;t because in my semi-humble opinion, most of the things I&#8217;ve read about MFA have completely missed the point.&nbsp; And just so we get it out of the way, if you&#8217;re reading this and you&#8217;re an MFA publisher, this article isn&#8217;t for you nor is it meant to be a defense of MFA.&nbsp; So don&#8217;t clog up the comments!&nbsp;&nbsp;</p><p>I think the right way, and frankly the only way, to discuss MFA is <em>incentives</em>.</p><p>It is my supposition that MFA is not a surprise, is not some &#8220;damnable&#8221; thing, and is in fact a predictable product of the systems that we&#8217;ve created.&nbsp; Allow me to explain.</p><p><strong>Cue the Time Machine</strong></p><p>I&#8217;d like to begin by focusing on something a little different &#8211; something I would call the &#8220;non programmatic internet.&#8221;&nbsp; These are websites whose monetization methodologies do not utilize programmatic advertising &#8211; rather, from their inception, they make money from other means.</p><p>This is readily apparent in some of the largest websites out there that conspicuously lack banner ads.&nbsp; Their business models are simple&nbsp; :&nbsp;</p><ol><li><p>Content that gets indexed effectively by SEO</p></li><li><p>Layouts, and content, that drive CPA performance marketing (known as commerce, or affiliate)</p></li></ol><p>By performance here, I mean primarily post-click performance advertising &#8211; where the advertisers only pay when someone clicks and then does a thing. &nbsp; This is because the early ad networks were really built around this, including Google Adsense which still pays out on clicks today, ostensibly because historically those clicks would either lead to outcomes or were the desirable outcome themself.</p><p>One of my favorite examples of this type of website is the wildly successful Credit Karma (one I&#8217;m intimately familiar with, because within the graveyard of Gareth&#8217;s failed tech startups lies <a href="http://credit-authority.com/">credit-authority.com</a>, Credit Karma before Credit Karma was big).</p><p>Credit Karma, as a website, is a brilliant example of performance marketing and innovation in upselling products after reviews.&nbsp; They originally provided reviews of credit cards, those reviews driving users to their site primarily through SEO (maybe they did some paid?&nbsp; I would love to know if they did&#8230;), and if you look at their homepage you can see it&#8217;s solely dedicated to driving users to products and to reviews of products (the main button is their in house product, a paid credit monitoring service, and then the little boxes below take you to their reviews of other products) :&nbsp;</p><p>https://www.creditkarma.com/</p><p>A nice example of one of these reviews, meant to be discovered via SEO, is one of these, a description of Balance Transfer credit cards&nbsp;</p><p><a href="https://www.creditkarma.com/credit-cards/balance-transfer">https://www.creditkarma.com/credit-cards/balance-transfer</a></p><p>In fact, if I type balance transfer credit card into Google, low and behold our good buddies at Credit Karma are indexing really well in the SERP (Search Engine Results Page)&nbsp;</p><p>But the long and short of it is you know what you don&#8217;t see on this website?&nbsp; Banner ads!&nbsp; Not a single one.&nbsp; There&#8217;s no programmatic here &#8211; this site monetizes almost entirely through conversions on their own products or through post-click attributed applications for other products (starting with credit cards, but expanding into other financial verticals).&nbsp; This is the internet built in the image of affiliate performance &#8211; and you can see this methodology implemented in tons of different web layouts.&nbsp; The page is built for a single purpose &#8211; to create clicks on that little continue button to get people to apply for credit cards.</p><p>The insight I want to drive home here is that the monetization methodology informs the structure of the website.&nbsp; A user clicking on information, and filling out an application, is the payable event.&nbsp; This means this website has evolved in such a way that it maximizes those payable events.</p><p>This brings me to MFA.&nbsp; What is the primary desirable payable event in programmatic for many advertisers?&nbsp; Now that we&#8217;ve moved away from raw impressions or CTR, it&#8217;s <em>viewable</em> impressions.</p><p>And that&#8217;s the outcome that many brands are optimizing towards.&nbsp; &#8220;Here&#8217;s an audience, make sure they see my ads per this little javascript measurement I execute&#8221; So what do you end up with?</p><p>Site&#8217;s whose primary existence is to create as many viewable impressions as possible as quickly as possible!&nbsp; This is not surprising <em>at all</em>.&nbsp; In fact, it&#8217;s stunning that it&#8217;s a revelation for <em>anyone</em>.</p><p>Note, the optimization goal of &#8220;viewable impressions&#8221; is <em>not</em> :&nbsp;</p><ul><li><p>Viewable impressions with not very many other things on the page (like other ads)</p></li><li><p>Viewable impressions on highfalutin content that we think is intellectually stimulating</p></li></ul><p>If it were those things, we would&#8217;ve seen websites writing more high-falutin content and ad impressions without lots of other stuff on the page. &nbsp; The failure of MFA is <strong>not MFA websites</strong>.&nbsp; The failure of MFA is that we built an incentive system in programmatic that essentially <em>necessitated their existence<strong>.&nbsp; </strong></em>And we&#8217;re now demonizing websites who were just giving us more of what we wanted and patting ourselves on the back.&nbsp; Shame on us.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LUYT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F388b3001-1ed4-4656-ace2-7831e34ba2d9_532x400.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LUYT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F388b3001-1ed4-4656-ace2-7831e34ba2d9_532x400.png 424w, https://substackcdn.com/image/fetch/$s_!LUYT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F388b3001-1ed4-4656-ace2-7831e34ba2d9_532x400.png 848w, https://substackcdn.com/image/fetch/$s_!LUYT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F388b3001-1ed4-4656-ace2-7831e34ba2d9_532x400.png 1272w, https://substackcdn.com/image/fetch/$s_!LUYT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F388b3001-1ed4-4656-ace2-7831e34ba2d9_532x400.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LUYT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F388b3001-1ed4-4656-ace2-7831e34ba2d9_532x400.png" width="532" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/388b3001-1ed4-4656-ace2-7831e34ba2d9_532x400.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:532,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!LUYT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F388b3001-1ed4-4656-ace2-7831e34ba2d9_532x400.png 424w, https://substackcdn.com/image/fetch/$s_!LUYT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F388b3001-1ed4-4656-ace2-7831e34ba2d9_532x400.png 848w, https://substackcdn.com/image/fetch/$s_!LUYT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F388b3001-1ed4-4656-ace2-7831e34ba2d9_532x400.png 1272w, https://substackcdn.com/image/fetch/$s_!LUYT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F388b3001-1ed4-4656-ace2-7831e34ba2d9_532x400.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I would say that MFA exposed two negative things while also signaling at least two positive things&nbsp; &#8211;&nbsp;</p><p>As for the negative things :&nbsp;</p><ol><li><p>The outcomes being defined by advertisers were not actually producing results for them (by many accounts, MFA sites looked like they performed great)</p></li><li><p>A bunch of people were not reviewing their sitelists as precisely and often as they could&#8217;ve been</p></li></ol><p><strong>Outcomes</strong></p><p>It is my firmly held belief that badly structured outcome goals are to blame for programmatic being subject to so much bullshit.&nbsp; When outcomes are poorly structured, and are not tied to explicit measurements of performance in <em>some</em> way, the industry naturally becomes a hornet&#8217;s nest of misaligned incentives and tomfoolery.&nbsp;</p><p>My reasoning here is simple &#8211; if the structure of advertiser outcomes doesn&#8217;t actually provide growth for a given advertiser, budgets can never increase to that channel outside of essentially arbitrary manipulation.&nbsp; It should simply never, ever, ever, be a <em>bad</em> thing to get more of your outcomes.</p><p>At worst, this is killing programmatic.&nbsp; It means programmatic is waging a war of reputation, not a war of performance, and after scandals like MFA how could a responsible CMO bet on the open web?&nbsp; If all they&#8217;re looking for is safety, and they can manipulate the data to make whatever channel look like it&#8217;s hitting their targets, they&#8217;re almost always going to pick the source that appeals to brand recognition &#8211; and when Google, Facebook, and big reliable direct sold names exist, open web programmatic is in trouble.&nbsp; I think that TTD does a great job of branding itself here &#8211; but ultimately you are what you eat, and TTD eats the open internet (this is why they have to do all this press about a sitelist &#8211; when performance is a commodity, and &#8220;branding&#8221; is the goal, the number one thing that hurts your campaigns is bad reputational press).&nbsp; And, by the way, thank goodness that TTD is there to do this &#8211; without them, programmatic would be in serious, serious trouble.</p><p>At best, these misaligned incentives create wealth for middle men and people who are good at selling the technology that establishes these incentives. &nbsp; It is no coincidence, by the way, that the same companies that sell much of the measurement technology responsible for advertisers caring about these outcomes are also the companies selling <em>additional products to cure the mutant offspring of their outcome products</em>.&nbsp; These non-outcome-producing-outcomes naturally lead to a fixed-pie ecosystem vying for branding budgets allocated not on substance, but on internal marketability.&nbsp; Because there&#8217;s no demonstrable ROAS, there&#8217;s no scalability.&nbsp; I believe that unless we can make programmatic demonstrably more marketable as a portrayer of <em>value</em> when compared to other channels, site owners are going to be stuck fighting like rats over cheese on a sinking ship.&nbsp;</p><p>And an important point here for all of you &#8211; if you were optimizing to an outcome before the MFA scandal, and then implemented a blocklist, but you&#8217;re still optimizing to the same outcome, I don&#8217;t think your campaigns are driving any more value for you than they were before.&nbsp; Because how could they be &#8211; if your outcome was broken on MFA sites, it&#8217;s broken on other sites too.&nbsp; If you&#8217;re now implementing a secondary measure to assess the performance of your blocklists&#8230;why wasn&#8217;t that your optimized outcome in the first place?&nbsp; If it had been, your DSP would&#8217;ve been optimizing to it, and your spend wouldn&#8217;t have been allocated to sites that for all intents and purposes were performant in the eyes of the DSP.</p><p><strong>Asleep at the wheel - Programmatic&#8217;s Albatross</strong></p><p>MFA is not a transparency problem.&nbsp; There is no part of the MFA scandal that was not <em>painfully</em> reportable to anyone with a modicum of experience running a detailed report on the delivery of their advertising campaigns.&nbsp; And if a DSP withheld this information, that&#8217;s profoundly problematic, and really like, not cool dude.&nbsp; But even if they did, your buy-side ad server should be able to report on delivery, or any of your verification vendors that you&#8217;re paying through the nose for, or any of a number of technologies.&nbsp; I really think the DSPs are the last people in the world to blame for this unpleasant surprise.&nbsp;&nbsp;</p><p>Given this, there are a few foundational pieces of trust that need to exist, per my last article about what to give a shit about :&nbsp;</p><ol><li><p>Advertisers are buying what they bid on, as described</p></li><li><p>Advertisers have the ability to verify after the fact what they bought</p></li></ol><p>Technologically, this is utterly trivial.&nbsp; It seems to me that there are some business practices at play here, and that have been at play for a long time, that are keeping this from happening &#8211; namely, that people aren&#8217;t actually monitoring where their campaigns are running and SSPs are sending garbage openRTB data.&nbsp; And time is not an excuse here &#8211; the cost of overseas employees to review campaign delivery is <em>astoundingly</em> low.&nbsp; And these teams are tremendously capable with regards to campaign management as well &#8211; if anyone wants introductions to a few solid firms, I&#8217;m happy to provide them.&nbsp;&nbsp;</p><p>But accountability needs to exist, and if you&#8217;re a brand or an agency, you need to know exactly where your money is being spent (or at least, what pages are ostensibly driving performance for your campaigns).&nbsp; If you run somewhere for a long time, and it looks like it&#8217;s driving performance for you, the responsibility is yours and yours alone.&nbsp; TTD is taking a major step in basically reviewing your sitelists for you with their Programmatic top 500 &#8211; but once again, they&#8217;re doing this to basically do traders&#8217; and agencies&#8217; jobs for them, so now everyone has a &#8220;spend more money than you have to, but don&#8217;t give me any surprises&#8221; button inside of their DSP.</p><p>Now, for the positive side of MFA-</p><p>I know, how could MFA possibly have a positive side?!&nbsp; It does, I assure you, it truly does, in fact it probably has more than one.&nbsp; Here are two I think worth mentioning :&nbsp;</p><ol><li><p>MFA reveals that programmatic budgets are successfully inspiring web evolution, and publishing businesses are capable of evolving to optimize to programmatic</p></li><li><p>There exist economics to funnel traffic out of walled gardens onto the open web that can possibly work</p></li></ol><p><strong>Evolving Internet</strong></p><p>Our first example in this article, cited Credit Karma (and the millions of websites like it) of an economic system inspiring the construction of websites.&nbsp;&nbsp;</p><p>MFA is an example of the programmatic ecosystem inspiring precisely the same thing, just for viewability.&nbsp; The reason this is a good thing is because if we fix our outcomes, it means there are companies out there that will reimagine their businesses to optimize to those outcomes.&nbsp; That is, as long as we don&#8217;t go totally Luddite and move entirely to allow lists.&nbsp; Rather we need to let the invisible hand of the market inspire new business models as programmatic properly evolves to meaningful outcomes.&nbsp; This is actually <strong>epic</strong>.&nbsp; We just need to optimize campaigns to outcomes that we want, and websites will come into being that drive those outcomes, and the programmatic might see some market share growth.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5QYj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80bc29b7-cb3a-401c-a2f7-a54b37014a11_533x400.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5QYj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80bc29b7-cb3a-401c-a2f7-a54b37014a11_533x400.png 424w, https://substackcdn.com/image/fetch/$s_!5QYj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80bc29b7-cb3a-401c-a2f7-a54b37014a11_533x400.png 848w, https://substackcdn.com/image/fetch/$s_!5QYj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80bc29b7-cb3a-401c-a2f7-a54b37014a11_533x400.png 1272w, https://substackcdn.com/image/fetch/$s_!5QYj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80bc29b7-cb3a-401c-a2f7-a54b37014a11_533x400.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5QYj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80bc29b7-cb3a-401c-a2f7-a54b37014a11_533x400.png" width="533" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/80bc29b7-cb3a-401c-a2f7-a54b37014a11_533x400.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:533,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!5QYj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80bc29b7-cb3a-401c-a2f7-a54b37014a11_533x400.png 424w, https://substackcdn.com/image/fetch/$s_!5QYj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80bc29b7-cb3a-401c-a2f7-a54b37014a11_533x400.png 848w, https://substackcdn.com/image/fetch/$s_!5QYj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80bc29b7-cb3a-401c-a2f7-a54b37014a11_533x400.png 1272w, https://substackcdn.com/image/fetch/$s_!5QYj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80bc29b7-cb3a-401c-a2f7-a54b37014a11_533x400.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>There Exists a non-SEO Publishing Model</strong></p><p>MFA sites do not get organic traffic.&nbsp; But the largest MFA sites were as big or bigger than the largest content publishers on the internet.&nbsp; <strong>That&#8217;s an astounding feat</strong>.</p><p>While bad for just about everyone in the programmatic supply chain, this should be incredibly inspiring for the publishing industry.&nbsp; This means that there exists a business model wherein content can be promoted successfully with advertising, siphoning very expensive audiences out of places like Facebook or Google Search.</p><p>MFA made this work by stuffing tons and tons of ads on the page, which we all know is no bueno.&nbsp; However, if there exists a way to achieve ROI on users <em>without insane ad to content ratios</em> it means that publishers can effectively convert audiences from walled gardens into consumers of their content by paying for it instead of praying for it.&nbsp;&nbsp;</p><p>This business model is one of the reasons we started Gamera &#8211; the way to do this is to measure the lifetime value of users, not single sessions, and to build systems that re-engage users effectively (of course, in combination with providing them with content that they actually want to read) to achieve positive ROI and business growth.&nbsp; I am firmly convinced that this is the key to transforming online publishing from a dying industry into a growing one.&nbsp; If you&#8217;re a publisher and you&#8217;d like to learn more about this, I&#8217;m happy to talk to you about it.</p><p><strong>Conclusion</strong></p><p>So there it is.&nbsp; And now I get to use the phrase that I&#8217;ve been sitting on for months and months&nbsp; &#8211; <strong>If you have an MFA problem, MFA isn&#8217;t your problem</strong>.&nbsp; MFA could end up being a good thing for programmatic, as long as it spurs reform and innovation in advertiser outcomes and publishing business models.&nbsp; And please note, this is not meant to be a defense of MFA &#8211; there are definitely sketchy business practices there, not in the least bit indicated by it being difficult to navigate to the experiences being sold programmatically.</p><p>But if the MFA scandal doesn&#8217;t inspire reform and innovation, and it just creates an excuse to slap another vendor layer onto poorly defined advertiser outcomes, it will make our future more dire than it was before.&nbsp; This would be a regression, not a progression, of programmatic.&nbsp; And the dire future we would be barrelling towards would not be because we served our brands to some shitty looking websites.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Gareth Hates AdTech! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The Ad Tech Guide To Giving A S@#!]]></title><description><![CDATA[Ad Tech Isn't Actually Complicated]]></description><link>https://www.garethhatesadtech.com/p/the-ad-tech-guide-to-giving-a-s</link><guid isPermaLink="false">https://www.garethhatesadtech.com/p/the-ad-tech-guide-to-giving-a-s</guid><dc:creator><![CDATA[Gareth Glaser]]></dc:creator><pubDate>Mon, 20 May 2024 11:02:48 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!bQPP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe14ae8d7-3758-4d05-a3fa-cc50e3f79d43_500x500.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I&#8217;ve rewritten this article no less than 5 times with 5 different titles.&nbsp; I have landed on building a guide for all of my readers to know whether or not the ad tech issue that someone is telling them is some kind of horrible emergency or scandal matters to them &#8211; and if it does &#8211; how much does it matter.</p><p>I feel this is necessary because so much in ad tech is sold on FUD (fear, uncertainty, and doubt), when in reality, ad tech is astoundingly simple in abstraction and almost every problem can be deconstructed into my magical overarching theory of everything (you&#8217;re welcome).</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Gareth Hates AdTech! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>The foundation of my framework is that Ad Tech is a numbers game.&nbsp; It&#8217;s a quantification, and through quantification it removes human biases and creates efficiency.&nbsp; And if we want to get <em>really</em> deep, once you include attribution, Ad Tech is a tangible, scaled, measured, quantification of human response to stimulus, the likes of which has really never existed before.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bQPP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe14ae8d7-3758-4d05-a3fa-cc50e3f79d43_500x500.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bQPP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe14ae8d7-3758-4d05-a3fa-cc50e3f79d43_500x500.png 424w, https://substackcdn.com/image/fetch/$s_!bQPP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe14ae8d7-3758-4d05-a3fa-cc50e3f79d43_500x500.png 848w, https://substackcdn.com/image/fetch/$s_!bQPP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe14ae8d7-3758-4d05-a3fa-cc50e3f79d43_500x500.png 1272w, https://substackcdn.com/image/fetch/$s_!bQPP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe14ae8d7-3758-4d05-a3fa-cc50e3f79d43_500x500.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bQPP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe14ae8d7-3758-4d05-a3fa-cc50e3f79d43_500x500.png" width="500" height="500" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e14ae8d7-3758-4d05-a3fa-cc50e3f79d43_500x500.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:500,&quot;width&quot;:500,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!bQPP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe14ae8d7-3758-4d05-a3fa-cc50e3f79d43_500x500.png 424w, https://substackcdn.com/image/fetch/$s_!bQPP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe14ae8d7-3758-4d05-a3fa-cc50e3f79d43_500x500.png 848w, https://substackcdn.com/image/fetch/$s_!bQPP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe14ae8d7-3758-4d05-a3fa-cc50e3f79d43_500x500.png 1272w, https://substackcdn.com/image/fetch/$s_!bQPP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe14ae8d7-3758-4d05-a3fa-cc50e3f79d43_500x500.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>What do I mean by quantification?</p><p>The fundamental building block of ad tech is the bid request.&nbsp; It&#8217;s a packaged up (using some kind of object) bundle of information about an opportunity to advertise.&nbsp; In drastically simplified example form, this looks like this :&nbsp;</p><p>domain : website.com</p><p>userID : 1230912301923901</p><p>Useragent (browsing environment) :&nbsp; 12309sasciawj:1230812</p><p>1230912301 other fields like these, with ever growing complexity</p><p>A bidder receives _billions_ of these little packets per day and has to make decisions about which ones to buy and not buy.&nbsp; How does it do that ?</p><p>Simple!</p><p>Machine learning and statistics of all sorts.&nbsp; It looks at the correlation between the fields in these little bundles of information and advertiser outcomes &#8211; which are defined by the campaign configuration in the platform.&nbsp; An outcome, in this context, refers to a signal communicated from the advertiser/agency/placer-of-ads to the platform making inventory evaluations that something desirable occurred and it should try to make more of them happen.</p><p>What does this process actually look like?&nbsp; There are lots of flavors of this &#8211; but at its core, every campaign goes through a &#8220;learning&#8221; process by which it correlates outcomes (everything from clicks to purchases depending on how you build the campaign) to the numbers it receives in the fields in the bid request bundles.&nbsp;&nbsp;</p><p>Some people try to &#8220;bootstrap&#8221; this process, or make it happen faster using a bunch of methods you&#8217;ve almost certainly had pitched to you by a vendor.&nbsp; It could be through targeting, either behavioral/user-based or contextual, or by sharing data from previous campaigns or even from other advertisers present in the bidding system.&nbsp; In this context, allowlists and blocklists are bootstrapping tools &#8211; if there are websites you are basically <em>certain</em> will perform or never perform, you can limit the scope of the learning process to a smaller pool which makes correlations happen more quickly due to decreased cardinality.&nbsp; This comes at the cost of potential performance &#8211; ostensibly, the more places you learn, the better your correlation machine is able to find outcome bundle combinations.</p><p>That&#8217;s ad tech.&nbsp; That&#8217;s it in its beautiful entirety.&nbsp; In fact, that&#8217;s online advertising in its entirety.&nbsp; And that we&#8217;ve built pipes that surface almost every impression opportunity on the web to these bidding systems is totally epic.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8dIV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cb94ef9-37a3-4d6c-a7df-4113dc4b26f1_606x412.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8dIV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cb94ef9-37a3-4d6c-a7df-4113dc4b26f1_606x412.png 424w, https://substackcdn.com/image/fetch/$s_!8dIV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cb94ef9-37a3-4d6c-a7df-4113dc4b26f1_606x412.png 848w, https://substackcdn.com/image/fetch/$s_!8dIV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cb94ef9-37a3-4d6c-a7df-4113dc4b26f1_606x412.png 1272w, https://substackcdn.com/image/fetch/$s_!8dIV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cb94ef9-37a3-4d6c-a7df-4113dc4b26f1_606x412.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8dIV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cb94ef9-37a3-4d6c-a7df-4113dc4b26f1_606x412.png" width="606" height="412" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7cb94ef9-37a3-4d6c-a7df-4113dc4b26f1_606x412.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:412,&quot;width&quot;:606,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!8dIV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cb94ef9-37a3-4d6c-a7df-4113dc4b26f1_606x412.png 424w, https://substackcdn.com/image/fetch/$s_!8dIV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cb94ef9-37a3-4d6c-a7df-4113dc4b26f1_606x412.png 848w, https://substackcdn.com/image/fetch/$s_!8dIV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cb94ef9-37a3-4d6c-a7df-4113dc4b26f1_606x412.png 1272w, https://substackcdn.com/image/fetch/$s_!8dIV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cb94ef9-37a3-4d6c-a7df-4113dc4b26f1_606x412.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>The Framework for Evaluating Everything</strong></p><p>In light of this, I&#8217;d like to posit that, at its core, there exists a single problem in all of programmatic advertising.&nbsp; The problem is fundamental, and any other &#8220;issue&#8221; is an extension of this problem.</p><p>That single problem is <strong>when our magical machines can&#8217;t find a correlation between outcomes and the attributes/fields/numbers in bid request objects &#8211; or when they can&#8217;t find it fast enough.</strong></p><p>When the magic machines aren&#8217;t correlating, it means that advertisers aren&#8217;t achieving results.&nbsp; And no matter how you spell it, if there aren&#8217;t results, the industry dies.&nbsp; Right now the problem is that walled gardens, like facebook, are driving better results with their correlation finding machines than programmatic correlation finding machines.&nbsp; This is the lens I use to view the world &#8211; <strong>will X fundamentally disrupt the functionality of the correlation machines</strong>?</p><p>Now some of you might be like &#8220;Gareth there are so many other problems!! You&#8217;re so wrong!&#8221; so let me pre-empt the whining for a few of these :&nbsp;</p><ol><li><p>Advertisers run on websites that they don&#8217;t think look good/have bad viewability/have lots of ads/ blah blah blah!</p><ol><li><p>This is not an ad tech problem.&nbsp; Ugly websites might drive outcome correlation for you.&nbsp; The name of websites does not matter past the values in the bid request objects.&nbsp; The ad density does not matter past the fact that it impacts expected value in correlation calculations (and ad density measurements can be be included in bid request objects, at which point they&#8217;ll create an optimization node).&nbsp; If your attribution system communicating outcomes is configured properly with your magic correlation machine, no attributes of the website matter past their relationship to outcomes over time.&nbsp; This means properly configured campaigns will stop buying from websites that don&#8217;t work for them &#8211; if your campaigns aren&#8217;t doing that<strong>, </strong>the problem is not inventory, it&#8217;s your outcomes or your magic machine.</p></li></ol></li><li><p>CPMs from this system are too low!&nbsp; Publishers don&#8217;t make enough money!</p><ol><li><p>Make a website, or attract users, that drives better outcomes based on the bid packets it sends out.&nbsp; If your bid request objects and impressions don&#8217;t correlate to advertiser outcomes, your business does not &#8220;deserve&#8221; to get advertising revenue.&nbsp; Reputation does not matter.&nbsp; Only advertiser outcomes do.</p></li></ol></li><li><p>There&#8217;s so much inefficiency!&nbsp; Middle men are taking money left and right, and buying on shitty websites!</p><ol><li><p>As long as advertisers are pumping meaningful goals into the magic bidding machines (and as long as there aren&#8217;t monopolistic forces at play, which god knows there are), the inefficiency will be squeezed out over time.&nbsp; <strong>We are indeed seeing this right now with header bidding squeezing down exchange and network take rates.</strong></p></li></ol></li></ol><p>I believe that every scandal, every problem, in ad tech should be viewed through this lens.&nbsp; Is there something happening that is breaking our correlation machines?&nbsp; If we&#8217;re breaking the correlation machines, we need to mobilize like white blood cells, surround, and extract.</p><p>Notice, this does <strong>not</strong> mean that I think there is a dire need to change inventory curation, SPO, DPO, do direct sales, be more premium, blah blah blah.&nbsp; Why?&nbsp; Those things aren&#8217;t solving problems that <strong>break</strong> correlation machines.&nbsp; Sure, the problems they&#8217;re attempting to address might slow them down or help them, maybe?&nbsp; There&#8217;s only one person who knows the answer to that question &#8211; and that&#8217;s the DSP executing the correlations and their data scientists, and I trust them to find market efficiency on this one (as long as their outcomes are properly defined, which is a whole separate set of issues but the programmatic supply chain isn&#8217;t really responsible for that).&nbsp; It&#8217;s their job to evaluate the fields inside of the bid request objects &#8211; and their job to determine whether fields correlate to outcomes or not.&nbsp;&nbsp;</p><p>If I can send one message with this piece it&#8217;s this &#8211; I&#8217;m a deep believer that an ecosystem with properly configured outcomes, and survival of the fittest amongst the magic correlation machines, will naturally steer itself away from inefficient configurations and inventory.&nbsp; And history supports this.&nbsp; We just need to let it keep playing out.</p><p><strong>SO LET&#8217;S RUN THROUGH SOME EXAMPLES JUST FOR FUN</strong></p><p>NOTE &#8211; for all of these examples where I say &#8220;test,&#8221; the only way to test things is with a test/control framework.&nbsp; Within a single campaign you need to be able to do a thing a % of the time &#8211; if you have two separate campaigns that are identically configured that&#8217;s &#8220;okay,&#8221; but if there are any different variables at all, you ain&#8217;t testing a thing.&nbsp; This goes for running campaigns in general as well &#8211; in fact, I think all campaigns should serve a statistically significant % of PSAs to prove that the campaign is doing anything at all.</p><p><strong>Bootstrapper = potentially makes campaigns optimize more quickly and perform better</strong></p><p><strong>Destroyer = always makes campaigns perform worse</strong></p><p><strong>3rd party user segments </strong>&nbsp;- When I include this 3rd party user segment, does my cost per outcome improve when compared with a control group (ie. a campaign configured identically other than the targeting of the segment)?&nbsp; <strong>Give a shit category &#8211; low, &#8220;bootstrapper,&#8221; &#8220;I&#8217;ll test it.&#8221;</strong></p><p><strong>ID Bridging and ID Fraud</strong> - My correlation machine is being fed <strong>falsified data</strong>.&nbsp; Holy shit, this breaks all of my processes, this is <strong>probably the worst thing that can happen.&nbsp; Give a shit category &#8211; maximum, &#8220;destroyer,&#8221; &#8220;I&#8217;m literally calling the police&#8221;</strong></p><p><strong>MFA Vendors </strong>- When I include MFA sites in my campaign, does my cost per outcome become worse than when compared to not including MFA sites? <strong>Give a shit category &#8211;low, &#8220;bootstrapper,&#8221; &#8220;I&#8217;ll test it.&#8221; Zero difference between an MFA vendor and a contextual data provider.</strong></p><p><strong>Domain Spoofing</strong> - My correlation machine is being told I&#8217;m on domain X, but I&#8217;m actually on domain Y.&nbsp; <strong>Give a shit category &#8211; maximum, &#8220;destroyer,&#8221; &#8220;I&#8217;m literally calling the police&#8221;</strong></p><p><strong>Anti Fraud Vendors </strong>- When I include anti-fraud prebid targeting, for people that this vendor thinks are fraud but others don&#8217;t necessarily, does my cost per outcome decrease? <strong>Give a shit category &#8211; medium, &#8220;destroyer,&#8221; &#8220;I&#8217;ll test it.&#8221;</strong></p><p><strong>All Campaign Targeting </strong>&nbsp;- When I manually add targeting to a campaign, does my cost per outcome decrease faster/further than when I don&#8217;t have targeting?<strong> </strong>A note &#8211; I don&#8217;t believe anyone should ever be putting targeting on their campaigns.&nbsp; DSPs should provide correlated bootstrap data for the learn process by advertiser category, and algorithms should be able to handle the rest, but I digress.  This is a future that needs to come sooner rather than later. <strong>Give a shit category &#8211; low, &#8220;bootstrapper,&#8221; &#8220;I&#8217;ll test it.&#8221;</strong></p><p><strong>SPO / available purchase channels</strong> - does this publisher sell on lots of exchanges? Should I pick a single place or a small number of places to buy their traffic? <strong>Give a shit category - low, &#8220;bootstrapper,&#8221; &#8220;I&#8217;ll test it.&#8221; Note : I don&#8217;t think this will do anything because Prebid creates a downstream unified auction</strong></p><p><strong>Google Being a Monopoly and controlling access to bid requests </strong>- Is google manipulating auctions to limit what information can be communicated to who, when?&nbsp; Are they introduce errors into the delivery of bids and creatives? <strong>Give a shit category - high, &#8220;destroyer,&#8221; &#8220;Call the FTC&#8221;</strong></p><p>Please feel free to pepper me with more requests about things you&#8217;d like slotted into the framework / disagree with my characterization of things!  Have a wonderful week everyone!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Gareth Hates AdTech! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[It's Time To Stop Demon(et)izing Paid Traffic]]></title><description><![CDATA[Welcome back! After a relatively long previous post, I&#8217;m excited to follow up with a shorter one that I care passionately about. And that&#8217;s Paid traffic.]]></description><link>https://www.garethhatesadtech.com/p/its-time-to-stop-demonetizing-paid</link><guid isPermaLink="false">https://www.garethhatesadtech.com/p/its-time-to-stop-demonetizing-paid</guid><dc:creator><![CDATA[Gareth Glaser]]></dc:creator><pubDate>Tue, 07 May 2024 14:53:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!1cEu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa45551b-0b69-4c78-a78b-9d12f51ca53c_500x666.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome back!&nbsp; After a relatively long previous post, I&#8217;m excited to follow up with a shorter one that I care passionately about.&nbsp; And that&#8217;s Paid traffic.</p><p>It seems to be a universally loathed thing when discussing buying advertisements on websites programmatically, so I&#8217;d like to unpack it and dig a little deeper &#8211; and hopefully provide some insights and maybe even change some minds.&nbsp; Here we go!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Gareth Hates AdTech! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><ol><li><p>What is paid traffic?</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1cEu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa45551b-0b69-4c78-a78b-9d12f51ca53c_500x666.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1cEu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa45551b-0b69-4c78-a78b-9d12f51ca53c_500x666.jpeg 424w, https://substackcdn.com/image/fetch/$s_!1cEu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa45551b-0b69-4c78-a78b-9d12f51ca53c_500x666.jpeg 848w, https://substackcdn.com/image/fetch/$s_!1cEu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa45551b-0b69-4c78-a78b-9d12f51ca53c_500x666.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!1cEu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa45551b-0b69-4c78-a78b-9d12f51ca53c_500x666.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1cEu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa45551b-0b69-4c78-a78b-9d12f51ca53c_500x666.jpeg" width="500" height="666" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aa45551b-0b69-4c78-a78b-9d12f51ca53c_500x666.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:666,&quot;width&quot;:500,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1cEu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa45551b-0b69-4c78-a78b-9d12f51ca53c_500x666.jpeg 424w, https://substackcdn.com/image/fetch/$s_!1cEu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa45551b-0b69-4c78-a78b-9d12f51ca53c_500x666.jpeg 848w, https://substackcdn.com/image/fetch/$s_!1cEu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa45551b-0b69-4c78-a78b-9d12f51ca53c_500x666.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!1cEu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa45551b-0b69-4c78-a78b-9d12f51ca53c_500x666.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Paid Traffic, in the context of this article refers to visitors to a website that a publisher has paid to attract.&nbsp; How would one do that one might ask?&nbsp; Easy &#8211; a publisher shows an advertisement, somewhere, a user clicks it and then navigates to their website.</p><p>Most people think of outbrain and taboola - with native tiles at the bottom of a content well advertising what many would refer to as &#8220;low-quality&#8221; content (which I think is an elitist way to speak about the things that people read, but I digress).&nbsp; But, the fact of the matter is that any kind of content, or any kind of experience, can advertise using any number of methods &#8211; in fact, via all of the same methods that agencies use on behalf of brands.&nbsp; Publishers, in this context, are the advertisers.&nbsp; If it can be part of a brand&#8217;s marketing mix, it can be part of a publisher&#8217;s.</p><ol start="2"><li><p>What is organic traffic?</p></li></ol><p>People almost always describe &#8220;organic&#8221; traffic in contrast to paid traffic.&nbsp; For the purposes of this article I&#8217;m going to lump together a bunch of things that should probably be separate &#8211; but really, organic traffic typically refers to traffic that is sent to a website by some kind of &#8220;organic&#8221; discovery vehicle.</p><p>This could be google search &#8211; where for whatever reason, Google&#8217;s search algorithms choose to send traffic to the website because they think it will satisfy the intent of the user typing their prompt into the search engine.&nbsp; It could also be a social network or facebook &#8211; where a user shares an article, a given audience picks it up, and Facebook decides that this article will enhance the user experience of certain audiences in facebook and will show it to them (this is rarer nowadays).&nbsp;&nbsp;</p><p>But the notion behind organic traffic is that some kind of content discovery platform is choosing of their own volition to send traffic to the website, typically with basically zero control exerted by the website itself.&nbsp; Sure, there are things like &#8220;SEO&#8221; &#8211; where a content creator tries to <em>guess</em> what the organic platforms are going to recommend to their users, but at the end of the day these algorithms are purposefully opaque and unpredictable.</p><ol start="3"><li><p>Other types of traffic?</p></li></ol><p>There are other types of traffic that I&#8217;d refer to as &#8220;owned&#8221; &#8211; and what I mean by owned, is that the publisher has direct control over their relationship with the user.&nbsp; The two that jump to mind here are &#8220;direct/type-in,&#8221; which refers to users that type the URL of the website directly into the browser, and e-mail/newsletter, where the content creator promotes content directly using a unique identifier with their user.&nbsp; Push is also probably in this category.</p><ol start="4"><li><p>Why should I care about paid traffic?</p></li></ol><p>We typically hear about paid traffic in the context of ad fraud (bots) or MFA (bad user experiences).&nbsp; However, I would like to make the argument that paid traffic is one of the only things on the web that provides content publishers with control over their own destiny.&nbsp;&nbsp;</p><p>This is because the primary difference between organic traffic and paid traffic is <em>incentive</em>.&nbsp; Here&#8217;s what I mean :&nbsp;</p><p><strong>Organic</strong></p><p>Organic Traffic Provider (OTP) has some kind of &#8220;discovery&#8221; service it provides to its users where it provides them with content &gt; The more appropriate the content is to the desire of the users the more they use OTP&#8217;s application &gt; If content provider can guess what kind of content will perform well for OTP then OTP sends traffic to website</p><p>In this relationship, the content provider is valuable to the OTP <em>to the extent their content makes users want to use the OTP application more</em>. &nbsp; The salient point, that should not be lost on anyone creating content, is that if OTP could produce their own content they <em>would</em> (see zero-click search) and their dedication to their content creators is <em>entirely self-serving with zero financial commitment</em>.&nbsp; In fact, OTP often runs ads next to the content they&#8217;re promoting, creative all kinds of perverse incentives as we&#8217;ve seen with the latest google scandal <a href="https://www.wheresyoured.at/the-men-who-killed-google/">https://www.wheresyoured.at/the-men-who-killed-google/</a> (ironically, link chosen because it&#8217;s the first search result on google, what a dark twisted world we live in).</p><p><strong>Paid</strong></p><p>Paid traffic source (PTS) has their own content / application that they want to make money from by displaying ads (PTS and OTP are often the same company, but the two sides of the businesses rarely interact).&nbsp; As a business line, they are incentivized to make as much money as possible &gt; They allow advertisers to place ads on their application, ostensibly in a perfect-ish market the advertiser that pays more gets to show their ad &gt; the user clicks the ad and goes to to advertiser defined landing page, if user has high post-click/action value, advertiser is willing to pay more &gt; advertiser pays more gets more clicks</p><p>In this relationship, <em>the incentives are fundamentally different from the OTP side of the house</em>.&nbsp; The user&#8217;s behavior and engagement with the advertisers is advantageous purely to the extent that it generates additional advertising revenue for the paid traffic provider &#8211; which means that the decision making power actually lies <em>with the advertiser</em>.&nbsp; Or in this case &#8211; the PUBLISHER! &#8211; because in this workflow, and in the world of paid traffic, the publisher is the advertiser.</p><p>&nbsp;This means that control over traffic flows is actually governed by the market &#8211; and imperfect as it may be, it is meaningfully more egalitarian, transparent, and scalable when compared to the OTP flow by virtue of the fact that market forces are highly influential over what ads get displayed on a page.</p><p>Of course paid traffic sources will exert controls over what type of advertiser are allowed to advertise where, etc, but the more artificial controls they insert into the market <strong>the less money they will make</strong> to the extent that they don&#8217;t start losing users &#8211; and the users aren&#8217;t using their platforms for the ads, they&#8217;re using them for something else, so we no longer have this strange relationship between traffic allocation and user satisfaction.</p><p><strong>What does this all mean?</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bx8d!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F199bef75-d954-4cb8-b8b6-6d48298fb7a4_697x500.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bx8d!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F199bef75-d954-4cb8-b8b6-6d48298fb7a4_697x500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!bx8d!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F199bef75-d954-4cb8-b8b6-6d48298fb7a4_697x500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!bx8d!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F199bef75-d954-4cb8-b8b6-6d48298fb7a4_697x500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!bx8d!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F199bef75-d954-4cb8-b8b6-6d48298fb7a4_697x500.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bx8d!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F199bef75-d954-4cb8-b8b6-6d48298fb7a4_697x500.jpeg" width="697" height="500" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/199bef75-d954-4cb8-b8b6-6d48298fb7a4_697x500.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:500,&quot;width&quot;:697,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!bx8d!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F199bef75-d954-4cb8-b8b6-6d48298fb7a4_697x500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!bx8d!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F199bef75-d954-4cb8-b8b6-6d48298fb7a4_697x500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!bx8d!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F199bef75-d954-4cb8-b8b6-6d48298fb7a4_697x500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!bx8d!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F199bef75-d954-4cb8-b8b6-6d48298fb7a4_697x500.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>To me, this means that demonizing paid traffic is literally one of the worst things we could be doing.&nbsp; Paid traffic is the method by which publishers can take control of their future &#8211; they can successfully advertise whatever content they may have to audiences that want it, and then find ways to properly engage with those audiences such that they make more money from their users than they have to spend to get additional users. PTS providers <em>have</em> to make money &#8211; and as we&#8217;re seeing, in a battle between user experience on these platforms and money, they often choose money.&nbsp; It&#8217;s a lot easier to alter search results without considering the downstream effect on publishers than it is to turn down advertising dollars.</p><p>This means, in my opinion, the solution to all of this mess on the open internet is very simple &#8211; publishers need to become sophisticated advertisers, and paid traffic (and properly executing paid traffic strategies) is the foundation to breaking the dependence on organic discovery vehicles.&nbsp; We&#8217;ve already seen the appetite for the migration to the inbox with the meteoric rise of substack &#8211; there&#8217;s certainly appetite for direct engagement with high quality niche advertisers of content &#8211; and publishers owning their paid strategy and scaling is a foundational brick in the wall.  By having a strategy to reach new users and build relationships with them, website owners create sustainability, safety, and scale.</p><p>It also means that it&#8217;s important that publishers and content creators have tools to treat their businesses more like advertisers and brands treat theirs &#8211; a focus on ROAS and LTV &#8211; which is why we created Gamera (please enjoy my shameless plug of my new company &#8211; <a href="https://www.gamera.ai/value-analytics/overview.html">https://www.gamera.ai/value-analytics/overview.html</a> )</p><p><strong>The Caveat</strong></p><p>Bad paid traffic exists.&nbsp; Bots exist. Fraud exists. Bad website experiences exist.&nbsp; These are all <em>separate</em> problems from &#8220;Paid Traffic&#8221; that often get lumped in with them.&nbsp; But I see no reason why &#8220;Paid Traffic,&#8221; outside of MFA concerns (which are really ad density concerns), would be any more likely to subject an advertising campaign to shenanigans than organic traffic.&nbsp; Sure, it&#8217;s not a great sign if all of a websites users are churned-single-session-clicks &#8211; however, there&#8217;s nothing <em>inherently </em>wrong with this as long as they aren&#8217;t bots and the site performs for your campaigns.&nbsp; It&#8217;s perfectly possible that traffic source is an optimizable parameter for your campaign as a brand &#8212; lovely!  So are a million other things.  These need to be handled algorithmically, and more signal is generally always good, so there&#8217;s no need for you to really have an opinion about any of them, leave it to your machines.  So don&#8217;t fear paid traffic!&nbsp; Fear fraud and things that hurt advertiser performance.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Gareth Hates AdTech! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[An Appeal For The Open Internet]]></title><description><![CDATA[Welcome to the latest installment of Gareth Hates Ad Tech. Today I want to step a little outside of ad tech into a wider topic that encompasses ad tech &#8211; a discussion of the open internet.Gareth Hates AdTech is a reader-supported publication.]]></description><link>https://www.garethhatesadtech.com/p/an-appeal-for-the-open-internet</link><guid isPermaLink="false">https://www.garethhatesadtech.com/p/an-appeal-for-the-open-internet</guid><dc:creator><![CDATA[Gareth Glaser]]></dc:creator><pubDate>Thu, 18 Apr 2024 13:24:24 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!XGy-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4294cfb-e5d6-433b-88ee-d13d84dc5ba1_717x348.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XGy-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4294cfb-e5d6-433b-88ee-d13d84dc5ba1_717x348.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XGy-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4294cfb-e5d6-433b-88ee-d13d84dc5ba1_717x348.jpeg 424w, https://substackcdn.com/image/fetch/$s_!XGy-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4294cfb-e5d6-433b-88ee-d13d84dc5ba1_717x348.jpeg 848w, https://substackcdn.com/image/fetch/$s_!XGy-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4294cfb-e5d6-433b-88ee-d13d84dc5ba1_717x348.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!XGy-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4294cfb-e5d6-433b-88ee-d13d84dc5ba1_717x348.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XGy-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4294cfb-e5d6-433b-88ee-d13d84dc5ba1_717x348.jpeg" width="717" height="348" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e4294cfb-e5d6-433b-88ee-d13d84dc5ba1_717x348.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:348,&quot;width&quot;:717,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:94326,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!XGy-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4294cfb-e5d6-433b-88ee-d13d84dc5ba1_717x348.jpeg 424w, https://substackcdn.com/image/fetch/$s_!XGy-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4294cfb-e5d6-433b-88ee-d13d84dc5ba1_717x348.jpeg 848w, https://substackcdn.com/image/fetch/$s_!XGy-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4294cfb-e5d6-433b-88ee-d13d84dc5ba1_717x348.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!XGy-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4294cfb-e5d6-433b-88ee-d13d84dc5ba1_717x348.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Welcome to the latest installment of Gareth Hates Ad Tech.&nbsp; Today I want to step a little outside of ad tech into a wider topic that encompasses ad tech &#8211; a discussion of the open internet.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Gareth Hates AdTech is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>I was inspired to write this article by a few things, but most importantly, by Eric Seufert&#8217;s article, <a href="https://mobiledevmemo.com/the-open-web-is-whistling-past-the-graveyard/">The Open Web Is Whistling Past The Graveyard</a>.&nbsp; I&#8217;m writing this not because I necessarily disagree &#8211; but because if he&#8217;s right, we need to reflect deeply on what we might be losing.&nbsp; I also think that we need to develop solutions to fix the problems he outlines, and I am happy to tell you all about my current project dedicated to doing so (so this is also a soft pitch, but I&#8217;ll try not to make it too unbearable, and focus on the why and not the how).&nbsp;&nbsp;</p><p>Let&#8217;s start with Eric&#8217;s twitter post, and then I promise to stop co-opting his content and I will launch into my own diatribe :)&nbsp;</p><blockquote><p>The open web seems to be whistling past the graveyard in the face of third-party cookie deprecation. The economy of the open web, empowered through third-party cookies, is not too big to let fail.</p><p>In my view, the collective, unwarranted optimism of the open web with respect to third-party cookie deprecation in Chrome is anchored to three core misapprehensions:</p><p>One: Privacy Sandbox will ultimately deliver advertising targeting and measurement functionality that is comparable to cookies.</p><p>Two: Alternative identity solutions will meaningfully supplement the loss of user-level addressability instituted through third-party cookie deprecation.</p><p>Three: The open web is so vital to the consumer internet experience that it simply won&#8217;t be allowed to wither and deteriorate.</p></blockquote><p>First, let&#8217;s lay out some table stakes &#8211;&nbsp;</p><p><strong>What is the open web?</strong></p><p>The open web as defined in this article refers to the spider web of websites accessible via web browser using DNS (Domain Name Service) to access the website you&#8217;re looking for.&nbsp; <strong>DISCLAIMER ENGINEERS PLEASE DON&#8217;T COME FOR MY HEAD,</strong></p><p>What&#8217;s the Domain Name Service you say?&nbsp; I&#8217;m so glad you asked!&nbsp; It&#8217;s actually a wild service administered by the US government that maps all of the word-names of websites (ie. cnn.com) to the servers that resolve to where their content is hosted (ie. 192.241.241.134, aka an IP address).&nbsp; The Domain Name Service, interfaced with on your behalf by a number of DNS providers like Amazon or Namecheap, allows you to register the names of your websites and the servers they need to resolve to, and then actually routes them accurately!&nbsp; It&#8217;s pretty insane that this piece of vital open web infrastructure is controlled by a country, but I digress.</p><p>After DNS registry is done, you type cnn.com into your browser and your browser gets redirected to the servers where the content is hosted.&nbsp; Nowadays, almost everyone uses a CDN &#8211; a content delivery network &#8211; to house their content.&nbsp; CDN&#8217;s are special because they&#8217;re companies that specialize in distribution &#8211; IE. instead of a few central servers that everyone&#8217;s computers need to communicate with (if you&#8217;re in Ad Tech, you&#8217;ll be familiar with the notion of &#8220;Data Center,&#8221; Data Centers house servers) CDNs have bazillions and bazillions of data centers and servers all over the place, so they&#8217;re close to the users who are trying to access the content and it delivers more quickly.&nbsp; This comes with some caveats in their functionality and flexibility (which is evolving right now l, and is a very cool space), but they&#8217;re real good at loadin&#8217; websites.&nbsp; They&#8217;re a fascinating form of &#8220;decentralized centralization,&#8221; which is a good reminder the &#8220;centrality&#8221; is a spectrum and not a binary.</p><p><strong>What role does a browser play?</strong></p><p>So, in this summary of the internet, we have the domain name service mapping website names to servers, and those servers loading the content via CDNs.&nbsp; That is our high level architectural map &#8211; but even more important, how do end consumers access this infrastructure?&nbsp; The answer is a <strong>web browser</strong> &#8211; a fundamental piece of internet infrastructure that has been a warzone since its inception.&nbsp; It&#8217;s a warzone because of the tremendous amount of influence it wields &#8211; the web browser a user is utilizing is basically the tool by which they engage with the internet.&nbsp; That&#8217;s why netscape was worth a bazillion dollars, why Microsoft was so insistent on bundling in IE with their operating system, and why Google went to tremendous (read: sketchy) lengths to get Chrome installed absolutely everywhere they possibly could (bundling, etc).</p><p>Browsers, when they connect to these servers, literally download files (html, css, javascript, stuff) and then <em>assemble</em> those files on your behalf.&nbsp; Then, poof, magic, a website shows up in front of your face!&nbsp; The reason I&#8217;m highlighting this is that this abstraction, this concept, is often poorly understood &#8211; browsers literally download and assemble files to create websites.&nbsp; They&#8217;re not magic windows into some magic thing that exists somewhere else &#8211; that&#8217;s not how they work &#8211; they&#8217;re downloaders and assemblers.&nbsp;</p><p><strong>Why is this architecture important?</strong></p><p>The reason I think this is so important is because of how <em>flexible</em> it is.&nbsp; Because they&#8217;re downloaders and assemblers, the contents of those files can be virtually <em>anything</em> within the confines of supported web languages and market (ie. html CSS and javascript).&nbsp; This provides content creators with a tremendous amount of flexibility.&nbsp; Combine this with the fact that you have tons of DNS vendors, tons of CDN providers, and multiple browser options, and you get to what I want to be the brunt of this section &#8211; <strong>the architecture of the modern open web is decentralized and democratized.&nbsp; </strong>Website owners have nearly unlimited power to choose their own destiny.&nbsp; They can choose how their websites look, what they do, how they&#8217;re monetized, everything.&nbsp; They can also, very importantly, provide access to <em>anyone using a web browser, with open standards</em>.&nbsp;&nbsp;</p><p>This stands in stark contrast to what I would consider <em>closed</em> platforms.&nbsp; There are two types of closed platforms that jump immediately to mind for me, but there are probably lots more&nbsp; &#8211;&nbsp;</p><ol><li><p>Walled Gardens - Twitter, Facebook, etc.&nbsp; These are platforms that have significant limitations around how content is discovered, displayed, and monetized &#8211; as the experience is mediated by a single platform.&nbsp;&nbsp;</p></li><li><p>App Environments &#8211; App Environments tend to be owned by OS providers &#8211; which is actually interesting semi-vertical integration compared to the desktop software distribution model. This means those providers get tremendous say in similar realms to the closed internet platforms - discovery, functionality, and monetization.</p></li></ol><p><strong>Why does closed vs open matter?</strong></p><p>In 2024, everything is trending towards closed, and I think beyond sucking for Ad Tech (where I spend a depressing amount of my intellectual energy), it is going to suck for society and the world.&nbsp; With the rollout of privacy sandbox, Google is trying to vertically integrate monetization with their browsing environment, essentially making Chrome into a centralized monetization platform on top of the decentralized nature of the open web.&nbsp; It&#8217;s the first step in turning browsers into an increasingly closed environment, with the rules written by Google.&nbsp; It has the lovely side effect of significantly reducing the amount of revenue that independent site owners can generate from their websites, which alongside content summaries directly in google search results or feeding their LLMs with the crawled internet, looks to me like a giant middle finger from Google to the publishing and independent site world.</p><p>But this article isn&#8217;t just about Google! Let&#8217;s try to talk through some distinct ways in which Closed environments are just, like, super lame dude for lots of use cases:&nbsp;</p><ol><li><p>Closed Environments Exert Control Over Information</p></li></ol><p>One of the hallmarks of a closed browsing environment is they <em>control who sees what, when<strong>.&nbsp; </strong></em>When you log into facebook, facebook controls what posts you see.&nbsp; When you log into Twitter, twitter controls what shows up in your feed.&nbsp; When you go into the app store, the app store controls which apps you see.&nbsp; If you search within facebook, a centralized authority chooses what pops up in that search &#8211; with the ability to choose what appears or doesn&#8217;t appear.&nbsp; There&#8217;s no such thing as a &#8220;non facebook facebook search engine.&#8221;</p><p>This is a scary future.&nbsp; We are already struggling to deal with understanding the effects of these systems on our psyches &#8211; this closed architecture means that companies, and in some cases individuals, have the ability to exert control over information in their platform.&nbsp; We certainly don&#8217;t need more of this.</p><p>The architecture of the open web stands in stark contrast to this.&nbsp; Anyone can access anything they like, and there is simply safety in decentralization &#8211; taking a website off of the internet requires significant intervention into tech companies that have zero stake in controlling content and actually differentiate themselves on their neutrality.&nbsp; You have to work pretty hard to get &#8220;de-platformed&#8221; from the internet.</p><p>Additionally, if we feel like the results we&#8217;re getting from our search engine are biased or not what we want, we can just use a different search engine.&nbsp; Poof, problem solved.&nbsp; Google&#8217;s search dominance is a result of people wanting to use it, not a result of there not &#8220;being any other way to search.&#8221;</p><ol start="2"><li><p>Closed Environments Insert Themselves as Economic Middle Men</p></li></ol><p>Another hallmark of closed environments is when they involve themselves in the financial transaction generated as a result of the usage of the platform.&nbsp; In facebook, for example, often content creators actually get <em>no money at all</em>.&nbsp; In Twitter, they&#8217;re rolling out a monetization strategy, but other platforms are more generous, like Youtube, where content creators get a meager cut of the money generated by ads shown to their users.&nbsp; App Stores, similarly, take revshares on money generated by payments processed through their systems, and are notoriously greedy.</p><p>This model, which underpins most of the closed systems, creates strange bedfellows and incentives.&nbsp; Firstly, it means that these platforms are constantly doing a balancing act between surfacing content to their users that their users actually want to consume (more consumption leading to more revenue) with surfacing content that makes them more money within the parameters of the closed environment (some pieces of content lending themselves to revenue more effectively than others).&nbsp; This battle, which exists in all publishing, and let's be clear these content platforms are publishers, is magnified exponentially in these large scale platforms, where I&#8217;m sure they have entire teams dedicated to doing the math here.&nbsp; And once you&#8217;ve committed in some way to using a given content platform, these biases become inescapable (and strangely influential in your life).</p><p>It also means these platforms typically engage in sketchiness around monetization.&nbsp; When they become the bidding platform, the auctioning platform, and the entire ecosystem for tracking campaign performance, you encounter all sorts of shenanigans.&nbsp; You get facebook gaming video quality metrics, you get Google manipulating auctions to make more money (seems to be a topic du jour, but they&#8217;ve always done auction madness), and in general, you get non-transparent systems that the greater internet community will have less and less of a say in.</p><p>There are some great examples of the lengths to which these closed platforms are willing to go to exert their economic control.&nbsp; One that pops immediately to mind is Epic Games, the creator of the ubiquitous game Fortnite, enjoyed by <em>500 million human beings across the globe.&nbsp; </em>The structure of Apple&#8217;s App Store is such that they <strong>demand</strong> a percentage of subscription revenue for apps delivered via their platform, and that percentage is meaningful.&nbsp; Epic told them to take a hike, that ruins their unit economics, and Apple<strong> held strong</strong>.&nbsp; They&#8217;re in a lawsuit - but my goodness &#8211; the most popular game on the planet is not available in the App Store because the closed environment is that serious about its stranglehold on the economics.&nbsp; There are examples of this all over.</p><ol start="3"><li><p>Closed Environments Stifle Innovation</p></li></ol><p>Most importantly, I&#8217;m a believer that the nature of these closed platforms inhibits innovation.&nbsp; When content can only be delivered via a social network, there are significant limitations on how that content can be displayed and what it can contain.&nbsp; These limitations are not up for debate and it is inherent to the construction of the central platform that they&#8217;re not democratic.&nbsp; How things show up in Facebook is dictated by Facebook and Facebook alone &#8211; and you don&#8217;t need to be a believer in Marshall McLuhan&#8217;s the medium is the message to see how placing limits on the various mediums that can exist for delivering content can meaningfully alter the effect that content has on our psyches (imagine a world where all we had was twitter and tik tok &#8211; what would conversations look like? What would humanity become?&nbsp; I shudder to think.)</p><p>This is true in App environments as well &#8211; Apple and Android both exert significant control over the types of applications that are allowed in their app stores, which means that lots of new app developers spend significant cycles just trying to figure out how to keep Apple and Android happy.&nbsp; There are also plenty of examples of Apple and Android de-listing apps &#8220;because they didn&#8217;t like them,&#8221; and I&#8217;ll spare you the chat gpt lookup of &#8220;examples of popular delisted apps&#8221; because nowadays you can do that yourself and by giving you the query I&#8217;ve basically delivered the content &#128578;.</p><p>The fact of the matter is that not only is the open web a flexible platform for developing new media and methods of delivering information and activity, it&#8217;s an open and flexible platform for distribution of software.&nbsp; It&#8217;s like a giant, relatively free system that allows builders of things or writers of stuff to freely deliver that stuff to anyone who can click a link.&nbsp; We need to keep this around, and in order to do that, we need to make meaningful improvements to how site owners make money.</p><p><strong>So what do we do?</strong></p><p>To bring this full circle, I&#8217;d look to loop back to Eric&#8217;s post and dissect it :&nbsp;</p><blockquote><p>The open web seems to be whistling past the graveyard in the face of third-party cookie deprecation. The economy of the open web, empowered through third-party cookies, is not too big to let fail.</p><p>One: Privacy Sandbox will ultimately deliver advertising targeting and measurement functionality that is comparable to cookies.</p><p>Two: Alternative identity solutions will meaningfully supplement the loss of user-level addressability instituted through third-party cookie deprecation.</p><p>Three: The open web is so vital to the consumer internet experience that it simply won&#8217;t be allowed to wither and deteriorate.</p></blockquote><p>I&#8217;d like to synthesize this a bit &#8211; really, the brunt of this post is that the economics of the open web are <em>reliant</em> on cookies.&nbsp; The explanation for this reliance would be that in order for site owners to generate money, they need the performance benefit provided by persistent cross site tracking to advertisers via cookies in order to generate CPMs to stay viable businesses.</p><p>This is not an unreasonable supposition.&nbsp; CPMs have been going down as it is, and online businesses have been failing.&nbsp; A big hit to CPMs, some estimates have on the order of 40%, might just sink the internet altogether &#8211; and in his words, it&#8217;s not too big to fail, and if we just keep cramming on more ads to make up for the decreased CPMs it will get so shitty to be on the web that everyone will just stop.</p><p>This is the pessimist&#8217;s take.</p><p>HOWEVER &#8211; distilling this even <em>further</em>, what he&#8217;s really saying is &#8220;a 40% hit to CPMs is coming and the web might die&#8221;&nbsp; That, my friends, sounds like a problem that we can figure out some solutions to.&nbsp; It&#8217;s time to fill that glass up halfway, so let&#8217;s do some things.</p><ol><li><p><strong>Increase CPMs on the open internet</strong></p></li></ol><p>I have a lot of blog posts written about this already.&nbsp; But the method by which we auction programmatic ads, the data included in those auctions, and the tools we implement (ad units, placement IDs, identifiers) are in a <em>savage</em> state of disrepair.&nbsp; I don&#8217;t think it&#8217;s unreasonable to think that we could <strong>meaningfully</strong> increase the CPMs of every website on the internet by fixing the infrastructure itself.&nbsp; I&#8217;ll put this into bullet points, but probably best to read some of my other articles, and then readers of this please go start some companies :&nbsp;</p><ul><li><p>Standardize inventory classification using a stable, persistent, performance-difference indicating inventory identifier.&nbsp; Give advertisers something meaningful to optimize against over time.</p></li><li><p>Standardize how we pass third party sources of information.</p></li><li><p>Make sure your auctions are not staggered, supply path optimization does not matter if you do not have a single, centralized auction where everything competes on bid price.</p></li><li><p>Make sure your ads are viewable, lazy load ads, think about the things that will improve advertiser outcomes not things that you think &#8220;look nice.&#8221;&nbsp; There&#8217;s a lot written on the internet about &#8220;ugly ads performing better,&#8221; in my experience, the same holds for websites, ugly websites tend to perform better for campaigns.</p></li><li><p>Run everything on earth through a single, optimized prebid instance managed by someone who knows what they&#8217;re doing.</p></li></ul><p>One of my overarching themes for this is that websites need to work for <strong>performance advertisers</strong>.&nbsp; Most of the bellyaching I see on linkedin is about &#8220;brands&#8221; being defrauded, or not trusting programmatic, or programmatic blah is doing this to big brand x.&nbsp; This is all a distraction.&nbsp; Closed platforms don&#8217;t succeed because they work well for brand advertisers, even though they do.&nbsp; They succeed because they work for performance advertisers &#8211; simple, post click, performance advertisers.&nbsp; If your website works for that, it works for <strong>everyone</strong>.&nbsp; This is the goal we need to achieve for programmatic to survive, not to roll out some bullshit enhancement that incrementally improves a deck built by a trader for an agency shown to a CMO somewhere.</p><ol start="2"><li><p><strong>Site Owners need to rethink their businesses and incorporate unit economics</strong></p></li></ol><p>Prepare thyself for a soft pitch of my new company, which makes this blog post our official exit from stealth mode.&nbsp; The open internet, as it has existed to date, is lacking something that every closed ecosystem has and is actually the foundation of most of their businesses - <strong>unit economics</strong>.</p><p>What are unit economics you ask?&nbsp; Unit economics is the study and understanding of the cost and revenue associated with a single customer for a business.&nbsp; So, in simple terms, how much money do you make from each user vs how much money does it cost you to acquire that user and then provide whatever services you do for them.</p><p>For advertising in apps, this is the lifeblood of the app install industry.</p><p>For meta, they can tell you this with excruciating detail.</p><p>For the ad-driven open internet, <strong>this data is nearly impossible to get</strong>.&nbsp; If you are a site owner reading this, I put to you this question - how much money do the different types of users who visit your site generate over their lifetime?&nbsp; What&#8217;s the difference between logged in users and not logged in users?&nbsp; How about users who read your sports section versus your entertainment section?&nbsp; Or users who found you through search vs social media?&nbsp; And I don&#8217;t mean estimates, I mean for each of these different subsections, what does the distribution look like and how long does it take to reach the asymptote of revenue generation over the lifetime of a user?</p><p>If you can&#8217;t answer those questions, easily and offhand, <em>how can you possibly profitably grow your business</em>?&nbsp;&nbsp;</p><p>I would argue that cookies have been a crutch &#8211; that website businesses haven&#8217;t &#8220;gotten with the times&#8221; the way that app businesses have because they haven&#8217;t had to.&nbsp; The old school mad men days of &#8220;well, we just need to charge higher prices for our inventory and do more sales&#8221; compared to how much you pay your content creators, combined with free traffic from organic sources (which, lo and behold, is drying up) gave them the semblance of being reasonable businesses, when in reality there were some major blind spots in how to logically scale and operate the business.&nbsp; AKA - Free Traffic + Unsophisticated Ad Dollars from Brand Advertisers = shitloads of low-complexity revenue that looks <em>extremely</em> profitable.</p><p>This is why we started Gamera.&nbsp; Gamera is a Google Analytics competitor / alternative / complement (they&#8217;re not mutually exclusive at all) that incorporates the notion of <em>value</em> into your site analytics, especially for companies with on-site advertising revenue.&nbsp; We don&#8217;t think that it&#8217;s a coincidence that the most popular website analytics platform was built for things that primarily benefit search engines and tangentially site owners &#8211; that site owners have been told to purely optimize to experience and behavior without demanding any insight into revenue and value.&nbsp; We don&#8217;t think that company necessarily has your best interests as site owners in mind, through no fault of their own, I wouldn&#8217;t expect them to do extra work for no real benefit on their side.</p><p>The foundation of Gamera is that we provide you with precisely these insights &#8211; we don&#8217;t just think about single user sessions, we don&#8217;t just think about bounce rate &#8211; we answer questions like :&nbsp;</p><ul><li><p>For your consumers with the highest lifetime value, what parts of your website do they regularly engage in ?</p></li><li><p>Who are these users?&nbsp; Would you like to segment them and do stuff with those segments?</p></li><li><p>How do you get more users that are exceedingly profitable on a user by user basis, not by comparing aggregates with other aggregates that don&#8217;t actually tell you how to grow your business?</p></li><li><p>Which users will have a net LTV benefit to paywall?&nbsp; What are the tradeoffs in various forms of paywall for the bottom line of my business, not on an aggregate basis, but user by user?</p></li></ul><p>I think we actually <strong>need</strong> these analytics in order for site owners to properly improve the performance of their websites for advertisers &#8211; because there&#8217;s no better feedback loop than yield!</p><p>If you&#8217;re interested in learning about value analytics, and LTV, please reach out!&nbsp; We&#8217;re entering a closed beta now, and I am personally working with our first cohort of customers.&nbsp; You can find more information here : <a href="https://gamera.app/value-analytics/overview.html">https://gamera.app/value-analytics/overview.html</a>&nbsp;</p><p>It&#8217;s time for a new generation of thinking &#8211; the good old days of scotch and compelling powerpoints are not going to protect the internet against the walled gardens.&nbsp; We hope to be one brick in the foundation of a new (very not exclusive) clubhouse for the open web.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Gareth Hates AdTech is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[New Year, New Ideas -- Rethinking Programmatic and The Open Internet]]></title><description><![CDATA[Simple Solutions for Complicated Problems]]></description><link>https://www.garethhatesadtech.com/p/new-year-new-ideas-rethinking-programmatic</link><guid isPermaLink="false">https://www.garethhatesadtech.com/p/new-year-new-ideas-rethinking-programmatic</guid><dc:creator><![CDATA[Gareth Glaser]]></dc:creator><pubDate>Mon, 12 Feb 2024 16:48:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!HwvQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b508a1a-67c6-4570-945d-1c758ee5a145_498x388.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome to the first article of 2024!&nbsp; And apologies for the delay.&nbsp; For today&#8217;s article, I want to focus on something that&#8217;s really been bugging me &#8211; why does facebook (and truly, all social media) perform so well vs programmatic for performance advertisers.&nbsp; It&#8217;s my hope that this exploration will uncover some things that can help programmatic as a whole improve, and thereby improve humanity by creating a more successful free and open internet <em>yay</em>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HwvQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b508a1a-67c6-4570-945d-1c758ee5a145_498x388.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HwvQ!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b508a1a-67c6-4570-945d-1c758ee5a145_498x388.gif 424w, https://substackcdn.com/image/fetch/$s_!HwvQ!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b508a1a-67c6-4570-945d-1c758ee5a145_498x388.gif 848w, https://substackcdn.com/image/fetch/$s_!HwvQ!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b508a1a-67c6-4570-945d-1c758ee5a145_498x388.gif 1272w, https://substackcdn.com/image/fetch/$s_!HwvQ!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b508a1a-67c6-4570-945d-1c758ee5a145_498x388.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HwvQ!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b508a1a-67c6-4570-945d-1c758ee5a145_498x388.gif" width="498" height="388" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3b508a1a-67c6-4570-945d-1c758ee5a145_498x388.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:388,&quot;width&quot;:498,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Hhgf GIF - Hhgf GIFs&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Hhgf GIF - Hhgf GIFs" title="Hhgf GIF - Hhgf GIFs" srcset="https://substackcdn.com/image/fetch/$s_!HwvQ!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b508a1a-67c6-4570-945d-1c758ee5a145_498x388.gif 424w, https://substackcdn.com/image/fetch/$s_!HwvQ!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b508a1a-67c6-4570-945d-1c758ee5a145_498x388.gif 848w, https://substackcdn.com/image/fetch/$s_!HwvQ!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b508a1a-67c6-4570-945d-1c758ee5a145_498x388.gif 1272w, https://substackcdn.com/image/fetch/$s_!HwvQ!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b508a1a-67c6-4570-945d-1c758ee5a145_498x388.gif 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>My thesis here is that doomers who believe that online publishing is broken and that all online publishing is going to die are <em>wrong </em>because while they have successfully diagnosed the symptoms afflicting legacy publishing (less moneyz), they have overlooked the root cause of the illness and therefore the cure.&nbsp; I&#8217;m also going to give you guys some free business ideas, and I would gladly chat about them in more detail if someone was really interested in fixing these things.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Gareth Hates AdTech is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p><strong>Background</strong></p><p>The commonly held belief at many &#8220;premium&#8221; publishers is that programmatic CPMs are so far below direct sold that they need to focus on direct sales and PMPs, and not only that, if they didn&#8217;t have direct sales and PMPs they&#8217;d be out of business.&nbsp; And based on current data, that&#8217;s often true!&nbsp;&nbsp;</p><p>But I&#8217;m a firm believer that current data is actually a misrepresentation of what open programmatic <em>could</em> be.&nbsp; The CPMs generated by open auction today are crappy and low and unsustainable, yes, but that doesn&#8217;t have to be the case!  And my thinking for why this doesn&#8217;t have to be the case is that the average CPMs on Facebook (and even sometimes on GDN, but I digress), are actually insane, like, $10,$20,$30.  And while I&#8217;m not certain we can get programmatic all the way there (wouldn&#8217;t that be nice), my belief is that programmatic is <strong>broken</strong>, but <strong>broken in such a way that it can be fixed.</strong> </p><p>For our prototype, this article will look at Facebook, a wildly imperfect, impossible to use marketing UI, that has generated CPMs for Facebook&#8217;s inventory (read : banner ads with little squigglies on them on a UGC forum publisher) that would rescue just about every publishing business on the internet.&nbsp; We&#8217;re going to start with the nature of facebook inventory and media buying, see if we can identify some deltas, and then run through some possible solutions.&nbsp; The question we&#8217;re working to answer here is &#8220;can we make programmatic behave like facebook,&#8221; or at least, &#8220;can we make programmatic behave enough like facebook that our average CPMs increase 5x.&#8221;  And no, I do not expect that this article is exhaustive, so please feel free to mention other things in conversation but don&#8217;t yell at me for &#8220;forgetting XYZ.&#8221;</p><p><strong>What is the facebook advertising experience?</strong></p><p>Facebook is, at its core, a user-generated content website.&nbsp; It&#8217;s a forum.&nbsp; It&#8217;s a forum that connects you to your real-world (and non real-world) peers, and allows them to share images and content pertaining to their lives and interests in a curated feed, a feed simply optimized to engagement metrics (like viewability or &#8220;attention&#8221; or CTR).&nbsp; It is not a magnificently difficult thing to build &#8211; Facebook&#8217;s difficulty comes in its network effect scale, which is nigh impossible to replicate as the switching costs are massive for users who have uploaded their lives to their system.</p><p>But this means the advertising experience is <strong>simply not all that different from the advertising experience on a normal website</strong>.&nbsp;&nbsp;</p><p>There are ads in the sidebars, ads in the content well, and on your mobile phone there are <em>big</em> 300x500 ads that occur probably at a higher density than your average publishing website.&nbsp; On my mobile feed, every 2-3 tiles with content I get a gigantic ad.&nbsp; <strong>This is comparable ad density to MFA inventory, and as Ari illuminated on his podcast, not only is the experience similar &#8211; MFA sites are often facebook traffic!</strong></p><p>This brings us to the crux of our discussion &#8212; if Facebook has MFA ad density, and MFA users, why is facebook a viable channel for every D2C advertiser I&#8217;ve ever spoken to?&nbsp; On a post-click CPA goal no less?&nbsp;  And while charging freaking $30 CPMs sometimes?!?!</p><p><strong>Two Possible Explanations</strong></p><p>Explanation #1 - Facebook&#8217;s behavioral data is simply that valuable.  This is perfectly possible.  Facebook has social graph data, it has demographic data, and they certainly say that they use it!  But programmatic has data providers too.  Programmatic has credit card data, has perfect deterministic user behavior data (or did when it had 3p cookies), and all sorts of other fancy stuff.  Hell, programmatic companies spent and spend literally billions <a href="https://www.forrester.com/blogs/epsilonpublicis/">https://www.forrester.com/blogs/epsilonpublicis/</a> building data solutions to improve the performance of their campaigns.  But even with all of that, is programmatic really 10-20x <em>worse</em> at data than facebook is?  I&#8217;m not so certain&#8230;</p><p>Explanation #2 -  <strong>My controversial opinion here is that the inefficiency of ad tech is what causes the lion&#8217;s share of the delta in price for facebook traffic versus your average programmatic website</strong>.&nbsp; The high prices are not a result of their behavioral user data, though that certainly helps, rather there are a number of things in the guts of programmatic that are keeping us from reaching these CPMs, or at least closer to them.&nbsp; If I&#8217;m wrong, then I blame all of you data companies that are supposedly adding so much value to the ecosystem while you funnel money away from publishers. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wUHF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b3905a3-65a5-46d4-bdc1-2c146d33ae0a_556x500.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wUHF!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b3905a3-65a5-46d4-bdc1-2c146d33ae0a_556x500.gif 424w, https://substackcdn.com/image/fetch/$s_!wUHF!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b3905a3-65a5-46d4-bdc1-2c146d33ae0a_556x500.gif 848w, https://substackcdn.com/image/fetch/$s_!wUHF!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b3905a3-65a5-46d4-bdc1-2c146d33ae0a_556x500.gif 1272w, https://substackcdn.com/image/fetch/$s_!wUHF!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b3905a3-65a5-46d4-bdc1-2c146d33ae0a_556x500.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wUHF!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b3905a3-65a5-46d4-bdc1-2c146d33ae0a_556x500.gif" width="556" height="500" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1b3905a3-65a5-46d4-bdc1-2c146d33ae0a_556x500.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:500,&quot;width&quot;:556,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Sarcastic Thanks A Lot GIF | GIFDB.com&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Sarcastic Thanks A Lot GIF | GIFDB.com" title="Sarcastic Thanks A Lot GIF | GIFDB.com" srcset="https://substackcdn.com/image/fetch/$s_!wUHF!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b3905a3-65a5-46d4-bdc1-2c146d33ae0a_556x500.gif 424w, https://substackcdn.com/image/fetch/$s_!wUHF!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b3905a3-65a5-46d4-bdc1-2c146d33ae0a_556x500.gif 848w, https://substackcdn.com/image/fetch/$s_!wUHF!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b3905a3-65a5-46d4-bdc1-2c146d33ae0a_556x500.gif 1272w, https://substackcdn.com/image/fetch/$s_!wUHF!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b3905a3-65a5-46d4-bdc1-2c146d33ae0a_556x500.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p></p><p><strong>A Few Potential Differences</strong></p><p>So, on to the assumptions &#8211; what are some issues that facebook <em>doesn&#8217;t</em> have that modern programmatic does?&nbsp; Let&#8217;s start with the construction of the inventory itself, and then move on to general industry inefficiencies that I think are &#8220;in the weeds&#8221; but are low hanging fruit.</p><ol><li><p>Fix Inventory Categorization</p></li></ol><p><strong>Problem</strong></p><p>Inventory Categorization on the open internet is fundamentally broken. This manifests itself in a few ways &#8211; but the one I&#8217;d like to focus in on is the concept of &#8220;placement&#8221; or &#8220;ad unit&#8221; or whatever.&nbsp; For the uninitiated, these are definitions that map loosely to ad slots on publishers pages, but also might not, but also sometimes do, but also sometimes exist across multiple sites, but also are expected to be the point around which all optimization rotates&#8230;. Get the picture?&nbsp; The notion of ad slot in programmatic, and across exchanges is <em>nonsensical</em>.</p><p>Know what Facebook&#8217;s bidder isn&#8217;t stuffed with?&nbsp; The same ad opportunity being described as placement 12345, ad unit 938123, inventory_code Purple_Elephants_Ate_My_shoes, and cid 92XsasjS2 &#8211; when it&#8217;s literally the exact same ad slot in the exact same experience as before.&nbsp; Or, even a step further, we don&#8217;t have different employees at facebook <em>adding their own method of categorizing ad units to the page for different sections of facebook</em>.&nbsp; Facebook&#8217;s inventory categorization is static, predictable, and reliable from an optimization perspective.</p><p>We have structured independent programmatic advertising in such a way that arguably <em>the most important thing for monetizing a website, the structure of the ad unit objects, is determined piecemeal by each of the hundreds of thousands of publishers in the space</em>.&nbsp; This is actually fucking bonkers.&nbsp; Literally every publisher is <em>expected</em> to categorize their own inventory and lay out the ads on their websites.&nbsp;&nbsp;</p><p>WHY!?</p><p>WHY IS THERE NOT A COMPANY THAT CENTRALIZES THIS AND DOES THIS FOR EVERYONE!?!</p><p>This is probably the deepest issue with the construction of independent publishing that inherently makes significant swaths of the internet basically unbuyable and unusable for the purposes of online advertising.&nbsp; And I&#8217;m sure there are some sophisticated publishers who will read this who are saying &#8220;Well, I can do better, so I&#8217;m glad I have control&#8221;&nbsp; &#8211; to which I reply, great, good for you, your website isn&#8217;t attracting tens of billions of dollars in performance marketing spend that would keep our entire ecosystem alive.&nbsp; We need a solution that works <em>at scale</em>, not just one or two pubs who think they&#8217;re savvy.</p><p>&nbsp;<strong>Solution</strong></p><p><strong>There should be a company that generates optimization-stable and performance insightful GPIDs (Global Placement Identifier, thank you Prebid and Trade Desk for at least conceptualizing this, though I give some old Magnite buddies credit for PBAdslot which was supposed to be the same thing) on behalf of publishers as a service, looking at things like page geometry and page content</strong>.&nbsp; This company needs to exist.&nbsp; Every publisher who uses prebid should be able to work with them, and this company should provide a consistent, predictable, and standardized method to categorize the inventory on publisher&#8217;s pages.&nbsp; And no, super sophisticated fancy publisher, I&#8217;m not talking to you.&nbsp; You clearly aren&#8217;t moving the needle for saving our industry.&nbsp; I&#8217;m talking to the 95% of publishers who don&#8217;t have the time or resources to invest in this.</p><ol start="2"><li><p>Fix Inventory Itself</p></li></ol><p><strong>Problem</strong></p><p>Buckle up folks, this one is a little radical.&nbsp; Let&#8217;s say we&#8217;ve fixed inventory categorization, and my magical vendor that works all kinds of magic with GPIDs exists.&nbsp; That vendor still has to work relatively hard &#8211; there are so many bazillions of ways that publishers mess up their websites with inconsistencies, outstream video players (lol), and all kinds of on page madness, that buyer predictability still suffers.</p><p>Facebook does not suffer from this.&nbsp; Every part of facebook is very very very consistent.&nbsp; They know precisely what it is, and there&#8217;s very little guesswork.</p><p><strong>Solution</strong></p><p>What if we rebuilt the internet to take the guesswork out of it?&nbsp; What if there were an IAB/OpenRTB defined &#8220;centralized site layout&#8221; that maximizes performance and standardizes things like ad-density?&nbsp; Could be on Wordpress, or any CMS really, but there should be an advertising industry sanctioned open source website template!&nbsp; This layout should be available for free, and it should be available to all publishers who want to make as much money from their ads as possible.&nbsp; It should lead to automatic approvals from Ad Exchanges and DSPs, and it <em>will</em> help the independent internet grow.&nbsp; This is a pipe dream, and probably won&#8217;t happen, but if TTD wants to build it maybe we could get a bunch of mid tail publishers to use it, and we could have an ecosystem emerge around customizing it without meaningfully changing the guts of it (and if it's open source, we can have substantive conversations about what would be involved in maintaining its core goals while making modifications).&nbsp; I expect it to function a little bit like native advertising in reverse, which should also be completely open source.</p><p>The next few that I&#8217;d like to propose are not so much inventory specific, rather programmatic ecosystem specific.&nbsp; These are changes that I&#8217;d like to see in Prebid, or in the programmatic ecosystem at large.</p><ol start="3"><li><p>Demand Filtering :&nbsp;</p></li></ol><p><strong>Problem</strong></p><p>One thing we regularly discussed at Prebid was demand filtering &#8211; aka &#8211; brand safety controls.&nbsp;&nbsp;</p><p>Most publishers with any form of direct sales, or publishers with brands they&#8217;d like to protect somehow, have advertiser and category restrictions on what kind of ads can run on their sites.&nbsp; The problem is that these are configured ad exchange by ad exchange &#8211; and every ad exchange has its own taxonomy!&nbsp; This means that an advertiser can be blocked in one exchange, not in another, or restricted in a third &#8211; or even just completely overlooked if a publisher adops person forgot to log in to one of their 10 ad exchanges.&nbsp; And maintaining this taxonomy, and this mapping of advertiser URLs to brands to categories, is a huge pain in the ass for the ad exchanges themselves, and something they all invest money into.</p><p><strong>Solution</strong></p><p>We need an open source company that maintains a centralized repository of all brands running in online advertising.&nbsp; In order to be eligible to run a campaign, you need to register your brand with all of your landing page URLs with a centralized service that will provide you with a brand identifier, that can then be centrally managed in an advertiser quality module on top of Prebid.&nbsp; This will be open source so everyone can see everything, there are no disagreements, and there&#8217;s no asymmetry. It will also provide publishers data on which advertisers are running on their sites &#8211; something Publishers deserve &#8211; or at the very least allow them to say they don&#8217;t care.&nbsp; And Google, I&#8217;m looking at you, with your &#8220;various adwords publishers&#8221; categorization.</p><ol start="4"><li><p>First and Third Party data communication</p></li></ol><p><strong>Problem</strong></p><p>Ad Exchanges and OpenRTB are a messy hodgepodge of data communication structures.&nbsp; We have EIDs, we have FPD and PPID, we have PMPs which act as proxies for data providers in lots of ad exchanges, and I&#8217;m sure there are a bunch of other acronyms that I don&#8217;t know that are used in moving data back and forth.&nbsp; <em>This shit is crazy</em>.&nbsp; Know who doesn&#8217;t have 123091231029 ways to communicate data, and therefore optimize against that data?&nbsp; Facebook.</p><p><strong>Solution</strong></p><p>We need one, centrally managed data insertion point &#8211; and Prebid is the perfect candidate once again.&nbsp; Publishers need to hold single prebid auctions for all of the ad units on their site (per my other articles, please don&#8217;t screw this up by loading a bunch of different prebid instances and fragmenting your demand stack), and within that prebid auction we need a central taxonomy adding any relevant data providers to the impression opportunity and then blasting any of the relevant data out to all of the exchanges in a standard OpenRTB field.&nbsp; The notion that there are so many decentralized ways to dress inventory up, and that exchanges are often doing this as a value prop, is ludicrous and we need better solutions.&nbsp; A lot of the infrastructure already exists for this &#8211; but things are still done piecemeal because ad sales people be ad salesin.&nbsp; Stop it.</p><p>I promise, The Trade Desk has lots of people working in their machine learning department.&nbsp; If on every impression, from every exchange, they had 55 uniformly communicated but discrete segments that provided varying levels of utility, they&#8217;d be thrilled to filter the signal from the noise and optimize their campaigns using them.&nbsp; Let&#8217;s just actually give our sophisticated bidding platforms a chance, and get them de-duplicated centralized information about impressions that isn&#8217;t asymmetrical on every exchange they buy from.&nbsp; And now, when every exchange is sending the exact same data for the exact same impressions (and the same number of them, if you&#8217;re bid jamming in this scenario you&#8217;re very easy to catch), we get to have a real race to the bottom on fees and figure out why ad exchanges exist.</p><p>I&#8217;ll also take this opportunity to indict the modern day ad network &#8211; companies that buy average inventory, apply some kind of data to it, and then mark it up for resale with non transparent margins.&nbsp; Yes, that business makes lots of money.&nbsp; No, that business is not good for independent ad tech.&nbsp; Do you want Publishers to keep dying?&nbsp; Because this is how we kill publishers.</p><ol start="5"><li><p>Refocus on Performance</p></li></ol><p>Buy-side, this article is not letting you escape unscathed.&nbsp; The foundation of Facebook advertising is performance buyers.&nbsp; These are people who are looking for Direct Response, and not just Direct Response, real post-click sales of goods and services.</p><p><strong>Problem</strong></p><p>If Programmatic doesn&#8217;t work for DR sales for mom and pops, which right now it really doesn&#8217;t, it doesn&#8217;t have a bright future.&nbsp; The CPMs we see on facebook can only be generated by actual value generated for advertisers &#8211; not by vanity loosely attributed metrics, but by sales.&nbsp; Because then a mom and pop shop, or a D2C startup, can pump money into it and have a company - but spending $10,000 on &#8220;lots of high-attention ads&#8221; and &#8220;high probability of walk-ins having seen a digital ad&#8221; doesn&#8217;t help them.</p><p>Programmatic&#8217;s backbone is agency bulldinkie with loose performance goals that are easily manipulated.&nbsp; This is also why it&#8217;s so vulnerable to ad fraud.</p><p><strong>Solution</strong></p><p>Non-Retargeting Programmatic has to refocus on CPA, and even more specifically, has to get good at post-click CPA.&nbsp; Yes, I know this can be gamed.&nbsp; No, I don&#8217;t think it&#8217;s easier to game this <em>than just about anything else</em>.&nbsp; If you refocus your whole business on post-click CPA, I promise, you can stop paying fraud providers and stop paying middle men data providers who protect you from &#8220;THE BOTS.&#8221;&nbsp; Because bots don&#8217;t click and then buy, or if they do, they don&#8217;t do it en masse.&nbsp; Therefore you will stop buying traffic from them if you&#8217;re optimizing properly and if we re-do the internet with performance in mind.</p><p><strong>Conclusion and Disclaimer</strong></p><p>I&#8217;m bullish on banners.&nbsp; I really am.&nbsp; I think as time passes, as long as we don&#8217;t let privacy infrastructure lead to the entire internet becoming a walled garden, we really have a chance here. &nbsp; But it requires some creative thinking, it requires some cooperation, and it requires some disruption.  And also, if we let any self-interested players roll out infrastructure that obviates the need for and breaks all of the things that we as an industry have worked so hard to build, all of these ideas could be rearranging deck chairs on the titanic.</p><p>Thank you for coming to my Ted talk, I fully expect zero of this to happen, but hey, a guy can dream.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Gareth Hates AdTech is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The Current Age of Ad(versary) Tech Is Ending]]></title><description><![CDATA[I'm gonna make up more acronyms and you're gonna like it]]></description><link>https://www.garethhatesadtech.com/p/the-current-age-of-adversary-tech</link><guid isPermaLink="false">https://www.garethhatesadtech.com/p/the-current-age-of-adversary-tech</guid><dc:creator><![CDATA[Gareth Glaser]]></dc:creator><pubDate>Tue, 14 Nov 2023 15:23:33 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3acbf00a-30b5-4372-93d8-d2a89d4972c4_888x499.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello and welcome to another installment of Gareth Hates Ad Tech.&nbsp; In today&#8217;s rant, I&#8217;d like to address something that I&#8217;ve been pondering for some time but have only spoken about in hushed tones with people who have had a few drinks.&nbsp; Namely, it&#8217;s why doesn&#8217;t Independent Ad Tech work?</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Yxwf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9e329fb-2b8a-48c2-a75a-8cd845d7e6c8_300x168.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Yxwf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9e329fb-2b8a-48c2-a75a-8cd845d7e6c8_300x168.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Yxwf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9e329fb-2b8a-48c2-a75a-8cd845d7e6c8_300x168.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Yxwf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9e329fb-2b8a-48c2-a75a-8cd845d7e6c8_300x168.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Yxwf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9e329fb-2b8a-48c2-a75a-8cd845d7e6c8_300x168.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Yxwf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9e329fb-2b8a-48c2-a75a-8cd845d7e6c8_300x168.jpeg" width="300" height="168" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b9e329fb-2b8a-48c2-a75a-8cd845d7e6c8_300x168.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:168,&quot;width&quot;:300,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Grandiloquent Word of the Day - J'accuse [zhah-KUHZ] (excl.) -A bitter  denunciation - literally &#8220;I accuse&#8221;. French, meaning \&quot;I accuse&#8221;. Emile Zola  immortalized this phrase in 1898 by writing an incendiary public&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Grandiloquent Word of the Day - J'accuse [zhah-KUHZ] (excl.) -A bitter  denunciation - literally &#8220;I accuse&#8221;. French, meaning &quot;I accuse&#8221;. Emile Zola  immortalized this phrase in 1898 by writing an incendiary public" title="Grandiloquent Word of the Day - J'accuse [zhah-KUHZ] (excl.) -A bitter  denunciation - literally &#8220;I accuse&#8221;. French, meaning &quot;I accuse&#8221;. Emile Zola  immortalized this phrase in 1898 by writing an incendiary public" srcset="https://substackcdn.com/image/fetch/$s_!Yxwf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9e329fb-2b8a-48c2-a75a-8cd845d7e6c8_300x168.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Yxwf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9e329fb-2b8a-48c2-a75a-8cd845d7e6c8_300x168.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Yxwf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9e329fb-2b8a-48c2-a75a-8cd845d7e6c8_300x168.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Yxwf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9e329fb-2b8a-48c2-a75a-8cd845d7e6c8_300x168.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>I know most of you reading this will react with indignation &#8211; &#8220;well, what do you mean work!?&#8221; &#8220;Of course it works look at all these companies!&#8221; blah blah.&nbsp; But the fact of the matter is that the meaningful online advertising businesses are the walled gardens.&nbsp; There&#8217;s a reason market growth is primarily going to a few places &#8211; Google, Facebook, TikTok, etc &#8211; and we aren&#8217;t seeing anywhere near the organic growth in independent ad tech.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Gareth Hates AdTech is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>My theory why is simple &#8211; independent ad tech doesn&#8217;t convert.&nbsp; Ask any affiliate who has been working for more than 5 years &#8211; DSP banners don&#8217;t back out.&nbsp; And I've witnessed this personally, onboarding performance buyers onto various DSPs that I&#8217;ve worked at only to see them fail.&nbsp; Another barometer for this &#8211; how many D2C companies do you see built on the back of DSPs?&nbsp; I know the CEOs of a few big ones and I can tell you programmatic wasn&#8217;t even a consideration until they were spending decent 8 figures per year already on the primary channels (FB, Google) and for many of them still isn&#8217;t.&nbsp; This is because it doesn&#8217;t convert for them &#8211; you can&#8217;t build a sales focused business on DSP based buying.&nbsp; That&#8217;s not to say that no D2C brands buy programmatic, I&#8217;m sure some do, but it&#8217;s not the &#8220;go to&#8221; channel to scale up your business with your Series A.  It&#8217;s just how the world is right now.</p><p>In order to diagnose why this is, I&#8217;d like to look into the history of Programmatic, namely, the history of DSPs and SSPs.</p><p>Definitions &#8211;&nbsp;</p><p>DSP - Demand Side Platform &#8211; a platform built to run campaigns for advertisers (either with an advertiser or agency logging in themselves, called &#8220;self-serve,&#8221; or with employees of the DSP doing it for them, called &#8220;managed service.&#8221;&nbsp; Apart from the functional definition, many people will say DSPs exist <strong>because in the transaction they represent the &#8220;buy-side&#8221; interest</strong></p><p>SSP - Supply Side Platform &#8211; a platform built to &#8220;make publishers as much money as possible&#8221; by selling to DSPs or as many companies as they can.&nbsp; What SSPs do has actually shifted significantly over the years, and that&#8217;s one of the first things I want to discuss.&nbsp; But always their marketing has been built on <strong>&#8220;we represent the interest of the publisher.&#8221;</strong></p><p><strong>WTF does an SSP even do anymore</strong></p><p>The original SSPs were not in the business of selling inventory to DSPs.&nbsp; In fact, that&#8217;s a different business model &#8211; using OpenRTB to sell inventory to DSPs is being an &#8220;Ad Exchange.&#8221;&nbsp; But we&#8217;ve used them interchangeably for so long that we&#8217;ve lost sight of the original purpose of an SSP.&nbsp; <strong>The original purpose of an SSP was to manage publisher integrations with Ad Networks and Ad Exchanges</strong>, not to hold auctions with DSPs.</p><p>Cue the Time Machine</p><p><strong>Why does programmatic exist?</strong>&nbsp; The original programmatic platform, the Right Media Exchange (Sorry Jeff and Bill and AdECN, I did work at AppNexus after all), was actually a technology integrated marketplace for Ad Networks to buy and sell from one another.&nbsp; I&#8217;m going to make a really crappy graphic to illustrate the evolution that brought modern programmatic into being :&nbsp;</p><p><strong>Phase 1 - Basic Internet Pub</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fM7r!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75aab8fd-290c-498e-850a-d4cd750b8ea8_792x545.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fM7r!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75aab8fd-290c-498e-850a-d4cd750b8ea8_792x545.png 424w, https://substackcdn.com/image/fetch/$s_!fM7r!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75aab8fd-290c-498e-850a-d4cd750b8ea8_792x545.png 848w, https://substackcdn.com/image/fetch/$s_!fM7r!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75aab8fd-290c-498e-850a-d4cd750b8ea8_792x545.png 1272w, https://substackcdn.com/image/fetch/$s_!fM7r!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75aab8fd-290c-498e-850a-d4cd750b8ea8_792x545.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fM7r!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75aab8fd-290c-498e-850a-d4cd750b8ea8_792x545.png" width="792" height="545" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/75aab8fd-290c-498e-850a-d4cd750b8ea8_792x545.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:545,&quot;width&quot;:792,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!fM7r!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75aab8fd-290c-498e-850a-d4cd750b8ea8_792x545.png 424w, https://substackcdn.com/image/fetch/$s_!fM7r!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75aab8fd-290c-498e-850a-d4cd750b8ea8_792x545.png 848w, https://substackcdn.com/image/fetch/$s_!fM7r!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75aab8fd-290c-498e-850a-d4cd750b8ea8_792x545.png 1272w, https://substackcdn.com/image/fetch/$s_!fM7r!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75aab8fd-290c-498e-850a-d4cd750b8ea8_792x545.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Publisher speaks to advertiser, like coca cola, advertiser agrees to pay publisher 13 goats for 1 month of putting their jpeg on publisher website.&nbsp; Publisher agrees, much goat wealth was had.</p><p><strong>Phase 2 - Ad Serving</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pCz8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec595eff-3702-4a35-8a9c-a28289a16bb9_987x575.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pCz8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec595eff-3702-4a35-8a9c-a28289a16bb9_987x575.png 424w, https://substackcdn.com/image/fetch/$s_!pCz8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec595eff-3702-4a35-8a9c-a28289a16bb9_987x575.png 848w, https://substackcdn.com/image/fetch/$s_!pCz8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec595eff-3702-4a35-8a9c-a28289a16bb9_987x575.png 1272w, https://substackcdn.com/image/fetch/$s_!pCz8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec595eff-3702-4a35-8a9c-a28289a16bb9_987x575.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pCz8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec595eff-3702-4a35-8a9c-a28289a16bb9_987x575.png" width="987" height="575" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ec595eff-3702-4a35-8a9c-a28289a16bb9_987x575.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:575,&quot;width&quot;:987,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!pCz8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec595eff-3702-4a35-8a9c-a28289a16bb9_987x575.png 424w, https://substackcdn.com/image/fetch/$s_!pCz8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec595eff-3702-4a35-8a9c-a28289a16bb9_987x575.png 848w, https://substackcdn.com/image/fetch/$s_!pCz8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec595eff-3702-4a35-8a9c-a28289a16bb9_987x575.png 1272w, https://substackcdn.com/image/fetch/$s_!pCz8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec595eff-3702-4a35-8a9c-a28289a16bb9_987x575.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Publisher has more advertisers that want to work with it.&nbsp; Also, publisher realizes that some months have lots of traffic, and publisher should get paid more money in those months.&nbsp; Enter publisher adserver &#8211; two primary functions, change the ads that show on the site without having to re-code jpegs, also count the things so you can charge based on counts not on time (maybe some basic targeting too).&nbsp; New way to sell, many many more goats for publisher.&nbsp; Advertiser decides to trust but verify, builds advertiser adserver to count and swap things for them to make sure their goats are getting their money&#8217;s worth.</p><p><strong>Phase 3 - Ad Networks</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!--mg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32aa96df-c320-4c2f-ab00-8473a45215c9_863x474.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!--mg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32aa96df-c320-4c2f-ab00-8473a45215c9_863x474.png 424w, https://substackcdn.com/image/fetch/$s_!--mg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32aa96df-c320-4c2f-ab00-8473a45215c9_863x474.png 848w, https://substackcdn.com/image/fetch/$s_!--mg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32aa96df-c320-4c2f-ab00-8473a45215c9_863x474.png 1272w, https://substackcdn.com/image/fetch/$s_!--mg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32aa96df-c320-4c2f-ab00-8473a45215c9_863x474.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!--mg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32aa96df-c320-4c2f-ab00-8473a45215c9_863x474.png" width="863" height="474" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/32aa96df-c320-4c2f-ab00-8473a45215c9_863x474.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:474,&quot;width&quot;:863,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!--mg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32aa96df-c320-4c2f-ab00-8473a45215c9_863x474.png 424w, https://substackcdn.com/image/fetch/$s_!--mg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32aa96df-c320-4c2f-ab00-8473a45215c9_863x474.png 848w, https://substackcdn.com/image/fetch/$s_!--mg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32aa96df-c320-4c2f-ab00-8473a45215c9_863x474.png 1272w, https://substackcdn.com/image/fetch/$s_!--mg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32aa96df-c320-4c2f-ab00-8473a45215c9_863x474.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Companies realize that publishers aren&#8217;t the best at getting in touch with lots of advertisers to get as many goats as possible for their ads &#8211; and that they don&#8217;t need to be a publisher to represent publisher inventory.&nbsp; Ad Networks are born &#8211; people who live to do nothing but sell ad space and don&#8217;t have to worry about pesky things like writing or creating things of tangible value to your average human.</p><p><strong>Phase 4 - Hell</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XLXk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F363d80e8-2674-4670-a5d7-d7aae6f24ca8_1097x584.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XLXk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F363d80e8-2674-4670-a5d7-d7aae6f24ca8_1097x584.png 424w, https://substackcdn.com/image/fetch/$s_!XLXk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F363d80e8-2674-4670-a5d7-d7aae6f24ca8_1097x584.png 848w, https://substackcdn.com/image/fetch/$s_!XLXk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F363d80e8-2674-4670-a5d7-d7aae6f24ca8_1097x584.png 1272w, https://substackcdn.com/image/fetch/$s_!XLXk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F363d80e8-2674-4670-a5d7-d7aae6f24ca8_1097x584.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XLXk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F363d80e8-2674-4670-a5d7-d7aae6f24ca8_1097x584.png" width="1097" height="584" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/363d80e8-2674-4670-a5d7-d7aae6f24ca8_1097x584.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:584,&quot;width&quot;:1097,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!XLXk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F363d80e8-2674-4670-a5d7-d7aae6f24ca8_1097x584.png 424w, https://substackcdn.com/image/fetch/$s_!XLXk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F363d80e8-2674-4670-a5d7-d7aae6f24ca8_1097x584.png 848w, https://substackcdn.com/image/fetch/$s_!XLXk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F363d80e8-2674-4670-a5d7-d7aae6f24ca8_1097x584.png 1272w, https://substackcdn.com/image/fetch/$s_!XLXk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F363d80e8-2674-4670-a5d7-d7aae6f24ca8_1097x584.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Phase 4 is known as waterfalling &#8211; where ad networks realize it&#8217;s way easier and faster to scale up their business if they deal with each other instead of dealing with those annoying advertisers and publishers.&nbsp; This is primarily driven by a lack of internal liquidity &#8211; it&#8217;s difficult to scale up supply and demand at the same time within a single network, and easy to extend your liquidity crisis to another ad network (who has lots of scale) instead of trying to keep adding more advertisers and publishers.&nbsp; This is where every network starts working with every other network using ad tags, and this is the environment in which programmatic was born.</p><p><strong>Phase 5 - The birth of RTB, RMX</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HALO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F118474f8-f7c9-4976-9002-be6c3d0bdbc1_721x396.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HALO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F118474f8-f7c9-4976-9002-be6c3d0bdbc1_721x396.png 424w, https://substackcdn.com/image/fetch/$s_!HALO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F118474f8-f7c9-4976-9002-be6c3d0bdbc1_721x396.png 848w, https://substackcdn.com/image/fetch/$s_!HALO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F118474f8-f7c9-4976-9002-be6c3d0bdbc1_721x396.png 1272w, https://substackcdn.com/image/fetch/$s_!HALO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F118474f8-f7c9-4976-9002-be6c3d0bdbc1_721x396.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HALO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F118474f8-f7c9-4976-9002-be6c3d0bdbc1_721x396.png" width="721" height="396" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/118474f8-f7c9-4976-9002-be6c3d0bdbc1_721x396.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:396,&quot;width&quot;:721,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!HALO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F118474f8-f7c9-4976-9002-be6c3d0bdbc1_721x396.png 424w, https://substackcdn.com/image/fetch/$s_!HALO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F118474f8-f7c9-4976-9002-be6c3d0bdbc1_721x396.png 848w, https://substackcdn.com/image/fetch/$s_!HALO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F118474f8-f7c9-4976-9002-be6c3d0bdbc1_721x396.png 1272w, https://substackcdn.com/image/fetch/$s_!HALO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F118474f8-f7c9-4976-9002-be6c3d0bdbc1_721x396.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>You&#8217;re welcome for the worst graphic in history &#8211; but you get my point.&nbsp; Right Media Exchange was an environment where instead of pinging all your network partners in a line, as depicted in waterfall hell, you pinged all of them at once and everyone cleared in this lovely unified auction inside of Right Media.</p><p><strong>Does this sound familiar?&nbsp; Because it should</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Gn-S!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3acbf00a-30b5-4372-93d8-d2a89d4972c4_888x499.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Gn-S!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3acbf00a-30b5-4372-93d8-d2a89d4972c4_888x499.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Gn-S!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3acbf00a-30b5-4372-93d8-d2a89d4972c4_888x499.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Gn-S!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3acbf00a-30b5-4372-93d8-d2a89d4972c4_888x499.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Gn-S!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3acbf00a-30b5-4372-93d8-d2a89d4972c4_888x499.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Gn-S!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3acbf00a-30b5-4372-93d8-d2a89d4972c4_888x499.jpeg" width="888" height="499" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3acbf00a-30b5-4372-93d8-d2a89d4972c4_888x499.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:499,&quot;width&quot;:888,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Always Has Been Meme | Always has been. It's ad networks? | image tagged in memes,always has been | made w/ Imgflip meme maker&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Always Has Been Meme | Always has been. It's ad networks? | image tagged in memes,always has been | made w/ Imgflip meme maker" title="Always Has Been Meme | Always has been. It's ad networks? | image tagged in memes,always has been | made w/ Imgflip meme maker" srcset="https://substackcdn.com/image/fetch/$s_!Gn-S!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3acbf00a-30b5-4372-93d8-d2a89d4972c4_888x499.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Gn-S!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3acbf00a-30b5-4372-93d8-d2a89d4972c4_888x499.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Gn-S!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3acbf00a-30b5-4372-93d8-d2a89d4972c4_888x499.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Gn-S!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3acbf00a-30b5-4372-93d8-d2a89d4972c4_888x499.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>You see, history started with disaggregated demand and supply integrated in a shitty way (waterfalling), except the people doing the buying and selling were ad networks.&nbsp; So Right Media created a way for all of the ad networks to sell simultaneously to one another.</p><p><strong>We have entered this phase, precisely, once again &#8211; except instead of the ad networks being the ones who want to transact simultaneously, it&#8217;s the publishers, exchanges, and DSPs.&nbsp; And instead of RMX, it&#8217;s prebid.js.</strong></p><p>Welcome to the brunt of my article.&nbsp; In the interest of brevity, here are the next steps :&nbsp;</p><ol><li><p>After RMX was born, Ad Networks became a commodity.&nbsp; They needed to figure out a pitch.</p></li><li><p>They realized that they could sell to advertisers or publishers more effectively by convincing them &#8220;I&#8217;m on your side!&nbsp; It&#8217;s my job to make YOU as much money as possible.&#8221;&nbsp;&nbsp;</p></li><li><p>This pitch works.&nbsp; This pitch works because these people were trading CPC agency budgets, and performance was a commodity (read : didn&#8217;t exist, this was garbage).&nbsp; This is where ad tech starts to die, and while this is a small bullet point in this article, it&#8217;s a really really important one.</p></li><li><p>SSPs realize it&#8217;s much easier to sell directly to this new type of ad network, DSPs, on a publisher&#8217;s behalf than it is to actually manage a publisher&#8217;s relationship with their own ad networks.&nbsp; They all deprecate their publisher ad network management products.  Also DSPs don&#8217;t want to bother with pub stuff.</p></li><li><p>The terms SSP and Exchange become interchangeable.&nbsp; We enter a gross phase of ad tech middle men where both SSP and DSP are taking as much in fees as possible.&nbsp; Remember RocketFuels 50% margins?&nbsp; Ever seen Pubmatic&#8217;s 30%+ margins on S2S sourced inventory?&nbsp; And they did like, no work, other than stand up a few OpenRTB integrations</p></li><li><p>Prebid comes along to help publishers manage their relationships with Ad Exchanges &#8211; the dominoes begin to fall</p></li></ol><p><strong>And this is where we are today</strong>.&nbsp; Ad Tech is like a wave function that has peaks and troughs.&nbsp; At the peaks, you have a bunch of different companies doing things and managing one another.&nbsp; At the trough, a new disruptive technology emerges that commoditizes and flattens ad tech and you don&#8217;t have companies managing companies anymore, you fewer players and they work with each other simultaneously instead of synchronously/one at a time.</p><p>We are experiencing a flattening right now.&nbsp; And this is probably the most necessary flattening that&#8217;s ever happened in independent ad tech &#8211; because walled garden ecosystems have emerged that simply perform better than this monstrosity that I&#8217;ve been describing for a bazillion paragraphs.&nbsp;&nbsp;</p><p><strong>Why do walled gardens perform better than this mess?</strong></p><ol><li><p>Improved Optimization &#8211; when a system is ingesting the publisher inventory from the client, interpreting the signals itself, the optimization works better</p></li><li><p>No Asymmetry of Information &#8211; walled gardens are aware of how well a piece of inventory is performing for a campaign <strong>and</strong> what the goals of that campaign are.&nbsp; By knowing the goals of the campaign, they know what price the advertiser would be willing to pay, and therefore the &#8220;maximum expected value yield&#8221; (MEXVY) which they can play with to pay themselves.&nbsp; They also know, generally, how much their inventory costs, because they&#8217;re aware of the market for it (it&#8217;s their inventory!)</p></li><li><p>Fee Flexibility &#8211; as a result of #1 and #2, walled gardens can take dynamic revshares.&nbsp; Within any modern bidding systems, there are two competing metrics &#8211; MEXVY (maximum expected value yield, or the expected performance of a campaign backed into a bid) and the ECP (expected clear price, or how much they think the inventory will cost based on historical market conditions).&nbsp; The delta between these two numbers represents the maximum margin a buyer can take.&nbsp; <strong>Sometimes this number could be gigantic, like 50%+, and sometimes this number could be tiny, like 1% &#8211; but being able to dynamically deliver it is the foundation of a high margin successful advertising business.</strong></p></li></ol><p>Point number 3 is by far the most important.&nbsp; It&#8217;s the most important because in the modern DSP SSP ecosystem it is <strong>impossible</strong> &#8211; Prebid/GAM has the best ECP data, SSPs have &#8220;okay&#8221; ECP data, and DSPs have all the MEXVY data, and therefore the margin optimization that <em>needs</em> to occur for a system to be competitive in the auction <em>cannot</em>.&nbsp; Because of this, advertisers miss out on inventory that would perform for their campaigns, publishers don&#8217;t get money they could be getting, and nothing scales and nothing works as well as walled gardens.&nbsp; And don&#8217;t get me started on DSPs and SSPs trying to do their own dynamic margin management in this mess, which they do, and everyone loses except them.  <strong>This is why modern ad tech is &#8220;dying.&#8221;</strong></p><p><strong>But this is all changing now</strong>.&nbsp; This is changing because the separate layers that were born in inefficient post-RMX ad tech land are being rendered unnecessary by Prebid.&nbsp; Prebid.js is the new Right Media &#8211; providing a central location for all buyers to bid on and assess the performance of their inventory.&nbsp; But it&#8217;s RMX on Steroids &#8211; because Prebid obviates the need for a management layer (the SSP), by taking something that was a siloed tech platform problem (buyer-of-my-stuff management) and turns it into an open source function.&nbsp;&nbsp;Now, this also would&#8217;ve been solved over time on Right Media, like it was on AppNexus, if RMX and AppNexus started working with publishers and running their own DSP, which is the case now on Xandr and was always a technology capability in both platforms.  It&#8217;s also why I think buy microsoft stock?</p><p><strong>The Rebirth of the Ad Network</strong></p><p>What&#8217;s going to happen next, or should happen next, is SSP fees will be ground into the dirt (maybe a flat CPM based fee?&nbsp; I pitched this at RTK, nobody wanted it, but maybe i was just early) or SSPs will go away.&nbsp; DSPs will begin buying directly from publishers or publisher proxies like prebid management companies, because there&#8217;s basically zero friction for them to do the integrations now that Prebid is so standardized, especially if PBS catches on, and DSPs will become ad networks once again with the sell side managed by open source software.</p><p>This would be a huge, huge win for everyone.&nbsp; Now DSPs get to be Ad Networks like the walled gardens, they have direct access to publisher inventory and can build more meaningful performance signals and do proper ECP MEXVY margin management, and they should be able to capture more market share from Google and FB.&nbsp; Please god like this happen as soon as possible.</p><p><strong>In conclusion, TLDR</strong></p><ol><li><p>Prebid needs to usher in an era of Advertiser and Publisher collaboration.&nbsp; What I mean by this is performance feedback loops &#8211; publishers need to know if their inventory is performing for campaigns or not, and bidders need to be ad networks with dynamic margin control.</p></li><li><p>Performance needs to be the determinant of pricing &#8211; nothing else.&nbsp; A free market where high performing inventory is properly valued is the best possible outcome for all publishers.&nbsp; We know that CPMs in this environment are high, as facebook CPMs in general trounce the programmatic CPMs attained by any publisher right now.</p></li><li><p>Advertisers need to start optimizing to actual performance so they stop getting taken advantage of by middle men.&nbsp; Stop doing &#8220;branding&#8221; shit.&nbsp; This is another hill I will die on.</p></li><li><p>If all this comes to pass, we will have an efficient prebid facilitated auction where bidding platforms buy directly from publishers.</p></li><li><p>Please, don&#8217;t talk about SSPs and DSPs needing to &#8220;protect the interests&#8221; of their clients.&nbsp; That kind of thinking is what screwed us in the first place, along with dumb agencies allowing their money to get stolen by middle men.</p></li><li><p>Prebid Management Companies are for all intents and purposes publishers.&nbsp; SSPs are going to buck and try to hurt them, but they&#8217;re good horses to bet on long term.</p></li><li><p>SSPs will either go away or will fundamentally change &#8211; and frankly, are probably unnecessary with Prebid Management companies aggregating small publishers and prebid itself providing all the relevant and necessary functionality.</p></li><li><p>I also love ad networks, lol.</p></li></ol><p></p><p><strong>A Few Caveats before you @ me : </strong></p><ol><li><p>SSPs could gather MinBidToWin (MBTW) data from GAM and Prebid and pass this along to DSPs.  This would help a lot.  But like&#8230;DSPs could also easily retrieve this information themselves.  This is still in the works.</p></li><li><p>I&#8217;m not trying to hate on anyone &#8212; but there are too many companies doing what can be done by one with relative ease in the value chain right now.  Especially when Prebid can centralize just about everything we could possibly need it to, and more, and could probably even build a superior auction environment to Facebook and Google.</p></li></ol><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Gareth Hates AdTech is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[A Publisher's Guide To Latency]]></title><description><![CDATA[Yet Another Stupid Latency Article]]></description><link>https://www.garethhatesadtech.com/p/a-publishers-guide-to-latency</link><guid isPermaLink="false">https://www.garethhatesadtech.com/p/a-publishers-guide-to-latency</guid><dc:creator><![CDATA[Gareth Glaser]]></dc:creator><pubDate>Thu, 02 Nov 2023 11:34:04 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!w52A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b37a4d0-746d-4868-b457-9baa5c4e50ff_480x360.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome</p><p>Disclaimer : this article is very pub-focused, and relatively technical (but I try to make it easy to understand).&nbsp; Might be a skipper if you&#8217;re interested in &#8220;industry wide stuff&#8221; &#8211; but still worth knowing what publishers care about for the curious.&nbsp; It&#8217;s also not written for engineers, and I probably get some of the tech stuff mildly wrong &#8211; but hopefully it sparks debate and gives folks language to make better choices in their monetization.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Gareth Hates AdTech is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Latency is the biggest boogie man in pub side ad tech.&nbsp; Seriously.&nbsp; Bigger than identity, bigger than SPO, bigger than MFA.&nbsp; But latency &#8211; oh boy &#8211; if you tell a publisher you&#8217;re adding significant latency to the page, it doesn&#8217;t matter how much you&#8217;re willing to pay them &#8211; you&#8217;re getting the boot.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!w52A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b37a4d0-746d-4868-b457-9baa5c4e50ff_480x360.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!w52A!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b37a4d0-746d-4868-b457-9baa5c4e50ff_480x360.png 424w, https://substackcdn.com/image/fetch/$s_!w52A!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b37a4d0-746d-4868-b457-9baa5c4e50ff_480x360.png 848w, https://substackcdn.com/image/fetch/$s_!w52A!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b37a4d0-746d-4868-b457-9baa5c4e50ff_480x360.png 1272w, https://substackcdn.com/image/fetch/$s_!w52A!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b37a4d0-746d-4868-b457-9baa5c4e50ff_480x360.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!w52A!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b37a4d0-746d-4868-b457-9baa5c4e50ff_480x360.png" width="480" height="360" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0b37a4d0-746d-4868-b457-9baa5c4e50ff_480x360.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:360,&quot;width&quot;:480,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!w52A!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b37a4d0-746d-4868-b457-9baa5c4e50ff_480x360.png 424w, https://substackcdn.com/image/fetch/$s_!w52A!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b37a4d0-746d-4868-b457-9baa5c4e50ff_480x360.png 848w, https://substackcdn.com/image/fetch/$s_!w52A!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b37a4d0-746d-4868-b457-9baa5c4e50ff_480x360.png 1272w, https://substackcdn.com/image/fetch/$s_!w52A!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b37a4d0-746d-4868-b457-9baa5c4e50ff_480x360.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>And this is understandable. In publishing, the core product is still a consumable media that has to be ostensibly consumed by an ostensible human.&nbsp; Interrupting that, or interfering with that, is highly problematic &#8211; publishers don&#8217;t want the users they have left coming to their sites to leave and go back to indulging their unhealthy tik tok habit.</p><p>But where there is fear there is opportunity &#8211; and a number of pundits, influencers, and less-than-responsible sales tactics have hijacked the latency boogeyman to their own end to sell products and shore up their moats.&nbsp; The goal of today&#8217;s article is to create a framework for publishers to understand latency, ask the right questions, and get a little bit closer to something remotely resembling actionable strategies for dealing with the relationship between your tech and your page.</p><p><strong>New Latency Definitions</strong></p><p>Let&#8217;s get started with definitions &#8211; what is latency?&nbsp; Dictionaries are worthless with web slang, so I&#8217;ll give it a shot &#8211; Latency means time.&nbsp; High latency, or large amounts of latency, imply that something is taking a long time &#8211; low amounts of latency, or low latency, means that things happen quickly.&nbsp; Google kind of corroborates this &#8211; the top search result is&nbsp;</p><blockquote><p>Computer and OS latency is the combined delay between an input or command and the desired output. Contributors to increased computer latency include insufficient data <a href="https://www.techtarget.com/whatis/definition/buffer">buffers</a> and mismatches in data speed between the microprocessor and input/output (I/O) devices.</p></blockquote><p>This sounds about right &#8211; like when a video game has bad &#8220;lag&#8221; between input and action, or when a user asks a website to load (!) and it takes time for it to actually come up.</p><p>In the interest of the topic at hand, this computing concept actually applies in two ways to ad tech and publishing.&nbsp; These ways are not independent, but still need to be distinct :&nbsp;</p><ol><li><p>Website Load Latency &#8211; how much time between when a user requests the website to do some kind of thing on there and the website actually loads/does the thing</p></li><li><p>Ad Load Latency &#8211; how much time between when the ads on a website start to load and when the ads render on the page</p></li></ol><p>These two ways, for most people, are collapsed into one.&nbsp; If you look up latency moaning on linkedin, 9 times out of 10 they&#8217;re not distinguishing between the two, when they really, really, really should be.&nbsp; This is because their impacts are very different.&nbsp; One impacts user experience, and all the things that are downstream of that, like SEO and time on site, and the other impacts ad delivery, and all of the things that are downstream of that, like ad revenue and ad performance.</p><h1>Website Load Latency</h1><p>Website load latency is the primary topic in most articles about latency.&nbsp; The genesis for people caring about it is twofold &#8211; 1. There&#8217;s a supposition that there&#8217;s a relationship between user experience and revenue (ha ha ha), and 2. Organic search depends on sites loading quickly.&nbsp; We&#8217;re going to park #1 and not address it in this article, as I will address it in the future, but #2 really deserves examination.</p><p>The notion that your website&#8217;s latency affects your Search Engine Optimization isn&#8217;t conjecture &#8211; it comes straight from Google.&nbsp; Google even provides a framework by which they assess how well websites load, something called Core Web Vitals, documented at length here&nbsp;</p><p><a href="https://support.google.com/webmasters/answer/9205520?hl=en">https://support.google.com/webmasters/answer/9205520?hl=en</a></p><p>In their description, they make CWV sound like a panacea &#8211; with case studies like this :&nbsp;</p><ul><li><p>When a site meets the Core Web Vitals thresholds, <a href="https://blog.chromium.org/2020/05/the-science-behind-web-vitals.html">research showed</a> that users were 24% less likely to abandon page load.</p></li><li><p>With each 100ms reduction in Largest Contentful Paint (LCP), web conversion rate for <a href="https://web.dev/farfetch/">Farfetch</a> increased by 1.3%.</p></li><li><p>Reducing Cumulative Layout Shift (CLS) by 0.2 led <a href="https://web.dev/yahoo-japan-news/">Yahoo! JAPAN</a> to a 15% increase in page views per session, 13% longer session durations, and a 1.72 percentage point decrease in bounce rate.</p></li><li><p><a href="https://web.dev/netzwelt/">Netzwelt</a> improved Core Web Vitals and saw advertising revenues increase by 18% and page views by 27%.</p></li><li><p>Reducing CLS from 1.65 to 0 significantly uplifted domain rankings globally for <a href="https://web.dev/vitals-business-impact/#redbus">redBus</a>.</p></li></ul><p>What publisher wouldn&#8217;t read these things and these google invented acronyms and make CWV their Bible?&nbsp; And there&#8217;s definitely something to it &#8211; a website that doesn&#8217;t load creates an unpleasant experience for users, and that should increase bounce rate.</p><p>The components of CWV (at the time of writing this article) are as follows :&nbsp;</p><ul><li><p><strong><a href="https://web.dev/articles/lcp">Largest Contentful Paint (LCP)</a></strong>: measures <em>loading</em> performance. To provide a good user experience, LCP should occur within <strong>2.5 seconds</strong> of when the page first starts loading.&nbsp; Layman&#8217;s terms : How fast do all of the parts of your site load?</p></li><li><p><strong><a href="https://web.dev/articles/fid">First Input Delay (FID)</a></strong>: measures <em>interactivity</em>. To provide a good user experience, pages should have a FID of <strong>100 milliseconds</strong> or less. Layman&#8217;s terms : If I click a button, does stuff happen?</p></li><li><p><strong><a href="https://web.dev/articles/cls">Cumulative Layout Shift (CLS)</a></strong>: measures <em>visual stability</em>. To provide a good user experience, pages should maintain a CLS of <strong>0.1.</strong> or less.&nbsp; Layman&#8217;s terms : How much does your site wiggle around after the initial load?</p></li></ul><p>&nbsp;And another one called INP on the way that we don&#8217;t need to cover.</p><p><strong>LCP / FID / CLS</strong></p><p>So let&#8217;s start with layman&#8217;s terms for LCP &#8211; &#8220;how fast does your website load&#8221; &#8211; and things that break this will also probably affect FID and INP.&nbsp; This metric is built around <strong>content</strong> elements, so with this metric google is really concerned with the content of your website itself.&nbsp; This means that any advertising technology, or any technology in general, that slows down the rendering of your content will hurt your LCP score.&nbsp; For me, in my experience with websites, a few things jump to mind that are ad-tech relevant here :&nbsp;</p><ol><li><p>Slow Delivery of stuff &#8211; don&#8217;t work with crappy hosting companies, compress whatever you can, your vendors that your website lives in are not a place to cheap out</p></li><li><p>Blocking javascript (this also impacts FID) &#8211; in the world of Ad Tech, all javascript from ad tech providers should be async.&nbsp; Nobody should be loading synchronous javascript on your page.&nbsp; What are sync and Async you ask? See below</p></li><li><p>Too much crappy javascript &#8211; a lot of crappy javascript will block up the main thread, which you can think of as the &#8220;brain&#8221; that&#8217;s making all the code on the page execute.&nbsp; This is what you get when you pay php developers on fiverr to add &#8220;more stuff&#8221; to your website.</p></li><li><p>Loading too much stuff &#8211; this is when you try to load too many things at once, or from too many different people.</p></li></ol><p>All of these things are considerations when it comes to optimizing for LCP, FID, and INP as well.&nbsp; These are all &#8220;high level things&#8221; that will slow down your website in general.&nbsp; <strong>However, it is important to note, that all technologies contribute to these issues, not just ad tech.&nbsp; You can absolutely tank your CWV without any ad tech on the page at all by committing any of the above 4 sins in infinite creative ways.</strong></p><blockquote><p><strong>Sync vs Async in Gareth&#8217;s horribly butchered non technical lingo</strong></p><p>Synchronous javascript is javascript that has to execute in a particular synchronous order &#8211; ie. sync JS has to execute in order for things after it to execute.&nbsp; If it breaks, it breaks all the things after it.&nbsp; Old school header bidding was sync FYI</p><p>Async javascript can execute simultaneously, if it breaks it will not break the things loading after it.</p><p>As I prepare my inbox for a barrage of hate mail from developers, let&#8217;s try to finish this section.</p></blockquote><p><strong>CLS</strong></p><p>Cumulative layout shift is a relatively self explanatory one &#8211; how much is stuff shifting around in your layouts when users are interacting with the page.&nbsp; I don&#8217;t need to dive too deep into this one &#8211; feel free to read in crazy detail &#8211; <a href="https://web.dev/articles/cls">https://web.dev/articles/cls</a> &#8211; but TLDR, don&#8217;t let your engineers make your pages wiggle when humans click buttons or let your ad tech vendors move your shit.&nbsp; Wiggling is bad, it makes people click things accidentally and get angry.&nbsp;&nbsp;</p><p><strong>Ad Tech Questions</strong></p><p>Now that we have an incredibly cursory understanding of CWV, let&#8217;s talk about it in the context of Ad Tech.</p><p>In summary, <strong>we don&#8217;t want vendors to unnecessarily damage our CWV score.&nbsp; Some damage is inevitable, as they are additional code on the page, but you can absolutely ask them questions that should minimize the damage or at least make you aware of it. </strong>&nbsp;&nbsp;Please find my question guide below :&nbsp;</p><ol><li><p>Can I load you asynchronously / iframed / do you do anything that could block the page executing?&nbsp; They should let you run them on a friendly iframe, or they should guarantee they&#8217;re not going to block the page.&nbsp; That or they&#8217;ll just lie to you, but then you can get angry and ask for money.&nbsp; <strong>CWV bullet points 1+2</strong></p></li><li><p>How many network requests do you expect to require?&nbsp; Tech providers need to call out to their servers or others to do stuff &#8211; but how many is an important question.&nbsp; Expect that the answer will sometimes/almost always be &#8220;we don&#8217;t know.&#8221;</p><ol><li><p>Tech Providers &#8211; ie. utilities &#8211; should be able to tell you this on a per session basis.&nbsp; This will help you gauge the impact on <strong>CWV bullet point 4</strong></p></li><li><p>Ad Tech Monetizers are going to need to call lots of people, with some of them outside of their control.&nbsp; They <strong>should</strong> however be able to tell you how many people they&#8217;re <strong>directly invoking</strong>.&nbsp; Is it 2?&nbsp; Is it 50?&nbsp; They need to be able to give you an answer, even though the direct invoking number will inevitably be lower than the final number as all of the programmatic hullabaloo kicks in. I could write an article about this one alone, maybe I will.</p></li></ol></li><li><p>Are you going to add things to my page and move stuff around? This is for CLS &#8211; we can&#8217;t have people expanding ads up and down, popping things in and out of the page (*ahem* outstreamvideo providers), and ads moving divs up or down (I&#8217;m looking at you all &#8220;rich&#8221; media).&nbsp; These things will all hurt your CLS score, and make your pages look crummy.&nbsp; Don&#8217;t let people do this.</p></li></ol><p>All of this being said, at the end of the day, how much you <em>actually</em> care about these things is up to you.&nbsp; Are you super dependent on organic traffic from Google specifically?&nbsp; A 10 point hit to your CWV score might materially damage your revenue.&nbsp; Are you a website with tons of direct and subscription traffic that doesn&#8217;t so badly depend on Google?&nbsp; Maybe you don&#8217;t care, and you reach out and grab that beautiful outstream butterfly.&nbsp;&nbsp;</p><p>This is not a one size fits all thing.&nbsp; Whether or not you care about page latency I actually don&#8217;t believe is an absolute &#8211; because there is one truth that&#8217;s hard to fight, and that&#8217;s that additional ad tech providers both add latency and make more money.&nbsp; The question is how much money is enough to justify a bunch of additional code and page-load &#8211; and that&#8217;s up to each publisher to answer.</p><h1>What is Ad Stack Latency?</h1><p>The second type of latency (and the one that I frankly know better) is ad stack latency.&nbsp; Ad stack latency, for the purposes of this article, refers to the speed with which ads render to the page.&nbsp; This used to be wildly variable &#8211; in the time of synchronous javascript tag waterfalls, it was anyone&#8217;s guess how fast ads would get to the page.&nbsp; Now, with the advent of Prebid.js, we have a wonderful centralized path to control our ad render speed (as long as you don&#8217;t add a bunch of stupid outside of prebid widgets to the page that wreak havoc, which I know you will).</p><p>A quick conceptual recap &#8211; Prebid is a javascript auctioning system for ads.&nbsp; Prebid commits every cardinal sin mentioned in the above web site latency list of warnings &#8211; well at least most of them, it&#8217;s not blocking javascript anymore (but it used to be!) &#8211; it has to load a giant resource file from a maybe external place, it issues a bunch of calls to third party servers, it has so much javascript in it that it requires a meaningful team of people just to wrangle old code &#8211; but goshdarnit, it&#8217;s the best thing we have!</p><p>And frankly, the alternative would be much worse.&nbsp; Having a single application to police, a single application to integrate with our existing site experience javascript and GAM, is actually wonderful compared to the alternative where we&#8217;re managing tons of different providers on the page.&nbsp; Prebid actually has rules about what third parties are about to load &#8211; and it polices them.&nbsp;&nbsp;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!U17x!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0f4f7d5-8134-40f2-aea9-4644eb10597b_360x261.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!U17x!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0f4f7d5-8134-40f2-aea9-4644eb10597b_360x261.png 424w, https://substackcdn.com/image/fetch/$s_!U17x!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0f4f7d5-8134-40f2-aea9-4644eb10597b_360x261.png 848w, https://substackcdn.com/image/fetch/$s_!U17x!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0f4f7d5-8134-40f2-aea9-4644eb10597b_360x261.png 1272w, https://substackcdn.com/image/fetch/$s_!U17x!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0f4f7d5-8134-40f2-aea9-4644eb10597b_360x261.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!U17x!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0f4f7d5-8134-40f2-aea9-4644eb10597b_360x261.png" width="360" height="261" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e0f4f7d5-8134-40f2-aea9-4644eb10597b_360x261.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:261,&quot;width&quot;:360,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!U17x!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0f4f7d5-8134-40f2-aea9-4644eb10597b_360x261.png 424w, https://substackcdn.com/image/fetch/$s_!U17x!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0f4f7d5-8134-40f2-aea9-4644eb10597b_360x261.png 848w, https://substackcdn.com/image/fetch/$s_!U17x!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0f4f7d5-8134-40f2-aea9-4644eb10597b_360x261.png 1272w, https://substackcdn.com/image/fetch/$s_!U17x!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0f4f7d5-8134-40f2-aea9-4644eb10597b_360x261.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>And this means that as long as all of our partners are running through prebid, or at least substantially all of them, we have a way to control the critical path by which ads get to our page.&nbsp; We can control the speed by controlling the participants in prebid and how they participate.&nbsp; We can also control the network requests on the page by adding players individually and observing their behavior.</p><h2>Does Ad Stack Latency Matter?</h2><p>That being said, I&#8217;m dubious that anyone is really doing a good job of measuring whether or not ad stack latency <em>matters</em>.&nbsp; People freak out when their &#8220;timeouts are set too high&#8221; or when their &#8220;auctions are too slow&#8221; &#8211; but why?&nbsp; A slow prebid auction, and bad ad stack latency really has two primary negative ramifications I can think of :&nbsp;</p><ol><li><p>Breakage &#8211; ad units that don&#8217;t have time to render before the user navigates away.&nbsp; This leads to lost revenue due to fewer impressions</p></li><li><p>Decreased Ad Performance &#8211; whatever metric you want, if ads are slower to get there it&#8217;s probably going to be worse.&nbsp; Viewability, CTR, etc.</p></li></ol><p>But that's <em>it</em>.&nbsp; And guess what &#8211; we can measure both of these things pretty easily by A/B testing our setups, and in my experience, you have to make <em>major</em> modifications and really fly off the handle to meaningfully affect these things with your ad stack.&nbsp; 9 times out of 10, these metrics are far more materially affected by bad Web Page Latency than they are by the ad stack itself.&nbsp; So as we walk through the different components of ad stack latency, specifically with regards to Prebid, let&#8217;s keep in mind that making a lot of these settings too long might not actually make that meaningful of a difference in your ad stack latency, while making timeouts too short can absolutely negatively affect monetization.</p><h2>Ad Speed Latency Part 1 - Timeouts</h2><p>Prebid gives its users lots of controls over the timing of things.&nbsp; Off hand, I remember at least 3 different timeouts :&nbsp;</p><ol><li><p>Failsafe Timeout&nbsp; &#8211; hardcode JS timeout for the total auction, after this amount of time call GAM.&nbsp; Killswitch.</p></li><li><p>Real-Time Data Module (my favorite module) Timeout &#8211; how long are real time data providers allowed to respond.&nbsp; Real time data providers are companies that inject data into the auction, like user IDs or data providers.</p></li><li><p>Prebid/PBS Auction Timeout &#8211; how long are bidders in your auction allowed to respond</p></li></ol><p>The sum of the latter 2 timeouts is your controlled &#8220;auction&#8221; timeout &#8211; these are the method by which you control how quickly ads get to your page.&nbsp; Make your timeouts short and auction participants will not get their data into the auction &#8211; more often than not, this means you make less money.&nbsp; Make your timeouts too long, and supposedly ad KPIs and ad impression counts will suffer.</p><p>I strongly, strongly, strongly recommend testing higher timeouts here.&nbsp; One of the top mistakes I see people make is arbitrarily selecting their timeout and then not A/B testing it or at least _trying_ a higher timeout and seeing if they make more money (you really should be A/B testing everything without hurting other ad KPIs (viewability, breakage).&nbsp; You might need different timeouts by device or geo &#8211; this is due to breakage on slow devices &#8211; but still test it, sometimes a slick website loads everywhere pretty well.</p><h2>Ad Speed Latency Part 2 - Network Requests and Partner Count</h2><p>In addition to your timeouts, which are the mechanics of your auction, publishers also have control over the number of participants in the auction.&nbsp; This is an important one &#8211; this ties directly back to website page speed, and it actually affects both web latency and auction latency at the same time.&nbsp; The number of participants maps not-so-cleanly at all to the number of network requests issued from the browser.</p><p>What is a network request?&nbsp; In layman&#8217;s terms, it's when your browser reaches out to a server to get some kind of information back.&nbsp; It could be data, it could be bids, it could be an image, it could be another website &#8211; but your browser is talking to someone.&nbsp; To put it in perspective, at the time of writing this article, on a random page load, cnn.com had over 600 requests in the first 10 seconds of the page loading, and they&#8217;re still comin&#8217;.</p><p>Web pages load a _ton_ of network requests.&nbsp; But people freak out about them &#8211; and the only explanation I can come up with is that they don&#8217;t understand how latency in auctions and on pages actually works.</p><p>To add an additional prebid participant, you are typically adding a single additional network request (now that everyone SHOULD be on single request architecture.&nbsp; Ask your bidders this.&nbsp; If they&#8217;re not running SRA, they should be, and they&#8217;re demons for not doing so).&nbsp; Ask your data providers this &#8211; how many requests will you add to my auctions?&nbsp; How fast do you respond on average?</p><p>If someone is adding 1 request to your ad stack, and they respond in under 500ms, the likelihood that they&#8217;re going to have a material negative impact on <em>anything</em> is incredibly low.&nbsp; Cnn.com, that blue chip fancy website, is now over 1500 network requests in the time between when I wrote the last set of requests and writing this sentence now.&nbsp; Adding a bidder who adds 1 request per prebid auction (and you should only have 1 global prebid auction per set of ads, more on this in a minute) is just not going to break the bank.&nbsp; If they&#8217;re a slow responder they might consume more of your timeout and slow down your ads by a few hundred ms &#8211; but modern tech players shouldn&#8217;t do this.</p><h2>Ad Speed Latency Part 3 - Widgets and Third Parties</h2><p>Everything I&#8217;ve written above is true for Prebid.&nbsp; You will get your ads to the page quickly, you have total control, and life is peachy when prebid is in charge of the ads on your page.&nbsp;&nbsp;</p><p>But there&#8217;s a pesky problem in publishing &#8211; not everything runs through prebid.&nbsp; This presents us with an issue.&nbsp; By hardcoding tags on the page, you have tech on your pages that is no longer subject to the code review by the prebid team, and my goodness do people do horrible things.</p><p>Wrap up their own instance of prebid and run another auction on your site?&nbsp; Yup, almost everyone does it.</p><p>Add blocking javascript to the page and kill CWV?&nbsp; Yup, it&#8217;s happening, and like, everywhere.</p><p>Issue a metric bazillion network requests in the course of trying to hold their auctions? You betcha.</p><p>Third party ad widgets that run outside of Prebid are the number one thing that I see break publisher pages.&nbsp; These always have some kind of shtick, they&#8217;re sometimes direct sold, and more often than not when something is direct sold it&#8217;s doing something invasive.&nbsp; So I would ask, if you&#8217;re a publisher, ask all of the questions above of every third party widget on the page.&nbsp; Who are you calling?&nbsp; How many calls?&nbsp; Was your code written by a high school junior in Jakarta?&nbsp; And what exactly do you do to monetize your widget.</p><h1>Conclusion</h1><p>Web Page latency is complex, difficult to understand, difficult to measure (Google&#8217;s CWV measurement tool hates Google&#8217;s own ad library gpt.js and says it&#8217;s slowing pages down meaningfully, lol).&nbsp;&nbsp;</p><ul><li><p>It is possible to have a fast website that runs big ol&#8217; ad stacks.&nbsp; More than possible.&nbsp;&nbsp;</p></li><li><p>Your prebid timeouts are probably shorter than they could be, and you could probably be making more money.</p></li><li><p>You could probably work with more partners with minimal negative latency impact, as long as you&#8217;re intelligent and ask them the right questions.</p></li><li><p>How your ad stack is integrated with your page is probably as important as the ad stack itself &#8211; don&#8217;t be sloppy with your JS.</p></li><li><p>Third party widget vendors might be wreaking havoc on :gestures widely:.&nbsp; Scrutinize them, make sure they&#8217;re adding real value and lots of money if they&#8217;re going to harm your pages.</p></li><li><p>Unless you&#8217;re worried about search traffic, it&#8217;s easy to measure the impact of additional latency on Viewability and Revenue &#8211; just a/b test and scope it out.&nbsp; Maybe your site can be a little slower than you think.</p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Gareth Hates AdTech is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Bid Jammin']]></title><description><![CDATA[Dr. Bidlove - How I Learned to Stop Worrying and Love The Latency]]></description><link>https://www.garethhatesadtech.com/p/bid-jammin</link><guid isPermaLink="false">https://www.garethhatesadtech.com/p/bid-jammin</guid><dc:creator><![CDATA[Gareth Glaser]]></dc:creator><pubDate>Tue, 19 Sep 2023 19:59:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!QMzU!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9982ec53-e46c-4b94-8412-018db3d86a0a_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>There&#8217;s a lot of discussion of &#8220;Resellers&#8221; and &#8220;Supply Paths&#8221; nowadays, often with someone selling you a solution to help make things more direct or warning advertisers about some nefarious middle man trying to steal their money.</p><p>Middle men do indeed exist, this is ad tech.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Gareth Hates AdTech! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>But for all of the bellyaching, this doesn&#8217;t seem to be a situation that&#8217;s meaningfully changing outside of TTD&#8217;s OpenPath.&nbsp; I&#8217;d like to attempt to explain why &#8211; and also to explore how I deeply believe that blame is often misplaced here (stop blaming publishers you monsters) and how the current situation actually isn&#8217;t as dire as it&#8217;s made out to be.&nbsp; So strap on in, and let&#8217;s talk a walk down memory lane to explore how we ended up where we are.</p><p><strong>The Before Times - Waterfalling Display</strong></p><p>One argument I&#8217;d like to make is that the Display market is as close to a perfect market as has existed in online advertising for some time.&nbsp; A unified, open-source facilitated first price auction might not be perfect, but gosh darnit it&#8217;s better than the alternatives. What alternatives you say?&nbsp; Well, let&#8217;s discuss what Display <em>used</em> to be (and what much of video and mobile app still is, or at least was a year or two ago when I was building products for it).</p><p>Let&#8217;s start with some definitions :&nbsp;</p><p><strong>Demand</strong> - someone who represents (eventually) advertisers and wants to buy ads on a website</p><p><strong>Supply</strong> - a publisher&#8217;s website, they have ad inventory they want to sell, or someone reselling that inventory</p><p><strong>Ad Exchange</strong> - a system that aggregates integrations with buying tools via OpenRTB (do proprietary bidders still exist?&nbsp; I guess maybe&#8230;)</p><p><strong>DSP</strong> - a system that works with advertisers and agencies to place ads on websites by integrating with Ad Exchanges or with Publishers to algorithmically bid on that inventory</p><p>Now, in the before times, life was simple.&nbsp; Publishers, the supply, would work with Ad Exchanges (basically never with DSPs, but Criteo was early here and then took steps backwards, and AppNexus kind of invented the game so they don&#8217;t really count as a pure DSP) <em>synchronously</em>.&nbsp; Synchronously means that the ability to work with an exchange could only happen one at a time in a set order &#8211; supply would use a javascript ad tag to call a single exchange, that exchange would call their DSPs/Bidders, and an auction would occur.&nbsp; If that exchange didn&#8217;t buy it, normally with an arbitrary price floor band set up (again, this was a miserable, necessary use of price floors, and I think plays some of the role in people misapprehending the &#8220;necessity&#8221; of price floors in modern ad tech),  you would call the next exchange.</p><p>This was known as the waterfall &#8211; as you called an exchange, if they didn&#8217;t buy the advertising opportunity, you would call the next one.&nbsp; DSPs basically _never_ received a request for the same impression at the same time because of the synchronous nature of waterfalling &#8211; impressions could only be really sold in one place at a time.</p><p>This was great for DSPs because of <strong>fragmentation</strong>.&nbsp; They only had to compete with the other DSPs within a given exchange at once, and inventory was <em>cheap</em>.&nbsp; Combine that with second price auctions, and I think this was the heyday of DSP cheap inventory buying, to be counteracted only by the massive amount of <em>real ad fraud</em> that existed via unpoliced domain spoofing (literally, you could type &amp;domain=google.com at the end of an ad tag and exchanges would pass this in.&nbsp; I am dead serious).&nbsp;&nbsp;</p><p>My second company, RTK.io, was working on building a dynamic waterfalling adserver that monitored what inventory a given exchange was most likely to buy at a given price floor, and dynamically rearrange the order of the waterfall impression by impression.&nbsp; The idea was so good that video adservers all started doing it, and basically still do it today, because VAST and VPAID are kind of awful and for various reasons can&#8217;t escape this waterfall.  Btw &#8212; this is the original purpose of an SSP, a term now bastardized and synonymous with ad exchange &#8212; check out liftDNA or the original rubicon product, they existed to optimize and manage waterfalls.</p><p><strong>Header Bidding Murders My Product and Frees Publishers</strong></p><p>In the 2014s ish there were whispers about people placing javascript in the header of publisher&#8217;s pages and blocking the pageload until the auction completed.&nbsp; My reaction at the time was &#8220;Yeah, Right, Like any publisher will ever let you do this.&nbsp; They have to risk their entire pageload for programmatic ads? No way.&#8221;</p><p>Jokes on me, and I was running a header bidding company 8 months later.&nbsp; The reason this technology was so absurdly effective was because it achieved the most important thing a publisher could do to maximize their yield &#8211; flattening a fragmented auction.&nbsp; By having all exchanges compete at the same time, in the same place, you plugged a bunch of holes in what was a leaky waterfall bucket.&nbsp; This is because buyers are smart &#8211; they realized if they wait to buy a given impression on a given exchange, even if it was lower down in the waterfall, they got inventory that performed just as well cheaper.&nbsp; Optimizing exchange vs exchange was an incredibly important part of buy-side optimization.&nbsp; But now, in a header bidding context, because a low bid had to compete with higher bids from other systems, this waiting game opportunity ended.</p><p>This brings us to the crux of our article.&nbsp; Why does simultaneously sending a bid request to many different exchanges, ergo many different DSPs, for the same impression at the same time yield more revenue?&nbsp; I&#8217;d like to posit a few explanations, all of which I think are potentially legitimate, and all of which justify the existence of resellers and of tons of players in the supply chain, at least from a publisher&#8217;s perspective, for as long as the buy side doesn&#8217;t want to build OpenPath (and maybe even for some time afterward)?</p><p><strong>Why Does Duplication Work?</strong></p><p>In a header bidding auction, other nuances of the auction dynamic transition away from waterfalls aside, a single DSP can receive many bid requests for the exact same impression (even more if exchanges are engaging in bid jamming, which some do, which is artificial bid request duplication intra-exchange as opposed to inter-exchange.&nbsp; Yes this is real, and yes it works.&nbsp; Literally, an exchange will make fake additional bid requests for a single real one).&nbsp; And somehow this makes publishers more money.&nbsp; I&#8217;ve worked with literally hundreds of publishers, building their ad stacks, building header bidding management platforms, and I can tell you that up to a point adding additional bidders with access to real DSPs will almost always make you additional money (with diminishing returns, but those kick in at a pretty high number of exchanges).&nbsp; I&#8217;m sure some of you will want to fight me on this, but all you need to do is look at the ad stacks of some of the biggest managed services out there to know that they&#8217;ve a/b tested themselves into 10-15 client side bidders and even more server side.&nbsp; And no, I don&#8217;t care that you removed a bidder and didn&#8217;t seem to make less money.&nbsp; If you didn&#8217;t properly do it with server side session persistent A/B testing, it doesn&#8217;t count.&nbsp; I will die on this hill.</p><p><strong>Possible Explanation #1 - Distributed Computing</strong></p><p>My first explanation for why duplication works is rooted in the nature of what a DSP is.&nbsp; You see DSPs aren&#8217;t single advertisers &#8211; DSPs are massive agglomerations of hundreds of advertisers and thousands of campaigns and strategies.&nbsp; This means that at any given moment, for a given impression, within a <em>single</em> DSP, there are probably <em>hundreds</em> of eligible campaigns.</p><p>All of these campaigns have lives of their own.&nbsp; They have bid valuations associated with how many outcomes a given piece of inventory at a given time on a given user has driven for them, they have pacing considerations, they have all of the massively intricate workings of a modern advertising campaign.&nbsp; Each of these campaigns is not particularly aware of other campaigns in the same DSP.</p><p>In addition to this, the existence, the concurrent spend, and the state of each of these campaigns has to be dynamically maintained across servers all over the world, in datacenters all over the place.&nbsp; Oh and DSPs are expected to respond in under 100ms.&nbsp; Not easy.</p><p>Given that this is the case, is it such a surprise that if I hit a DSP twice, almost simultaneously, with an identical bid request, two different campaigns might come back as the winner?&nbsp; It could be pacing algorithms turning campaigns on and off.&nbsp; It could be different servers with different priorities.&nbsp; It could be any number of myriad things &#8211; but to expect consistency here is to misunderstand how DSPs actually work and the task they have laid before them.&nbsp; I&#8217;m sure some DSPs have tried to architect for this, and I&#8217;d love to hear from some DSP product leads about solving this problem in the comments below &#8211; but this explanation is rooted in the notion that IF a DSP responds differently, even for an identical impression almost simultaneously, you have now created an optimization vector for publishers.&nbsp; I can pound the DSP until it gives me the highest number.&nbsp; This works, has always worked, and we shouldn&#8217;t be surprised.</p><p><strong>TLDR &#8211; DSPs will never respond with one campaign over and over.&nbsp; The people responsible for this are DSPs.&nbsp; I can get you to pay me more money by hitting you more.</strong></p><p><strong>Possible Explanation #2 - Asymmetrical Filtering</strong></p><p>The DSP and SSP world has become awash with &#8220;optimization&#8221; solutions dedicated to traffic shaping.&nbsp; With all of the duplication we see in the marketplace, every major player out there has some kind of traffic shaping trying to optimize cost &#8211; often interfering with one another.&nbsp; Allow me to explain.</p><p><strong>Phase 1 - DSPs try to control cost</strong></p><p>One of the most expensive things in the world if you use AWS is Egress.&nbsp; AWS charges out the wazoo.&nbsp; Egress is the cost of transmitting information between servers (engineers please don&#8217;t @me i know this is a gross simplification) &#8211; or a volume based cost for sending out packets of data.&nbsp; It can be mitigated via tech stack, or by owning other parts of the pipes, but lots of people like to use AWS cuz it&#8217;s easy and lot&#8217;s of people know it.&nbsp; This means that DSPs <em>hate</em> listening and responding to traffic that they&#8217;re probably not going to buy.&nbsp; It literally costs them money, and if there&#8217;s almost no chance they&#8217;re going to buy it, they don&#8217;t want to listen to it.&nbsp; Cue solution #1 &#8211; filtering &#8211; where DSPs will literally just &#8220;not listen&#8221; to a bunch of traffic that comes from SSPs.</p><p><strong>Phase 2 - Traffic Shaping</strong></p><p>DSPs stopping listening to traffic means they spend less money, and SSPs don&#8217;t like that.&nbsp; So, in their infinite wisdom, SSPs come up with their own solution &#8211; we&#8217;re going to write machine learning that tries to predict which impressions a DSP wants to buy.&nbsp; And they do.&nbsp; And it (kind of?) works.&nbsp; I hate this because of the functional nature of it &#8211; SSPs are by proxy building an optimization algorithm that finds traffic that converts for advertisers, without actually knowing what they&#8217;re optimizing to, which creates a lot of opportunity for noise and interference.&nbsp; But this is a thing.&nbsp; Everyone does it.</p><p><strong>Phase 3 - Current State</strong></p><p>Every SSP &lt;&gt; DSP interaction is shaped by a convoluted complex mess of filtering and traffic shaping, and the likelihood that a given impression slips through consistently becomes very low.&nbsp; This means that different exchanges are going to &#8220;surface&#8221; different impressions to different DSPs, and there&#8217;s going to be highly mediocre rhyme or reason to it.&nbsp;&nbsp;</p><p>In Phase 3, the solution is simple &#8211; SEND MORE!&nbsp; By sending more, through as many connections as possible, you maximize the likelihood that your impressions make it through the filter/traffic shape ringer to the promised land of biddable impressions for a DSP.&nbsp;&nbsp;</p><p><strong>TLDR - Because DSPs control cost, they don&#8217;t listen to some of my inventory opportunities&#8217; bid requests.&nbsp; If I send more, through more places, I hit the DSP more, and I make more money.</strong></p><p><strong>Possible Explanation #3 - &#8220;Bid Salad Dressing&#8221;</strong></p><p>My third explanation for why duplication works in header bidding is related to the nature of OpenRTB itself.&nbsp; In a given openRTB auction, a bid request for a display ad unit looks like this (found by googling openRTB bid request) :&nbsp;</p><pre><code>{
    "id": "df472a5ca259ef79fec1567f17160ff545a80fbe",
    "at": 2,
    "tmax": 129,
    "imp": [{
        "id": "1",
        "tagid": "70821",
        "banner": {
            "w": 728,
            "h": 90,
            "battr": [9, 1, 2, 14018, 14014, 3, 5, 14, 13, 14005, 10, 14015, 8, 14019],
            "api": []
        },
        "iframebuster": []
    }],
    "site": {
        "id": "15756",
        "domain": "http://zoopla.co.uk",
        "name": "Zoopla",
        "cat": ["IAB21"],
        "page": "http://www.zoopla.co.uk/for-sale/details/31611794?search_identifier=e12d33a11efeb568768a845e59d51dfc",
        "publisher": {
            "id": "9208"
        }
    },
    "device": {
        "ua": "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.3; .NET4.0C; .NET4.0E; MS-RTC LM 8)",
        "ip": "192.168.1.1",
        "language": "en",
        "devicetype": 2,
        "js": 1,
        "geo": {
            "country": "GBR",
            "region": "HNS"
        }
    },
    "user": {
        "id": "64c017a3d756e2566596cc1499294d1b602c88a3",
        "buyeruid": "7be2ed3d-a245-4045-af05-f15c9771a73e",
        "ext": {
            "sessiondepth": 5
        }
    }
}</code></pre><p>As you can see there are a <em>bunch</em> of fields.&nbsp; And the exchange could add more if they wanted to.&nbsp; This is significant because the population of these fields is entirely up to the exchanges &#8211; it depends on the information they pull out of the browser, on the information they have about the user, on their third party services that map their user agents and geos, on their servers and their hosting, on all kinds of random stuff <strong>that will be different from exchange to exchange</strong>.&nbsp; This means that for a given impression, you will have tremendous inconsistency in how that advertising impression is presented to DSPs &#8211; and from the inconsistency, you have asymmetry in DSP optimization nodes.&nbsp; Now, I will say, Prebid has the opportunity to fix all of this &#8211; but until prebid is passing OpenRTB bid requests, and SSPs become dumb proxies that pass those along, we&#8217;re going to have this asymmetry, and we might still have it after that.&nbsp; This means that working with more exchanges will make you more money &#8211; higher variability in optimization nodes will lead to increased outcomes.</p><p><strong>Conclusion - RESELLERS AND DUPLICATION AREN&#8217;T A BIG DEAL AND I WANT ALL OF YOU TO STOP COMPLAINING ABOUT IT</strong></p><p>I want to double click (lol, I hate me) on that concluding thought because it&#8217;s a significant thought that underpins how I feel about all of these things.&nbsp; At the end of the day, solutions will generate more revenue for publishers that enable advertisers to optimize more effectively.&nbsp; One might read this article and think that advertisers are being injured here.&nbsp; I would actually argue the <em>exact opposite</em>.&nbsp; If a tool makes a publisher more money, it&#8217;s because either that inventory is being surfaced to buyers it would not have been surfaced to before, or it is because the additional information being surfaced to buyers is leading to improved outcomes for those buyers.&nbsp; <strong>This is a good thing.&nbsp; We want this.&nbsp; The ultimate problem for third party ad tech is how do we make it work better, not necessarily how do we make it more &#8220;efficient&#8221; from an infrastructure perspective.</strong>&nbsp;&nbsp;</p><p>Let&#8217;s not forget, as well, that <strong>DSPs are in the driver&#8217;s seat here</strong>.&nbsp; If a DSP wanted to listen to all of a publisher&#8217;s inventory in one place with no duplication, it&#8217;s <strong>incredibly easy to reach out to that publisher and agree on a time and place.&nbsp; So, so, so, easy.&nbsp; A college kid could easily do it with 500 publishers in 1 year.&nbsp; Here&#8217;s a sample email that this theoretical college kid can use :&nbsp;</strong></p><p><strong>&#8220;Hello publisher A, I work at DSP B.&nbsp; We&#8217;d like to only buy you through one exchange.&nbsp; We currently see your inventory through these exchanges - C,D,E.&nbsp; Which one would you like for us to buy it through?</strong></p><p><strong>Thanks!</strong></p><p><strong>SPO done by 22 year old&#8221;</strong></p><p>So please, please, stop blaming publishers for all this.&nbsp; Stop demonizing resellers. And Advertisers/Agencies, for pete&#8217;s sake, stop buying products from people who tell you that they&#8217;re going to make things more &#8220;efficient&#8221; for you unless the thing they&#8217;re making more efficient is your Cost Per Action &#8211; because any solution that doesn&#8217;t make your media dollars drive more conversions is more wasted than the money given to any ad tech middle man.  And as an aside, given modern browsing infrastructure, this isn&#8217;t even that slow anymore!  It&#8217;s like 20 additional page requests &#8212; go on CNN, there are literally hundreds there already, header bidding is costing you nothing!</p><p>Also, don&#8217;t come to me with &#8220;greenwashing tech,&#8221; because I don&#8217;t buy it.&nbsp; If you want campaigns to be greener, send everyone to Google, because there&#8217;s nothing cleaner than dv360 buying from GAM all hosted on GCP.&nbsp; Targeting away from publishers because they have &#8220;dirty supply chains&#8221; is not only probably technologically unsound and nonsensical, but it&#8217;s inequitable &#8211; you&#8217;re literally targeting the poorest companies in the supply chain, telling them they probably have to make less money in order to be eligible for campaigns that might or might not buy their traffic anyway.&nbsp; It&#8217;s messed up, and I&#8217;m not here for it.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.garethhatesadtech.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Gareth Hates AdTech! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Floor Prices - Much Ado About Something]]></title><description><![CDATA[A few weeks ago, TTD announced they&#8217;d be ignoring floor prices passed to them in bid requests https://www.businessinsider.com/the-trade-desk-is-spearheading-a-big-change-in-how-digtal-ads-are-priced-2023-8.]]></description><link>https://www.garethhatesadtech.com/p/floor-prices-much-ado-about-something</link><guid isPermaLink="false">https://www.garethhatesadtech.com/p/floor-prices-much-ado-about-something</guid><dc:creator><![CDATA[Gareth Glaser]]></dc:creator><pubDate>Tue, 19 Sep 2023 19:50:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!QMzU!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9982ec53-e46c-4b94-8412-018db3d86a0a_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A few weeks ago, TTD announced they&#8217;d be ignoring floor prices passed to them in bid requests<a href="https://www.businessinsider.com/the-trade-desk-is-spearheading-a-big-change-in-how-digtal-ads-are-priced-2023-8"> https://www.businessinsider.com/the-trade-desk-is-spearheading-a-big-change-in-how-digtal-ads-are-priced-2023-8</a>.</p><p>Selective outrage has ensued. People have accused TTD of working against publishers, of shoring up its power and of trying to exert control. The Adexchanger article continued a few high level allusions to &#8220;floor prices not representing market value&#8221; and some other milquetoast quotes, but lots and lots of people see this as an &#8220;anti-publishing&#8221; move by TTD. To an extent &#8211; this is true! But not for the reasons you might suspect.</p><p>To begin with, let&#8217;s explore a brief history of floor prices in the online advertising industry.</p><p><strong>Floor Prices 1.0 &#8211; Gaming the Vickrey Auction, not protecting value</strong></p><p>I first encountered floor prices, and a demand for floor prices from the publishing industry, over 10 years ago. Back then the goal was simple &#8211; maximizing value for publishers by creating artificial additional demand in your second price auctions.</p><p>The logic here was in a Vickrey auction, or a second price auction, the top bidder paid the price of the next highest bid (or the price+1) :</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!c9BY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0bed66e-00db-4e66-8913-a3827e90d6a2_740x238.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!c9BY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0bed66e-00db-4e66-8913-a3827e90d6a2_740x238.png 424w, https://substackcdn.com/image/fetch/$s_!c9BY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0bed66e-00db-4e66-8913-a3827e90d6a2_740x238.png 848w, https://substackcdn.com/image/fetch/$s_!c9BY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0bed66e-00db-4e66-8913-a3827e90d6a2_740x238.png 1272w, https://substackcdn.com/image/fetch/$s_!c9BY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0bed66e-00db-4e66-8913-a3827e90d6a2_740x238.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!c9BY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0bed66e-00db-4e66-8913-a3827e90d6a2_740x238.png" width="740" height="238" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b0bed66e-00db-4e66-8913-a3827e90d6a2_740x238.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:238,&quot;width&quot;:740,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!c9BY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0bed66e-00db-4e66-8913-a3827e90d6a2_740x238.png 424w, https://substackcdn.com/image/fetch/$s_!c9BY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0bed66e-00db-4e66-8913-a3827e90d6a2_740x238.png 848w, https://substackcdn.com/image/fetch/$s_!c9BY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0bed66e-00db-4e66-8913-a3827e90d6a2_740x238.png 1272w, https://substackcdn.com/image/fetch/$s_!c9BY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0bed66e-00db-4e66-8913-a3827e90d6a2_740x238.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>By implementing a floor, most exchanges would allow publishers to augment the dynamic of the second price auction &#8211; and publishers (and some vendors) spend a bunch of money using ML to derive dynamic flooring systems that they didn&#8217;t think DSPs would detect (which, more often than not, they didn&#8217;t)</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CrNi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F031dc8b2-1ed9-4c37-9902-367c35df630c_740x217.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CrNi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F031dc8b2-1ed9-4c37-9902-367c35df630c_740x217.png 424w, https://substackcdn.com/image/fetch/$s_!CrNi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F031dc8b2-1ed9-4c37-9902-367c35df630c_740x217.png 848w, https://substackcdn.com/image/fetch/$s_!CrNi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F031dc8b2-1ed9-4c37-9902-367c35df630c_740x217.png 1272w, https://substackcdn.com/image/fetch/$s_!CrNi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F031dc8b2-1ed9-4c37-9902-367c35df630c_740x217.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CrNi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F031dc8b2-1ed9-4c37-9902-367c35df630c_740x217.png" width="740" height="217" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/031dc8b2-1ed9-4c37-9902-367c35df630c_740x217.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:217,&quot;width&quot;:740,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CrNi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F031dc8b2-1ed9-4c37-9902-367c35df630c_740x217.png 424w, https://substackcdn.com/image/fetch/$s_!CrNi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F031dc8b2-1ed9-4c37-9902-367c35df630c_740x217.png 848w, https://substackcdn.com/image/fetch/$s_!CrNi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F031dc8b2-1ed9-4c37-9902-367c35df630c_740x217.png 1272w, https://substackcdn.com/image/fetch/$s_!CrNi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F031dc8b2-1ed9-4c37-9902-367c35df630c_740x217.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><p>This was a delicate balance &#8211; floor too aggressively, and DSPs would detect your sell-side shenanigans. In fact, Criteo did &#8211; I remember some very angry emails from Criteo, who at the time were bidding SUPER aggressively to find the users they really wanted and thought would convert (in fact, a big part of their business was finding users undervalued by the market &#8211; which in my opinion is actually a huge value add for a DSP), but these floors prices screwed that strategy up.</p><p><strong>This is the genesis of floor prices as a yield management tool in programmatic&#8212; gaming Vickrey auctions</strong>.</p><p>This use case is simple &#8211; but it&#8217;s tremendously at odds with how most people view floor prices. The uninitiated will often allude to &#8220;value,&#8221; &#8220;protecting publisher value,&#8221; or some other vague concept of publishers needing to exert some kind of subjective control over their pricing. This instinct, while intuitive, is very limited in its application, and is a remnant of a prior era where pricing was determined by vibes and not by algorithms.</p><p>In simpler terms &#8212; publisher&#8217;s used to dictate what their inventory was worth.  This was because there a. weren&#8217;t very many places to buy ads, and b. measuring their efficacy was very loose (or non existent).  This world doesn&#8217;t exist anymore.  In digital advertising, buyers now dictate what publisher inventory is worth using complex pricing algorithms that they correlate to outcomes.  This has been tremendous for the global economy, but traditional publishers haven&#8217;t intellectually caught up with the core pricing mechanism &#8212; attributed value.</p><p>And that brings us to the crux of the floor pricing debate &#8212; anachronistic publisher pricing methodologies wrongfully applied as an explanation for the efficacy of an auction gaming technique.</p><p><strong>There are a few reasons the publisher value thesis doesn&#8217;t hold up.</strong></p><ol><li><p><strong>Floor Prices to preserve value assume that when bidders don&#8217;t win, they will bid more to get your inventory</strong>. More often than not, this simply isn&#8217;t the case. There&#8217;s too much inventory out there.  Ever seen a DSP delivery report?  They will not notice that they stop buying on a single publisher.</p><p></p></li><li><p><strong>Floor Prices to preserve value, by definition, cannot be A/B tested, and therefore cannot be proven to work</strong>. In order for anything in RTB to be statistically assessed for its value, you need to run a test and control framework &#8212; x% of impressions get the floor, x% of impressions don&#8217;t. But with a &#8220;value preserving&#8221; floor price &#8211; you can&#8217;t do that! The section of traffic you don&#8217;t run it on will make the inventory available cheaper, invalidating the value protection mechanism.</p></li></ol><p><strong>The Death of the Vickrey Auction and Floor Prices 2.0</strong></p><p>With the advent of header bidding (and having sold one of the earliest header bidding companies), I was avowedly <strong>anti price floors for years</strong>. This is because the original use case was gone &#8211; in an environment where there are no second price auctions, there was no delta to capitalize on between the first and second price bids, therefore the insertion of any floor price <strong>could only hurt your yield as a publisher</strong>.</p><p>In principle, I still believe this, that in an intelligent world this is the case. However, there are a few use cases for floors that I overlooked, where they can provide value - <strong>DISCLAIMER - I DISLIKE ALL OF THESE, BUT DAMMIT THEY WORK</strong></p><h3><strong>Why do floor prices make publishers more money, and why is it kind of awful</strong></h3><p>So, why do floor prices still exist?</p><ol><li><p>Floor Prices can help publishers to extract value in situations where a bidder is converting from a CPC pricing model to a CPM pricing model.</p></li></ol><p><strong>DISCLAIMER : THIS SECTION IS WHAT&#8217;S KNOWN IN AD TECH AS &#8220;CONJECTURE&#8221; - THIS COULD BE COMPLETE WITCHCRAFT, BUT HEY IT SOUNDS GOOD</strong></p><p>There&#8217;s one major use case for this &#8211; Google. GDN makes up a tremendous proportion of the demand on the internet, and it&#8217;s all built on performance buyers buying clicks and often backing them out into a CPA.</p><p>One of Google&#8217;s many, many clevernesses is that they have come to realize that the concept of performance translation is a place where they can realize additional revenue &#8211; depending on their expected probability of a click, the CPM that they derive can allow them to spend more or less money on inventory (and capture more upside). The way that this works is as follows :</p><p>Google Expected Click Probability &#8211; 20%</p><p>Google CPC - $5.00</p><p>Google Expected CPM &#8211; $1.00</p><p>In this scenario, Google thinks it&#8217;s willing to bid a $1.00 CPM for this inventory. <strong>However, because these determinations are entirely internal, they don&#8217;t have to bid this $1.00 CPM.</strong> More often than not, if they think they can get the inventory for $.20 &#8211; that&#8217;s what they&#8217;ll bid! And in this scenario, they&#8217;re still going to get paid their $5.00 per click, but they&#8217;re getting the inventory significantly cheaper than their expected value. <strong>This spells profits</strong>, <strong>especially in an ad network that sometimes takes 60% + margins.</strong></p><p>In this scenario, the publisher can set price floors on Adsense and realize additional value by manipulating the translation between CPC and CPM.</p><p>2. Floor Prices are signals that can manipulate the bid stream</p><p>Okay, so I&#8217;m all for making more money from Google, that&#8217;s good and great, but surely with the migration to first price auctions floor prices are useless when it comes to adexchanges, right?</p><p>Wrong!</p><p>Floor Prices can be used in another semi-shady way to inform bid behavior. For this, I want to bring out a few floor pricing concepts, that TTD seems to be slowly getting to the bottom of but this article will lay out straight.</p><ol><li><p>Floor Prices without signaling with enforcement</p></li><li><p>Floor Prices with signaling with enforcement</p></li><li><p>Floor Pricing with signaling without enforcement</p></li><li><p>Floor Price without signaling without enforcement (aka no floors)</p></li></ol><p>We&#8217;ll only discuss the first three because the fourth is nonsensical.</p><p><strong>Floor Prices without signaling with enforcement</strong></p><p>In the world of &#8220;value preservation,&#8221; these actually make sense. I put a floor on my inventory, bidders see they don&#8217;t win, so they bid more until they start winning. Yay! Except there are literally _trillions_ of bid requests in RTB. Trillions. The likelihood that a given bidder, in a distributed computing environment, processing millions of queries per second, even thinks twice about bidding on your inventory again is infinitesimally low. It just isn&#8217;t going to happen. Please, if you&#8217;re a publisher, <strong>don&#8217;t do this</strong>.</p><p><strong>Floor Prices with signaling with enforcement</strong></p><p>This is a slightly better version of the above, but still not great. It&#8217;s not great for all of the value preservation reasons I outlined earlier &#8211; if you&#8217;re doing this to get more value from your inventory, you&#8217;re going to have a bad time. If it seems like it&#8217;s working, it&#8217;s not working for the reasons you think it is. <strong>Please don&#8217;t do this either</strong>.</p><p><strong>Floor Prices with signaling without enforcement</strong></p><p>Here is the crux of controversy. Why would a publisher ever do this? The answer is simple <strong>the perception of a floor, for some bidders, alters bidding patterns</strong>. Whether or not that floor actually exists doesn&#8217;t matter &#8211; in fact, <em>it&#8217;s better if it doesn&#8217;t exist, because if it does the publisher will make less money by rejecting bids<strong>. </strong></em>Now we have the modern iteration of dynamic flooring systems &#8211; &#8220;how can I manipulate my signals in the bid request to get advertisers to pay more money for the inventory.&#8221;</p><p>This road that we&#8217;re on is a crappy one, because you can see what it has lead to &#8211; different floor prices flowing from different exchanges, or the really potentially sketchy one, different floor prices for different DSPs or seats in the same auction!</p><p>Dorothy we aren&#8217;t in Kansas anymore. Floor prices in these circumstances are so far past the concept of &#8220;value preservation&#8221; that I can&#8217;t even see it with binoculars. These floor prices are pure signal manipulations to try to get DSPs to bid more, full stop. It is what it is. Some DSPs will stop listening. Some DSPs will publisher virtue signal and keep listening. I don&#8217;t really care either way, but let&#8217;s call this what it is &#8211; an &#8220;asking price&#8221; as opposed to a &#8220;floor price&#8221; that bidders can choose to listen to or not listen to based on their data science around bid filtering and compute management.</p><p><strong>Conclusion</strong></p><p>Floors have nothing to do with market value, but they can work because they can manipulate bidders into bidding more. Publishers, you should use these to make more money while you can, even if I don&#8217;t like them. They&#8217;ll probably stop working one day, but might not. The one thing that matters here is that <strong>the best way to increase the value of your inventory as a publisher is to think advertiser first &#8211; how can I make sure my inventory satisfies the performance metrics of the advertiser</strong>. Because at the end of the day, that&#8217;s all that matters, not some &#8220;perception&#8221; of value.</p><p>There&#8217;s one use case that I&#8217;ve excluded from this article, which is placing an advertiser or brand specific floor because you have a PMP or Deal in place with that advertiser. I haven&#8217;t mentioned it because I hate it &#8211; if you&#8217;ve convinced a brand or an advertiser to pay more money for shit they could buy OMP, I don&#8217;t think you&#8217;ve created more value on the internet, and in fact you&#8217;re probably just extracting it from a naive buyer. Power to you, but I&#8217;m not going to pat you on the back.</p>]]></content:encoded></item></channel></rss>