Wanneer komt de AI in beeld?
De AI-assistent verschijnt op twee plekken op het Netwerk:
- Zwevende chat-knop rechtsonder op alle pagina's — open chat, stel vraag, krijg antwoord met aanbevelingen.
- Hybride zoekbalk op de homepage — typ je een keyword, krijg je klassieke zoekresultaten; typ je een volledige vraag, dan krijg je een AI-antwoord met aanbevelingen.
Beide gebruiken hetzelfde ranking-algoritme dat we hieronder beschrijven.
Het ranking-algoritme — exact
Wanneer onze chatbot bedrijven aanbeveelt, hanteren wij een gewogen score. De vraag van de bezoeker wordt door ons AI-model vertaald naar een tool-call met categorie, wijk en zoekterm. Vervolgens haalt onze database alle bedrijven op die aan de filter-criteria voldoen, en rangschikt deze met de volgende formule:
rating × 0.30 + log(reviews) × 0.20 + tier_weight × 0.40 + random × 0.10Met de volgende waarden:
- rating — Google-review-gemiddelde van het bedrijf, schaal 0-5. Bedraagt voor 30% van de score.
- log(reviews) — logaritme van het aantal Google-reviews, met een plafond zodat 1.000 reviews niet 100× zwaarder weegt dan 10. Bedraagt voor 20% van de score.
- tier_weight — abonnementstier van het bedrijf bij Quest Media Group:
Pro = 4.0,Plus = 2.0,Vacatures = 1.5,Basis = 1.0,free = 0.0. Bedraagt voor 40% van de score. - random — willekeurig getal tussen 0 en 1, voor lichte rotatie binnen gelijkwaardige resultaten. Bedraagt voor 10% van de score.
Vóór deze score-berekening filteren wij eerst op relevantie: locatie (wijk/stad), categorie (horeca, kappers, etc.) en — waar relevant — openingstijden. Bedrijven die niet aan de filter-criteria voldoen komen niet voor aanbeveling in aanmerking, ongeacht hun tier.
Wat betekent dit concreet?
Tier-status weegt mee in de ranking. Een Pro-merchant (€99/mnd) met rating 4.0 en 50 reviews kan in de score een free-merchant met rating 4.5 en 50 reviews inhalen. Concreet:
- Free-merchant rating 4.5:
4.5 × 0.30 + log(51) × 0.20 + 0 × 0.40 ≈ 1.35 + 0.10 + 0 = 1.45 - Pro-merchant rating 4.0:
4.0 × 0.30 + log(51) × 0.20 + 4.0 × 0.40 ≈ 1.20 + 0.10 + 1.60 = 2.90
Pro wint, ondanks lagere rating. Daarom moeten gesponsorde aanbevelingen verplicht gelabeld zijn als "Gesponsord" (DSA art. 26) — zowel achter de naam in de tekst als visueel via een oranje badge bij de aanbevelings-card.
Wel: tier-status bepaalt geen relevantie. Een Pro-restaurant in Centrum verschijnt niet in resultaten voor een vraag over "kappers in Kralingen". De filter op locatie + categorie staat vóór de score-berekening.
Wel: free-merchants kunnen winnen door kwaliteit. Een free-merchant met rating 5.0 + 200 reviews krijgt: 5.0 × 0.30 + log(201) × 0.20 + 0 + random ≈ 1.50 + 0.27 + 0.05 ≈ 1.82. Een Basis-merchant met rating 3.0 + 5 reviews: 3.0 × 0.30 + log(6) × 0.20 + 1.0 × 0.40 ≈ 0.90 + 0.04 + 0.40 ≈ 1.34. Free-merchant wint.
Reguliere banner-advertenties (Medium Rect, Leaderboard, Mobile, Half Page, Billboard)
Voor de standaard 6 banner-formaten op zijbalk/inline/banner-zones gebruiken wij gewone carrousel-rotatie: alle goedgekeurde adverteerders binnen dezelfde locatie-tier (Buurt/Wijk/Stad/Regio/Land) krijgen gelijke views ongeacht hun chatbot-tier. Geen score-berekening, willekeurige selectie tot het aantal slots vol is.
Iedere display-ad krijgt een verplicht zichtbaar label conform DSA art. 26: "Advertentie", "Gesponsord", "Partner" of "Aanbevolen" — afhankelijk van de aard van de plaatsing. Het label staat boven de ad-creative en is altijd direct herkenbaar.
Cinematic Hero rotation-algoritme (exclusief Partnership Regio + Land)
Het Cinematic Hero-formaat (1920×600 desktop / 750×400 mobile) is exclusief voor Partnership Regio + Land adverteerders met het vol-pakket. Plaatsing op vijf categorie-landingpages: /vacatures/, /toerist/, /bestel-direct/, /agenda/, /bedrijven/ — niet op de homepage. Adverteerders kiezen zelf welke categorieën relevant zijn.
Per pagina-load wordt één Partner geserveerd. Selectie gebeurt via een gewogen rotation-score:
tier_weight × 0.50 + frequency_cap × 0.25 + category_fit × 0.15 + recency_penalty × 0.05 + random × 0.05- tier_weight (50%) — Land = 2.0, Regio = 1.0. Land-Partners krijgen vaker beurt omdat de hogere tier-fee de exclusiviteit financiert.
- frequency_cap (25%) — Een visitor die dezelfde Partner in de laatste 30 minuten al heeft gezien krijgt deze tijdelijk minder vaak. Voorkomt ad-fatigue. Maximaal 3 impressies van dezelfde Partner per visitor per dag.
- category_fit (15%) — Cosine-similarity tussen Partner-tagline en categorie-doelgroep. Een vacature-Partner krijgt boost op
/vacatures/versus/agenda/. Zorgt automatisch voor relevantie voor de visitor. - recency_penalty (5%) — Net-vertoonde Partner krijgt 1-2 impressies minder kans, ten gunste van andere Partners in dezelfde categorie-pool.
- random (5%) — Pure tiebreaker plus lichte exploration voor nieuwe Partners.
Harde caps:
- Maximaal 5 Partners per categorie in actieve rotatie — garandeert ~20% share per Partner.
- Wachtlijst als categorie vol zit, alternatief-categorie voorstel.
- Frequency-cap per visitor: max 3 Cinematic-impressies van dezelfde Partner per dag (anti-burnout, anti-adblock-driver).
Iedere Cinematic Hero toont een verplicht zichtbaar label conform DSA art. 26: "Partnership" + de naam van de adverteerder. Klik op de tooltip "Waarom zie ik deze ad?" toont: "[Partner-naam] — Partnership [Regio/Land] · plaatsing op /[categorie]/ doelgroep · gesponsord".
De rotation-state wordt persistent gemaakt in de tabel cinematic_slot_reservations (Partner ID, categorie, impressie-tellers per dag/maand). Adverteerders kunnen via het dashboard categorieën in/uit toggle en zien per categorie hoeveel impressies + CTR.
Waarom mengen wij tier mee in de chatbot-ranking?
Twee redenen:
- Bedrijfsmodel. De Pro-tier (€99/mnd) financiert de redactionele content, hosting, AI-kosten en het volledig gratis houden van het Netwerk voor bezoekers en de 213.000+ free-tier-bedrijfspagina's. Tier-weight in de chatbot is een legitieme manier om die investering terug te verdienen — vergelijkbaar met hoe Google-Maps "Promoted Places" mengt met organische resultaten.
- Kwaliteit-correlatie. Bedrijven die een betaald abonnement nemen, investeren ook in hun aanwezigheid: complete bedrijfsinformatie, hoge-resolutie foto's, actuele openingstijden, snelle reactie op berichten. Dat is op zich een kwaliteit-signaal voor bezoekers.
Dit betekent niet dat tier-status onbeperkt boost geeft: rating + review-volume samen wegen voor 50% van de score, tier voor 40%. Een free-merchant met substantieel hogere kwaliteit kan altijd winnen.
Hoe je de AI-aanbevelingen kunt beïnvloeden
Als bezoeker:
- De AI labelt elke gesponsorde aanbeveling met "Gesponsord" + oranje badge. Klik je liever niet op gesponsorde resultaten? Dan is dat altijd zichtbaar.
- De AI is geen verplichte schakel: je kunt zoeken via de klassieke zoekbalk (keyword-mode), de wijk-filters of categorie-pagina's.
- Bij twijfel kun je rechtstreeks op een wijk-pagina kijken voor alle bedrijven in die wijk, gerangschikt op rating zonder tier-mix.
Als bedrijf:
- Onjuiste vermelding of weg-rangschikking: meld dit via /dsa/ (notice-and-action). We reageren binnen 14 dagen.
- Verwijdering van auto-listed pagina (zonder claim): gratis via DSAR-portaal, SLA 30d (verkort tot 7d bij duidelijk onjuiste data).
- Bezwaar tegen moderation-besluit: /dsa/appeal/ binnen 6 maanden.
Andere AI-flows op het Netwerk
De ranking-formule hierboven geldt specifiek voor de chatbot tool find_business. Voor andere AI-functies gelden andere regels:
- Chatbot-tools voor scholen, kinderopvang, evenementen, vacatures, vermiste dieren, OV-storingen: tier-status speelt geen rol. Rangschikking op relevantie + recentheid + Google-rating waar van toepassing.
- Vacature-rangschikking op /vacatures/: betaalde vacatures (€99/mnd-tier) worden bovenaan getoond met "Premium" badge. Daaronder: Indeed-scrape vacatures op recentheid.
- Editorial-content op /nieuws/: redactionele artikelen zijn niet betaald-gewogen. WF4 (artikel-generatie uit FB-posts) gebruikt een AI-model met contextual-link-engine die Pro-merchants vaker noemt — dit is gemerkt als "branded content opportunity" en valt onder de Pro-tier-overeenkomst (zie voorwaarden art. 12.3).
- Tourist-spots op /toerist/: 100% redactioneel, geen tier-status, op tourist-priority + categorie.
Verifieerbaarheid + audit-trail
De broncode van de RPC chatbot_find_business is in te zien als onderdeel van de Supabase-migration-files. De exacte score-formule en tier-weights zijn vastgelegd in een immutable migration — wijziging vereist een nieuwe versie + bestuursbesluit (zie ons repository-pad en docs/compliance/bestuursbesluiten/).
Audits door bezoekers, journalisten of toezichthouders: stuur ons een test-vraag via dpo@questmediagroup.eu en ontvang binnen 14 dagen een reproduceerbare score-uitsplitsing voor elke aanbeveling die je ontving. Conform DSA art. 27 lid 2 + art. 40 (researcher-access).
Wijzigings-protocol
Wezenlijke wijzigingen aan dit algoritme (verandering van weights, toevoeging van factoren, verwijdering van factoren) worden:
- Vooraf vastgelegd als bestuursbesluit in
docs/compliance/bestuursbesluiten/; - Geïmplementeerd via een Supabase-migration met nieuwe versie-stempel;
- Op deze pagina aangekondigd met een changelog-entry onderaan;
- Indien materieel voor adverteerders: minimaal 30 dagen vooraf gemeld via e-mail aan alle paid-tier-merchants.
Contact + klachten
Vragen over de werking van het algoritme: dpo@questmediagroup.eu (DPO Dr. Alderd J. Froolik).
Klacht indienen: via de DSA-meldingsroute (notice-and-action, 14d SLA).
Toezichthouder: Autoriteit Persoonsgegevens (AVG) of de Autoriteit Consument & Markt (DSA-coördinator NL).
Quest Media Group — handelsnaam van Quest Sales & Marketing Automations B.V. · KvK 82781486 · BTW NL862602282B01 · Zwanebloem 47, 2408 LT Alphen aan den Rijn.
Quest Media Group · KvK 82781486 · BTW NL862602282B01 · Zwanebloem 47, 2408 LT Alphen aan den Rijn