This article originally appeared in ExchangeWire in March 2023.
How fast things change. As recently as 2019, dunnhumby commissioned Forrester to carry out an in-depth review of attitudes towards the monetisation of data and media within the global grocery industry. Among the many conclusions reached in that paper was the assertion that retailers around the world were “missing out on hundreds of millions in new revenue… by not monetising their media assets.”
Fast forward to today and, while part of that sentiment still rings true, there’s little doubt that retail media is now firmly entrenched within the commercial affairs of most large grocery retailers. USD$110bn (~£89.9bn) was spent by advertisers on retail media in 2022, with the midterm trajectory looking more compelling still; spending growth of around 60% should put us on the path to a near $200bn industry by 2027.
Just where are those billions of dollars coming from, though? In grocery retail, the answer in the vast majority of cases is obviously consumer packaged goods (CPG) companies. More specifically, that money comes from what are typically very healthy brand, digital, trade, and shopper CPG marketing budgets.
While those budgets may be healthy, retailers still face a significant challenge when it comes to maximising the true revenue potential of their media assets. That’s because, as with any revenue stream, there’s a distinct difference between genuinely “new” investment and that which has simply been diverted from existing CPG spend in the form of shopper and trade marketing budgets.
In an ideal situation, retailers want to attract as much new investment as possible, building upon – rather than cannibalising – their existing revenues. In spite of that, research suggests that anywhere between 16% and 40% of current retail media spend is simply money that has been shifted away from trade and shopper marketing budgets. That’s a clear problem, because it speaks to a significant missed opportunity to create fresh revenue streams.
Ultimately, this shouldn’t be the case. By virtue of a closed loop that links a shopper’s media exposure and their purchasing behaviours, retail media makes it far easier to demonstrate ROAS than many other forms of marketing. If any discipline should be able to attract brand new investment, it should be retail media.
The issue then is not one of performance, but one of positioning. And it’s here that I think many retailers need to focus.
To really unlock the potential of their retail media programmes, retailers need two things: a more cohesive approach to their media solutions, and a smarter framework for collaboration with their CPG partners. Let’s start with the first.
Last December, I wrote a blog exploring the “six pillars” underpinning retail media success. Of those, it’s the third – full-funnel media solutions – that has the greatest relevance here.
It may sound simple, but if they want to attract investment from brand and digital marketers, then retailers also need to offer media solutions that align to the needs of those teams. Creating a media solutions portfolio that only serves certain parts of the marketing funnel will ultimately reduce the appeal of that offering. As a result, full-funnel solutions that can deliver connected customer journeys are now an essential capability.
A cohesive proposition alone is not enough, however. To reduce the risk of cannibalisation, retailers also need to ensure that they’re engaging with brands in the right way when it comes to media. Today, retailers tend to use one of three different engagement models to do that:
This is a very traditional engagement model, one in which the retailer’s merchant teams drive discussions with CPG trade marketing teams, while a media sales team handles the needs of CPG-side brand and shopper marketing teams.
Although there’s no link between how much each side chooses to spend, these teams do collaborate on an annual promotional calendar (investing in media when a brand is featured in an in-store or online promotion for instance). In this model, CPGs normally receive ad hoc discounts on media rates based on individual campaign negotiations.
Here, the relationship between the retailer and the CPG revolves around a Joint Business Plan (JBP). Importantly, though, the retailer’s commercial and media teams each negotiate a separate JBP. The media team will sign a JBP with the CPG’s CMO, for instance, which might include a multi-year incentivisation programme that unlocks bigger discounts on media the more they spend.
These programmes are built on tiering systems. These unlock the reduced rates mentioned above, provide early access to new advertising products, and other (custom) benefits. Revenue targets and other KPIs are reviewed quarterly.
This is a fully connected approach, one which involves the development of unified trade and media JBPs. Not only are the trade and media elements clearly labelled within these JBPs, but CPGs are given clear incentives to grow their spend on each as well.
This allows CPGs to see the full value that they get by working with a retailer, helping them to optimise spend across the entirety of the funnel and allocate dollars where they’re needed most (rather than where the budget “sits”).
So, which of these is best? There’s the catch; there are no right or wrong answers here. Some models simply work better for different retailers and CPGs based on their own organisational structures and objectives, and the only way to establish which is “best” is to understand your own internal dynamics and supplier relationships.
That said, one thing is very definitely true: whichever model they choose, retailers must do everything in their power to minimise the risk of cannibalisation, enabling them to attract more revenue from the right places and grow their media operations effectively.
Make Retail Media work for your business with Customer Data Science
Retail Media solutionsPlan, execute, and measure the impact of omnichannel Retail Media
Customer First platform for Retail MediaCookie | Description |
---|---|
cli_user_preference | The cookie is set by the GDPR Cookie Consent plugin and is used to store the yes/no selection the consent given for cookie usage. It does not store any personal data. |
cookielawinfo-checkbox-advertisement | Set by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Advertisement" category . |
cookielawinfo-checkbox-analytics | Set by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Analytics" category . |
cookielawinfo-checkbox-necessary | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary". |
CookieLawInfoConsent | The cookie is set by the GDPR Cookie Consent plugin and is used to store the summary of the consent given for cookie usage. It does not store any personal data. |
viewed_cookie_policy | The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data. |
wsaffinity | Set by the dunnhumby website, that allows all subsequent traffic and requests from an initial client session to be passed to the same server in the pool. Session affinity is also referred to as session persistence, server affinity, server persistence, or server sticky. |
Cookie | Description |
---|---|
wordpress_test_cookie | WordPress cookie to read if cookies can be placed, and lasts for the session. |
wp_lang | This cookie is used to remember the language chosen by the user while browsing. |
Cookie | Description |
---|---|
CONSENT | YouTube sets this cookie via embedded youtube-videos and registers anonymous statistical data. |
fs_cid | Set by FullStory to correlate sessions for diagnostics and session consistency; not always set. |
fs_lua | Set by FullStory to record the time of the user’s last activity, helping manage session timeouts. |
fs_session | Set by FullStory to manage session flow and recording. Not always visible or applicable across all implementations. |
fs_uid | Set by FullStory to uniquely identify a user’s browser. Used for session replay and user analytics. Does not contain personal data directly. |
VISITOR_INFO1_LIVE | Set by YouTube to estimate user bandwidth and improve video quality by adjusting playback speed. |
VISITOR_PRIVACY_METADATA | Set by YouTube to store privacy preferences and metadata related to user consent and settings. |
vuid | Vimeo installs this cookie to collect tracking information by setting a unique ID to embed videos to the website. |
YSC | Set by YouTube to track user sessions and maintain video playback state during a browser session. |
yt-remote-device-id | YouTube sets this cookie to store the video preferences of the user using embedded YouTube video. |
yt.innertube::nextId | This cookie, set by YouTube, registers a unique ID to store data on what videos from YouTube the user has seen. |
yt.innertube::requests | This cookie, set by YouTube, registers a unique ID to store data on what videos from YouTube the user has seen. |
_ga | The _ga cookie, installed by Google Analytics, calculates visitor, session and campaign data and also keeps track of site usage for the site's analytics report. The cookie stores information anonymously and assigns a randomly generated number to recognise unique visitors. |
_ga_* | Set by Google Analytics to persist session state. |
_gid | Installed by Google Analytics, _gid cookie stores information on how visitors use a website, while also creating an analytics report of the website's performance. Some of the data that are collected include the number of visitors, their source, and the pages they visit anonymously. |
_lfa | This cookie is set by the provider Leadfeeder to identify the IP address of devices visiting the website, in order to retarget multiple users routing from the same IP address. |
Cookie | Description |
---|---|
aam_uuid | Set by LinkedIn, for ID sync for Adobe Audience Manager. |
AEC | Set by Google, ‘AEC’ cookies ensure that requests within a browsing session are made by the user, and not by other sites. These cookies prevent malicious sites from acting on behalf of a user without that user’s knowledge. |
AMCVS_14215E3D5995C57C0A495C55%40AdobeOrg | Set by LinkedIn, indicates the start of a session for Adobe Experience Cloud. |
AMCV_14215E3D5995C57C0A495C55%40AdobeOrg | Set by LinkedIn, Unique Identifier for Adobe Experience Cloud. |
AnalyticsSyncHistory | Set by LinkedIn, used to store information about the time a sync with the lms_analytics cookie took place for users in the Designated Countries (which LinkedIn determines as European Union (EU), European Economic Area (EEA), and Switzerland). |
bcookie | LinkedIn sets this cookie from LinkedIn share buttons and ad tags to recognise browser ID. |
bscookie | LinkedIn sets this cookie to store performed actions on the website. |
DV | Set by Google, used for the purpose of targeted advertising, to collect information about how visitors use our site. |
ELOQUA | This cookie is set by Eloqua Marketing Automation Tool. It contains a unique identifier to recognise returning visitors and track their visit data across multiple visits and multiple OpenText Websites. This data is logged in pseudonymised form, unless a visitor provides us with their personal data through creating a profile, such as when signing up for events or for downloading information that is not available to the public. |
gpv_pn | Set by LinkedIn, used to retain and fetch previous page visited in Adobe Analytics. |
lang | Session-based cookie, set by LinkedIn, used to set default locale/language. |
lidc | Set by LinkedIn, used for routing from Share buttons and ad tags. |
lidc | LinkedIn sets the lidc cookie to facilitate data center selection. |
li_gc | Set by LinkedIn to store consent of guests regarding the use of cookies for non-essential purposes. |
li_sugr | Set by LinkedIn, used to make a probabilistic match of a user's identity outside the Designated Countries (which LinkedIn determines as European Union (EU), European Economic Area (EEA), and Switzerland). |
lms_analytics | Set by LinkedIn to identify LinkedIn Members in the Designated Countries (which LinkedIn determines as European Union (EU), European Economic Area (EEA), and Switzerland) for analytics. |
NID | Set by Google, registers a unique ID that identifies a returning user’s device. The ID is used for targeted ads. |
OGP / OGPC | Set by Google, cookie enables the functionality of Google Maps. |
OTZ | Set by Google, used to support Google’s advertising services. This cookie is used by Google Analytics to provide an analysis of website visitors in aggregate. |
s_cc | Set by LinkedIn, used to determine if cookies are enabled for Adobe Analytics. |
s_ips | Set by LinkedIn, tracks percent of page viewed. |
s_plt | Set by LinkedIn, this cookie tracks the time that the previous page took to load. |
s_pltp | Set by LinkedIn, this cookie provides page name value (URL) for use by Adobe Analytics. |
s_ppv | Set by LinkedIn, used by Adobe Analytics to retain and fetch what percentage of a page was viewed. |
s_sq | Set by LinkedIn, used to store information about the previous link that was clicked on by the user by Adobe Analytics. |
s_tp | Set by LinkedIn, this cookie measures a visitor’s scroll activity to see how much of a page they view before moving on to another page. |
s_tslv | Set by LinkedIn, used to retain and fetch time since last visit in Adobe Analytics. |
test_cookie | Set by doubleclick.net (part of Google), the purpose of the cookie is to determine if the users' browser supports cookies. |
U | Set by LinkedIn, Browser Identifier for users outside the Designated Countries (which LinkedIn determines as European Union (EU), European Economic Area (EEA), and Switzerland). |
UserMatchHistory | LinkedIn sets this cookie for LinkedIn Ads ID syncing. |
UserMatchHistory | This cookie is used by LinkedIn Ads to help dunnhumby measure advertising performance. More information can be found in their cookie policy. |
yt-remote-connected-devices | YouTube sets this cookie to store the video preferences of the user using embedded YouTube video. |
_gcl_au | Set by Google Tag Manager to store and track conversion events. It is typically associated with Google Ads, but may be set even if no active ad campaigns are running, especially when GTM is configured with default settings. The cookie helps measure the effectiveness of ad clicks in relation to site actions. |