> For the complete documentation index, see [llms.txt](https://help.impact.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.impact.com/brand/what-would-you-like-to-learn-about/beta-product-boost/product-boost-campaign-management/bulk-upload-product-boost-campaigns.md).

# Bulk Upload Product Boost Campaigns

You can use the bulk uploads tool to create multiple Product Boost campaigns at once rather than creating them individually. You'll use a CSV or Excel file to provide details for the fields you would otherwise fill in during setup.

{% stepper %}
{% step %}

## Prepare your file

1. Copy or download this template file to your device:

{% code overflow="wrap" %}

```
Campaign Name,Vendor ID,Internal Campaign ID,Funding,Eligibility Type,Partner IDs,Partner Group IDs,Budget,Enforced Budget,Draft,Start Date,End Date,Event Type ID,Payout Type,Payout Value,Precedence,Rules
Winter Boot Promo,,EXAMPLE-001,,JOINED_PARTNERS,,,1000.00,no,yes,2026-08-01T00:00:00-07:00,2026-08-31T23:59:59-07:00,17897,FIXED,5.00,10,ITEM_SKU IS BOOT123
```

{% endcode %}

2. Replace the sample row with your own campaign details and fill in one row for each campaign you want to create.
   * Check your values against the [file format reference](#file-format-reference) below to ensure you enter correct data and in their required formats.
   * To add multiple payout group rules to a single campaign, see the [payout groups section](#add-multiple-payout-groups) below.
3. Save the edits to your file with an appropriate name, e.g., `Product_Boost_Bulk_Upload`. Make sure the file saves in `.csv` or `.xlsx` format.
   {% endstep %}

{% step %}

## Upload your campaigns

1. From the left navigation bar, select ![](/files/CDnwOBeIdds9r3Z6zTnO) **\[Engage]** → **Campaign Manager** → [**Product Boost**](https://app.impact.com/secure/advertiser/engage/campaigns/manage-rate-boost-campaigns-flow.ihtml?execution=e3s1#sortBy=dateOfEntry\&sortOrder=ASC).
2. In the upper-right corner of the screen, select **Bulk Upload**.
3. Select **Choose File** or drag and drop the file you prepared for upload.
4. Select **Next**.
   {% endstep %}

{% step %}

## Review any validation errors

1. Review your uploaded data for errors.
   * Validation failures will be highlighted in red, with errors listed in the first column for you to address.
   * Each row represents a single campaign. To filter out rows that validated successfully, select ![](/files/pJsLBrBDVoHbzf2iiL1a) **\[Checkbox] Show errors only**.
2. If there are errors in your file, select **Back** to return to the upload step. Refer to the [validation error reference](#validation-error-reference) below for guidance on addressing the errors.
   * When all rows are clear and show *OK* in the first column, your campaigns are ready to be created.

<div data-with-frame="true"><figure><img src="/files/DBJ0HnohUMR0AujWB1hP" alt=""><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}

## Approve campaign creation

1. Select **Accept & Create Campaigns**.
   * The new campaigns you uploaded will appear in your campaigns list.
2. Next, learn what each Product Boost campaign status means and how to [manage them](/brand/what-would-you-like-to-learn-about/beta-product-boost/product-boost-campaign-management/manage-product-boost-campaigns.md).
   {% endstep %}
   {% endstepper %}

## References

<details>

<summary>File format reference</summary>

Use this reference as a guide when updating the placeholder data in your file with your own campaign details.

| Column Name          | Type         | Required | Description                                                                                                                                                                                                                                                                                                              |
| -------------------- | ------------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Campaign Name        | String       | Yes      | The name of the campaign                                                                                                                                                                                                                                                                                                 |
| Vendor ID            | Integer      | No       | The ID of the vendor, if applicable. This can be obtained from your [*My Vendors*](/brand/what-would-you-like-to-learn-about/beta-product-boost/beta-product-boost-for-retailers/get-started-with-retail-media-as-a-retailer.md#step-2-view-your-listed-vendors) page                                                    |
| Internal Campaign ID | String       | No       | Your own optional identifier for this campaign                                                                                                                                                                                                                                                                           |
| Funding              | String       | No       | The funding details for the campaign                                                                                                                                                                                                                                                                                     |
| Eligibility Type     | String       | Yes      | Identify the eligible partners who will be automatically hired. For groups or specific partners, add the IDs and comma separate them. Allowed values: `JOINED_PARTNERS`, `PARTNER_GROUPS`, `INDIVIDUAL_PARTNERS`                                                                                                         |
| Partner IDs          | CSV string   | No       | Comma-separated partner IDs. Required when Eligibility Type is `INDIVIDUAL_PARTNERS`.                                                                                                                                                                                                                                    |
| Partner Group IDs    | CSV string   | No       | Comma-separated partner group IDs. Required when Eligibility Type is `PARTNER_GROUPS`.                                                                                                                                                                                                                                   |
| Budget               | Decimal(8,2) | Yes      | Total budget for the campaign                                                                                                                                                                                                                                                                                            |
| Enforced Budget      | Boolean      | No       | Leave blank if not interested in enforcing. Accepted values: `yes`, `true` (end the campaign automatically when the budget is fully spent) or `no`, `false` (do not enforce).                                                                                                                                            |
| Draft                | Boolean      | Yes      | Whether to save the campaign as a draft. Accepted values: `yes`, `true` (save as draft) or `no`, `false` (active immediately).                                                                                                                                                                                           |
| Start Date           | Date         | Yes      | ISO8601 date. Example: `2013-06-30T00:00:00-07:00`                                                                                                                                                                                                                                                                       |
| End Date             | Date         | Yes      | ISO8601 date. Example: `2013-06-30T00:00:00-07:00`                                                                                                                                                                                                                                                                       |
| Event Type ID        | Integer      | Yes      | The numeric event type ID for the primary payout tracker of this campaign.                                                                                                                                                                                                                                               |
| Payout Type          | String       | Yes      | The payout type for this event (e.g. `PERCENTAGE` or `FIXED`).                                                                                                                                                                                                                                                           |
| Payout Value         | Decimal(8,2) | Yes      | The payout amount for this event type. Must be greater than zero.                                                                                                                                                                                                                                                        |
| Precedence           | Integer      | Yes      | Campaign priority from 1 (highest) to 10 (lowest).                                                                                                                                                                                                                                                                       |
| Rules                | String       | Yes      | One eligibility condition in the format `[VARIABLE] [OPERATOR] [VALUE]` e.g., `ITEM_SKU IS HYD-2000`. Learn more on how to [set payout group rules](/brand/what-would-you-like-to-learn-about/platform-features/contracts-and-template-terms/template-terms/payout-adjustments/set-payout-rules-using-payout-groups.md). |

</details>

<details>

<summary>Validation error reference</summary>

If your uploaded data contains validation errors, find the error message below to see what's likely causing it and how to fix it.

| Error message                                                                                                               | How to fix                                                                                                                                                                                                                                                                                                                                                         |
| --------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Limited Time Start Date is invalid                                                                                          | Check that your `Start Date` has a value, falls before `End Date`, and is in ISO8601 format (e.g. `2026-08-01T00:00:00-07:00`).                                                                                                                                                                                                                                    |
| Limited Time End Date is invalid                                                                                            | Check that your `End Date` has a value, falls after the `Start Date`, and is in ISO8601 format (e.g., `2026-08-30T00:00:00-07:00`).                                                                                                                                                                                                                                |
| Draft is required                                                                                                           | Enter `yes`/`true` or `no`/`false` in the `Draft` column to indicate whether the campaign should save as a draft or go active immediately.                                                                                                                                                                                                                         |
| Eligibility Type is required                                                                                                | Enter one of the three accepted values in the `Eligibility Type` column: `JOINED_PARTNERS`, `PARTNER_GROUPS`, or `INDIVIDUAL_PARTNERS`.                                                                                                                                                                                                                            |
| Precedence is required                                                                                                      | Enter a whole number from 1 (highest priority) to 10 (lowest priority) in the `Precedence` column.                                                                                                                                                                                                                                                                 |
| Start Date cannot be in the past                                                                                            | Update `Start Date` to a date in the future, formatted in ISO8601 (e.g., `2026-08-01T00:00:00-07:00`).                                                                                                                                                                                                                                                             |
| Event Type ID does not belong to this program                                                                               | The `Event Type ID` you entered doesn't match any event types actually linked to your program. Learn how to [find your event type ID](/brand/what-would-you-like-to-learn-about/platform-features/event-types/how-do-i-find-my-event-type-ids.md).                                                                                                                 |
| Rules column contains an invalid rule expression. Use the format \[Variable Operator Value], chain multiple rules with AND. | <p>Use one condition per row, in the format <code>VARIABLE OPERATOR VALUE</code> e.g., <code>ITEM\_SKU IS HYD-2000</code>.</p><p>Don't use brackets or <code>AND</code>. Also check that the <code>Value</code> exists in your product catalog. See <a href="#add-multiple-payout-group-rules">Add multiple payout group rules</a> below for more information.</p> |

</details>

## Add multiple payout group rules

You can add multiple [payout group rules](/brand/what-would-you-like-to-learn-about/platform-features/contracts-and-template-terms/template-terms/payout-adjustments/set-payout-rules-using-payout-groups.md) to a single campaign by adding a *continuation* row to your file after the campaign row. In the continuation row, leave the *Campaign Name* blank. This is how your file upload would appear during validation:

<div data-with-frame="true"><figure><img src="/files/pQWKFRWfAaQy1IteMnVR" alt=""><figcaption></figcaption></figure></div>

Repeating the same `Event Type ID` as the primary row allows the system to read your continuation row as an additional payout rule for the same event type. To learn which columns to fill in for continuation rows, see the reference below.

<details>

<summary>Payout rule row guidelines</summary>

When adding multiple payout group rules to a campaign, apply these guidelines to any continuation rows.

| Column Name   | Type         | Required | Description                                                                                                                                                                                        |
| ------------- | ------------ | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Campaign Name | String       | No       | Leave blank to mark this as a continuation row attached to the campaign defined immediately above.                                                                                                 |
| Event Type ID | Integer      | Yes      | Event Type ID for this payout group.                                                                                                                                                               |
| Payout Type   | String       | Yes      | Payout type for this additional event type (e.g. `PERCENTAGE` or `FIXED`).                                                                                                                         |
| Payout Value  | Decimal(8,2) | Yes      | Payout amount for this additional event type. Must be greater than zero.                                                                                                                           |
| Rules         | String       | Yes      | One eligibility condition in the format `VARIABLE OPERATOR VALUE` — for example, `ITEM_SKU IS HYD-2000`. See the [validation error reference](#validation-error-reference) if it doesn't validate. |

</details>

{% hint style="success" %}
**Note:** A single campaign can also track more than one event type. In the continuation row, enter a different `Event Type ID` than the primary row instead of repeating it. To learn which columns to fill in for continuation rows, see the reference above.
{% endhint %}

### Example file with a continuation row

{% code overflow="wrap" %}

```
Campaign Name,Vendor ID,Internal Campaign ID,Funding,Eligibility Type,Partner IDs,Partner Group IDs,Budget,Enforced Budget,Draft,Start Date,End Date,Event Type ID,Payout Type,Payout Value,Precedence,Rules
Winter Boot Promo,,EXAMPLE-001,,JOINED_PARTNERS,,,1000.00,no,yes,2026-08-01T00:00:00-07:00,2026-08-31T23:59:59-07:00,17897,FIXED,5.00,10,ITEM_SKU IS BOOT123
,,,,,,,,,,,,17897,FIXED,3.00,,ITEM_SKU IS BOOT456
```

{% endcode %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.impact.com/brand/what-would-you-like-to-learn-about/beta-product-boost/product-boost-campaign-management/bulk-upload-product-boost-campaigns.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
