Skenario pengoptimalan anggaran

Dokumen ini menjelaskan skenario anggaran yang tetap dan fleksibel serta memberikan contoh kode untuk membantu Anda memahami cara menyesuaikan pengoptimalan anggaran.

Anggaran tetap: Memaksimalkan ROI atau KPI inkremental

Dalam skenario ini untuk anggaran tertentu, Anda dapat menemukan alokasi optimal di seluruh saluran dan taktik untuk memaksimalkan laba atas investasi (ROI). Jika kpi_type ditetapkan ke bukan pendapatan dan revenue_per_kpi tidak diketahui, anggaran tetap menemukan alokasi optimal untuk memaksimalkan KPI inkremental.

Skenario ini mewakili setelan {i>default<i} dan berjalan jika Anda memanggil Metode optimize() dari class BudgetOptimizer tanpa tambahan argumen. Ada juga opsi untuk mengubah skenario anggaran tetap dengan mengubah periode waktu pengoptimalan, memasukkan anggaran yang berbeda, dan alokasi pembelanjaan media yang telah dioptimalkan, dan menunjukkan batas bawah dan atas untuk pengeluaran media.

Kode contoh

Contoh kode berikut menunjukkan skenario anggaran tetap yang disesuaikan:

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

Parameter kunci

  • selected_times: Tuple yang berisi dimensi waktu mulai dan waktu berakhir untuk durasi pengoptimalan. Dimensi waktu harus selaras dengan Dimensi waktu meridian. Secara default, semua jangka waktu akan digunakan.

    Contoh

    Untuk mengubah rentang tanggal:

    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: Angka yang menunjukkan total anggaran untuk skenario anggaran tetap. Setelan defaultnya adalah anggaran historis.

    Contoh

    Untuk mengubah anggaran menjadi 70000000:

    budget_optimizer = optimizer.BudgetOptimizer(meridian)
    opt = budget_optimizer.optimize(budget=70000000) # change the budget to 150000
    
  • pct_of_spend: Daftar numerik ukuran n_media yang berisi persentase untuk pembelanjaan media. Pesanan harus cocok dengan InputData.media dengan nilai antara 0-1, yang dijumlahkan menjadi 1. Secara default, alokasi historis adalah data Anggaran dan alokasi digunakan bersamaan untuk menentukan yang tidak dioptimalkan, yang digunakan untuk menghitung metrik performa yang tidak dioptimalkan (misalnya, ROI) dan menyusun rentang pengeluaran tingkat media yang layak dengan batasan pengeluaran.

    Contoh

    Untuk menentukan alokasi:

    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: Daftar numerik dengan panjang n_media yang akan digunakan batasan pembelanjaan untuk saluran yang berbeda, atau satu nilai float sebagai batasan pengeluaran yang sama untuk semua saluran media. Menunjukkan batas bawah dari pembelanjaan tingkat media. Batas bawah pembelanjaan tingkat media adalah ((1 - spend_constraint_lower) * budget * allocation). Nilai yang dimasukkan harus antara 0-1. Nilai defaultnya adalah 0,3 (artinya 70% pembelanjaan media) untuk anggaran tetap dan 1 (artinya 0% dari pembelanjaan media) untuk anggaran yang fleksibel.

    Contoh

    Untuk mengubah batasan pembelanjaan yang lebih rendah:

    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: Daftar numerik dengan panjang n_media yang akan digunakan batasan pembelanjaan untuk saluran yang berbeda, atau satu nilai float sebagai batasan pengeluaran yang sama untuk semua saluran media. Menunjukkan batas atas dari pembelanjaan tingkat media. Batas atas pembelanjaan tingkat media adalah (1 + spend_constraint_upper) * budget * allocation). Nilai defaultnya adalah 0,3 (artinya 130% pembelanjaan media) untuk anggaran tetap dan 1 (artinya 200% dari pembelanjaan media) untuk anggaran yang fleksibel.

    Contoh

    Untuk mengubah batasan pembelanjaan atas:

    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
    

