Scenariusze optymalizacji budżetu

W tym dokumencie opisujemy scenariusze stałe i elastyczne dotyczące budżetu oraz podajemy przykłady , który pomoże Ci dostosować optymalizację budżetu.

Stały budżet – maksymalizacja zwrotu z inwestycji lub przyrostowy KPI

W takim scenariuszu dla danego budżetu można znaleźć optymalną alokację kanały i taktyki maksymalizacji zwrotu z inwestycji (ROI). Jeśli kpi_type ma wartość bez przychodów, a revenue_per_kpi jest nieznany, stały budżet scenariusz znajduje optymalną alokację, która pozwoli zmaksymalizować przyrostowy KPI.

Ten scenariusz przedstawia ustawienia domyślne i jest uruchamiany, jeśli wywołasz Metoda optimize() z klasy BudgetOptimizer bez dodatkowych . Można też zmienić scenariusz stałego budżetu poprzez przez zmianę przedziału czasu optymalizacji przez wprowadzenie odrębnych budżetów wstępnie zoptymalizowanych wydatków na media oraz wskazywać dolne i górne limity; na wydatki na media.

Przykładowy kod

Ten przykładowy kod ilustruje scenariusz niestandardowego stałego budżetu:

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],
)

Kluczowe parametry

  • selected_times: krotka zawierająca wymiary czasu rozpoczęcia i zakończenia dla wymiaru czas trwania optymalizacji. Wymiary czasu powinny odpowiadać Wymiary południowej. Domyślnie używane są wszystkie przedziały czasu.

    Przykład

    Aby zmienić zakres dat:

    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: liczba określająca łączny budżet w scenariuszu dotyczącym budżetu stałego. Domyślnie jest to budżet historyczny.

    Przykład

    Aby zmienić budżet na 70000000:

    budget_optimizer = optimizer.BudgetOptimizer(meridian)
    opt = budget_optimizer.optimize(budget=70000000) # change the budget to 150000
    
  • pct_of_spend: liczbowa lista rozmiaru n_media, która zawiera wartość procentową. na media. Zamówienie musi pasować do: InputData.media z wartości od 0 do 1, sumujące się do 1. Domyślnie przydział historyczny wynosi . Budżet i alokacja są używane w połączeniu do określenia niezoptymalizowanych wydatków na poziomie mediów, które służą do obliczania niezoptymalizowanych danych dotyczących skuteczności (np. ROI) i tworzyć realny zakres wydatków na poziomie mediów przy zachowaniu ograniczeń wydatków.

    Przykład

    Aby określić przydział:

    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: liczbowa lista o długości n_media, której wartości mają być różne ograniczeń wydatków dla różnych kanałów lub pojedynczą wartość float jako takie samo ograniczenie wydatków dla wszystkich kanałów komunikacji. Wskazuje dolną granicę wartości na poziomie mediów. Dolna granica wydatków na poziomie mediów to ((1 - spend_constraint_lower) * budget * allocation). Wpisana wartość musi być od 0 do 1. Wartość domyślna to 0,3 (co oznacza 70% wydatków na media) Stały budżet i 1 (co oznacza 0% wydatków na media) dla budżetu elastycznego.

    Przykład

    Aby zmienić ograniczenie wydatków:

    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: liczbowa lista o długości n_media, której wartości mają być różne ograniczeń wydatków dla różnych kanałów lub pojedynczą wartość float jako takie samo ograniczenie wydatków dla wszystkich kanałów komunikacji. Wskazuje górną granicę wartości na poziomie mediów. Górna granica wydatków na poziomie mediów to (1 + spend_constraint_upper) * budget * allocation). Wartość domyślna to 0,3. (czyli 130% wydatków na media) dla budżetu stałego oraz 1 (czyli 200% wydatki na media) dla elastycznego budżetu.

    Przykład

    Aby zmienić górne ograniczenie wydatków:

    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
    

