amitdusane.com Adobe Analytics Learning

Shape the dataClassifications

Troubleshooting and Maintenance

There is no error message in this section.

Every troubleshooting guide you have ever read opens with something going red. A failed job. A broken build. A stack trace, a 500, a console full of warnings. Something that stands up and announces itself.

Classifications do not do that. A broken classification produces a report. A complete, well-formatted, perfectly plausible report, with totals that reconcile and columns that add up and a chart that renders beautifully. It just happens to be wrong.

Which changes what you are actually doing here. You are not debugging. Debugging is what you do when a machine tells you it is unhappy. You are auditing, which is what you do when a machine tells you nothing at all, and you have to go and find out whether it was telling the truth.

Where a classification can break

Four places, and every symptom in this section traces back to one of them.

The four break points
1. The key never collected on the hit 2. The set wrong suite, wrong key 3. The data never arrived 4. The value arrived, but wrong These two show up as Unspecified. The report looks empty. You will notice. These two produce a normal report. The report looks fine. It is not fine. Nobody notices for a quarter. The dangerous half is on the right. Everything in this section is about learning to see it.

The index

Come back to this table. That is what it is for.

SymptomMost likely causeWhere to look
Every row says UnspecifiedThe key is not on those hits, or nothing was ever uploadedCheck the parent dimension first. If it is empty, the classification was never the problem.
Some keys classified, others notKey mismatch: an internal space, an encoding difference, a value of 0Download, Data Returned = All columns empty
One column is blank, the others are fineThat column was missing or misspelled in the fileDownload, Data Returned = Any columns empty
Uploaded hours ago, still nothingProcessing time, or the job failed and nobody was toldJobs tab
A classification exists that nobody createdA typo in a file header. Adobe created it on import, as designed.Schema tab
Curated values keep reverting to raw onesA rule is overwriting the file, every four hoursRules tab, the Rules overwrite setting
Rules classify nothing at allThe key is URL encoded, so no rule can read itLook at the raw dimension. If you see %5F, that is your answer.
Right column, wrong valueTwo rules touch the same column, and precedence is inverted from what you assumedRules overwrite, then rule order
Old campaigns never classify, new ones doThe lookback window. Rules cannot see keys that stopped arriving.Upload a file. A rule will never fix this.
History changed and nobody touched anythingA key was recycled by the source systemNot in Adobe. Go and ask the system that mints the key.
The set gets slower every weekFiles are not being removed from the cloud location, so everything reimports on every runThe bucket, and the Jobs tab, which will show the same import over and over

Start by checking whether it is even a classification problem

Before touching a set, look at the parent dimension.

If the club's Membership Tier report is empty, open the User ID report. If that is also empty, then no User ID was collected, nothing was there to classify, and the classification behaved perfectly. You have an implementation problem wearing a classification costume, and no amount of uploading will fix it.

This one check would resolve a large share of the classification tickets ever raised. It takes eleven seconds. People skip it because the symptom appears in a classification report, and the eye follows the symptom rather than the cause.

The mismatch family, and why they are so hard to see

Now the group that produces the most wasted afternoons. The key is there. The file was uploaded. And the row is still Unspecified.

Which means Adobe looked up your key, and did not find it, because the key in the file is not the key in the data. They look identical on a screen. They are not identical to a machine.

What differsWhat it looks likeForgiven?
Trailing spaceM-10482 Yes. Trimmed automatically, on both sides.
Internal spaceM- 10482No. A different key entirely.
URL encodingeml%5F2026No. And no rule will ever read it.
A value of zero0, 00, 000No. It errors, for reasons that never feel satisfying.
An invisible BOM on the headerKey that is not quite KeyNo. Save as UTF-8 without BOM.

Two of those come from the source system and cannot be fixed in Adobe at all. If your tracking codes arrive URL encoded, no rule, no file, and no amount of cleverness inside the classification interface will save you. That is a conversation with whoever builds the campaign links, and it is better to have it on a Tuesday than during a quarterly review.

Which is where Unspecified deserves a second look

Practitioners spend their careers trying to get rid of Unspecified. It looks like failure. It looks untidy. Stakeholders ask about it.

