Sinasabi ng help page ng Squarespace na ang code na inilagay sa header injection field nito ay inilalagay sa head element "sa bawat pahina sa site mo."1 Sinasabi ng help page ng Ghost na ang mga script na idinagdag sa Site Header ay "lilitaw sa bawat isang pahina ng site mo."2 Sinasabi ng pahina ng Webflow na ang code sa Head code section ay "ipinapatupad sa buong site mo."3 Sinasagot ng bawat vendor sa iisang pangungusap ang unang tanong ng publisher: kung saan ilalagay ang script para tumakbo ito saanman. Sinasagot ng WordPress ang parehong tanong sa dalawang lugar, dahil ang isang WordPress theme ay puwedeng buuin mula sa mga block o mula sa code.

Nililimitahan ng bawat hosted platform ang field na pang-buong site ayon sa plan, hindi ayon sa kasanayan

Sa Squarespace, ang field ay ang header box ng Code Injection panel.1 Sinasabi ng parehong pahina na ang code injection ay "available sa Core, Plus, Advanced, at ilang legacy na billing plan."1 Itinatago ng Ghost ang bersyon nito sa ilalim ng Settings, pagkatapos ay Advanced, pagkatapos ay Code Injection, na may Site Header box para sa head at Site Footer box para sa dulo ng body.2 Itinatago ng Webflow ang bersyon nito sa Custom code tab ng Site settings, na may Head code at Footer code section na hanggang 50,000 character bawat isa.3 Idinadagdag ng pahina ng Webflow na nangangailangan ang custom code ng Core, Growth, Agency, o Freelancer Workspace, o ng site na may aktibong Site plan.3

Ang hadlang sa isang hosted platform, kung mayroon man, ay ang billing plan sa halip na ang code. Ang publisher na nasa plan na kasama ang field ay makakapag-paste ng script element nang hindi nagbubukas ng template. Ang publisher na nasa plan na hindi kasama ito ay hindi makakagawa nito.

Dalawang lugar ang dinodokumento ng WordPress, at ang role ng account ang nagpapasya kung gagana ang una

Inilalarawan ng sariling dokumentasyon ng WordPress ang Site Editor bilang kasangkapan para idisenyo "ang buong site kasama ang header, footer, at lahat ng nasa pagitan, gamit ang mga block."4 Sinasabi ng parehong pahina na available lang ang Site Editor kapag aktibo ang isang block theme, at binibigyang-kahulugan ang template part bilang block "para sa pamamahala ng mga paulit-ulit na pandaigdigang bahagi ng site."4 Ang Custom HTML block na inilagay sa footer template part ay lumilitaw saanman ginagamit ang bahaging iyon. Idinadagdag ang block mismo mula sa block inserter, o sa pag-type ng /html sa isang bagong paragraph block.5

May detalye ang pahina ng Custom HTML na nagpapasya kung mapapanatili ang na-paste na script. Simula sa WordPress 7.0, may hiwalay na panel ang block para sa HTML, CSS, at JavaScript, at ang mga panel ng CSS at JavaScript ay "available lang sa mga user na may unfiltered_html capability."5 Para sa user na wala nito (Contributor ang halimbawa ng pahina), sina-sanitize ng WordPress ang block gamit ang wp_kses at tinatanggal ang mga hindi pinapayagang tag, kasama ang script tag.5 Kaya bahagi ng setup ang role ng account na nagpe-paste.

Ang sariling code ng theme ang natitirang lugar. Sinasabi ng Theme Handbook na dapat i-load ng mga theme at plugin ang mga script "gamit ang pamantayang paraan ng WordPress": isang enqueue function na tinatawag sa wp_enqueue_scripts action.6 Ipinapakita ng parehong pahina ang 'strategy' => 'defer' na key sa mga argument ng function, na naglo-load ng script nang deferred, na may 'async' na opsyon sa tabi nito.6 May nakaplanong AdBubbles plugin para sa WordPress; hangga't wala pa ito, ang dalawang lugar na ito ang dinodokumento ng WordPress.

Mas mahalaga kung paano nagla-load ang script kaysa sa kung aling field ang may hawak nito

Inilalarawan ng HTML standard ang tatlong kilos para sa isang classic na script element. Ang script na walang defer o async attribute ay, sa pananalita ng standard, "kinukuha at sinusuri kaagad, hinaharangan ang parsing hanggang matapos ang dalawang ito."7 Kapag may defer, ang script ay "kukunin nang sabay at susuriin kapag tapos na ang parsing ng pahina."7 Ang async na script ay kinukuha nang sabay at "sinusuri sa sandaling available ito (posibleng bago matapos ang parsing)."7 Ang field ang nagpapasya kung saan aabutin ng browser ang element; ang attribute ang nagpapasya kung ano ang gagawin ng browser doon.

