Adobe Analytics

What Is Adobe Analytics?

Adobe Analytics is a digital analytics platform that helps organizations measure user behavior across websites, mobile apps, and other digital touchpoints. It ingests event data, attributes performance to channels, and provides customizable reporting and segmentation. Using the Bulk Data Insertion API (BDIA), MetaRouter delivers server-side events from both web and app sources as compressed CSV batches aligned to your report suite configuration.


Product Type: Analytics

Integration Type: Starter Kit

Event Source Type: Web, Mobile Browser, & Mobile App

Event Scope: Full-Funnel


Capabilities

  • Server-side delivery to BDIA as compressed CSV batch files.
  • Support for key commerce events.
  • Visitor and session context via IP, user agent, page URL/name, and referrer.
  • Support for Adobe Experience Cloud ID (ECID/marketingCloudVisitorID) when used with the Adobe identity sync.
  • Mobile browser hinting (device model, platform, version) from server-side context.
  • Deduplication support using purchaseID when provided.
  • App event support including screen views and synthesized app user agent strings.
  • Language and locale collection via context.locale for use in Adobe reporting and segmentation.

Considerations

Event and Data Requirements

  • The page event is sent without an events field value, which Adobe automatically registers as a Page View.
  • Ensure your report suite allows timestamped data; BDIA requires a timestamp on every hit.
    • Unix Time and ISO-8601 are supported for timestamp. Milliseconds are not allowed.
  • Any field not listed in COLUMN_NAMES is dropped from CSV output (data loss risk).
  • visitorID: Must be alphanumeric and up to 100 bytes. Avoid using symbols or dashes — the starter kit automatically removes dashes from the anonymousId value before sending it as the visitorID.
  • purchaseID: Alphanumeric only, max 20 bytes. Truncation collisions can cause deduplication drops.
  • The Starter Kit does not send a zip value by default. To have Adobe Analytics derive zip codes from IP addresses, go to Report Suite Settings → General Account Settings → Zip Options and select a setting that always uses Geo Zip.
  • language: If included in COLUMN_NAMES, this field stores the locale (for example, en-US) from the incoming event for downstream reporting.

Currency and Product Formatting

  • currencyCode: If set, it must be a valid Adobe currency code; invalid values cause the entire hit to be dropped.
    • If currencyCode is omitted, Adobe uses the report suite’s default currency.
  • The products field uses semicolons (;) to separate product attributes and commas (,) to separate multiple products. Remove any , ; or | characters from product names, categories, or eVar values before sending.
  • Use dot (.) as the decimal separator in products values (e.g., 18.99).
  • Revenue is the sum of price component in products; send total price = unit × quantity.

Data Transport and Configuration

  • Data can be sent to Adobe in two ways: using column headers or a single queryString column with URL-encoded values. While most fields can be included in the queryString, certain fields are required to exist as separate columns. The Starter Kit uses the column header approach by default, but both methods are supported. If a field is present in both, the column header value takes priority.
  • Column names are mostly case-insensitive, but some require exact casing. Follow Adobe’s naming scheme—any case mismatch between playbook output and column name will exclude the field from the CSV.
  • All CSV files are sent under the visitor group metarouter-1. If other data sources also send to the Bulk Data Insertion API, this group name should not be utilized.
  • UI parameters that accept array values (TOKEN_SCOPES and COLUMN_NAMES) must be entered as comma-delimited strings. Do not include outer quotes—only wrap values containing commas in quotes (e.g., timestamp,ipaddress,"comma,example",pageName).
  • Choose regional BDIA endpoints (US/EU) to meet data residency requirements.
  • If you are self-hosted, please note Adobe prefers fewer, larger gzipped CSV uploads; keep files under 100 MB compressed.

Limitations

  • Output must be a flat JSON before CSV rendering (see Mobile Device Mappings example for producing hints.* flat keys).
  • scOpen (Carts) is not included by default because it is typically defined to fire only once when a visitor first adds a product to the cart, which does not align with standard AJS e-commerce event behavior.

Identity Sync

  • Sync Available: Yes
  • Required for Starter Kit: No
  • Prerequisites: Adobe Org ID
  • Documentation: See Additional Adobe Sync Documentation

Sync Details

  • Resolves the Adobe Experience Cloud ID (mid / marketingCloudVisitorID) through the Adobe sync injector; Demdex is not required for collecting mid.
  • Stores IDs in first-party cookies with configurable lifetimes so the sync does not run on every page view.
  • When an Adobe Org ID is provided, the sync can return ECID as mid, which is exposed in events as context.providers.adobe.mid.

Starter Kit Setup Guide

1. Deploy the Adobe Analytics Sync (optional)

  • To collect the sync values (e.g., mid / marketingCloudVisitorID), you must implement an Adobe Analytics ID sync. Refer to the following documentation to complete the setup: Adobe Analytics – ID Sync Guide.

2. Gather Credentials

  • Client ID, Client Secret, Token Scopes: Follow Adobe’s Server-to-Server Authentication setup guide to obtain your Client ID, Client Secret, and Token Scopes from the Adobe Developer Console: OAuth Server-to-Server Credential
  • Report Suite ID: You can find your Report Suite ID in the Adobe Analytics Admin Console under Analytics → Report Suites. It appears in the “Report Suite ID” column next to each suite name and usually follows the format examplecompanyglobalprod. This value must match exactly in your integration for data to be accepted.
  • You must assign the technical account (or associated Adobe I/O integration) a product profile in the Adobe Admin Console that includes access to Analytics and the specific report suite(s). Product Profile Permissions
  • The product profile must also include the Web Service Access permission under Analytics Tools to enable API usage. Analytics Tools Permissions

3. Add a Adobe Analytics Integration

  • From the integration library, add a Adobe Analytics integration. Then, fill out the Connection Parameters:
Connection ParameterDescription
REPORT_SUITE_IDAdobe Analytics report suite ID used for BDIA ingestion. Must match the Report Suite ID configured in Adobe.
CLIENT_IDOAuth Server-to-Server client ID for BDIA access.
CLIENT_SECRETOAuth Server-to-Server client secret.
TOKEN_SCOPESComma-delimited OAuth scopes (e.g., openid,AdobeID,additional_info.projectedProductContext).
TOKEN_URLOAuth token endpoint. Defaults to Adobe IMS if not provided.
EVENT_ENDPOINTBDIA Events endpoint (US/EU specific options available).
COLUMN_NAMESComma-delimited CSV header list matching all mapped fields in this kit. Example (for the standard Starter Kit): timestamp,reportSuiteID,visitorID,userAgent,ipaddress,pageURL,pageName,language,events,products,purchaseID,currencyCode,referrer,hints.mobile,hints.model,hints.platform,hints.platformversion

4. Configure Event Mapping

  • MetaRouter provides all of the event mappings that Adobe Analytics integrations typically require. You may add custom events, parameters, or mappings in accordance with Adobe Analytics's API documentation.

5. Deploy to Pipeline

  • In the Pipelines tab, add your Adobe Analytics integration.
  • Select the correct integration revision.
  • Click Add Integration and finalize deployment.

Event Mappings

Global

Global mappings will be applied to all events. If your parameter names do not match the Expected Inputs provided, you will need to overwrite the Inputs provided with your own.

Output KeyDescriptionExpected Input
timestamp RequiredInteger: Unix time (seconds).Expression – convert input.timestamp (RFC3339) to Unix seconds
userAgent RequiredString: User agent string; synthesized for app events using app, OS, device, and locale context.context.userAgent
visitorID* Required- Please see note* belowString: Alphanumeric visitor ID (no dashes).Expression – remove - from anonymousId
ipaddress* Required- Please see note* belowString: IP address.context.ip
pageURL** Required- Please see note** belowString: Page URL.context.page.url
pageName** Required- Please see note** belowString: Page title.context.page.title
marketingCloudVisitorIDString: Adobe Experience Cloud ID (ECID) from identity sync.context.providers.adobe.mid
referrerString: Referrer URL.context.page.referrer
hints.mobileBoolean: True if mobile browser.Expression – derives from context.device presence
hints.modelString: Device model (if available).Expression – context.device.model
hints.platformString: OS/platform name.Expression – context.os.name
hints.platformversionString: OS/platform version.Expression – context.os.version
languageString: Locale/language (e.g., en-US).context.locale

*IP is required if Visitor ID is not included.

**At least one of pageName or pageURL must be provided.

Event Specific

Order Completed

Output KeyDescriptionExpected Input
eventsString: Event code.Enrichment – 'purchase'
productsString: Comma-delimited products; fields delimited by ;. Strips `; ,Expression – build from properties.products
currencyCodeString: ISO currency (e.g., USD). Uppercase.properties.currency
purchaseIDString: Purchase ID (≤20 bytes; alphanumeric).properties.order_id

Product Viewed

Output KeyDescriptionExpected Input
eventsString: Event code.Enrichment – 'prodView'
productsString: Product string; fields delimited by ;. Strips `; ,Expression – build from properties.*
currencyCodeString: ISO currency (e.g., USD). Uppercase.properties.currency

Product Added

Output KeyDescriptionExpected Input
eventsString: Event code.Enrichment – 'scAdd'
productsString: Product string; fields delimited by ;. Strips `; ,Expression – build from properties.*

Product Removed

Output KeyDescriptionExpected Input
productsString: Product string; fields delimited by ;. Strips `; ,Expression – build from properties.*

Cart Viewed

Output KeyDescriptionExpected Input
eventsString: Event code.Enrichment – 'scView'
productsString: Comma-delimited products; fields delimited by ;. Strips `; ,Expression – build from properties.products
currencyCodeString: ISO currency (e.g., USD). Uppercase.properties.currency

Checkout Started

Output KeyDescriptionExpected Input
eventsString: Event code.Enrichment – 'scCheckout'
productsString: Comma-delimited products; fields delimited by ;. Strips `; ,Expression – build from properties.products
currencyCodeString: ISO currency (e.g., USD). Uppercase.properties.currency

Required & Recommended Identifiers

These identifiers must be mapped to Adobe Analytics in order for successful user matching to occur. Without these IDs, any events sent to Adobe Analytics may not be accurately reflected in reporting.

AttributeExampleSync Injector Required?
ipaddress Required203.0.113.42No
userAgent RequiredMozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)…No
visitorID Recommended4f8c2a7b9e3dNo
marketingCloudVisitorID Recommended79638412001460421Yes

Integration Validation

You can validate the integration by reviewing your standard reports in Adobe Analytics for the Report Suite ID configured in the integration. It is recommended to first test the setup using a staging report suite in a staging environment to confirm that events are flowing correctly before enabling data collection in production.


Additional Adobe Analytics Documentation