Stop. Look at what it is actually doing.

Unspecified is not your enemy. It is your only witness.

Of the four ways a classification can break, Unspecified is the only one that tells you. It is the feature standing up and saying, out loud, that it could not resolve this key. No other failure in this module has the decency to do that. A rule overwriting your curated file does not produce Unspecified. It produces winback. A misspelled header does not produce Unspecified. It produces a whole new dimension, quietly filling with correct data under a name nobody meant.

Unspecified is the honest failure. Learn to read it and it becomes a diagnostic instrument. Suppress it, and you have blinded the one part of this system that was trying to help you.

So the goal is not zero Unspecified. The goal is a number you can explain. Unspecified holding steady at 3% because that is the share of traffic that genuinely arrives before login is a healthy report. Unspecified at 0% because somebody classified everything with a catch-all rule is a report that has stopped telling you anything.

The values are wrong, which is worse than missing

Missing data raises a question. Wrong data answers one, incorrectly, and nobody thinks to check.

Two causes, and both were built in Classification Rule Builder.

Rule precedence is inverted from your instinct. With Rules overwrite set to apply to all values, the last matching rule wins, so moving a rule to the top of the table takes its priority away. With apply to only unset values, the first wins. Same rules, same order, opposite answer. When a column holds a value you cannot account for, check that dropdown before you check anything else.

Something is fighting your file. If curated values keep reverting, a rule is rewriting them every four hours, and it will keep doing so forever. Nobody is at fault. The rule is doing exactly what it was told.

And the one that will genuinely frighten you

A recycled key rewrites history silently. The upload succeeds, the report renders, the totals reconcile, and two years of activity by one member is now attributed to somebody else. Nothing failed. Nothing is logged. There is no Adobe screen that will ever show you this, because from Adobe's point of view nothing went wrong.

If a historical report changes and nobody touched anything, stop looking inside Adobe Analytics. Go and ask the system that generates the key whether it reuses identifiers. That is where the answer lives, and it is the only failure in this module that Adobe genuinely cannot help you find.

Four instruments, and almost nobody uses them

Everything above is diagnosable, and the tools have been sitting in the interface the whole time.

InstrumentWhereWhat it answers
JobsComponents > Classification sets > JobsDid it actually run? Did it fail? Is the same file importing over and over?
DownloadSchema tab > DownloadWhat is actually in there right now, as opposed to what you believe you uploaded
Test rule setRules tab > Test rule setWhat these rules would do, before they do it to production
Unspecified, trendedAnalysis WorkspaceIs coverage decaying, and in which of three distinct ways?

The Jobs tab is the one to build a habit around. It is the only place in this entire feature where a failure is written down in plain language, and it is the first place to look when something is missing and you cannot say why. If an import silently failed at 2am, the Jobs tab knows. Nothing else does.

And Download with Data Returned set to Any columns empty is the single most useful diagnostic in the module. It turns "something feels wrong with the tier data" into a list of exactly which keys are missing exactly which columns. Vague suspicion becomes a spreadsheet you can act on.

The fourth instrument is the only one that lives outside the classification interface, and the only one that raises a problem before somebody reports it. Put Unspecified on a trend, as a percentage of whatever metric the business actually watches, and leave it somewhere it will be seen. The level is already covered above: a steady number you can explain is a healthy report. What a trend adds is the shape of the movement, and the shape names the cause.

What the trend doesWhat it usually means
Steps up, then holdsA new campaign, agency, or platform started minting keys in a format no rule covers
Drifts up slowlyA manual upload is being skipped
Sits on a floor and never movesA legacy key format nobody ever wrote a rule for, waiting quietly to be noticed

The drift is the one worth building the habit for, because it is the one the level check cannot catch. A step is obvious to anybody who opens the report that week. A drift stays inside the band you would still call normal for months, which is comfortably long enough for the person who used to run the upload to move on and for nobody to learn that the job existed. It is the same instrument, and the same reasoning, as watching the Direct share in Marketing Channels: two cheap alarms that catch upstream failures in days rather than quarters, and both routinely missing from otherwise careful reporting setups.

