What Is OpenAI Ads Metadata? A Guide to Using It in Product Feed Campaigns

| Zafer Kavaklı

What Is OpenAI Ads Metadata? A Guide to Using It in Product Feed Campaigns

In OpenAI Product Feed campaigns, grouping products only through standard fields such as category, price, or availability may not always be sufficient. E-commerce brands often want to divide their products according to more specific criteria related to their advertising strategy.

For example:

  • High-margin products

  • Best-selling products

  • New-season products

  • Products with strong availability

  • Products with high campaign priority

  • Products belonging to a specific collection

  • Low-performing products with excess inventory

The ads_metadata field in the OpenAI feed structure is a flexible metadata field that can be used for these types of advertising-focused product labels.

You can think of this field as being similar to custom labels in Google Merchant Center or internal labels in Meta Ads product feeds. Our Custom Labels and Internal Label article, where we explain these concepts in detail, can also be a useful starting point.

What is ads_metadata?

ads_metadata is an optional field used to add advertising-related information to products within an OpenAI product feed.

According to the OpenAI product feed specification, ads_metadata is submitted as a JSON object. The keys and values contained in this object must be strings.

A simple example:

{
  "bidding_tier": "high",
  "product_line": "summer_collection"
}

This structure allows brands to add custom labels that can be used in advertising campaigns in addition to standard product feed fields.

Why is ads_metadata important?

Filtering products only through existing fields may not always be sufficient in Product Feed campaigns.

For example, your product feed may contain the following category information:

Women's Clothing > Dresses

However, your advertising strategy may require you to manage the following product groups within the “Women’s Dresses” category separately:

  • High-margin products

  • Products with strong availability

  • New-season products

  • Best-selling products

  • Products suitable for a summer campaign

This is where ads_metadata becomes useful. By labeling products according to your campaign strategy, it helps you create more controlled product groups during Ad Group setup.

How can ads_metadata be approached like a custom label?

In Google Shopping, custom label fields are used to group products in advertising campaigns and manage bidding strategies with greater control. Similarly, ads_metadata can be used to add advertising-focused signals to products in OpenAI Product Feed campaigns.

The following table compares the custom label approach with the use of ads_metadata:

Use case Google custom label example OpenAI ads_metadata example
Margin group custom_label_0 = high_margin "margin_group": "high_margin"
Season custom_label_1 = summer "season": "summer"
Performance group custom_label_2 = best_seller "performance_group": "best_seller"
Stock level custom_label_3 = high_stock "stock_level": "strong"
Campaign priority custom_label_4 = priority "campaign_priority": "high"

This approach allows performance marketing teams to manage products through more meaningful groups.

How is ads_metadata submitted technically?

According to the OpenAI product feed specification, ads_metadata is submitted as an object. The keys and values within this object must be strings.

Correct usage

{
  "ads_metadata": {
    "bidding_tier": "high",
    "product_line": "essentials",
    "margin_group": "high_margin",
    "stock_level": "strong"
  }
}

Incorrect usage

{
  "ads_metadata": {
    "bidding_tier": 3,
    "is_priority": true,
    "tags": ["summer", "dress", "campaign"]
  }
}

In this example, bidding_tier is submitted as a number, is_priority as a boolean, and tags as an array. These values therefore do not comply with the required string key-value structure.

A more appropriate version would be:

{
  "ads_metadata": {
    "bidding_tier": "3",
    "is_priority": "true",
    "tags": "summer_dress_campaign"
  }
}

How can ads_metadata be represented in a CSV or flat file?

In the File Upload structure, the ads_metadata field should be treated as a JSON object. In flat-file formats such as CSV or TSV, this field can generally be submitted as a JSON string.

Example:

item_id title price availability ads_metadata
SKU123 Strappy Midi Dress 2499 TRY in_stock {"bidding_tier":"high","product_line":"summer_collection","stock_level":"strong"}
SKU124 Linen Shirt 1899 TRY in_stock {"bidding_tier":"medium","product_line":"linen_collection","margin_group":"high_margin"}
SKU125 Basic T-Shirt 699 TRY in_stock {"bidding_tier":"low","product_line":"basics","campaign_priority":"always_on"}

The important point is that the JSON structure must be valid and all values must be submitted as strings.

ads_metadata use case 1: Bidding tier

The bidding_tier field can be used to divide products according to their advertising priority and bidding strategy.

Product group ads_metadata example Use case
High-priority products "bidding_tier": "high" Higher bids or a separate Ad Group
Medium-priority products "bidding_tier": "medium" Balanced bids or targeting in a separate Ad Group
Low-priority products "bidding_tier": "low" More controlled budget usage

Example:

{
  "ads_metadata": {
    "bidding_tier": "high"
  }
}

This structure can be used to manage high-priority products within a separate Ad Group.

ads_metadata use case 2: Product line

The product_line field can be useful for brands that want to create campaigns based on collections, seasons, or product ranges.

Product line Example use
summer_collection Summer collection products
linen_collection Linen products
premium_basics Premium basic products
new_arrivals Newly added products

Example:

{
  "ads_metadata": {
    "product_line": "summer_collection"
  }
}

This field can be especially useful for e-commerce brands selling fashion, home and living, cosmetics, or seasonal products.

ads_metadata use case 3: Margin group

Not all products have the same level of profitability. For certain products, it may be more appropriate to increase or reduce advertising spend.

The margin_group field can be used to separate products according to margin level.

Margin group ads_metadata
High margin "margin_group": "high_margin"
Medium margin "margin_group": "medium_margin"
Low margin "margin_group": "low_margin"

This structure may be preferred by teams that want to manage campaign budgets according to profitability rather than only sales volume.

ads_metadata use case 4: Stock level and campaign capacity

The availability field in the OpenAI product feed indicates whether a product is in stock. However, for some brands, inventory status involves more than an in_stock or out_of_stock distinction.

For example:

  • The product is in stock, but only a small quantity remains

  • The product has high inventory levels

  • A large quantity is stored in the warehouse and needs to be sold

  • The product has a long replenishment lead time

  • The product can support higher demand during a campaign period

Fields such as stock_level or fulfillment_priority can be used for these distinctions.

{
  "ads_metadata": {
    "stock_level": "strong",
    "fulfillment_priority": "campaign_ready"
  }
}

This structure can help reduce the inclusion of products that may experience availability problems during advertising campaigns.

ads_metadata use case 5: Performance group

Products can also be labeled according to historical performance signals.

Performance group Description
best_seller Best-selling products
high_ctr Products with a high click-through rate
high_conversion Products with a high conversion rate
low_conversion Products that receive traffic but do not generate conversions
new_product New products that do not yet have performance data

Example:

{
  "ads_metadata": {
    "performance_group": "best_seller"
  }
}

This structure helps brands manage products not only according to category, but also according to their performance potential.

ads_metadata use case 6: Campaign priority

Certain product groups may become strategically more important during specific periods.

For example:

  • End-of-season products

  • Black Friday products

  • New collection products

  • Gift-season products

  • Excess inventory

Fields such as campaign_priority or campaign_theme can be used in these situations.

{
  "ads_metadata": {
    "campaign_priority": "black_friday",
    "campaign_theme": "gift_season"
  }
}

This structure makes it easier to filter products quickly during campaign periods.

Recommended field structure for ads_metadata

The following structure can be a useful starting point for many e-commerce brands:

ads_metadata key Example values Use case
bidding_tier high, medium, low Bidding and budget priority
product_line summer_collection, premium_basics Collection or product range
margin_group high_margin, medium_margin, low_margin Profitability group
stock_level strong, medium, limited Inventory level
performance_group best_seller, high_conversion, new_product Performance segment
campaign_priority seasonal, clearance, always_on Campaign priority
lifecycle_stage new_arrival, mature, end_of_life Product lifecycle stage

Using all of these fields is not required. The most appropriate structure should be selected according to the brand’s campaign management strategy.

What should be considered when using ads_metadata?

Because ads_metadata is a flexible field, using it without a clear plan can create confusion.

Key considerations include:

  • Key names should be standardized.

  • Different values should not be used for the same meaning.

  • Values should be submitted in lowercase and in a consistent format.

  • Using underscores instead of spaces creates a more consistent structure, such as best_seller instead of best seller.

  • Non-string values should be converted into strings.

  • Too many metadata fields should not be added.

  • Marketing, e-commerce, and technical teams should use the same terminology.

  • Labels should be updated regularly.

  • Labels associated with completed campaigns should be removed.

Example of inconsistent usage:

{
  "ads_metadata": {
    "stock_level": "High",
    "stockStatus": "strong",
    "stock_segment": "yüksek"
  }
}

A more appropriate structure:

{
  "ads_metadata": {
    "stock_level": "strong"
  }
}

How can Ad Groups be structured using ads_metadata?

Product filters are used when creating Ad Groups in OpenAI Product Feed campaigns. If standard feed fields are not sufficient to group products in the required way, the ads_metadata field can support this segmentation.

Example Ad Group structure:

Ad Group Possible ads_metadata filter
High-priority products bidding_tier = high
Summer collection product_line = summer_collection
Best-selling products performance_group = best_seller
Products with strong availability stock_level = strong
End-of-season campaign campaign_priority = clearance

This structure makes campaign setup more manageable.

How can Optifeed support this process?

Optifeed is an AI-powered product feed optimization platform that helps e-commerce brands prepare their product data for advertising platforms and AI shopping experiences.

For fields such as ads_metadata to work effectively, products need to be segmented correctly. Optifeed helps brands group products according to signals such as performance, availability, price, margin, category, season, or campaign priority.

With Optifeed, brands can:

  • Transfer custom label and internal label strategies into the OpenAI product feed structure.

  • Label products according to campaign priority.

  • Create ads_metadata fields for OpenAI product feeds.

  • Keep availability, price, and category data up to date.

  • Make product titles and descriptions easier to understand through AI Enrich.

  • Manage multichannel feeds for platforms such as Google, Meta, TikTok, and OpenAI.

The objective is not simply to populate a metadata field correctly from a technical perspective. The real objective is to transform product data into a more useful structure that supports the campaign strategy.

About the author
Zafer Kavaklı - Optifeed

Zafer Kavaklı

Co-Founder at Optifeed

Zafer Kavaklı is co-founder of Woom Digital and Optifeed. He is an experienced digital marketer who has been working in the field since 2012. He started his career as a digital marketing intern at Teknosa and then worked at Modanisa as a digital marketing specialist. After that he worked as digital marketing manager at ebebek. Following these roles, he ventured into entrepreneurship by establishing his own performance marketing agency named Woom Digital. Zafer has embarked on a new business venture in the SaaS sector, creating a product management tool named Optifeed.