Ajánlatot kérek
Munkák
  • Meghívós oldal
20267 perces olvasmány

Ad Absurdum

Kétnyelvű meghívós oldal egy budapesti eseményklubnak, kihelyezésenként mért QR-kampánnyal és kétlépcsős feliratkozással.

Röviden

  • Az Ad Absurdum meghívásos eseményklub, és a vendégei a helyszíneken kihelyezett QR-kódokról érkeznek.
  • Két helyszínen hét QR-kód él, mindegyik saját paraméterrel, így minden feliratkozó visszavezethető a kódjára.
  • Az első lépés a terv szerint fél perc alatt kitölthető telefonon, a második önkéntes, és nagyobb esélyt ad a havi sorsoláson.
  • A feliratkozás kettős megerősítéssel kerül a MailerLite-ba, a hozzájárulás idejével, IP-címével és szövegének verziójával.
Az Ad Absurdum nyitóoldala asztali nézetben
Az Ad Absurdum nyitóoldala telefonon

Minden feliratkozó visszavezethető arra a QR-kódra, amelyet a helyszínen beolvasott.

Számokban

  • 7

    QR-kód él két helyszínen, eseményenként és asztalonként

  • 25

    mező kerül a hírlevél-adatbázisba, két lépésben gyűjtve

  • 81

    automatikus teszt fut 8 képernyőszélességen, 5 oldalon és 2 nyelven

Kiindulás

Az Ad Absurdum budapesti, meghívásos eseményklub. Az indulásra titokzatos oldalt kért, amelyen csak a név áll, és annyi, hogy „Hamarosan”. A vendégek többsége a partnerhelyszíneken kihelyezett QR-kódokról érkezik, egy buli közben, telefonnal a kezében.

Ebből három követelmény jött. A jelentkezésnek a terv szerint 25–30 másodperc alatt meg kell lennie. Minden feliratkozóról tudni kell, melyik helyszínről, melyik eseményről és melyik kódról érkezett. A klub pedig sokat szeretett volna tudni a vendégeiről, sokkal többet, mint amennyit egy buliban bárki kitölt.

Ezért a jelentkezés két lépésből áll. Az első egy rövid, koppintással kitölthető űrlap. A második egy önkéntes profil, amelyet a köszönőoldal és egy három nappal későbbi levél kínál fel.

Az oldal egy jóváhagyott, részletes látványtervből épült. Elefántcsont alapon Bodoni Moda és Archivo betű áll, dupla hajszálvonalas meghívókeret fogja össze, és a fejlécben élő, római számos dátumsor fut.

A QR-kódok nyilvántartása

Egy kinyomtatott QR-kódot utólag nem lehet javítani. Ezért minden kód egyetlen CSV-táblázatból készül, és URL-t kézzel senki nem ír. A generátor megáll, ha egy érték nem szabályos azonosító, ha a közeg ismeretlen, vagy ha egy sor kétszer szerepel. A kis- és nagybetű is számít, mert a Google Analytics és a MailerLite két külön forrásnak látná ugyanazt a helyszínnevet kis és nagy kezdőbetűvel.

Paraméter Érték
utm_source a helyszín azonosítója
utm_medium qr-event az eseményen, qr-table az asztalon
utm_campaign a műfaj és a dátum, vagy always-on az állandó kódoknál

A kódok nyomdai SVG-ben és 1200 pixeles PNG-ben készülnek, Q szintű hibajavítással, amely a kopott matrica 25 százalékát is kibírja, és négymodulos csendes zónával. A nyomtatási előírás is a nyilvántartás része. A kód oldala legalább a beolvasási távolság tizede, a kód soha nem inverz, a közepén nincs logó, és nyomtatás előtt mindegyiket ki kell próbálni. A kész fájlok a kódtárban vannak, így a repó és a kinyomtatott kódok soha nem térnek el egymástól.

Két helyszínen hét kód él. Öt egy-egy eseményhez tartozik, kettő állandóan az asztalokon van.

