Epsilon Retail Media Releases
March 18, 2026
Bug Fixes (General Availability)
Partner APIs - Content Standards
Minimum impression price did not support decimal values
This has been improved by introducing a new optional field, minImpressionPrice, which returns the minimum impression price as a decimal value at the content standard level.
Affected APIs:
This enhancement does not impact any existing integrations that already use the minImpressionPrice field. All current integrations will continue to function as expected without modification.
The new field is optional across all endpoints listed above.
March 04, 2026
Enhancements (General Availability)
Partner APIs
The following APIs has been enhanced:
Upload a campaign file: This endpoint now supports creatives from Brand Pages. The maximum supported file size has been increased to 4 GB, allowing larger campaign files to be uploaded.
Retrieve campaign file URL: This endpoint has been enhanced to support creatives from Brand Pages. The image ID and URL for Brand Page creatives are now returned, with updated enums reflecting this support.
February 25, 2026
New Features (General Availability)
Partner APIs
The following APIs has been added:
Invite users to teams in bulk: This endpoint enables adding multiple users to a team in a single request. It also supports assigning a single user to multiple teams, simplifying bulk user onboarding and team access.
Remove users from teams in bulk: This endpoint allows removing multiple users from teams in a single request, streamlining bulk user removal across teams.
Enhancements (General Availability)
Retrieve bulk team operation status: The bulk team operation status response has been enhanced with a new field, inviteUsersRequest. This provides better visibility into bulk user invite requests and their processing status.
January 14, 2026
New Features (General Availability)
Partner APIs
The following API has been added:
Retrieve user key: This new endpoint allows partners to retrieve a user key by passing valid user credentials (username and password). The user key can then be used to generate authentication tokens for secure API access.
Enhancements (General Availability)
Create Banner Campaign in bulk: This endpoint creates multiple campaigns simultaneously (up to 1,000) based on campaign type. With this code, API users will be able to create multiple Banner Campaigns in one go which reduces the time and effort.
Environment-Specific API Host URL Update: Updated API host URLs to include environment-specific subdomains (for example, campaign.<env>.citrusad.com) to ensure proper client access across different environments for Product Campaign operations.
Bug Fixes (General Availability)
Unable to launch or save BannerX campaign in New UI due to API validation error
The validation logic has been updated to allow application/octet-stream as one of the valid file types for banner and BannerX campaigns. This resolves issues where users were unable to create or update BannerX campaigns due to file type validation errors.
User key revocation fails after Okta account suspension for Partner API usage
Implemented an Okta account status check (ACTIVE or SUSPENDED) when creating an auth_token using a user key. This ensures tokens are only generated for active users, preventing unauthorized access after account suspension or deactivation.
BannerX CTA text validation allows equal to limit Modified the validation logic for BannerX CTA text to accept character lengths that are equal to or less than the limit defined in content standards. Previously, the API only allowed lengths strictly less than the limit, causing errors for valid inputs. This fix resolves issues where users were unable to submit campaigns due to incorrect validation.
Coming soon:
SPA Autobidding (Beta)

This feature is progressively launching across H1 2026.
Spend less time tweaking bids and more time driving results. Our new SPA Autobidding gives advertisers the freedom to set your CPC and budget and let automation take over. Our auto bidder works in every single auction, bidding aggressively when conversion likelihood is high and scales back when it’s low.
This conversion-focused approach uses historical and real-time auction data to predict performance across bid levels, adapting to changing conditions and balancing win rate with efficiency. The result is smarter, more predictive bidding that maximises conversion value without overspending, all while respecting campaign budgets and flight dates.
This feature is only available in the New UI.
Take a look at how easy it is to use:
Learn more about autobidding:
Campaign Auto Pacing
We’re excited to introduce a smarter way to manage your campaign budgets coming soon: Automatic Campaign Pacing.
Previously, campaigns would stop serving the moment they hit their daily limit, often leading to overall underspend. Soon, with automatic campaign pacing, your campaigns can spend more on high-traffic days and catch up after quieter ones, helping you make the most of your budget.
What’s Changing:
Better Budget Utilization: Your full budget is more likely to be used effectively, now with less manual management.
Smarter Spending: Campaigns with daily limits set that have underspent can now spend up to 2x their average daily limit on high-performing days.
No More Missed Opportunities: Underspent days are automatically balanced out later in the month. At the end of the calendar month, the system resets pacing for the next month.
Rollout Schedule:
The upgrade is planned to roll out February 2026.
Learn more about how to best use this feature here:
Catalog Processing Improvements
This feature is progressively launching across Q4 2025 and Q1 2026
We’ve significantly enhanced catalog ingestion and processing to support enterprise-scale retailer catalogs of up to 10 million products, enable multiple syncs per day, and allow up to 2,000 filters per product. These improvements make onboarding faster and smoother for marketplace retailers, while unlocking richer, more granular product data at a store level.
With improved support for frequent syncing of ranging and stock filters, Epsilon can more accurately identify in-stock products, helping increase ad eligibility, relevance, and overall campaign performance.
If your requirements exceed these figures, we recommend engaging with your Epsilon representative to discuss your specific use case and explore how Epsilon can best support your needs.
Available now
December 2025
Unified Reporting: (Beta)
This feature is progressively launching across Q4 2025 and Q1 2026 to retailers that use on and offsite. If you’re an interested retailer, please reach out to your account representative.
Unified reporting delivers a single, deduplicated view of onsite and offsite performance using fractional attribution. By distributing credit across all eligible touchpoints, brands can clearly understand how different media channels work together and see the true return on their total on and offsite retail media investment, without double counting.
Learn more in this guided tour:
Read more in the knowledgebase:
Audience Targeting

Our audience targeting capabilities have been uplifted and improved, empowering retailers to surface curated audiences to advertisers, enhancing campaign targeting and unlocking new ways for advertisers to connect with shoppers.
This feature is only available in the New UI.
What’s new and improved:
Smarter Audience Management Retailers can connect first-party (1PD) audiences directly into the platform and control visibility at the team level for more precise targeting.
Better With Offsite Use Epsilon's unified audiences both on and offsite for connected targeting across all touchpoints.
Monetize Your Audiences Offer curated audience segments to advertisers, enabling relevant ads and unlocking new revenue.
Drive Better Results Help advertisers reach the right users, optimize spend, and boost engagement. Unified reporting against campaigns help showcase the impact of messaging across the entire customer lifecycle.
Take a look at how easy it is for advertisers in this guided tour:
Review the developer documentation below:
Placement floor pricing
Retailers can now set floor pricing at a placement-level, unlocking the ability to set the floor price on high traffic placements such as home pages, specials, checkout, and more.
This adds to the existing floor price offerings, and is considered in priority order like below:
1. Keyword/ keyword+placement (standard and cross-sell placements)
2. Category/ category+placement (standard category placement only)
3. Placement
4. Catalog
5. Namespace
Floor pricing (minimum bids) are managed by Epsilon on your behalf, contact support or your Epsilon contact to review and action any adjustments.
It’s always important to remember that floor prices are best adjusted periodically to ensure the right value for your placements.
December 16, 2025
Partner APIs
Bug Fix (General Availability)
Unable to submit BannerX campaign in new UI due to file type validation error
The validation logic has been enhanced to support files with the application/octet-stream MIME type. This update allows users to create and update BannerX campaigns without submission errors when such files are used.
November 12, 2025
New Features (General Availability)
Partner APIs
The following APIs have been added:
Create campaigns in bulk: This endpoint allows users to create up to 1,000 campaigns in a single request, reducing manual effort and setup time. It supports Product and BannerX campaign types.
Create teams in bulk: This endpoint enables partners to create up to 50 teams in a single request. This streamlines large-scale team onboarding by allowing users to specify team details, company information, and business settings to organize advertising campaigns and manage user access efficiently. If a request includes more than 50 teams, the API returns an error indicating that the limit has been exceeded.
Bug Fixes (General Availability)
Unable to launch/save BannerX campaign in V2 UI due to API validation error Validator logic updated to skip checks if image dimensions (width, height) or maxSize are null or not specified in content standard by Retailers, allowing campaign creation in those edge cases.
BannerX campaign creation fails when image positions are not provided as inputs Default values are now applied when image position values are not provided during Banner X campaign creation. This update ensures campaigns can be created when image positions are optional and values are not provided.
November 5, 2025
Partner APIs
Host URL updates Updated API host URLs to include environment-specific subdomains (e.g., campaign.<env>.citrusad.com) to enable proper client access across different environments for the following operations:
Bug Fixes (General Availability)
Bulk Wallets API Secondary retailer permission checks have been added to the Bulk Wallet APIs. This update ensures that when a secondary retailer user attempts to Create or Update wallets via bulk operations, the system now throws an appropriate error. This prevents unauthorized wallet modifications and enforces correct permission boundaries for secondary retailer roles.
Bulk Teams API Supplier users are now limited to a maximum of 50 team entries per request when using Update teams in bulk. This update helps mitigate performance issues in the Auth Service that could arise from large payloads submitted by supplier accounts.
October 29, 2025
Enhancements (General Availability)
Partner APIs
The following APIs has been enhanced:
Host URL updates: Updated API host URLs to include environment-specific subdomains (e.g., campaign.<env>.citrusad.com) to enable proper client access across different environments for the following operations:
Pagination support for Bulk Operations: Bulk operations have been enhanced to include pagination (default: 20 items per page) and status-based filtering (supported values:
BULK_ITEM_SUCCESSandBULK_ITEM_FAILED), delivering improved performance and more targeted data retrieval. Pagination support is now available for the following operations:
Bug Fixes (General Availability)
Update a team: With this update, the companyType is no longer required in the request payload. The following fields have been excluded from the Update Team API:
companyTypeindustryTypenamespaceId
October 22, 2025
New Features (General Availability)
Partner APIs
The following APIs have been added:
Create wallets in bulk: Added support to create wallets in bulk (up to 1,000) with configurable details such as currency, limits, and team assignments.
Create team - v3: This endpoint introduces the ability to create teams to streamline campaign management and user access. In v3, direct addition of users to a team using
userIdshas been removed; users must now be invited through the invite flow, enabling better control and traceability.
Bug Fixes (General Availability)
Retrieve bulk operation status Suppliers can now successfully retrieve the status of bulk team update operations they initiate. Previously, this resulted in a 403 Forbidden error, blocking validation and testing.
October 8, 2025
New Features (General Availability)
Partner APIs
The following APIs have been added:
Bulk campaign approval
Update teams in bulk: This endpoint allows bulk updates of Teams (up to 1,000) in a single API call. Supported fields include team name, company information, contact details, or team settings across several teams.
Retrieve bulk team operation status: This endpoint provides the progress and completion status of a bulk team update operation.
Bug Fixes (General Availability)
Upload a campaign file: The validation logic has been updated to make slot ID optional for logo and PDF file uploads. This resolves issues where users were unable to upload these file types without providing a slot ID, which was not required for these specific campaign file formats.
In v4/campaign-file-upload, slot ID is no longer mandatory when campaignFileType is one of the following:
CAMPAIGN_FILE_TYPE_BANNER_X_CONTENT_STANDARD_DISPLAY_LOGOCAMPAIGN_FILE_TYPE_BANNER_X_CONTENT_STANDARD_PDF_FILECAMPAIGN_FILE_TYPE_BANNER_CONTENT_STANDARD_DISPLAY_LOGOCAMPAIGN_FILE_TYPE_BANNER_CONTENT_STANDARD_PDF_FILE
October 1, 2025
New Features (General Availability)
Partner APIs
The following APIs have been added:
Retrieve list of all campaigns: This endpoint has been enhanced to support a new date range filter (from and to), allowing users to narrow results to a specific time period. It returns a list of campaigns based on specified filters and parameters such as campaign name, campaign type, placement ID, team ID, approval state, and others. Pagination and sorting are supported to efficiently handle large datasets.
Upload a campaign file - v4: This endpoint enables the upload of various campaign file types. It supports hero image display modes and background positioning controls. Content files must be in standard PDF format. Display logos are supported in JPEG, JPG, or PNG formats. File type details:
Banner (Campaign_File_Type_Banner_Image)
Accepted formats: JPEG, JPG, PNG, GIF
Required fields:
slot ID,content standard ID,team ID
BannerX (Campaign_File_Type_Banner_X_Image)
Accepted formats: PDF, SVG
Required fields:
slot ID,content standard ID,slotType,imageType
September 24, 2025
New Features (General Availability)
Partner APIs
The following API has been added:
Retrieve campaign spend details: This endpoint calculates the remaining budget for specific campaigns based on their available balance and spending limits. It helps advertisers monitor how much budget is left across different time intervals (daily, hourly, or total) to better manage campaign spending and budget allocation.
September 17, 2025
New Features (General Availability)
Partner APIs
The following APIs have been added:
Retrieve bulk wallet operation status: Allows users to check the progress and completion status of a bulk wallet operation using its
bulk ID.Update wallets in bulk: Enables simultaneous updates to multiple wallets. Use this endpoint to update name, external ID, archived status, daily budget, and credit limit.
Update campaigns in bulk: Supports bulk updates of Banner X campaigns using the new enum
CAMPAIGN_TYPE_BANNERX. Enables modifications to banner-specific parameters such as creative assets, targeting criteria, and bid strategies across multiple campaigns.
Enhancements (General Availability)
Banner X API
Create a banner X and Update banner X has been enhanced with field-level validations for key configuration fields. These validations ensure data integrity and alignment with the contentStandardId specifications.
September 10, 2025
Enhancements (General Availability)
Partner APIs
The following API has been enhanced:
Bulk Campaign API
The Update campaigns in bulk API now supports bulk updates of Banner Campaigns using the new Enum CAMPAIGN_TYPE_BANNER. This feature allows for bulk modifications of banner-specific parameters, including creative assets, targeting criteria, and bid strategies across multiple campaigns.
Wallet API
The List all wallets API now supports filtering by an array of walletIds, reducing repetitive API calls and improving performance for V2 UI use cases.
Bug Fixes (General Availability)
Create campaign
The API validation logic has been updated to prevent submission errors when creating a campaign with an excluded placement. An additional check was added to ensure that an error is raised only if a placement ID is excluded for a question and the user attempts to submit an answer. This resolves issues where campaigns without customQuestions in the payload were incorrectly blocked during submission.
Banner API
Addressed a validation error in the link field that previously resulted in incorrect responses for certain input formats. The API has been updated to handle valid inputs as expected.
August
New Retail Media Platform UI
The Epsilon Retail Media Platform has been completely redesigned to deliver a faster, smarter, and more intuitive experience for advertisers and retail teams. Built from the ground up based on user feedback, the new interface simplifies campaign management, enhances reporting, and streamlines workflows, so you can focus on driving results with a seamless experience.
Try it now:
Learn everything to know in the new knowledgebase, including guided demo tours, and release notes updated weekly.
August 20, 2025
New Features (General Availability)
Partner APIs
The following API has been added:
Update campaigns in bulk: This endpoint updates up to 1000 campaigns simultaneously within a specified namespace using a single API call. Use this to modify campaigns based on campaign type and field mask.
Enhancements (General Availability)
Campaign API - Placement-level minimum bid enhancements
Placement-level minimum bid changes have been introduced to the Retrieve minimum bid details for keywords and Retrieve minimum bid details for category APIs, enabling more accurate and structured bidding strategies across campaigns and individual placements.
Wallet API
Create a wallet: This endpoint has been enhanced to enforce role-based and permission-based restrictions, ensuring wallet creation complies with business rules and permissions.
Update a wallet: This endpoint has been improved to validate
retailerTeamIDand thesupplierCreditLimitManagementsetting, enabling retailers to update supplier wallets and manage credit limits more effectively.
Team and User API
List all teams: This endpoint now supports partial matching on the team name filter, replacing the previous exact match requirement. This improvement aligns filtering behavior with other list endpoints and provides enhanced search flexibility.
Bug Fixes (General Availability)
Credit limit update
The behavior of the Update a wallet API has been improved to allow successful credit limit updates when the correct namespace (citrus-namespace:pre-ww-sandbox) is included in the request. This resolves permission-related errors seen earlier, even when both the supplier team and the primary retailer had access.
Note: This bug is fixed as part of the update a wallet enhancement.
August 6, 2025
New Features (General Availability)
Partner APIs
The following APIs have been added:
Bulk campaign approval
Update campaign approval state: This endpoint allows you to approve or reject multiple campaigns in bulk within a specified namespace and assign them to a team. It efficiently updates campaign statuses and team associations for large batches. Campaign approval may take longer due to GCS rate-limiting during backend processing.
Retrieve bulk operation status: This endpoint serves as a common status API for all bulk operations. It allows users to retrieve the status and details of any bulk campaign operation request using the bulk operation ID.
Enhancements (General Availability)
Banner campaign API
The Create and Update Banner Campaign endpoints have been enhanced to include field-level validations for the bannerConfig object. These validations ensure compliance with content standards defined by each retailer, improving data integrity and consistency across banner submissions.
This enhancement helps ensure that banner content adheres to retailer guidelines, reducing errors and improving campaign quality.
Bug Fixes (General Availability)
Improved pagination
The behavior of the nextPageToken across several List API endpoints has been improved to ensure consistent and accurate pagination. The following changes have been implemented:
nextPageTokenis now only returned when additional data is available.Final pages no longer include a
nextPageToken.When a
pageTokenis used and no further records exist, the correcttotalCountis returned.
July 9, 2025
New Features (General Availability)
Partner APIs
The following API has been added:
Retrieve minimum bid details for category: This endpoint allows you to retrieve individual minimum bid details and the overall campaign minimum bid for Category placement type campaigns.
Enhancements (General Availability)
Retrieve user details API
We have enhanced the Retrieve User Details API to support filtering by User ID. You can now retrieve user information such as first name, last name, and email address by simply providing the User ID.
Retrieve campaign history API
We have enhanced the Retrieve Campaign History API by adding two new filters: fromDate and toDate. You can now specify a start and end timestamp to retrieve campaign history. For example, if you set fromDate to July 8, 2024, and toDate to July 8, 2025, the API will retrieve campaign history from July 8, 2024, to July 8, 2025.
Fixed Issues (General Availability)
Upload a campaign file API
The supported files types for banner, banner X, and content standard display logo file types is updated. Here are the supported file types:
Banner file types: The API now supports PNG, JPEG, and JPG formats.
Banner X file types: The API now supports PNG, JPEG, JPG, SVG, and GIF formats.
Content standard display logo file types: The API now supports JPEG, JPG, and PNG formats.
For more information, see Upload a campaign file.
June 25, 2025
New Features (General Availability)
Partner APIs
The following APIs have been added:
Retrieve minimum bid details for keywords: This endpoint allows you to retrieve individual minimum bid details and the overall campaign minimum bid for a specified array of keywords in Search and Category & Search placement type campaigns. You can specify up to 1000 search keywords.
Retrieve campaign history: This endpoint allows you to retrieve a campaign's history using its campaign ID.
Enhancements (General Availability)
Update a team API
You can now update a team's logo ID using the update a team API. For more information, see Update a team API.
Retrieve list of all campaign types API
You can now filter campaigns using specified campaign IDs. For more information, see Retrieve list of all campaign types API.
June 11, 2025
New Features (General Availability)
Partner APIs
The following APIs have been added:
Update current user detail: This endpoint allows you to modify the details of the user currently logged into the Epsilon Retail Media platform.
Modify user permission: This endpoint allows you to update a user's permissions based on the provided user ID and team ID.
Upload a file: This endpoint allows you to upload logo for user profiles and teams.
Retrieve file URL: This endpoint retrieves the URL for a team or user logo using the specified file ID.
Enhancements (General Availability)
Retrieve campaign file URL API
The Retrieve campaign file URL API retrieves the URL of a campaign file using the specified file ID and file type. It has been enhanced to support both banner and banner X content standard PDF and display logo. This improvement allows partners to upload both asset types using the existing endpoint, streamlining the creative submission process. The following additional campaign file types have been added:
CAMPAIGN_FILE_TYPE_BANNER_X_CONTENT_STANDARD_DISPLAY_LOGOCAMPAIGN_FILE_TYPE_BANNER_X_CONTENT_STANDARD_PDF_FILECAMPAIGN_FILE_TYPE_BANNER_CONTENT_STANDARD_DISPLAY_LOGOCAMPAIGN_FILE_TYPE_BANNER_CONTENT_STANDARD_PDF_FILE
Wallet API
The List all wallets API has been enhanced to allow filtering by:
External ID: Enables tracking with custom identifiers such as purchase order numbers.
Wallet name: Allows filtering by specified wallet name.
March-May 2025 - Managed Rollout
New Feature (Managed Rollout)
Consistent UI reporting across timezones
We’re updating UI reporting to align with each retailer's specified timezone at the platform level. This ensures consistent reporting data for all users, regardless of browser timezone or location.
Key benefits
Timezone consistency: Viewing campaign reports now reflects the retailer's set timezone, offering a uniform experience across the platform.
Improved performance: Experience faster load times for UI reports.
Timezones are configured at the platform (namespace) level. This enhancement ensures a consistent reporting view for every user accessing the platform.
May 28, 2025
Video & Shoppable Banner X Ads (Beta)

