Ugrás a tartalomra
Rapcsány Krisztián Rapcsány Krisztián
← Összes projekt Adatvezérelt marketing automatizálás

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.

PHP Laravel 12 Redis Üzenetsorok Webanalitika SEO automatizálás E-mail és push
A feladat
Szerepem

É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.

A megoldás
01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

Képernyőképek
A regisztrációtól a vásárlásig

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).

Ami különleges benne

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.

Kihívások, amikbe belefutottam
01

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.

02

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.

03

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.

A motorháztető alatt

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.

Valódi kód

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.

RecommendationPolicy.php
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
}
Eredmény

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

Ajánlatot kérek →