Optimierung für Media-Channels ohne Daten zu Reichweite und Häufigkeit

Bei der Budgetoptimierung mit Meridian wird das optimale Gesamtbudget pro Channel für einen Satz an geografischen Einheiten und Zeiträumen geschätzt. Dabei wird davon ausgegangen, dass das Flighting-Muster jedes Channels fest ist und dass die Kosten pro Media-Einheit nicht vom zugewiesenen Budget des Channels abhängen. Die Kosten pro Media-Einheit können je nach geografischer Einheit, Zeitraum oder beidem variieren, hängen aber nicht vom zugewiesenen Budget des Channels ab. Anhand dieser Annahmen wird festgelegt, wie ein bestimmtes Channelbudget auf eine Anzahl von Media-Einheiten für jede geografische Einheit und jeden Zeitraum übertragen wird.

Das Flighting-Muster eines Channels ist als relative Verteilung von Media-Einheiten auf geografische Einheiten und Zeiträume definiert. Standardmäßig basiert die Optimierung auf dem Satz an geografischen Einheiten und Zeiträumen aus den Verlaufsdaten. Dabei wird das bisherige Flighting-Muster als Annahme verwendet. Das Flighting-Muster kann jedoch angepasst und auf andere Zeiträume als das bisherige Zeitfenster angewendet werden. So kann der Budgetplanung beispielsweise ein hypothetisches Flighting-Muster für ein zukünftiges Zeitfenster zugrunde gelegt werden.

Die Kosten pro Media-Einheit eines Channels werden aus den bereitgestellten Eingabedaten abgeleitet. Sie können (müssen aber nicht) je nach geografischer Einheit, Zeitraum oder beidem variieren. Standardmäßig basiert die Optimierung auf dem Satz an geografischen Einheiten und Zeiträumen aus den Verlaufsdaten. Dabei werden die bisherige Kosten pro Media-Einheit als Annahme verwendet. Die Kosten pro Media-Einheit können jedoch angepasst werden, um beispielsweise erwartete zukünftige Kosten widerzuspiegeln.

Das Flighting-Muster und die Kosten pro Media-Einheit werden so angewendet: Angenommen, Sie möchten eine Budgetoptimierung für \(N_M\) Media-Channels für einen Satz an Regionen \(G\) und ein bestimmtes Zeitintervall \([t_0,t_1]\)berechnen. Betrachten Sie einen beliebigen Budgetvektor,\(b=(b_1,\ldots b_{N_M})\) wobei \(b_i \geq 0\) das Gesamtbudget für den Channel \(i\) für diese Regionen und Zeiträume bezeichnet. Angenommen,\(c_i=\sum\limits_{g \in G} \sum\limits_{t=t_0}^{t_1}\ \ddot{x}^{[M]}_{g,t,i} u_{g,t,i}^{[M]}\) ist das tatsächliche bisherige Budget für jeden Channel \(i\) für die Optimierungsregionen und ‑zeiträume. Um die Media-Einheiten für jede Region und jeden Zeitraum unter dem Budgetvektor \(b\)zu erhalten, skalieren Sie die bisherigen Media-Einheiten der einzelnen Channels mit dem Verhältnis \(\frac{b_i}{c_i}\).

Entsprechend definieren Sie die rohen Media-Einheiten unter einem bestimmten Budgetvektor \(b\)als:

\( \ddot{x}_{g,t,i}^{[b]} = \dfrac{\ddot{x}^{[M]}_{g,t,i}b_i }{c_i}\) für \(t \in [t_0-L,t_1] \)

und die entsprechenden umgewandelten Media-Einheiten als:

\( x_{g,t,m}^{[b]} = L_{g,i}^{[M]}\left( \ddot{x}_{g,t,i}^{[b]} \right) = \dfrac{x_{g,t,i}b_i}{c_i} \)

Die Media-Einheiten werden für alle Zeiträume skaliert, einschließlich Zeiträume vor \(t_0\). Das Budget \(C\) entspricht dem Zeitraum\([t_0,t_1],\) und in diesem Szenario wird das erwartete Ergebnis erfasst, das im selben Zeitraum \([t_0,t_1]\)generiert wird. Das umfasst Ergebnisse, die durch Media erzielt werden, die vor \(t_0\)ausgeführt werden. Die verzögerten Auswirkungen von Media, die nach\(t_1\)ausgeführt werden, werden jedoch nicht berücksichtigt. Daher entspricht das erwartete Ergebnis nicht genau dem Budget, sollte aber ähnlich sein, wenn das Zeitintervall lang ist oder die Media-Ausführung während \([t_0-L,t_0-1]\) der Media-Ausführung während\([t_1+1,t_1+L]\)ähnelt.

Diese Definition hat Vor- und Nachteile. Ein Vorteil ist, dass das erwartete Ergebnis nicht von der zukünftigen Media-Ausführung nach \(t_1\)abhängt, die möglicherweise unbekannt ist. Dies ist besonders bei hill_before_adstock=False ein Problem. In diesem Fall kann die Media-Ausführung nach\(t_1\) den verzögerten Effekt von Media ändern, die während\([t_1+1,t_1+L]\)ausgeführt werden.

