IntegrationsAnalyticsAdobe Experience Platform

Adobe Experience Platform

Server-side data ingestion into Adobe Experience Platform (AEP) via the Streaming Ingestion API for real-time profile enrichment and audience activation.

Why route Adobe Experience Platform through Datafly Signal

  • Your numbers stop depending on what the browser allows. Client-side analytics loses every visit where the tag is blocked or the page unloads early. Signal delivers from the server, so Adobe Experience Platform receives the complete event stream.
  • Client IP and user agent are carried in the payload. Both are taken from the original visitor request rather than your server, which is what Adobe Experience Platform needs to attribute the event to the right session.
  • Presets for Retail and Automotive. The mapping starts from a working configuration for your vertical instead of a blank field map.
  • One consent decision governs every destination. Adobe Experience Platform is gated by the same consent state as the rest of your stack, so a withdrawal applies everywhere at once.

Prerequisites

Before configuring Adobe Experience Platform in Datafly Signal, you need an AEP account with a schema, dataset, streaming connection, and API credentials.

Step 1: Access Adobe Experience Platform

  1. Go to experience.adobe.com and sign in with your Adobe ID.
  2. Click the app switcher (nine-dot menu) and select Experience Platform.
  3. If you do not have access, contact your Adobe account administrator to provision AEP for your organization.

Step 2: Create an XDM Schema

  1. In AEP, navigate to Schemas in the left sidebar.
  2. Click Create schema and select XDM ExperienceEvent (for time-series event data).
  3. Give the schema a name (e.g. “Datafly Signal Events”).
  4. Add field groups relevant to your use case (e.g. Commerce Details, Web Details).
  5. Click Save and copy the Schema ID from the schema details panel.

XDM ExperienceEvent is the correct schema class for event data from Datafly Signal. Use XDM Individual Profile only if you are sending profile updates rather than events.

Step 3: Create a Dataset

  1. Navigate to Datasets in the left sidebar.
  2. Click Create dataset from schema.
  3. Select the schema you created in Step 2.
  4. Give the dataset a name (e.g. “Datafly Signal Events Dataset”).
  5. Click Finish and copy the Dataset ID from the dataset details page.
⚠️

Ensure the dataset is enabled for Profile if you want incoming events to contribute to Real-Time Customer Profiles. This is configured on the dataset details page.

Step 4: Set Up a Streaming Connection

  1. Navigate to Sources in the left sidebar.
  2. Find HTTP API under the Streaming category.
  3. Click Add data and then New account.
  4. Enter a name for the connection (e.g. “Datafly Signal Ingest”).
  5. Optionally enable XDM-compatible data and authentication.
  6. Click Connect to source and copy the Connection ID and Streaming endpoint URL.
  7. Create the dataflow from the connection to your dataset and copy its Dataflow ID (Sources > Dataflows). Adobe requires it on every XDM message.

Step 5: Find Your Organization ID

  1. Go to the Adobe Admin Console.
  2. Click Organization in the top navigation.
  3. Your Organization ID is displayed in the format 1234567890ABCDEF@AdobeOrg.
  4. Copy this value.

Step 6: Authentication (optional)

Leave authentication off on the streaming connection unless your policy requires it. An authenticated connection needs an IMS access token in the access_token field; IMS tokens expire after 24 hours and Signal does not refresh them yet, so an authenticated connection stops accepting events when the token expires.

Step 7: Note Your Sandbox Name

  1. In AEP, check the sandbox selector in the top-right corner.
  2. The sandbox name is shown (e.g. prod for production, or a custom development sandbox name).
  3. Use this value for the sandbox_name config field.

API Endpoint

POST https://dcs.adobedc.net/collection/{connection_id}

Each event is one XDM ExperienceEvent message in the documented HTTP API streaming shape:

{
  "header": {
    "schemaRef": { "id": "{schema_id}", "contentType": "application/vnd.adobe.xed-full+json;version=1" },
    "imsOrgID": "{org_id}", "datasetId": "{dataset_id}", "flowId": "{flow_id}",
    "source": { "name": "Datafly Signal" }
  },
  "body": {
    "xdmMeta": { "schemaRef": { "id": "{schema_id}", "contentType": "application/vnd.adobe.xed-full+json;version=1" } },
    "xdmEntity": { "_id": "<event ID>", "timestamp": "<ISO 8601>", "eventType": "commerce.purchases", "...": "..." }
  }
}

Authentication is optional; see Step 6.

Configuration

FieldTypeRequiredDescription
connection_idstringYesThe streaming connection ID from your HTTP API source. Found in Sources > HTTP API > connection details.
org_idstringYesYour Adobe IMS Organization ID in the format XXXXX@AdobeOrg. Found in the Adobe Admin Console.
dataset_idstringYesThe target AEP Dataset ID to receive ingested data. Found in Datasets > dataset details.
schema_idstringYesThe XDM Schema ID that the dataset is based on. Found in Schemas > schema details.
flow_idstringYesThe HTTP API streaming dataflow ID (Sources > Dataflows). Events without it are dropped before delivery.
sandbox_namestringYesThe AEP sandbox to target. Use prod for production or the name of your development sandbox.
access_tokensecretNoIMS bearer token, only for a connection created with authentication required. Expires after 24 hours; not refreshed by Signal yet.

