Sitemaps.org last updated its protocol page in November 2016, and that page requires little. Each url element needs one loc child, and "All other tags are optional."1 The site's overview page says crawlers "usually discover pages from links," and that a sitemap lets a crawler "pick up" every URL listed.2 A publisher who keeps that file current for search engines has already written the document AdBubbles' inventory crawl reads.

An empty account is seven steps from a first payout. The first is opening a publisher account, and the second is adding a site to it. Verifying the site, by a DNS TXT record, a meta tag, or an uploaded file, is the third. The fourth is configuration: the scope, the maximum bubbles per page, and the categories to exclude. The fifth is pasting the embed, the sixth is an optional crawl of the site's sellable words, and the seventh is connecting a Stripe account for payouts.

None of the seven installs anything that identifies a reader. Once the embed runs, three beacons leave a page: one view per load, one open when a bubble has stayed visible for one second, and one click when a link is followed. AdBubbles sets no cookie, stores no identifier, and collects no personal data from readers. We match the words on a page to an advertiser who bought them; we do not choose who sees a bubble, follow a reader between pages or sites, or promise a result.

The sitemap is the list the inventory crawl works from

Because the inventory index is a crawl of the sitemap of each verified site, a page left out of the file is left out of the count. According to the overview page, using the protocol "does not guarantee that web pages are included in search engines, but provides hints."2 For a search engine the file is a hint; for the inventory crawl it is the list itself.

The companion standard names the paths closed to a crawler. RFC 9309, published in September 2022, sets out rules "that crawlers are requested to honor when accessing URIs," in a file named /robots.txt.3 The document is plain that these rules "are not a form of access authorization."3 If the file is missing, a crawler "MAY access any resources on the server."3 If the file is unreachable because of a server error, the crawler "MUST assume complete disallow," whatever the sitemap lists.3

Verification uses the three methods Search Console already documents

Google's Search Console help page describes verification by an HTML file placed at a given address, "typically the root directory for your property."4 A meta tag goes in the head element of the homepage. Search Console "will periodically check for the presence of this tag."4 For a TXT record at the domain provider, "it can take up to two or three days for your provider to start serving the record."4

The record type itself is defined in RFC 1035, of November 1987, to "hold descriptive text" whose semantics "depends on the domain where it is found."5 AdBubbles accepts the same three, so a publisher who has verified a site with Google has done one of them before. Which one to use depends on what the publisher can edit: the DNS zone, the head template, or the root directory.

Both a publisher account and the embed cost nothing. Because the sixth step needs only a verified site, the crawl can come before the fifth, and its list read first. Scope selectors and the other two settings are named on the configuration reference, and the pricing page sets out the share.

The per-page maximum is the same for a long page and a short one

The fourth step is three settings. The scope is the part of a page the embed may scan, for example the article element or the entry-content container. Inside it the embed skips headings, links, code, preformatted text, form controls, navigation, header, footer, and anything marked data-noads. The maximum bubbles per page is a number the publisher sets. The excluded categories are chosen from those advertisers may buy; gambling, adult, weapons, cryptocurrency, supplements, and political advertisers are prohibited on every site.

Three rules of the embed matter on a long page. It underlines only the first occurrence of each bought word, it never places two bubbles in one paragraph, and it never shows more than the maximum. Suppose the maximum is three. A 400-word post with two bought words in separate paragraphs shows two bubbles, and a 2,400-word article with nine shows three. The long page has six times the text in which a bought word can occur, and the maximum, not the word count, caps what it shows.

Of the seven steps, the fifth is the shortest. The embed, adbubbles.js, is one static file in plain JavaScript with no dependencies, served through Cloudflare's cache, and it runs after the page's DOM is ready. Google's Search Central page on outbound links says to "Mark links that are advertisements or paid placements (commonly called paid links) with the sponsored value."6 Sponsored "is preferred" over nofollow, and several values may share one space-separated list.6 The link inside every bubble is rendered with rel="sponsored noopener" already in place.

Stripe collects the identity and the bank account, and earnings accrue before it does

The seventh step takes place on a form that is not ours. Stripe's documentation says its hosted onboarding "handles the collection of business and identity verification information from connected accounts."7 The form "renders dynamically based on the capabilities, country, and business type of each connected account," and Stripe recommends collecting bank account details during it.7 The account holder confirms what was entered before accepting Stripe's Connect service agreement.7 A publisher who clicks Save for later can finish afterward.7

The connected account is the publisher's own, and payouts reach it monthly in the publisher's own currency. The publisher's share is 70 percent of what advertisers paid for campaigns that ran on its pages, divided among the sites each campaign ran on in proportion to opens. Earnings accrue daily from the first live day whether or not the account is connected, so the seventh step can wait for the first bubble.

On a long page, the first occurrence decides which words a reader reaches

The long-form advantage has a measured limit. In 2008 Jakob Nielsen of the Nielsen Norman Group analyzed 45,237 page views from 25 users with instrumented browsers.8 "On the average Web page, users have time to read at most 28% of the words during an average visit; 20% is more likely."8 Visits grew by "only 4.4 seconds more for each additional 100 words."8 The study measured reading, not ads, and it established that a longer page is not read in proportion to its length.

The consequence follows from the first-occurrence rule. A bought word first used in the opening paragraphs is in the part of the page where every visit starts. One first used in the closing section is reached only by the readers who stayed. No open and no share come from a word no reader reaches. A long-form site has more sellable words than a short-form one, and where each is first used decides which readers meet it.