Optimierung mit festem Budget

Sie können eine Optimierung mit einem festen Budget mit einem Gesamtbudget \(C\)verwenden. Definieren Sie die Menge aller Budgetvektoren mit diesem Gesamtbudget als \( B_C = \left\{ b: \sum\limits_{i=1}^{N_M} b_i=C \right\} \). Die optimierte Menge ist das erwartete Ergebnis, das so definiert ist:

$$ \begin{multline*} \text{ExpectedOutcome}(b) = \sum\limits_{g \in G} \sum\limits_{t=t_0}^{t_1} E \left( \overset \sim Y_{g,t}^{ \left( \left\{ x_{g,t,i}^{[b]} \right\} \right) } \Bigg| \{z_{g,t,i}\} \right) \\ = \sum\limits_{g \in G} \sum\limits_{t=t_0}^{t_1} u_{g,t}^{[Y]}L_{g,t}^{[y]-1} \left( \mu_t + \tau_g + \sum\limits_{i=1}^{N_C} \gamma^{[C]}_{g,i}z_{g,t,i}\ + \sum\limits_{i=1}^{N_M} \beta^{[M]}_{g,i} \text{HillAdstock} \left( \left\{ x_{g,t-s,i}^{[b]} \right\}_{s=0}^L; \alpha^{M}_i, ec^{[M]}_i, \text{slope}^{[M]}_i \right) \right) \end{multline*} $$

Die tatsächlichen Parameterwerte sind unbekannt. Da Meridian ein bayessches Modell ist, hat das erwartete Ergebnis eine Posterior-Verteilung. Als Zielfunktion der Budgetoptimierung wird der Posterior-Mittelwert des erwarteten Ergebnisses verwendet, der dem Mittelwert der Posterior-Verteilung des prognostizierten Ergebnisses entspricht. Der optimale Budgetvektor ist definiert als:

$$ \begin{align*} b_{optimal} = \underset{b \in B_C}{\text{argmax}}\ & E\left[ \text{ExpectedOutcome}(b) | \text{Data} \right] \\ = \underset{b \in B_C}{\text{argmax}}\ & \frac{1}{J} \sum\limits_{j=1}^J \sum\limits_{g \in G} \sum\limits_{t=t_0}^{t_1}u_{g,t}^{[y]}L_{g,t}^{[Y]-1} \Biggl( \mu_t^{(j)} + \tau_g^{(j)} + \sum\limits_{i=1}^{N_C} \gamma_{g,i}^{[C](j)}z_{g,t,i} \\& + \sum\limits_{i-1}^{N_M} \beta_{g,i}^{[M](j)} \text{HillAdstock} \left( \left\{ x_{g,t-s,i}^{[b]} \right\}_{s=0}^L; \alpha_i^{[M](j)}, ec_i^{[M](j)}, \text{slope}_i^{[M](j)} \right) \Biggl) \\ = \underset{b \in B_C}{\text{argmax}}\ & \frac{1}{J} \sum\limits_{j=1}^J \sum\limits_{g \in G} \sum\limits_{t=t_0}^{t_1}u_{g,t}^{[Y]}L_{g,t}^{[Y]-1} \left( \sum\limits_{i=1}^{N_M} \beta_{g,i}^{[M](j)} \text{HillAdstock} \left( \left\{ x_{g,t-s,i}^{[b]} \right\}_{s=0}^L; \alpha_i^{[M](j)}, ec_i^{[M](j)}, \text{slope}_i^{[M](j)} \right) \right) \end{align*} $$

Dabei gilt:

  • \(J\) ist die Gesamtzahl der MCMC-Posterior-Ziehungen (Markow Chain Monte Carlo).
  • Die \(j\). Posterior-Ziehung jedes Parameters wird mit dem hochgestellten \(^{(j)}\)gekennzeichnet.

Optimierung mit flexiblem Budget

Bei der Optimierung mit flexiblem Budget wird das erwartete Ergebnis optimiert, während das Gesamtbudget variieren kann. Die Optimierung ist entweder auf den minimalen Grenz-ROI oder die Ziel-ROI-Beschränkungen begrenzt.

Beschränkung – Ziel-ROI

Wenn der Ziel-ROI festgelegt ist, durchsucht Meridian alle Budgetvektoren \(b=(b_1,\ldots ,b_{N_M})\) , sodass der Gesamt-ROI \(\text{ROI} \geq \text{ROI}_{target}\ \forall m\)ist, wobei das Gesamtbudget \(\sum\limits_{i=1}^{N_M} b_i\)variieren darf. Der optimale Budgetvektor wird so definiert:

$$ \begin{align*} b_{optimal} = \underset{b}{\text{argmax}}\ & E\left[ \text{ExpectedOutcome}(b) | \text{Data} \right] \\ = \underset{b}{\text{argmax}}\ & \frac{1}{J} \sum\limits_{j=1}^J \sum\limits_{g \in G} \sum\limits_{t=t_0}^{t_1}u_{g,t}^{[Y]}L_{g,t}^{[Y]-1} \Biggl( \mu_t^{(j)} + \tau_g^{(j)} + \sum\limits_{i=1}^{N_C} \gamma_{g,i}^{[C](j)}z_{g,t,i} \\ & + \sum\limits_{i-1}^{N_M} \beta_{g,i}^{[M](j)} \text{HillAdstock} \left( \left\{ x_{g,t-s,i}^{[b]} \right\}_{s=0}^L; \alpha_i^{[M](j)}, ec^{[M](j)}_i, \text{slope}_i^{[M](j)} \right) \Biggl) \\ = \underset{b}{\text{argmax}}\ & \frac{1}{J} \sum\limits_{j=1}^J \sum\limits_{g \in G} \sum\limits_{t=t_0}^{t_1}u_{g,t}^{[Y]}L_{g,t}^{[Y]-1} \left( \sum\limits_{i=1}^{N_M} \beta_{g,i}^{[M](j)} \text{HillAdstock} \left( \left\{ x_{g,t-s,i}^{[b]} \right\}_{s=0}^L; \alpha_i^{[M](j)},ec_i^{[M](j)},\text{slope}_i^{[M](j)} \right) \right) \\ \end{align*} $$

\( s.t.\ \dfrac{\sum\limits_{i=1}^{N_M} \text{ExpectedOutcome}_i}{ \sum\limits_{i=1}^{N_M} b_i } > \text{ROI}_{target} \)

Die Einschränkung für den Ziel-ROI wird auf Ebene des Gesamt-ROI für das Marketing und nicht auf Channelebene angewendet.

Beschränkung – Minimaler Grenz-ROI

Wenn der minimale Grenz-ROI angegeben ist, sucht Meridian in allen Budgetvektoren \(b=(b_1,\dots,b_{N_M})\) , sodass der Grenz-ROI\(\text{mROI}_i \geq \text{mROI}_{minimal}\ \forall i\)ist, wobei das Gesamtbudget \(\sum\limits_{i=1}^{N_M} b_i\) variieren darf. Der optimale Budgetvektor wird so definiert:

$$ \begin{align*} b_{optimal} = \underset{b}{\text{argmax}}\ & E\left[ \text{ExpectedOutcome}(b) | \text{Data} \right] \\ = \underset{b}{\text{argmax}}\ & \frac{1}{J} \sum\limits_{j=1}^J \sum\limits_{g \in G} \sum\limits_{t=t_0}^{t_1}u_{g,t}^{[Y]}L_{g,t}^{[Y]-1} \Biggl( \mu_t^{(j)} + \tau_g^{(j)} + \sum\limits_{i=1}^{N_C} \gamma_{g,i}^{[C](j)}z_{g,t,i} \\ & + \sum\limits_{i-1}^{N_M} \beta_{g,i}^{[M](j)} \text{HillAdstock} \left( \left\{ x_{g,t-s,i}^{(b)} \right\}_{s=0}^L; \alpha_i^{[M](j)}, ec_i^{[M](j)}, \text{slope}_i^{[M](j)} \right) \Biggl) \\ = \underset{b}{\text{argmax}}\ & \frac{1}{J} \sum\limits_{j=1}^J \sum\limits_{g \in G} \sum\limits_{t=t_0}^{t_1}u_{g,t}^{[Y]}L_{g,t}^{[Y]-1} \left( \sum\limits_{i=1}^{N_M} \beta_{g,i}^{[M](j)} \text{HillAdstock} \left( \left\{ x_{g,t-s,i}^{(b)} \right\}_{s=0}^L; \alpha_i^{[M](j)},ec_i^{[M](j)},\text{slope}_i^{[M](j)} \right) \right) \\ \end{align*} $$

\( s.t.\ \text{mROI}_i(b_i) > \text{mROI}_{minimal}\ \forall i \)

Der minimale Grenz-ROI wird auf Channelebene und nicht auf Marketingebene insgesamt angewendet.

Ausgabenbeschränkungen auf Channelebene

Ausgabenbeschränkungen auf Channelebene sind sowohl für die Optimierung mit festem als auch mit flexiblem Budget verfügbar. So lassen sich unangemessene Optimierungsergebnisse verhindern, z. B. wenn alle Ausgaben auf einen einzigen Channel entfallen. Die Ausgabenbeschränkung auf Channelebene wird so definiert:

$$ (b_i^{'} \times LB_i) \leq b_i \leq (b_i{'} \times UB_i) \space \forall i $$

Dabei gilt:

  • \(b_i^{'}\) sind die nicht optimierten Ausgaben für den Channel \(i\).
  • \(LB_i\) ist die vom Nutzer angegebene Untergrenze mit einem Wert zwischen \(0\)und \(1\).
  • \(UB_i\) ist die vom Nutzer angegebene Obergrenze mit einem Wert über\(1\).