_images/marketing-logo-dark.jpg _images/marketing-logo-light.jpg

PyMC-Marketing - Open Source Marketing Analytics Solution#

Unlock the power of marketing analytics with PyMC-Marketing – the python based open source solution for smarter decision-making. Marketing mix modeling and customer lifetime value modules allow businesses to make data-driven decisions about their marketing campaigns. Optimize your marketing strategy and unlock the full potential of your customer data.

Checkout the video below to see how Bolt leverages PyMC Marketing to assess the impact of their marketing efforts.

In-depth Bayesian Marketing Mix Modeling (MMM) in PyMC#

Leverage our Bayesian MMM API to tailor your marketing strategies effectively. Leveraging on top of the research article Jin, Yuxue, et al. “Bayesian methods for media mix modeling with carryover and shape effects.” (2017), and extending it by integrating the expertise from core PyMC developers, our API provides:

Feature

Description

Custom Priors and Likelihoods

Tailor your model to your specific business needs by including domain knowledge via prior distributions.

Adstock Transformation

Optimize the carry-over effects in your marketing channels.

Saturation Effects

Understand the diminishing returns in media investments.

Customize adstock and saturation functions

You can select from a variety of adstock and saturation functions. You can even implement your own custom functions. See documentation guide.

Time-varying Intercept

Capture time-varying baseline contributions in your model (using modern and efficient Gaussian processes approximation methods). See guide notebook.

Time-varying Media Contribution

Capture time-varying media efficiency in your model (using modern and efficient Gaussian processes approximation methods). See the guide notebook.

Visualization and Model Diagnostics

Get a comprehensive view of your model’s performance and insights.

Choose among many inference algorithms

We provide the option to choose between various NUTS samplers (e.g. BlackJax, NumPyro and Nutpie). See the example notebook for more details.

Out-of-sample Predictions

Forecast future marketing performance with credible intervals. Use this for simulations and scenario planning.

Budget Optimization

Allocate your marketing spend efficiently across various channels for maximum ROI. See the budget optimization example notebook

Experiment Calibration

Fine-tune your model based on empirical experiments for a more unified view of marketing. See the lift test integration explanation for more details. Here you can find a Case Study: Unobserved Confounders, ROAS and Lift Tests.

Unlock Customer Lifetime Value (CLV) with PyMC#

Understand and optimize your customer’s value with our CLV models. Our API supports various types of CLV models, catering to both contractual and non-contractual settings, as well as continuous and discrete transaction modes.

Explore our detailed CLV examples using data from the lifetimes package:

Examples#

Non-contractual

Contractual

Continuous

online purchases

ad conversion time

Discrete

concerts & sports events

recurring subscriptions

Installation#

PyMC-Marketing requires Python 3.10 or greater.

Install and activate an environment (e.g. marketing_env) with the pymc-marketing package from conda-forge. It may look something like the following:

conda create -c conda-forge -n marketing_env pymc-marketing
conda activate marketing_env

Installation for developers#

If you are a developer of pymc-marketing, or want to start contributing, refer to the contributing guide to get started.

See the official PyMC installation guide if more detail is needed.

Quickstart#

Create a new Jupyter notebook with either JupyterLab or VS Code.

JupyterLab Notebook#

After installing the pymc-marketing package (see above), run the following with marketing_env activated:

conda install -c conda-forge jupyterlab
jupyter lab

VS Code Notebook#

After installing the pymc-marketing package (see above), run the following with marketing_env activated:

conda install -c conda-forge ipykernel

Start VS Code and ensure that the “Jupyter” extension is installed. Press Ctrl + Shift + P and type “Python: Select Interpreter”. Ensure that marketing_env is selected. Press Ctrl + Shift + P and type “Create: New Jupyter Notebook”.

MMM Quickstart#

import pandas as pd

from pymc_marketing.mmm import (
    GeometricAdstock,
    LogisticSaturation,
    MMM,
)

data_url = "https://raw.githubusercontent.com/pymc-labs/pymc-marketing/main/data/mmm_example.csv"
data = pd.read_csv(data_url, parse_dates=["date_week"])

mmm = MMM(
    adstock=GeometricAdstock(l_max=8),
    saturation=LogisticSaturation(),
    date_column="date_week",
    channel_columns=["x1", "x2"],
    control_columns=[
        "event_1",
        "event_2",
        "t",
    ],
    yearly_seasonality=2,
)

Once the model is fitted, we can further optimize our budget allocation as we are including diminishing returns and carry-over effects in our model.

Explore a hands-on simulated example for more insights into MMM with PyMC-Marketing.

CLV Quickstart#

We can choose from a variety of models, depending on the type of data and business nature. Let us look into a simple example with the Beta-Geo/NBD model for non-contractual continuous data.

import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
from pymc_marketing import clv

data_url = "https://raw.githubusercontent.com/pymc-labs/pymc-marketing/main/data/clv_quickstart.csv"
data = pd.read_csv(data_url)
data["customer_id"] = data.index

beta_geo_model = clv.BetaGeoModel(data=data)

beta_geo_model.fit()

Once fitted, we can use the model to predict the number of future purchases for known customers, the probability that they are still alive, and get various visualizations plotted.

See the How-to section for more on this.

📞 Schedule a Free Consultation for MMM & CLV Strategy#

Maximize your marketing ROI with a free 30-minute strategy session with our PyMC-Marketing experts. Learn how Bayesian Marketing Mix Modeling and Customer Lifetime Value analytics can boost your organization by making smarter, data-driven decisions.

For businesses looking to integrate PyMC-Marketing into their operational framework, PyMC Labs offers expert consulting and training. Our team is proficient in state-of-the-art Bayesian modeling techniques, with a focus on Marketing Mix Models (MMMs) and Customer Lifetime Value (CLV). Explore these topics further by watching our video on Bayesian Marketing Mix Models: State of the Art.

We provide the following professional services:

  • Custom Models: We tailor niche marketing anayltics models to fit your organization’s unique needs.

  • Build Within PyMC-Marketing: Our team are experts leveraging the capabilities of PyMC-Marketing to create robust marketing models for precise insights.

  • SLA & Coaching: Get guaranteed support levels and personalized coaching to ensure your team is well-equipped and confident in using our tools and approaches.

  • SaaS Solutions: Harness the power of our state-of-the-art software solutions to streamline your data-driven marketing initiatives.

Support#

This repository is supported by PyMC Labs.

For companies that want to use PyMC-Marketing in production, PyMC Labs is available for consulting and training. We can help you build and deploy your models in production. We have experience with cutting edge Bayesian modelling techniques which we have applied to a range of business domains including marketing analytics.

PyMC Labs logo PyMC Labs logo