Adobe Analytics
Adobe Analytics is commonly deployed through an Adobe Experience Platform Data Collection web property. Data Collection generates a property-specific Tags embed script, often hosted on assets.adobedtm.com, and that script can load Adobe Analytics, Web SDK, or other configured extensions and rules.
Integrate with c15t
import { type ReactNode } from 'react';
import { ConsentManagerProvider } from '@c15t/react';
import { adobeAnalytics } from '@c15t/scripts/adobe-analytics';
const scripts = [
adobeAnalytics({
scriptUrl:
'https://assets.adobedtm.com/YOUR_ORG/YOUR_PROPERTY/launch-production.min.js',
}),
];
export function ConsentProvider({ children }: { children: ReactNode }) {
return (
<ConsentManagerProvider
options={{
mode: 'hosted',
backendURL: 'https://your-instance.c15t.dev',
scripts,
}}
>
{children}
</ConsentManagerProvider>
);
}Find Your Embed URL
Open Adobe Data Collection, choose your Tags property, then open Environments. Select the install action for the environment you want to deploy and copy the web property embed script URL from the generated code.
Each Adobe environment has its own embed code. Use the production URL in production, and keep development or staging URLs limited to test environments. The URL is typically shaped like:
https://assets.adobedtm.com/{org}/{property}/launch-{env}.min.jsSelf-hosted Data Collection builds are supported too. c15t only requires a full https: URL.
How c15t loads it
- Category:
measurement(Analytics) - Loads when: measurement consent is granted
- On revocation: unloaded - c15t removes the Adobe Tags script element from the DOM.
The helper blocks the Adobe Tags library until measurement consent is granted. When measurement consent is revoked, c15t unloads the script element. Adobe rules, extensions, cookies, and downstream tags that already ran may have their own state, so configure Data Collection rules and extensions to respect your consent model as well.
This is the same caveat as tag managers: a Tags property can load more than Adobe Analytics. Keep non-measurement tags behind Adobe-side rule conditions, consent checks, or separate properties so they do not run from a measurement-only grant.
By default, c15t also seeds the Adobe Client Data Layer queue before loading:
adobeAnalytics({
scriptUrl:
'https://assets.adobedtm.com/YOUR_ORG/YOUR_PROPERTY/launch-production.min.js',
seedAdobeDataLayer: true,
})This creates window.adobeDataLayer = [] only when it is still undefined. Adobe's Client Data Layer extension uses adobeDataLayer as the default object name, and the pre-seed is harmless for properties that do not use that extension.
Adobe's _satellite object becomes available after the Tags library loads:
if (window._satellite) {
// Adobe Tags runtime is available.
}Use synchronous deployment only when a legacy Tags setup requires it:
adobeAnalytics({
scriptUrl:
'https://assets.adobedtm.com/YOUR_ORG/YOUR_PROPERTY/launch-production.min.js',
async: false,
})Types
AdobeAnalyticsOptions
Warning: ExtractedTypeTable: Could not extract "AdobeAnalyticsOptions" from "./packages/scripts/src/vendors/analytics/adobe-analytics.ts" using base path "/vercel/path0/apps/c15t-docs/.leadtype/c15t". Verify the path/name and that the file is included by your tsconfig.
Script
Warning: ExtractedTypeTable: Could not extract "Script" from "./packages/core/src/libs/script-loader/types.ts" using base path "/vercel/path0/apps/c15t-docs/.leadtype/c15t". Verify the path/name and that the file is included by your tsconfig.