Anggaran fleksibel: Menargetkan ROI minimum

Dalam skenario ini untuk anggaran yang fleksibel, Anda memasukkan target ROI minimum yang spesifik. Opsi ini memungkinkan Anda mengetahui jumlah anggaran maksimum yang dapat dibelanjakan tanpa batas anggaran hingga keseluruhan ROI mencapai X pada total tingkat pemasaran. Meridian memberikan rekomendasi anggaran maksimum, serta alokasi anggaran di seluruh saluran media, untuk mencapai target ROI tersebut. Secara khusus, batasan target ROI diterapkan pada tingkat ROI total pemasaran dan bukan pada tingkat channel.

Kode contoh

Contoh kode berikut menunjukkan skenario anggaran fleksibel yang disesuaikan dengan target ROI minimum:

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

Parameter kunci

  • fixed_budget: Boolean yang menunjukkan apakah ini merupakan pengoptimalan anggaran tetap atau tidak atau pengoptimalan anggaran yang fleksibel. Default-nya adalah True, menunjukkan nilai yang sudah diperbaiki anggaran. Jika False, Anda juga harus menentukan target_roi atau target_mroi.

  • target_roi: Float yang menunjukkan batasan ROI target. Hanya digunakan untuk skenario anggaran yang fleksibel. Anggaran dibatasi ketika ROI total pembelanjaan media mencapai target_roi.

    Contoh

    Untuk beralih ke skenario anggaran fleksibel dan menetapkan ROI target ke 1:

    budget_optimizer = optimizer.BudgetOptimizer(meridian)
    opt = budget_optimizer.optimize(fixed_budget=False, target_roi=1)
    
  • selected_times: Tuple yang berisi dimensi waktu mulai dan waktu berakhir untuk durasi pengoptimalan. Dimensi waktu harus selaras dengan Dimensi waktu meridian. Secara default, semua jangka waktu akan digunakan.

  • pct_of_spend: Daftar numerik ukuran n_media yang berisi persentase untuk pembelanjaan media. Pesanan harus cocok dengan InputData.media dengan nilai antara 0-1, yang dijumlahkan menjadi 1. Secara default, alokasi historis adalah data Anggaran dan alokasi digunakan bersamaan untuk menentukan yang tidak dioptimalkan, yang digunakan untuk menghitung metrik performa yang tidak dioptimalkan (misalnya, ROI) dan menyusun rentang pengeluaran tingkat media yang layak dengan batasan pengeluaran.

  • spend_constraint_lower: Daftar numerik dengan panjang n_media yang akan digunakan batasan pembelanjaan untuk saluran yang berbeda, atau satu nilai float sebagai batasan pengeluaran yang sama untuk semua saluran media. Menunjukkan batas bawah dari pembelanjaan tingkat media. Batas bawah pembelanjaan tingkat media adalah ((1 - spend_constraint_lower) * budget * allocation). Nilai yang dimasukkan harus antara 0-1. Nilai defaultnya adalah 0,3 (artinya 70% pembelanjaan media) untuk anggaran tetap dan 1 (artinya 0% dari pembelanjaan media) untuk anggaran yang fleksibel.

  • spend_constraint_upper: Daftar numerik dengan panjang n_media yang akan digunakan batasan pembelanjaan untuk saluran yang berbeda, atau satu nilai float sebagai batasan pengeluaran yang sama untuk semua saluran media. Menunjukkan batas atas dari pembelanjaan tingkat media. Batas atas pembelanjaan tingkat media adalah (1 + spend_constraint_upper) * budget * allocation). Nilai defaultnya adalah 0,3 (artinya 130% pembelanjaan media) untuk anggaran tetap dan 1 (artinya 200% dari pembelanjaan media) untuk anggaran yang fleksibel.

