OpenAdLibraryOpenAdLibrary
Nativní ad sítě

Zpomalují native widgety váš web? Změřený dopad na výkon

Widgety doporučující obsah skutečně přidávají dobu načítání, ale hlavní škoda je spíš ve způsobu implementace než v samotném reklamním formátu. Zde se skrývají náklady a jak je napravit.

Editorial illustration: Do Native Widgets Slow Your Site? Performance Impact Measured

Native widgety od Tabooly, Outbrainu, MGID a Revcontent skutečně přidávají měřitelnou dobu načítání, především prostřednictvím JavaScriptu třetích stran, dodatečných oběhů požadavků na ad server a načítání obrazových assetů pod hranou záložky. To, jak moc to škodí, závisí z velké části na implementaci: asynchronně načítaný, lazy-renderovaný widget umístěný pod hranou záložky stojí mnohem méně než synchronní skript blokující hlavní vlákno poblíž horní části stránky.

Odkud vlastně náklady na výkon pocházejí#

Widget s doporučením obsahu není jediný požadavek. Jeho instalace typicky spustí:

  • Vlastní script tag vydavatele, který se v moderních implementacích většinou načte asynchronně, i když starší integrace někdy stále načítají synchronně a blokují vykreslování
  • Volání na ad server sítě, aby získal sadu doporučení pro konkrétní stránku a uživatele
  • Dodatečné oběhy požadavků na straně poptávky a header biddingu, pokud síť provozuje programmatické aukce místo přímého inventáře, což může zřetězit více header bidding partnerů
  • Obrazové assety nebo náhledy pro každou doporučenou položku, typicky 6 až 12 na instanci widgetu
  • Sledovací pixely aktivované při vykreslení a kliknutí, jak pro síť, tak pro případné další sledování inzerentů

Každý z těchto kroků přidává latenci a jejich účinky se sčítají. Widget, který vypadá jako „jeden script tag“ ve vašem CMS, může při skutečném vykreslení spustit desítky a více síťových požadavků.

Co to konkrétně dělá s Core Web Vitals#

Metriky, které se s největší pravděpodobností zhorší:

Metrika Typický dopad Proč
LCP (Largest Contentful Paint) Obvykle nízký, pokud není sám widget největším prvkem Je problémem pouze pokud se widget vykreslí nad hranou záložky a jeho obrázky jsou velké
CLS (Cumulative Layout Shift) Často největší riziko Pokud není kontejner widgetu před načtením obsahu definován, stránka se při vykreslení poskočí
INP (Interaction to Next Paint) Střední Dodatečný JavaScript prováděný na hlavním vlákně může zpozdit reakci na kliknutí a posouvání
TTFB / váha stránky Malý až střední Dodatečné požadavky zvyšují celkovou váhu stránky, i když obvykle až po počátečním vykreslení při správné implementaci

CLS je metrika, která nejčastěji překvapí vydavatele, protože je také tou, kterou signály uživatelského zážitku od Googlu nejviditelněji váží. Pokud se váš widget načte bez rezervovaného prostoru kontejneru, stránka se po jeho naplnění viditelně poskočí, což je přesně to, co CLS penalizuje.

Proč stejný widget funguje na různých webech různě#

Dvě vydavatelské stránky používající technicky stejnou integraci Tabooly nebo Outbrainu mohou zaznamenat významně odlišné výsledky Core Web Vitals a rozdíl téměř vždy spočívá v okolní stránce, nikoliv v samotném kódu widgetu. Stránka, která je již štíhlá, s minimem skriptů třetích stran, optimalizovanými obrázky a rychlým hostingovým stackem, absorbuje další asynchronní widget s velmi malým viditelným dopadem, protože v rozpočtu načítání stránky je rezerva. Stránka, která již nese několik dalších skriptů třetích stran (analytika, chatovací widgety, druhá reklamní síť, sociální embedy), překročí práh, kdy se požadavky native widgetu stanou těmi, které uživatelé skutečně zaznamenají, i když mohou tvořit malý podíl na celkové váze stránky. Pokud řešíte stížnosti na výkon po přidání widgetu, nejprve zkontrolujte vše ostatní, co na stránce běží; widget je často nejnověji přidaným a nejviditelnějším podezřelým, ale nemusí být skutečným úzkým místem.

Jak nainstalovat widget, aniž byste zničili skóre rychlosti#