Banner X has been enhanced with support for video ads, shoppable banners, and combined shoppable video banners, enabling richer onsite engagement through premium display formats. Advertisers can now bring display media to life with video, curate ordered product lists directly within banners, or combine both for a more engaging and commerce-driven experience.
These capabilities are built directly into the Banner X builder, with side-by-side editing and retailer preview always visible, requiring no new integrations for existing Banner X users. With support for multiple videos, a single campaign can now seamlessly appear across web, mobile, and app placements, improving reach, consistency, and performance.
Learn everything you need to know about Banner X creative, including Video & Shoppable Banner X in the article below:
Interested in integrating? View the developer documentation below:
Enhancements (General Availability)
Wallet API
The List all wallets API is now enhanced to support new sorting options:
Wallet Name { name }
Available Balance { availableBalance }
Sorting can be done in ascending or descending order, giving integration partners more flexibility in organizing wallet data.
Upload the creative asset API
The Upload creative asset API has been enhanced to support both banner and banner X content standard PDF and display logo. This enhancement allows partners to upload both asset types using the existing endpoint, streamlining the creative submission process.
The following additional campaign file types have been added:
CAMPAIGN_FILE_TYPE_BANNER_X_CONTENT_STANDARD_DISPLAY_LOGOCAMPAIGN_FILE_TYPE_BANNER_X_CONTENT_STANDARD_PDF_FILECAMPAIGN_FILE_TYPE_BANNER_CONTENT_STANDARD_DISPLAY_LOGOCAMPAIGN_FILE_TYPE_BANNER_CONTENT_STANDARD_PDF_FILE
May 14, 2025
New Features (General Availability)
Partner APIs
The following APIs have been added:
Retrieve user details: This endpoint fetches details of all users associated with a specified team ID.
Retrieve current user detail: This endpoint fetches detailed information about the user currently logged into the Epsilon Retail Media platform.
Enhancements (General Availability)
Wallet API
The List all wallets API has been enhanced to allow filtering by a specified wallet name.
Fixed Issues (General Availability)
Removed UUID validation from Retrieve File URL API
We've fixed a minor bug in the Retrieve File URL API by removing the UUID validation check. This change allows support for both old and new banner creative images that do not adhere to the UUID format.
April 30, 2025
New Features (General Availability)
Partner APIs
The following APIs have been added:
Remove a user: This endpoint lets a retailer, supplier, or admin remove a user from the team.
Lists all suggested search terms: List suggested search terms based on specified parameters like catalog ID, product code, etc.
Enhancements (General Availability)
Enhancements to the campaignFileType object
campaignFileType objectThe campaignFileType object in the Retrieve file URL is now enhanced to retrieve content standard PDFs and logos. This update allows our partners to easily access the latest copies of these files via our Partner API, eliminating the need to hardcode this information in the UI layer.
The following additional file types have been added:
CAMPAIGN_FILE_TYPE_BANNER_X_CONTENT_STANDARD_DISPLAY_LOGOCAMPAIGN_FILE_TYPE_BANNER_X_CONTENT_STANDARD_PDF_FILECAMPAIGN_FILE_TYPE_BANNER_CONTENT_STANDARD_DISPLAY_LOGOCAMPAIGN_FILE_TYPE_BANNER_CONTENT_STANDARD_PDF_FILE
Fixed Issues (General Availability)
Removal of approval object for banner and banner x endpoints
By default all the campaign approval state is defaulted to APPROVAL_STATE_PENDING. Hence, the approval object is removed from the bannerXCampaign and bannerCampaign object. For more information, see banner and banner X endpoints.
API update failure for banner and banner X campaigns without mask field
An error has been resolved where updates to banner and banner X campaigns via the API failed if the mask field was not included.
Error message:
Resolution: The update process for banner and banner X campaigns via the PATCH method now correctly processes updates even when the mask field is not included.
Enhanced error handling for joining a team with invitation token
Issue: Previously, if a user attempted to join a team using an already used invitation token, the API provided a 200 OK response instead of a valid error message.
Solution: The error handling has been updated to provide a 400 Bad Request response with an error message: User already a member of the team.
April 16, 2025
New Features (General Availability)
Partner APIs
The following APIs have been added:
Join a team with invitation token: Allows users to join a team using a valid, unexpired invitation token.
Invite a user to the team: Sends an invitation to a user to join a specified team.
Enhancements (General Availability)
Lists all teams API
The Lists all teams API has been enhanced to support filtering by seller ID. You can now filter the team list using the seller ID.
Fixed Issues (General Availability)
Upload the creative asset API
Fixed an issue with the Upload Creative Asset API's file upload option. We have added a file body parameter to support the upload of creative assets.
Reporting system
Fixed an issue affecting both retailer and supplier product reports, where products were incorrectly displayed as deleted and incorrect product data retrieval occurred. This was addressed by ensuring proper handling of marketplace seller ID and product seller ID associations.
Campaign editing in Citrus client
Resolved an issue in the Citrus client where the Scheduled start date for Always On campaigns was incorrectly reset to today's date upon loading the Campaign Setting stage. The original date set is now retained and displayed correctly.
April 2, 2025
New Features (General Availability)
Partner APIs
The following APIs are added:
Fixed Issues (General Availability)
Update a wallet API
The name is now an optional parameter in the update a wallet API. Only id is a mandatory field for this API.
Create a banner API
The create a banner API is updated to include an example for the slotConfiguration field.
March 19, 2025
New Features (General Availability)
Partner APIs
The following APIs are added:
Enhancements (General Availability)
Partner APIs
The following Team APIs are updated for the Digital Services Act (DSA) support:
Bug Fixes (General Availability)
Banner X APIs
We have updated the Create a Banner X Campaign bannerXConfig object requirements. The following fields are no longer mandatory, enhancing the flexibility of API interactions:
background_image_idsecondary_background_image_idhero_image_idsecondary_hero_image_id
March 10, 2025
New Features
Partner APIs (General availability)
The following APIs are added:
Support for Digital Services Act (Beta release)
This feature is currently in beta and may be subject to changes. It is available only in specific environments. To confirm its availability for your integrated environments, please contact your Integration Project Manager or Client Integration Engineer.
Epsilon Retail Media supports the European Union (EU) Digital Services Act (DSA) to enhance online transparency and safety. The DSA establishes a unified set of rules across the EU, targeting the regulation of online content, transparent advertising, and disinformation.
For more information, see Digital Service Act.
Additional language support for close exact match (Beta release)
This feature is currently in beta and may be subject to changes. To enable close exact match for your catalog(s), please contact your Customer Integration Engineering (CIE) team.
Close exact match now supports multiple languages for sponsored product ads, expanding beyond English. For catalogs where close exact match is enabled, you can select one language per catalog from the following list:
Arabic
Armenian
Basque
Catalan
Danish
Dutch
English
Finnish
French
German
Greek
Hindi
Hungarian
Indonesian
Irish
Italian
Lithuanian
Nepali
Norwegian
Portuguese
Romanian
Russian
Serbian
Spanish
Swedish
Tamil
Turkish
Yiddish
Enhancements: General Availability
The following APIs are enhanced to display the value of currentBalance, availableBalance, and cappedAvailableBalance:
February 19, 2025
New Feature: General Availability
Partner APIs
The following banner campaigns, banner X campaigns, and creative assets APIs are added:
Banner
Banner X
Creative assets
Retrieve campaigns
Content standard
Enhancement: General Availability
Campaign search term length validation
We've introduced a validation rule that limits campaign search terms to a maximum of 150 characters.
Existing campaigns will continue to serve, but you'll need to update them to align with the new rule before applying any changes.
Fixed Issues: General Availability
Korean translation correction on product selection page
The translation on the product selection page for Korean users has been corrected. When you create a campaign, the interface now displays 'Select product to advertise' instead of 'enter search term'.
Coming Soon
We are excited to announce that several new APIs are currently under development and will be available in the upcoming releases.
Update banner
Update banner X
List content standard APIs
Update wallet
January 21, 2025
New Feature: General Availability
New language support in Epsilon Retail Media UI
The Epsilon Retail Media UI now supports the following additional languages:
Czech
Slovak
Hungarian
To view the supported languages, do the following:
Log in to Epsilon Retail Media account.
Click the Globe icon menu, and select your preferred language from the dropdown.
The language picker feature is enabled at the platform level. If it's not visible, please contact your Epsilon Retail Media representative to enable it.

Fixed Issues: General Availability
Date and time formatting errors in reports
When the date range was set to less than a week, times were incorrectly formatted with a 'T' (e.g., 2024-08-12T23.00) in both the UI and CSV exports.

The format now does not have the T present (e.g., 2024-08-12 23.00).

November 21, 2024
New Feature: General Availability
Enhanced Integration Standards for Accurate Sales Attribution
The below features are enabled by default, depending on your retailer's integration.
We are excited to introduce new standard integration process for Epsilon Retail Media, designed to enhance the accuracy and efficiency of sales attribution for retailers.
Key Integration Components
Session ID and Customer ID: These identifiers are now mandatory for the integration process, facilitating precise tracking and attribution. While this requirement is not yet enforced, it will become obligatory in future updates.
DTM Cookie ID: Providing the first-party cookie ID (dtmCookieId), though optional, enhances in-store data attribution by offering valuable insights into consumer behavior. Inclusion of the first-party cookie enables detailed attribution, with insights becoming available when the FPC token is submitted.
For more details on the standard ad integration workflow for retailers, see Standard Integration.
Request Example
Token Collection Enhancements
Retailers can now submit session ID, customer ID, and DTM token in dedicated fields. This capability supports both site-tagged and non-site-tagged environments, enabling accurate attribution of online and in-store sales.
Improved Attribution Capabilities
The enhanced system supports real-time attribution using the mandatory session ID and customer ID, with the optional inclusion of the DTM token. Expanded attribution capabilities now capture conversions that occur both before and after a user logs in, as well as across multiple devices.
Integration with First-Party Cookies
Our system seamlessly integrates with retailers' first-party cookies, with dedicated fields for capturing session ID, customer ID, and DTM token. For more information on integrating your onsite activities with Epsilon’s First Party Cookie, see Integrate First Party Cookie.
Multi-order attribution
Our system can now attribute a single ad purchase across multiple customer orders, showing the true return on advertising spend for advertisers. As customers submit concurrent orders for products that have been advertised, our system automatically attributes them to the most recent relevant ad event.
This capability has been temporarily reverted on selected integrations.
October 31, 2024
Improvement: General Availability
Enhanced API Validation for Realized Ad IDs
This feature is not enabled by default and is currently controlled by a feature toggle. It will be enforced on the endpoint by March 30th, 2025. If you wish to activate it prior to that date, please contact your CitrusAd representative.
We've updated our API to enhance realized ad ID validation, ensuring data integrity and preventing invalid impressions. Requests with improperly encoded or incorrectly prefixed ad IDs will be rejected with a 400 error and an explanatory message.
Example Error Message
"Invalid ad ID. Must be properly encoded and prefixed with 'display_', 'banner_', or 'shotgun_'."
Key Benefits
Faster Resolution: Immediate feedback for retailers reduces investigation times and enhances operational efficiency.
Increased Accuracy: Fewer invalid impressions lead to more accurate reporting and attribution.
For more information, see Reporting Impressions and Clicks.
Improvement: General Availability
Delete Products Using Seller ID from the Catalog
This feature is not enabled by default. To register your interest in this feature for your platform, please contact your CitrusAd representative or submit a support case so we can discuss the feature activation.
You can now delete products from your catalog by specifying a seller ID in the query parameter when the product includes it.
To delete a product with a seller ID, specify the seller ID as a query parameter:
For more information, see Syncing products via API.
New Feature: Coming Soon
Keyword Match Type Report
This feature is available through Advanced Reporting. Please contact your CitrusAd representative for more information.
Introducing the Keyword Match Type Report dashboard, which provides comprehensive insights into keyword and match type performance for advertising campaigns. This update helps advertisers refine strategies for improved performance and higher returns.

Key Capabilities Performance Metrics
Performance Metrics: Access key metrics like ROAS, CTR, clicks, impressions, conversions, ad spend, and sales revenue.
Visibility: Analyze search term and keyword visibility with exact and phrase match types.
Date Range Selector: Use a date picker for selecting custom date ranges.
Filters: Refine reports by product, namespace, team, campaign, keyword, and search term.
Data Aggregation: View 30 days of daily data aggregates.
User Impact
Review and optimize keyword performance.
Influence keyword selection with search term data.
Make informed decisions using real-time catalog data.
Add low-performing or irrelevant search terms as negative keywords.
Example Use Case
A supplier creating an ad campaign for ice cream can evaluate keyword performance. Terms like 'cream' and 'ice cream' may show strong metrics, while 'icecream' may perform poorly. In such a case, you can add 'icecream' as a negative keyword to enhance campaign efficiency.
October 17, 2024
Improvement: General Availability
Close Exact Match
This feature is currently controlled by a feature toggle and is not enabled by default. We will send you a notification with the scheduled activation date for your platform.
We're pleased to introduce the ability to manage Close Exact Match settings at the catalog level, enhancing flexibility for multi-retailer environments. This feature allows each retailer to independently enable or disable Close Exact Match for their specific catalog, providing tailored options to suit different preferences.
Improvement: General Availability
Placement-Specific Audience Targeting
This feature is not enabled by default. To register your interest in this feature for your platform, please contact your CitrusAd representative or submit a support case so we can discuss the feature activation.
We are introducing placement-specific audience targeting to enhance the effectiveness of audience targeting strategies. This feature allows retailers to activate audience targeting for individual placements, optimizing performance metrics such as click-through rates (CTR) and conversion rates. By tailoring targeting to the specific context and audience of each placement, retailers can achieve better results. For more information, refer to the Customer Data Sync for Audience Targeting.
54 - September 18, 2024
Fixed Issue
Error During Multi-Catalog Campaign Creation
Fixed an issue that occurred when creating a marketplace campaign with more than one catalog.
53 - August 20, 2024
Fixed Issues
Enhanced Validation for Campaign Purchase Order Field When Creating Campaigns
Issue: Previously, users bypassed the requirement for valid Purchase Order (PO) information in campaign creation by entering spaces in the mandatory Campaign Purchase Order field.

