Campaign field definitions
Common campaign fields
This section provides brief descriptions and examples to help you understand common campaign fields across different types, such as product ads, banners, and banner X. Each entry includes the field's purpose and a representative implementation example for your platform.
name
It's recommended to include details like the promoted product, time frame, or strategy, such as 'Cadbury Chocolate June Clearance,' to help identify the campaign easily. The name can be up to 255 characters long.
namespaceId
The unique identifier of your namespace, located in the base URL. For instance, in exampleretailer.citrusad.com, the namespaceId is exampleretailer.
Make sure that the resource exists for the ID you provide as the namespace.
approval.state
The approval state of the campaign can only use specified enum values. Supported states are APPROVAL_STATE_APPROVED, APPROVAL_STATE_REJECTED, APPROVAL_STATE_PENDING.
Note thatAPPROVAL_STATE_UNSPECIFIED cannot be used.
approval.rejectionReason
The reason a campaign has been rejected. This is a mandatory field if status is APPROVAL_STATE_REJECTED.
campaignState
The active state of the campaign indicates whether it is active, paused, a draft, or archived. For example, CAMPAIGN_STATE_ACTIVE, CAMPAIGN_STATE_DRAFT, CAMPAIGN_STATE_UNSPECIFIED.
Note that CAMPAIGN_STATE_UNSPECIFIED cannot be used.
teamId
The teamId is the unique identifier of the campaign's team.
Ensure the resource exists for the given team ID and does not have the archived flag set. Additionally, the template team ID must match the campaign team ID.
startTime
The campaign start time using a precise ISO-8601 timestamp. For example, 2024-09-01T12:00:00Z.
Omit this value for always on campaigns.
endTime
The campaign end time uses a precise ISO-8601 timestamp and must be set if startTime is specified. For example, 2024-09-30T23:59:59Z. The end time must be after the start time.
Omit this value foralways on campaigns.
walletId
The unique identifier of the wallet to be charged for the campaign, for example, wallet_123456789.
- If campaignType is not 'Wildcard', an object should exist for the ID.
- The wallet team ID should match the campaign team ID.
- The wallet's currency code must match the campaign catalog's currency code. If you're unsure of this, check with your Customer Integration Engineer (CIE).
placementId
The unique identifier of the campaign's placement. For example, placement_987654321.
Ensure the resource exists for the given placement ID and it corresponds to the right campaign.
catalogIds
The unique identifier of the retailer's catalog(s). For example, ["329f1e08-d3ee-4e04-90c4-068b3ce6b856","6c29a96a-f55a-497f-b03a-2fed85dd7198" ].
Ensure the resource exists for the given catalog ID and it corresponds to the right campaign.
advertisedProducts.<br>productsByKey
The combinations of product codes and catalog IDs being advertised in the campaign. If a campaign appears in two catalogs, provide two catalog-product pairings.
For example, [{"catalogId": "14edbbc5-a7be-4c54-9f35-767b4ee29fd3","productCode": "ABC123"}].
targeting.searchTerms
The search terms and their match types that the campaign will target. Include this information only for search placements. For example, {"matchType": "MATCH_TYPE_EXACT_MATCH","phrase": "string"}}.
targeting.excludeFilters
Filters to exclude during the targeting stage, which should only be location or category filters aligned with your filterClassId. Most integrations can omit these values. If using two filter classes, specify one object per filter class:
{"excludeFilters": [ <br>{ <br>"catalogId": "76df36b4-45a2-46a5-9308-3dd14861d76e", <br>"filter": "category:chocolate" <br>}, <br>{ <br>"catalogId": "76df36b4-45a2-46a5-9308-3dd14861d76e", <br>"filter": "location:florida" <br>} <br>] <br>}
targeting.includeFilters
Explicit filters to be targeted by the campaign. Omit this for standard integrations. Only populate this field if advised or when creating fixed tenancy campaigns.
{"includeFilters": [ <br>{ <br>"catalogId": "76df36b4-45a2-46a5-9308-3dd14861d76e", <br>"filter": "category:flavoured-milk" <br>} <br>] <br>}
targeting.negativeSearchTerms
Negative search terms exclude specific words or phrases from your campaign, preventing your ads from appearing in unrelated searches. This strategy refines your audience, lowers costs, and boosts campaign efficiency. For example, adding used as a negative term for a new car ad avoids displaying it to those seeking used cars.
targeting.crossSell
Specifies targeting on cross-sell placements.
targeting.crossSell.<br>targetProductsByKey
Specifies explicit catalog product pairings to be targeted.
[{"catalogId": "14edbbc5-a7be-4c54-9f35-767b4ee29fd3","productCode": "ABC123"}]
- Target product catalogs must match the campaign catalogs.
- A product must exist for each product-catalog pair.
- Target products cannot be among the advertised products.
- Target products and advertised products must share matching categories.
targeting.upSell.<br>targetProductsByKey
Specifies explicit catalog product pairings to be targeted.
[{"catalogId": "14edbbc5-a7be-4c54-9f35-767b4ee29fd3","productCode": "ABC123"}]
strategy.auction.maxBid
The maximum cost-per-click (CPC) bid of your campaign. For example, 2.99. - Must be a valid BigDecimal. - Must be more than the minimum bid. }, "strategy": { "auction": { "maxBid": "string", "spendLimit": { "daily": "string", "total": "string" } },
strategy.auction.spendLimit
Specifies the maximum daily or total spend for a campaign.
Omit this for an always on campaign, which will continue spending as long as there are funds in the campaign's wallet. For example: "daily": "1000"." Ensure that the spend limit is a BigDecimal value greater than 0.
},
"strategy": {
"auction": {
"maxBid": "string",
"spendLimit": {
"daily": "string",
"total": "string"
}
},
strategy.fixedTenancy.cost
Represents the total cost of the campaign, used for reporting purposes only and not deducted from the wallet. This value can be updated if the retailer optimizes across an entire package or insertion order (IO). For example: 1000.99. "fixedTenancy": { "cost": "1000.99", "positions": [ 0 ], "catalogCosts": [ { "catalogId": "string", "catalogCostPercentage": 0 } ] }
strategy.fixedTenancy.<br>catalogCostPercentage
A value between 0 and 1 indicating the portion of the cost allocated to each catalog. If using multiple catalogs, allocate a portion (e.g., 0.5). For a single catalog, use the value 1. "fixedTenancy": { "cost": "string", "positions": [ 0 ], "catalogCosts": [ { "catalogId": "string", "catalogCostPercentage": 0.5 } ] }
strategy.fixedTenancy.<br>fixedCosts
Specifies additional costs for external data, creative work, or other services related to the campaign. These charges apply when the campaign is approved and cannot be modified. Omit this unless additional costs are applicable to your advertiser. { "dataCost": "150", "creativeCost": "200", "otherCost": "400" }
fixedCosts.dataCost
The cost associated with data for the campaign. For example, $100.00.
fixedCosts.creativeCost
The cost associated with creative production for the campaign. For example, $200.00.
fixedCosts.otherCost
The cost associated with other expenses for the campaign. For example, $50.00.
customFields.customFieldId
Specifies the unique customFieldId being configured. Custom fields are not required in a standard integration and it is likely not to use this field unless advised by your Customer Integration Engineer (CIE). { "customFieldId": "3e31d3e4-bf15-411b-a18e-5553f08a6122", "content": "PO-12345" }
customFields.content
The content for the custom field on the campaign. { "customFieldId": "3e31d3e4-bf15-411b-a18e-5553f08a6122", "content": "PO-12345" }
customQuestions.customQuestionId
Specifies the unique custom targeting question being configured. Custom questions are not required in a standard integration and it is likely not to use this field unless advised by your Customer Integration Engineer (CIE). { "answers": [ "preference:delivery", "preference:online" ],"customQuestionId": "593a9860-5ce4-4dcc-b6c4-15cf6fb08426" }
customQuestions.answers
Specifies the answers selected by advertisers for customer targeting. Must align with customer targetingData values.
{
"answers": [
"preference:delivery",
"preference:online"
],"customQuestionId": "593a9860-5ce4-4dcc-b6c4-15cf6fb08426"
}
Banner X campaign fields
contentStandardId
A unique identifier for the content standard. Content standards are guidelines and technical parameters that dictate how a banner ad should be displayed within a designated space on a website or digital platform. This identifier is needed to verify that the created banner X asset adheres to the retailer's content standards.
slotId
A unique identifier for the slot in the configuration, such as 'homepage_banner_slot_1'. This identifier ensures the banner uses the correct slot as defined by the retailer, like single tile, double tile, or banner.
slotType
The unique slot within the content standard where the image will be placed. It ensures the image adheres to predefined slot requirements and validations. Examples include left_ribbon, top_banner, or side_panel.
headingText
The heading text for the banner.
bannerText
Banner text is the text displayed on your banner ad.
bannerTextColourHex
The color of the banner text in hex format.
ctaFlag
A flag indicating whether the banner has an enabled call-to-action.
ctaText
The call-to-action text on the banner. A call-to-action (CTA) is a clickable text or button prompting users to act, like making a purchase or visiting another page. For example, "Shop Now".
ctaTextAccessibility
The call-to-action text for accessibility purposes.
ctaLink
The URL for the call-to-action link.
backgroundColourHex
The color of the banner X primary background image in hexadecimal format.
backgroundImageId
This is the unique identifier of the primary background image.
backgroundImagePosition
The alignment or position of the primary background image within its container.
secondaryBackgroundImageId
The unique identifier for the secondary background image.
secondaryBackgroundImagePosition
The alignment or position of the secondary background image within its container.
heroImageId
The unique identifier for the hero image. Hero image is the main promotional image, typically used to display your product or logo.
heroImageAltText
The alternative text for the hero image, assisting with accessibility.
heroMode
The display mode or style of the hero section.
secondaryHeroImageId
The unique identifier for the secondary hero image.
secondaryHeroImageAltText
The alternative text for the secondary hero image, assisting with accessibility.
secondaryHeroMode
The display mode or style of the secondary hero section.
trackingTags
A required array of objects used to specify tracking providers and their associated tags for monitoring and analyzing the performance of a banner X campaign.
additionalFields
A required array of objects providing extra configuration options for banner X.
Banner campaign fields
contentStandardId
A unique identifier for the content standard. Content standards are guidelines and technical parameters that dictate how a banner ad should be displayed within a designated space on a website or digital platform. This identifier is needed to verify that the created banner asset adheres to the retailer's content standards.
slotId
A unique identifier for the slot in the configuration, such as 'homepage_banner_slot_1'. This identifier ensures the banner uses the correct slot as defined by the retailer, like single tile, double tile, or banner.
artworkImageId
A unique identifier for the artwork image uploaded for the banner. This ID (fileId) is returned by the Upload the creative assets API.
link
This is the URL linked to the banner slot, directing users to a target page when they click the ad. Example: https://www.example.com/promo
altText
Alternative text describing the artwork image for accessibility purposes. Example: 'Promotional banner for summer sale'.
text
Display text on the banner. The display text for the slot, providing additional information or a message. Example: 'Get 20% off your first purchase!'
trackingTags
A list of tracking tags from the provider, used to monitor interactions with the slot. Example: [ { provider: 'Google Analytics', tag: 'promo_click' }, { provider: 'Adobe Analytics', tag: 'banner_view' } ]. These tags are included with your ad for third-party verification.