Anggaran fleksibel: Target ROI marginal

Dalam skenario ini untuk anggaran yang fleksibel, Anda memasukkan target ROI marginal untuk pembelanjaan inkremental. Opsi ini memberitahukan berapa anggaran maksimum yang dapat dibelanjakan tanpa batas anggaran hingga ROI marginal setiap saluran media mencapai target ROI marginal. Ada kemungkinan bahwa ROI marginal beberapa saluran tidak akan sama dengan ROI marginal target karena rentang media yang memungkinkan mengurangi pengeluaran Google Cloud Anda. Namun, ROI marginal akan secara efektif menyusut sesuai target ROI marginal. Secara khusus, ROI marginal target diterapkan pada tingkat saluran dan bukan di tingkat pemasaran total.

Kode contoh

Contoh kode berikut menunjukkan skenario anggaran fleksibel yang disesuaikan dengan target ROI marginal:

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

Parameter kunci

  • fixed_budget: Boolean yang menunjukkan apakah ini merupakan pengoptimalan anggaran tetap atau tidak atau pengoptimalan anggaran yang fleksibel. Default-nya adalah True, menunjukkan nilai yang sudah diperbaiki anggaran. Jika False, Anda harus menentukan target_roi atau target_mroi.

  • target_mroi: Float yang menunjukkan batasan ROI marginal target. Hanya digunakan untuk skenario anggaran yang fleksibel. Anggaran dibatasi ketika ROI marginal dari total pembelanjaan media mencapai target_mroi.

    Contoh

    Untuk beralih ke skenario anggaran fleksibel dan menetapkan target ROI marginal ke 1:

    budget_optimizer = optimizer.BudgetOptimizer(meridian)
    opt = budget_optimizer.optimize(fixed_budget=False, target_mroi=1)
    
  • selected_times: Tuple yang berisi dimensi waktu mulai dan waktu berakhir untuk durasi pengoptimalan. Dimensi waktu harus selaras dengan Dimensi waktu meridian. Secara default, semua jangka waktu akan digunakan.

  • pct_of_spend: Daftar numerik ukuran n_media yang berisi persentase untuk pembelanjaan media. Pesanan harus cocok dengan InputData.media dengan nilai antara 0-1, yang dijumlahkan menjadi 1. Secara default, alokasi historis adalah data Anggaran dan alokasi digunakan bersamaan untuk menentukan yang tidak dioptimalkan, yang digunakan untuk menghitung metrik performa yang tidak dioptimalkan (misalnya, ROI) dan menyusun rentang pengeluaran tingkat media yang layak dengan batasan pengeluaran.

  • spend_constraint_lower: Daftar numerik dengan panjang n_media yang akan digunakan batasan pembelanjaan untuk saluran yang berbeda, atau satu nilai float sebagai batasan pengeluaran yang sama untuk semua saluran media. Menunjukkan batas bawah dari pembelanjaan tingkat media. Batas bawah pembelanjaan tingkat media adalah ((1 - spend_constraint_lower) * budget * allocation). Nilai yang dimasukkan harus antara 0-1. Nilai defaultnya adalah 0,3 (artinya 70% pembelanjaan media) untuk anggaran tetap dan 1 (artinya 0% dari pembelanjaan media) untuk anggaran yang fleksibel.

  • spend_constraint_upper: Daftar numerik dengan panjang n_media yang akan digunakan batasan pembelanjaan untuk saluran yang berbeda, atau satu nilai float sebagai batasan pengeluaran yang sama untuk semua saluran media. Menunjukkan batas atas dari pembelanjaan tingkat media. Batas atas pembelanjaan tingkat media adalah (1 + spend_constraint_upper) * budget * allocation). Nilai defaultnya adalah 0,3 (artinya 130% pembelanjaan media) untuk anggaran tetap dan 1 (artinya 200% dari pembelanjaan media) untuk anggaran yang fleksibel.