Resolution: We have enhanced the validation mechanism for the PO field. It no longer accepts spaces, ensuring that only valid and meaningful PO information is entered during campaign creation.
Improved Category Updates During Campaign Editing
Issue: When users edited campaigns that allowed category targeting, changes to the selected categories (such as adding or removing categories) did not appear in the review stage. This inconsistency caused confusion and hindered accurate campaign setup.
Resolution: We have fixed this issue to ensure that any modifications to category selections now appear accurately in the review stage. This enhancement provides a consistent and reliable experience when editing campaigns, ensuring that the selected categories are correctly reflected throughout the entire campaign creation and review process.
52 - August 5, 2024
New Features
Close Exact Match
This feature is currently controlled by a feature toggle and is not enabled by default. To register your interest in this feature for your platform, please contact your CitrusAd representative or submit a support case to discuss the feature activation.
Close Exact Match is an enhanced form of exact matching that allows a single exact keyword to encapsulate word variances. This allows advertisers to match their ads to search queries that are very close to their chosen keywords, but not necessarily exact matches.
Key Benefits
Increased Reach: Broadens the audience by including keyword variations, thereby showing ads to a slightly larger, yet relevant, audience.
Improved Efficiency: Optimizes the advertising budget by targeting users likely interested in the product or service, even if their search query is not an exact match.
Key Components
Close Exact Match works by focusing on the following elements:
Stemmings (Word Endings)
Close exact matching focuses on comparing the stems of words, ignoring different word endings. For example, running, runs → run.
Stop Words
Insignificant words in the context of a broader phrase, known as stop words, are ignored. Some of the common stop words are, and, the, for, of, an, a.
Word Ordering
The order of words in close exact matches are ignored, allowing variations in word sequence to be treated as matches. For example, run shoe and shoe run are comparable.
Examples of Comparable Exact Terms
The following sets of terms are all considered comparable. If one of these terms is used as a keyword and any of the other terms is used as a search term, there will be a match.
Keyword Set
Comparable Terms
run, running, runs
running shoes, run shoe, run shoes
men's deodorant
deodorant for men
apple, apples
apples
running shoes, run shoe
shoes for running
Scenarios
Here are some example scenarios demonstrating how close exact match works in different contexts.
Scenario 1: All things apple
Customer’s Search Term
Exact Keyword
Will it close exact match?
Reason
apple
apple
Y
Existing exact match
apples
apple
Y
Ignore plural
apple
apples
Y
Ignore plural
an apple
apple
Y
Ignore stop word
apple pie
apple
N
‘pie’ not matched
apple
apple pie
N
‘pie’ not matched
an apple pie
apple pies
Y
Ignore stop word and plural
Scenario 2: ‘And I will walk 500 Miles’
Customer’s Search Term
Exact Keyword
Will it close exact match?
Reason
run
run
Y
Existing exact match
running
run
Y
Ignore stemming
run
running
Y
Ignore stemming
runner
run
N
‘run’ not comparable to ‘runner’
for runners
runner
Y
Ignore stop word and plural
shoes for running
running shoes
Y
Ignore word ordering and stop word
red running shoes
shoes for running
N
'red not' matched
If you prefer not to match against certain words, you can use the negative exact match feature to exclude specific keywords from your campaign. For more information, see Phrase match negative search terms.
First Party Cookie-Based Attribution
This feature is not enabled by default. For some users, it may require changes to your integration with Epsilon Retail Media. To register your interest in this feature for your platform, please contact your CitrusAd representative or submit a support case to discuss the feature activation.
We're releasing a new capability for attribution based on the First Party Cookie component of the Epsilon site tags. This provides a more robust, stable token for attribution compared to personalized browser session tokens. Additionally, it lays the groundwork for future features powered by Core ID.
Enhancement
Attribution for Multiple Items in Same Order for Banner Ads
Enhancements have been made to improve product-level attribution for multiple products in the same order linked to Banner and Banner X ads.
Previous Behavior
Product-level attribution for multiple products in the same order was not supported for Banner and Banner X ads. The system attributed only the first item of an order, rather than all relevant items in the order. This led to under-measurement data on the effectiveness of banner ads. For example, if a customer purchased products B, C, and D in a single order influenced by a banner ad, only product B would be attributed to the ad, ignoring the influence on products C and D.
Current Behavior
We’ve improved our banner attribution to enable more than one product to be attributed to an order. Prior to this change, only one product purchase would be attributed to a banner ad when relevant orders were submitted. Now, all products purchased in an order that are linked to a banner ad are accurately attributed, providing advertisers with a more accurate representation of their Return on Ad Spend (ROAS). For example, if a banner ad has products A, B, C, and D linked to it, and an order includes purchases for products B, C, D, X, and Y, Epsilon Retail Media now attributes the purchases of B, C, and D to the banner ad.
51 - July 2024
Enhancements
Support for Multiple Languages on Email Notifications Tab
The feature is currently behind a feature flag and is not enabled by default. To turn on notifications feature, please contact your CitrusAd representative or submit a support ticket to the Ops team.
The Email Notifications tab is now available in all supported languages, including Spanish, French, Italian, and more. To view the Email Notifications tab in your preferred language, follow these steps:
Log in to Epsilon Retail Media and select your team.
Select Email Notifications.
Click the Globe icon menu, and select your preferred language from the drop-down.

The page is translated into the selected language. For example, if you select Italiano, the page will be translated into Italian.

Bug Fixes
Approval and rejection email notifications are not sent for campaigns in archive or draft states. For more information on how to set approval and rejection email notifications for campaigns, see Campaign Approval and Rejection.
50 - July 8, 2024
Wallet Balance Email Notifications for Suppliers and Retailers
The feature is currently behind a feature flag and is not enabled by default. To turn on notifications feature, please contact your CitrusAd representative or submit a support ticket to the Ops team.
This feature enables your team members, suppliers, and retailers to receive automated email alerts when their wallet balance reaches a specified threshold. By default, notifications are sent to the Billing User assigned to each team. With this feature, you can now add up to 10 email recipients, including team members or advertisers using Epsilon Retail Media UI. This helps prevent campaign disruptions by simplifying wallet balance monitoring and management.
Key Features
Threshold Notifications: The notifications are sent when the wallet balance falls below a specified amount. Default settings are determined at the retailer level, but this feature allows you to adjust the settings at the team level as well. Note that the threshold values defined at the team level are superseded by those defined at the retailer level.
Additional Email Recipients: Allows up to ten team members or advertisers to receive email alerts when their wallet balance reaches a specified threshold, in addition to the Billing User assigned to each team.
Master Feature Toggle: Allows retailers to enable or disable the notifications feature through the Admin Portal based on their business needs. If retailers disable the notification feature using the Admin Portal, it will also be disabled at the team level. Teams will not be able to set up email notifications from Epsilon's Retail Media UI.
Configurable Thresholds &Frequencies: Allows team members or advertisers to configure notification thresholds and frequencies.
Set the threshold value for the wallet balance, below which email alerts should be sent.
Specify the frequency of the alerts, indicating how often notifications should be triggered once the wallet balance reaches the specified value. You can set these values in days and/or hours.
Email Source: Emails are sent from [email protected].
Set Up Email Notifications for Wallet Balance
To configure email notifications for wallet balance alerts, perform the following steps:
Log in to Epsilon Retail Media and select your team.
Select Email Notifications.

In the Email Notifications, toggle the Receive low wallet balance notifications to On.
If the feature is disabled by your retailer using the Admin Portal, you will not be able to turn the toggle on. In this case, contact your retailer for assistance.
Enter the amount below which the email notification should be triggered. For example, 500$. By default, the value set by the retailer in the Admin Portal is displayed. You can update the value here as required.
Specify the notification frequency (optional):
Toggle the Reduce the frequency of low wallet balance notifications to On.
Specify the number of days and/or hours after which you want to receive the notification. By default, the value set by the retailer in the Admin Portal is displayed. You can set this between 0-29 days and/or 4-24 hours.
It is important to note that the scheduler for sending email notifications runs every four hours. Therefore, if you specify 0 days, the hours must be set to a minimum of 4. If you specify 1 day or more (between 1-29 days), you can set the hours to anything between 1-24 hours.

Click Save.
In the Notification Recipients, enter the email address of the recipient and then select the Low wallet balance checkbox.
Once you've added the email address and selected the checkbox, click Add. You can add up to ten email addresses. Your notification system is now set to alert to the specified email addresses when your wallet balance drops below the specified amount.

Edit Email Recipient Notifications
In the Notification Recipients list, select the email ID for which you want to edit the notification settings.
Click the Edit button.
Select or deselect the checkboxes for the notifications you want to add or remove. For example, you can choose to receive campaign approval notifications or low wallet balance notifications. You will only be able to select checkboxes for features that are enabled in the Email Notifications settings. For more information, see Set Up Email Notification for Wallet Balance.
Click Save.

For more information, see Low wallet Balance Notification.
Campaign Approval and Rejection Email Notifications for Suppliers and Retailers
The feature is currently behind a feature flag and is not enabled by default. To turn on notifications feature, please contact your CitrusAd representative or submit a support ticket to the Ops team.
This feature enables your team members, suppliers, and retailers to receive automated email alerts about campaigns awaiting review and approval. These notifications help retailers track and manage their campaigns, streamline the approval process, and enhance communication between retailers and suppliers.
Key Features
Email Notifications: Email notifications are sent for campaigns awaiting review and approval. You can add up to ten team members or advertisers to receive these alerts. These notifications can be sent in addition to the following:
Reviewer emails assigned to the retailer team in the Admin Console.
Team members added using the Team profile. For more information on how to add emails that will receive the notifications using the Team profile, see Enable Notifications.
Customizable Frequency: The frequency of notifications can be set by the retailer or TAM teams in the Admin Portal, based on business requirements.
Master Feature Toggle: Allows retailers to enable or disable the notifications feature through the Admin Portal based on their business needs. If retailers disable the notification feature using the Admin Portal, it will also be disabled at the team level. Teams will not be able to set up email notifications from Epsilon's Retail Media UI.
Email Source: Emails are sent from [email protected].

Teams currently using Campaign Approval and Rejection Notifications need to update email recipients in the new Notifications Tab. Existing email recipients will not be migrated automatically.
If manual updating isn't feasible, you can raise a ticket with the Ops team. The Ops team will provide API endpoints to upload recipients in bulk.
Set Up Email Notification for Campaign Approval and Rejection
To configure email notifications for campaign approval and rejection, perform the following steps:
Log in to Epsilon Retail Media and select your team.
Select Email Notifications.

In the Email Notifications, toggle the Receive campaign approval notifications to On. You will receive a notification each time a campaign is approved.
If the feature is disabled by your retailer using the Admin Portal, you will not be able to turn the toggle on. In this case, contact your retailer for assistance.
In the Email Notifications, toggle the Receive campaign rejection notifications to On. You will receive a notification each time a campaign is rejected.
If the feature is disabled by your retailer using the Admin Portal, you will not be able to turn the toggle on. In this case, contact your retailer for assistance.
Click Save.
In the Notification Recipients, enter the email address of the recipient and then select the Campaign approval and/or Campaign rejection checkbox.
Once you've added the email address and selected the required checkboxes, click Add. You can add up to ten email addresses.

49 - Mid June, 2024
Negative Search Term Support for Banner and Banner X Campaigns
We are progressively rolling this out after the release. If you want to activate this capability, please talk to your CitrusAd contact.
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. You can specify exact match or phrase match for your terms.
Exact match: This type of match means your ad won't appear when users search for your exact keywords, in the order you specified, without any extra words.
Phrase match: This indicates that your ad won't be displayed if the search term includes your keyword within the phrase, along with any unrelated keywords.
For example, if you are a grocery store that specializes in fresh, organic produce, you might use "canned" or "frozen" as negative search terms.
This way, when a customer searches for "canned peas" or "frozen vegetables," your ads won't appear, saving you from advertising to customers who are not interested in fresh produce.
On the other hand, your ads will appear to those who are searching for fresh, organic vegetables, ensuring that your marketing efforts target the right audience, thus improving efficiency and reducing costs.
For Banner and Banner X campaigns, suppliers have the ability to utilize a 'negative search term' section at the search stage. This allows you to explicitly define customer search queries you wish to exclude from your campaign. By doing so, you can effectively 'de-target' certain search terms, fine-tuning your campaign to reach the most relevant audience.

Reduce a Team's Wallet Balance
Primary Retailer team members can now decrease a team's wallet balance via Epsilon's Retail Media UI.
Prerequisites
The Top up balance feature must be enabled for your team.
Only primary retailer users with full access can debit wallets.
Instructions
Navigate to the Teams menu.
In the Retailer Team Manager, select the team for which you intend to decrease the wallet balance.
In the Team Wallets section, click Decrease balance.
In the Decrease wallet balance section, choose your desired wallet from the Select a wallet drop-down list and click Submit.

In the Enter amount to decrease wallet by field, input the amount you wish to deduct from the wallet. For instance, if your wallet contains $400 and you want to reduce it to $300, enter '100'.

After entering the desired amount, click Submit.
Enhancements
New Currency Support for Wallets and Catalogs
The following currencies are now supported in wallets and catalogs:
Currency
Currency Code
Serbian Dinar
RSD
Bosnia and Herzegovina Convertible Mark
BAM
Bulgarian Leva
BGN
Bug Fixes
In the report header titles, some characters in languages such as Korean, Traditional Chinese, and Japanese were getting truncated when exceeding column width. Now, these titles are displayed as an ellipsis when they exceed the column width and the full title is seen upon mouse hover.
48 - Mid May, 2024
Phrase Match Negative search terms for campaigns
We’re rolling this out progressively post-release, as well as some improvements planned in future releases. Please discuss this with your CitrusAd contact if you wish to activate this capability.
Phrase Match Negative Search Terms are a new way to enable you to select the search terms you do not want to target on your campaign.
Any time a customer searches for a phrase you choose to negatively target, your ads won't compete. This empowers you to broaden your opportunity with phrase match search terms, and then negatively target any terms you don't want to appear with, such as competing brands or irrelevant product types (colour, size, etc).
This gives greater flexibility to ensure you’re not serving on irrelevant searches by using phrase match negative search terms.

For platforms that enable the capability, when a retailer has phrase match enabled, there’s a new negative search term section on the search stage. The negatives section is where you can specify the exact customer searches you don’t want your campaign appearing for. This is key to winning with phrase match search terms as you can de-target search terms.

How to use this capability for success
You can utilise a combination of exact and phrase negative search terms to cater a campaign for greater reach, to negatively target search terms irrelevant to your product. An example in this case is our fashionable shoes product, we don't want to appear for any sport or football search terms. As such, our search term phrase is "shoe" and our negatives are "football", "sport", and "running"
Search term
Campaign will serve?
Red football shoes
No - negatively targeted phrase
Sport shoe
No - negatively targeted phrase
Womens shoes
Yes - phrase "shoe"
Running shoes
No - negatively targeted phrase
Football shoes
No - negatively targeted phrase
If you’d like to read more about how to best use phrase match and negatives, read our help article on phrase match here:
47 - Mid April, 2024
New Campaign Approval and Rejection Notifications for Advertisers
We’re rolling this out progressively post-release. Please discuss this with your CitrusAd contact if you wish to activate this capability. On a retailer-platform basis, we are able to enable each type of notification.
When your campaigns are approved or rejected, you can now configure your account to receive updates to keep you informed.
Campaign Rejection Emails

When your campaign has been rejected by your retailer, we'll now inform you by email of the rejection so you can promptly action any changes requested.
If a campaign has already been approved previously by your retailer, the previously approved version will remain serving. To stop it serving, the campaign needs to be paused.
Campaign Approval Emails
When your campaign is approved, you'll receive an email once it's approved, ensuring you're in the know without needing to log in.

How to enable these notifications?
If enabled on your retailer's platform, you'll receive these emails once you configure your email to receive them in your team's settings. You can navigate here by clicking the drop-down in the top right and clicking the "Team settings" in the menu.

Each team supports a maximum of ten emails that can be alerted per team. Ensure you click save once you have entered your desired emails.
This currently is not available on platforms that advertisers cannot edit their team information.
This is on a per-team basis, if you would like to receive notifications for multiple teams, ensure you configure each team with your email.
Bug fixes
Fixed an issue where users in certain platforms were unable to see product name in CSV exports
46 - Mid March, 2024
Negative search terms for phrase match campaigns
We’re rolling this out progressively post-release, as well as some improvements planned in future releases. Please discuss this with your CitrusAd contact if you wish to activate this capability.
Negative search terms are a new way to enable you to select the exact search terms you do not want to target on your campaign when using phrase match search terms.
This gives greater flexibility to use phrase match search terms to increase your campaign’s reach, while using negatives to ensure you’re not serving on irrelevant searches.

For platforms that enable the capability, when a retailer has phrase match enabled, there’s a new negative search term section on the search stage. The negatives section is where you can specify the exact customer searches you don’t want your campaign appearing for. This is key to winning with phrase match search terms as you can de-target search terms.

How to use this capability for success
You can utilise a combination of phrase and negative search terms to cater a campaign for greater reach, while negatively targeting search terms irrelevant to your product. An example would be an orange juice product, instead of targeting multiple search terms as exact match, you can phrase match “orange juice”, and negatively target searches irrelevant to the product, such as “pulp free orange juice” and “tropicana orange juice”
An example is below:
Example
Customer search
Campaign will serve?
1
orange juice
Yes
2
orange juices
Yes
3
tropicana orange juice
No - negatively targeted
4
fresh orange juice
Yes
5
orange
No - does not contain the phrase
If you’d like to read more about how to best use phrase match and negatives, read our help article on phrase match here:
New Pending Campaign Approval Notification for Retailers
We’re rolling this out progressively post-release. Please discuss this with your CitrusAd contact if you wish to activate this capability.
Forgetting to review campaigns? CitrusAd can remind you by email when there’s a backlog of pending campaigns for you to review. Further, we’ll remind you if the backlog remains.

By default this will be 50 campaigns, with a reminder email every 24 hours. Both the campaign limit and time limit are configurable at a platform level. When enabled, emails are sent to the reviewer email in the retailer team.

At launch, these emails are only available in English, and only supports a single email as the receiver of this notification. We plan to iterate on this in the future.
Enhancements
Implemented 4 new fields in fact_realised_ad in the reporting API for retailers with realised_ad table access: wallet_id, seller_id, cached_ad_id, is_fta
Bug fixes
Fixed an issue in the reporting API with fact_order_agg where changing currencies associated with a retailer could create issues
45 - February, 2024
Catalog ID has been added as an optional parameter in our order API
In the v1/orders API, you are now able to specify the catalog orders are being synced for. This is a new, optional property that will assist in multi-retailer implementations; allowing retailers to specify which retailer an order is for.
Bug fixes
Fixed an issue where the “Other” stage was disappearing when creating FTA campaigns on retailers that use fixed tenancy.
Fixed an issue where when duplicating banner x campaigns, and changing slots, images would be carried into the new banner slot.
Fixed an issue where certain reports weren't displaying data when filtering to specific wallets in the UI reporting
Fixed an issue where wallet balance notifications were being triggered for archived wallets after they had been archived.
44 - January - February, 2024

Third party tagging enhancements: Banner X, Adform, and new DoubleVerify image tag support
3rd party tracking tags have received an uplift in the CitrusAd platform! From release 44.0, we've added three new tags, as well as extended support for all supported tags to Banner X as well. To support these new capabilities, a retailer integration enhancement is required, prior to the UI being able to show the capability to brands.
Supported tags (as of R44)
Adform (impression and click)
DCM (impression and click)
Doubleverify
IAS
MOAT
Why is this important?
Measurement is key when validating the value of an advertiser's investment in retail media spend. Advertisers are further looking towards trusted third party solutions to validate the results provided by a retail media network are true. One example of this is DoubleVerify, their tags allow advertiser to verify their ads have actually been viewed by a customer in the window view port.
Banner X - now supporting tracking tags
Advertisers will now have the ability to add 3rd party tags on Banner X campaigns (retailer integration required). This aligns Banner X tagging with the existing banner capability.
As mentioned, retailer integration required (to parse the ad response and fire the relevant tags on their website)
Banner X response format has not changed as there already is a “tags” array in the banner x response.
Response can be seen here: https://developers.citrusad.com/integration/reference/requesting-banner-x-ads#third-party-tracking-tags
Once the capability is enabled, tags are added in the new section in the Banner X creator at the bottom of the page. You enter your tag and click “Add”. Only one tag of each type can be added to a banner.


Adform - new tracking tags (impression and click)
For both Banner and Banner X campaigns, Adform's click and impression tags can be added on platforms with 3rd party tagging enabled. Retailer integration required (to parse the ad response and fire the relevant tags on their website).
More info: third party tags in Adform: https://www.adformhelp.com/hc/en-us/articles/10664761073553-Third-Party-Tags-in-Adform
DoubleVerify - image tag support
DoubleVerify has an Image” tag that can be used as a secondary tracking pixel. We have added support for this type of tag as well as maintaining the original javascript based tag.
Now, when selecting tags, there are two options: DV - Javascript, and DV - Image Pixel.

Retailer integration required (to parse the ad response and fire the relevant tags on their website).
Retailers can now create fixed tenancy campaigns on platforms that show customer targeting to advertisers.
When creating fixed tenancy campaigns on environments that have audience targeting enabled, the audience targeting component is hidden once fixed tenancy is selected, allowing the campaign to be created. Previously, fixed tenancy campaigns could not be created at all on environments that have audience targeting enabled.
Enhancements
New currency in Citrus Client: Polish Zloty
Changes to the campaign manager to allow primary retailers to modify campaigns created by non-primary retailers. In rare multi-retailer use cases, this enabled the primary retailer to manage campaigns created by a sub-retailer.
Changes to support additional characters in Suggested Search Term files, these characters are required for localisation. Unique invalid characters: é, è, ç, û, ï, â, œ, â, ê, î, ô, ë, ä
Bug fixes
Fixed a rare issue on retailers using the Marketplace Seller ID feature where a brand could not see their product images in the UI.
Fixed an issue where you're unable to enter a value greater than 1000 on the search term max bid UI, impacting currencies where bids can be >1000 for a click.
Reverted the change to Banner X auctions, where only one banner would be served per team, per banner slot. In rare cases, this was reducing the number of ads served in low competition placements.
Fixed an issue on some platforms when dashboard and loading would take a very long time due to a high number of banner slots in use.
Fixed an issue in alternative text on static banners was not able to be disabled in customer environments.
Email wallet notifications: rolling out
Saving retailers and advertisers from tracking budget spend, and allowing the top-up process to begin before funds run out.
Advertisers are be alerted when a wallet's balance spends below $500 AUD to the team's billing user's email. An example is below:

Who receives the wallet balance notification?
Notifications are sent to the billing contact email on each advertiser team.
Interested to know more?
Read all about it, including FAQ's in our documentation:
43.1 - November 2023
• Reverted banner ad selection behaviour to mirror the state of banners in 41.0 release due to a regression across releases 42 and 43.
43 - October-November 2023
Customer feed file ingestion improvements
We've introduced a way for retailers to only synchronise delta changes for their customer feed files. As customer data rarely changes (at scale), this is a way for retailers to minimise the size of files that need to be generated
New idempotency token for partner API manage-funds endpoint
In our manage funds and add funds endpoint, we are introducing a new optional field where an external partner can send an (idempotency) token. The token can be sent in the payload when adding or deducting an amount.
The purpose is to prevent duplicate amounts when adding or deducting funds. If an already sent token is passed, then the request is not complete. This is added to the current API version as this is not a breaking change to the current manage funds endpoint.
Format is 227 character maximum, UTF-8
An example JSON body is below:
Enhancements
Added Italian and Portuguese to Citrus Client
Bug fixes
Fixed an error on the fixed tenancy checking interface for retailers that synchronise category ID values with Citrus and use the filter mapping API to show the category name, we were showing the ID, leading to confusion by users and making troubleshooting challenging.
42 - September-October 2023
Bug fixes
Fixed an issue occurring where a login window would pop-up on platforms using our support messenger, prompting users to log-in again.
Fix for a rare issue when topping up on certain environments, where a top up would occur twice.
This fix should also address 502 errors seen on the manage-funds partner API endpoint.
Fix for rare cases where banner and banner x campaigns were not considering competition when there were a high volume of ads in competition. This should stop rare cases where advertisers pay the minimum for a high comp
etition position/placement due to no competition in the auction.
This has been reverted as of 43.1 and will be re-introduced in a future update
41.0 - August-September 2023
Enhancements
Improvements to the bids per search term interface to more clearly differentiate bids when viewing the advertiser review and campaign manager pages.

Bug fixes
Fix for an issue where optional team info is not being saved when creating a new team from the retailer team manager (such as business ID, Company Website, and more).
Fixed an issue where changing a campaign from total to daily spend would not remove the total spend value, causing campaigns to stop.
Re-implemented the warning when attempting to add a search term already applied to a campaign
40.0 - July-August 2023
Enhancements
Improvements to the retailer review page to remove visibility of a search term's bid, to reduce confusion when reviewing campaigns.
This is followed by a UI enhancement on the advertiser view to more clearly differentiate the search term and the bid.
Upload Via CSV has moved to an in-line selection. Previously, this was a button.

On the campaign report page, “min bid” has been changed to say “minimum bid” in the campaign report page when viewing search term data
Implemented a new campaign bid range when using the quick edit modal on search campaigns when search term bids are used.
Implemented automatic login for our support chat messenger service.
Bug fixes
Implemented Turkish language into the campaign platform, which was unintentionally removed in a previous release.
Fixed an edge case where it was possible to change catalogs when editing search term bids in the campaign report page.
Fixed a rare bug when using the campaign report page and editing search term bids, an error would show when an advertiser is bidding the search term minimum
When search term minimum bids are updated after a campaign is launched, the strategy stage automatically flags any search terms that no longer are bidding at the minimum
Fixed an issue where team profile images are not saved when suppliers upload images and the ability to edit other team information is disabled.
39.0 - June-July 2023
Bids per search term

An exciting way to make campaign management easier and improve optimisation ease. Instead of a single bid per campaign, we're introducing the ability to specify bids for each unique search term selected on a campaign.
This capability will be progressively activated post-release on a per-retailer basis prior to general availability. If you're a retailer that is keen to activate this, please let your business or technical contact know!
To optimise performance some teams are making multiple campaigns with a campaign level bid for specific groups of search terms. With our new capabilities it is easier to create new campaigns targeting more search terms, and easier to optimise once launched.
The imagery below illustrates an example use case where three campaigns could be created as a single campaign. The below is 3 campaigns that should be one campaign, but the reality can be 5-10x this caliber.

How it works

Once activated, when creating campaigns you will see the new search term breakdown in the Strategy stage. Here, you can see each search term, the minimum bid price, and the option to set each search term's bid.
When viewing the review page, the Strategy box states "Individual bids" and your bid range.

You can view the bids per search term in the Search Term section at the bottom of the page.

In this release, we are also planning to implement the ability to change a campaign's bids directly within the single campaign report page.
Optimising campaigns

You can optimise your search term bids directly in the campaign report page! You simply need to navigate to the search terms table in the campaign report page.
Click on Edit bids
Modify any search term bids you have configured
Click Save changes to update your campaign
This only applies to the single campaign report page. It can be accessed from the advertiser campaign manager, or advertiser campaign reporting.
Advanced reporting: retailer dashboards
Our new retailer dashboards are purpose built to give you a birds-eye view of their platform performance with three key dashboards.
We are currently finalising dashboard designs, ready for set up as part of 39.0's release.
Retailer summary
The retailer dashboard provides an overview of ad stats, ad requests, and weekly revenue. It is designed to show you how each supplier is performing, how they are tracking on revenue, and their general saturation with ad request data.
Fill rate analysis
The fill rate dashboard showcases the top 500 categories or search terms on a your site and your fill rate for the previous 7 days. Giving you the information you need to prioritise monetising your top spots.
Brand overview
A quick overview of supplier activity with a focus on which suppliers have seen the most change day-on-day and week-by-week.
Category minimum bid improvements
We've improved our category minimum bid capability with 3 key changes:
Updating minimum bids in-line with the categories targeted by the advertiser for campaigns with both category minimum bids and category targeting enabled.
Considering category minimum bids when generating ads
Allowing retailers to set category minimum bids below the catalog minimum bids.
Please note: this capability applies only to category targeted placements. This is not currently available for category cross-sell placements.
Enhancements
Pagination (memoryToken): maximum number of pages (requests) in a token chain can be configured greater than the default of 5.
Banner and Banner X campaigns will use campaign limits, instead of the original default limits.
New currencies: CHF Swiss frank and DKK Danish krone
Partner API:There's a new property on campaigns called isCustom for search terms.
Bug fixes
Click or impression reports without an ad id will be rejected with a 400 error code stating "invalid request, ad id is required"
Cached clicks without a timestamp will be rejected with a 400 error code stating "bad timestamp: cannot parse empty string"
38.0 - May-June 2023
Enhancements
If no campaigns are active and valid, wallet daily budgets will not accumulate
This was originally introduced in 36.0 and rolled back.
There is a future enhancement to only accumulate budget if any campaigns are always on/within active period. That is not in this release.
Refactored the product-campaign API validator for V3 (This API is also used for the UI) to align with the teams and wallet API validators.
Urdu language added
Show full FTA cost in UI reports from the start of delivery, including ROAS calculations
Bug fixes
Fix for spend dropdown not working correctly in campaign reports
Fix for being unable to skip the search stage when you have already skipped the product stage
Fix for when editing banner campaigns in a quick edit, an error is shown stating “Max spend must be greater than max cost per impression”
Fix when duplicating a category campaign (or category cross-sell), the categories selected would still be on the campaign in the background, causing FTA booking issues.
Fix for needing to specify a location filter class even when not integrated by the retailer to make FTA campaigns serve. Now a location filter class should not need to be set as a workaround.
Fix for deleting a non-seller ID product deleting all variants of a product
Fix for UI stock indications being incorrect for marketplace variants of products.
Fix to process ad events for unexpected characters (example being "aã§aã")
Fix for products not displaying on organic categories, even when they are selected for category cross-sell placements that have not integrated a mapping feed
Fix for products not serving when store IDs or other filters are specified in the ad request for category cross-sell placements that have not integrated a mapping feed
37.2 - Early May
Fixes for marketplace sellerId issues:
Fix for incorrect product stock indications when viewing products with a seller ID
Fix for incorrectly showing product status as deleted when viewing products with the original variant deleted
Fix for when a non-seller ID variant of a product is deleted, all variants of the product were being deleted
Fix for cases where the incorrect seller ID for an advertiser was being served
37.1 - 17/04/23 - 20/04/23
Fix for an issue where products would appear as if there were not selected when searching in product selection, causing an error when submitting the campaign
Fix fixed tenancy pro-rata cost calculation in analytics datasets to align to the UI calculation
37.0 - 27/03/2023 - 30/03/2023
Single sign on: allowing retailers to define team access via IDP

Our Single Sign On capability has been improved to allow a retailer to specify the access level per-team for a particular user. The access level that is able to be configured is in alignment to our current capabilities of FULL and REPORT_VIEW. This allows a retailer to control the access to a unique team via their SAML IDP.
Interested in our single sign on? Review our developer documentation here.
Improve Product Restrictions
We've improved our user interface when users try selecting a product that cannot be selected.

Instead of a faded button, users now see an (x), with a reason why the product cannot be selected. A product may not be select-able for a variety of reasons such as it is an HFSS product, or CitrusAd cannot determine the categories associated to a product. This is detailed further in our support article available here.
Fixed tenancy reporting changes
From 37.0, campaigns that are fixed tenancy will use the full cost of the campaign for the cost and ROAS columns when viewing in-platform reporting. Previously, reporting used a pro-rata'd cost value, and calculated the ROAS from the cost value calculated. However, user feedback has shown this can be confusing, and the full value is more in-line with market expectations.
Bug fixes:
Fix for a rare subset of campaigns that were not stopping when paused
Fix for text that was not translated from English in the review page of the wizard
Fix for memoryToken's not being used in ad generation when requests are sent too soon from the memory token's generation.
36.2 - 20/03/2023
Fix for an issue when viewing product information in campaign and product reports where product information is unavailable.
Note: this issue only applied to platforms migrating to CitrusAd's Marketplace Seller ID feature.
36.1 - 02/03/2023
Updated Advanced Reports button to forward to new Advanced Reporting platform!
36.0 - 06/02/2023 - 21/02/2023
Marketplace Seller ID

CitrusAd are soon able to support more than one seller per product, users will be able to set a Seller ID per team within CitrusAd, and even have the option to lock down team settings to something only retailers can edit (toggled at a platform level).
CitrusAd's marketplace seller ID feature introduces the concept of a seller ID per team within the CitrusAd system. When serving ads to retailers, a new sellerId property is served in the ad response for retailers to render the correct seller's ads on their site. Then, when reporting orders to CitrusAd, orders also have an optional sellerId field.
In addition to a standard integration with CitrusAd, your integration will need to be enhanced with the below changes:
Implement a sellerId per product in the product catalog file or API
Parse ad response and render the correct seller’s offer when relevant
Report a sellerId per unique product when reporting orders to CitrusAd
Once your integration is enhanced, teams can have a Seller ID applied to them when editing a team as a retailer.

As part of this release, we're also introducing that retailers can edit team settings, directly from the Retailer Team Manager.

This means we're ready when you are to open up your digital shelf space to marketplace sellers.
Interested in integrating? You're welcome to view our integration documentation here:
Parent/Child Product Support

To help manage product inventory, some retailers use a system of parent and child products to group products together. A parent product represents a standard product (e.g. T-shirt) while child product represents the product variations of a parent product (e.g. T-shirt with the colour=green and size=large).
To support this, CitrusAd has introduced a new productCollection property per product. Advertisers are able to select these child variations of the parent products to effectively optimise and improve campaign performance.
Advertisers are also able to view reporting by child product. When viewing reporting, once a parent product is clicked, it expands to all relevant children products and their reporting. Only child products with data are shown.
Search Cross-sell Placements

Open up additional ad opportunities and revenue on your site with search cross-sell and category cross-sell placements.
By integrating search or category cross-sell placements, you're opening up more options for brands to target customers on your site.
Contact your Technical Account Manager to learn more about what you can do on your site with our placements.
Category Cross-sell Update: Target Any Category
We're updating our category cross-sell capability for retailers that elect not to synchronise category -> category mappings.
From 36.0 on-wards, users will be able to select from any category on the retailer's site for category cross-sell placements. By default, no categories will be selected, and users will be able to find any category on your site to be targeted.
All select-able categories are shown in the left panel, with no categories pre-selected when creating campaigns that target cross-sell categories.
This improves category cross-sell from feedback we've received. Users can target any categories.
Fixed Tenancy Campaigns Do Not Have Ad Rank & Impression Share Calculations
Following user feedback and confusion, fixed tenancy campaigns do not have ad rank and impression share reporting. When viewing reporting, fixed tenancy campaigns will display a - in the ad rank and impression share rows.
Partner API: Manage Funds Endpoint
We're introducing a new endpoint to manage wallet funds directly, allowing retailers to deduct funds from wallets! Retailers will simply need to specify an amount to deduct like below, and the wallet will be deducted.
This means API savvy retailers won't need to rely on CitrusAd support to deduct wallet funds!
This is currently an API only feature that is not built into the UI. Interested in learning more about our API capabilities? Contact your business representative or Technical Account Manager.
Banner X: Additional Fields Enhancements
The additional fields capability for Banner X integrations has been expanded to allow retailer to specify specific answers.

