<br />

|---|
| [![](https://www.tensorflow.org/images/GitHub-Mark-32px.png) View source on GitHub](https://github.com/google/meridian/blob/main/proto/) |

## Table of Contents

- [date_interval.proto](https://developers.google.com/meridian/reference/api/proto#date_interval.proto)

  - [DateInterval](https://developers.google.com/meridian/reference/api/proto#mmm.v1.common.DateInterval)
- [marketing_data.proto](https://developers.google.com/meridian/reference/api/proto#marketing_data.proto)

  - [ControlVariable](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.ControlVariable)
  - [GeoInfo](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.GeoInfo)
  - [Kpi](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.Kpi)
  - [Kpi.NonRevenue](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.Kpi.NonRevenue)
  - [Kpi.Revenue](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.Kpi.Revenue)
  - [MarketingData](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.MarketingData)
  - [MarketingDataMetadata](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.MarketingDataMetadata)
  - [MarketingDataMetadata.ChannelDimension](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.MarketingDataMetadata.ChannelDimension)
  - [MarketingDataMetadata.GeoDimension](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.MarketingDataMetadata.GeoDimension)
  - [MarketingDataMetadata.TimeDimension](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.MarketingDataMetadata.TimeDimension)
  - [MarketingDataPoint](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.MarketingDataPoint)
  - [MediaVariable](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.MediaVariable)
  - [NonMediaTreatmentVariable](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.NonMediaTreatmentVariable)
  - [ReachFrequencyVariable](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.ReachFrequencyVariable)
  - [ScalarMetric](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.ScalarMetric)
- [mmm_kernel.proto](https://developers.google.com/meridian/reference/api/proto#mmm_kernel.proto)

  - [MmmKernel](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.MmmKernel)
- [eda_spec.proto](https://developers.google.com/meridian/reference/api/proto#eda_spec.proto)

  - [AggregationConfig](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.eda.AggregationConfig)
  - [AggregationConfig.ControlVariablesEntry](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.eda.AggregationConfig.ControlVariablesEntry)
  - [AggregationConfig.NonMediaTreatmentsEntry](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.eda.AggregationConfig.NonMediaTreatmentsEntry)
  - [AggregationFunction](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.eda.AggregationFunction)
  - [EDASpec](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.eda.EDASpec)
  - [EDASpec.FunctionRegistryEntry](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.eda.EDASpec.FunctionRegistryEntry)
  - [KpiInvariabilitySpec](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.eda.KpiInvariabilitySpec)
  - [PairwiseCorrSpec](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.eda.PairwiseCorrSpec)
  - [StandardDeviationSpec](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.eda.StandardDeviationSpec)
  - [VIFSpec](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.eda.VIFSpec)
- [configs.proto](https://developers.google.com/meridian/reference/api/proto#configs.proto)

  - [BaselineConfig](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.review.BaselineConfig)
  - [BayesianPPPConfig](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.review.BayesianPPPConfig)
  - [ConvergenceConfig](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.review.ConvergenceConfig)
  - [GoodnessOfFitConfig](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.review.GoodnessOfFitConfig)
  - [PriorPosteriorShiftConfig](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.review.PriorPosteriorShiftConfig)
  - [ROIConsistencyConfig](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.review.ROIConsistencyConfig)
- [results.proto](https://developers.google.com/meridian/reference/api/proto#results.proto)

  - [BaselineCheckResult](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.review.BaselineCheckResult)
  - [BayesianPPPCheckResult](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.review.BayesianPPPCheckResult)
  - [ConvergenceCheckResult](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.review.ConvergenceCheckResult)
  - [GoodnessOfFitCheckResult](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.review.GoodnessOfFitCheckResult)
  - [PriorPosteriorShiftChannelResult](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.review.PriorPosteriorShiftChannelResult)
  - [PriorPosteriorShiftCheckResult](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.review.PriorPosteriorShiftCheckResult)
  - [ROIConsistencyChannelResult](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.review.ROIConsistencyChannelResult)
  - [ROIConsistencyCheckResult](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.review.ROIConsistencyCheckResult)
  - [ReviewSummaryResults](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.review.ReviewSummaryResults)

  - [BaselineCase](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.review.BaselineCase)

  - [BayesianPPPCase](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.review.BayesianPPPCase)

  - [ConvergenceCase](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.review.ConvergenceCase)

  - [GoodnessOfFitCase](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.review.GoodnessOfFitCase)

  - [HealthStatus](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.review.HealthStatus)

  - [PriorPosteriorShiftCase](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.review.PriorPosteriorShiftCase)

  - [PriorPosteriorShiftChannelCase](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.review.PriorPosteriorShiftChannelCase)

  - [ROIConsistencyCase](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.review.ROIConsistencyCase)

  - [ROIConsistencyChannelCase](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.review.ROIConsistencyChannelCase)

- [meridian_model.proto](https://developers.google.com/meridian/reference/api/proto#meridian_model.proto)

  - [AdstockDecayByChannel](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.AdstockDecayByChannel)
  - [AdstockDecayByChannel.ChannelDecaysEntry](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.AdstockDecayByChannel.ChannelDecaysEntry)
  - [CalibrationConfig](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.CalibrationConfig)
  - [CalibrationConfig.ChannelDateRanges](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.CalibrationConfig.ChannelDateRanges)
  - [CalibrationConfig.GlobalCalibrationDateRanges](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.CalibrationConfig.GlobalCalibrationDateRanges)
  - [Changepoints](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.Changepoints)
  - [ChannelDateRangeCalibration](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.ChannelDateRangeCalibration)
  - [Distribution](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.Distribution)
  - [Distribution.BatchBroadcast](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.Distribution.BatchBroadcast)
  - [Distribution.Beta](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.Distribution.Beta)
  - [Distribution.Bijector](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.Distribution.Bijector)
  - [Distribution.Bijector.Reciprocal](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.Distribution.Bijector.Reciprocal)
  - [Distribution.Bijector.Scale](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.Distribution.Bijector.Scale)
  - [Distribution.Bijector.Shift](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.Distribution.Bijector.Shift)
  - [Distribution.Deterministic](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.Distribution.Deterministic)
  - [Distribution.HalfNormal](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.Distribution.HalfNormal)
  - [Distribution.LogNormal](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.Distribution.LogNormal)
  - [Distribution.Normal](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.Distribution.Normal)
  - [Distribution.Transformed](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.Distribution.Transformed)
  - [Distribution.TruncatedNormal](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.Distribution.TruncatedNormal)
  - [Distribution.Uniform](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.Distribution.Uniform)
  - [GeoDateRangeHoldout](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.GeoDateRangeHoldout)
  - [HoldoutConfig](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.HoldoutConfig)
  - [HoldoutConfig.GeoDateRanges](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.HoldoutConfig.GeoDateRanges)
  - [HoldoutConfig.GlobalHoldoutDateRanges](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.HoldoutConfig.GlobalHoldoutDateRanges)
  - [HoldoutConfig.RandomHoldout](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.HoldoutConfig.RandomHoldout)
  - [Hyperparameters](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.Hyperparameters)
  - [Hyperparameters.ChangepointsEntry](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.Hyperparameters.ChangepointsEntry)
  - [Hyperparameters.NonMediaBaselineValuesMapEntry](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.Hyperparameters.NonMediaBaselineValuesMapEntry)
  - [InferenceData](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.InferenceData)
  - [InferenceData.AuxiliaryDataEntry](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.InferenceData.AuxiliaryDataEntry)
  - [KnotLocations](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.KnotLocations)
  - [McmcSamplingTrace](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.McmcSamplingTrace)
  - [MeridianModel](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.MeridianModel)
  - [ModelConvergence](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.ModelConvergence)
  - [NonMediaBaselineValue](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.NonMediaBaselineValue)
  - [Parameter](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.Parameter)
  - [PriorDistributions](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.PriorDistributions)
  - [PriorTfpDistributions](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.PriorTfpDistributions)
  - [PriorTfpDistributions.FunctionRegistryEntry](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.PriorTfpDistributions.FunctionRegistryEntry)
  - [RHatDiagnostic](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.RHatDiagnostic)
  - [SaturationByChannel](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.SaturationByChannel)
  - [SaturationByChannel.ChannelSaturationsEntry](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.SaturationByChannel.ChannelSaturationsEntry)
  - [TfpBijector](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.TfpBijector)
  - [TfpBijector.ParametersEntry](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.TfpBijector.ParametersEntry)
  - [TfpDistribution](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.TfpDistribution)
  - [TfpDistribution.ParametersEntry](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.TfpDistribution.ParametersEntry)
  - [TfpParameterValue](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.TfpParameterValue)
  - [TfpParameterValue.Dict](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.TfpParameterValue.Dict)
  - [TfpParameterValue.Dict.ValueMapEntry](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.TfpParameterValue.Dict.ValueMapEntry)
  - [TfpParameterValue.FunctionParam](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.TfpParameterValue.FunctionParam)
  - [TfpParameterValue.List](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.TfpParameterValue.List)

  - [ComputationBackend](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.ComputationBackend)

  - [ComputationPrecision](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.ComputationPrecision)

  - [MediaEffectsDistribution](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.MediaEffectsDistribution)

  - [NonMediaBaselineValue.NonMediaBaselineFunction](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.NonMediaBaselineValue.NonMediaBaselineFunction)

  - [NonPaidTreatmentsPriorType](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.NonPaidTreatmentsPriorType)

  - [PaidMediaPriorType](https://developers.google.com/meridian/reference/api/proto#mmm.v1.model.meridian.PaidMediaPriorType)

- [estimate.proto](https://developers.google.com/meridian/reference/api/proto#estimate.proto)

  - [Estimate](https://developers.google.com/meridian/reference/api/proto#mmm.v1.common.Estimate)
  - [Estimate.Uncertainty](https://developers.google.com/meridian/reference/api/proto#mmm.v1.common.Estimate.Uncertainty)
- [model_fit.proto](https://developers.google.com/meridian/reference/api/proto#model_fit.proto)

  - [ModelFit](https://developers.google.com/meridian/reference/api/proto#mmm.v1.fit.ModelFit)
  - [Performance](https://developers.google.com/meridian/reference/api/proto#mmm.v1.fit.Performance)
  - [Prediction](https://developers.google.com/meridian/reference/api/proto#mmm.v1.fit.Prediction)
  - [Result](https://developers.google.com/meridian/reference/api/proto#mmm.v1.fit.Result)
- [kpi_type.proto](https://developers.google.com/meridian/reference/api/proto#kpi_type.proto)

  - [KpiType](https://developers.google.com/meridian/reference/api/proto#mmm.v1.common.KpiType)
- [outcome.proto](https://developers.google.com/meridian/reference/api/proto#outcome.proto)

  - [Contribution](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.analysis.Contribution)
  - [Effectiveness](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.analysis.Effectiveness)
  - [Outcome](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.analysis.Outcome)
- [response_curve.proto](https://developers.google.com/meridian/reference/api/proto#response_curve.proto)

  - [ResponseCurve](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.analysis.ResponseCurve)
  - [ResponsePoint](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.analysis.ResponsePoint)
- [media_analysis.proto](https://developers.google.com/meridian/reference/api/proto#media_analysis.proto)

  - [MediaAnalysis](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.analysis.MediaAnalysis)
  - [SpendInfo](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.analysis.SpendInfo)
- [non_media_analysis.proto](https://developers.google.com/meridian/reference/api/proto#non_media_analysis.proto)

  - [NonMediaAnalysis](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.analysis.NonMediaAnalysis)
- [marketing_analysis.proto](https://developers.google.com/meridian/reference/api/proto#marketing_analysis.proto)

  - [MarketingAnalysis](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.analysis.MarketingAnalysis)
  - [MarketingAnalysisList](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.analysis.MarketingAnalysisList)
- [target_metric.proto](https://developers.google.com/meridian/reference/api/proto#target_metric.proto)

  - [TargetMetric](https://developers.google.com/meridian/reference/api/proto#mmm.v1.common.TargetMetric)
- [new_marketing_data.proto](https://developers.google.com/meridian/reference/api/proto#new_marketing_data.proto)

  - [NewMarketingData](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.NewMarketingData)
  - [NewMarketingDataPoint](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.NewMarketingDataPoint)
- [constraints.proto](https://developers.google.com/meridian/reference/api/proto#constraints.proto)

  - [BudgetConstraint](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.optimization.BudgetConstraint)
  - [FrequencyConstraint](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.optimization.FrequencyConstraint)
  - [TargetMetricConstraint](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.optimization.TargetMetricConstraint)
- [budget_optimization.proto](https://developers.google.com/meridian/reference/api/proto#budget_optimization.proto)

  - [BudgetOptimization](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.optimization.BudgetOptimization)
  - [BudgetOptimizationResult](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.optimization.BudgetOptimizationResult)
  - [BudgetOptimizationSpec](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.optimization.BudgetOptimizationSpec)
  - [ChannelConstraint](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.optimization.ChannelConstraint)
  - [FixedBudgetScenario](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.optimization.FixedBudgetScenario)
  - [FlexibleBudgetScenario](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.optimization.FlexibleBudgetScenario)
  - [IncrementalOutcomeGrid](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.optimization.IncrementalOutcomeGrid)
  - [IncrementalOutcomeGrid.Cell](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.optimization.IncrementalOutcomeGrid.Cell)
  - [IncrementalOutcomeGrid.ChannelCells](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.optimization.IncrementalOutcomeGrid.ChannelCells)
- [reach_frequency_optimization.proto](https://developers.google.com/meridian/reference/api/proto#reach_frequency_optimization.proto)

  - [FrequencyOutcomeGrid](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.optimization.FrequencyOutcomeGrid)
  - [FrequencyOutcomeGrid.Cell](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.optimization.FrequencyOutcomeGrid.Cell)
  - [FrequencyOutcomeGrid.ChannelCells](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.optimization.FrequencyOutcomeGrid.ChannelCells)
  - [OptimizedChannelFrequency](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.optimization.OptimizedChannelFrequency)
  - [ReachFrequency](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.optimization.ReachFrequency)
  - [ReachFrequencyOptimization](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.optimization.ReachFrequencyOptimization)
  - [ReachFrequencyOptimizationResult](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.optimization.ReachFrequencyOptimizationResult)
  - [ReachFrequencyOptimizationSpec](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.optimization.ReachFrequencyOptimizationSpec)
  - [RfChannelConstraint](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.optimization.RfChannelConstraint)
- [marketing_optimization.proto](https://developers.google.com/meridian/reference/api/proto#marketing_optimization.proto)

  - [MarketingOptimization](https://developers.google.com/meridian/reference/api/proto#mmm.v1.marketing.optimization.MarketingOptimization)
- [mmm.proto](https://developers.google.com/meridian/reference/api/proto#mmm.proto)

  - [Mmm](https://developers.google.com/meridian/reference/api/proto#mmm.v1.Mmm)


[Top](https://developers.google.com/meridian/reference/api/proto#top)

<br />

## date_interval.proto

### DateInterval

| Field | Type | Description |
|---|---|---|
| start_date | Date | The start date of the interval. Inclusive. Required. |
| end_date | Date | The end date of the interval. Exclusive. Required. |
| tag | string | A tag to identify the date interval. Optional. |


[Top](https://developers.google.com/meridian/reference/api/proto#top)

<br />

## marketing_data.proto

### ControlVariable

The control variable. A control variable is not directly being studied but
included in the model to account for potential confounding effects on the
relationship between the primary independent and dependent variables.
Examples: seasonality factors, and macroeconomic factors.

| Field | Type | Description |
|---|---|---|
| name | string | The name of the variable. Required. |
| value | double | The value of the variable. Required. |

### GeoInfo

| Field | Type | Description |
|---|---|---|
| geo_id | string | The ID of the geo location. Required. |
| population | int64 | The population of the geo location. Required. DEPRECATED: Use population_value instead. NOTE: This field may be rounded. Prefer `population_value` if precision is required and the field is available. |
| population_value | double | Population with double precision. This field should be used instead of `population` when available. |

### Kpi

A KPI (key performance indicator) can either be revenue directly, or some
other metric that indirectly contributes to revenue eventually (e.g. sales
units, conversions, impressions, etc) with a multiplier value to roughly
translates said non-revenue KPI unit into revenue.

| Field | Type | Description |
|---|---|---|
| name | string | The name of the KPI. Required. |
| revenue | Revenue |   |
| non_revenue | NonRevenue |   |

### Kpi.NonRevenue

A non-revenue type of KPI.

| Field | Type | Description |
|---|---|---|
| value | double | The value of the non-revenue KPI. |
| revenue_per_kpi | double | Used to convert non-revenue KPI value to revenue. Needs to be non-negative. |

### Kpi.Revenue

A revenue KPI.

| Field | Type | Description |
|---|---|---|
| value | double | The revenue value. |

### MarketingData

A collection of marketing data points for different combinations of geo
locations and times, used for model training.

| Field | Type | Description |
|---|---|---|
| marketing_data_points | MarketingDataPoint | The marketing data points. Required. |
| metadata | MarketingDataMetadata | Metadata support useful to recreate a model data in its domain language. |

### MarketingDataMetadata

Metadata support useful to validate data points and recreate a model data in
its domain language.

| Field | Type | Description |
|---|---|---|
| time_dimensions | TimeDimension | One or more sets of time coordinates. Required. |
| geo_dimension | GeoDimension | The geo dimension of the model. Required. |
| channel_dimensions | ChannelDimension | One or more sets of channel names. Required. |
| control_names | string | Control variable names. |
| kpi_type | string | The KPI type. |
| non_media_treatment_names | string | Non-media treatment variable names. |
| currency_code | string | The currency code (ISO 4217, e.g. "USD", "EUR"). |

### MarketingDataMetadata.ChannelDimension

A named set of channel name coordinates.

| Field | Type | Description |
|---|---|---|
| name | string | A name for this set of channel names in this dimension. Optional. |
| channels | string | The channel names in this set's dimensional coordinates. Required. |

### MarketingDataMetadata.GeoDimension

| Field | Type | Description |
|---|---|---|
| geo_coordinates | string |   |

### MarketingDataMetadata.TimeDimension

A named set of time coordinates.

| Field | Type | Description |
|---|---|---|
| name | string | A name for this set of time coordinates. Optional. |
| dates | Date | The coordinates of this time dimension in the model, as dates. Required. |

### MarketingDataPoint

A data point contains marketing information at specific geo and time.

| Field | Type | Description |
|---|---|---|
| geo_info | GeoInfo | Geo info of this data point. If unset, this data point is aggregated across all geos in the model's geo coordinates. |
| date_interval | DateInterval | Date interval covered by this data point. Required. This can represent either a coordinate point, or an aggregation over a time dimension's coordinates. In the case of the latter, this field should be defined with `[start, end + interval]` value, where `start` and `end` are the first and last coordinate in that time dimension, respectively. |
| control_variables | ControlVariable | The control variables associated to the marketing at this geo and time. |
| media_variables | MediaVariable | The media variables associated to the marketing at this geo and time. If a media variable is from a paid media channel and its media spend breakdown by geo and time is not available (i.e. media spend is aggregated across all geos and times), then there should be a separate `MarketingDataPoint` message with `media_spend` where `geo_info` is unset and `date_interval` spans the entire time dimension's coordinates. Media channel names should be unique across this group of media variables. |
| reach_frequency_variables | ReachFrequencyVariable | The reach and frequency variables associated to the marketing at this geo and time. If a reach and frequency variable is from a paid media channel and its spend breakdown by geo and time is not available (i.e. spend is aggregated across all geos and times), then there should be a separate `MarketingDataPoint` message with `spend` where `geo_info` is unset and `date_interval` spans the entire time dimension's coordinates. Reach and frequency variable names should be unique across this group of reach and frequency variables. |
| kpi | Kpi | The KPI associated to the marketing at this geo and time. Kpi type must be consistent across all data points. |
| non_media_treatment_variables | NonMediaTreatmentVariable | Non-media treatment variables associated with this data point. |

### MediaVariable

The media variable.

| Field | Type | Description |
|---|---|---|
| channel_name | string | The name of the media channel. Required. |
| scalar_metric | ScalarMetric | Scalar metric measured on the channel. Required. |
| media_spend | double | Spend on the media. If the media variable is a paid media, spend is required. |

### NonMediaTreatmentVariable

The non-media treatment variable. A marketing activity that is not directly
related to media, such as running a promotion, the price of a product, and
a change in a product's packaging or design.

| Field | Type | Description |
|---|---|---|
| name | string | The name of the variable. Required. |
| value | double | The value of the variable. Required. |

### ReachFrequencyVariable

The reach and frequency variable.

| Field | Type | Description |
|---|---|---|
| channel_name | string | The name of the reach and frequency variable. Required. |
| reach | int64 | The reach value. Required. |
| average_frequency | double | The average frequency value. Required. |
| spend | double | The spend value. If the reach and frequency variable is a paid media, spend is required. |

### ScalarMetric

Scalar type of metrics. Ex: Impressions, clicks, costs, and etc.

| Field | Type | Description |
|---|---|---|
| name | string | The name of the scalar metric. Required. |
| value | double | The value of the scalar metric. Required. |


[Top](https://developers.google.com/meridian/reference/api/proto#top)

<br />

## mmm_kernel.proto

### MmmKernel

| Field | Type | Description |
|---|---|---|
| marketing_data | MarketingData | The marketing data that is used to train the marketing mix model and later analyzed by the model. |
| model | Any | The details about the model implementation. This should contain a trained marketing mix model along with model-specific information such as model convergence, flags of model usage. |


[Top](https://developers.google.com/meridian/reference/api/proto#top)

<br />

## eda_spec.proto

### AggregationConfig

A configuration for customizing variable aggregation functions.

Variables not specified will default to SUM.

| Field | Type | Description |
|---|---|---|
| control_variables | ControlVariablesEntry | A map from control variable names to their aggregation functions. |
| non_media_treatments | NonMediaTreatmentsEntry | A map from non-media treatment names to their aggregation functions. |

### AggregationConfig.ControlVariablesEntry

| Field | Type | Description |
|---|---|---|
| key | string |   |
| value | AggregationFunction |   |

### AggregationConfig.NonMediaTreatmentsEntry

| Field | Type | Description |
|---|---|---|
| key | string |   |
| value | AggregationFunction |   |

### AggregationFunction

Represents an aggregation function used in EDA.

| Field | Type | Description |
|---|---|---|
| function_key | string | A key that maps to a custom function in the user-provided function registry. The registry allows the EDA spec to be serialized without including the function's code, enabling a more secure deserialization process. Required. |

### EDASpec

A container for all user-configurable EDA check specs.

| Field | Type | Description |
|---|---|---|
| aggregation_config | AggregationConfig | Configuration for custom variable aggregation functions. |
| vif_spec | VIFSpec | Specification for the EDA VIF check. |
| function_registry | FunctionRegistryEntry | Lookup table that contains function names mapped to hashed functions used by various aggregation functions. |
| pairwise_corr_spec | PairwiseCorrSpec | Specification for the EDA pairwise correlation check. |
| kpi_invariability_spec | KpiInvariabilitySpec | Specification for the EDA KPI invariability check. |
| std_spec | StandardDeviationSpec | Specification for the EDA standard deviation check. |

### EDASpec.FunctionRegistryEntry

| Field | Type | Description |
|---|---|---|
| key | string |   |
| value | string |   |

### KpiInvariabilitySpec

A spec for the EDA KPI invariability check.

| Field | Type | Description |
|---|---|---|
| std_threshold | double | The threshold for KPI standard deviation. Required. |

### PairwiseCorrSpec

A spec for the EDA pairwise correlation check.

| Field | Type | Description |
|---|---|---|
| overall_threshold | double | The threshold for overall pairwise correlation. Required. |
| geo_threshold | double | The threshold for geo-level pairwise correlation. Required. |
| national_threshold | double | The threshold for national pairwise correlation. Required. |

### StandardDeviationSpec

A spec for the EDA standard deviation check.

| Field | Type | Description |
|---|---|---|
| geo_std_threshold | double | The threshold for geo-level standard deviation. Required. |
| national_std_threshold | double | The threshold for national-level standard deviation. Required. |

### VIFSpec

A spec for the EDA VIF check.

| Field | Type | Description |
|---|---|---|
| geo_threshold | double | The threshold for geo-level VIF. Required. |
| overall_threshold | double | The threshold for overall VIF. Required. |
| national_threshold | double | The threshold for national VIF. Required. |
| std_threshold | double | The threshold for standard deviation. Required. |


[Top](https://developers.google.com/meridian/reference/api/proto#top)

<br />

## configs.proto

### BaselineConfig

Configuration for the Baseline Check.

| Field | Type | Description |
|---|---|---|
| negative_baseline_prob_review_threshold | double | Probability threshold for a review. If the probability of a negative baseline is above this value, a review is issued. |
| negative_baseline_prob_fail_threshold | double | Probability threshold for a failure. If the probability of a negative baseline is above this value, the check fails. |

### BayesianPPPConfig

Configuration for the Bayesian Posterior Predictive P-value Check.

| Field | Type | Description |
|---|---|---|
| ppp_threshold | double | P-value threshold for posterior predictive check. |

### ConvergenceConfig

Configuration for the Convergence Check.

| Field | Type | Description |
|---|---|---|
| convergence_threshold | double | The threshold for the R-hat statistic to determine if the model has converged. R-hat values below this are considered converged. |
| not_fully_converged_threshold | double | The threshold for the R-hat statistic to determine if the model is not fully converged but potentially acceptable. R-hat values between `convergence_threshold` and this value are considered not fully converged. R-hat values above this threshold are considered not converged. |

### GoodnessOfFitConfig

An empty config for the Goodness of Fit Check.

### PriorPosteriorShiftConfig

Configuration for the Prior-Posterior Shift Check.

| Field | Type | Description |
|---|---|---|
| n_bootstraps | int32 | Number of bootstrap samples to use for calculating posterior statistics. |
| alpha | double | Significance level for detecting a shift between prior and posterior distributions. |
| seed | int32 | Random seed for reproducibility of bootstrap sampling. |

### ROIConsistencyConfig

Configuration for the ROI Consistency Check.

| Field | Type | Description |
|---|---|---|
| prior_lower_quantile | double | The lower quantile of the ROI prior distribution to define the lower bound of the reasonable range. |
| prior_upper_quantile | double | The upper quantile of the ROI prior distribution to define the upper bound of the reasonable range. |


[Top](https://developers.google.com/meridian/reference/api/proto#top)

<br />

## results.proto

### BaselineCheckResult

Result for the Baseline Anomaly Check.

| Field | Type | Description |
|---|---|---|
| negative_baseline_prob | double | Posterior probability that the baseline is negative. |
| baseline_case | BaselineCase |   |
| baseline_config | BaselineConfig |   |

### BayesianPPPCheckResult

Result for the Bayesian P-value Check.

| Field | Type | Description |
|---|---|---|
| bayesian_ppp | double | The calculated Bayesian Posterior Predictive P-value. |
| bayesian_ppp_case | BayesianPPPCase |   |
| bayesian_ppp_config | BayesianPPPConfig |   |

### ConvergenceCheckResult

Result for the Convergence Check.

| Field | Type | Description |
|---|---|---|
| max_r_hat | double | The maximum R-hat value observed across all parameters. |
| max_parameter | string | The name of the parameter with highest R-hat value. |
| convergence_case | ConvergenceCase |   |
| convergence_config | ConvergenceConfig |   |

### GoodnessOfFitCheckResult

Result for the Goodness of Fit Check.

| Field | Type | Description |
|---|---|---|
| r_squared | double | R-squared value on the entire dataset. |
| mape | double | Mean Absolute Percentage Error (MAPE) on the entire dataset. |
| wmape | double | Weighted Mean Absolute Percentage Error (wMAPE) on the entire dataset. |
| r_squared_train | double | R-squared value on the training set. Used only when holdout sample is used. |
| mape_train | double | Mean Absolute Percentage Error (MAPE) on the training set. Used only when holdout sample is used. |
| wmape_train | double | Weighted Mean Absolute Percentage Error (wMAPE) on the training set. Used only when holdout sample is used. |
| r_squared_test | double | R-squared value on the test set. Used only when holdout sample is used. |
| mape_test | double | Mean Absolute Percentage Error (MAPE) on the test set. Used only when holdout sample is used. |
| wmape_test | double | Weighted Mean Absolute Percentage Error (wMAPE) on the test set. Used only when holdout sample is used. |
| goodness_of_fit_case | GoodnessOfFitCase |   |
| goodness_of_fit_config | GoodnessOfFitConfig |   |

### PriorPosteriorShiftChannelResult

Message for the channel-level results of the Prior-Posterior Shift check.

| Field | Type | Description |
|---|---|---|
| channel_name | string |   |
| prior_posterior_shift_channel_case | PriorPosteriorShiftChannelCase |   |

### PriorPosteriorShiftCheckResult

Result for the Prior-Posterior Shift Check (references channel-level
results).

| Field | Type | Description |
|---|---|---|
| channel_results | PriorPosteriorShiftChannelResult |   |
| prior_posterior_shift_case | PriorPosteriorShiftCase |   |
| config | PriorPosteriorShiftConfig |   |

### ROIConsistencyChannelResult

Message for the channel-level results of the ROI Consistency check.

| Field | Type | Description |
|---|---|---|
| channel_name | string |   |
| prior_roi_lo | double | The lower quantile of the prior ROI distribution (used for comparison). |
| prior_roi_hi | double | The upper quantile of the prior ROI distribution (used for comparison). |
| posterior_roi_mean | double | The estimated ROI mean from the posterior distribution. |
| roi_consistency_channel_case | ROIConsistencyChannelCase |   |

### ROIConsistencyCheckResult

Result for the ROI Consistency Check (references channel-level results).

| Field | Type | Description |
|---|---|---|
| channel_results | ROIConsistencyChannelResult |   |
| roi_consistency_case | ROIConsistencyCase |   |
| roi_consistency_config | ROIConsistencyConfig |   |

### ReviewSummaryResults

| Field | Type | Description |
|---|---|---|
| overall_status | HealthStatus |   |
| summary_message | string |   |
| convergence_check_result | ConvergenceCheckResult |   |
| baseline_check_result | BaselineCheckResult |   |
| bayesian_ppp_check_result | BayesianPPPCheckResult |   |
| goodness_of_fit_check_result | GoodnessOfFitCheckResult |   |
| prior_posterior_shift_check_result | PriorPosteriorShiftCheckResult |   |
| roi_consistency_check_result | ROIConsistencyCheckResult |   |
| health_score | double | The composite health score (0-100). |

### BaselineCase

Enum for the specific outcomes of the Baseline Anomaly Check.

| Name | Number | Description |
|---|---|---|
| BASELINE_CASE_UNSPECIFIED | 0 |   |
| BASELINE_CASE_PASS | 1 |   |
| BASELINE_CASE_REVIEW | 2 |   |
| BASELINE_CASE_FAIL | 3 |   |

### BayesianPPPCase

Enum for the specific outcomes of the Bayesian PPP Check.

| Name | Number | Description |
|---|---|---|
| BAYESIAN_PPP_CASE_UNSPECIFIED | 0 |   |
| BAYESIAN_PPP_CASE_PASS | 1 |   |
| BAYESIAN_PPP_CASE_FAIL | 2 |   |

### ConvergenceCase

Enum for the specific outcomes of the Convergence Check.

| Name | Number | Description |
|---|---|---|
| CONVERGENCE_CASE_UNSPECIFIED | 0 |   |
| CONVERGENCE_CASE_PASS_CONVERGED | 1 |   |
| CONVERGENCE_CASE_FAIL_NOT_FULLY_CONVERGED | 2 |   |
| CONVERGENCE_CASE_FAIL_NOT_CONVERGED | 3 |   |

### GoodnessOfFitCase

Enum for the specific outcomes of the Goodness of Fit Check.

| Name | Number | Description |
|---|---|---|
| GOODNESS_OF_FIT_CASE_UNSPECIFIED | 0 |   |
| GOODNESS_OF_FIT_CASE_PASS | 1 |   |
| GOODNESS_OF_FIT_CASE_FAIL | 2 |   |

### HealthStatus

Enum for the status of a check.

| Name | Number | Description |
|---|---|---|
| HEALTH_STATUS_UNSPECIFIED | 0 |   |
| HEALTH_STATUS_PASS | 1 |   |
| HEALTH_STATUS_REVIEW | 2 |   |
| HEALTH_STATUS_FAIL | 3 |   |

### PriorPosteriorShiftCase

Enum for the specific outcomes of the Prior-Posterior Shift Aggregate Check.

| Name | Number | Description |
|---|---|---|
| PRIOR_POSTERIOR_SHIFT_CASE_UNSPECIFIED | 0 |   |
| PRIOR_POSTERIOR_SHIFT_CASE_PASS | 1 |   |
| PRIOR_POSTERIOR_SHIFT_CASE_REVIEW | 2 |   |

### PriorPosteriorShiftChannelCase

Enum for the specific outcomes of the Prior-Posterior Shift Channel Check.

| Name | Number | Description |
|---|---|---|
| PRIOR_POSTERIOR_SHIFT_CHANNEL_CASE_UNSPECIFIED | 0 |   |
| PRIOR_POSTERIOR_SHIFT_CHANNEL_CASE_SHIFT | 1 |   |
| PRIOR_POSTERIOR_SHIFT_CHANNEL_CASE_NO_SHIFT | 2 |   |

### ROIConsistencyCase

Enum for the specific outcomes of the ROI Sanity Aggregate Check.

| Name | Number | Description |
|---|---|---|
| ROI_CONSISTENCY_CASE_UNSPECIFIED | 0 |   |
| ROI_CONSISTENCY_CASE_PASS | 1 |   |
| ROI_CONSISTENCY_CASE_REVIEW | 2 |   |

### ROIConsistencyChannelCase

Enum for the specific outcomes of the ROI Consistency Channel Check.

| Name | Number | Description |
|---|---|---|
| ROI_CONSISTENCY_CHANNEL_CASE_UNSPECIFIED | 0 |   |
| ROI_CONSISTENCY_CHANNEL_CASE_ROI_PASS | 1 |   |
| ROI_CONSISTENCY_CHANNEL_CASE_ROI_LOW | 2 |   |
| ROI_CONSISTENCY_CHANNEL_CASE_ROI_HIGH | 3 |   |
| ROI_CONSISTENCY_CHANNEL_CASE_PRIOR_ROI_QUANTILE_INF | 4 |   |
| ROI_CONSISTENCY_CHANNEL_CASE_QUANTILE_NOT_DEFINED | 5 |   |


[Top](https://developers.google.com/meridian/reference/api/proto#top)

<br />

## meridian_model.proto

### AdstockDecayByChannel

Specifies the adstock decay function for each channel.

| Field | Type | Description |
|---|---|---|
| channel_decays | ChannelDecaysEntry | A map where keys are channel names and values are the adstock decay function to use for that channel. Allowed values are 'geometric' or 'binomial'. |

### AdstockDecayByChannel.ChannelDecaysEntry

| Field | Type | Description |
|---|---|---|
| key | string |   |
| value | string |   |

### CalibrationConfig

Declarative ROI calibration specification supporting both global and
channel-specific date intervals.

| Field | Type | Description |
|---|---|---|
| global_date_ranges | GlobalCalibrationDateRanges | Global calibration date intervals across all channels. |
| channel_date_ranges | ChannelDateRanges | Channel-specific calibration windows. |

### CalibrationConfig.ChannelDateRanges

Specifies channel-specific date intervals.

| Field | Type | Description |
|---|---|---|
| channel_date_ranges | ChannelDateRangeCalibration | Calibration date intervals for specific channels or channel groups. |

### CalibrationConfig.GlobalCalibrationDateRanges

Specifies global date intervals applied across all channels of this
treatment type.

| Field | Type | Description |
|---|---|---|
| date_intervals | DateInterval | Non-contiguous date intervals applied across all channels. These date intervals act as declarative selectors over the discrete date coordinates present in the input data (e.g. `InputData.media_time`). Each interval must encompass one or more observed dates in the dataset to be valid. |

### Changepoints

The changepoints of one paid media or reach and frequency channel.

| Field | Type | Description |
|---|---|---|
| dates | Date | Dates where the channel's effect may change. Each date is a time coordinate of the input data and starts a new interval. |

### ChannelDateRangeCalibration

Specifies ROI calibration date intervals for a subset of channels.

In Marketing Mix Modeling, ROI calibration incorporates experimental ground
truth (e.g. lift test results) into the model's Bayesian prior. This message
maps specific treatment channels to the non-contiguous date intervals during
which experiments occurred.

| Field | Type | Description |
|---|---|---|
| channels | string | Channel names where `date_intervals` apply for ROI calibration. These names must match the coordinate labels in `InputData.media_channel` (for paid media) or `InputData.rf_channel` (for reach and frequency). |
| date_intervals | DateInterval | Non-contiguous date intervals where ROI calibration is applied for the specified channels. Each interval contains an inclusive `start_date` and an exclusive `end_date`. These date intervals act as declarative selectors over the discrete date coordinates present in the input data (e.g. `InputData.media_time`). Each interval must encompass one or more observed dates in the dataset to be valid. |

### Distribution

Represents Tensorflow statistical distributions that are used in user priors
in a Meridian model.
All fields are required unless otherwise specified.
See: https://www.tensorflow.org/probability/api_docs/python/tfp/distributions

| Field | Type | Description |
|---|---|---|
| name | string | The canonical name of this distribution in the Meridian model framework. |
| batch_broadcast | BatchBroadcast |   |
| deterministic | Deterministic |   |
| half_normal | HalfNormal |   |
| log_normal | LogNormal |   |
| normal | Normal |   |
| transformed | Transformed |   |
| truncated_normal | TruncatedNormal |   |
| uniform | Uniform |   |
| beta | Beta |   |

### Distribution.BatchBroadcast

A distribution that broadcasts an underlying distribution's batch shape.

| Field | Type | Description |
|---|---|---|
| distribution | Distribution | The underlying (pre-broadcast) distribution. |
| batch_shape | TensorShapeProto | The shape of the broadcast distribution. |

### Distribution.Beta

A Beta distribution with alpha and beta parameters.
See:
https://www.tensorflow.org/probability/api_docs/python/tfp/distributions/Beta

| Field | Type | Description |
|---|---|---|
| alpha | double | The alpha parameter of the underlying Beta distribution. |
| beta | double | The beta parameter of the underlying Beta distribution. |

### Distribution.Bijector

Represents Tensorflow bijectors.
All fields are required unless otherwise specified.
See: https://www.tensorflow.org/probability/api_docs/python/tfp/bijectors

| Field | Type | Description |
|---|---|---|
| name | string | The name of this bijector. |
| shift | Shift |   |
| scale | Scale |   |
| reciprocal | Reciprocal |   |

### Distribution.Bijector.Reciprocal

A bijector that reciprocates the input.

### Distribution.Bijector.Scale

A bijector that scales the input by a scalar or log scale.

| Field | Type | Description |
|---|---|---|
| scales | double | The scale to apply to the input. Should be not be set if `log_scales` is set. |
| log_scales | double | The log scale to apply to the input. Should be not be set if `scales` is set. |

### Distribution.Bijector.Shift

A bijector that shifts the input by a scalar.

| Field | Type | Description |
|---|---|---|
| shifts | double | The shift to apply to the input. |

### Distribution.Deterministic

A scalar deterministic distribution on the real line.

| Field | Type | Description |
|---|---|---|
| locs | double | The batch of points on which this distribution is supported. |

### Distribution.HalfNormal

A half-normal distribution with scales.

| Field | Type | Description |
|---|---|---|
| scales | double | The scales of the distribution. |

### Distribution.LogNormal

A log-normal distribution with locs (means) and scales (stddevs).

| Field | Type | Description |
|---|---|---|
| locs | double | The means of the underlying Normal distribution. |
| scales | double | The standard deviations of the underlying normal distribution. |

### Distribution.Normal

A normal distribution with locs (means) and scales (stddevs).

| Field | Type | Description |
|---|---|---|
| locs | double | The means of the underlying Normal distribution. |
| scales | double | The standard deviations of the underlying normal distribution. Must contain only positive values. |

### Distribution.Transformed

A distribution that is transformed by a bijector.

| Field | Type | Description |
|---|---|---|
| distribution | Distribution | The underlying (pre-transformed) distribution. |
| bijector | Bijector | The transforming bijector. |

### Distribution.TruncatedNormal

A truncated Normal distribution, bounded between `low` and `high`.

| Field | Type | Description |
|---|---|---|
| locs | double | The means of the underlying Normal distribution. |
| scales | double | The standard deviations of the underlying Normal distribution. |
| low | double | Lower bound of the distribution's support. Must be less than `high`. |
| high | double | Upper bound of the distribution's support. Must be greater than `low`. |
| lows | double | Lower bounds of the distribution's support. Each value in `lows` must be less than the corresponding value in `highs`. |
| highs | double | Upper bounds of the distribution's support. Each value in `highs` must be greater than the corresponding value in `lows`. |

### Distribution.Uniform

A uniform distribution on the real line.

| Field | Type | Description |
|---|---|---|
| low | double | Lower boundary of the output interval. Must be less than `high`. |
| high | double | Upper boundary of the output interval. Must be greater than `low`. |
| lows | double | Lower boundaries of the output interval. Each value in `lows` must be less than the corresponding value in `highs`. |
| highs | double | Upper boundaries of the output interval. Each value in `highs` must be greater than the corresponding value in `lows`. |

### GeoDateRangeHoldout

Specifies holdout date intervals for a subset of geos.

Used in spatio-temporal holdout configurations to hold out specific date
intervals for specific geographic units.

| Field | Type | Description |
|---|---|---|
| geos | string | Geo names where `date_intervals` apply for holdout. These names must match the coordinate labels in `InputData.geo`. |
| date_intervals | DateInterval | Non-contiguous date intervals where holdout applies for the specified geos. Each interval contains an inclusive `start_date` and an exclusive `end_date`. These date intervals act as declarative selectors over the discrete date coordinates present in the input data (e.g. `InputData.time`). Each interval must encompass one or more observed dates in the dataset to be valid. |

### HoldoutConfig

Declarative holdout specification supporting temporal, spatial, and
spatio-temporal holdout windows, as well as randomized holdout sampling.

This message is self-contained: `spec` declares the holdout *intent* , and
`resolved` records the materialized draw when that intent is
non-deterministic. Together they fully determine the holdout without
resorting to a raw, input-data-shaped tensor.

| Field | Type | Description |
|---|---|---|
| global_date_ranges | GlobalHoldoutDateRanges | Global temporal holdouts (applied to all geos). |
| geo_date_ranges | GeoDateRanges | Spatio-temporal holdouts (geo x time windows). |
| random_holdout | RandomHoldout | Randomized holdout sampling, materialized into `resolved` at fit time. |
| resolved | GeoDateRanges | The materialized result of a non-deterministic `spec`, expressed declaratively as geo x time windows. Populated ONLY when `spec` is `random_holdout`. A random draw cannot be reproduced from `ratio` and `seed` alone across computational backends, library versions, or input data coordinate orderings, so the drawn sample is recorded explicitly here. For the deterministic variants (`global_date_ranges`, `geo_date_ranges`), `spec` reproduces the holdout exactly on every read, so this field is redundant and MUST be left unset. When set, this field is authoritative and MUST NOT be re-drawn on deserialization; `spec` is retained as provenance describing how the holdout was originally requested. |

### HoldoutConfig.GeoDateRanges

Specifies spatio-temporal holdouts for specific geos.

| Field | Type | Description |
|---|---|---|
| geo_date_ranges | GeoDateRangeHoldout | Holdout date intervals for specific geos. |

### HoldoutConfig.GlobalHoldoutDateRanges

Specifies global temporal holdouts applied to all geos.

| Field | Type | Description |
|---|---|---|
| date_intervals | DateInterval | Non-contiguous date intervals held out across all geos. These date intervals act as declarative selectors over the discrete date coordinates present in the input data (e.g. `InputData.time`). Each interval must encompass one or more observed dates in the dataset to be valid. |

### HoldoutConfig.RandomHoldout

Specifies randomized holdout sampling with an optional PRNG seed.

| Field | Type | Description |
|---|---|---|
| ratio | double | Proportion of observations randomly selected for holdout evaluation (e.g. 0.2 for a 20% random holdout sample). Must be in the range (0.0, 1.0). |
| seed | int64 | Pseudo-random number generator (PRNG) seed used to sample holdout observations deterministically. If unset, an unpredictable seed from OS entropy is used during model compilation. Note that a seed alone does NOT reproduce a draw: the drawn sample also depends on the computational backend (TensorFlow vs. JAX), library version, and input data coordinate ordering (e.g. geo order in `InputData.geo`). The authoritative record of a draw is `resolved`. |
| balanced | bool | Whether the draw is balanced across time periods as well as geos. Every geo always holds out the same number of time periods; when this is true the number of held-out observations per time period additionally differs by at most one across time periods. When false (the default), each geo's held-out periods are a simple random sample, independent of the other geos. |

### Hyperparameters

Hyperparameters for the MMM model.

| Field | Type | Description |
|---|---|---|
| media_effects_dist | MediaEffectsDistribution | Specifies the distribution of media random effects across geos. This hyperparameter is ignored in a national-level model. |
| hill_before_adstock | bool | Indicates whether to apply the Hill function before Adstock function. This hyperparameter does not apply to RF channels. |
| max_lag | uint32 | The maximum number of lag periods (\>= 0) to include in the Adstock calculation. If unset, then max lag is interpreted as infinite. |
| unique_sigma_for_each_geo | bool | Indicates whether to use a unique residual variance for each geo. If False, then a single residual variance is used for all geos. |
| paid_media_prior_type | PaidMediaPriorType | Prior type for the media coefficients. If `paid_media_prior_type` is 'coefficient'`, then the model uses`beta_\[m |
| media_prior_type | PaidMediaPriorType | Prior type for the (paid, non-rf) media coefficients. If `media_prior_type` is 'coefficient'`, then the model uses`beta_m`distribution in the priors. If`media_prior_type' is `'roi'` or `'mroi'`, then the `roi_m` or `mroi_m` is used, respectively. If `media_prior_type` is `'contribution'`, then the `contribution_m` is used. |
| rf_prior_type | PaidMediaPriorType | Prior type for the (paid) rf coefficients. If `rf_prior_type` is 'coefficient'`, then the model uses`beta_rf`distribution in the priors. If`rfprior_type' is `'roi'` or `'mroi'`, then the `roi_rf` or `mroi_rf` is used, respectively. If `rf_prior_type` is `'contribution'`, then the `contribution_rf` is used. |
| organic_media_prior_type | NonPaidTreatmentsPriorType | Prior type for the organic media coefficients. If `organic_media_prior_type` is 'coefficient'`, then the model uses`beta_om`distribution in the priors. If`organic_media_prior_type`is`'contribution'`, then the`contribution_om\` is used. |
| organic_rf_prior_type | NonPaidTreatmentsPriorType | Prior type for the organic rf coefficients. If `organic_rf_prior_type` is 'coefficient'`, then the model uses`beta_orf`distribution in the priors. If`organic_rf_prior_type`is`'contribution'`, then the`contribution_orf\` is used. |
| non_media_treatments_prior_type | NonPaidTreatmentsPriorType | Prior type for the non-media treatments coefficients. If `non_media_treatments_prior_type` is 'coefficient'`, then the model uses`gamma_n`distribution in the priors. If`non_media_treatments_prior_type`is`'contribution'`, then the`contribution_n\` is used. |
| roi_calibration_period | TensorProto | A boolean tensor in the shape `(n_media_times, n_media_channels)`. This indicates the subset of `time` coordinates in the model for media ROI calibration. If unset, all time coordinates are used for media ROI calibration. Deprecated. Use `roi_calibration_config` instead. |
| rf_roi_calibration_period | TensorProto | A boolean tensor in the shape `(n_media_times, n_rf_channels)`. This indicates the subset of `time` coordinates in the model for reach and frequency ROI calibration. If unset, all time coordinates are used for R\&F ROI calibration. Deprecated. Use `rf_roi_calibration_config` instead. |
| knots | int32 | A (single-value) integer or a list of integers, indicating the knots used to estimate time effects. Deprecated. Use `knots_spec` (`n_knots` or `knot_locations`) instead. |
| n_knots | int32 | Number of equally spaced knots across time periods. |
| knot_locations | KnotLocations | Explicit knot locations (time indices). |
| enable_aks | bool | A boolean indicating whether to use the Automatic Knot Selection algorithm to select optimal number of knots for running the model instead of the default 1 for national and n_times for non-national models. If this is set to true and the knots arg is provided, then an error will be raised when deserialized back to ModelSpec. Default: `False`. |
| baseline_geo_int_deprecated | double | Deprecated. Use `baseline_geo_int` instead. |
| baseline_geo_int | int32 | Integer representation of baseline geo. |
| baseline_geo_string | string |   |
| holdout_id | TensorProto | A boolean tensor in the shape `(n_geos, n_times)` for a geo-level model or `(n_times,)` for a national model. This indicates which observations are part of the holdout sample, which are excluded from the training sample. For more details on the holdout sample, see: `meridian.model.spec.ModelSpec` Deprecated. This leaks a raw, input-data-shaped tensor into the schema. Use `holdout_config` instead, which expresses the same holdout declaratively in terms of geo names and date intervals. |
| holdout_ratio | double | The ratio of holdout data to use for the goodness of fit check. Used as inputs and this will be implemented in training module right before feeding into Meridian. Deprecated. Use `holdout_config.random_holdout` instead, which also records the resolved draw in `holdout_config.resolved`. |
| control_population_scaling_id | TensorProto | A boolean tensor in the shape `(n_controls,)`. This indicates the control variables for which the control value will be scaled by population. If unset, no control variables are scaled by population. Deprecated. Use `population_scaled_controls` instead. |
| non_media_population_scaling_id | TensorProto | A boolean tensor in the shape `(n_non_media_channels,)`. This indicates the non-media treatments channels for which the value will be scaled by population. If unset, no non-media treatments channels are scaled by population. Deprecated. Use `population_scaled_non_media_channels` instead. |
| global_adstock_decay | string | The global adstock decay function to use for all channels. Allowed values are 'geometric' or 'binomial'. |
| adstock_decay_by_channel | AdstockDecayByChannel | Channel-specific adstock decay functions. Defaults to 'geometric' for channels not specified in the map. |
| global_saturation | string | The global saturation function to use for all channels. Allowed values are 'hill' or 'none'. |
| saturation_by_channel | SaturationByChannel | Channel-specific saturation functions. Defaults to 'hill' for channels not specified in the map. |
| non_media_baseline_values | NonMediaBaselineValue | A list with the shape `(n_non_media_channels,)`. Each element is either a float (which means that the fixed value will be used as baseline for the given channel) or one of the function strings `"min"` or `"max"` (which mean that the global minimum or maximum value will be used as baseline for the scaled values of the given non_media treatments channel). If `None`, the minimum value is used as baseline for each non-media treatments channel. This attribute is used as the default value for the corresponding argument to `Analyzer` methods. Deprecated. Use `non_media_baseline_values_map` instead. |
| roi_calibration_config | CalibrationConfig | Declarative ROI calibration specification for paid media channels. |
| rf_roi_calibration_config | CalibrationConfig | Declarative ROI calibration specification for reach and frequency channels. |
| holdout_config | HoldoutConfig | Declarative holdout specification defining temporal (all geos), spatio-temporal (geo-specific), or random holdout configurations. This is the preferred representation of the holdout sample, superseding the deprecated `holdout_id` and `holdout_ratio`. It is self-contained: for deterministic specifications it fully determines the holdout, and for random specifications it additionally records the resolved draw. |
| population_scaled_controls | string | Names of control variables selected for population scaling. If empty, no control variables are scaled by population. |
| population_scaled_non_media_channels | string | Names of non-media treatment channels selected for population scaling. If empty, no non-media treatment channels are scaled by population. |
| non_media_baseline_values_map | NonMediaBaselineValuesMapEntry | Named baseline values for non-media treatment channels. Maps channel names to their respective baseline configuration (either a fixed float value or a baseline function like MIN or MAX). Channels not specified in the map default to using MIN. |
| force_nonnegative_aggregate_baseline | bool | Whether to constrain the aggregate baseline, summed over all geos and time periods, to be non-negative. Unset or `false` means unconstrained, which is how models serialized before this field existed were fit. |
| changepoints | ChangepointsEntry | Time-varying effects: maps a paid media or reach and frequency channel name to its changepoints. Empty means no time-varying effects, which is how models serialized before this field existed were fit. |
| changepoint_media_prior_type | PaidMediaPriorType | Prior type of the paid media channels in `changepoints`. Unset means ROI. |
| changepoint_rf_prior_type | PaidMediaPriorType | Prior type of the reach and frequency channels in `changepoints`. Unset means ROI. |
| changepoint_media_effects_dist | MediaEffectsDistribution | Distribution of the media random effects of the channels in `changepoints`. Unlike `media_effects_dist`, it also applies to national models. Unset means log-normal. |

### Hyperparameters.ChangepointsEntry

| Field | Type | Description |
|---|---|---|
| key | string |   |
| value | Changepoints |   |

### Hyperparameters.NonMediaBaselineValuesMapEntry

| Field | Type | Description |
|---|---|---|
| key | string |   |
| value | NonMediaBaselineValue |   |

### InferenceData

InferenceData data contains none, only prior, or both prior and posterior
sampled parameters and their sampling states and trace from fitting the
model.
https://python.arviz.org/en/stable/api/generated/arviz.InferenceData.html

All fields inside this container are `xarray.Dataset`s that are
byte-serialized in NetCDF format.
See: https://docs.xarray.dev/en/stable/user-guide/io.html

| Field | Type | Description |
|---|---|---|
| prior | bytes | Sampled prior parameters as an `xarray.Dataset` serialized in NetCDF4 format. |
| posterior | bytes | Sampled posterior parameters as an `xarray.Dataset` serialized in NetCDF4 format. |
| auxiliary_data | AuxiliaryDataEntry | Contains "sample_stats", "trace", and other auxiliary data that are useful for debugging. "sample_stats" and "trace" specifically are available when `posterior` is available. |

### InferenceData.AuxiliaryDataEntry

| Field | Type | Description |
|---|---|---|
| key | string |   |
| value | bytes |   |

### KnotLocations

Specifies explicit knot locations for time effects.

| Field | Type | Description |
|---|---|---|
| locations | int32 | A list of integers indicating the explicit knot locations (time indices) used to estimate time effects. |

### McmcSamplingTrace

The trace of MCMC sampling.

| Field | Type | Description |
|---|---|---|
| num_chains | uint32 |   |
| num_draws | uint32 |   |
| step_size | TensorProto |   |
| tune | TensorProto |   |
| target_log_prob | TensorProto |   |
| diverging | TensorProto |   |
| accept_ratio | TensorProto |   |
| n_steps | TensorProto |   |
| is_accepted | TensorProto |   |

### MeridianModel

Meridian model schema.

| Field | Type | Description |
|---|---|---|
| model_id | string | The unique identifier of this model. |
| model_version | string | The semantic version of the Meridian library used to generate this model. |
| schema_version | string | Version of the `mmm-proto-schema` package used to serialize this model, in semantic version format (e.g. "1.6.0"). |
| arviz_version | string | The ArviZ version used to serialize inference data. |
| hyperparameters | Hyperparameters |   |
| prior_distributions | PriorDistributions |   |
| prior_tfp_distributions | PriorTfpDistributions |   |
| inference_data | InferenceData | Inference data contains sampled priors and posteriors. |
| convergence_info | ModelConvergence | Contains the information about model convergence status. |
| eda_spec | EDASpec | User-configurable EDA check specs. |
| computation_backend | ComputationBackend |   |
| computation_precision | ComputationPrecision |   |
| review_summary | ReviewSummaryResults |   |

### ModelConvergence

| Field | Type | Description |
|---|---|---|
| mcmc_sampling_trace | McmcSamplingTrace |   |
| convergence | bool | Convergence heuristic check for the MCMC sampling. |
| r_hat_diagnostic | RHatDiagnostic |   |

### NonMediaBaselineValue

A container for non-media baseline function or float values. If float, then
that value is used as the baseline for all non-media channels. Otherwise, the
min or max value is used as the baseline for the corresponding non-media
channel.

| Field | Type | Description |
|---|---|---|
| value | float |   |
| function_value | NonMediaBaselineFunction |   |

### Parameter

A named tensor parameter.

| Field | Type | Description |
|---|---|---|
| name | string |   |
| tensor | TensorProto |   |

### PriorDistributions

A container for user prior distribution parameters in a Meridian model.
These distributions are in their mathematical forms when representing
user priors in the model spec and are part of the user input in a pre-fitted
model.

After priors sampling, these distributions are broadcast and should *all*
contain `Distribution.BatchBroadcast` types.

All parameter distributions are optional. If a distribution is left
unspecified for a given parameter, Meridian will select its default prior
distribution.

See: `meridian.model.prior_distribution` module.
See:
https://developers.google.com/meridian/docs/advanced-modeling/default-prior-distributions

| Field | Type | Description |
|---|---|---|
| knot_values | Distribution |   |
| tau_g_excl_baseline | Distribution |   |
| beta_m | Distribution |   |
| beta_rf | Distribution |   |
| eta_m | Distribution |   |
| eta_rf | Distribution |   |
| gamma_c | Distribution |   |
| xi_c | Distribution |   |
| alpha_m | Distribution |   |
| alpha_rf | Distribution |   |
| ec_m | Distribution |   |
| ec_rf | Distribution |   |
| slope_m | Distribution |   |
| slope_rf | Distribution |   |
| sigma | Distribution |   |
| roi_m | Distribution |   |
| roi_rf | Distribution |   |
| mroi_m | Distribution |   |
| mroi_rf | Distribution |   |
| contribution_m | Distribution |   |
| contribution_rf | Distribution |   |
| contribution_om | Distribution |   |
| contribution_orf | Distribution |   |
| contribution_n | Distribution |   |
| beta_om | Distribution |   |
| beta_orf | Distribution |   |
| eta_om | Distribution |   |
| eta_orf | Distribution |   |
| gamma_n | Distribution |   |
| xi_n | Distribution |   |
| alpha_om | Distribution |   |
| alpha_orf | Distribution |   |
| ec_om | Distribution |   |
| ec_orf | Distribution |   |
| slope_om | Distribution |   |
| slope_orf | Distribution |   |

### PriorTfpDistributions

A container for user prior distribution parameters in a Meridian model.
These distributions are in their mathematical forms when representing
user priors in the model spec and are part of the user input in a pre-fitted
model.

After priors sampling, these distributions are broadcast and should *all*
contain `Distribution.BatchBroadcast` types.

All parameter distributions are optional. If a distribution is left
unspecified for a given parameter, Meridian will select its default prior
distribution.

See: `meridian.model.prior_distribution` module.
See:
https://developers.google.com/meridian/docs/advanced-modeling/default-prior-distributions

| Field | Type | Description |
|---|---|---|
| knot_values | TfpDistribution |   |
| tau_g_excl_baseline | TfpDistribution |   |
| beta_m | TfpDistribution |   |
| beta_rf | TfpDistribution |   |
| eta_m | TfpDistribution |   |
| eta_rf | TfpDistribution |   |
| gamma_c | TfpDistribution |   |
| xi_c | TfpDistribution |   |
| alpha_m | TfpDistribution |   |
| alpha_rf | TfpDistribution |   |
| ec_m | TfpDistribution |   |
| ec_rf | TfpDistribution |   |
| slope_m | TfpDistribution |   |
| slope_rf | TfpDistribution |   |
| sigma | TfpDistribution |   |
| roi_m | TfpDistribution |   |
| roi_rf | TfpDistribution |   |
| mroi_m | TfpDistribution |   |
| mroi_rf | TfpDistribution |   |
| contribution_m | TfpDistribution |   |
| contribution_rf | TfpDistribution |   |
| contribution_om | TfpDistribution |   |
| contribution_orf | TfpDistribution |   |
| contribution_n | TfpDistribution |   |
| beta_om | TfpDistribution |   |
| beta_orf | TfpDistribution |   |
| eta_om | TfpDistribution |   |
| eta_orf | TfpDistribution |   |
| gamma_n | TfpDistribution |   |
| xi_n | TfpDistribution |   |
| alpha_om | TfpDistribution |   |
| alpha_orf | TfpDistribution |   |
| ec_om | TfpDistribution |   |
| ec_orf | TfpDistribution |   |
| slope_om | TfpDistribution |   |
| slope_orf | TfpDistribution |   |
| zeta_m | TfpDistribution | Priors on the scale of the time-varying effect of paid media and RF channels with changepoints. Only set when `Hyperparameters.changepoints` is not empty. |
| zeta_rf | TfpDistribution |   |
| function_registry | FunctionRegistryEntry | Lookup table that contains function names mapped to hashed functions used by various `tfp.distributions`. |

### PriorTfpDistributions.FunctionRegistryEntry

| Field | Type | Description |
|---|---|---|
| key | string |   |
| value | string |   |

### RHatDiagnostic

Diagnostic of MCMC sampling by computing r_hat value for each parameters.

| Field | Type | Description |
|---|---|---|
| parameter_r_hats | Parameter | The r-hat values of model parameters. Current list of parameters: (see InferenceData.parameters above) |

### SaturationByChannel

Specifies the saturation function for each channel.

| Field | Type | Description |
|---|---|---|
| channel_saturations | ChannelSaturationsEntry | A map where keys are channel names and values are the saturation function to use for that channel. Allowed values are 'hill' or 'none'. Channels not specified in the map default to using 'hill'. |

### SaturationByChannel.ChannelSaturationsEntry

| Field | Type | Description |
|---|---|---|
| key | string |   |
| value | string |   |

### TfpBijector

Represents a constructor parameter for a `tfp.bijectors` class.
All fields are required unless otherwise specified.
See: https://www.tensorflow.org/probability/api_docs/python/tfp/bijectors

| Field | Type | Description |
|---|---|---|
| bijector_type | string | A `tfp.bijectors` class name. e.g. "Shift", "Scale", etc. |
| parameters | ParametersEntry | Parameters for the specific bijector type. |

### TfpBijector.ParametersEntry

| Field | Type | Description |
|---|---|---|
| key | string |   |
| value | TfpParameterValue |   |

### TfpDistribution

Represents TensorFlow statistical distribution spec that are used in user
priors in a Meridian model.
All fields are required unless otherwise specified.
See: https://www.tensorflow.org/probability/api_docs/python/tfp/distributions

| Field | Type | Description |
|---|---|---|
| distribution_type | string | A `tfp.distributions` class name. e.g. "Normal", "TransformedDistribution", etc. |
| parameters | ParametersEntry | Parameters for the specific distribution type. |

### TfpDistribution.ParametersEntry

| Field | Type | Description |
|---|---|---|
| key | string |   |
| value | TfpParameterValue |   |

### TfpParameterValue

Represents a constructor parameter for a `tfp.distributions` class.

| Field | Type | Description |
|---|---|---|
| scalar_value | float | Primitive distribution parameter value types. |
| int_value | int32 |   |
| bool_value | bool |   |
| string_value | string |   |
| none_value | bool |   |
| distribution_value | TfpDistribution | For nested distribution parameter (e.g. for `TransformedDistribution`) |
| bijector_value | TfpBijector | For nested bijector parameter (e.g. for `TransformedDistribution`) |
| list_value | List | For a parameter that takes a list of parameters. |
| dict_value | Dict | For a parameter that takes a dict. |
| tensor_value | TensorProto | For a parameter that takes a Tensor. |
| fully_reparameterized | bool | Whether the distribution should be fully reparameterized. See: https://www.tensorflow.org/probability/api_docs/python/tfp/distributions/ReparameterizationType |
| function_param | FunctionParam | For a parameter that takes a function. |

### TfpParameterValue.Dict

For parameter values that are dicts.

| Field | Type | Description |
|---|---|---|
| value_map | ValueMapEntry |   |

### TfpParameterValue.Dict.ValueMapEntry

| Field | Type | Description |
|---|---|---|
| key | string |   |
| value | TfpParameterValue |   |

### TfpParameterValue.FunctionParam

For parameter values that are functions.

| Field | Type | Description |
|---|---|---|
| function_key | string | A key that maps to a custom function in the user-provided function registry. The registry allows the model to be serialized without including the function's code, enabling a more secure deserialization process. |
| uses_default | bool | Whether the Distribution uses the default function implementation. |

### TfpParameterValue.List

For parameter values that are lists or tuples.

| Field | Type | Description |
|---|---|---|
| values | TfpParameterValue |   |

### ComputationBackend

The computational backend used to train the model.

| Name | Number | Description |
|---|---|---|
| COMPUTATION_BACKEND_UNSPECIFIED | 0 |   |
| TENSORFLOW | 1 |   |
| JAX | 2 |   |

### ComputationPrecision

The computational precision used to train the model.

| Name | Number | Description |
|---|---|---|
| COMPUTATION_PRECISION_UNSPECIFIED | 0 |   |
| FLOAT32 | 1 |   |
| FLOAT64 | 2 |   |

### MediaEffectsDistribution

Possible distribution types for media random effects across geos.

| Name | Number | Description |
|---|---|---|
| MEDIA_EFFECTS_DISTRIBUTION_UNSPECIFIED | 0 |   |
| NORMAL | 1 |   |
| LOG_NORMAL | 2 |   |

### NonMediaBaselineValue.NonMediaBaselineFunction

Possible non-media baseline function values. If used, then the min or max
value of the non-media treatment is used as the baseline for the
corresponding non-media channel instead of a fixed, user-specified value.

| Name | Number | Description |
|---|---|---|
| NON_MEDIA_BASELINE_FUNCTION_UNSPECIFIED | 0 |   |
| MIN | 1 |   |
| MAX | 2 |   |

### NonPaidTreatmentsPriorType

Possible non-paid treatments prior types.

| Name | Number | Description |
|---|---|---|
| NON_PAID_TREATMENTS_PRIOR_TYPE_UNSPECIFIED | 0 |   |
| NON_PAID_TREATMENTS_PRIOR_TYPE_COEFFICIENT | 1 |   |
| NON_PAID_TREATMENTS_PRIOR_TYPE_CONTRIBUTION | 2 |   |

### PaidMediaPriorType

Possible paid media prior types.

| Name | Number | Description |
|---|---|---|
| PAID_MEDIA_PRIOR_TYPE_UNSPECIFIED | 0 |   |
| ROI | 1 |   |
| MROI | 2 |   |
| COEFFICIENT | 3 |   |
| CONTRIBUTION | 4 |   |


[Top](https://developers.google.com/meridian/reference/api/proto#top)

<br />

## estimate.proto

### Estimate

Contains an estimate value of estimand and associated quantified
uncertainties.

| Field | Type | Description |
|---|---|---|
| value | double | The estimate value of an estimand. Required. |
| uncertainties | Uncertainty | The quantified uncertainties. |

### Estimate.Uncertainty

The uncertainty of an estimate quantified by probability interval.

| Field | Type | Description |
|---|---|---|
| probability | double | The probability that a value is inside an interval bounded by lowerbound and upperbound. Required. |
| lowerbound | double | The lowerbound of the interval. Required. |
| upperbound | double | The upperbound of the interval. Required. |


[Top](https://developers.google.com/meridian/reference/api/proto#top)

<br />

## model_fit.proto

### ModelFit

| Field | Type | Description |
|---|---|---|
| results | Result | Different results for different purposes. For example, one could divide a data to training set, testing set, and validation set. Required. |

### Performance

The model fit performance indicated by different metrics.

| Field | Type | Description |
|---|---|---|
| r_squared | double |   |
| mape | double | Mean absolute percentage error. |
| weighted_mape | double | Is equal to sum_i(actual_i - pred_i) / sum_i(actual_i) |
| rmse | double | Root mean square error. |

### Prediction

A prediction contains the predicted KPI and the ground truth at a specific
time.

| Field | Type | Description |
|---|---|---|
| date_interval | DateInterval | The time associated to this prediction point. Required. |
| predicted_outcome | Estimate | The predicted outcome. Required. |
| predicted_baseline | Estimate | The predicted baseline. Optional. |
| actual_value | double | The actual value observed in the data. Required. |

### Result

| Field | Type | Description |
|---|---|---|
| name | string | The name of the result. Required. |
| predictions | Prediction | The predictions over different times. Required. |
| performance | Performance | The performance of the model fit. Required. |


[Top](https://developers.google.com/meridian/reference/api/proto#top)

<br />

## kpi_type.proto

### KpiType

Different KPI types used in marketing performance and optimization.

| Name | Number | Description |
|---|---|---|
| KPI_TYPE_UNSPECIFIED | 0 |   |
| NON_REVENUE | 1 | Some generic user-defined KPI unit. |
| REVENUE | 2 | KPI defined as revenue specifically, or some KPI unit after conversion to revenue. |


[Top](https://developers.google.com/meridian/reference/api/proto#top)

<br />

## outcome.proto

### Contribution

A contribution is defined as the value difference caused by adding a new
outcome.

| Field | Type | Description |
|---|---|---|
| value | Estimate | The contribution value. Required. |
| share | Estimate | Share of contribution = contribution / total contribution from all outcomes. |

### Effectiveness

Effectiveness calculates how much incremental KPI is generated per media unit
(e.g. impressions or clicks), i.e. contribution / media unit.

| Field | Type | Description |
|---|---|---|
| media_unit | string | The media unit of the effectiveness. Required. |
| value | Estimate | The value of the effectiveness. Required. |

### Outcome

An outcome analysis on KPI which can be defined as revenue or other generic
non-revenue type.

| Field | Type | Description |
|---|---|---|
| kpi_type | KpiType | The type of this KPI (i.e. REVENUE or NON_REVENUE) Note that a model input with non-revenue (generic KPI) data can still have revenue-based KPI outcomes defined, provided that `revenue_per_kpi` is defined. |
| contribution | Contribution | The contribution to a KPI. If `kpi_type == REVENUE`, this is the revenue KPI value. If `kpi_type == NON_REVENUE`, AND there is a `revenue_per_kpi` conversion, this is the derived `kpi * revenue_per_kpi` value. Otherwise, this is simply the (non-revenue, user-defined) KPI value. |
| effectiveness | Effectiveness | The effectiveness of this outcome. |
| roi | Estimate | ROI = contribution / spend. See contribution definition above. |
| marginal_roi | Estimate | Marginal ROI shows the additional ROI gained from additional spend. See ROI definition above. |
| cost_per_contribution | Estimate | Cost per incremental outcome (which could be revenue or some generic KPI). E.g. when contribution is thousand impression, it is CPM; when contribution is acquisition, this is CPA. |


[Top](https://developers.google.com/meridian/reference/api/proto#top)

<br />

## response_curve.proto

### ResponseCurve

A response curve is used to show how much incremental outcome moves in
response to changes to the input value (e.g. spend amount on a paid media
channel, advertising impressions in a channel, etc).

| Field | Type | Description |
|---|---|---|
| input_name | string | The name of the input. Required. |
| response_points | ResponsePoint | The response points. Required. |

### ResponsePoint

| Field | Type | Description |
|---|---|---|
| input_value | double | The amount of the input that drives the incremental KPI. Required. |
| incremental_kpi | double | The incremental KPI caused by the input. Required. |


[Top](https://developers.google.com/meridian/reference/api/proto#top)

<br />

## media_analysis.proto

### MediaAnalysis

An analysis on a media channel between its spend variable and KPI(s) outcome.

| Field | Type | Description |
|---|---|---|
| channel_name | string | The name of the media channel. Required. |
| spend_info | SpendInfo | The spend information of this media channel. This is optional and is left unset for a non-paid media channel analysis. |
| media_outcomes | Outcome | The marketing outcomes of advertising from this media channel. Required. The outcome(s) calculated based on revenue and/or generic non-revenue KPI. One or more outcome values are set when revenue and/or generic non-revenue KPI outcome information is available. For a non-paid media, the spend-related fields in `Outcome` won't be set. |
| response_curve | ResponseCurve | A response curve for the media channel. When the media is a non-paid media, response curve is not available due to the lack of spend information. |

### SpendInfo

| Field | Type | Description |
|---|---|---|
| spend | double | The amount spent on the media channel. Required |
| spend_share | double | Spend share = spend / total spend. Required |


[Top](https://developers.google.com/meridian/reference/api/proto#top)

<br />

## non_media_analysis.proto

### NonMediaAnalysis

The analysis on non-media factor.

| Field | Type | Description |
|---|---|---|
| non_media_name | string | The name of the non-media factor. Required. |
| non_media_outcomes | Outcome | The marketing outcomes from this non-media factor. Required. The non-media outcome(s) calculated based on revenue and/or generic non-revenue KPI. One or more outcome values are set when revenue and/or generic non-revenue KPI outcome information is available. The spend-related fields herein won't be set as non-media factor doesn't have spend. |


[Top](https://developers.google.com/meridian/reference/api/proto#top)

<br />

## marketing_analysis.proto

### MarketingAnalysis

The marketing analysis.

| Field | Type | Description |
|---|---|---|
| date_interval | DateInterval | The date interval that the analysis covers. Required. |
| media_analyses | MediaAnalysis | Analysis on different media channels. Required. |
| non_media_analyses | NonMediaAnalysis | Analysis on different non-media factors. |

### MarketingAnalysisList

A list of marketing analyses.

| Field | Type | Description |
|---|---|---|
| marketing_analyses | MarketingAnalysis | The marketing analyses for different time ranges. Required. |


[Top](https://developers.google.com/meridian/reference/api/proto#top)

<br />

## target_metric.proto

### TargetMetric

Target metrics for marketing performance optimizations.
Note that each of these metric variants can be interpreted in terms of either
revenue or non-revenue KPI *type* . See: `common.KpiType`.

| Name | Number | Description |
|---|---|---|
| TARGET_METRIC_UNSPECIFIED | 0 |   |
| KPI | 1 | Any KPI type (revenue if the model data can be converted to revenue, or some generic KPI otherwise). |
| ROI | 2 | ROI = net KPI change / spend. |
| MARGINAL_ROI | 3 | Marginal ROI is defined at channel level and is applied across all channels. mROI = changed in incremental KPI / spend. |
| COST_PER_INCREMENTAL_KPI | 4 | CPIK = total spend / change in incremental KPI. |


[Top](https://developers.google.com/meridian/reference/api/proto#top)

<br />

## new_marketing_data.proto

### NewMarketingData

A collection of independent marketing data points for different combinations
of geo locations and times, used to override training data for model
inference. This can span any time period, including times overlapping with
and beyond the modeling period.

| Field | Type | Description |
|---|---|---|
| marketing_data_points | NewMarketingDataPoint | The independent marketing data points for each geo and time. |

### NewMarketingDataPoint

A new marketing data point used for model inference. This contains
independent marketing data at a specific geo and time.

| Field | Type | Description |
|---|---|---|
| geo_info | GeoInfo | Geo info of this data point. Required for a geo model. |
| date_interval | DateInterval | Date interval covered by this data point. This can represent either a coordinate point, or an aggregation over a time dimension's coordinates. In the case of the latter, this field should be defined with `[start, end + interval]` value, where `start` and `end` are the first and last coordinate in that time dimension, respectively. |
| media_variables | MediaVariable | The media variables associated with the marketing at this geo and time. |
| reach_frequency_variables | ReachFrequencyVariable | The reach and frequency variables associated with the marketing at this geo and time. |
| revenue_per_kpi | double | The revenue per KPI associated with the marketing at this geo and time. Required for revenue analysis. |


[Top](https://developers.google.com/meridian/reference/api/proto#top)

<br />

## constraints.proto

### BudgetConstraint

| Field | Type | Description |
|---|---|---|
| min_budget | double | Required. Absolute minimum budget value. |
| max_budget | double | Required. Absolute maximum budget value. |

### FrequencyConstraint

| Field | Type | Description |
|---|---|---|
| min_frequency | double | Required. |
| max_frequency | double | Required. |

### TargetMetricConstraint

The constraint of target metrics.

| Field | Type | Description |
|---|---|---|
| target_metric | TargetMetric | The type of the target metric that is constrained. Required. |
| target_value | double | The constraint on the target metric value. Required. Whether this target value represents a lower or upper bound depends on the target metric set above. |


[Top](https://developers.google.com/meridian/reference/api/proto#top)

<br />

## budget_optimization.proto

### BudgetOptimization

| Field | Type | Description |
|---|---|---|
| results | BudgetOptimizationResult | Optimization results for different scenarios. |

### BudgetOptimizationResult

The budget optimization finds the result of optimal budget allocation given
an optimization spec.

| Field | Type | Description |
|---|---|---|
| name | string | The name of the budget optimization. Required. |
| group_id | string | An optional identifier for a result that belongs to a group of related results (of different types). Note that no two `BudgetOptimizationResult`s should share the same group ID Simple UUID strings are recommended. |
| spec | BudgetOptimizationSpec | The optimization spec used to generate the result. Required. |
| optimized_marketing_analysis | MarketingAnalysis | The analysis on marketing outcome when using the optimized budget. Required. The non-media outcomes are not optimized, but some fields might be impacted by the change of media outcomes. For example, total contribution would change, so the contribution share values have to modified accordingly. |
| nonoptimized_marketing_analysis | MarketingAnalysis | The non-optimized marketing outcome. Required. In a fixed budget scenario, non-optimized marketing outcome is based on the budget amount. In a flexible budget scenario, the outcome is based on the historical spend. |
| incremental_outcome_grid | IncrementalOutcomeGrid | Optional search grid that describes incremental outcomes of spends on channels. Useful for speeding up optimization analysis. |

### BudgetOptimizationSpec

Input to the optimizer.

| Field | Type | Description |
|---|---|---|
| date_interval | DateInterval | The date interval defines the selection of the time points that the optimization is based upon. |
| objective | TargetMetric | The objective to maximize in the budget optimization. Required. |
| kpi_type | KpiType | The type of KPI used to derive the optimization objective. Required. |
| new_marketing_data | NewMarketingData | The new marketing data to override the flighting pattern and CPM. If not provided, the optimization will be based on the historical data. |
| use_optimal_frequency | bool | Whether to use the optimal frequency, If set to `False`, `max_frequency` is ignored. |
| max_frequency | float | The max frequency to use for the optimal frequency search space, this field is ignored if `use_optimal_frequency` is unset or is set to `False`. If not set when `use_optimal_frequency` is set to `True`, the max frequency of the input data is used. max_frequency must be greater than 1 if set. |
| fixed_budget_scenario | FixedBudgetScenario | A fixed budget optimization tries to maximize an objective by optimizing the budget allocations over channels without changing the total budget amount. For instance, in Meridian, the objective function is chosen to be the posterior mean of the expected KPI (e.g. sales, revenue, etc). |
| flexible_budget_scenario | FlexibleBudgetScenario | A flexible budget optimization tries to maximize an objective by optimizing the budget allocations over channels with a flexible total budget amount. For instance, in Meridian, the expected KPI (e.g. revenue) can be optimized while allowing the total budget to vary: this flexible optimization in Meridian is constrained on either the minimal marginal ROI or the target ROI constraints. |
| channel_constraints | ChannelConstraint | The constraints on channels. If a media channel that is present in the model is not represented here, it will be given the default constraint of `[0, max_budget]`. |
| batch_size | int32 | Maximum draws per chain in each batch. The calculation is run in batches to avoid memory exhaustion. If a memory error occurs, try reducing `batch_size`. The calculation will generally be faster with larger `batch_size` values. Default is 100. |

### ChannelConstraint

Channel level constraint

| Field | Type | Description |
|---|---|---|
| channel_name | string | The name of the channel. Required. |
| budget_constraint | BudgetConstraint | The budget constraint on the channel. |

### FixedBudgetScenario

A fixed budget scenario for optimizing budget allocations over channels.

| Field | Type | Description |
|---|---|---|
| total_budget | double | The budget amount. Required. |

### FlexibleBudgetScenario

A flexible budget scenario for optimizing budget allocations over channels.

| Field | Type | Description |
|---|---|---|
| total_budget_constraint | BudgetConstraint | The constraint parameters on the total budget. |
| target_metric_constraints | TargetMetricConstraint | The constraints on target metrics (e.g. KPI, ROI, etc). |

### IncrementalOutcomeGrid

A message representing a grid that details the incremental outcome of
marketing spend by channel.

Note that this grid is constructed under the assumption that there is no
interaction effect across channels, i.e. the spend on one channel will not
affect other channels.

| Field | Type | Description |
|---|---|---|
| name | string | The name of the grid. Required. |
| spend_step_size | double | The uniform step size between consecutive spend values within a channel. Required. |
| channel_cells | ChannelCells | The collection of cells representing all combinations of spend and incremental outcome across channels. Required. Each channel can have a different spend range, but all spend values within a channel must be spaced evenly using the specified step size. |

### IncrementalOutcomeGrid.Cell

A data point within the grid representing the outcome of a specific spend
on a particular channel.

| Field | Type | Description |
|---|---|---|
| spend | double | The amount of marketing spend allocated to the channel. |
| incremental_outcome | Estimate | The incremental outcome achieved through the channel spend. The type should be indicated by the objective in the optimization spec. This is calculated as the difference between the outcome with the given spend and the outcome with zero spend (outcome(spend) - outcome(0)). |

### IncrementalOutcomeGrid.ChannelCells

A collection of cells in a channel.

| Field | Type | Description |
|---|---|---|
| channel_name | string | The name of the marketing channel. |
| cells | Cell | The cells in the channel. |


[Top](https://developers.google.com/meridian/reference/api/proto#top)

<br />

## reach_frequency_optimization.proto

### FrequencyOutcomeGrid

A message representing a grid that details the outcome of reach frequency by
channel.

Note that this grid is constructed under the assumption that there is no
interaction effect across channels, i.e. the reach frequency on one channel
will not affect other channels.

| Field | Type | Description |
|---|---|---|
| name | string | The name of the grid. Required. |
| frequency_step_size | double | The uniform step size between consecutive frequency values within a channel. Required. |
| channel_cells | ChannelCells | The collection of cells representing all combinations of reach frequency and outcome across channels. Required. |

### FrequencyOutcomeGrid.Cell

A data point within the grid representing the outcome of a specific reach
frequency on a particular channel.

| Field | Type | Description |
|---|---|---|
| reach_frequency | ReachFrequency | The reach and frequency of the channel. |
| outcome | Estimate | The outcome achieved through the channel reach frequency. The type should be indicated by the objective in the optimization spec. |

### FrequencyOutcomeGrid.ChannelCells

A collection of cells in a channel.

| Field | Type | Description |
|---|---|---|
| channel_name | string | The name of the marketing channel. |
| cells | Cell | The cells in the channel. |

### OptimizedChannelFrequency

Reach frequency optimization result for channel that has reach frequency
information.

| Field | Type | Description |
|---|---|---|
| channel_name | string | The name of the channel. Required. |
| optimal_average_frequency | double | The optimal average frequency of the channel. Required. |

### ReachFrequency

Reach and frequency metric.

| Field | Type | Description |
|---|---|---|
| reach | int64 | Reach value. Required. |
| average_frequency | double | Average frequency value. Required. |

### ReachFrequencyOptimization

| Field | Type | Description |
|---|---|---|
| results | ReachFrequencyOptimizationResult | Optimization results for different scenarios. |

### ReachFrequencyOptimizationResult

| Field | Type | Description |
|---|---|---|
| name | string | The name of the reach frequency optimization. Required. |
| group_id | string | An optional identifier for a result that belongs to a group of related results (of different types). Note that no two `ReachFrequencyOptimizationResult`s should share the same group ID. Simple UUID strings are recommended. |
| spec | ReachFrequencyOptimizationSpec | The optimization spec used to generate the result. Required. |
| optimized_channel_frequencies | OptimizedChannelFrequency | Optimal average frequency results by channel. Required. Media channels without reach frequency data won't be shown. |
| optimized_marketing_analysis | MarketingAnalysis | The analysis on marketing outcome when using the optimal channel frequencies. Required. The non-media outcomes are not optimized, but some fields might be impacted by the change of media outcomes. For example, total contribution would change, so the contribution share values have to modified accordingly. |
| frequency_outcome_grid | FrequencyOutcomeGrid | Optional grid that describes the outcomes of reach frequency on channels. |

### ReachFrequencyOptimizationSpec

| Field | Type | Description |
|---|---|---|
| date_interval | DateInterval | The date interval defines the selection of the time points that the optimization is based upon. |
| objective | TargetMetric | The objective to maximize in the reach frequency optimization. Required. |
| kpi_type | KpiType | The type of KPI used to derive the optimization objective. Required. |
| target_metric_constraints | TargetMetricConstraint | The constraints on target metrics (e.g. KPI, ROI, etc). |
| total_budget_constraint | BudgetConstraint | The constraint on the total budget. |
| rf_channel_constraints | RfChannelConstraint | The constraints on channels that have reach frequency information. |

### RfChannelConstraint

Channel level constraint for channel that has reach frequency information.

| Field | Type | Description |
|---|---|---|
| channel_name | string | The name of the channel. Required. |
| budget_constraint | BudgetConstraint | The budget constraint on the channel. |
| frequency_constraint | FrequencyConstraint | The frequency constraint on the channel. |


[Top](https://developers.google.com/meridian/reference/api/proto#top)

<br />

## marketing_optimization.proto

### MarketingOptimization

Marketing optimization contains all optimization related results.

| Field | Type | Description |
|---|---|---|
| budget_optimization | BudgetOptimization | Budget optimization that contains results for different scenarios. |
| reach_frequency_optimization | ReachFrequencyOptimization | Reach frequency optimization that contains results for different scenarios. |


[Top](https://developers.google.com/meridian/reference/api/proto#top)

<br />

## mmm.proto

### Mmm

A schema that contains derived metrics and modeled analysis by a trained
marketing mix model.

| Field | Type | Description |
|---|---|---|
| mmm_kernel | MmmKernel | A MMM kernel contains the core information about the model used to generate this output. |
| model_fit | ModelFit | Model fit result. |
| marketing_analysis_list | MarketingAnalysisList | A list of marketing analysis generated by the MMM kernel. |
| marketing_optimization | MarketingOptimization | Marketing optimization on different perspectives using the MMM kernel. |