Az első érintés számít

Aki ma beolvas egy kódot, és csak napok múlva iratkozik fel otthon, az is a kódjához tartozik. Az oldal az első érkezés paramétereit a böngészőben egyszer rögzíti, és később nem írja felül.

A mérést szándékosan három forrásra osztottuk.

  1. A feliratkozásokat kódonként a MailerLite mezői mutatják. Ez pontos, és nem függ a sütihozzájárulástól.
  2. A beolvasásokat a Vercel süti nélküli analitikája számolja, ezért ez sem kér hozzájárulást.
  3. A Google Analytics csak hozzájárulás után tölt be. Ezért kevesebbet mutat, és a beolvasásból lett feliratkozás arányát soha nem ebből számoljuk.

Feliratkozás két lépésben

A vendég útja ezeken a pontokon megy át.

  1. A vendég beolvassa a kódot, és kitölti az első űrlapot. A szerver megerősítetlen állapotban létrehozza a kapcsolatot a MailerLite-ban.
  2. A MailerLite megerősítő levelet küld. A megerősítés után a vendég a köszönőoldalra érkezik.
  3. A csoportba lépés elindítja az üdvözlő automatizmust.
  4. Három nappal később egy levél a második lépéshez hívja, egy aláírt linkkel.

Az első űrlap tíz érdeklődési kört, nemet, születési évet és nyelvet kér, főleg koppintással. A második lépés többet kérdez (zenét, gasztronómiát, társasági formát, foglalkozást, várost), és jutalmat ad érte: nagyobb esélyt a havi VIP-sorsoláson, a vendég ízléséhez illő meghívókat, elővételi és utolsó pillanatos értesítést. A gomb felirata „Több esélyt kérek”.

A MailerLite buktatói

A MailerLite API-ja néhány helyen mást csinál, mint amit egy fejlesztő elsőre várna. Ezeket egyenként kezeltük.

  • A létrehozás felülír. Ha egy már aktív tag újra kitölti az űrlapot, a beküldött állapot visszaminősítené megerősítetlenné. Ezért a szerver előbb megkeresi a kapcsolatot, és aktív tagnál nem küld állapotot.
  • A leiratkozott címet az API nem tudja újraaktiválni, mégis sikeres választ ad. A mi szerverünk ilyenkor ütközést jelez, és nem mutat hamis sikert.
  • A profillépés csak létező feliratkozót frissít, így vele nem lehet a kettős megerősítést megkerülve címet felvenni.
  • A source foglalt mezőnév, ezért a mi mezőnk neve utm_source.
  • Az ismeretlen mezőt az API szó nélkül eldobja. Ezért mind a 25 mező és a két csoport egyetlen sémafájlban él. Egy állapotellenőrző végpont az élő fiókkal veti össze, egy beállító szkript pedig létrehozza, ami hiányzik.
  • A megerősítés utáni átirányítás nem helyettesíti be az e-mail-címet, a sablonváltozó betű szerint érkezik meg. A köszönőoldal ezt felismeri, és megkéri a vendéget, hogy írja be a címét.

Minden hívásnak 8 másodperces időkorlátja van. Egy éles telepítés kulcs nélkül hangosan, 500-as hibával áll meg, fejlesztés közben pedig próbaüzemben fut, és semmit nem küld élesbe.

Védelem a linkeken és az űrlapon

A második lépés linkje HMAC-aláírást visz, amely az e-mail-címből és egy titokból készül. Az ellenőrzés egyszerű újraszámolás, MailerLite-hívás nélkül, és egy újrafeliratkozás nem teszi érvénytelenné a már elküldött linkeket.

A beküldést kétszintű korlát védi: percenként 60 kérés, és tíz percenként 30 olyan beküldés, amely a MailerLite-ot is eléri. A második szint csak az ellenőrzésen átment kéréseket számolja, így egy elgépelés nem fogyasztja a keretet. Az elutasított kéréseket nem jegyezzük fel, mert egy zsúfolt helyszínen sok vendég osztozik egy IP-címen, és a keret különben soha nem ürülne ki. A botok egy rejtett mezőn akadnak fenn, csendes sikert kapnak, és nem kerülnek a listára.