The examples above are simply thought starters, contact your Technical Account Manager or business
This enhancement makes the selection of additional fields easier for some of our users. It makes no changes to the current integration.
Read more about our initial feature release here.
Request Ads For Future Date Ranges
We're releasing a new feature that will support retailers wanting to query ads for future time periods. This can be utilised for retailers wanting to show correct banner pricing information for the customer's selected delivery slots.
Retailer's can specify a campaignFilterDate in the ad request to CitrusAd. CitrusAd will only look at campaigns that will be active on the date specified, or campaigns that are set to "Always On" in the CitrusAd system.
if this is something you're interested in, please take a look at our developer documentation here:
Other Enhancements
Introduced a new filter to reporting to filter by campaign budget type (fixed tenancy or auction)
In the retailer team, if Wildcard campaigns are not enabled, the campaigns tab will not display.
The search stage can now be skipped when creating draft campaigns
For campaigns that target products, when selecting different advertised products, targeted products will remain selected if still eligible
We've removed the note that setting no campaign spend limit was formerly the Always On spend type
Added Turkish currency support
Bug fixes:
When downloading to CSV in certain EU locales, the CSV formatting is updated to support accordingly
If no campaigns are active and valid, wallet daily budgets will not accumulate
Partner API: Fixed an issue where list teams was not returning all unique teams
Partner API: Updated error messages in teams APIs to improve consistency
Fixed a bug in select-platforms dashboard
Fixed a bug for Banner X campaigns when custom limits are set greater than the default.
Fixed reviewer emails receiving pending emails for draft campaigns
Security enhancements
Fixed a bug when reviewing data in platform on the 15th November
Fixed an issue where category cross-sell permissions weren't automatically applied to retailers
Fixed an issue where categories with commas in them were not being correctly recognised when checking fixed tenancy bookings
Fixed an issue where categories with commas in them were not being correctly recognised when creating cross-sell category campaigns
Fixed an issue when users were navigating the campaign manager where spend was incorrectly shown for another campaign
35.2 - 13/12/2022 - 15/12/2022
Fixed an issue where HFSS and blocked filter products are not select-able when creating product cross-sell campaigns.
35.0 - 27/10/2022 - 10/11/2022
Pagination Support

Opening up our ad diversity capability to more retailers. Improve customer experience when browsing multiple pages.
When requesting product ads, retailers will soon receive a "memoryToken" in the ad response. This same token can be sent back when requesting ads. When generating ads, CitrusAd reviews the token and removes any ads that are encoded in the token.
This ensures CitrusAd only sends back new ads to the retailer.
What this means for you as a retailer:
More variety of ads shown to customer when browsing by omitting previously seen ads of the same request
Can be used to chain requests together
Less "irrelevant" ads served to customers on subsequent pages
For existing retailers, this will require an integration enhancement for you to parse the memoryToken.
Documentation for this feature can be seen here:
You should know:
This capability is limited to product ads only. This is not available for Banner/Banner X at the time of writing this post.
When CitrusAd are out of eligible ads, there will be no more served. This may seem to advertisers that ads are not serving on your site.
Fixed Tenancy Enhancements - Broad Display & Improved Behaviour

Broad Display Fixed Tenancy
Fixed tenancy campaigns can now be booked on broad display placement types. A broad display placement it typically retailer home pages, checkout, and even sometimes PDP pages. If you're an existing customer with a Broad Display placement, we encourage you to discuss this new opportunity with your Technical Account Manager
Archived Campaigns No Longer Considered When Booking Campaigns
When creating a fixed tenancy campaign, CitrusAd will no longer consider any archived campaigns when checking if a campaign can be booked.
There is now an additional check when unarchiving a campaign if the booking is still available. In the rare event the booking is unavailable an additional error is displayed that the campaign cannot be un-archived.
Category Cross-sell API
Implemented a new API for retailers to specify category cross-sell mappings for new category cross-sell placements released in release 33.0.
Warning for low-ratio total spend campaigns
When a campaign is made with a total spend with a cost per click/impression that is less than 1/25 of the total spend, a warning is shown indicating that the ratio can impact the campaign's performance.

This warning was already implemented for campaigns with daily spend selected.
Other Enhancements
Enhancements:
Introduced multiple new currencies: IQD, VEF, CRC, DOP, HNL, NIO, PAB, PEN, PYG, UYU, BOB, CLP
Introduced Turkish language support
Introduced a new warning for any advertisers implementing a campaign total spend that is low compared to the maximum cost per click or impression
Introduced new service messenger, so our users can reach us sooner
Bug fixes:
Re-implemented an error when the active period question is not completed
Fixed an issue where Citrus Client reporting was failing to process high volume reports.
Fixed an issue when uploading a CSV of Korean search terms in the search stage
34.2 - 10/10/2022 - 12/10/2022
Fixed an issue where the
gtinproperty of banner and banner x responses was responding with a single product codeFixed an issue where multi catalog campaigns targeting categories were not reflected correctly in Review or Campaign Manager screens
Fixed an issue where product cross-sell targeted products could not be selected if they had a blocked filter configured
Implemented additional Korean character support
Fixed an issue related to exporting to CSV with Korean characters
Fixed an issue where typing Korean characters would result in UX issues
Fixed an issue when ingesting catalogs with Korean characters in image_url
34.1 - 28/09/2022
Internal optimisations
34.0 - 14/09/2022 - 20/09/2022
Carousel Support for Banner Ads

Our /generate endpoint has been enhanced to allow retailers to request more than one banner for a banner slot. This enhances our capability, opens up more integration opportunities, and brings the static banners in alignment with the Banner X capability.
Retailers can soon request a maxNumberOfAds per banner slot like below:
For more information, take a look at our documentation below:
Value add:
You can integrate effectively on carousel placements
Retailers can request more that one ad per banner slot
Better parity between Banner and Banner X
If you are using fixed tenancy, we advise to continue using the prior method. Currently, you are only able to book the first position as a fixed tenancy placement. The remainder will be filled by auction campaigns.
New and Improved Spend Selection for Auction Campaigns
We've redesigned how you set a spend limit on a campaign in the CitrusAd portal. Instead of selecting a "spend type", you will now have the option to set a campaign spend limit.

Depending on the platform, the spend limit options available to advertisers are daily or total spend, subject to platform configuration. Setting the toggle to 'Off' will not set a campaign spend limit, which is the same as previously selecting 'Always On'.
Fixed tenancy campaigns still see the spend type question.
If your platform previously only had 'Always On' and 'Total Spend', this is reflected in the new interface.
In the event your platform does not have spend limits enabled, it will display a message stating "Setting a campaign spend limit is currently unavailable."

We've also implements some warnings for campaigns at risk of overspend. If advertisers set a small daily or total spend limit compared to their maximum bid, there is an additional warning displayed that this selection can impact campaign performance.

Partner API: Teams Release and Wallets Update

What this means for you as a user:
Increase the ability for retailers to use our system without needing to log into CitrusAd's platform.
More information available to more users
The Teams API will allow integrators to:
Create new supplier teams teams with new team members
Retrieve a list of teams, with a list of the team member's user IDs
Update a team to invite new team members
The Wallets API has upgraded to allow integrators to:
Retailers can add funds to wallets via API
Campaigns will stay live when sent to review
When campaigns that have been previously approved have updates made, CitrusAd will continue to serve the old, previously approved campaign to the retailer's live site.
When campaigns are submitted for re-review after approval, the approved version of the campaign will continue to serve on the retailer’s site until the changes are approved.
If you have submitted an update for review, you’ll see the most recent version of the campaign, this includes if the campaign is rejected If you want a campaign to stop serving, it will need to be paused.
Keeping campaigns serving when changes are sent to review will ensure that ads are still serving, reduce retailer review pressure, and should improve ad saturation.
There is additional information available here:
Schedule the start of a campaign
When creating a campaign that is Always On instead of using an active period, you will now see a new step to specify a scheduled start date.

Automatic catalog selection
If you're creating a new campaign and select a placement with a single catalog, it will be automatically selected for you, saving you a click.
Other Enhancements
Enhancements:
Character limits on additional fields in the Banner X creator are surfaced and visible in the wizard
Arabic & Japanese languages are now supported in Citrus Client
Argentine Peso (ARS) is available in Citrus Client
Bug fixes:
Fixed an issue when creating category campaigns across multiple campaigns with different filters to identify categories
Fixed a bug when refreshing the retailer review page, you would see a 404 error
33.0 - 04/08/2022 - 22/08/2022
New Category & Location Targeting
You need to know
Both current category/location targeting stages will be migrated as of 33.0 to the new capability.
If you are cross-selling on a current category placement via the "Categories" stage, the campaigns will cease to serve in cross-sold categories.
Retailers that do not currently use category and/or location targeting can remain with these features disabled.
Upgrading our targeting to be clearer and more scalable.
Category Targeting

CitrusAd’s category targeting allows advertisers to select which categories they would like their campaigns to appear in, as defined in the product catalog. The platform pre-selects categories that products should appear in organically. Advertisers can pick and choose from these pre-selected categories.

We've updated the UI and built a better solution to the prior category targeting stages.
For categories that only some products will appear in, it is signaled by the amber traffic light.This is also stated when hovering over the traffic light. Products will serve only in relevant categories as defined by the retailer's catalog. Advertisers can select different types of products, and only the relevant products will serve. Advertisers cannot select categories that their products should not appear in. In this case the user has searched “Laundry”, with no products that appear there.
You should know
You cannot cross-sell categories in this new solution. Retailers will need to implement an additional ad request to fetch cross-sell categories (such as cross-selling banners onto different categories).
Advertisers can only select relevant categories to their products
You can select a variety of products and categories and CitrusAd will serve them in the correct organic categories
Category and location targeting works differently across fixed tenancy and auction campaigns (see below for details)
Location Targeting
In addition to category targeting, CitrusAd can also enable advertisers to target locations.
Both location and category targeting can be activated uniquely, and do not need to be activated together.

Locations work in the same way as categories. Products will serve only in relevant locations.If a new location is added to a product, it is automatically added to any campaigns that are active.

If a location is removed from a product in the retailer's catalog, it will stop being served for that location.
Differences between fixed tenancy & auction campaigns
Targeting works differently between Fixed Tenancy campaigns and Auction campaigns.
Fixed Tenancy
When a fixed tenancy campaign is booked, only the exact categories and locations (if enabled) selected in the UI will be served to.
Fixed tenancy agreements typically ensures exact placement on the retailer's site for certain categories, our product needs to adhere to this.
Fixed tenancy bookings will not check if a campaign's location is already booked.This is parity to the current behaviour.
Auction
For auction campaigns, any new category or location (where applicable) that is added to a selected product in the retailer's catalog is automatically applied to the campaign (such as event categories or similar).
An example of this would be a new store opening that the products are stocked in. Ads will automatically appear in the new store. The campaign will automatically expand into the new categories/locations.
Category Cross-sell Placements

Open up additional strategic inventory on your site through brand new category cross-sell placements.
What this means for you as a retailer:
Opens up incremental strategic revenue opportunities for new placements. Can be integrated on category, PDP, and even checkout placements (with some integration work)
Integration could be as simple as duplicating a category ad request and implementing additional logic (subject to each retailer)
If you're able to provide the relevant category -> category mappings, CitrusAd can auto approve product ad campaigns if you're on the default approval method
You should know:
This will be a new placement integration
A retailer cannot request organic category and new cross-sell category placements in a single ad request.
Auto-approval
If you're a retailer using CitrusAd's "default" approval method, and you provide a category mapping file, CitrusAd are able to ensure only relevant cross-sell campaigns are created, and product ads campaigns on category cross-sell placements will auto approve.
Partner API: Wallets
Empowering integrators to interact with our system without needing our UI.

Through the new wallet API, we further increase the ability for retailers to use our system without needing to log into CitrusAd's platform.
This is a great feature for our retailers looking to build their own campaign management interfaces, as well as third party booking platforms we are already partnered with and are working with file based workarounds.
Wallets API
The Wallets API will allow integrators to:
Create new wallets
Retrieve a list of wallets for a specific team
Retrieve a specific wallet
Update a wallet
HFSS Compliance: Filter Blocking Per Placement
Restricted placement of High Fat, Sugar and Salt (HFSS) products comes into effect 1 October 2022. CitrusAd needs to assist our retailers in being compliant with these rules.

This has also been built to support other retailer requirements such as if a retailer wants to block certain types of products appearing on certain placements.
What this means for you as a retailer:
Compliant with the HFSS requirements
Citrusad can stop certain types of products being advertised on certain placements (such as stop alcohol being advertised on home page)
Applicable outside of UK to block alcohol or tabacco on certain placements if required
Interested to read more? Take a look at our documentation here:
You are able to review the HFSS guidelines here:
Other Enhancements
Enhancements:
Improved performance when generating reports on retailers with a high volume of campaigns
Invitation emails will send from platform-notifications.citrusad.com
Thai & Traditional Chinese languages will be supported in Citrus Client
Bug fixes:
When removing a # colour code in the Banner X editor, you will no longer see a # appear
Fix for namespaces with large volumes of campaigns facing issues with inaccurate download data
Rolled Out: Single Sign On
CitrusAd has upgraded to a more secure single sign on experience!
You will now have a single login for all CitrusAd platforms. If you are a user of multiple platforms, you will no longer need to maintain multiple emails and passwords.
Included in this, is our new, secure login module.
Should you require more information, please review the below:
32.0 - 07/07-12/07/2022
Enhancements:
Implemented product cross sell limits into Citrus Client for total target by products as well as target by attributes selection
Please note that the 1000 product code limit when targeting by attributes is still applied.
Bug fixes:
Fixes for campaigns edited via the quick edit modal being sent to a pending state
Fix for campaigns edited via the quick edit modal facing campaign update issues
Fix for rare issue when activating category minimum bids for multiple catalogs
31.3 - 23/06/2022
Bug fixes:
Fix for campaign launch issues when creating product cross-sell campaigns
Fix for category fixed tenancy campaigns not being launch-able
Fix for fixed spend banners not generating ads
Fix for call to action text limits not allowing greater than 10 characters
Fixes for minor campaign minimum bid validation when creating campaigns via the partner API
31.2 - 17/06/2022
Bug fixes:
Fix for wallet monthly credit limits not re-setting
31.1 - 13/06/2022
Minor release to roll out optimisations to ad generation.
31.0 - 08/06/2022
Campaign Limits - Product Campaigns
CitrusAd is introducing campaign limits as we enhance our APIs. Limits are a key component of product maturity to ensure our long-term platform stability and scalability as we support our growing partnership.
The impact is limited only to product ads at the current stage, You are able to view the limits we are enforcing here: https://citrusad.atlassian.net/l/c/ns1nSjU1
To make this as easy as possible for you, grandfathered customers environments are already tuned to the current sizing of your campaigns to ensure these do not impact you or your advertisers.
Retailers will have been notified via email.
Please contact your business contact should you have any questions.
Changes to Campaign Daily Spend
The campaign daily spend type is changing.
Instead of a confusing rolling window, we will be introducing a fixed reset time per day configurable per GCP project. Unlike wallet daily budgets, campaign daily spend will not have a rollover mechanism.
If the daily spend limit is not met, it does not rollover into the next day.We might see some campaigns spend until a certain point in time in a day, and then not spend until the re-set.
It is important to note that the daily spend limit is the same limit entered by the advertiser. However, it will be far easier to notice when the limit is reached, making it evident how much additional could be spent per day.

Additional Banner X Fields

We are now able to configure additional text and color fields in the Banner X creator and response. Retailers can use these extra fields to serve extra text content such as secondary banner text, promo info, or terms and conditions information.
Retailers can use colours to define CTA colours or secondary text colour options.
Campaign Name Visibility

Campaign names are now visible when editing campaigns to remind users which campaigns are being edited.
CSV Upload Improvement

When uploading products via CSV, you will be able to review which products did not get processed via a View CSV Upload Report link.
The CSV output will display which products cannot be found.
Other Enhancements
Enhancements:
CTA text for Banner X campaigns will be configurable as mandatory/optional for retailers using Banner X that do not want to render a CTA with text.
Bug fixes:
Partner API bug fixes
Improvement to report filtering when filtering by placement
Additional fix for wallet daily budgets facing issues when setting a daily budget
Fixed a bug with the fixed tenancy conflict checker where the conflicting category or search term is not displayed
Korean localisation fixes
Addition of three currencies
Romanian Leu
Colombian Peso
Brazilian Real
30.0 - 16/05/2022
Single Sign On: Platforms Dashboard
Implemented a new platforms dashboard for any retailer that is integrated with shared infrastructure with CitrusAd. Improving the activation and password reset experience.
Users will see a new “Platforms” app in the single sign on dashboard in addition to any other retailer partners:

Once clicked, advertisers are forwarded to a CitrusAd dashboard, displaying additional retailers for selection like below.

Advertisers will be forwarded to the relevant retailer’s portal when they select it.
Advanced Reporting
This feature requires Single Sign On to be rolled out to the relevant retailer prior to activation.

The Advanced Reporting module is designed to provide easy, secure access to key reporting metrics for users of the CitrusAd platform.
The Supplier Dashboard (pictured above) is designed to provide Supplier Teams with visualisations for Wallet, CTR, Conversion, Sales, and ROAS data. It has filtering options for Campaign, Wallet and Category.

The Enhanced Attribution / Halo Dashboard (pictured above) is designed to provide an ROAS by Attribution visualisation, and a summary table showing attribution by campaign. Date in this screenshot is omitted in the mock.
This dashboard will be available upon request. This will be available for select supplier teams, but not retailer teams at launch. This is due to CitrusAd requiring additional catalog attributes from a retailer prior to enabling this feature.
These dashboards do not contribute to reporting quota limits.
Increased Rejection Message Size
Campaign rejection messages can now be up to 500 characters, enabling retailers to link to external content easier.

Other changes
Bug fixes:
Partner API: Fixed a bug where misaligned query values were mismatched, and an error was not being provided
Fixed an issue with Stripe impacting customers using credit cards to top up
Fixed an issue when setting a wallet daily budget on a wallet
29.1 - 27/04/2022
Implemented Korean language support
Any platform utilising language selection will now see Korean as an option for selection

Banner X Updates
Introduced the ability to set specific colours in the Banner X background colour selection
This enables a retailer to enforce approved colours as banner background colours. CitrusAd can enforce only selected colours are available for an advertiser to select.