Management UI Setup

  1. Go to Integrations in the sidebar.
  2. Open the Integration Library tab.
  3. Find Adobe Experience Platform or filter by Analytics.
  4. Click Install and fill in the required fields:
    • Enter your Organization ID from Step 5.
    • Enter your Connection ID from Step 4.
    • Enter your Dataset ID from Step 3.
    • Enter your Schema ID from Step 2.
    • Enter your Sandbox Name from Step 7.
    • Enter your Dataflow ID from Step 4.
    • Leave Access Token empty unless the connection requires authentication (Step 6).
  5. Click Install Integration to create the integration with a ready-to-use default blueprint.

Management API Setup

curl -X POST http://localhost:8084/v1/admin/integration-catalog/adobe_experience_platform/install \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Adobe Experience Platform",
    "variant": "default",
    "config": {
      "connection_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "org_id": "1234567890ABCDEF@AdobeOrg",
      "dataset_id": "5f1234abcd567890ef123456",
      "schema_id": "https://ns.adobe.com/mycompany/schemas/abc123",
      "flow_id": "f2ae0194-8bd8-4a40-a4d9-f07bdc3e6ce2",
      "sandbox_name": "prod"
    },
    "delivery_mode": "server_side"
  }'

Event Mapping

Every event carries _id (the Signal event ID), timestamp, eventType, an identityMap, environment.browserDetails.userAgent, environment.ipV4, web.webPageDetails.URL and web.webReferrer.URL. Only standard XDM ExperienceEvent fields are written, so the dataset’s schema needs the Web details, Commerce details and Environment details field groups.

Signal eventXDM eventTypeXDM fields
pageweb.webpagedetails.pageViewsweb.webPageDetails.name, web.webPageDetails.pageViews.value = 1
view_item, vehicle_viewedcommerce.productViewscommerce.productViews.value = 1, productListItems[]
view_item_list, view_cartcommerce.productListViewsproductListItems[]
add_to_cart / remove_from_cartcommerce.productListAdds / commerce.productListRemovalsproductListItems[]
add_to_wishlist, vehicle_savedcommerce.saveForLatersproductListItems[]
begin_checkout, application_startedcommerce.checkoutsproductListItems[]
purchase, policy_purchased, policy_renewedcommerce.purchasescommerce.order.purchaseID, priceTotal, currencyCode, productListItems[]
Insurance quote, lead, claim and document eventsinsurance.<eventName> (e.g. insurance.quoteRequested)common fields only
Automotive search, lead, test drive and service eventsautomotive.<eventName>common fields only

productListItems[] is built from items[]: SKU (item ID), name, quantity, priceTotal (price times quantity) and currencyCode. Vertical attributes such as insurance_type or a vehicle’s make need custom fields under your tenant namespace (_<tenant>); add them to the installed blueprint.

Identity

SourceXDM field
vendor_ids.ecididentityMap.ECID[0].id
Email from datafly.identify() (else the event’s email)identityMap.Email[0].id (trimmed, lower-cased, plain text)

Experience Platform is your own profile store, and the Journey Optimizer and Campaign destinations it feeds send email to the profile, so the email is streamed in plain text in the standard Email namespace (its advertising destinations hash on export; see Personal data by integration). The Email identity namespace must be enabled on the schema. For unified Adobe profiles, also install the Adobe Identity Service so the Experience Cloud ID (ECID) joins web and AEP events.

Default consent category: analytics. AEP is treated as an analytics destination by default — add advertising if you use AEP audiences for paid-media activation.

Verify it’s working

  1. In the Signal Management UI, open your AEP integration and watch the Live Events stream as you trigger events on your site.
  2. Confirm 200 responses from dcs.adobedc.net/collection/{connection_id}.
  3. In AEP, open Monitoring for streaming ingestion metrics and Datasets > Preview dataset to inspect ingested records.

Testing

Once your integration is active and events are flowing, verify in Adobe Experience Platform:

  1. Navigate to Monitoring in the left sidebar to view streaming ingestion metrics.
  2. Check your dataset under Datasets — the Preview dataset button shows recently ingested records.
  3. Open Profiles and search by an identity value to verify profile enrichment.
  4. Check Sources > HTTP API > Dataflows for ingestion success rates and error counts.

Streaming data typically appears in AEP within 1-3 minutes. Profile updates may take up to 15 minutes to propagate to all downstream services.

Troubleshooting

SymptomCauseFix
401 authentication errorExpired or invalid access tokenGenerate a new token in the Adobe Developer Console
403 forbiddenInsufficient permissions or wrong sandboxVerify product profile permissions and sandbox name
400 schema validation errorEvent payload does not match XDM schemaCheck that your blueprint field mappings match the schema field groups
No data in datasetIncorrect connection ID or dataset IDVerify IDs match in both AEP and Signal config
Profile not updatingDataset not enabled for ProfileEnable the Profile toggle on the dataset details page
Events accepted but not visibleSandbox mismatchEnsure the sandbox_name config matches the sandbox where your dataset exists
Intermittent 503 errorsAEP service temporarily unavailableSignal retries automatically with exponential backoff; no action needed

Delivery

Events are delivered server-side from your Datafly Signal infrastructure directly to the Adobe Experience Platform Streaming Ingestion API. No client-side Adobe scripts are loaded for this integration.

Visit the Adobe Experience Platform API documentation for full API reference and advanced configuration options.

Blueprint

The Adobe Experience Platform blueprint version is 0.22.0 (not yet tested against a live sandbox). It ships with Retail, Insurance and Automotive presets.

See also