Adatvédelem a kódban

A hozzájárulás bizonyítéka a kapcsolaton marad: az időpont, az IP-cím és a hozzájárulási szöveg verziója. A különleges adatok (kapcsolati státusz, társasági típus, spirituális események iránti érdeklődés) külön hozzájárulás mögött vannak. Ha a vendég ezt nem jelöli be, a mezők eltűnnek, és a szerver üresre írja őket, így a visszavonás a korábbi válaszokat is törli. A vallást csak eseményérdeklődésként kérdezzük.

A 18 éves korhatár gördülő, mert az aktuális évből számoljuk, így 2027-ben sem utasít el új nagykorúakat. A sütisávot a láblécből bármikor újra meg lehet nyitni. Az üzemeltetőnek küldött értesítő levelekben nincs személyes adat, csak forrás, nyelv, állapot és darabszám, így a levélküldő szolgáltató nem kerül az adatfeldolgozók közé.

Két nyelv villanás nélkül

A nyelvet a szerver dönti el egy sütiből, alapból magyar. A böngésző nyelvét szándékosan nem használjuk, mert a kliensoldali váltás a köszönőoldalon 0,088-as elrendezéscsúszást (CLS) okozott, a szerveroldali váltás pedig villanásmentes. A gyakori kérdések szövege egy helyen él, így a látható lista és a FAQPage strukturált adat szó szerint egyezik.

Az oldalt 81 automatikus teszt védi. Lefut 8 képernyőszélességen, 280-tól 1440 pixelig, 5 oldalon és 2 nyelven, minden párosításban, és egy teszt a főcím méretezését nézi. Mindegyik ellenőrzi, hogy semmi nem lóg ki a képernyőről, és hogy a CLS 0,02 alatt marad. A nagy, egysoros „AD ABSURDUM” felirat konténermérethez igazodó egységekben van megadva, mért betűszélességekből számolva.

Egy offline kampány akkor mérhető, ha a kódot ugyanaz a nyilvántartás nyomtatja ki, amelyből a riport készül.

Amit ebből Önnek érdemes tudni

Ha plakátot, szórólapot vagy asztali kártyát mérne, a kódok nyilvántartása és az első érintés megőrzése a legfontosabb rész. A weboldalkészítésről külön oldalon írunk, a munka menetéről pedig az Így dolgozunk oldalon.

Mit építettünk

  • Kihelyezésenként mért QR-kampány

    Minden kihelyezett kód saját QR-kódot és mérési paramétert kapott: két helyszínen hét kód, eseményenként és asztalonként. Így látható, melyik kódról érkezik a legtöbb feliratkozó.

  • Az Ad Absurdum belépési űrlapja

    Feliratkozás két lépésben

    Az első lépés egy rövid űrlap, amelyet a MailerLite megerősítő levele élesít. A második, önkéntes lépésben a feliratkozó több adatot ad meg, és ezért nagyobb esélyt kap a havi sorsoláson.

  • Az Ad Absurdum gyakori kérdései

    Két nyelven

    Az oldal teljes egészében magyarul és angolul is elérhető, a nyelvváltó a fejlécben van.

Adatlap

Típus
Meghívós oldal
Szerepünk
Fejlesztés, mérés, hírlevél-integráció
Állapot
Élesben
Év
2026
Nyelv
Magyar, angol
Technika
  • Next.js
  • React
  • TypeScript
  • MailerLite
  • Resend
  • Playwright
Élő oldal
adabsurdum.hu

Ilyet építünk Önnek is

Webdesign és fejlesztés

Azért tervezzük az oldalt, hogy a látogatóiból ajánlatkérés vagy vásárlás legyen. Sablont nem használunk, az oldal telefonon is gyors, és a technikai SEO az indulásig elkészül.