advert-fetcher
v0.6.3
Published
Utility for safe fetching of adverts through the IM script.
Downloads
11
Readme
Advert Fetcher
Advert Fetcher je nástroj pro bezpečnější načítání reklamy z IM scriptu pomocí sandboxingu IM do iframu, a zobrazovaní reklamy v samostatných iframech.
Přehled architektury
Schéma komunikace:
.-----------------------. .------------------------------.
| Advert fetcher iframe | <--------> | Advert fetcher worker iframe |
'-----------------------' '------------------------------'
^ ^ ^
| | '------------------------------.
| '----------------. |
v v v
.-----------------. .-----------------. .-----------------.
| Reklamní iframe | | Reklamní iframe | | Reklamní iframe |
'-----------------' '-----------------' '-----------------'
Integrace do služby
Pokud není nutno přenastavovat interní konfiguraci advert fetcheru, integrace je poměrně přímočará:
Přidejte si advert fetcher do projektu jako npm závislost:
npm install --save-dev advert-fetcher
HTML soubory v balíčku je vhodné překopírovat do adresáře se statickými
soubory. Pokud je v projektu použit gulp
, postup je následovný:
gulp.task('copy:advertFetcher', () =>
gulp
.src('./node_modules/advert-fetcher/*.html')
.pipe(gulp.dest('./static/html/'))
);
Nyní stačí vložit hlavní iframe advert fetcheru do stránky:
<body>
<iframe
id="advert-fetcher"
width="1"
height="1"
sandbox="allow-scripts allow-same-origin"
src="/static/html/advert-fetcher.html?service=...&tld=...&workerUrl=...">
<!-- nepovinný fallback pokud klient nepodporuje iframy na stránce -->
<script src="//h.imedia.cz/js/dot-small.js"></script>
<script src="//i.imedia.cz/js/im3.js"></script>
<script>
DOT.cfg({
service: 'název služby',
impress: false
});
im.conf.server = 'i.imedia.cz';
</script>
</iframe>
...
Query parametry ("veřejné" nastavení advert fetcheru) je popsáno níže.
Je doporučeno tento iframe skrýt v UI pomocí CSS:
#advert-fetcher {
position: fixed;
left: -1px;
top: -1px;
}
Nastavení advert fetcheru
Iframe advert fetcheru vyžaduje několik nastavení poskytnutých skrz query parametry v URL iframu:
service
- název služby, pro kterou je vydávána reklamatld
- top-level doména, obvyklecz
, nebotest
, nebodev
workerUrl
- URL na HTML dokumentadvert-fetcher-worker.html
Vložení reklamy do stránky
Pro vložení reklamy do stránky je nutno vložit do stránky iframe odkazující na
dokument advert.html
:
<iframe
class="ad"
width="..."
height="..."
sandbox="allow-popups allow-popups-to-escape-sandbox allow-top-navigation allow-scripts allow-same-origin"
src="/static/html/advert.html?zoneId=...&collocation=...">
<!-- nepovinný fallback pokud klient nepodporuje iframy na stránce -->
<div id="ad-seznam.sluzba.zona"></div>
<script>
im.getAds([{
id: 'ad-seznam.sluzba.zona',
zoneId: 'seznam.sluzba.zona',
collocation: '...'
}]);
</script>
</iframe>