Which tracking settings win when ChatGPT ad URL parameters conflict?

The Citead team, updated

In short. In new product-feed mode, the highest applicable OpenAI Ads level wins for a repeated query key.

Definition: ChatGPT ad URL parameter precedence is OpenAI Ads' rule for merging query-string templates from a product feed, account, campaign, ad group, and ad. In the new product-feed mode, the value at the highest applicable level replaces a value with the same key.

Key facts

  • OpenAI Ads accepts landing_page_configuration.query_string_template at campaign, ad-group, and ad level, while account tracking settings provide defaults.
  • In the new product-feed mode, precedence from lowest to highest is Feed, Account, Campaign, Ad group, Ad.
  • A higher-priority value replaces a matching key, including a custom key. The rule is not limited to utm_* parameters.
  • A feed parameter without a matching configured key remains in the final URL. For example, campaign utm_medium=paid replaces feed utm_medium=search.
  • Legacy product-feed tracking puts Feed above Ad, after feed-specific removal of utm_* parameters.
  • The URI generic syntax standard treats a query as non-hierarchical data and leaves identifier semantics to the URI scheme and its applications.

How does the hierarchy merge a destination URL?

The campaign-management documentation describes each tracking template as a set of query keys. Templates at different levels combine, and a repeated key is resolved by the level with higher priority. OpenAI shows the configuration shape as:

{
  "landing_page_configuration": {
    "query_string_template": "utm_source=openai&utm_campaign={campaign_id}&utm_content={ad_id}&click_id={oppref}"
  }
}

In the new mode, the order is Feed < Account < Campaign < Ad group < Ad. A campaign value therefore replaces an account value for the same key, and an ad value replaces the matching values inherited from the ad group, campaign, or account. A key that appears only in a lower level remains available after the merge. OpenAI's example combines feed utm_medium=search, source=feed, and offer=spring with campaign utm_medium=paid and source=campaign; the resulting URL keeps offer=spring and uses the campaign values for the two repeated keys. OpenAI's campaign-management documentation also says the same rule covers custom keys.

Which mode applies to product feeds?

The new ordering applies to accounts using the new product-feed mode. Its highest configured level is the ad, while the feed is the lowest level when a feed is involved. For an account without a product feed, the feed level has no value to merge, so the configured account, campaign, ad-group, and ad levels remain in the documented order.

Legacy product-feed tracking has a different result after feed-specific removal of utm_* parameters: Account < Campaign < Ad group < Ad < Feed. A feed value can therefore replace an ad value in that mode. OpenAI says account admins can select Switch now in the Feed tracking is changing banner to opt in, while other users should ask an account admin to do so. The documentation gives November 5, 2026 as the migration deadline for accounts using legacy ordering. The same OpenAI documentation identifies the mode and the account-admin control.

Does the URL standard decide the winner?

RFC 3986 defines the query component as non-hierarchical data used with the path to identify a resource. It also says that a URI scheme can impose further syntax and semantics. That generic standard therefore supplies the URL structure, while the OpenAI Ads documentation supplies the parameter-merge policy for these ad destinations. RFC 3986's query section describes the query component without assigning campaign levels or a duplicate-key winner.

How can you check a conflicting setup?

Give the same key distinct values at the account, campaign, ad-group, and ad levels, then inspect the final destination produced for the ad. Include a feed URL in the test when the account uses product feeds, because the new and legacy orderings produce different winners. The ad destination must use HTTP or HTTPS, be no longer than 2,048 characters, and be accessible to OpenAI's ad crawlers. OpenAI's preview endpoint lets you check the creative and destination, but its documentation says a preview does not confirm serving eligibility.

FAQ

Does an ad-level value beat a campaign-level value?

Yes. In the new product-feed mode, the ad is above the campaign in the precedence order, so its value wins when both levels define the same query key.

Can a custom query key use the same precedence rule?

Yes. OpenAI documents the rule for all query keys, including custom keys, so it also applies to keys outside the utm_* family.

Can a feed value beat an ad value?

Only in legacy product-feed tracking, where the documented order places Feed above Ad after feed-specific removal of utm_* parameters.

Sources

  1. OpenAI Developers, "Campaign Management",
  2. IETF, "Uniform Resource Identifier (URI): Generic Syntax", January 2005

Check how a page reads to answer engines. Open the GEO score analyzer

Test a page and see what to fix first

The analysis usually takes less than 10 seconds and needs no account.

400,000+ pages scored in the public benchmark