For the director of digital, DTC and consumer insights at an enterprise CPG — the seat that already has loyalty and retail-media signal, and for whom the 2D transition is worth exactly one thing: unit-level granularity no loyalty programme carries.
Your company is going to print a 2D symbol on its packs. That much is settled by the programme office. What is not settled — and what will quietly default to the wrong answer if nobody with a digital P&L is in the room — is which of two payload forms the symbol carries. The two forms look identical printed at 600 dpi. One of them is a link. The other is not, and never can be.
The same product, encoded twice
Here is one product — a GTIN with a lot number and an expiry — as the two payloads a 2D symbol can actually carry. Both examples are illustrative, built on GS1's documented syntax:
Form 1 — GS1 element strings (FNC1 syntax; what a lane parses): (01)00850012345678(10)LOT4271(17)270630 Form 2 — GS1 Digital Link URI (web-resolvable; same data): https://id.yourbrand.com/01/00850012345678/10/LOT4271?17=270630
Form 1 is the application-identifier syntax GS1 lanes have parsed for decades: AI (01) is the GTIN, (10) the lot, (17) the expiry. Form 2 writes the identical identifiers as an HTTPS URI under GS1's Digital Link URI syntax (version 1.6.0): the GTIN as the /01/ path segment, qualifiers in the standard's fixed order, non-qualifier AIs as query parameters. GS1's resolver standard (GS1-Conformant Resolver 1.2.0, ratified January 2026) and ISO/IEC 18975:2024 define how such a URI resolves. All of that is public and checkable at ref.gs1.org; none of it is our invention.
What each audience can do with each form
| Audience | Element strings — form 1 | Digital Link URI — form 2 |
|---|---|---|
| A Sunrise-capable retail lane | Parses the AIs, extracts the GTIN, rings the sale | Parses the URI, extracts the same GTIN, rings the same sale |
| A shopper's native camera app | Decodes the symbol, displays inert text, opens nothing | Decodes the symbol and opens the URI — your domain, this unit |
| A browser | Nothing. An element string is not an address | Resolves. This is the entire difference |
| A machine agent reading the pack | Must carry a GS1 parser to make sense of it | Follows the link like any other web resource |
Read the second row twice, because it is the whole decision: the lane is indifferent between the forms, and every other audience on earth can only use one of them. A 2D symbol carrying element strings clears checkout and is dead to every camera, browser, and agent that ever meets it. A symbol carrying the Digital Link URI clears the same checkout and is alive to all three.
Why this lands on your desk and not the packaging team's
You already know what class-grain and household-grain signal look like — you buy both. What no loyalty programme, no retail-media network, and no panel carries is the row in that payload above: lot 4271, this unit, this moment, from your own pack. Which lots got scanned, in which markets, how long after they shipped. First scans in a market you do not sell into. A promo week with no scan lift. That signal class is only possible if the mark is a link — and whether the mark is a link is decided this artwork cycle, in a spec sheet you will probably never be shown unless you ask for it.
Be precise about what is fact and what is bet, because the distinction is the difference between a business case and a fairy tale. Fact: the URI form resolves in an ordinary phone camera; that is GS1's published design. Bet: that shoppers scan at volume in your categories. The bet has no authority reference — nobody has one — and we state it as a bet everywhere, including the pillar this brief sits beneath. But note the asymmetry: the option costs nothing extra to print, and forgoing it forecloses the signal class for the life of the artwork.
The trap: a "2D upgrade" that forecloses the touchpoint
Here is how the wrong default happens in a large organization, step by step. The programme office mandates "2D by 2027." Packaging engineering reads that as a symbology change and specs whatever the converter's software emits — which, absent instruction, is element strings, because element strings are what forty years of GS1 tooling produces. The artwork cycle closes. The packs print. Every symbol on shelf now clears a lane perfectly and resolves to nothing, and the earliest the decision can be revisited is the next artwork cycle — for most of a portfolio, years out.
Nobody in that chain made an error. The error is that a decision with a decade of digital consequences was never presented as a decision. The GTIN owner's decision rights — symbology, URI form, which AIs travel — sit with your company, not with the converter and not with the retailer; and inside your company, the URI-form question belongs to the seat that owns what a resolved link is for. That is you.
Make the choice once, in writing
The fix costs one paragraph in the packaging specification: "Consumer-facing 2D marks carry the GS1 Digital Link URI form on the brand's domain; element strings are not an accepted payload for consumer-facing marks." One sentence names the symbology; one names the URI form; one names which AIs travel (the lot-and-expiry choice is the brand's, never Sunrise's). The scheme-level anatomy — how the URI is constructed, qualifier order, what validates — is worked at barcoding.dev, and the event layer that gives every resolved scan somewhere to land is what this platform records: a conformant EPCIS 2.0 event with an attested who on every capture, every open gap named in the open P0 ledger.
Ten minutes at get started turns this brief into your read: address first under the one-message promise, then questions that branch on your answers — your retailer questionnaires, your last launch's first thirty days, and whether an artwork cycle on your 2026 or 2027 plan already has a date — ending in a written read for your programme. It runs on this origin and locks when it ends.