---
updatedAt: 2025-02-07T00:23:32.000Z
agentTools:
  projectIndex: https://mcm-docs.moloco.com/v1.1/llms.txt
---

# Forecast

# Introduction

The forecast feature provides daily campaign performance estimations, including impressions, clicks, and purchases. Forecast predicts campaign performance based on historical data of the items in the campaign and the specified bidding strategy. Using predictive analytics allows advertisers to estimate the performance of their campaigns before they go live.

## Enabling Forecast

To enable forecast, the following conditions must be met:

1. [Advertiser Guidance](https://mcm-docs.moloco.com/docs/advertiser-guidance)  must be enabled for the platform.
2. The campaign type must be a Sponsored Products campaign. (`“ad_type”: “ITEM”`)

## Using Forecast

To see the forecast while creating a Sponsored Products campaign, the following conditions must be met:

1. Enter a budget of at least the `guided_budget_micro` value provided by the [ReadCampaignGuidance](https://mcm-docs.moloco.com/reference/rmpmanagementapi_readcampaignguidance).
2. Select at least one item.

> 📘 Note
>
> The selected item(s) should have approximately 1 month of event data to calculate the metrics. If the forecast is not displayed add more items to the campaign.

3. Select the `OPTIMIZE_ROAS` or `FIXED_CPC` goal type.
4. Use the ROAS or CPC that falls within the `guided_roas` or `guided_cpc_micro` range provided by the [ReadCampaignGuidance](https://mcm-docs.moloco.com/reference/rmpmanagementapi_readcampaignguidance).

Once all necessary information is entered, the forecast dynamically computes performance metrics based on historical data, helping advertisers understand potential campaign outcomes.

> 📘 Note
>
> The forecast composition may evolve over time to incorporate new data insights and market trends.

## Limitations

* Forecast does not account for seasonal variations or market demand changes during the campaign.
* Forecast is not available for PPO campaigns. Instead, you may use the `FIXED_COMMISSION_RATE` guidance for PPO campaigns, which provides estimated results (`expected_metrics`) based on the current settings with the guided commission rate. For more details, refer to [this guide](https://mcm-docs.moloco.com/docs/advertiser-guidance).

# API Guidance

## Request

```Text http
POST
https://<platform>-mgmt.mcm-api.moloco.com/mcm/mgmt/v1/platforms/{platform_id}/ad-accounts/{ad_account_id}/campaign-forecast
```

### Query Parameters

* `campaign_id`: ID of a campaign to be guided.
* `goal_type`: Goal type of the new campaign to be guided.

### Body Parameters

* `forecast_campaign`: The campaign information for forecasting.

<Table align={["left","left","left","left","left"]}>
  <thead>
    <tr>
      <th style={{ textAlign: "left" }}>
        Field
      </th>

      <th style={{ textAlign: "left" }}>
        Required
      </th>

      <th style={{ textAlign: "left" }}>
        Description
      </th>

      <th style={{ textAlign: "left" }}>
        Format
      </th>

      <th style={{ textAlign: "left" }}>
        Example
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td style={{ textAlign: "left" }}>
        id
      </td>

      <td style={{ textAlign: "left" }}>
        Optional
      </td>

      <td style={{ textAlign: "left" }}>
        Campaign ID. Required only for an existing campaign.
      </td>

      <td style={{ textAlign: "left" }}>
        string
      </td>

      <td style={{ textAlign: "left" }}>
        `xee923x`
      </td>
    </tr>

    <tr>
      <td style={{ textAlign: "left" }}>
        ad\_type
      </td>

      <td style={{ textAlign: "left" }}>
        Required
      </td>

      <td style={{ textAlign: "left" }}>
        Campaign ad type. Use`ITEM` type.
      </td>

      <td style={{ textAlign: "left" }}>
        string
      </td>

      <td style={{ textAlign: "left" }}>
        `ITEM`
      </td>
    </tr>

    <tr>
      <td style={{ textAlign: "left" }}>
        goal
      </td>

      <td style={{ textAlign: "left" }}>
        Required
      </td>

      <td style={{ textAlign: "left" }}>
        Campaign goal. Use `FIXED_CPC` or `OPTIMIZE_ROAS`.
      </td>

      <td style={{ textAlign: "left" }}>
        object
      </td>

      <td style={{ textAlign: "left" }}>
        Fixed CPC\
        ```
        "type": "FIXED_CPC",  
          "optimize_fixed_cpc": {  
            "target_cpc": {  
              "amount_micro": 150000000  
            }  
          }
        ```  

        Optimize ROAS\
        ```
        "type": "OPTIMIZE_ROAS",  
          "optimize_roas": {  
            "target_roas": 1000  
          }
        ```
      </td>
    </tr>

    <tr>
      <td style={{ textAlign: "left" }}>
        budget
      </td>

      <td style={{ textAlign: "left" }}>
        Required
      </td>

      <td style={{ textAlign: "left" }}>
        Campaign budget
      </td>

      <td style={{ textAlign: "left" }}>
        object
      </td>

      <td style={{ textAlign: "left" }}>
        ```
        "period": "DAILY",  
        "amount": {  
          "currency": "KRW",  
          "amount_micro": 2000000,  
        }
        ```
      </td>
    </tr>

    <tr>
      <td style={{ textAlign: "left" }}>
        item\_option
      </td>

      <td style={{ textAlign: "left" }}>
        Required
      </td>

      <td style={{ textAlign: "left" }}>
        Campaign’s item option. Provide a campaign item list or use the `include_all` option.
      </td>

      <td style={{ textAlign: "left" }}>
        object
      </td>

      <td style={{ textAlign: "left" }}>
        Campaign item list\
        `"item_list": ["1", "2"]`  

        Include every item from the given ad account\
        `"include_all": true`
      </td>
    </tr>
  </tbody>
</Table>

### Request Example

```http HTTP
POST
https://<platform>-mgmt.rmp-api.moloco.com/rmp/mgmt/v1/platforms/{platform_id}/ad-accounts/{ad_account_id}/campaign-forecast

// Sample request body
{
  "forecast_campaign": { // Required.
    "ad_type": "ITEM", // Required.
    "goal": { // Required.
      "type": "FIXED_CPC", // Required.
      "optimize_fixed_cpc": {
        "target_cpc": {
          "amount_micro": 150000000
        }
      }
    },
    "budget": { // Required.
      "period": "DAILY", // Required.
      "amount": { // Required.
        "currency": "KRW", // Required.
        "amount_micro": 2000000, // Required.
      }
    },
    "item_option": { // Required.
      "item_list": ["1", "2"]
    }
  }
}

```

## Response

* `status`
  * `OK`: The forecast is available
  * `NOT_IN_GUIDANCE_RANGE`: The forecast is unavailable; the campaign setting is not in the guidance range.
  * `NO_ITEMS_AVAILABLE`: The forecast is unavailable; no forecast information is available for the given items.
* `imp`
  * `min`: The minimum range of impressions
  * `max`: The maximum range of impressions
* `click`
  * `min`: The minimum range of clicks
  * `max`: The maximum range of clicks
* `purchase`
  * `min`: The minimum range of purchases
  * `max`: The maximum range of purchases

### Sample response

```json J
// Sample response body
{
  "status": "OK",
  "imp": {
    "min": 2400,
    "max": 3600,
  },
  "click": {
    "min": 40,
    "max": 60,
  },
  "purchase": {
    "min": 48000000,
    "max": 72000000,
  },
}

```