Signal
This document lists information about the previous versions of the Adobe Experience Platform Mobile SDKs. Check out this page for latest versions and solution support of the Mobile SDKs.
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 is bundled with the MobileCore (Android)/ACPCore (iOS) extension and 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.
Watch the video
Add the Signal extension to your app
The Signal extension is included in the Mobile Core extension. Add the Mobile Core extension to your project using Cocoapods.
Add following pods in your Podfile
:
Copied to your clipboardpod 'ACPCore', '~> 2.0'
Import the Signal libraries:
Objective-C
Copied to your clipboard#import "ACPCore.h"#import "ACPSignal.h"
Swift
In Swift, the ACPCore includes ACPSignal:
Copied to your clipboardimport ACPCore
C#
After importing the ACPCore.unitypackage, the Signal extension for Unity can be added with following code in the MainScript
Copied to your clipboardusing com.adobe.marketing.mobile;
The Signal extension is included in the Mobile Core extension. Add the Mobile Core extension to your project using Cocoapods.
Add following pods in your Podfile
:
Copied to your clipboardpod 'ACPCore', '~> 2.0'
Import the Signal libraries:
Objective-C
Copied to your clipboard#import "ACPCore.h"#import "ACPSignal.h"
Swift
In Swift, the ACPCore includes ACPSignal:
Copied to your clipboardimport ACPCore
JavaScript
Importing the Signal extension:
Copied to your clipboardimport {ACPSignal} from '@adobe/react-native-acpcore';
Dart
Importing the Signal extension:
Copied to your clipboardimport 'package:flutter_acpcore/flutter_acpsignal.dart';
Cordova
After creating your Cordova app and adding the Android and iOS platforms, the Signal extension for Cordova can be added with this command:
Copied to your clipboardcordova plugin add https://github.com/adobe/cordova-acpcore.git
C#
After importing the ACPCore.unitypackage, the Signal extension for Unity can be added with following code in the MainScript
Copied to your clipboardusing com.adobe.marketing.mobile;
Register the Signal extension
The registerExtension()
API registers 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 Identity extension, use the following code sample:
In your app'sapplication:didFinishLaunchingWithOptions
, register the Signal extension with Mobile Core:
Objective-C
Copied to your clipboard- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {[ACPCore configureWithAppId:@"yourAppId"];[ACPSignal registerExtension];[ACPCore start:nil];// Override point for customization after application launch.return YES;}
Swift
Copied to your clipboardfunc application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {ACPCore.configure(withAppId: "yourAppId")ACPSignal.registerExtension()ACPCore.start(nil)// Override point for customization after application launch.return true;}
Please note that the Signal extension is automatically included in the Mobile Core pod. When you manually install the Signal extension, ensure that you add the libACPSignal_iOS.a
library to your project.
C#
iOS
Register the Signal extension with the Mobile Core by adding the following to your app's FinishedLaunching:
delegate method:
Copied to your clipboardpublic override bool FinishedLaunching(UIApplication app, NSDictionary options){ACPSignal.RegisterExtension();// start Mobile CoreACPCore.Start(startCallback);return base.FinishedLaunching(app, options);}private void startCallback(){// set app id from the Data Collection UIACPCore.ConfigureWithAppID("yourAppId");}
Android
Register the Signal extension with the Mobile Core by adding the following to your app's OnCreate:
method:
Copied to your clipboardprotected override void OnCreate(Bundle savedInstanceState){base.OnCreate(savedInstanceState);LoadApplication(new App());ACPCore.Application = this.Application;ACPSignal.RegisterExtension();// start Mobile CoreACPCore.Start(new CoreStartCompletionCallback());}class CoreStartCompletionCallback : Java.Lang.Object, IAdobeCallback{public void Call(Java.Lang.Object callback){// set app id from the Data Collection UIACPCore.ConfigureWithAppID("yourAppId");}}
In your app'sapplication:didFinishLaunchingWithOptions
, register the Signal extension with Mobile Core:
Objective-C
Copied to your clipboard- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {[ACPCore configureWithAppId:@"yourAppId"];[ACPSignal registerExtension];[ACPCore start:nil];// Override point for customization after application launch.return YES;}
Swift
Copied to your clipboardfunc application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {ACPCore.configure(withAppId: "yourAppId")ACPSignal.registerExtension()ACPCore.start(nil)// Override point for customization after application launch.return true;}
Please note that the Signal extension is automatically included in the Mobile Core pod. When you manually install the Signal extension, ensure that you add the libACPSignal_iOS.a
library to your project.
JavaScript
When using React Native, registering Signal with Mobile Core should be done in native code which is shown under the Android and iOS tabs.
Dart
When using Flutter, registering Signal with Mobile Core should be done in native code which is shown under the Android and iOS tabs.
Cordova
When using Cordova, registering Signal with Mobile Core must be done in native code which is shown under the Android and iOS tabs.
C#
Register the extension in the start()
function:
Copied to your clipboardvoid Start(){ACPSignal.RegisterExtension();}
C#
iOS
Register the Signal extension with the Mobile Core by adding the following to your app's FinishedLaunching:
delegate method:
Copied to your clipboardpublic override bool FinishedLaunching(UIApplication app, NSDictionary options){ACPSignal.RegisterExtension();// start Mobile CoreACPCore.Start(startCallback);return base.FinishedLaunching(app, options);}private void startCallback(){// set app id from the Data Collection UIACPCore.ConfigureWithAppID("yourAppId");}
Android
Register the Signal extension with the Mobile Core by adding the following to your app's OnCreate:
method:
Copied to your clipboardprotected override void OnCreate(Bundle savedInstanceState){base.OnCreate(savedInstanceState);LoadApplication(new App());ACPCore.Application = this.Application;ACPSignal.RegisterExtension();// start Mobile CoreACPCore.Start(new CoreStartCompletionCallback());}class CoreStartCompletionCallback : Java.Lang.Object, IAdobeCallback{public void Call(Java.Lang.Object callback){// set app id from the Data Collection UIACPCore.ConfigureWithAppID("yourAppId");}}
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.