Module: scenarioplanner.converters.mmm

Provides wrappers for the Mmm proto.

This module defines a set of dataclasses that act as high-level wrappers around the Mmm protocol buffer and its nested messages. The primary goal is to offer a more intuitive API for accessing and manipulating MMM data, abstracting away the verbosity of the raw protobuf structures.

The main entry point is the Mmm class, which wraps the top-level mmm_pb2.Mmm proto. From an instance of this class, you can navigate through the model's different components, such as marketing data, model fit results, and various analyses, using simple properties and methods.

Typical Usage:

from mmm.v1 import mmm_pb2
from lookerstudio.converters import mmm

# Assume `mmm_proto` is a populated instance of the Mmm proto
mmm_proto = mmm_pb2.Mmm()
# ...

# Create the main wrapper instance
mmm_wrapper = mmm.Mmm(mmm_proto)

# Access marketing data and calculate total spends for a given period
marketing_data = mmm_wrapper.marketing_data
total_spends = marketing_data.all_channel_spends(
    date_interval=('2025-01-01', '2025-03-31')
)

# Access budget optimization results
for budget_result in mmm_wrapper.budget_optimization_results:
  print(f"Name: {budget_result.name}, Max: {budget_result.spec.max_budget}")

Classes

class BudgetOptimizationResult: A wrapper for BudgetOptimizationResult proto with derived properties.

class BudgetOptimizationSpec: A wrapper for BudgetOptimizationSpec proto with derived properties.

class DateInterval: A dataclass wrapper around a tuple of (start, end) dates.

class FrequencyOutcomeGrid: A wrapper for FrequencyOutcomeGrid proto with derived properties.

class IncrementalOutcomeGrid: A wrapper for IncrementalOutcomeGrid proto with derived properties.

class MarketingAnalysis: A wrapper for MarketingAnalysis proto with derived properties.

class MarketingData: A wrapper for MarketingData proto with derived properties.

class MediaAnalysis: A wrapper for MediaAnalysis proto with derived properties.

class Mmm: A wrapper for Mmm proto with derived properties.

class NonMediaAnalysis: A wrapper for NonMediaAnalysis proto with derived properties.

class Outcome: A wrapper for Outcome proto with derived properties.

class ReachFrequencyOptimizationResult: A wrapper for ReachFrequencyOptimizationResult proto with derived properties.

class ResponseCurve: A wrapper for ResponseCurve proto with derived properties.

class RfOptimizationSpec: A wrapper for ReachFrequencyOptimizationSpec proto with derived properties.