Adobe Analytics
What Is Adobe Analytics?
Adobe Analytics is a digital analytics platform that helps organizations measure user behavior across websites 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 to Adobe as compressed CSV batches aligned to your report suite configuration.
Product Type: Analytics
Integration Type: Starter Kit
Event Source Type: Web & Mobile Browser
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.
- Mobile browser hinting (device model, platform, version) from server-side context.
- Deduplication support using purchaseID when provided.
Considerations
Event and Data Requirements
- The page event is sent without an
eventsfield 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_NAMESis 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 thevisitorID.purchaseID: Alphanumeric only, max 20 bytes. Truncation collisions can cause deduplication drops.- The Starter Kit does not send a
zipvalue 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.
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
currencyCodeis omitted, Adobe uses the report suite’s default currency.
- If
- 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_SCOPESandCOLUMN_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: No
Starter Kit Setup Guide
1. 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
2. Add a Adobe Analytics Integration
- From the integration library, add a Adobe Analytics integration. Then, fill out the Connection Parameters:
| Connection Parameter | Description |
|---|---|
CLIENT_ID | OAuth Server-to-Server client ID for BDIA access. |
CLIENT_SECRET | OAuth Server-to-Server client secret. |
TOKEN_SCOPES | Comma-delimited OAuth scopes (e.g., openid,AdobeID,additional_info.projectedProductContext). |
TOKEN_URL | OAuth token endpoint. Defaults to Adobe IMS if not provided. |
EVENT_ENDPOINT | BDIA Events endpoint (US/EU specific options available). |
COLUMN_NAMES | Comma-delimited CSV header list matching all mapped fields in this kit. Example (for the standard Starter Kit): timestamp,reportSuiteID,visitorID,userAgent,ipaddress,pageURL,pageName,events,products,purchaseID,currencyCode,referrer,hints.mobile,hints.model,hints.platform,hints.platformversion |
3. 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.
4. 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 Key | Description | Expected Input |
|---|---|---|
reportSuiteID Required | String: Target report suite ID(s). | Enrichment – 'ADD_REPORT_SUITE_ID_HERE' |
timestamp Required | Integer: Unix time (seconds). | Expression – convert input.timestamp (RFC3339) to Unix seconds |
userAgent Required | String: User agent string. | context.userAgent |
visitorID* Required- Please see note* below | String: Alphanumeric visitor ID (no dashes). | Expression – remove - from anonymousId |
ipaddress* Required- Please see note* below | String: IP address. | context.ip |
pageURL** Required- Please see note** below | String: Page URL. | context.page.url |
pageName** Required- Please see note** below | String: Page title. | context.page.title |
referrer | String: Referrer URL. | context.page.referrer |
hints.mobile | Boolean: True if mobile browser. | Expression – derives from context.device presence |
hints.model | String: Device model (if available). | Expression – context.device.model |
hints.platform | String: OS/platform name. | Expression – context.os.name |
hints.platformversion | String: OS/platform version. | Expression – context.os.version |
*IP is required if Visitor ID is not included.
**At least one of pageName or pageURL must be provided.
Event Specific
Order Completed
| Output Key | Description | Expected Input |
|---|---|---|
events | String: Event code. | Enrichment – 'purchase' |
products | String: Comma-delimited products; fields delimited by ;. Strips `; , | Expression – build from properties.products |
currencyCode | String: ISO currency (e.g., USD). Uppercase. | properties.currency |
purchaseID | String: Purchase ID (≤20 bytes; alphanumeric). | properties.order_id |
Product Viewed
| Output Key | Description | Expected Input |
|---|---|---|
events | String: Event code. | Enrichment – 'prodView' |
products | String: Product string; fields delimited by ;. Strips `; , | Expression – build from properties.* |
currencyCode | String: ISO currency (e.g., USD). Uppercase. | properties.currency |
Product Added
| Output Key | Description | Expected Input |
|---|---|---|
events | String: Event code. | Enrichment – 'scAdd' |
products | String: Product string; fields delimited by ;. Strips `; , | Expression – build from properties.* |
Product Removed
| Output Key | Description | Expected Input |
|---|---|---|
products | String: Product string; fields delimited by ;. Strips `; , | Expression – build from properties.* |
Cart Viewed
| Output Key | Description | Expected Input |
|---|---|---|
events | String: Event code. | Enrichment – 'scView' |
products | String: Comma-delimited products; fields delimited by ;. Strips `; , | Expression – build from properties.products |
currencyCode | String: ISO currency (e.g., USD). Uppercase. | properties.currency |
Checkout Started
| Output Key | Description | Expected Input |
|---|---|---|
events | String: Event code. | Enrichment – 'scCheckout' |
products | String: Comma-delimited products; fields delimited by ;. Strips `; , | Expression – build from properties.products |
currencyCode | String: 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.
| Attribute | Example | Sync Injector Required? |
|---|---|---|
ipaddress Required | 203.0.113.42 | No |
userAgent Required | Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)… | No |
visitorID Recommended | 4f8c2a7b9e3d | No |
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
- Bulk Data Insertion API overview
- BDIA endpoints and regions
- products variable
- Events overview
- currencyCode
- File format and required columns
Updated 8 days ago