> 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/platform-features/product-promotions/upload-product-promotion-files.md).

# Upload Product Promotion Files

The *Product Promotions* feature lets you share special offers and promotions with partners. These offers appear in partner product feeds, product APIs, and impact.com’s product marketplace, where a *Special offer* tag is displayed directly on the product tile in search results.

{% hint style="warning" %}
**Important:** You'll need to have an active product catalog before you can begin. For help creating your first product upload, see [Add Product Catalogs](/brand/what-would-you-like-to-learn-about/platform-features/product-catalogs/add-product-catalogs-as-a-brand.md).
{% endhint %}

#### Upload a promotion file

Use the [promotion file template](https://docs.google.com/spreadsheets/d/1OUr9Hoc2DRnS3KnyXwAetcgtho76ftej/edit?usp=sharing\&ouid=106843525620835185016\&rtpof=true\&sd=true) to create your file. The same file format works for both upload methods.

{% tabs %}
{% tab title="Direct Upload" %}

1. From the left navigation menu, select ![](https://4048883401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwMLlMoFBtKJa8ptd3zaw%2Fuploads%2Fgit-blob-230534471fef5f40808e921e41ee44e4a06ded03%2Fe6cb9548999afdc1ed3ce4942e4cb5b45b5cecbd323267aac2a7cd1915fccc09.svg?alt=media) **\[Engage] → Content → Products →** [**Product Promotions**](https://app.impact.com/secure/advertiser/engage/ads/productcatalogs/manage-product-promotion-flow.ihtml).
2. In the upper-right corner, select **Upload Promotion File**.
3. Enter your **Promotion File Name**.
4. Select the ![](https://4048883401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwMLlMoFBtKJa8ptd3zaw%2Fuploads%2Fgit-blob-590bdf4e1ffbcc1fe86ad456bebab6a28c64af1f%2Ffd6e4291628446bb1fe27a831f7874b256a28cc84833d72cce2e73b94641edb7.svg?alt=media) **\[Radio button]** **Direct Upload** method.
5. Select the file **Format**.
   * impact.com only supports *Google Merchant Center (TXT format)* i.e. `.txt` and *Google Merchant Center (CSV format)* i.e. `.csv` files.
   * See the *Product promotion feed field reference* below for more information on these fields.
6. Select **Choose File**.
   * Locate the file you want to upload from your computer.
7. Select your preferred **Language** and **Save**.
   {% endtab %}

{% tab title="Pull From URL" %}
This option supports pulling a file from an FTP/SFTP server or HTTP/HTTPS URL to ensure up-to-date promotion data.

1. From the left navigation menu, select ![](https://4048883401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwMLlMoFBtKJa8ptd3zaw%2Fuploads%2Fgit-blob-230534471fef5f40808e921e41ee44e4a06ded03%2Fe6cb9548999afdc1ed3ce4942e4cb5b45b5cecbd323267aac2a7cd1915fccc09.svg?alt=media) **\[Engage] → Content → Products →** [**Product Promotions**](https://app.impact.com/secure/advertiser/engage/ads/productcatalogs/manage-product-promotion-flow.ihtml).
2. In the upper-right corner, select **Upload Promotion File**.
3. Enter your **Promotion File Name**.
4. Select the ![](https://4048883401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwMLlMoFBtKJa8ptd3zaw%2Fuploads%2Fgit-blob-590bdf4e1ffbcc1fe86ad456bebab6a28c64af1f%2Ffd6e4291628446bb1fe27a831f7874b256a28cc84833d72cce2e73b94641edb7.svg?alt=media) **\[Radio button]** **Pull From URL** upload method.
5. Select the file **Format**.
   * impact.com only supports *Google Merchant Center (TXT format)* i.e. `.txt` and *Google Merchant Center (CSV format)* i.e. `.csv` files.
   * See the *Product promotion feed field reference* below for more information on these fields.
6. Enter the **name** of your file under *Upload File Name*.
7. Enter the **Pull URL** that points to the directory where your promotion data file exists.
   * This URL can be an FTP or HTTPS URL. E.g., `ftp://ftp.acme.com` or `https://acme.com/anvil_promotions/anvil.txt`
8. Select the **Fetch Frequency** for how often impact.com will fetch the file:
   * Daily
   * Every 8 hour(s)
   * Every 4 hour(s)
   * Every 2 hour(s)
9. Select the **Fetch Time** that impact.com will fetch the file.
   * Options displayed are in GMT -05:00 Eastern Time.
10. Select your **Time Zone**.
11. Select your preferred **Language** and **Save**.
    {% endtab %}
    {% endtabs %}

<details>

<summary>Product promotion feed field reference</summary>

| Expected fields                         | Required? | Description                                                                                          | Format                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| --------------------------------------- | --------- | ---------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ID `[promotion_id]`                     | Yes       | The unique ID of each promotion.                                                                     | The ID is case-sensitive, can be up to 50 characters, and can’t contain spaces or symbols, e.g., `103330482`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| Applicability `[product_applicability]` | Yes       | This attribute specifies if the promotion applies to all products or only to specific products.      | <p>Supported values:</p><p>• <code>all\_products</code></p><p>•<code>specific\_products</code></p><p>impact.com can only map the promotions in your <a href="https://support.google.com/merchants/answer/2906014?hl=en">Google promotions feed file</a> with specific products in your <a href="/brand/what-would-you-like-to-learn-about/platform-features/product-catalogs/add-product-catalogs-as-a-brand.md">product catalog</a> if your product catalog includes <code>promotion\_id</code>. You can’t use the <code>specific\_products</code> value unless your product catalog includes promotion IDs. See <a href="#link-promotions-to-specific-products">Link promotions to specific products</a>.</p> |
| Description `[long_title]`              | Yes       | The full title of each promotion.                                                                    | The maximum length of the title is 60 characters. E.g., `Free mug with purchase`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| Effective `[promotion_effective_dates]` | Yes       | The period for the promotion.                                                                        | <p>• The <strong>start</strong> and <strong>end</strong> dates are separated by a forward slash (/).</p><p>• The date format is (YYYY-MM-DD), followed by the letter ‘T’, the time of day when the sale starts or ends, and an expression of the time zone for the sale.</p><p>• Example: <code>2009-07-19T03:00:00+00:00/2009-07-26T21:00:00+00:00</code></p>                                                                                                                                                                                                                                                                                                                                                  |
| Display `[promotion_display_dates]`     | No        | This attribute specifies the date and the time frame when the promotion will be live.                | The **start** and **end** dates are separated by a forward slash (/), e.g., `2009-07-19T03:00:00+00:00/2009-07-26T21:00:00+00:00`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| Channel `[redemption_channel]`          | Yes       | This attribute indicates that the promotion is valid online or in-store.                             | <p>Supported values:</p><p>• <code>online</code></p><p>• <code>in\_store</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| Offer Code Type `[offer_type]`          | Yes       | This attribute indicates whether or not a coupon code is required for customers to redeem the offer. | <p>Supported values:</p><p>• <code>no\_code</code></p><p>• <code>generic\_code</code></p><p><strong>Important:</strong> If the value for this attribute is <code>generic\_code</code>, then <code>generic\_redemption\_code</code> is required.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| Offer Code `[generic_redemption_code]`  | No        | This attribute specifies the code that can be used online to redeem the promotion.                   | The maximum length is 20 characters, e.g., `EXTRA20`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| Destination `[promotion_destination]`   | No        | This attribute specifies the format of each promotion.                                               | <p>Supported values:</p><p>• <code>Shopping\_ads</code></p><p>•<code>Buy\_on\_Google\_listings</code></p><p>• <code>Free\_listings</code></p><p>To submit your promotion to one or more destinations, submit each destination value as a separate column.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                   |

</details>

#### Link promotions to specific products

If a promotion applies to only some of your products, set `product_applicability` to `specific_products` in your promotion file. Then add the promotion’s ID to each eligible product in your product catalog so impact.com can match them. If the promotion applies to all your products, use `all_products` and skip these steps.

1. In your promotion file, give the promotion a unique `promotion_id`, e.g., `103330482`.
2. In your Google Merchant Center product catalog, add a `promotion_id` field.
   * See [File Formats for Product Catalogs](/brand/what-would-you-like-to-learn-about/platform-features/product-catalogs/file-formats-for-product-catalogs.md) for the Google Merchant Center file types impact.com supports.
3. For each product the promotion applies to, enter the same `promotion_id` value.
   * The values must match exactly, including uppercase and lowercase letters.
4. Upload your updated product catalog and your promotion file.
   * For help, see [Add Product Catalogs](/brand/what-would-you-like-to-learn-about/platform-features/product-catalogs/add-product-catalogs-as-a-brand.md) and [Upload a promotion file](#upload-a-promotion-file).
   * The promotion only applies to products whose `promotion_id` matches in your product catalog.

{% hint style="info" %}
**Example:** The *Free mug with purchase* promotion applies to the coffee beans and French press, but not the tea kettle. Other required columns are left out for clarity.
{% endhint %}

Promotion file:

| promotion\_id | product\_applicability | long\_title            |
| ------------- | ---------------------- | ---------------------- |
| 103330482     | specific\_products     | Free mug with purchase |

Product catalog:

| id       | title              | promotion\_id |
| -------- | ------------------ | ------------- |
| SKU-1001 | Coffee beans, 1 kg | 103330482     |
| SKU-1002 | French press       | 103330482     |
| SKU-1003 | Tea kettle         |               |

#### Troubleshoot error and warning messages

<details>

<summary>View errors and warnings</summary>

On the *Product Promotions* screen, under the *Health* column, select *errors* or *warnings* to see more information about the error, like the error type or error message. See [Manage Your Product Promotion Files](/brand/what-would-you-like-to-learn-about/platform-features/product-promotions/manage-your-product-promotion-files.md) for more information on the *Health* of your promotion file.

</details>

<details>

<summary>Search and filter errors</summary>

You can click into the file *errors* and *warnings* and use the search field and filters to sort through all the uploaded promotion file's errors.

*Error Type* filters include:

* All
* Warning
* Error
* Duplicate

</details>

<details>

<summary>Error and warning messages</summary>

| Error Message                                    | Explanation                                                                   |
| ------------------------------------------------ | ----------------------------------------------------------------------------- |
| Required field(s) missing:{Required field}       | One or more of the required fields are missing in the upload file.            |
| Records skipped due to an expired effective date | The promotion's effective end date is in the past and that record is skipped. |

</details>


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://help.impact.com/brand/what-would-you-like-to-learn-about/platform-features/product-promotions/upload-product-promotion-files.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
