Identity for Edge Network

The Identity for Edge Network mobile extension enables identity management, including the Experience Cloud ID (ECID), from your mobile app when using the Adobe Experience Platform Mobile SDK and the Edge Network extension.

Use the Identity for Edge Network extension when including the Edge Network extension into an application. The Identity for Edge Network extension is not used with Adobe Solution extensions, which must use the Identity for Experience Cloud ID Service extension.

Configure the Identity extension in the Data Collection UI

  1. In Data Collection UI, in your mobile property, select the Extensions tab.
  2. On the Catalog tab, locate or search for the Identity extension, and select Install.
  3. Select or clear Optimize syncing operational profile data. The setting is selected by default. For details, see Optimize syncing operational profile data.
  4. Select Save.
  5. Follow the publishing process to update SDK configuration.

Identity for Edge Network extension configuration

Optimize syncing operational profile data

Identity Tags extension version 2.1.1 adds Optimize syncing operational profile data. The setting saves the boolean edgeidentity.optimizeOperationalProfileDataSync configuration key. The Tags UI selects the setting by default.

When the setting is selected, the SDK sends the timezone, push token and Live Activity push-to-start tokens only when they change. Other operational values are sent on every sync. When the setting is cleared, the SDK sends every value on every sync.

Mobile SDK configuration APIs

You can also set the key from your app with the MobileCore.updateConfiguration API:

Key
Required
Description
Data Type
Operating System
edgeidentity.optimizeOperationalProfileDataSync
No
When true, the timezone, push token and Live Activity push-to-start tokens are sent only when they change. When false, every value is sent on every sync. The Tags UI selects this setting by default.
Boolean
Android/iOS
Android
val config = mapOf("edgeidentity.optimizeOperationalProfileDataSync" to false)
MobileCore.updateConfiguration(config)
iOS
let config = ["edgeidentity.optimizeOperationalProfileDataSync": false]
MobileCore.updateConfigurationWith(configDict: config)

Sync operational data to the Edge Network

Use the Sync Operational Data event and the Forward Operational Data to Edge Network action together. The rule decides which operational data the SDK sends to the Edge Network, independent of collect consent.

Operational data sync requires these SDK versions or later. Older SDKs ignore the configuration key, event and action.

Sync Operational Data rule event

Identity Tags extension version 2.1.1 adds Sync Operational Data under the Attributes event category in the rule builder. Select Identity as the event extension, then select Sync Operational Data. The event has no additional configuration.

The SDK triggers this event when your app calls updateOperationalData (Android, iOS). On iOS, the Adobe Journey Optimizer extension also triggers it with Live Activity tokens.

Forward Operational Data to Edge Network

Identity Tags extension version 2.1.1 adds Forward Operational Data to Edge Network. The action says: "Forwards the selected operational data to the Edge Network. App ID and platform are always included."

  1. Add the Sync Operational Data event to your rule.
  2. Add an action, select Identity, then select Forward Operational Data to Edge Network.
  3. Select the fields to forward:
Setting
Initial selection
Description
Timezone
Selected
The device time zone, so messages can be timed to the user's local hours.
Push token
Not selected
The device push token, used to deliver push notifications to this device.
Live Activity tokens
Not selected
The push-to-start and update tokens for Live Activities on the device's lock screen and Dynamic Island. iOS only. Android uses the push token.
  1. Save the action and include the updated rule and extension revisions in your library.

Forward Operational Data to Edge Network action configuration

The SDK sends only the selected fields. Saving with no fields selected is valid.

Add the Identity For Edge Network extension to your app

data-variant=info
data-slots=text
The following instructions are for configuring an application using Adobe Experience Platform Edge mobile extensions. If an application will include both Edge Network and Adobe Solution extensions, both the Identity for Edge Network and Identity for Experience Cloud ID Service extensions are required. Find more details in the frequently asked questions.
data-variant=info
data-slots=text
When using the setAdvertisingIdentifier API, see the setup guide for Consent for Edge Network for instructions on setting up the extension and profile schema for proper usage.

Include Identity extension as an app dependency

Add MobileCore, Edge, EdgeIdentity extensions as dependencies to your project.

Android Kotlin

Add the required dependencies to your project by including them in the app's Gradle file.

implementation(platform("com.adobe.marketing.mobile:sdk-bom:3.+"))
implementation("com.adobe.marketing.mobile:core")
implementation("com.adobe.marketing.mobile:edge")
implementation("com.adobe.marketing.mobile:edgeidentity")
data-variant=warning
data-slots=text
Using dynamic dependency versions is not recommended for production apps. Please read the managing Gradle dependencies guide for more information.

