Join the newly launched
Discord community for real-time discussions, peer support, and direct interaction with the Meridian team!
Optimize frequency
Stay organized with collections
Save and categorize content based on your preferences.
One of the main uses of reach and frequency in MMM is to find the optimal
frequency for a channel in a specified time period. Optimal frequency refers to
the ideal average number of times an advertisement should be shown to the target
audience for each geo and the time needed to achieve the maximum ROI. Because it
is impracticable for advertisers to execute different frequencies for each geo
and time, Meridian imposes a restriction that the same average frequency
is applied in all geos and times.
The optimal frequency is calculated numerically: the expected ROI for each
frequency level is estimated first, and then the optimal frequency is the
frequency that maximizes the expected ROI. Note that optimal frequency is only
available for those channels that utilize both reach and frequency as inputs as
described in Load geo-level data with reach and
frequency.
Run the following commands to optimize frequency on a channel:
reach_and_frequency = visualizer_module.ReachAndFrequency(meridian)
reach_and_frequency.plot_optimal_frequency()
Example output:
Meridian also provides the option to perform budget optimization based on either
the optimal frequency or the historical frequency for each channel. For more
information, see Optimization for media channels with reach and frequency data.
By default, the optimal frequency is used for budget optimization. Optimal frequency is recommended.
To use the historical frequency for budget optimization, change the use_optimal_frequency
setting to False
:
budget_optimizer = optimizer.BudgetOptimizer(meridian)
optimization_results = budget_optimizer.optimize(use_optimal_frequency=False)
Where use_optimal_frequency
is a boolean indicating whether the optimal
frequency or the historical frequency is used for budget optimization.
Default: True
, meaning the optimal frequency is used.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-06-11 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-06-11 UTC."],[[["\u003cp\u003eOptimal frequency in MMM helps determine the ideal number of ad exposures to a target audience per geo and time for maximum ROI.\u003c/p\u003e\n"],["\u003cp\u003eMeridian calculates optimal frequency by estimating expected ROI for each frequency level and identifying the level that maximizes it.\u003c/p\u003e\n"],["\u003cp\u003eOptimal frequency is only applicable to channels that utilize both reach and frequency data as inputs, as demonstrated in the documentation.\u003c/p\u003e\n"],["\u003cp\u003eMeridian allows for budget optimization based on either optimal or historical frequency, with optimal frequency being the recommended default.\u003c/p\u003e\n"],["\u003cp\u003eUsers can switch to historical frequency for budget optimization by setting the \u003ccode\u003euse_optimal_frequency\u003c/code\u003e parameter to \u003ccode\u003eFalse\u003c/code\u003e in the budget optimizer function.\u003c/p\u003e\n"]]],[],null,["# Optimize frequency\n\nOne of the main uses of reach and frequency in MMM is to find the optimal\nfrequency for a channel in a specified time period. Optimal frequency refers to\nthe ideal average number of times an advertisement should be shown to the target\naudience for each geo and the time needed to achieve the maximum ROI. Because it\nis impracticable for advertisers to execute different frequencies for each geo\nand time, Meridian imposes a restriction that the same average frequency\nis applied in all geos and times.\n\nThe optimal frequency is calculated numerically: the expected ROI for each\nfrequency level is estimated first, and then the optimal frequency is the\nfrequency that maximizes the expected ROI. Note that optimal frequency is only\navailable for those channels that utilize both reach and frequency as inputs as\ndescribed in [Load geo-level data with reach and\nfrequency](/meridian/docs/user-guide/load-geo-data-with-rf).\n\nRun the following commands to optimize frequency on a channel: \n\n reach_and_frequency = visualizer_module.ReachAndFrequency(meridian)\n reach_and_frequency.plot_optimal_frequency()\n\n**Example output:**\n\nMeridian also provides the option to perform budget optimization based on either\nthe optimal frequency or the historical frequency for each channel. For more\ninformation, see [Optimization for media channels with reach and frequency data](/meridian/docs/basics/optimization-with-reach-frequency).\nBy default, the optimal frequency is used for budget optimization. Optimal frequency is recommended.\n\nTo use the historical frequency for budget optimization, change the `use_optimal_frequency` setting to `False`: \n\n budget_optimizer = optimizer.BudgetOptimizer(meridian)\n optimization_results = budget_optimizer.optimize(use_optimal_frequency=False)\n\nWhere `use_optimal_frequency` is a boolean indicating whether the optimal\nfrequency or the historical frequency is used for budget optimization.\n**Default:** `True`, meaning the optimal frequency is used."]]