Introduced the ability to increase the character limit for CTA text (previously capped at 10 characters)
We are now able to increase the character limit on a per-namespace level for the call to action text of banner x. Previously the maximum characters possible was 10. This enables a greater variety of call to actions.
Enhancements
Updated wallet daily budget terminology to "shared daily budget" when managing and reviewing campaigns
Updated wording in wallet daily budget tooltip
Introduced headings into banner x editor and updated the page layout for item clarity
Fixed a bug identified with wallet daily budgets where the first day's spend was greater than the daily budget
Fixed a misspelling of "allocation" in the campaign wizard
29.0 - 19/04/2022
When archiving a wallet, users are now presented with a warning that any active campaigns will continue to spend.

When setting a daily budget on a wallet that has a negative balance, users are informed their budget is exhausted.

If a wallet has negative funds, the available balance is also presented in red.
Changes
Enhancements
Users accessing incorrect pages are now forwarded to a 404 or team selection pages
Improvements to token size for partner API integrators
Added information box that tells users that are without a team and cannot create a team to contact their administrator
Consolidated styling of components that represent "chips" in tables
Bug fixes
Fixed pagination issues on a number of tables
Fixed bug where the number of search terms was not appearing in the campaign manager or review
Fixed an issue where long campaign, team, and wallet names were not rendering correctly when hovered over
Fixed a bug where uploading artwork to a team was not working
Fixed a bug where a question's help tip was positioned below the label rather than inline
28.1 - 05/04/2022
Changes
Bug fixes
Performance improvement hotfix for fixed tenancy availability checker.
28.0 - 15-25/03/2022
Brand Pages - Heading Text and Content Fields
Page Heading and Content
CitrusAd are implementing two new fields into our brand pages capability. Our brand pages can now serve page heading text and page content. The two fields will be automatically available, but are not mandatory to fill in.
CitrusAd are now capable of serving brand pages like the below:

This improves our current brand page offering with key retailers already implementing or implemented and increase usage.
Implementation:
There is a new endpoint available at /generate/brandpage. This new endpoint is used to fetch the two new fields. You are able to review the implementation documentation here.
Increased Product Ad Fetch Limit
To increase our brand pages offering, the limit of product ads that can be fetched can be increased to 45. This requires a configuration change that will need to be raised with your technical account manager.
Fetching 45 product ads in one single API call is highly likely to not be covered within your SLA, it is likely to be covered as "best effort".
Banner X Improvements
Rename Fields
Banner X fields can have their names in the platform overridden.

This opens the opportunity for more types of banners to be served via CitrusAd, and makes the advertiser experience clearer. This also enables fields to be used alternatively to their original purpose.
The response to the retailer remains as-is. This is only a change to labels within the platform.
Fields that can be changed are:
Heading Text
Banner Text
Primary Background Image
Secondary Background Image
Hero Image
Secondary Hero Image
Some retailers have image naming preferences that do not align to CitrusAd's terminology. This allows us to change the UI to be more flexible.
Mandatory Fields