Elastyczny budżet: docelowy minimalny ROI

W tym scenariuszu elastycznego budżetu podajesz określoną minimalną wartość docelową ROI. Dzięki tej opcji możesz się dowiedzieć, jaki jest maksymalny budżet, jaki możesz wydać. dowolne limity budżetu, aż ogólny zwrot z inwestycji osiągnie X na całym poziomie marketingu. Meridian podaje zalecany maksymalny budżet oraz optymalną przez odpowiednie rozłożenie budżetu na różne kanały komunikacji w celu osiągnięcia docelowego ROI. Warto zauważyć, że ograniczenie docelowego ROI jest stosowane na poziomie całkowitego zwrotu z inwestycji w działania marketingowe. a nie na poziomie kanału.

Przykładowy kod

Poniższy przykładowy kod ilustruje scenariusz niestandardowego elastycznego budżetu z parametrem docelowy minimalny ROI:

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

Kluczowe parametry

  • fixed_budget: wartość logiczna wskazująca, czy optymalizacja budżetu jest stała. lub elastyczną optymalizację budżetu. Domyślna wartość to True, co oznacza stałą budżetu. Jeśli False, musisz również określić target_roi albo target_mroi

  • target_roi: liczba zmiennoprzecinkowa wskazująca ograniczenie docelowego ROI. Używany tylko do scenariuszy elastycznych budżetów. Budżet jest ograniczony do czasu, w którym ROI łączne wydatki na media osiągają target_roi.

    Przykład

    Aby przejść na scenariusz elastycznego budżetu i ustawić docelowy ROI na 1:

    budget_optimizer = optimizer.BudgetOptimizer(meridian)
    opt = budget_optimizer.optimize(fixed_budget=False, target_roi=1)
    
  • selected_times: krotka zawierająca wymiary czasu rozpoczęcia i zakończenia dla wymiaru czas trwania optymalizacji. Wymiary czasu powinny odpowiadać Wymiary południowej. Domyślnie używane są wszystkie przedziały czasu.

  • pct_of_spend: liczbowa lista rozmiaru n_media, która zawiera wartość procentową. na media. Zamówienie musi pasować do: InputData.media z wartości od 0 do 1, sumujące się do 1. Domyślnie przydział historyczny wynosi . Budżet i alokacja są używane w połączeniu do określenia niezoptymalizowanych wydatków na poziomie mediów, które służą do obliczania niezoptymalizowanych danych dotyczących skuteczności (np. ROI) i tworzyć realny zakres wydatków na poziomie mediów przy zachowaniu ograniczeń wydatków.

  • spend_constraint_lower: liczbowa lista o długości n_media, której wartości mają być różne ograniczeń wydatków dla różnych kanałów lub pojedynczą wartość float jako takie samo ograniczenie wydatków dla wszystkich kanałów komunikacji. Wskazuje dolną granicę wartości na poziomie mediów. Dolna granica wydatków na poziomie mediów to ((1 - spend_constraint_lower) * budget * allocation). Wpisana wartość musi być od 0 do 1. Wartość domyślna to 0,3 (co oznacza 70% wydatków na media) Stały budżet i 1 (co oznacza 0% wydatków na media) dla budżetu elastycznego.

  • spend_constraint_upper: liczbowa lista o długości n_media, której wartości mają być różne ograniczeń wydatków dla różnych kanałów lub pojedynczą wartość float jako takie samo ograniczenie wydatków dla wszystkich kanałów komunikacji. Wskazuje górną granicę wartości na poziomie mediów. Górna granica wydatków na poziomie mediów to (1 + spend_constraint_upper) * budget * allocation). Wartość domyślna to 0,3. (czyli 130% wydatków na media) dla budżetu stałego oraz 1 (czyli 200% wydatki na media) dla elastycznego budżetu.

Elastyczny budżet: docelowy krańcowy ROI

