This module explains selected boundaries between retained native fields and shared advertising projections. It preserves native values, normalized facts, shared output and the context needed to interpret a missing answer. An absence in shared output cannot establish native absence, zero spend or successful normalization of an unsupported field.
This is the unofficial 0.1.0 module specification. Source review and executable correctness are separate standings. Full generation, runtime and publication verification are pending configured GitHub CI; this draft supplies no release, native write or client-adoption qualification.
This module explains selected boundaries between retained native fields and shared advertising projections. It preserves native values, normalized facts, shared output and the context needed to interpret a missing answer. An absence in shared output cannot establish native absence, zero spend or successful normalization of an unsupported field.
Agents can inspect the selected retained evidence, ask for missing scope or review, and keep unresolved answers visible. A successful inspection remains separate from permission to act on a live account.
https://ontology.inferal.com/modules/ads-native-projection-diagnostics/
The prefix nd names the existing vocabulary. Term identity and the original RDF types remain stable. Shared advertising and commerce concepts supply scope; captured provider terms retain their provider-specific meaning.
A diagnostic request chooses a structural slice over separate native, shared and context graphs. The selected families cover Meta creative links and app_id breakdown suppression, Google report/budget currency conflicts, unqualified Meta report timezone, and Meta bid optimization denominators. Unaffected records remain available. Readers expose the selected gap, retained values, affected question and represented projection standing.
| Evidence | What the consumer can conclude |
|---|---|
| Retained source | The selected bytes and represented claims remain inspectable. |
| Scoped interpretation | The named contract supplies a result with its own qualification and coverage. |
| Current action authority | Live permission, native applicability and client adoption require separately qualified evidence. |
The original captured provider context and selected provider mapping define the native and shared terms. A caller account selection is only declared scope. Creative and breakdown records in this finite slice do not provide an account link; currency, timezone and bidding families inspect available exact native owner associations. A missing qualified association remains unresolved rather than being supplied by a declaration.
RDF permits incomplete descriptions. A conforming execution profile must enforce its declared closed-world input and output constraints. Unknown or conflicting business evidence must keep its explicit standing and cannot be converted into a favorable value.
A legacy UTC candidate cannot establish an applicable historical reporting window, and an account timezone alone cannot establish historical applicability. A legacy bid amount does not establish its optimization denominator, exact original decimal, native request grammar, write permission or client serializer. Even a recognized LINK_CLICKS goal requires reviewed denominator context. Duplicate legacy resource candidates remain visible and unqualified. Request and output shapes validate execution contracts without turning private shape nodes into public schema classes.
Validation establishes conformance to a selected profile. Retained scope, reported evidence and operational success keep their separate meanings. Runtime and generation evidence for this source repair remain pending GitHub CI.
The example requests a finite structural diagnostic and presents scoped projection standing. Any caller account selection remains declared; the example does not certify native ownership, a historical timezone or a bidding unit.
Inspect the declared roles and independent standings before using this evidence. Omitted source data or an unresolved qualification must remain visible. This example does not attest a live provider request or complete merchant history.
Classes, properties and existing controlled evidence values retain their authored labels and definitions. Listing a controlled value here does not change its RDF type or grant execution authority.
nd:AccountScopeEvidence — AccountScopeEvidencend:AccountTimezoneDeclarationOnly — AccountTimezoneDeclarationOnlynd:AmbiguousCreativeEvidence — AmbiguousCreativeEvidencend:CallerSuppliedRetainedNativeDocument — CallerSuppliedRetainedNativeDocumentnd:ConflictingCurrency — ConflictingCurrencynd:ConflictingTimezoneEvidence — conflicting timezone evidencend:CreativeObjectAndIdentifier — CreativeObjectAndIdentifiernd:DiagnosticRequest — DiagnosticRequestnd:GoogleCurrency — GoogleCurrencynd:HistoricalAccountTimezoneAndReportingContext — HistoricalAccountTimezoneAndReportingContextnd:MetaBidUnit — MetaBidUnitnd:MetaBreakdown — MetaBreakdownnd:MetaCreative — MetaCreativend:MetaTimezone — MetaTimezonend:MissingCreativeEvidence — MissingCreativeEvidencend:MissingCurrencyEvidence — MissingCurrencyEvidencend:MissingNativeRecord — MissingNativeRecordnd:MissingTimezoneEvidence — MissingTimezoneEvidencend:NativeRecordEvidence — NativeRecordEvidencend:NoSelectedStructuralGap — NoSelectedStructuralGapnd:OptimizationDenominatorUnassessed — OptimizationDenominatorUnassessednd:ParameterMeaningRequiresReviewedContext — ParameterMeaningRequiresReviewedContextnd:ProjectionDiagnostic — ProjectionDiagnosticnd:ReviewedOptimizationDenominatorAndUnit — ReviewedOptimizationDenominatorAndUnitnd:SupportedBreakdownMapping — SupportedBreakdownMappingnd:UniqueAccountCurrency — UniqueAccountCurrencynd:UnresolvedAccountScope — UnresolvedAccountScopend:UnresolvedCreativeEvidence — UnresolvedCreativeEvidencend:UnsupportedBreakdown — UnsupportedBreakdownnd:WriteAuthorityUnassessed — WriteAuthorityUnassessednd:account — accountnd:affectedContract — affectedContractnd:affectedQuestion — affectedQuestionnd:evidenceNeeded — evidenceNeedednd:family — familynd:nativeRecordPresent — nativeRecordPresentnd:owner — ownernd:provider — providernd:rawPredicate — rawPredicatend:rawValue — rawValuend:reader — readernd:readerName — reader namend:reason — reasonnd:sharedRepresentationPresent — sharedRepresentationPresentnd:sourceStanding — sourceStandingnd:wirePath — wirePathnd:writeAuthorityStanding — writeAuthorityStanding