Advertenties in Joomla
De meeste Joomla-gebruikers weten dat het "Advertenties" component bestaat, maar weinig beseffen wat die eigenlijk is. Het is niet zomaar een plek om een afbeelding te uploaden. Het is een kleine, complete, zelfgehoste advertentieserver die in je CMS zit.
Met com_banners kun je promoties, sponsors en eigen advertenties roteren zonder je template aan te passen. Je kunt tellen hoe vaak elke advertentie wordt getoond en aangeklikt, met je eigen first-party data. Je kunt de weergave begrenzen zodat een adverteerder precies het aantal views krijgt waarvoor hij heeft betaald. Je kunt advertenties targeten op trefwoord, categorie of taal. En dat kan allemaal zonder advertentienetwerk van derden, zonder extern script en standaard zonder cookies.
Van "een advertentie tonen" tot trefwoordtargeting, impressielimieten en kliktracking.
Dit artikel legt uit hoe Joomla's Advertenties echt werkt. Het behandelt de basis voor website-eigenaren, de praktische setup voor beheerders en de technische details voor ontwikkelaars. Je leert hoe adverteerders, advertenties en categorieën samenhangen, hoe de module advertenties toont en roteert, hoe tracking en impressielimieten werken en hoe je de meest voorkomende fouten voorkomt.
1. De basis
1.1 De drie bouwstenen
De hele component draait om drie eenvoudige concepten. Zodra je begrijpt hoe die met elkaar samenhangen, valt de rest op zijn plek.
| Concept | Wat het is | Databasetabel |
|---|---|---|
| Adverteerder | De adverteerder of sponsor die eigenaar is van advertenties. | #__banner_clients |
| Advertentie | Eén uiting, zoals een afbeelding of eigen HTML. | #__banners |
| Categorie | Een groep banners, een com_banners-categorie. | #__categories |
De relatie is makkelijk te onthouden: een advertentie hoort bij één categorie en optioneel bij één adverteerder.
1.2 Hoe de onderdelen samenhangen
Dit is het denkmodel:
Client ─┐
├─ Advertentie ─ Category
Volgen ─┘ (creative) (grouping)
- Advertentie is wat bezoekers daadwerkelijk zien.
- Adverteerder is voor wie de advertentie is en bevat de standaard trackinginstellingen.
- Categorie is hoe je advertenties groepeert, zodat een module ze daaruit kan ophalen.
- Volgen is het logboek van impressies en klikken.
1.3 Waar je het vindt
In de Joomla 6-backend vind je de component onder het menu Componenten:
Componenten → Advertenties → Advertenties (de uitingen)
Componenten → Advertenties → Categorieën (groepering)
Componenten → Advertenties → Adverteerders (adverteerders)
Componenten → Advertenties → Volgen (impressie- / kliklog)
De weergave aan de voorkant wordt apart afgehandeld, via een module:
Systeem → Website-modules → Nieuw → Advertenties (mod_banners)
Onthoud dit onderscheid: de component slaat de data op en beheert die, de module toont de advertenties op de website.
1.4 Twee soorten advertenties
Op het bewerkscherm van een advertentie bepaalt het veld Type de rest:
| Type | Wat je aanlevert | Waar het wordt opgeslagen |
|---|---|---|
| Afbeelding | Een afbeeldingsbestand, een klik-URL en breedte / hoogte / alt. | params (imageurl, width, …) |
| Aangepast | Ruwe HTML, een <script> of een <iframe>. |
custombannercode |
Bij een Afbeelding-advertentie bouwt Joomla de <a><img></a>-markup voor je. Bij een Aangepast-advertentie bepaal je de markup volledig zelf, wat ideaal is voor responsive advertenties of tags van derden. Zoals we in sectie 8 zullen zien, brengt die vrijheid ook een beveiligingsrisico met zich mee.
2. Advertenties aanmaken
2.1 Maak eerst een adverteerder aan
Het is verstandig om eerst de adverteerder aan te maken vóór je de advertentie maakt, zelfs voor je eigen interne advertenties. Ga naar:
Componenten → Advertenties → Adverteerders → Nieuw
Vul de adverteerdergegevens in:
- Naam contactpersoon, E-mail contactpersoon en Aanvullende informatie.
- Aankooptype: Onbeperkt, Jaarlijks, Maandelijks, Wekelijks of Dagelijks.
- Volg weergaves en Volg klikken: de standaard tracking voor alle advertenties van deze adverteerder.
De adverteerder bepaalt de standaardwaarden. Elke individuele advertentie kan die nog steeds overschrijven.
2.2 Maak de advertentie aan
Maak nu de uiting aan:
Componenten → Advertenties → Advertenties → Nieuw
Je hebt twee velden nodig om te beginnen:
- Naam: een intern label voor je eigen referentie.
- Categorie: de com_banners-categorie waarin de advertentie staat.
Kies daarna het Type (Afbeelding of Aangepast) en vul de uiting in.
2.3 Het bewerkscherm van de advertentie: belangrijkste velden
Dit zijn de velden die je het vaakst gebruikt:
| Veld | Doel |
|---|---|
| Type | Afbeelding of aangepaste HTML. |
| Klik-URL | Waar de klik naartoe gaat, voor afbeeldingsadvertenties. |
| Afbeelding | De uiting zelf, voor afbeeldingsadvertenties. |
| Aangepaste code | Ruwe HTML, voor aangepaste advertenties. |
| Breedte / Hoogte / Alt | Weergave van de afbeelding en toegankelijkheid. |
| Sticky | Zet deze advertentie bovenaan de rotatie. |
| Max. impressies | Een harde limiet (imptotal); 0 betekent onbeperkt. |
2.4 Targetingvelden
Een tweede groep velden bepaalt wanneer en waar een advertentie mag verschijnen:
| Veld | Effect |
|---|---|
| Trefwoorden | Worden vergeleken met de paginatrefwoorden voor gerichte weergave. |
| Eigen prefix gebruiken | Aangepaste trefwoord-prefixmatching voor deze advertentie. |
| Categorie | Een module kan "alle advertenties in categorie X" ophalen. |
| Taal | Alleen tonen bij een overeenkomende sitetaal. |
| Adverteerder | Neemt de tracking- en aankoopstandaarden van de adverteerder over. |
3. Advertenties tonen met mod_banners
3.1 De module is de aflevermotor
Dit is het belangrijkste om te begrijpen: een advertentie doet niets totdat een advertentie-module hem rendert. De component slaat de gegevens op, maar mod_banners selecteert en toont de advertentie.
Advertentie (data) → mod_banners (selectie + renderen) → modulepositie
Maak de module aan via Systeem → Website-modules → Nieuw → Advertenties en wijs hem vervolgens toe aan een positie en de menu-items waarop hij moet verschijnen.
3.2 Module-opties
De module-opties bepalen welke advertenties in aanmerking komen en hoe ze worden weergegeven:
| Optie | Wat het doet |
|---|---|
| Doelvenster | Doel van de link: hetzelfde venster, nieuw venster of popup. |
| Aantal | Hoeveel advertenties tegelijk worden getoond (standaard 5). |
| Adverteerder | Beperk tot de advertenties van één adverteerder. |
| Categorie | Beperk tot één of meer categorieën. |
| Zoeken op trefwoorden | Vergelijk met de meta-trefwoorden van de pagina. |
| Willekeurige volgorde | Sticky-volgorde of sticky gevolgd door willekeurige volgorde. |
| Koptekst / Voettekst | Voegt tekst toe vóór of na het advertentieblok. |
3.3 Volgorde en rotatie
De selectiequery sorteert advertenties op twee manieren, afhankelijk van de instelling Willekeurige volgorde:
ORDER BY sticky DESC, ordering -- "Sticky-volgorde"
ORDER BY sticky DESC, RAND() -- "Sticky, willekeurig"
De logica is eenvoudig:
- Sticky-advertenties komen altijd eerst.
- Binnen hetzelfde sticky-niveau kies je een vaste of willekeurige volgorde.
- Aantal bepaalt vervolgens hoeveel van die advertenties daadwerkelijk worden weergegeven.
3.4 Trefwoordtargeting in de praktijk
Met trefwoordtargeting kun je relevante advertenties tonen per pagina zonder voor elke pagina een aparte module te maken. Dat werkt in drie stappen:
- Vul bij de advertentie Trefwoorden in, bijvoorbeeld
joomla, hosting. - Schakel Zoeken op trefwoorden in bij de module.
- Op een pagina waarvan de meta-trefwoorden
hostingbevatten, komt die advertentie in aanmerking voor weergave.
Eén module kan zo verschillende advertenties tonen op verschillende pagina's, afhankelijk van het onderwerp van de pagina.
3.5 Template-overrides
De module wordt geleverd met één layout die je volledig kunt overschrijven. Dit is de juiste plek om de weergave van advertenties aan te passen:
modules/mod_banners/tmpl/default.php ← de standaardlayout
templates/your_template/html/mod_banners/default.php ← jouw override
Gebruik een override om zaken te bouwen die de standaardlayout niet biedt:
- Sponsoroverzichten of Bootstrap-cards.
- Sliders en carrousels.
- Lazy-loaded, responsieve
<picture>-markup.
Het principe is hetzelfde als elders in Joomla: data en presentatie blijven gescheiden. Je overschrijft de weergave, niet het model. Eén tip: de standaardlayout voegt al rel="noopener noreferrer" toe aan links die in een nieuw tabblad openen. Behoud dat voor de veiligheid.
3.6 Caching versus nauwkeurige impressietelling
Dit is een subtiel maar belangrijk punt. Een impressie is een dynamische schrijfactie bij elke weergave. Caching voorkomt juist opnieuw renderen. Caching en nauwkeurige telling werken dus tegen elkaar in.
| Cachelaag | Effect op tellingen |
|---|---|
| Modulecache | Een gecachte module wordt niet opnieuw gerenderd, waardoor impmade niet wordt verhoogd. |
| Pagina- / systeemcache | De volledige pagina wordt uit de cache geladen, waardoor geen advertentiecode wordt uitgevoerd. |
| Reverse proxy / CDN | De edge-server levert de HTML, waardoor Joomla de paginaweergave nooit ziet. |
Hoe agressiever je cachet, hoe meer impmade de werkelijke weergaven onderschat. Heb je nauwkeurige cijfers nodig, sluit advertentiemodules dan uit van caching. Anders moet je accepteren dat de tellingen een minimum aangeven en niet het totale aantal weergaven.
4. Tracking en limieten
4.1 Impressies versus klikken
Joomla registreert twee statistieken, en het is belangrijk om die duidelijk van elkaar te onderscheiden:
| Statistiek | Wanneer deze wordt verhoogd | Kolom |
|---|---|---|
| Impressie | De advertentie wordt op een pagina weergegeven. | impmade |
| Klik | Een bezoeker klikt op de advertentie. | clicks |
Beide worden ook per dag geregistreerd in #__banner_tracks wanneer tracking is ingeschakeld. De echte waarde zit in de verhouding tussen beide, de click-through rate (CTR):
CTR = klikken / impressies × 100 (%)
Een advertentie met veel impressies maar weinig klikken presteert onder verwachting.
4.2 De impressielimiet
Elke advertentie kan een harde limiet hebben voor het aantal keer dat deze wordt weergegeven:
imptotal = de limiet (0 = onbeperkt)
impmade = aantal keer weergegeven
De selectiequery kiest alleen advertenties die nog ruimte hebben:
imptotal = 0 OR impmade < imptotal
Zodra impmade gelijk is aan imptotal, verdwijnt de advertentie automatisch uit de rotatie. Zo kun je precies het aantal weergaven leveren waarvoor een adverteerder heeft betaald.
4.3 Hoe een klik wordt geteld
Wanneer een bezoeker op een afbeeldingsadvertentie klikt, wordt hij niet direct naar de bestemming gestuurd. Joomla leidt de klik eerst via de component:
/index.php?option=com_banners&task=click&id=42
→ clicks = clicks + 1
→ logregel toevoegen aan #__banner_tracks (track_type = 1)
→ 301-doorverwijzing naar de echte klik-URL
De doorverwijzing is onzichtbaar voor de bezoeker, maar geeft Joomla de kans om de klik te registreren voordat de bezoeker wordt doorgestuurd.
4.4 De beslisketen voor tracking
Of een klik of impressie daadwerkelijk wordt geregistreerd, wordt niveau voor niveau bepaald, van meest specifiek naar meest algemeen:
Banner.track_clicks (-1 = overnemen)
└─ Client.track_clicks (-1 = overnemen)
└─ com_banners globale configuratie: track_clicks
De waarde -1 betekent "overnemen van het hogere niveau". Impressies volgen exact hetzelfde patroon. Dit is hetzelfde overervingsprincipe dat je misschien kent van categorierechten.
4.5 Trackingtypes
De tabel #__banner_tracks bevat compacte uursamenvattingen en geen lijst met individuele gebeurtenissen:
track_date datetime (afgerond op het uur: Y-m-d H:00:00)
track_type 1 = klik, 2 = impressie
banner_id welke advertentie
count aantal binnen dat uur
Er bestaat dus één regel per advertentie, per type, per uur, niet één regel per gebeurtenis. Dit ontwerp houdt de tabel klein, zelfs op drukbezochte websites.
4.6 Reset en aankooptype
Twee extra velden modelleren de commerciële kant van betaalde plaatsingen:
- Reset (de
reset-datum) bepaalt wanneerimpmadeenclicksweer op nul worden gezet. - Aankooptype (Onbeperkt, Jaarlijks, Maandelijks, Wekelijks of Dagelijks) beschrijft de factureringscyclus.
Het aankooptype gebruikt dezelfde overervingsketen als tracking:
Banner.purchase_type (-1 = overnemen)
└─ Client.purchase_type (-1 = overnemen)
└─ Globale configuratie purchase_type
Naar boven5. Beveiliging van aangepaste advertenties
5.1 Aangepaste HTML wordt ongewijzigd opgeslagen
Deze sectie verdient speciale aandacht, omdat dit het punt is dat mensen het vaakst over het hoofd zien. Aangepaste HTML-advertenties worden precies opgeslagen zoals je ze invoert. Joomla filtert of ontsmet deze code niet.
custombannercode → filter="raw" (in banner.xml)
clickurl → filter="url" (URL-validatie)
De klik-URL wordt gevalideerd, maar de markup van een aangepaste advertentie niet.
5.2 Waarom dit belangrijk is
Omdat aangepaste code ongewijzigd wordt opgeslagen, kan een advertentiebeheerder die een <script>-tag invoegt, opgeslagen cross-site scripting (XSS) veroorzaken op elke pagina waarop de module verschijnt. De gevolgen zijn praktisch:
- Geef alleen vertrouwde gebruikersgroepen toestemming om aangepaste advertenties te maken. Regel dit via ACL (zie sectie 6).
- Gebruik bij voorkeur Afbeelding-advertenties voor advertenties die door adverteerders worden aangeleverd.
- Reserveer Aangepaste-advertenties voor je eigen medewerkers.
Een eenvoudige vuistregel: afbeeldingsadvertenties zijn veilig door hun opzet, terwijl aangepaste advertenties veiligheid inruilen voor volledige controle. De doorverwijzing controleert de doel-URL, maar de markup blijft jouw verantwoordelijkheid.
Naar boven6. Categorieën en toegangsbeheer
6.1 Advertenties gebruiken het gedeelde categoriesysteem
Advertentiecategorieën zijn niet speciaal. Het zijn gewone Joomla-categorieën die toevallig bij de advertentiecomponent horen:
#__categories WHERE extension = 'com_banners'
Dat betekent dat advertentiecategorieën dezelfde geneste boomstructuur, dezelfde knop Opnieuw opbouwen en hetzelfde ACL-systeem gebruiken als artikelcategorieën. Begrijp je artikelcategorieën, dan begrijp je ook advertentiecategorieën.
6.2 Waarom categorieën hier belangrijk zijn
Categorieën vormen de koppeling tussen je advertenties en de module die ze toont:
- Een module richt zich op een categorie, waardoor alle advertenties daarin onderdeel worden van dezelfde rotatiepool.
- Je kunt advertenties organiseren per campagne, plaatsing of sponsor.
- Rechten worden overgenomen binnen de categorieboom (Aanmaken, Bewerken, Status wijzigen enzovoort).
Wil je meer weten over hoe de geneste boomstructuur de waarden lft en rgt opslaat, bekijk dan het aparte artikel Categorieën in Joomla.
6.3 Toegang en taal
- Het Toegangsniveau van een advertentie bepaalt wie hem kan zien. Dit is zelden nodig, omdat de module de weergave meestal al regelt.
- Taal zorgt ervoor dat een advertentie alleen verschijnt bij de bijbehorende sitetaal.
- Op een meertalige website kun je één rotatiepool gebruiken en het taalfilter automatisch de juiste advertenties laten kiezen.
7. Onder de motorkap (voor ontwikkelaars)
7.1 Drie tabellen
De volledige component draait op drie specifieke tabellen:
#__banners de advertenties + tellers + targeting
#__banner_clients adverteerders + standaard tracking / aankooptype
#__banner_tracks uurlijkse samenvatting van klikken / impressies
Daarnaast gebruikt de component records in de gedeelde tabel #__categories, waarbij extension = com_banners.
7.2 Belangrijke kolommen in #__banners
De hoofdtafel bevat de advertentieinhoud, de tellers en de targeting op één plek:
type 0 = afbeelding, 1 = aangepaste HTML
custombannercode ruwe markup voor aangepaste advertenties
params JSON: imageurl, width, height, alt, ...
cid adverteerder-id (→ #__banner_clients)
catid categorie-id (→ #__categories)
imptotal / impmade impressielimiet / aantal impressies
clicks aantal klikken
sticky altijd bovenaan in de rotatie
state gepubliceerd / gedepubliceerd / gearchiveerd / verwijderd
metakey trefwoorden voor targeting
own_prefix / metakey_prefix aangepaste prefixmatching
track_clicks / track_impressions -1 overnemen, 0 uit, 1 aan
purchase_type -1 overnemen, anders factureringscyclus
reset wanneer tellers worden gereset
language '' = alle talen, of een taalcode
7.3 De MVC-structuur
De code is verdeeld over drie locaties volgens de standaard Joomla-structuur:
administrator/components/com_banners/ ← beheer van advertenties, adverteerders en tracking
src/Model, src/Table, src/Controller, tmpl/, forms/
components/com_banners/ ← frontend klikken + selectie
src/Model/BannersModel.php (selectie + impressies)
src/Model/BannerModel.php (enkele advertentie + kliktracking)
src/Controller/DisplayController.php
modules/mod_banners/ ← toont de geselecteerde advertenties
src/Helper/BannersHelper.php
tmpl/default.php
7.4 De selectiequery
BannersModel::getBannerQuery() bouwt ongeveer deze query om geschikte advertenties te selecteren:
SELECT a.*
FROM #__banners AS a
LEFT JOIN #__banner_clients AS cl ON cl.id = a.cid
LEFT JOIN #__categories AS cat ON cat.id = a.catid
WHERE a.state = 1
AND (a.publish_up IS NULL OR a.publish_up <= :now)
AND (a.publish_down IS NULL OR a.publish_down >= :now)
AND (a.imptotal = 0 OR a.impmade < a.imptotal)
AND cl.state = 1
[AND a.catid IN (:categories)]
[AND keyword/metakey REGEXP conditions]
ORDER BY a.sticky DESC, a.ordering -- of RAND()
Deze ene query verklaart het grootste deel van het gedrag dat eerder is beschreven: publicatiestatus, publicatieperiode, impressielimieten, adverteerderstatus en sortering worden hier allemaal bepaald.
7.5 Trefwoordmatching is echte SQL
Wanneer zoeken op trefwoorden is ingeschakeld, vergelijkt Joomla elk paginatrefwoord met een reguliere expressie tegen de metatrefwoorden van de advertentie, adverteerder én categorie:
$regexp = $db->getServerType() === 'mysql'
? '\\b' . $keyword . '\\b' // MySQL / MariaDB
: '[[:<:]]' . $keyword . '[[:>:]]'; // PostgreSQL
Daarnaast bestaat de eigen-prefix-logica: een advertentie kan overeenkomen met een prefix van een trefwoord in plaats van met het volledige woord. Daarmee kun je zeer gericht targeten zonder exacte overeenkomsten te vereisen.
7.6 Tokens in aangepaste advertentiecode
Voor aangepaste advertenties kan custombannercode tijdelijke aanduidingen bevatten die mod_banners tijdens het renderen vervangt:
{CLICKURL} → de getrackte klik-URL
{NAME} → de advertentienaam
Dat is een handig detail: een handgeschreven <a>- of <script>-advertentie kan zo toch gebruikmaken van Joomla's kliktracking, zodat je statistieken behouden blijven.
7.7 Programmatic access
Dezelfde Categories API die artikelen ondersteunt, werkt ook voor advertenties:
use Joomla\CMS\Categories\Categories;
$categories = Categories::getInstance('Banners');
$node = $categories->get('sponsors'); // via alias of ID
$children = $node->getChildren();
De tabel- en modelklassen bevinden zich in voorspelbare namespaces:
Joomla\Component\Banners\Administrator\Table\BannerTable
Joomla\Component\Banners\Site\Model\BannersModel
7.8 Web Services API (headless)
De component bevat standaard een REST API, waardoor advertenties en adverteerders ook headless beschikbaar zijn:
api/components/com_banners/
src/Controller/BannersController.php
src/Controller/ClientsController.php
src/View/Banners, src/View/Clients
GET /api/index.php/v1/banners
GET /api/index.php/v1/banners/clients
Dat maakt moderne architecturen mogelijk waarbij de gegevens in Joomla staan, maar de presentatie elders plaatsvindt:
Joomla API → React / Vue frontend → aangepaste advertentierendering
Let wel op: API-weergave omzeilt mod_banners, waardoor je impressies en klikken zelf moet registreren.
7.9 Gedrag op grote schaal
Het model is eenvoudig, maar bij grote installaties zijn er enkele aandachtspunten:
| Onderwerp | Waarom dit gebeurt | Oplossing |
|---|---|---|
| Schrijfconflicten | Elke weergave of klik veroorzaakt een UPDATE op #__banners. |
Accepteer de uurlijkse aggregatie en schakel die niet uit. |
| Tabelgroei | #__banner_tracks krijgt één record per advertentie, type en uur. |
Archiveer of verwijder oude records regelmatig. |
| Selectiekosten | Trefwoord-REGEXP plus joins met adverteerders en categorieën. |
Indexeer state, catid en language; houd trefwoordenlijsten compact. |
| Grote rotatiepool | 100.000 advertenties vormen een grote selectiepool. | Filter streng op categorie of adverteerder binnen de module. |
Tracking is bewust ontworpen om compact te blijven dankzij uurlijkse verzamelingen. Op lange termijn bestaat het belangrijkste onderhoudswerk uit het archiveren van gegevens in #__banner_tracks.
8. Veelvoorkomende fouten en valkuilen
8.1 "Mijn advertentie wordt niet weergegeven"
Dit is veruit de meest gestelde supportvraag. Doorloop deze checklist stap voor stap:
- Is de advertentie gepubliceerd? Is de adverteerder gepubliceerd?
- Valt de advertentie binnen de periode publish_up / publish_down?
- Heeft
impmadede waardeimptotalbereikt? (De limiet is bereikt.) - Is de module toegewezen aan dit menu-item en deze positie?
- Sluit het filter Categorie / Adverteerder van de module de advertentie uit?
- Staat Zoeken op trefwoorden aan terwijl de pagina geen overeenkomende trefwoorden bevat?
8.2 Valkuilen rond tracking en privacy
- Tracking staat standaard uit totdat je deze inschakelt op advertentie-, adverteerder- of globaal niveau.
- Tellingen worden per uur samengevoegd, verwacht dus geen nauwkeurigheid per seconde.
- Klikken verlopen via een doorverwijzing, waardoor advertentieblokkers of een strikte CSP invloed kunnen hebben op aangepaste code.
- Reset-datums zetten tellers ongemerkt terug naar nul. Leg deze datums vast zodat niemand voor verrassingen komt te staan.
8.3 Veelgemaakte fouten bij afbeelding- en aangepaste advertenties
- Het wijzigen van het Type migreert geen gegevens. Afbeeldingsvelden en aangepaste code worden apart opgeslagen.
- Het vergeten van Breedte / Hoogte / Alt bij afbeeldingsadvertenties heeft een negatieve invloed op de layout en toegankelijkheid.
- Aangepaste HTML omzeilt Joomla's
<img>-generator, waardoor jij verantwoordelijk bent voor zowel responsiviteit als beveiliging.
9. Best practices
Als je maar een paar dingen uit dit artikel onthoudt, laat het dan deze zijn:
- Maak eerst de adverteerder aan, daarna de advertentie en vervolgens de module die de advertentie toont.
- Gebruik afbeeldingsadvertenties voor advertentiemateriaal van adverteerders en reserveer aangepaste advertenties voor vertrouwde medewerkers.
- Gebruik de impressielimiet om exact het aantal weergaven te leveren waarvoor een adverteerder heeft betaald.
- Sluit advertentiemodules uit van caching als je nauwkeurige impressiecijfers nodig hebt.
- Gebruik categorieën om advertenties te groeperen in rotatiepools per campagne of sponsor.
- Archiveer
#__banner_tracksregelmatig op drukbezochte websites.
10. In het kort
KLANT Componenten → Advertenties → Adverteerders → Nieuw
BANNER Componenten → Advertenties → Advertenties → Nieuw
WEERGAVE Website-modules → Nieuw → Advertenties (positie + menu toewijzen)
CATEGORIE Componenten → Advertenties → Categorieën (extension=com_banners)
LIMIET Max. impressies (imptotal); 0 = onbeperkt
STICKY Sticky = bovenaan in de rotatie
TARGETING Trefwoorden + module-optie "Zoeken op trefwoorden"
TRACKING Advertentie → Adverteerder → Globaal (-1 = overnemen)
TRACKLOG #__banner_tracks (type 1=klik, 2=impressie, per uur)
KLIKSTROOM task=click&id=X → tellen → doorverwijzen naar klik-URL
OVERRIDE templates/{tpl}/html/mod_banners/default.php
CTR klikken / impressies × 100
BEVEILIGING custombannercode = ongewijzigde code → alleen vertrouwde groepen
API /api/index.php/v1/banners (headless)
TABELLEN #__banners, #__banner_clients, #__banner_tracks
Naar boven11. Samenvatting
Joomla's Advertenties is een complete, zelfgehoste advertentieserver die zich verborgen houdt in Joomla. Zodra je het op die manier bekijkt, zie je de component niet langer als een eenvoudige afbeelding-uploader, maar als een compact en krachtig advertentiesysteem.
Het biedt onder andere:
- Weergave: rotatie, sticky-prioriteit, aantallen en willekeurige volgorde.
- Targeting: op trefwoord, categorie, adverteerder en taal.
- Limieten: impressielimieten, planning en factureringscycli.
- Analyse: first-party tracking van impressies en klikken.
- Integratie: de gedeelde categoriestructuur, ACL en een overzichtelijk MVC-model.
- Privacy: geen extern advertentienetwerk en standaard geen cookies.
De gegevens staan in Joomla, maar de weergave kan overal plaatsvinden, van een klassieke module tot een headless React-frontend. De belangrijkste regel om te onthouden is de scheiding van verantwoordelijkheden: de component beheert de gegevens, de module toont ze en de template-override bepaalt hoe ze eruitzien.
Als je betaalde advertenties, interne promoties of sponsorrotaties beheert en je wilt deze tellen, begrenzen en targeten zonder afhankelijk te zijn van een extern advertentienetwerk, dan heeft Joomla's Advertenties alles al in huis. De uitdaging zit niet in de functionaliteit. De uitdaging is weten dat die er is.
Naar boven

Joomla specialist en Linux admin voor snelle, veilige en schaalbare websites.