W tym scenariuszu elastycznego budżetu podajesz krańcowy docelowy ROI przyrostowe wydatki. Ta opcja informuje o maksymalnym budżecie, jaki możesz wydać bez żadnych ograniczeń budżetu, dopóki krańcowy ROI dla każdego kanału mediów nie osiągnie przy docelowym krańcowym zwrocie z inwestycji. Nadal może się zdarzyć, że krańcowy ROI niektórych kanałów nie będzie równy docelowemu krańcowemu ROI ze względu na realny zakres mediów wydatków. Jednak krańcowy ROI będzie skutecznie zmniejszać się w kierunku wartości docelowej krańcowy ROI. W szczególności docelowy krańcowy ROI jest stosowany na poziomie kanału, a nie na całościowym poziomie marketingu.

Przykładowy kod

Poniższe przykłady kodu pokazują niestandardowy scenariusz elastycznego budżetu z docelowy krańcowy ROI:

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

Kluczowe parametry

  • fixed_budget: wartość logiczna wskazująca, czy optymalizacja budżetu jest stała. lub elastyczną optymalizację budżetu. Domyślna wartość to True, co oznacza stałą budżetu. Jeśli ustawiona jest wartość False, musisz określić target_roi lub target_mroi.

  • target_mroi: liczba zmiennoprzecinkowa wskazująca docelowe ograniczenie krańcowego ROI. Tylko wykorzystywanych w scenariuszach elastycznego budżetu. Budżet jest ograniczony do czasu, w którym krańcowy ROI wszystkich wydatków na media osiąga wartość target_mroi.

    Przykład

    Aby przejść na scenariusz elastycznego budżetu i ustawić docelowy krańcowy ROI na 1:

    budget_optimizer = optimizer.BudgetOptimizer(meridian)
    opt = budget_optimizer.optimize(fixed_budget=False, target_mroi=1)
    
  • selected_times: krotka zawierająca wymiary czasu rozpoczęcia i zakończenia dla wymiaru czas trwania optymalizacji. Wymiary czasu powinny odpowiadać Wymiary południowej. Domyślnie używane są wszystkie przedziały czasu.

  • pct_of_spend: liczbowa lista rozmiaru n_media, która zawiera wartość procentową. na media. Zamówienie musi pasować do: InputData.media z wartości od 0 do 1, sumujące się do 1. Domyślnie przydział historyczny wynosi . Budżet i alokacja są używane w połączeniu do określenia niezoptymalizowanych wydatków na poziomie mediów, które służą do obliczania niezoptymalizowanych danych dotyczących skuteczności (np. ROI) i tworzyć realny zakres wydatków na poziomie mediów przy zachowaniu ograniczeń wydatków.

  • spend_constraint_lower: liczbowa lista o długości n_media, której wartości mają być różne ograniczeń wydatków dla różnych kanałów lub pojedynczą wartość float jako takie samo ograniczenie wydatków dla wszystkich kanałów komunikacji. Wskazuje dolną granicę wartości na poziomie mediów. Dolna granica wydatków na poziomie mediów to ((1 - spend_constraint_lower) * budget * allocation). Wpisana wartość musi być od 0 do 1. Wartość domyślna to 0,3 (co oznacza 70% wydatków na media) Stały budżet i 1 (co oznacza 0% wydatków na media) dla budżetu elastycznego.

  • spend_constraint_upper: liczbowa lista o długości n_media, której wartości mają być różne ograniczeń wydatków dla różnych kanałów lub pojedynczą wartość float jako takie samo ograniczenie wydatków dla wszystkich kanałów komunikacji. Wskazuje górną granicę wartości na poziomie mediów. Górna granica wydatków na poziomie mediów to (1 + spend_constraint_upper) * budget * allocation). Wartość domyślna to 0,3. (czyli 130% wydatków na media) dla budżetu stałego oraz 1 (czyli 200% wydatki na media) dla elastycznego budżetu.