Rozdíl mezi widgetem, který vás nestojí nic měřitelného, a widgetem, který viditelně zpomaluje váš web, obvykle spočívá ve volbách implementace, nikoliv v samotné síti:

  1. Načtěte skript asynchronně, nikdy blokujícím synchronním tagem blízko horní části stránky
  2. Rezervujte prostor kontejneru pevnou výškou nebo CSS s poměrem stran ještě před naplněním widgetu, abyste předešli layout shiftu
  3. Lazy-loadujte pod hranou záložky, aby požadavky widgetu během počátečního načítání stránky nekonkurovaly vašemu primárnímu obsahu o šířku pásma
  4. Umístěte ho za svůj hlavní obsah, nejen kvůli zážitku čtenáře, ale protože tím přirozeně odložíte jeho načtení až po vykreslení obsahu, který skutečně určuje vaše LCP
  5. Omezte se pokud možno na jednu instanci widgetu na stránku; naráz běžící více widgetů násobí počet požadavků za klesající návratnost příjmů
  6. Testujte se skutečným omezením rychlosti zařízení, nejen s desktopovým připojením na pevné lince; výkon na mobilních sítích 4G je místem, kde se váha widgetu projevuje nejbolestněji

Stojí výnos za kompromis ve rychlosti?#

Toto je skutečné rozhodnutí a záleží na tom, co rychlost stránky znamená pro váš konkrétní web. Pokud je váš provoz silně závislý na organickém vyhledávání a uživatelský zážitek na stránce významně ovlivňuje vaše pozice, může špatně implementovaný widget, který táhne vaše skóre Core Web Vitals dolů, stát více ve ztrátě viditelnosti ve vyhledávání, než vydělá na reklamních příjmech. Pokud váš provoz pochází převážně z přímých, sociálních nebo newsletterových zdrojů, kde je hodnocení ve vyhledávání menším faktorem, má náklad na rychlost menší význam ve srovnání se ziskem RPM.

V každém případě je řešení málokdy „nepoužívat native widgety“. Téměř vždy je to „opravit implementaci“. Dobře implementovaný asynchronní, lazy-loadovaný, správně dimenzovaný widget od Tabooly, Outbrainu, MGID nebo Revcontent stojí zlomek nákladů oproti špatně implementovanému widgetu, za stejný výnos.

Jak vám OpenAdLibrary pomáhá porovnat ještě před nasazením#

Před přidáním widgetu od sítě, kterou jste nepoužívali, se vyplatí vidět, jak její inventář a formát skutečně vypadá na jiných webech, nejen v prodejní prezentaci. OpenAdLibrary vám umožní procházet živé kreativy od Tabooly, Outbrainu, MGID, Revcontent a dalších sítí, abyste viděli formát, hustotu obrázků a mechaniku kliknutí, které byste skutečně integrovali. To je konkrétnější základ pro rozhodnutí o implementaci než pouhé demo konto.

Jak skutečně změřit dopad na váš vlastní web#

Nespolehejte se na obecné odhady dopadu, včetně rozsahů v tomto článku. Změřte svůj web přímo:

  1. Nejprve základní měření. Spusťte své klíčové stránky v nástroji jako PageSpeed Insights nebo WebPageTest ještě před instalací čehokoliv a zaznamenejte LCP, CLS a INP spolu s celkovou váhou stránky a počtem požadavků.
  2. Nainstalujte widget a poté znovu otestujte stejné stránky za stejných podmínek. Použijte profil připojení s omezením pro mobil, nejen neomezený desktop, protože právě tam se dopad obvykle nejvíce projeví.
  3. Izolujte příspěvek widgetu konkrétně, většina testovacích nástrojů umožňuje filtrovat vodopád podle původu požadavku, takže můžete přesně vidět, kolik z celkové doby načítání a počtu požadavků je odpovědný sám widget oproti základní zátěži vašeho webu.
  4. Znovu otestujte po opravách implementace (asynchronní načítání, rezervovaná výška kontejneru, lazy loading) spíše než předpokládat, že oprava fungovala. Drobné detaily implementace, jako je nastavení výšky kontejneru pevnou hodnotou v pixelech versus responsivní box s poměrem stran, mohou přinést významně odlišné výsledky CLS i při stejném základním widgetu.
  5. Opakujte periodicky, ne pouze jednou při spuštění. Sítě někdy mění vlastní chování skriptu nebo hustotu reklam v čase bez upozornění vydavatelům, proto nastavení, které bylo před šesti měsíci čisté, stojí za přezkoumání.