Maintenance, which is really just deciding things once

Almost every failure in this section is a failure of ownership rather than a failure of technology. Two systems wrote to one column because nobody said which one should. A file stopped arriving because the person who uploaded it left. A bucket filled up because nobody agreed to empty it.

So the maintenance discipline is small, and it fits on one page.

Do this Keep a classification ownership register
Set
Campaign Tracking
Key
Tracking Code (eVar1)
Subscriptions
club-prod, club-dev
ColumnOwned bySourceCadenceOverwrite
ChannelRuleSplit on _Every 4 hrsAll values
YearRuleSplit on _Every 4 hrsAll values
MonthRuleSplit on _Every 4 hrsAll values
CampaignFileMarketing display names, curatedWeekly (manual)Only unset
Do this Record how it is watched, stored and where it could break
Notify on failure
analytics@club.example
Notify on success
OFF — nobody reads a daily “it worked” email
Jobs tab review
Weekly
Unspecified baseline
3%. Investigate at 5%.
Cloud bucket
club-analytics/classifications/
Cleanup
Lifecycle rule, delete after 7 days. Adobe does not delete imported files, and an unclean bucket means a reimport of the entire history on every single run, forever.
Key risk
Source system is club-crm. Confirmed: member IDs are never reused. Re-confirm on any CRM migration — a recycled key rewrites history.

That document is the bookend to the tracking code convention from Designing the Key. One decides what the key looks like. This one decides who is allowed to write to it. Between them they prevent most of what this section exists to diagnose.

Set an Unspecified baseline while things are healthy

Nobody can tell whether 4% Unspecified is a problem, because nobody knows what normal looks like. So write down what it is today, on a day when everything works. Then a drift from 3% to 11% is not a debate, it is an alarm. This costs one minute and it converts the module's only honest signal into an actual monitor.

What was actually built here

Step back from the interface for a second.

This module took a value the business could not read, M-10482 or eml_2026_07_winback_in, and gave it meaning it never carried. No developer shipped code. No server call changed. Not one byte of collected data was altered. And yet a report that could only say "one hundred members did things" can now say which of them were over sixty, on which nights, in which halls.

That is what report-time shaping buys you, and it is why classifications sit where they do. Processing rules and VISTA rules shaped the data before it landed, permanently, with no way back. Classifications shaped it afterward, reversibly, retroactively, forever. Same goal, opposite end of the pipeline, and now you know when to reach for each.

And with that, the shaping is done. That closes Classifications, and with it the whole of the Shape the data phase. Foundations built the understanding, collection captured the behavior, and shaping made it legible: processing rules, VISTA rules, marketing channels, and classifications, each adding a layer of meaning the raw hit never carried. Three of the five phases are behind you, and the data is as meaningful as it is ever going to get.

Which raises a question this module cannot answer

Everything from processing rules to classifications has been about one question: what does this value mean?

Not once has anything asked a different question, and it is the question every stakeholder actually has.

Which of these people are worth looking at?

Members over sixty who booked a hall but never a gym slot. Visitors who arrived on a Winback campaign, came back twice, and then vanished. People who did one thing and not another, in that order, within a week.

No amount of shaping answers that. Shaping tells you what a value means. It does not let you carve the audience. For that you need something that can hold a condition, nest it, sequence it, and apply it across every report you own, and that is a different instrument entirely.

It is called a segment, and it lives in the next phase of this curriculum: Analyze the data, where the question stops being what a value means and becomes which of the people behind those values are worth your attention. That phase begins with Calculated Metrics, the measures you define for yourself, and then reaches Segments, the instrument built to carve an audience into exactly the groups this section kept asking about.

Where to find it in Adobe Analytics

Job results and failures: Components > Classification sets > Jobs. What is actually stored: [your set] > Schema > Download. Rule behavior before you commit to it: [your set] > Rules > Test rule set. Failure notifications are set on the set itself, in its Settings.

Need implementation steps?

This article focuses on the concepts, architecture, and practical guidance behind the topic. For the latest UI walkthroughs and step-by-step implementation instructions, use the links below. They leave this site and open Adobe's own documentation in a new tab.