The same Banner X fields can also be flagged as mandatory or non-mandatory. The fields that can be marked as mandatory or non-mandatory are:
Heading Text
Banner Text
Primary Background Image
Secondary Background Image
Hero Image
Secondary Hero Image
This allows a retailer to enforce that advertisers configure any of the above fields prior to the campaign being launched and ready for review.
Default banner text to black
By default, when creating a Banner X campaign, the banner text will be black.
Previously if an advertiser did not configure this, it could cause rendering errors on the retailer’s site.
Additional Currencies
The below currencies are now supported on wallets and catalogs.
Bahraini Dinar
BHD
Jordanian Dinar
JOD
Kuwait Dinar
KWD
Oman Rial
OMR
Qatari Riyal
QAR
Saudi Riyal
SAR
UAE Dirham
AED
Bangladeshi Taka
BDT
Burmese Kyat
MMK
Cambodian Riel
KHR
Czech Koruna
CZK
Egyptian Pound
EGP
Hungarian Forint
HUF
Indian Rupee
INR
Japanese Yen
JPY
Lao Kip
LAK
Norweigian Krone
NOK
Pakistani Rupee
PKR
South Korean Won
KRW
Swedish Krona
SEK
Thai Baht
THB
Changes
Bug fixes
Billing email will now correctly update after navigating to other pages
Retailers now cannot attempt to edit wildcard campaigns they did not create
Entering a decimal first will now work as intended when entering bid price
Emails with special characters (! # $ % & * + - / = ? ^ _ . { | }) will be supported
27.1 - 02/03/2022
Banner X: Configurable Limits

You are now able to customise the limit of characters in the Banner X banner text and heading text fields. This capability enables retailers to set limits per banner x slot for the maximum characters of these two fields. Combined with the External Previewer functionality, this is another step towards being able to serve any retailer's responsive banners within the capabilities of Banner X.
Changes
Bug Fixes
Introduced minimum bid validation into the partner API
Introduced auth flow improvements into the partner API for namespaces using Okta for identity management
Fixed a bug where orders using the adId integration method not being processed for adIds served prior to the 26.1 release.
27.0 - 16/02/2022
Wallet Daily Budget Feature
To help our advertisers pace budgets effectively, CitrusAd have introduced a way to set a daily budget at a per-wallet level. Instead of setting daily spend at multiple campaign level, the spend per day can be set on a per-wallet basis.

Wallet daily budgets can rollover excess or under spend to the next days.
Daily budgets reset at a single time per day, configurable per GCP Environment. In AU it will be set to reset at AEST Midnight.

Depending on each advertiser's unique wallet and campaign setup, we expect this feature to heavily reduce operational lift. For advertisers pacing campaigns with the campaign daily spend option, this will reduce manual re-pacing efforts:

By moving the management of daily spend to a wallet level, campaign pacing should be simpler for the advertiser to manage.

When the feature is enabled, advertisers can set or edit a daily budget per wallet from the Team Billing page. This is limited to advertisers; retailers cannot currently edit the wallet daily budget.
26.1 - 31/01/2022-02/02/2022
Ad Caching
Since our launch in 2017, CitrusAd's ads have worked with in a single use format. Each unique ad served by CitrusAd was only to be used once, and not served to another customer.
Retailers will be able to serve the same adId to multiple customers within an agreed ad-expiry window.
This enables CitrusAd to service retailers that do not have the architecture capable of requesting ads in real-time.
This requires configuration within CitrusAd, please contact your Technical Account Manager to enable this feature.
This feature requires sessionIds to be sent in the click and impression reports, as well as ad requests and order reports prior to activation.
Enforced Ad Expiry
As part of the Ad Caching feature, CitrusAd also enforcing ad expiry. This is no integration change to the retailer
There is already an expiry field in the CitrusAd payload, we will be enforcing this value. The default expiry is set to one hour, though it is configurable. Please contact your Technical Account Manager should you wish to confirm your environment's expiry value.
Partner API - Authentication Mechanism
To enable booking platforms to integrate the campaign management capability with CitrusAd, we are implementing authentication method where as a supplier, you will have a "User key" you will be able to implement into the booking platform to enable you to manage campaigns through external platforms.
If you would like to hear more about this capability, please contact your business contact to begin the process to access to our developer documentation.
Changes
Enhancements
Consolidated wording on the CSV upload components when a CSV is empty.
26.0 - 17/01/2022
Partner API - Launch, and Campaign API
In this release, we are releasing the first stage of our partner API capability. It enables our partners to get, create, and update product ad campaigns in the CitrusAd system via API. Therefore, negating the need to make changes directly in the platform.

Through this capabilities, our integrating retailer partners are implementing the ability to create campaigns via their own user interface, all whilst integrated directly with CitrusAd.
We are very excited for all of our partners and the capabilities this release unlocks. 26.0 is the first stage of a multi-stage initiative to enable our partners to integrate by API.
If you would like to hear more about this capability, please contact your business contact to begin the process to access to our developer documentation.
Filter Mapping
CitrusAd already support in-platform targeting by category and location (Subject to integration). This enables advertisers to target their campaigns to the categories and locations their products are eligible. 26.0 extends this capability to support retailers that do not synchronise human readable values as their filters.
What Problem Are We Solving?
Many retailers, especially the larger ones use category IDs instead of human readable values when synchronising data with CitrusAd.
This was impacting our UI, as we directly surfaced these values to users. Without referring to an external mapping file, it was impossible to understand what you are targeting.
Where Do Mappings Show in the Platform?
Mappings show everywhere in the UI that a filter was previously shown.
The “Targeting” stage
Strategy (If category minimum bids enabled)
Product selection (If category minimum bids enabled)
Review
Campaign manager
How to Map Filters?
Filters are mapped via API. You are able to get, create, update, and delete filter mappings.
Contact your Technical Account Manager or support.citrusad.com to be linked to the documentation.
Changes
Bug fixes
Fixed an issue where an error message was not displaying when an uploaded image exceeded the configurable max kb.
25.4 - 20/12/2021
Implemented a change to enable fixed tenancy campaigns to be created for the same search term and category for different placements, enabling retailers that seperate placements by channel to book fixed tenancy placements.
25.3 - 22/11/2021
Rollback of daylight savings changed introduced in 25.2
25.2 - 17/11/2021
In this release, we are bringing to our customers two changes that we are very excited about.
Changing a campaign's spend strategy will no longer send a campaign to pending

Whether you are updating your campaign's maximum bid, changing spend type, or optimising on the fly - campaigns that simply update their spend strategy will no longer go back into the approval state of pending - regardless of your retailer's approval settings.
This helps retailers on CitrusAd's "All Pending" approval setting optimise their approval process as well as maximise revenue. Only campaigns that need approvla will be in the approval queue, whilst strategy optimisations keep campaigns live and competing for top positions.
Location/category de-targeting support for banner and banner x ad types
Earlier last year, CitrusAd released a location and category de-targeting capability to Product Ads. We've extended this capability to banner and banner x ad types.

The functionality between all ad types is identical and allows advertisers to "de-target" locations and categories that are synchronised on their products as part of a retailer's integration.
Changes
Enhancements
UI improvements in the product selection, search, and product tag manager pages of the CitrusAd platform.
Bug fixes
Reporting will now display the correct data when transitioning between daylight saving time
25.0 - 27/10/2021
October's releases include a new way to handle clashing product codes on a retailer's site, as well as the ability to toggle a wallet's external ID to be on/off for retailers or suppliers.
Features changed / features added.
Improved handling of clashing product codes across catalogs in reporting
We have improved our handling of clashing product codes in our reporting tables to improve accuracy of product name and images.

On platforms with multiple retailer catalogs in one platform, some implementations have two products with the exact same product codes. In these events, we have improved the experience to ensure the correct name and image are surfaced to our users.
Toggle-able wallet external ID field

The wallet external ID can be used by retailers for their external billing reconciliation references, or any other business identifier they require. For many retailers, this field goes unused and is not required. They capture this information external to our system.
We have developed a way to turn this field on/off for suppliers and retailers individually to accommodate our customer use cases. We have some retailers that wish to control the external ID field, as well as let their suppliers edit their wallets.
For these retailers, we have the ability to toggle off the field for suppliers, whilst still surfacing the toggle with the retailer team.
24.0 - 22/09/2021
September’s releases include French language support, as well as introducing OAuth2.0 capabilities into our ad generation services.
Features changed / features added.
OAuth2.0 authorisation for ad generation

Enhancing our ad generation authorisation to additionally support OAuth2.0.
Retailers can use the new /oauth2/token to request a JWT token which will have a set expiry. Retailers will cycle authentication via these tokens instead of the previous static API key.
Documentation can be provided. A client ID and secret will need to be provided for each retailer. Current integrations are not impacted. Orders are still reported with the basic API key.
An example request would look like the below:
From that request, the retailer will receive a generated token, with a set expiry. This token can then be used in ad generation.
This improves our security on the ad generation endpoint to support our growing client base's needs.
French language support
Platforms with language selection enabled will see Français as an additional language to select under the globe icon.

This allows us to branch out further into the market in France, as well as expand our internationalisation capabilities.
Changes
Enhancements
The “Other information” stage has been refactored
Our customer push API has been asynchronised
Internationalisation enhancements to ensure our UI remains consistent as more languages are added
Language selection toggle is in vertical alignment with other selections
Bug fixes
Successful payment details updated message
When a Banner X link is incorrect, it displays the correct error message
23.0 - 25/08/2021
Features changed / features added.
Third-party tagging

Static banners now support DCM Click, DCM Impression, MOAT, and IAS viewability tagging in addition to the previously supported DoubleVerify.
Each unique banner slot can have its relevant tracking tags assigned. These are added in the slot configuration modal.

You are able to see if a banner has tracking tags assigned in the slot configuration table, as well as the Campaign Manager and Review pages by clicking the tags icon.

For third-party tagging to be functional, the retailer is required to do development work.
Cross-sell Bulk Product Upload
Expanding the existing CSV upload tool in our product selection to support placements with the target of Cross-sell.

Products must be eligible for cross-selling as defined by the retailer’s product catalog.
The modal is available for advertised as well as targetted product selection. If products do not meet these conditions, you are able to see it in a relevant error message:

This enhancement enables advertisers to create campaigns faster.
Changes
The retailer campaign report page is now fixed
Various internationalisation improvements
22.0 - 28/07/2021
Features changed / features added.
Spanish language support in the platform

If enabled, you’ll see the new globe logo in the dashboard. Click it to select your preferred language.
In the dashboard, there will be a globe icon that appears on a namespace that has language selection enabled. You’re able to currently select between English and Spanish.
This enables us to scale further into the Spanish market and is the first step towards further internationalisation of our product.
Changes
Placements for a different campaign type will not display in campaign reports
21.0 - 30/06/2021 - Reliant Robin
Features changed / features added.
Banner X Customisations

We’ve implemented greater flexibility around our banner x ad type. These help us further tailor our banner offerings for each of our retailer clients. We’re able to support more requirements, whilst having a flexible banner builder.
Using our new changes, retailers are no longer required to adhere to our image dimension requirements. This empowers us to be able to serve the retailer’s own responsive banners (provided they fit within the CitrusAd API response).
This enables retailers to use their own image sizing specifications instead of needing to develop to support CitrusAd’s banners.
Customisable call to action wording
Instead of using a free-text field in the CTA text field of the builder, we’re able to specify default values per slot on behalf of the retailer. This is useful for retailers that prefer to keep the language of banners on brand such as “Shop now”, “Learn more”, “Discover”.


This ensures banners are created with the correct language for the retailer and will reduce the review effort for retailers when checking banner configurations.
Customisable banner text colour defaults
Extending our banner x offering further, we’re also able to specify banner text colour options. For retailers that only wish to use their brand colours (or black) for banner text, we are now able to configure this with ease on a per banner slot basis.

Enhancing the branding options of our banner x builder both ensures banners remain on-brand to the retailer but also reduces the effort required to review a banner.
Retailer terms and conditions support
As we grow with more and more retailer partners, there are more and more that require custom terms and conditions for their own suppliers. We have a few retailers that require their advertisers to acknowledge their custom terms and conditions when signing up. We are now able to configure a link to a retailer’s terms and conditions on the signup page of the platform.

Changes
CitrusAd is now able to specify the tax % removed from credit card top-ups on a per retailer platform basis.
The budget column no longer has text in it when exporting to CSV
01/06/2021 - 21/06/2021 - Fiat Argenta
Features changed / features added.
Placements
A brand new system-wide change that improves the way all future integrations will be implemented. New integrations will now specify a “placement” in the ad request, superseding “pageType”. Each “placement” maps to a placement in the campaign wizard, replacing the campaign subtype question.

Instead of the CitrusAd default labels, you'll be able to name placements to your own specific terminology. This should assist advertisers in understanding your unique placements on your site.
In addition, placements are configured on a. per catalog basis, ensuring only relevant catalogs are displayed to your advertisers.
This will improve user experience on namespaces with more than one catalog integrated across different placements.
Technical Account Managers are now able to create additional placements on your site with no additional CitrusAd resources.
This is an exciting scalability improvement to our product
Integration documentation: Developer Documentation
Changes
Added CPC column to all retailer report tables
Added the ability for wallets to only be created in the currencies present in a namespace, defined by the visible catalogs
Added “Max” to cost per click and cost per impression fields in the strategy review box to improve clarity
Added 5 decimal place validation for fixed tenancy campaign costs
Bug Fixes
Fixed an issue with fixed tenancy checker not operating correctly on banner ads
Fixed an issue with the Next button not being clickable on the Strategy page
10-12/03/2021 - Austin 1800
External Banner X Previewer
Instead of CitrusAd owning the Banner X previewer, we’re enabling retailers to host their own!

The advertiser and retailer will see the previewer hosted by the retailer themselves, giving the retailer the power to tweak and change as desired. This gives CitrusAd more flexibility in the types of banners we support, empowering retailers to customise their banner in a more self-sufficient and flexible way.
This feature gives more power to retailers to customise banners served via CitrusAd. The more flexible we are, the better for our retailers.
View the integration documentation here: Developer Documentation
15-17/02/2021 - Coconut Rice Bear
The primary purpose of this release is to enable our review and campaign manager pages to utilise a new backend pagination service.
Backend Pagination - Review & Campaign Manager
We have introduced pagination to our Review and Campaign Manager pages. As our platform scales to accommodate a greater volume of resources backend pagination enables CitrusAd to serve content faster to our users, with minimal impact to UX; resources are returned to the user as they are needed, as opposed to all at once.
This was introduced to improve the user experience within the CitrusAd platform. Now interacting with these pages will only take a manner of seconds!
UI Changes
In parallel to our new pagination resource, we’ve re-worked the Review and Campaign Manager UI to become clearer to our users.
Filter By Active State
Instead of a filter in the filter bar, users are now able to filter their campaigns by Active, Paused, Draft, and Archived directly above the table. This change makes it clearer to our users the active state of the campaigns they are viewing.
Review:

Campaign Manager:

New Logo!
Our UI has been updated to reflect our new logo in the “Powered by” section, default favicon, as well as Citrus Admin pages:


13/01/2021 - Teal Tin
Features changed / Features added
Support New Zealand Dollar as a currency
CitrusAd now supports the New Zealand Dollar as a currency for wallets.

Support Canadian Dollar as a currency
CitrusAd now supports the Canadian Dollar as a currency for wallets.

Bring validation in Campaign template manager in line with other forms
Validation messages are now showing right under the related field, providing a consistent user experience.

Solved defects
Clicking 'Next' on 'Slot' section after duplicating Banner X campaign
When duplicating a Banner X, the user was incorrectly allowed to launch a campaign without selecting a slot.
This defect is now solved, making sure that a campaign is set up correctly.
16/12/2020 - Santy Claus
Purchase Order Number
We have released a solution for customers to manage purchase order numbers with CitrusAd. Purchase order numbers are typically issued by a supplier or brand when booking a campaign. Retailers use these purchase order when invoicing. Our solution helps to streamline the invoicing process by assuring that a purchase order is issued. If active, the supplier can input the purchase order number when creating a campaign. If you would like to know more about the purchase order field, please contact your account manager.



09/12/2020 - Jack Skellington
Russian Ruble (RUB) now available
The Russian Ruble is now available for selection as a currency when creating a Wallet

Average-Ad-Rank Metrics
We recently removed the “average ad position” metrics from user-facing reports. Since then, we received feedback from various clients, asking us to re-introduce the metrics as it was of value when analysing the opportunities to improve the performance of ads. To respond to those requests quickly, we are reintroducing the metrics with a new label “Average Ad Rank”. This makes it clear that these metrics are showing the average rank of an ad, sent to the retailer as the response to their ad-request. The actual position of an ad is controlled by the retailer themself and CitrusAd has no visibility on that. Therefore we can not report on the actual ad-position on the retailer's website.

Report values in hover text
Originally introduced in November, we re-introduce the ability for users to see the full values in reports, when hovering over the text. Retailers and brands have asked for this feature as it allows them to analyse the performance of ads without the need for running an export, which was the only way to see full values.
The UI indicates whether the full value is available with an asterisk.

Banner Text now allows 120 characters
Users will no longer receive the size must be between 0 and 110 error when launching a campaign where the Banner text is 110-120 characters in a Double Tile Banner X.
24/11/2020 - Lemon Zest
Brand Pages
Retailers can now create Brand Pages for Suppliers to use as their Call to Action URL in their ad campaigns.

Brand pages currently consist of a dedicated page with a full width Banner X and up to 15 Product Tiles. Retailers can specify the URL and time period for the URL to be live eg. the sale period of a supplier’s products.

Retailers also have the option of having the suppliers maintain their own creative on the Brand Page through the usual Campaign Draft workflow. The Brand Page can then go live once approved by the Retailer in the Campaign Review workflow
Brand page reporting can also be tracked separately in both supplier and retailer reporting
Banner Creator links fixed
Banner creator urls using old /sb/creator links will now be redirected to the new /banner-x/previewer link structure when executed.
11/11/2020 - Dusky Water
Campaign report icon always on
We received feedback that some supplier users don’t always realise that they have to hover the mouse over a campaign row to make the report link visible. With this release, the report icon is always displayed to the user.

Additional search and filter options for when reviewing campaigns
With the growth of campaigns created with CitrusAd, retailers started to struggle with managing the list of campaigns to review. To help, we implemented a set of new search options when reviewing campaigns.
We added a new filter called “Active state” to the review screen. A user can filter campaigns using the options “Active”, “Paused”, “Draft”, and “Archived”.
In addition, a user can also search by the campaign names as well as filtering by the campaign subtype.

Note: Retailers can only see draft campaigns that are supplier managed.
Warning message when leaving campaign wizard without saving
When a user is leaving the campaign wizard without saving, CitrusAd alerts the user that any changes will be lost. The warning will now only appear if changes have been applied.

Cancel a team member invitation
Retailers and Suppliers can now request the cancellation of a user invitation through service-desk. CitrusAd staff can then remove an invitation through internal systems.
Change heading of BannerX previewer
CitrusAd now offers a preview solution to help design a responsive banner (BannerX) in the right format, without the need of a CitrusAd user account. The heading of this previewer feature now reads “Banner X” instead of “Shotgun banner”, matching the terminology we use elsewhere in the CitrusAd UI.
Our reviewer is now accessible via under a new URL: "HTTPS://[namespace].citrusad.com/banner-x/previewer".
Removed “Average Position” in reports
The Average Position metric was referencing the order that CitrusAd returns products, but didn't reflect the actual position where the retailer displays the product. Due to a lack of value and continuing questions from customers, we decided to remove “Average Position” in reports with the plan of introducing a better and more accurate way to determine campaign positioning.
19/10/2020 - Delicate Paper
Product Feed Filter Blocking
We’ve implemented a way for retailers to specify filters that they would like to be ‘blocked’ when their catalog is being ingested. The blocked filters will not get ingested, but the product and its remaining filters will be ingested. A simple example of how this can work is as follows:
Blocked filters: Category:A, Category:B, Category:C
Provided Feed File: Product A Filters: Category:A, Category:D, Category:F Product B Filters: Category:A, Category:B, Category:H Product C Filters: Category:C, Category:O, Category:H Product D Filters: Category:D, Category:E, Category:F
Ingested Output Product A Filters: Category:D, Category:F Product B Filters: Category:H Product C Filters: Category:O, Category:H Product D Filters: Category:D, Category:E, Category:F
Products A, B, and C all have blocked filters removed from them, and are still ingested with their other filters. Product D does not have any blocked filters, and therefore is ingested with all filters in the file.
This enables retailers to “block” certain categories or placements without great effort from the technical teams on their part.
As this is implemented at the product feed, it is only available for retailers that sync their catalogs via file.
Editing Wallet Names
Users can now edit their wallet names in the Team Billing section of the CitrusAd client. If enabled on the namespace, users in supplier teams are able to click Edit and edit their selected wallet’s name.

In the retailer team manager, wallet names can be edited by clicking the pencil icon next to their desired wallet:

Catalog ID visible in the wizard
We’ve added each catalog’s ID into the campaign manager, review pages, and the ad wizard.


This should assist in integration simplicity and troubleshooting.
Wallet ID available in team billing
Users will now be able to see the WalletID of their wallets in the team billing area of the site. This can help with troubleshooting if there are any issues with wallets:

Improvements
Rejected archived campaigns are excluded from campaign warnings
Users will no longer see warnings for campaigns that have been rejected but are archived.
User position is maintained after approving/rejecting a campaign
Once a retailer user approves or rejects a campaign, they are taken back to the page that they were on in the review page instead of being taken back to the first review page.
Bugfixes
When automatically selecting a BannerX content standard the check circle was missing.
Fixing some 500 errors for product tag manager - in some edge cases, we were encountering server errors while interacting with the product tag manager feature.
13/10/2020 - Indigo Pineapple
Single Campaign Report Page
We’ve implemented a way to view reporting data for a single selected campaign. This is a very powerful feature enabling advertisers to review the performance on an individual campaign basis. The campaign report page is compatible with all campaign types.
This feature offers greater insights into a single campaign's performance. This opens up the opportunity for advertisers to view specific product and search term performance within the single campaign, and make powerful optimisations decisions from there!
To access the single campaign report, click the new icon visible in the Campaign Manager or Reports page:

When you hover over the icon, a tooltip will pop up stating "View report"

Depending on the campaign type, you will be able to see different tables for your campaign.
Product Ads

Product Ad campaigns can review data per product and campaign history. If the campaign subtype is a Category & Search or Search Only, search term performance can be reviewed.
Banner & Banner X

Banner and Banner X campaigns can review campaign history. If the campaign subtype is a Category & Search or Search Only, search term performance can be reviewed.
Campaign Budget Component

The campaign budget component can be seen on any campaign that has a Total Spend. The expected spend indicator can be viewed if the campaign has an active period.
This is useful to track if your campaign is spending at the expected pace. The budget component does not show if the campaign has the Always On spend type.
30/09/2020-07/10/2020 - Billowing Feather
Catalog Product Pairing
We’ve refactored the way product and catalog relationships are established within the CitrusAd platform. Instead of selected products appearing in all selected catalogs, users now have the power to select which products are chosen from each of the individually selected catalogs.
What difference does this make?
Previously, when selecting multiple catalogs, any selected products would be advertised across all selected catalogs. By implementing catalog product pairings, users are able to explicitly select which products will appear on each of their selected catalogs.
To accommodate this change, you will notice a few changes in your portal. In general, each campaign’s selected catalogs will be surfaced in each product selection table.
Single Catalog Namespaces
In namespaces with only one catalog, you will not notice many changes. The catalog’s name will now appear in your product selection and review tables.


Multi Catalog Namespaces Where Product Codes Can Be Grouped
In namespaces with multiple catalogs that have group-able product codes (aka product codes are consistent and shared among catalogs); you are able to now select products per selected catalog. When selecting products, you are able to select “Add all” or expand the row and select products to advertise per individual catalog.


When you select your products from each individual catalog, you will see a sub label in the master column that updates to show how many catalogs you have selected that product in.

In the summary row on the right, you’re also able to click and expand the row and view the selected catalogs.

When reviewing your campaign, there is a new grouped advertised product review box. You are able to click each row to expand and view each catalog product pairing.


By clicking each row, you’re able to view what catalogs are selected on each individual product.
Multi Catalog Namespaces Where Product Codes Cannot Be Grouped
In namespaces where products cannot be grouped across catalogs, each individual catalog product pairing is selected individually in the product selection table.

In the review table, you will see each catalog product pairing individually.

Additionally, these namespaces will temporarily not be able to view product based reporting, since products cannot be grouped and therefore a row for each product’s reporting cannot be aggregated.

Updated Balance Notifications
We’ve updated balance notifications to consider available balance. Teams will now see balance notifications relating to available balance instead of current balance.

In the campaign manager, you will see the below warnings based on your wallet’s balance:
$0 - Wallet out of available balance (red).
$100 or less - Wallet nearly out of available balance (red).
$750 to $100 - Wallet has low available balance (orange).
“No Active Period” Is Now “Always on”

We’ve renamed the active period selection to be more familiar to our users.
Minor Changes & Tweaks
Wildcard campaigns can now see selected catalogs in their Settings box
Fixed some bugs where team details would not show in the retailer team manager and reporting tables
Fixed a bug where wildcard states would not update in the UI when active state changes were made
22/09/2020 Retailer User Management
We’ve added a way for retailers to manage users directly from the retailer team manager. The new Team Users box displays all users in the selected supplier team and allows retailers to manage users, their permissions, and invitations.

This feature should speed up business automation and user management.
Managing Users
In the Users section, you are able to view, edit, and remove users. Each user can be additionally expanded to view their email and permissions within each team.

Editing a User’s Permissions
To edit a user, navigate to the selected team and expand the Users section. Once opened, you will be able to see all users in the selected team. Next to each user is an edit and remove icon.

Click the edit icon to launch the Edit permissions modal. From here you are able to edit your selected user’s permissions. Click Save to close the modal.

Removing a User
To remove a user, navigate to the selected team and expand the Users section. Next to each user is an edit and remove icon.

Click the remove icon to launch the Remove user modal. From here click Remove to confirm you wish to remove the user.
Viewing Invitations
To view pending invitations, navigate to and expand the Pending invitations section. Expand each user to view the permissions assigned to the invitation.

Beside each user, there is a copy icon. Click the icon to copy the invitation link for the selected email.
Sending a New Invitation
To send a new invitation, click the Send new invitation button.

The Invite new user modal is launched. From here, enter the invited user’s email and permissions. Once you are happy, click Send to send the new invitation.

Minor Changes & Tweaks
Banner slots that are too long for the table are now truncated to improve table readability
If there are no credit cards available for a team, the credit card selector is now disabled with a new tooltip.
Updated tables in the Team Billing page to align to up to date styling
Drafts and Archived campaigns now have different status colours. Drafts are now displayed in a lighter grey than archived campaigns
Fixed a small bug where a retailer could not see a supplier’s team details
Fixed a small bug where banner slots would always appear configured
Changed the Banner X review box to state content standard name and not content standard id
Tweaked the campaign active state toggle to ensure the campaign state does not persist
Added selected catalogs into the Settings review box for Wildcard campaigns
Changed the loading behaviour on review pages so that the user is not stopped by the global loader
Fixed a bug wherein wildcard campaigns would show the incorrect state when archived.
08/07/2020 - Campaign Duplication
We’ve implemented a way for users to be able to duplicate campaigns into new campaigns.

This feature enables users to navigate to their selected campaign and select to “Duplicate” in the campaign status box. Once clicked, the user will be forwarded to a pre-filled version of the wizard. The user is then able to make the necessary changes and then launch their copied campaign live.

This feature reduces the amount of time it takes to create a multiple campaign strategy, especially for users advertising with Banner X across multiple category slots.
Contact CitrusAd to enable campaign duplication on your namespace.
Minor Changes & Tweaks
Changed a behaviour wherein upon navigating to a new team, the date range filter is reset to the default reporting period
17/06/2020 - Campaign Manager & Review Filtering
We’ve added a new filter to the Campaign Manager and Review pages. In the Campaign Manager, users can filter by campaign name. In the Review page, users can filter by team name.

27/05/2020 - Drafts & Deleted Product Status
Drafts
We’ve implemented a new platform-wide feature, drafts!


Drafts allow any user to save a campaign before it goes live. This allows users that are not yet ready to configure product selection or banner creative, to set up some settings and strategies, and save their campaign as a draft.

Users can currently skip product selection, and banner creative configuration steps. Drafts require a user to finish configuring their campaign prior to going live. Drafts cannot be reviewed by a retailer.
The most powerful use case enabled by campaign drafts is the empowering ability for a retailer to set up fixed tenancy or fixed spend campaigns and leave the artwork configuration up to the advertiser.
Retailers can set up important campaign settings such as campaign position and cost, save the campaign as a draft, and leave the hard work to the advertiser. This removes the bottleneck many retailers face with continual back and forth with advertisers discussing creative guidelines, changes, and requests.
Retailers maintain the same control of being able to review, approve, or reject campaigns, without any impact to site UX or being anchored down in artwork communications.
Drafts allow any user to save their campaign progress and return at a later date.
Drafts additionally allow retailers to “handoff” artwork generation to advertisers, saving large chunks of time allocated to the discussion, rejection, and holding of advertiser artwork when operating on a fixed tenancy model.
Improved Settings Wizard Stage
We’ve changed the way the Settings page acts to make campaign creation faster and easier. Instead of showing new stages as they are configured by the user, we have refactored the stage to show all questions on the page. This speeds up the user experience and allows the user to quickly generate campaigns.
implemented the first steps towards a workflow wherein retailers can create and manage campaigns from within the retailer team.
Faster user experience is better user experience.
Deleted Status For Campaigns & Products

We’ve implemented a way to surface more product availability to our users. In the past, users could see, “in stock” and “out of stock”. This has now been extended to include “In stock in some catalogs” and “Product deleted in all catalogs”.
Communicating product availability more effectively informs the user of additional factors that influence campaign performance.

If a campaign has every product deleted, this is now communicated to the user, making it far easier to understand why a campaign is not showing.

Informing users that products have been deleted allows them to follow up with their retailer if there is anything incorrect in the catalog.
New Mobile Warning Wording

We’ve changed the wording on our mobile device warning. It now omits and use of the word “Citrus”, enabling us to white label our product further.
A more white labelled product, the better we are for our white label partners.
New Sub Label Below Reporting

We’ve added a sub-label below our reporting tables to communicate that reporting can take up to 30 minutes on date ranges that include the current day. This helps manage expectations with integrators and advertisers.
If you are viewing a date range that does not include the current day, you will not see the sub label.
Informing integrators and advertisers that reporting is not instant is beneficial to set expectations with our users.
Catalog Differentiation in Custom Category Selection

We’ve implemented a way to differentiate categories by catalog in the review boxes for namespaces using custom category targeting. This helps to display exactly what catalogs and categories (filters) are being targeted by the retailer. This will make it easier for both retailers and advertisers to understand exactly where their campaigns will be appearing.
Making it easier to understand custom category selection is beneficial to the user and troubleshooting.
Updated CSV Export Naming

We’ve updated the naming of our csv exports to be more in line with the specific request of the user. Users can now see from the export’s name if is it formatted, and what ad type the export is for.
Bug Fixes
Fixed a bug with the date picker in the settings stage that would show a date prior when returning to the settings stage of the wizard.
Fixed a bug wherein certain retailer teams could quick edit campaigns from the retailer team.
Fixed a bug where certain retailers could not create wildcard campaigns.
Fixed a bug where wallets would top up, but it was not communicated to the user.
Fixed a bug where namespaces with All Catalogs disabled were able to see All Catalogs when creating a new session.
Fixed a bug with history tables on date ranges below 7 days.
1/04/2020 - Archived Campaigns, & Configurable Banner X CTA Link
Archived Campaigns & Campaign Manager Adjustments
We’ve added the capability to archive campaigns. An archived campaign is filtered out from the default view of the campaign manager. Users can archive old or deprecated campaigns to reduce campaign manager bloat.

A campaign can be archived by clicking each campaign’s active state toggle and selecting “archived”. An archived campaign cannot be active, and therefore will not serve ads.

Once a campaign is archived, it can be found by navigating to the new Active State dropdown filter. By default, the campaign manager will show campaigns that are active and paused. Users will need to click the Archived option. The campaign manager will then show all campaigns that are archived for the applicable ad type.

To edit a campaign that is archived, it will need to be toggled back to Active or Paused.
Archiving campaigns allows users to hide campaigns that are no longer in use, and reduce clutter
Configurable Banner X CTA Link Character Limit

We’ve modified our system to allow retailers with CTA links over 200 characters to be served. The Banner X CTA Character limit can be raised to up to 750 characters.
A configurable limit allows us to serve more retailers and their needs.
Filters on Users & Invitations tables
We’ve added filters on the users and invitations tables, so you can quickly navigate to your selected user! Users are able to filter by name or email

Faster filtering makes a more efficient experience
Wallet Balances in the Campaign Editor

You are now able to view your wallet balances from within the campaign editor when creating or editing campaigns.
Displaying balances during campaign creation and editing directly informs users of their wallet balances at the point of campaign selection.
Minor Changes & Tweaks
Strategy Page Refactor
We’ve refactored the strategy stage to include the Fixed Spend type within the Select spend type question.

Transferring all spend types into one selection is easier for users to understand.
Bug fixes
Fixed a bug where the Text field of banners was always on, this is now configurable to be on/off.
Changed an error message if an invitation fails to send.
Fixed a bug in the date picker component that would display incorrect dates dependent on the user’s
11/03/2020 - Campaign Spend Tracking, Banner X Preview Changes & Updated Review Page
Campaign Spend Tracking

Campaigns with a fixed or total spend budget now display a campaign tracking bar to show the spend's progress. If the campaign has an active period set, users are able to view an expected campaign progress indicator.
Users can also hover over the campaign tracking bar to see a further explanation of their budget such as "98.5% of budget spent, 99% of way through campaign".
This feature is very beneficial to agencies managing fixed spend campaigns, making it very clear to users how their campaigns are tracking compared to their expected spend progress.
Additional Banner X Preview Capabilities
We've added more flexibility into our Banner X previewer tool to accomodate more retailers that require additional screen sizes.

Slots with the Banner configuration can now view an Extra Large preview that is 1160x150px. This allows both advertisers and retailers to further preview the sizes of their banners.

There is also now a custom option for all Banner X configurations. The custom option allows the user to specify a specific width and height of their banner.
Greater previewer customisation enables our Banner X offering to be more accomodating to different retailers.
Updated Review Page

We've removed the Terms and Conditions from the Review page and reworded the component into "Launch Campaign".
This is more relevant to the current workflow of ad serving.
13/02/2020 - New Loader Icon
New Loading Icon

We've changed our logo from the lime loader into a new default spinner.
30/01/2020 - Hourly Pacing for Fixed Cost Ads
Hourly Pacing
Retailers using fixed cost ads can now elect to set an hourly pacing limit. Limits are set as a percentage of the daily limit. Once the campaign's hourly limit is met, ads will not show for the campaign until the next hour.

When a user has selected a maximum hourly spend percentage, their maximum hourly spend value is displayed in a sub label.
Setting a maximum hourly spend percentage allows campaigns with daily spend limits to pace their spend across the day more effectively
As e-commerce traffic is rarely consistent across a 24 hour window, CitrusAd advises that hourly spend percentages be set to a minimum of 30%. This will ensure that campaigns don't underspend in higher traffic peaks of the day.
Slot Selection Dimensions
When selecting banner slots suppliers are now able to view the slot's dimensions in the new column.

Being able to quickly see a slot's dimensions before the Configure stage allows suppliers to know if their banners will meet a slot's dimensions before selecting them.
Minor Changes & Tweaks
Reporting Table Tweaks
We've changed the way some currencies display their values to accomodate larger values. This does not effect CSV exports.

Quick Edit Modal Bug Fix
We've fixed a bug that occurred when users opened a quick edit modal without navigating to the Campaign Manager first.
14/01/2020 - UAC & DoubleVerify
User Access Permissions
Users can now have permissions assigned at a team level. The available permissions are “Supplier full” and “Supplier report view” for supplier teams and “Retailer full” and “Retailer report view” for retailer teams. You are able to manage permissions in the Users page (formerly named Invitations).

Users with the “Supplier report view” or “Retailer report view” permission have read only access to the dashboard, campaign, and reporting data. These users cannot view the Users page or manage permissions. All existing members of teams will have “full” permissions. Users with “full” permissions can edit team member permissions in the "Users” page.

New team members are assigned permissions when an invitation is sent.

Managing user access ensures team members have the right access and only selected users maintain full access to all pages.
DoubleVerify Tag Support
You are now able to use DoubleVerify tags when serving your banners. If enabled on your namespace, you will be able to add a tag to each banner slot you configure.

DoubleVerify tags are useful for advertisers aiming to track campaign performance by a third party.
DoubleVerify tags are only currently available on selected retailers using static banners. Work is required from retailers to integrate third party tags.
Reporting Table Refactor
We've refactored our retailer and supplier reporting tables. They look a little different and should load faster.
Campaigns table
Supplier team Campaigns table now displays a campaign’s current wallet name.

Products table
The Products table now display’s a products SKU below the product name

Various styling changes and updates
We've made some tweaks to each table to improve readability and performance. You may notice campaigns and products with long names will be truncated. You are able to hover over the truncated text to view the full text value in a tooltip.

Minor Changes & Tweaks
Product Selection Refactor.
We've slightly changed the look of the product selection component to cater to more integrators. You are also able to see the stock status of products in the Products selected table.

The readability of the products table is improved, while allowing more space for long names and GTINS.
Reports Page Change
The Reports page will now display when clicking the Campaigns tab of the header.
Retailer Team Manager
Minor cosmetic adjustments to support long team and wallet names.
12/12/2019 - Archiving Wallets & External IDs
Archive Wallets
Wallets can now be archived. Archiving a wallet will mean it cannot be selected when creating a new campaign in the wizard. To archive a wallet, navigate to your relevant supplier team, and click Edit on the wallet, then click the Archived checkbox.

Your wallet will then have a tick symbol under the "Archived" column. Archived wallets are also displayed last in your Wallets table.

Archived wallets cannot be selected in the ad wizard for new campaigns. You will also not see balance notifications for archived wallets.
In the Retailer Team Manager, archived wallets are displayed with a box icon.

Archiving wallets is useful for any teams that either do not use their default wallet or depreciate wallets based on campaigns or time periods.
External ID Support for Wallets
You are now able to add an external ID to each wallet. External IDs can be used to track performance metrics for individual wallets.

Retailers managing their suppliers wallets can add external IDs to wallets to track category manager wallets and performance. In the relevant supplier team, click Edit on the wallet, and paste your external Id in the External Id field.
In the Retailer Team Manager, clicking the chevron on each wallet will display now also display the external id.

External IDs allow selected retailers to understand performance of category managers and departments.
Active Period Changes
Users are now able to set a campaign's start date to any date, even in the past. There is now no restriction on setting a campaign's start date.

This makes it possible to edit a running campaign's end date without changing its start date if the start date is in the past.
Minor Changes & Tweaks
Retailer Reporting Table Order
We've changed the order tables are in in retailer reporting to be more consistent across ad types, now you will always begin with Teams reporting.
Drop Over Behaviour on File Upload Components
We had a few file upload components not reflect the default drop-over behaviour of drag and drop components. We have since aligned all to follow this behaviour.
Table Tweaks
We've updated some tables to a more modern style. We'll be slowly cleaning up our tables to follow this style to remain more consistent.
21/11/2019 - Category Filter Targeting & Retailer Wallet Management
Category Filter Targeting
Using the new Categories stage, users can elect to select category filters for campaigns to target. Category filters are automatically loaded from product selections. Users can then able to add or remove any filters within their selected catalogs.

This is a beta feature for selected retailers. It is the first step towards full category level targeting.
Retailer Wallet Management
Selected retailers are now be able to credit wallets from the Retailer Team Manager. Users can select the Teams option from the top menu, and select the team to credit. There is now a Team Wallets section.

Retailers can navigate to their selected team's Team Wallets section, and click Top Up.

Enabling retailers to manage their own supplier wallets reduces the amount of time required to top up wallets as CitrusAd does not need to manually allocate credits for larger top ups.
Menu Restructure
We've changed the dropdown menu and refactored some pages to improve usability and better support our users.
Supplier Teams
We’ve split the old User menu into User Settings, Team Settings and Team Billing.

User Settings has the User Profile page, and the Change Password page. Team settings links to Team Profile, with Invitations and Billing underneath. Team Billing links to the Billing page within Team Settings. This should hopefully speed up accessing wallets in Citrus Client, as well as assist self serve clients in finding where to top up their wallets without assistance.
To accomodate these changes, Change password has been removed from the dropdown menu, it is situated under User settings. Choose a Team is now the top item in the dropdown.
Retailer Teams
Retailer teams feature the same update. To accomodate these changes contacts has been removed from the menu.

Billing Page Changes
Wallets are now displayed in a table to easily display all of your wallets and balances in one easy view.

Minor Changes & Tweaks
Table Tweaks
We've updated some tables to a more modern style, specifically the Invitations table. We'll be slowly cleaning up our tables to follow this style to remain more consistent.
User Profile and Team Profile pages
We've slightly changed the User Profile and Team Profile pages to include newer components as well as display your User ID and Team ID on their respective pages.
Your Team ID can assist when troubleshooting issues with support.
Retailer Team Review
Retailer teams are now only able to approve ads for catalogs they have access to.
08/10/2019 - Multi Catalog and Multi Banner Campaigns
Multi Catalog Selection
Campaigns can now support multiple catalogs. Previously users were able to select one single catalog or all catalogs. The new catalog selection component replaces the Yes / No step of the wizard with a selection component, users can select one, multiple, or all catalogs of a single currency

Users can filter catalogs down in the event there are many, they can elect to add all or select individually.
This is beneficial for any namespace using more than one catalog. It enables your suppliers to select the specific product catalogs they would like to advertise within.
Multi Slot Banner Campaigns
We've changed our Banner ad wizard to support multiple slots. Users can now select the slots they want to advertise in the Banner stage, and configure each slot in the Configuration stage.


Multi slot banners allow suppliers to set up single campaigns to target many slots, instead of having to manually create multiple campaigns.
Always On Spend Type
We've introduced a new Always On spend type to the Strategy stage of the wizard. Instead of defining a maximum spend value, campaigns set to always on will spend directly from a wallet's balance.

Always on campaigns allow campaigns to keep running until the selected wallet runs out. This reduces time spent by users managing campaigns that are intended to keep spending.
Update to Active & Valid Displays
Campaign states in the campaign manager and retailer review pages have changed to increase clarity of what campaigns are actually running and aren’t. We’ve added a faded green state to indicate that a campaign has been approved, but it is not active.

This enables retailers to quickly view what campaigns are approved and are active.

This is useful for suppliers to quickly view what campaigns are active. This gives retailers greater insights to what campaigns are live across their site at any given moment.
Copy Invitation Links
Users can now copy invites directly from within the CitrusAd portal itself. These can be accessed from the Invitations page.

Users can click the Copy button and send the invited member's invitation directly.
This assists with any email clients that filter out components of CitrusAd invitation links. Sending invitations directly enables users to circumvent troublesome email clients.
Filtering Team Selection
We've done some tweaking to the Choose a Team page to accomodate users that have many teams. Any user that is a member of more than 8 teams now has the option to filter teams down to their selected phrase.

We have also separated retailer and supplier teams into different sections to accomodate retailers that also interact with their supplier teams.
This should improve usability for retailers, suppliers and agencies managing many teams within the one namespace.
Minor Changes and Tweaks
Wallet Budget Warnings
A campaign's budget in the Campaign Manager will show a red warning if the campaign's wallet is out of balance.
This improves supplier troubleshooting in a wallet is out of balance
Team Profile Images
Each team's profile image can now be seen in the Choose a Team page. You can set your team's image in the Team Profile page.
Campaign IDs
Each campaign's ID can be seen in the Settings box of the campaign in the Campaign Manager and Review pages.
Your campaign ID can rapidly assist when troubleshooting issues with support.
29/09/2019 - Cross & Up Sell
Cross-sell
CitrusAd now supports retailers wishing to promote in their "Related" products areas of their sites. This could be relevant products to the product or accessories to the product.
Using the new Cross sell feature, suppliers are able to select specific products or product attributes to target their product ad campaigns towards. This enables suppliers to directly target their own products as well as competitor products to advertise accessory, or "goes with" products.
Advertisers can select to target by product attributes. Depending on the retailer's integration, advertisers can target groups of products. These groups can be segregated by type, category, or any other defined group by the retailer. In the below example, products are grouped into product types. The retailer defines the types of products that each product can advertise to.

Advertisers can then elect to select vendors to target their products towards. Campaigns can target their products towards their competing brands as well as their own.
Targeting products by attributes and brand selection enables advertisers to create broad campaigns targeting many possible products and boosting brand reach.
If an advertiser elects to target by products, they can individually select products to target. Targeted products selection has the same restrictions on targeting abilities as if the user had selected to target products by attributes. The retailer defines the types of products that each product can advertise to.

Targeting products individually enables advertisers to create specifically targeted campaigns to boost sales across their own brands, or target their accessories to competing brand product pages.
Cross-selling allows retailers to monetise their product description pages in their "related" or accessories components.
Up Sell
CitrusAd now supports retailers wishing to promote in their "Similar" products areas of their sites. This allows for advertisers to directly compete for position in a product's detail page. This can be used by advertisers to up sell a potential customer to a better product, or target a competing product with the advertiser's product.
Much like cross-sell, when using the new up sell feature, suppliers are able to select specific products or product attributes to target their product ad campaigns towards. This enables suppliers to directly target their own products as well as competitor products to advertise their similar products.
Advertisers can select to target by product attributes. Advertisers can target products within their defined group of products. These groups can be segregated by type, category, or any other defined group by the retailer. In the below example, products are grouped into product types. The retailer defines the types of products that each product can advertise to.

Advertisers can then elect to select vendors to target their products towards. Campaigns can target their products towards their competing brands as well as their own.
Targeting products by attributes and brand selection enables advertisers to create broad campaigns targeting many possible products and boosting brand reach.
If an advertiser elects to target by products, they can individually select products to target. Targeted products selection has the same restrictions on targeting abilities as if the user had selected to target products by attributes. The retailer defines the types of products that each product can advertise to.

Targeting products individually enables advertisers to create specifically targeted campaigns to boost sales across their own brands, or target their products to competing brand product pages.
Cross and up-sell require integration work on the retailer's behalf.
Team Logos - Choose a Team Page
If you have set a team logo in the User Profile section, your team logo will now show in the select a team screen.

This should help users of many teams locate their desired team faster.
Removed Team Sign Up Fields
We've removed the requirement that new teams include the number of employees, their company type and a phone number from the sign up and create a new team page
New Support Widget
We've integrated a new support widget to help our users reach us faster. For support queries, click the green widget and chat away!

This should help advertisers reach support faster.
17/07/2019 - Campaign Subtypes
As CitrusAd has grown, we've had an increasing amount of page opportunities across our various retailers. The "Product Ad" has grown with us, sharing many features and functions. To accomodate the ever increasing need to classify where an ad will show, we have created campaign subtypes.
A campaign subtype classifies to users where their ads are likely to show.

Currently supported subtypes are:
Category & Search - Ads are displayed when a customer visits a category page related to your product(s) or enters search term(s) you define as part of your campaign.
Category Only - Ads are displayed when a customer visits a category page related to your product(s).
Search Only - Ads are displayed when a customer enters search term(s) you define as part of your campaign.
Broad Display - Ads are displayed when a customer visits a high traffic, non category/search term specific page.
Allowing a user to classify where they would like their ad to show means that only relevant wizard steps are shown to the user.
Users can now specify that their ads will appear only on search pages.
Broad Display is now a campaign subtype and no longer an ad type. This is a wizard only change and does not influence current integrations.
Category & Search Minimum Bid Values
We've introduced a way for retailers to specify the minimum bids that suppliers can pay for a position on their selected category or search pages.
Minimum bid values are only applicable on Category Only or Search Only campaigns. They are not currently compatible with Category & Search campaigns.
Category Only
When selecting products with a Category Only subtype selected, users will see a Min Bid column when selecting products.

If the product has a - there is no minimum bid value and the user will be able to set the minimum bid of the retailer's namespace.
If there is a value shown (Such as $0.64), this is the minimum that the user will need to set their bid to to advertise in the product's categories. To see all category minimum bids associated with a product, users can click the eye icon.

When on the Strategy stage of the ad wizard, suppliers will see the associated costs of each selected product and their categories.

Entering a minimum bid below the minimum bid value is not allowed and is indicated by red values. Users will need to pay the highest collective minimum bid to proceed.

Search Only
When selecting products with a Search Only subtype selected, users will see a Min Bid column when selecting search terms.

If all search terms have no minimum bid value and the user will be able to set the minimum bid of the retailer's namespace.
If there is a value shown (Such as $0.64), this is the minimum that the user will need to set their bid to to advertise in the selected search terms.
When on the Strategy stage of the ad wizard, suppliers will see the associated costs of each selected search term.

Entering a minimum bid below the minimum bid value is not allowed and is indicated by red values. Users will need to pay the highest collective minimum bid to proceed.

Minimum bid values enable retailers to have various minimum costs to advertise across their selected categories and search terms.
Minor Changes & Tweaks
Wording Consistency Tweaks
We've adjusted some wording to make our platform more consistent.
30/05/2019 - Retailer Team Manager
Retailer Team Manager
Retailer teams are now able to use the new Retailer Team Manager to view current teams in a namespace. Retailers are able to click the Teams menu item to view the current teams in their namespace.

By clicking into a team, retailers can view each team's info, billing, and retailer billing settings.

This feature gives retailers greater insights as to active teams in their namespace, as well as who to contact within that team.
Product Stock Indication
Suppliers creating campaigns are now able to see their product's stock status when creating campaigns. As ads are not served for products that are out of stock, it is imperative that users are informed if their products are in stock.

Users are able to hover over their product's stock indication. A tooltip shows either in stock or our of stock

When viewing the Products table in reporting users will also see their product's stock information

Reporting Help Tips
We have added help tips to reporting tables for all users to better understand what is communicated in each table.

Last updated

