Signal
The Signal extension allows marketers to send a "signal" to their apps through the Adobe Experience Platform Mobile SDKs. This signal might tell the Mobile SDKs or the apps to complete tasks, such as send PII-labeled data, to trigger a postback to a third-party ad-network and open an app deep link or URL. To ensure that signals are sent or are activated, the marketers need to configure triggers and traits in the Data Collection UI.
The Signal extension allows you to send postbacks to third-party endpoints and open URLs, such as web URLs or application deep links, when using rules actions in the Data Collection UI.
To send PII data to external destinations, the PII
action can trigger the Rules Engine when certain triggers and traits match. When setting a rule, you can also set the PII
action for a Signal event. The collectPii
API can then be used to trigger the rule and send the PII data to a remote server.
To get started with Signal extension, complete the following steps:
- Add the Signal extension to your app.
- Define the necessary rules in the Data Collection UI.
- (Optional) When using Send PII actions in the Data Collection UI, implement the APIs to collect PII data and send it to the configured third party destination.
For more information about creating and configuring a rule in the Data Collection UI, see Rules.
Add the Signal extension to your app
- Add the Signal extension and its dependency, the Mobile Core extension to your project using the app's Gradle file.
Kotlin
Copied to your clipboardimplementation(platform("com.adobe.marketing.mobile:sdk-bom:3.+"))implementation("com.adobe.marketing.mobile:core")implementation("com.adobe.marketing.mobile:signal")
Groovy
Copied to your clipboardimplementation platform('com.adobe.marketing.mobile:sdk-bom:3.+')implementation 'com.adobe.marketing.mobile:core'implementation 'com.adobe.marketing.mobile:signal'
Using dynamic dependency versions is not recommended for production apps. Please read the managing Gradle dependencies guide for more information.
- Import the Signal and MobileCore extensions in your application's main activity.
Copied to your clipboardimport com.adobe.marketing.mobile.MobileCore;import com.adobe.marketing.mobile.Signal;
After calling the setApplication()
method in the onCreate()
method, register the Signal extension.
Java
Copied to your clipboardpublic class MobileApp extends Application {@Overridepublic void onCreate() {super.onCreate();MobileCore.setApplication(this);List<Class<? extends Extension>> extensions = Arrays.asList(Signal.EXTENSION, ...);MobileCore.registerExtensions(extensions, o -> {// Any other post registration processing});}}
- Add the AEPSignal extension and it's dependency, the Mobile Core extension to your project using Cocoapods. Add following pods in your
Podfile
:
Copied to your clipboardpod 'AEPCore','~> 5.0'pod 'AEPSignal','~> 5.0'
- Import the Signal libraries:
Swift
Copied to your clipboardimport AEPCoreimport AEPSignal
Objective-C
Copied to your clipboard@import AEPCore;@import AEPSignal;
After calling the setApplication()
method in the onCreate()
method, register the Signal extension.
Java
Copied to your clipboardpublic class MobileApp extends Application {@Overridepublic void onCreate() {super.onCreate();MobileCore.setApplication(this);List<Class<? extends Extension>> extensions = Arrays.asList(Signal.EXTENSION, ...);MobileCore.registerExtensions(extensions, o -> {// Any other post registration processing});}}
- Add the Signal extension and its dependency, the Mobile Core extension to your project using the app's Gradle file.
Kotlin
Copied to your clipboardimplementation(platform("com.adobe.marketing.mobile:sdk-bom:3.+"))implementation("com.adobe.marketing.mobile:core")implementation("com.adobe.marketing.mobile:signal")
Groovy
Copied to your clipboardimplementation platform('com.adobe.marketing.mobile:sdk-bom:3.+')implementation 'com.adobe.marketing.mobile:core'implementation 'com.adobe.marketing.mobile:signal'
Using dynamic dependency versions is not recommended for production apps. Please read the managing Gradle dependencies guide for more information.
- Import the Signal and MobileCore extensions in your application's main activity.
Copied to your clipboardimport com.adobe.marketing.mobile.MobileCore;import com.adobe.marketing.mobile.Signal;
After calling the setApplication()
method in the onCreate()
method, register the Signal extension.
Java
Copied to your clipboardpublic class MobileApp extends Application {@Overridepublic void onCreate() {super.onCreate();MobileCore.setApplication(this);List<Class<? extends Extension>> extensions = Arrays.asList(Signal.EXTENSION, ...);MobileCore.registerExtensions(extensions, o -> {// Any other post registration processing});}}
- Add the AEPSignal extension and it's dependency, the Mobile Core extension to your project using Cocoapods. Add following pods in your
Podfile
:
Copied to your clipboardpod 'AEPCore','~> 5.0'pod 'AEPSignal','~> 5.0'
- Import the Signal libraries:
Swift
Copied to your clipboardimport AEPCoreimport AEPSignal
Objective-C
Copied to your clipboard@import AEPCore;@import AEPSignal;
After calling the setApplication()
method in the onCreate()
method, register the Signal extension.
Java
Copied to your clipboardpublic class MobileApp extends Application {@Overridepublic void onCreate() {super.onCreate();MobileCore.setApplication(this);List<Class<? extends Extension>> extensions = Arrays.asList(Signal.EXTENSION, ...);MobileCore.registerExtensions(extensions, o -> {// Any other post registration processing});}}
Register the Signal extension
The MobileCore.registerExtensions()
API can be used to register the Signal extension with the Mobile Core extension. This API allows the extension to send and receive events to and from the Mobile SDK.
To register the Signal extension, use the following code sample:
After calling the setApplication()
method in the onCreate()
method, register the Signal extension.
Java
Copied to your clipboardpublic class MobileApp extends Application {@Overridepublic void onCreate() {super.onCreate();MobileCore.setApplication(this);List<Class<? extends Extension>> extensions = Arrays.asList(Signal.EXTENSION, ...);MobileCore.registerExtensions(extensions, o -> {// Any other post registration processing});}}
After calling the setApplication()
method in the onCreate()
method, register the Signal extension.
Java
Copied to your clipboardpublic class MobileApp extends Application {@Overridepublic void onCreate() {super.onCreate();MobileCore.setApplication(this);List<Class<? extends Extension>> extensions = Arrays.asList(Signal.EXTENSION, ...);MobileCore.registerExtensions(extensions, o -> {// Any other post registration processing});}}
In your app's application:didFinishLaunchingWithOptions
, register the Signal extension with Mobile Core:
Swift
Copied to your clipboardfunc application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {MobileCore.registerExtensions([Signal.self, ...]) {MobileCore.configureWith(appId: "yourAppId")// Any other post registration processing}return true;}
Objective-C
Copied to your clipboard- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {[AEPMobileCore registerExtensions:@[AEPMobileSignal.class, ...] completion:^{[AEPMobileCore configureWithAppId: @"yourAppId"];// Any other post registration processing}];return YES;}
After calling the setApplication()
method in the onCreate()
method, register the Signal extension.
Java
Copied to your clipboardpublic class MobileApp extends Application {@Overridepublic void onCreate() {super.onCreate();MobileCore.setApplication(this);List<Class<? extends Extension>> extensions = Arrays.asList(Signal.EXTENSION, ...);MobileCore.registerExtensions(extensions, o -> {// Any other post registration processing});}}
After calling the setApplication()
method in the onCreate()
method, register the Signal extension.
Java
Copied to your clipboardpublic class MobileApp extends Application {@Overridepublic void onCreate() {super.onCreate();MobileCore.setApplication(this);List<Class<? extends Extension>> extensions = Arrays.asList(Signal.EXTENSION, ...);MobileCore.registerExtensions(extensions, o -> {// Any other post registration processing});}}
In your app's application:didFinishLaunchingWithOptions
, register the Signal extension with Mobile Core:
Swift
Copied to your clipboardfunc application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {MobileCore.registerExtensions([Signal.self, ...]) {MobileCore.configureWith(appId: "yourAppId")// Any other post registration processing}return true;}
Objective-C
Copied to your clipboard- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {[AEPMobileCore registerExtensions:@[AEPMobileSignal.class, ...] completion:^{[AEPMobileCore configureWithAppId: @"yourAppId"];// Any other post registration processing}];return YES;}
Implement the Mobile SDK to send PII data to external destinations
To send PII data to external destinations, the PII
action can trigger the Rules Engine when the configured triggers and traits match. When creating a rule, you can set the PII
action for a Signal event, so that collectPii
can trigger the rule and send the PII
data.
For more information about collectPii
and its usage, see collectPii.
For more information about how to configure the Signal postbacks in the Data Collection UI, see Signal extension and Rules Engine integration.