Časté chyby v implementaci#

Malý počet opakujících se problémů tvoří většinu nákladů na výkon, kterým se lze vyhnout:

  • Žádná rezervovaná výška kontejneru, takže se stránka po naplnění widgetu viditelně poskočí, což přímo poškozuje CLS
  • Umístění widgetu nad nebo uvnitř hlavního obsahu místo za ním, což konkurenčně soutěží s vaším skutečným obsahem o šířku pásma a prioritu při počátečním načítání
  • Naráz běžící více instancí widgetu na jedné stránce, což násobí počet požadavků za omezený dodatečný příjem
  • Používání staršího synchronního integračního snippetu, který si vydavatel zkopíroval před lety a nikdy jej nepřezkoumal, přestože síť mezitím vydala asynchronní verzi
  • Netestování konkrétně na mobilech, kde kombinace pomalejších připojení a menších displejů činí problémy s dobou načítání i layout shiftem mnohem viditelnějšími než na desktopu na pevné lince

Většina těchto chyb jsou jednorázové opravy v kódu vaší šablony, nikoliv průběžná udržovací zátěž, což znamená, že se vyplatí je udělat správně jednou, než žít s přetrvávajícím, měřitelným brzděním každého načtení stránky.

Závěr#

Native widgety skutečně přidávají měřitelnou váhu a CLS je obvykle metrika, kterou je třeba sledovat nejpečlivěji. Náklady jsou z velké části funkcí kvality implementace (asynchronní načítání, rezervovaný prostor kontejneru, lazy loading pod hranou záložky) spíše než vrozenou vlastností reklamního formátu. Změřte skutečné stavy před a po na reálném zařízení spíše než odhadovat dopad na základě pověsti, a napravte problémy s implementací, než dojdete k závěru, že samotný formát za to nestojí.

Často kladené otázky

Kterou metriku Core Web Vitals ovlivňují native widgety nejvíce?
Cumulative Layout Shift (CLS) obvykle představuje největší riziko, protože pokud není kontejner widgetu před jeho načtením definován, stránka se viditelně poskočí, jakmile se doporučení naplní. LCP a INP mohou být také ovlivněny, ale obvykle méně závažně při správné implementaci.
Mám načítat widget s doporučením obsahu synchronně nebo asynchronně?
Vždy asynchronně. Synchronní script tag umístěný blízko horní části stránky při načítání blokuje vykreslování, což přímo poškozuje dobu načtení. Téměř každá významná native síť podporuje asynchronní načítání; starší integrace někdy stále výchozí nastavení mají synchronní, proto si zkontrolujte vaše konkrétní nastavení.
Způsobuje spuštění více native widgetů na jedné stránce horší výkon?
Ano, počet požadavků a provádění skriptů se zhruba násobí s každou další instancí widgetu, přičemž návratnost příjmů na jednotku se snižuje. Většina vydavatelů dosahuje lepších výsledků, když na stránce dobře běží jeden widget, než když jich naráz běží několik.
Mohu native reklamní widget lazy-loadovat?
Ano, a měli byste, pokud se widget nachází pod hranou záložky (below the fold). Lazy-loading odkládá síťové požadavky widgetu až do chvíle, kdy se čtenář k němu přiblíží posunutím, takže během počátečního načítání stránky nekonkuruje vašemu primárnímu obsahu o šířku pásma.
Poškodí pomalu načítající se widget mé pozice ve vyhledávání?
Může, pokud jsou vaše skóre Core Web Vitals již na hraně a widget je posune do nepřijatelného rozsahu, protože uživatelský zážitek na stránce je jedním z mnoha faktorů hodnocení. Náprava je téměř vždy ve správné implementaci (asynchronní načítání, rezervovaný prostor kontejneru, lazy loading), nikoliv v úplném odstranění widgetu.
Tým OpenAdLibrary
Napsal/aTým OpenAdLibrary
Reklamní inteligence a výzkum nativní reklamy

Vytváříme OpenAdLibrary, otevřenou platformu pro transparentnost reklamy. Každý den naše systémy zachycují živé nativní reklamy napříč sítěmi Taboola, Outbrain, MGID, Revcontent, Teads, Yahoo a MSN, identifikují skutečného inzerenta za každou z nich a sledují kliknutí až na cílovou stránku. Tyto průvodce shrnují, co v těchto datech vidíme, abyste mohli rychleji zkoumat trh.