Statisztikai, SEO és e-mail kampány rendszer
A platformhoz tartozó mérő- és kampányrendszer. Méri a látogatókat és a bevételt, figyeli a SEO-t, és az e-mail kampányok egy részét magától küldi. A kód nagy része védekezés: arról szól, hogy ne küldjek rossz levelet rossz embernek.
Én terveztem és fejlesztettem, az adatgyűjtéstől a kampánylogikáig.
Egy jegyértékesítőnél a marketing és a keresőforgalom dönti el, hányan jutnak el a vásárlásig. A kézi munka, vagyis a jelentések, a kampánylevelek és a SEO-ellenőrzés lassú, és ritkán készül el időben.
Egy helyre akartam hozni a mérést, a SEO felügyeletét és a kampányküldést. A rutin menjen magától, de úgy, hogy közben ne ártsak a feliratkozóknak és a levelezés hírnevének.
Eseménystatisztika és bevétel
Eseményenkénti eladási és érkezési grafikon, jegytípusonkénti bevétel, konverzióelemzés, ajánlói és hűségmutatók, exportálható riportokkal.
Saját webanalitika
Élő aktív látogatók, oldalmegtekintések, forrásmegoszlás, vásárlási tölcsér, hőtérkép, kattintás- és görgetéselemzés és munkamenet-visszajátszás.
SEO automatizálás
Napi hibafigyelés, heti teljesítménymérés a kulcsoldalakra, keresőadatok letöltése és heti jelentés riasztással, automatikus sitemap és indexelési értesítés.
Kampány e-mailek
Elhagyott kosár emlékeztető két lépcsőben, visszahozó levél a régóta nem vásárlóknak, esemény előtti ajánlás a jegytulajdonosoknak, esemény utáni értékelő kérés.
Személyre szabott ajánló
Heti ajánló e-mailben vagy push értesítésben, a felhasználó városa, zenei ízlése és ismerősei alapján pontozott események alapján.
Marketing vázlatok
A közelgő eseményekből poszt- és hirdetési vázlatok készülnek, amelyek jóváhagyásra várnak: a rendszer nem posztol és nem költ önállóan.
Konverziós tölcsér lépésenként, forgalmi források és profil szerinti bontás. A vendégek nevei és e-mail címei levágva.
Márka- és ügyfélnevek, valamint személyes adatok nélkül (kivéve az alkalmazás áruházi képeit).
Nem posztol, nem költ
A közelgő eseményekből poszt- és hirdetési vázlatokat készít, de azok jóváhagyásra várnak. A hirdetési költségre csak javaslatot ad.
Személyre szabott ajánló
A heti ajánló a felhasználó városa, zenei ízlése és ismerősei alapján pontozza az eseményeket, és e-mailben vagy push értesítésben megy ki.
Kontrollcsoporttal mérek
A kampány valódi hatását úgy mérem, hogy a kontrollcsoport kiszámolt ajánlót kap, de nem kapja meg a levelet. Így látszik, mit hozott a küldés.
Ne küldjek rossz levelet
Minden kampányhoz van kapcsoló, próbafuttatás küldés nélkül, címzett-korlát egy futásra, várakozási idő ugyanannak a címzettnek, tiltólista és közös heti keret. A visszahozó levél például alapból ki van kapcsolva, és egy futásban legfeljebb 150 címzettnek megy.
Miért nem kapott levelet?
A küldési szabály nem az első elutasítási okot adja vissza, hanem az összeset. Így egy előnézetben pontosan látom, miért maradt le valaki a listáról.
Az analitika ne hizlalja az adatbázist
A nyers látogatói eseményeket percenként összesítem, napi összesítőket készítek, és a nyers sorokat csak az összesítés után törlöm. A visszanézhető adat megmarad, a tábla viszont nem nő a végtelenségig.
Védett kampányküldés
Kapcsoló minden kampányhoz, próbafuttatás küldés nélkül, címzett-adagkorlát, ismételt küldés elleni várakozási idő, tiltólista és közös heti keret, hogy a levelezési hírnév és a feliratkozók bizalma ne sérüljön.
Mérhető hatás
Nyitás, kattintás és vásárlás levéltípusonként, A/B változatok kiosztása és a kampány valódi hatásának (uplift) mérése, hogy ne csak küldés, hanem eredmény legyen.
Terhelés nélküli analitika
A nyers látogatói események percenként összesítve tárolódnak, napi tartós összesítők készülnek, a nyers sorok pedig csak az összesítés után törlődnek, így a visszanézhető adat megmarad, az adatbázis nem hízik el.
Újrafuttatható adatletöltések
A külső adatforrások szinkronjai újrafuttathatók, egy nap újratöltése felülírja a régit, így hiba vagy kiesés után is tiszta marad a statisztika.
Küldési szabályok, magyarázattal
Minden ajánló ezen a döntési ponton megy át. A rendszer nem az első elutasítási okot adja vissza, hanem az összeset, így egy előnézet megmutatja, pontosan miért nem kap valaki levelet.
public function evaluate(User $user, string $channel, ?CarbonInterface $now = null): PolicyDecision
{
$now = ($now ?? Carbon::now())->copy();
$reasons = []; // collect ALL reasons, not just the first, so a preview can explain every skip
if (! (bool) $this->cfg('enabled', false)) {
$reasons[] = 'kill_switch_off';
}
if ($user->is_banned || $user->deleted_at) {
$reasons[] = 'account_blocked';
}
if ($channel === self::CHANNEL_EMAIL) {
if (! (bool) $user->is_subscribed) {
$reasons[] = 'no_marketing_consent';
}
if ($this->emailSuppressed(trim((string) $user->email))) {
$reasons[] = 'email_suppressed';
}
} elseif ($channel === self::CHANNEL_PUSH) {
if ($this->isQuietHour($now)) {
$reasons[] = 'quiet_hours';
}
}
// ... weekly cap from the shared marketing ledger, then the holdout control group
}
A mérés, a SEO felügyelet és a kampányok egy helyről, nagyrészt magától futnak. Látom, mi hoz látogatót és vásárlót, és ahol költség vagy kockázat van, ott marad az emberi jóváhagyás.
Mérnél, SEO-t felügyelnél, vagy kampányokat automatizálnál?
Segítek összerakni egy olyan rendszert, ami méri, mi működik, és védi a feliratkozóidat.
További projektek
Média- és fájlkiszolgáló (saját CDN)
Kép- és videófeldolgozás, adaptív streaming és megszakadás nélküli, darabolt feltöltés önálló szolgáltatásként.
Esettanulmány → Webes üzleti rendszerFogászati praxismenedzsment
Időpontok, kezelési karton, pénztár, számlázás és hatósági jelentések egy rendszerben, több rendelő számára.
Esettanulmány → WebáruházAutós és outdoor webáruház
Méretpontos termékkereső, akciók és kedvezménykódok, több mint 15 000 kiszolgált rendeléssel.
Esettanulmány →