Configure datastream overrides

Datastream overrides allow you to define additional configurations for your datastreams, which get passed to the Edge Network via the Web SDK.

This helps you trigger different datastream behaviors than the default ones, without creating a datastream or modifying your existing settings.

Datastream configuration override is a two-step process:

  1. First, you must define your datastream configuration override in the datastream configuration page.

  2. Then, you must send the overrides to the Edge Network in one of the following ways:

This article explains the end-to-end datastream configuration override process for every type of supported override.

IMPORTANT
Datastream overrides are only supported for Web SDK and Mobile SDK integrations. Server API integrations do not currently support datastream overrides.


Datastream overrides should be used when you need different data sent to different datastreams. Do not use datastream overrides for personalization use cases or consent data.

Use cases use-cases

To help you better understand how and when to use datastream overrides, here are some use cases that Adobe Experience Platform customers can solve by using this feature.

Multi-region data collection

A company has different websites or subdomains for different countries in which they operate. They have configured separate datastreams with corresponding analytics-specific report suites, country-specific Adobe Target property tokens, country-specific schemas, datasets, Journey Optimizer configurations, and so on. The company also has a global set of configurations where all country-specific data is aggregated.

By using datastream overrides, the company can dynamically switch the flow of data to different datastreams, instead of the default behavior of sending data to one datastream.

A common use case could be sending data to a country-specific datastream and also to a global datastream where customers perform an important action, such as placing an order or updating their user profile.

Differentiating profiles and identities for different business units

A company with multiple business units wants to use multiple Experience Platforms sandboxes to store data specific to each business unit.

Instead of sending data to a default datastream, the company can use datastream overrides to make sure each business unit has its own datastream to receive data through.

Configure datastream overrides in the Datastreams UI configure-overrides

Datastream configuration overrides allow you to modify the following datastream configurations:

  • Experience Platform event datasets
  • Adobe Target property tokens
  • Audience Manager ID sync containers
  • Adobe Analytics report suites

Datastream overrides for Adobe Target target-overrides

To configure datastream overrides for an Adobe Target datastream, you must first have an Adobe Target datastream created. Follow the instructions to configure a datastream with the Adobe Target service.

Once you have created the datastream, edit the Adobe Target service that you have added and use the Property Token Overrides section to add the desired datastream overrides, as shown in the image below. Add one property token per line.

Datastreams UI screenshot showing the Adobe Target service settings, with the property token overrides highlighted.

After you’ve added the desired overrides, save your datastream settings.

You should now have the Adobe Target datastream overrides configured. Now you can send the overrides to the Edge Network via the Web SDK.

Datastream overrides for Adobe Analytics analytics-overrides

To configure datastream overrides for an Adobe Analytics datastream, you must first have an Adobe Analytics datastream created. Follow the instructions to configure a datastream with the Adobe Analytics service.

Once you have created the datastream, edit the Adobe Analytics service that you have added and use the Report Suite Overrides section to add the desired datastream overrides, as shown in the image below.

Select Show Batch Mode to enable batch editing of the report suite overrides. You can copy and paste a list of report suite overrides, entering one report suite per line.

Datastreams UI screenshot showing the Adobe Analytics service settings, with the report suite overrides highlighted.

After you’ve added the desired overrides, save your datastream settings.

You should now have the Adobe Analytics datastream overrides configured. Now you can send the overrides to the Edge Network via the Web SDK.

Datastream overrides for Experience Platform event datasets event-dataset-overrides

To configure datastream overrides for Experience Platform event datasets, you must first have an Adobe Experience Platform datastream created. Follow the instructions to configure a datastream with the Adobe Experience Platform service.

Once you have created the datastream, edit the Adobe Experience Platform service that you have added and select the Add Event Dataset option to add one or more override event datasets, as shown in the image below.

Datastreams UI screenshot showing the Adobe Experience Platform service settings, with the event dataset overrides highlighted.

After you’ve added the desired overrides, save your datastream settings.

You should now have the Adobe Experience Platform datastream overrides configured. Now you can send the overrides to the Edge Network via the Web SDK.

Datastream overrides for third party ID sync containers container-overrides

To configure datastream overrides for third party ID sync containers, you must first have a datastream created. Follow the instructions to configure a datastream to create one.

Once you’ve created the datastream, go to Advanced Options and enable the Third Party ID Sync option.

Then, use the Container ID Overrides section to add the container IDs that you want to override the default setting, as shown in the image below.

IMPORTANT
Container IDs must be numeric values, like 1234567, and not strings, such as "1234567". If you send a string value through the Web SDK as a container ID override, you will receive an error.

Datastreams UI screenshot showing the datastream settings, with the third party ID sync container overrides highlighted.

After you’ve added the desired overrides, save your datastream settings.

You should now have the ID sync container overrides configured. Now you can send the overrides to the Edge Network via the Web SDK.

Send the overrides to the Edge Network via the Web SDK send-overrides-web-sdk