Ang embed, adbubbles.js, ay iisang static file, isinulat sa simpleng JavaScript na walang dependency, inihahatid sa pamamagitan ng cache ng Cloudflare, at naglo-load ito pagkatapos maging handa ang DOM ng pahina. Walang bayad ang pagbubukas ng publisher account, at ganoon din ang embed. Ang publisher na nakapagdagdag na ng site ay puwedeng humiling ng crawl na nagpapakita kung alin sa mga salita nito ang kasalukuyang naibebenta bago mag-paste ng kahit ano. Ibinibigay ng pahina ng pag-install ang eksaktong script element na ipe-paste.

Ang scope ang desisyong nangangailangan ng pag-iisip

Kapag nasa bawat pahina na ang script, may natitirang isang desisyon na hindi kayang gawin ng help page ng anumang vendor. Ang scope ay ang bahagi ng pahina na pinapayagang i-scan ng embed, halimbawa ang article element o ang entry-content container. Kahit sa loob ng scope, hindi ginagalaw ng embed ang mga heading, link, code, preformatted text, form control, navigation, header, at footer, pati na ang anumang minarkahan ng publisher ng data-noads. Sinasalungguhitan nito ang unang paglitaw ng bawat binilhang salita. Isang bubble kada salita ang limit, at hindi kailanman nagsasalo ang dalawa sa isang talata.

Ipagpalagay na binabalot ng isang WordPress theme ang bawat post sa isang container na may class na entry-content at nagpapakita ng maikling talambuhay ng may-akda sa isang sidebar. Ang scope na entry-content ay nangangahulugang hindi kailanman masa-scan ang talambuhay, kahit nasa pahina ito at maaaring may binilhang salita. Ang scope na buong main element ay nangangahulugang masa-scan din ang talambuhay, at maaaring doon bumukas ang bubble sa halip na sa artikulo. Walang maling pagpili sa dalawa, pero magkaibang salita ang ibinebenta ng mga ito.

Bukod sa scope, hawak ng account ang maximum na bubble kada pahina, ang mga kategorya ng advertiser na hindi isasama, at ang verification ng site. May tatlong anyo ang verification: DNS TXT record, meta tag, o in-upload na file. Inililista ng pahina ng Ghost ang mga meta tag sa mga bagay na para sa Site Header field nito, kaya ang field na may hawak ng script ay may hawak din ng tag.2 Ang publisher na kontrolado ang DNS ay puwedeng magdagdag ng record sa halip.

Bawat link sa loob ng bubble ay may rel="sponsored noopener". Sinasabi ng Google Search Central na markahan ang "mga link na advertisement o bayad na placement" ng sponsored na value, at pinapayagan ang ilang rel value sa iisang listahang pinaghihiwalay ng espasyo.8 Walang idinadagdag ang publisher, dahil nire-render ng embed ang link na nakalagay na ang attribute. Nire-render ang bubble sa loob ng Shadow DOM, kaya hindi magkakaapektuhan ang CSS ng site at ang CSS ng bubble.

Tatlong beacon ang lumalabas sa pahina: isang view kada pag-load ng pahina, isang open kapag nanatiling nakikita ang bubble nang isang segundo, at isang click kapag sinundan ang isang link. Hindi naglalagay ng cookie ang AdBubbles, hindi nag-iimbak ng identifier, at hindi nangongolekta ng personal na datos mula sa mga mambabasa. Ang pagtutugma ay sa pagitan ng mga salita sa pahina at ng advertiser na bumili ng mga ito. Hindi namin pinipili kung sinong mambabasa ang makakakita ng bubble, hindi namin sinusundan ang mambabasa sa iba't ibang pahina o site, at hindi kami nangangako ng resulta.

Ang praktikal na punto para sa site na may ilang template ay ang pagkakaiba ng field na pang-buong site at ng field na pang-isang pahina. Tig-isang field na umaabot sa bawat pahina ang pinangangalanan ng Squarespace, Ghost, at Webflow, at nag-aalok din ang Webflow ng field na ang code ay "ipapatupad lang sa pahinang iyon."3 Kumikita ang publisher kapag sinundan ng mambabasa ang link ng isang bubble, at makakabukas lang ang bubble kung saan tumakbo ang embed. Ang script na na-paste sa field na pang-isang pahina ay makakalikha ng mga bubble sa iisang pahinang iyon, at ang field na pang-buong site ang naglalagay ng embed sa bawat pahina.