Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Support for Organic Media in Budget Optimization #1525

Open
HoussemBouazizi opened this issue Feb 27, 2025 · 8 comments
Open

Add Support for Organic Media in Budget Optimization #1525

HoussemBouazizi opened this issue Feb 27, 2025 · 8 comments

Comments

@HoussemBouazizi
Copy link

HoussemBouazizi commented Feb 27, 2025

Issue Summary

Currently, PyMC does not explicitly support organic media (non-paid media) as a feature in media mix modeling. Each time a user wants to integrate organic media effects, additional post-modeling work is required—especially in budget optimization. This extra step can be cumbersome and inefficient, as it requires manual adjustments to ensure organic media contributions are accounted for correctly.

Why is This Important?

In real-world media mix models, organic media plays a crucial role in influencing conversions and overall performance.
Many businesses rely on a combination of paid and organic media strategies, and excluding organic media from optimization leads to suboptimal budget allocations.
Automating the integration of organic media would improve usability and make PyMC-based budget optimization more comprehensive.

Proposed Feature

Introduce a built-in way to model organic media within PyMC’s media mix modeling framework.
Ensure budget optimization accounts for organic media alongside paid media.
Provide options to define organic media effects explicitly, possibly through additional priors or constraints.

Potential Implementation Ideas

Extend PyMC’s current MMM capabilities to allow organic media as an input feature.
Modify the budget allocation module to consider organic media alongside paid media.
Provide example workflows that showcase how to model and optimize budgets while including organic media.

Expected Benefits

Reduces the need for manual adjustments after modeling.
Improves budget allocation accuracy by considering both paid and organic media.
Enhances PyMC’s usability for marketing applications.

@Darren-Li
Copy link

Raise my hands in agreement

@wd60622
Copy link
Contributor

wd60622 commented Mar 5, 2025

Do you have an expectation on how this will affect the model graph? Will there be adstock and saturation transformations on this variable as well?

@HoussemBouazizi
Copy link
Author

Do you have an expectation on how this will affect the model graph? Will there be adstock and saturation transformations on this variable as well?

Yes, it will; otherwise, we could treat them as control variables.

@wd60622
Copy link
Contributor

wd60622 commented Mar 6, 2025

Yes, it will; otherwise, we could treat them as control variables.

Understood. Then it really becomes an issue of involving them in the optimizer? However, if they have no costs, what can one optimize with them?

@HoussemBouazizi
Copy link
Author

Yes, it will; otherwise, we could treat them as control variables.

Understood. Then it really becomes an issue of involving them in the optimizer? However, if they have no costs, what can one optimize with them?

Exactly! We need to exclude their coefficients from the optimizer and only consider paid media coefficients. Since they have no costs, there’s nothing to optimize for them.

@wd60622
Copy link
Contributor

wd60622 commented Mar 6, 2025

What is @cetagostini take on this?

@cetagostini
Copy link
Contributor

Hey guys, we have budgets_to_optimize input in the optimizer here. Basically, creates a mask to only optimizer the certain number of channels in your model.

Honestly, I'll avoid to include organic channel in your model, signals as clicks, visits or others can be influenced by your spend on certain channels, they are not fully independent, and such signals in case of being added as mediators could break all the estimates in your model.

My recommendation would be to have organic channels in a model separately from paid, but if you have causal understanding and reasons to keep all together then using budgets_to_optimize could exclude them from the optimization process.

@wd60622 @HoussemBouazizi

@HoussemBouazizi
Copy link
Author

Thank you for your response, @cetagostini !
I had already considered separating them, but if you use distinct models for organic and paid channels, you're inherently assuming that the controls (e.g., seasonality, macroeconomic factors, etc.) influence both in the same way. Whether this assumption holds depends on the business context and the extent to which organic and paid traffic interact.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants