Ugrás a tartalomra
Rapcsány Krisztián Rapcsány Krisztián
← Összes cikk
2 perc olvasás

Hogyan ne küldj rossz levelet rossz embernek

E-mail Laravel Marketing

Az e-mail kampányoknál nem a küldés a nehéz, hanem az, hogy ne küldjek rossz levelet rossz embernek. A kampányrendszeremben ezért a kód nagy része védekezés.

Egy döntési pont

Minden ajánló egyetlen helyen megy át. Ez a hely nem az első elutasítási okot adja vissza, hanem az összeset. Így egy előnézetben pontosan látom, miért marad le valaki a listáról.

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
}

Kivonat valódi kódból, anonimizálva.

A védelmi rétegek

  • Kapcsoló minden kampányhoz, alapból kikapcsolva.
  • 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 hozzájárulás-ellenőrzés.
  • Közös heti keret, és csendes órák a push értesítésnél.

Kontrollcsoport

A kampány hatását kontrollcsoporttal mérem: a kontrollcsoport kiszámolt ajánlót kap, de nem kapja meg a levelet. A különbség mutatja meg, hogy a küldés mit hozott.

Hasonló problémán dolgozol?

Ha elakadtál, vagy átnéztetnéd a megoldásodat, írj, szívesen megnézem.

Írok neked →
Ajánlatot kérek →