After configuring datastream overrides in the Data Collection UI, you can send the overrides to the Edge Network through the Web SDK or Mobile SDK.

Datastream ID override via Mobile SDK id-override-mobile

The examples below show what a datastream ID override could look like on a Mobile SDK integration. Select the tabs below to see the iOS and Android examples.

iOS (Swift)

This example shows what a datastream ID override looks like in a Mobile SDK iOS integration.

code language-swift
// Create Experience event from dictionary
var xdmData: [String: Any] = [
  "eventType": "SampleXDMEvent",
  "sample": "data",
]
let experienceEvent = ExperienceEvent(xdm: xdmData, datastreamIdOverride: "SampleDatastreamId")

Edge.sendEvent(experienceEvent: experienceEvent) { (handles: [EdgeEventHandle]) in
  // Handle the Edge Network response
}
Android™ (Kotlin)

This example shows what a datastream ID override looks like in a Mobile SDK Android integration.

code language-kotlin
// Create experience event from Map
val xdmData = mutableMapOf < String, Any > ()
xdmData["eventType"] = "SampleXDMEvent"
xdmData["sample"] = "data"

val experienceEvent = ExperienceEvent.Builder()
    .setXdmSchema(xdmData)
    .setDatastreamIdOverride("SampleDatastreamId")
    .build()

Edge.sendEvent(experienceEvent) {
    // Handle the Edge Network response
}

Datastream configuration override via Mobile SDK config-override-mobile

The examples below show what a datastream configuration override could look like on a Mobile SDK integration. Select the tabs below to see the iOS and Android examples.

iOS (Swift)

This example shows what a datastream configuration override looks like in a Mobile SDK iOS integration.

code language-swift
// Create Experience event from dictionary
var xdmData: [String: Any] = [
  "eventType": "SampleXDMEvent",
  "sample": "data",
]

let configOverrides: [String: Any] = [
  "com_adobe_experience_platform": [
    "datasets": [
      "event": [
        "datasetId": "SampleEventDatasetIdOverride"
      ]
    ]
  ],
  "com_adobe_analytics": [
  "reportSuites": [
        "MyFirstOverrideReportSuite",
          "MySecondOverrideReportSuite",
          "MyThirdOverrideReportSuite"
      ]
  ],
  "com_adobe_identity": [
    "idSyncContainerId": "1234567"
  ],
  "com_adobe_target": [
    "propertyToken": "63a46bbc-26cb-7cc3-def0-9ae1b51b6c62"
 ],
]

let experienceEvent = ExperienceEvent(xdm: xdmData, datastreamConfigOverride: configOverrides)

Edge.sendEvent(experienceEvent: experienceEvent) { (handles: [EdgeEventHandle]) in
  // Handle the Edge Network response
}
Android (Kotlin)

This example shows what a datastream configuration override looks like in a Mobile SDK Android integration.

code language-kotlin
// Create experience event from Map
val xdmData = mutableMapOf < String, Any > ()
xdmData["eventType"] = "SampleXDMEvent"
xdmData["sample"] = "data"

val configOverrides = mapOf(
    "com_adobe_experience_platform"
    to mapOf(
        "datasets"
        to mapOf(
            "event"
            to mapOf("datasetId"
                to "SampleEventDatasetIdOverride")
        )
    ),
    "com_adobe_analytics"
    to mapOf(
        "reportSuites"
        to listOf(
            "MyFirstOverrideReportSuite",
            "MySecondOverrideReportSuite",
            "MyThirdOverrideReportSuite"
        )
    ),
    "com_adobe_identity"
    to mapOf(
        "idSyncContainerId"
        to "1234567"
    ),
    "com_adobe_target"
    to mapOf(
        "propertyToken"
        to "63a46bbc-26cb-7cc3-def0-9ae1b51b6c62"
    )
)

val experienceEvent = ExperienceEvent.Builder()
    .setXdmSchema(xdmData)
    .setDatastreamConfigOverride(configOverrides)
    .build()

Edge.sendEvent(experienceEvent) {
    // Handle the Edge Network response
}

Payload example payload-example

The examples above generate an Edge Network payload similar to the one below.

{
  "meta": {
    "configOverrides": {
      "com_adobe_experience_platform": {
        "datasets": {
          "event": {
            "datasetId": "SampleProfileDatasetIdOverride"
          }
        }
      },
      "com_adobe_analytics": {
        "reportSuites": [
        "MyFirstOverrideReportSuite",
        "MySecondOverrideReportSuite",
        "MyThirdOverrideReportSuite"
        ]
      },
      "com_adobe_identity": {
        "idSyncContainerId": "1234567"
      },
      "com_adobe_target": {
        "propertyToken": "63a46bbc-26cb-7cc3-def0-9ae1b51b6c62"
      }
    },
    "state": {  }
  },
  "events": [  ]
}
recommendation-more-help
c4bd45d4-a044-4e32-94ad-5e2f71800fac