Questo documento descrive scenari di budget fissi e flessibili e fornisce esempi per aiutarti a capire come personalizzare l'ottimizzazione del budget.
Budget fisso: massimizza il ROI o il KPI incrementale
In questo scenario per un determinato budget, puoi trovare l'allocazione ottimale tra
strategie e canali di marketing per massimizzare il ritorno sull'investimento (ROI). Se kpi_type
è impostato su non relativo alle entrate e revenue_per_kpi
è sconosciuto, il budget fisso
individua l'allocazione ottimale per massimizzare il KPI incrementale.
Questo scenario rappresenta le impostazioni predefinite ed è eseguito se chiami il metodo
metodo optimize()
della classe BudgetOptimizer
senza ulteriori
argomenti. C'è anche la possibilità di modificare lo scenario di budget fisso
la finestra temporale per l'ottimizzazione, inserendo budget e
allocazioni della spesa pubblicitaria preottimizzate e indicano i limiti inferiore e superiore
per la spesa pubblicitaria.
Esempio di codice
Il seguente esempio di codice mostra uno scenario di budget fisso personalizzato:
budget_optimizer = optimizer.BudgetOptimizer(meridian)
optimization_results = budget_optimizer.optimize(
selected_times=('2023-01-16', '2024-01-15'),
budget=70000000,
pct_of_spend=[0.2, 0.2, 0.2, 0.1, 0.2, 0.1],
spend_constraint_lower=[0.3, 0.2, 0.3, 0.3, 0.3, 0.2],
spend_constraint_upper=[0.3, 0.2, 0.3, 0.3, 0.3, 0.2],
)
Parametri chiave
selected_times
: tupla contenente le dimensioni dell'ora di inizio e di fine per il parametro su cui eseguire l'ottimizzazione. Le dimensioni temporali devono essere allineate Dimensioni ora del meridiano. Per impostazione predefinita, vengono utilizzati tutti i periodi di tempo.Esempio
Per modificare l'intervallo di date:
budget_optimizer = optimizer.BudgetOptimizer(meridian) opt = budget_optimizer.optimize(selected_times=('2023-01-16','2024-01-15')) # date range from week 100 to 200
budget
: numero che indica il budget totale per lo scenario di budget fisso. Il valore predefinito è il budget storico.Esempio
Per modificare il budget in
70000000
:budget_optimizer = optimizer.BudgetOptimizer(meridian) opt = budget_optimizer.optimize(budget=70000000) # change the budget to 150000
pct_of_spend
: elenco numerico delle dimensionin_media
contenente la percentuale allocazione per la spesa pubblicitaria. L'ordine deve corrispondere aInputData.media
con valori compresi tra 0 e 1, sommando i valori per1
. Per impostazione predefinita, l'allocazione storica è in uso. Il budget e l'allocazione vengono utilizzati congiuntamente per determinare spesa a livello di media non ottimizzata, utilizzata per calcolare metriche di rendimento non ottimizzate (ad esempio, ROI) e costruisci il di spesa fattibile a livello di media con i vincoli di spesa.Esempio
Per specificare l'allocazione:
budget_optimizer = optimizer.BudgetOptimizer(meridian) opt = budget_optimizer.optimize(pct_of_spend=[0.2, 0.2, 0.2, 0.1, 0.2, 0.1]) # non-optimized allocation is 20% to channel0, 20% to channel1 etc
spend_constraint_lower
: elenco numerico della lunghezzan_media
da usare in modo diverso i vincoli di spesa per i diversi canali o un singolo valorefloat
come lo stesso vincolo di spesa per tutti i canali media. Indica il limite inferiore di a livello di media. Il limite inferiore della spesa a livello di media è((1 - spend_constraint_lower) * budget * allocation)
. Il valore inserito deve essere tra 0 e 1. Il valore predefinito è 0,3 (ovvero il 70% della spesa pubblicitaria) per budget fisso e 1 (ovvero lo 0% della spesa pubblicitaria) per un budget flessibile.Esempio
Per modificare il vincolo di spesa più bassa:
budget_optimizer = optimizer.BudgetOptimizer(meridian) opt = budget_optimizer.optimize(spend_constraint_lower=[0.3, 0.2, 0.3, 0.3, 0.3, 0.2]) # change the lower bound to 70%, 80%, 70%, 70%, 70% and 80% of media spends
spend_constraint_upper
: elenco numerico della lunghezzan_media
da usare in modo diverso i vincoli di spesa per i diversi canali o un singolo valorefloat
come lo stesso vincolo di spesa per tutti i canali media. Indica il limite superiore di a livello di media. Il limite superiore della spesa a livello di media è(1 + spend_constraint_upper) * budget * allocation)
. Il valore predefinito è 0,3 (ovvero il 130% della spesa pubblicitaria) per un budget fisso e 1 (ovvero il 200% di spesa pubblicitaria) per un budget flessibile.Esempio
Per modificare il vincolo di spesa superiore:
budget_optimizer = optimizer.BudgetOptimizer(meridian) opt = budget_optimizer.optimize(spend_constraint_lower=[0.3, 0.2, 0.3, 0.3, 0.3, 0.2]) # change the upper bound to 130%, 120%, 130%, 130%, 130% and 120% of media spends
Budget flessibile: scegli come target un ROI minimo
In questo scenario per un budget flessibile, devi inserire un target ROI minimo specifico. Questa opzione ti consente di scoprire qual è il budget massimo che puoi spendere senza a qualsiasi limite di budget finché il ROI complessivo raggiunge il valore X del livello complessivo di marketing. Meridian fornisce un budget massimo consigliato, oltre a un allocazione del budget tra i canali media, per raggiungere il ROI target. In particolare, il vincolo di ROI target viene applicato al livello del ROI totale del marketing. e non a livello di canale.
Esempio di codice
L'esempio di codice che segue mostra uno scenario di budget flessibile personalizzato con un ROI minimo target:
budget_optimizer = optimizer.BudgetOptimizer(meridian)
optimization_results = budget_optimizer.optimize(
selected_times=('2023-01-16','2024-01-15'),
fixed_budget=False,
spend_constraint_lower=0.5,
spend_constraint_upper=0.5,
target_mroi=1,
)
Parametri chiave
fixed_budget
: valore booleano che indica se si tratta di un'ottimizzazione del budget fisso o un'ottimizzazione flessibile del budget. Il valore predefinito èTrue
, che indica una il budget giornaliero. SeFalse
, devi specificare anchetarget_roi
otarget_mroi
.target_roi
: numero in virgola mobile che indica il vincolo di ROI target. Utilizzato solo per scenari di budget flessibili. Il budget è vincolato al momento in cui il ROI del la spesa pubblicitaria totale raggiunge iltarget_roi
.Esempio
Per passare allo scenario di budget flessibile e impostare il ROI target su
1
:budget_optimizer = optimizer.BudgetOptimizer(meridian) opt = budget_optimizer.optimize(fixed_budget=False, target_roi=1)
selected_times
: tupla contenente le dimensioni dell'ora di inizio e di fine per il parametro su cui eseguire l'ottimizzazione. Le dimensioni temporali devono essere allineate Dimensioni ora del meridiano. Per impostazione predefinita, vengono utilizzati tutti i periodi di tempo.pct_of_spend
: elenco numerico delle dimensionin_media
contenente la percentuale allocazione per la spesa pubblicitaria. L'ordine deve corrispondere aInputData.media
con valori compresi tra 0 e 1, sommando i valori per1
. Per impostazione predefinita, l'allocazione storica è in uso. Il budget e l'allocazione vengono utilizzati congiuntamente per determinare spesa a livello di media non ottimizzata, utilizzata per calcolare metriche di rendimento non ottimizzate (ad esempio, ROI) e costruisci il intervallo fattibile di spesa a livello di media con i vincoli di spesa.spend_constraint_lower
: elenco numerico della lunghezzan_media
da usare in modo diverso i vincoli di spesa per i diversi canali o un singolo valorefloat
come lo stesso vincolo di spesa per tutti i canali media. Indica il limite inferiore di a livello di media. Il limite inferiore della spesa a livello di media è((1 - spend_constraint_lower) * budget * allocation)
. Il valore inserito deve essere tra 0 e 1. Il valore predefinito è 0,3 (ovvero il 70% della spesa pubblicitaria) per budget fisso e 1 (ovvero lo 0% della spesa pubblicitaria) per un budget flessibile.spend_constraint_upper
: elenco numerico della lunghezzan_media
da usare in modo diverso i vincoli di spesa per i diversi canali o un singolo valorefloat
come lo stesso vincolo di spesa per tutti i canali media. Indica il limite superiore di a livello di media. Il limite superiore della spesa a livello di media è(1 + spend_constraint_upper) * budget * allocation)
. Il valore predefinito è 0,3 (ovvero il 130% della spesa pubblicitaria) per un budget fisso e 1 (ovvero il 200% di spesa pubblicitaria) per un budget flessibile.
Budget flessibile: ROI marginale target
In questo scenario per un budget flessibile, devi inserire un ROI target marginale per di spesa incrementale. Questa opzione indica il budget massimo che puoi spendere senza alcun limite di budget finché il ROI marginale di ciascun canale media non raggiunge la ROI marginale target. È ancora possibile che il ROI marginale di alcuni canali non sarà uguale al ROI marginale target a causa dell'intervallo fattibile di media di Google Cloud. Tuttavia, il ROI marginale si ridurrà in modo efficace verso il target ROI marginale. In particolare, il ROI marginale target viene applicato a livello di canale e non a livello complessivo di marketing.
Esempio di codice
I seguenti esempi di codice mostrano uno scenario di budget flessibile personalizzato con un ROI marginale target:
budget_optimizer = optimizer.BudgetOptimizer(meridian)
optimization_results = budget_optimizer.optimize(
selected_times=('2023-01-16','2024-01-15'),
fixed_budget=False,
spend_constraint_lower=0.5,
spend_constraint_upper=0.5,
target_mroi=1,
)
Parametri chiave
fixed_budget
: valore booleano che indica se si tratta di un'ottimizzazione del budget fisso o un'ottimizzazione flessibile del budget. Il valore predefinito èTrue
, che indica una budget. SeFalse
, devi specificaretarget_roi
otarget_mroi
.target_mroi
: numero in virgola mobile che indica il vincolo di ROI marginale target. Solo utilizzati per scenari di budget flessibili. Il budget è limitato a quando ROI marginale della spesa pubblicitaria totale raggiungetarget_mroi
.Esempio
Per passare allo scenario di budget flessibile e impostare il ROI marginale target su
1
:budget_optimizer = optimizer.BudgetOptimizer(meridian) opt = budget_optimizer.optimize(fixed_budget=False, target_mroi=1)
selected_times
: tupla contenente le dimensioni dell'ora di inizio e di fine per il parametro su cui eseguire l'ottimizzazione. Le dimensioni temporali devono essere allineate Dimensioni ora del meridiano. Per impostazione predefinita, vengono utilizzati tutti i periodi di tempo.pct_of_spend
: elenco numerico delle dimensionin_media
contenente la percentuale allocazione per la spesa pubblicitaria. L'ordine deve corrispondere aInputData.media
con valori compresi tra 0 e 1, sommando i valori per1
. Per impostazione predefinita, l'allocazione storica è in uso. Il budget e l'allocazione vengono utilizzati congiuntamente per determinare spesa a livello di media non ottimizzata, utilizzata per calcolare metriche di rendimento non ottimizzate (ad esempio, ROI) e costruisci il intervallo fattibile di spesa a livello di media con i vincoli di spesa.spend_constraint_lower
: elenco numerico della lunghezzan_media
da usare in modo diverso i vincoli di spesa per i diversi canali o un singolo valorefloat
come lo stesso vincolo di spesa per tutti i canali media. Indica il limite inferiore di a livello di media. Il limite inferiore della spesa a livello di media è((1 - spend_constraint_lower) * budget * allocation)
. Il valore inserito deve essere tra 0 e 1. Il valore predefinito è 0,3 (ovvero il 70% della spesa pubblicitaria) per budget fisso e 1 (ovvero lo 0% della spesa pubblicitaria) per un budget flessibile.spend_constraint_upper
: elenco numerico della lunghezzan_media
da usare in modo diverso i vincoli di spesa per i diversi canali o un singolo valorefloat
come lo stesso vincolo di spesa per tutti i canali media. Indica il limite superiore di a livello di media. Il limite superiore della spesa a livello di media è(1 + spend_constraint_upper) * budget * allocation)
. Il valore predefinito è 0,3 (ovvero il 130% della spesa pubblicitaria) per un budget fisso e 1 (ovvero il 200% di spesa pubblicitaria) per un budget flessibile.