Android Groovy

Add the required dependencies to your project by including them in the app's Gradle file.

implementation platform('com.adobe.marketing.mobile:sdk-bom:3.+')
implementation 'com.adobe.marketing.mobile:core'
implementation 'com.adobe.marketing.mobile:edge'
implementation 'com.adobe.marketing.mobile:edgeidentity'
data-variant=warning
data-slots=text
Using dynamic dependency versions is not recommended for production apps. Please read the managing Gradle dependencies guide for more information.

iOS CocoaPods

Add the required dependencies to your project using CocoaPods. Add following pods in your Podfile:

use_frameworks!
target 'YourTargetApp' do
    pod 'AEPCore', '~> 5.0'
    pod 'AEPEdge', '~> 5.0'
    pod 'AEPEdgeIdentity', '~> 5.0'
    pod 'AEPEdgeConsent', '~> 5.0' // Recommended when using the setAdvertisingIdentifier API
end

Initialize Adobe Experience Platform SDK with Identity for Edge Network Extension

Next, initialize the SDK by registering all the solution extensions that have been added as dependencies to your project with Mobile Core. For detailed instructions, refer to the initialization section of the getting started page.

Using the MobileCore.initialize API to initialize the Adobe Experience Platform Mobile SDK simplifies the process by automatically registering solution extensions and enabling lifecycle tracking.

Android Kotlin

data-variant=warning
data-slots=text
This API is available starting from Android BOM version 3.8.0.
import com.adobe.marketing.mobile.LoggingMode
import com.adobe.marketing.mobile.MobileCore
...
import android.app.Application
...

class MainApp : Application() {
  override fun onCreate() {
    super.onCreate()
    MobileCore.setLogLevel(LoggingMode.DEBUG)
    MobileCore.initialize(this, "ENVIRONMENT_ID")
  }
}

Android Java

data-variant=warning
data-slots=text
This API is available starting from Android BOM version 3.8.0.
import com.adobe.marketing.mobile.LoggingMode;
import com.adobe.marketing.mobile.MobileCore;
...
import android.app.Application;
...
public class MainApp extends Application {
  @Override
  public void onCreate(){
    super.onCreate();
    MobileCore.setLogLevel(LoggingMode.DEBUG);
    MobileCore.initialize(this, "ENVIRONMENT_ID");
  }
}

iOS Swift

data-variant=warning
data-slots=text
This API is available starting from iOS version 5.4.0.
// AppDelegate.swift
import AEPCore
import AEPServices
...

final class AppDelegate: NSObject, UIApplicationDelegate {
  func application(_: UIApplication, didFinishLaunchingWithOptions _: [UIApplication.LaunchOptionsKey: Any]? = nil) -> Bool {
    MobileCore.setLogLevel(.debug)
    MobileCore.initialize(appId: "ENVIRONMENT_ID")
    ...
  }
}

iOS Objective-C

data-variant=warning
data-slots=text
This API is available starting from iOS version 5.4.0.
// AppDelegate.m
#import "AppDelegate.h"
@import AEPCore;
@import AEPServices;
...
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  [AEPMobileCore setLogLevel: AEPLogLevelDebug];  
  [AEPMobileCore initializeWithAppId:@"ENVIRONMENT_ID" completion:^{
      NSLog(@"AEP Mobile SDK is initialized");
  }];
  ...
  return YES;
}
@end

Advertising identifier

The Identity for Edge Network extension compares the previously stored advertising identifier value with the new value received from the setAdvertisingIdentifier API and handles the following scenarios:

Ad tracking enabled - when the new value sent to the API is:

Process:

  1. Updates the client side XDM IdentityMap with the new value for IDFA/GAID, which is included in subsequent XDM Experience events. For more details, see the standard Identity namespaces.
  2. Sends a consent update event with ad ID consent preferences set to yes (only when a valid ad ID is absent from the IdentityMap and the Edge Consent extension is registered and properly configured).

Ad tracking disabled - Given a valid ad ID already exists in the IdentityMap, and the new value sent to the API is:

Process:

  1. Removes the ad ID from the client side XDM IdentityMap, which is removed from subsequent XDM Experience events.
  2. Sends a consent update event with ad ID consent preferences set to no (only when the Edge Consent extension is registered and properly configured).

No operations are executed when no changes are detected between the previously stored and new ad ID value.