• Platforms
  • Partners
  • Forums
  • TLC Tealium Learning Center Tealium Learning
    Community
  • Discussions & Ideas Dicussions & Ideas
  • Product Guides Product Guides
  • Knowledge Base Knowledge Base
  • Developer Docs Developer Docs
  • Education Education
  • TLC Blog TLC Blog
  • Support Desk Support Desk
  • CDH Customer Data Hub Customer Data Hub

Table of Contents

  • Requirements
  • Supported Platforms
  • Install
    • CocoaPods
    • Carthage
  • Example
  • Data Layer
  • API Reference
    • init()
    • add()
    • remove()
    • disableRemoteCommands()
    • enableRemoteCommands()
    • disableRemoteHTTPCommand()
    • enableRemoteHTTPCommand()
  • Remote HTTP Command
IOS SWIFT V1 IOS SWIFT V1/MODULE LIST

RemoteCommands Module

Enables triggering of native code blocks from events in Tealium iQ Tag Management, controlled by extensions and load rules.

Learn more about remote commands.

Requirements

  • Tealium iQ Tag Management module. Not a compile-time dependency, but Remote Commands are triggered from the module.

Supported Platforms

  • iOS

Install

Install the RemoteCommands module with CocoaPods or Carthage.

CocoaPods

To install the RemoteCommands module with CocoaPods, add the following pod to your Podfile:

pod 'tealium-swift/TealiumRemoteCommands'

The framework is auto-instantiated. It has a dependency on the TealiumCore pod. Learn more about CocoaPods installation for iOS.

Carthage

To install the RemoteCommands module with Carthage, following these steps:

  1. Go to the app target’s General configuration page in Xcode.

  2. Add the following framework to the Embedded Binaries section:

    TealiumRemoteCommands.framework
  3. If you need to interact with the RemoteCommands API, add the following required import statement to your project:

    import TealiumRemoteCommands

The framework is auto-instantiated. It has a dependency on TealiumCore. No additional import statements are necessary. Learn more about Carthage installation for iOS.

Example

Once the Remote Command Tag is configured in Tealium IQ and the module is installed in your app, add the following lines to the initialization as shown in the following example:

class TealiumHelper {
	var tealium: Tealium?
	// ...
	private func initTealium() {
		let config = TealiumConfig(account: "ACCOUNT",
 	       		                 profile: "PROFILE",
        	   	                 environment: "ENVIRONMENT",
           		                 datasource: "DATASOURCE")
    	guard let remoteCommands = self?.tealium?.remoteCommands() else {
          return
        }
        let brazeCommand = BrazeCommand(brazeTracker: BrazeTracker())
        let brazeRemoteCommand = brazeCommand.remoteCommand()
        remoteCommands.add(brazeRemoteCommand)

		// ...
	}
}

Data Layer

No additional variables are introduced by this module.

API Reference

init()

Creates a new remote command object ready to be passed to the add command.

Parameter Description Example
commandId Required String identifier for the remote command "logger"
description Optional String description of the remote command "Log Response object to console"
queue Queue on which to trigger the code block DispatchQueue.main
completion The block of code to trigger

The following is a usage example:

let customCommand = TealiumRemoteCommand(commandId: "logger",
                                        description: "Log Response object to console",
                                        queue: DispatchQueue.main)
                                        { (response) in
                                            // code to execute
                                            print("Custom command response: (response)")
                                        })

add()

As of 1.6.5, we recommend adding Remote Commands using the TealiumConfig addRemoteCommand() method

Registers a specified remote command with Tealium for later triggering. Tealium must have been initialized before adding a new Remote Command.

add(remoteCommand: TealiumRemoteCommand)

The following is a usage example:

var tealium: Tealium?
let customCommand = TealiumRemoteCommand(commandId: "logger",
    description: nil,
    queue: DispatchQueue.main)
    { response in
        // code to execute
        print("Custom command response: (response)")
    })
if let remoteCommands = self.tealium?.remoteCommands() {
        remoteCommands.add(customCommand)
} else {
print("Remote commands not available")
}

remove()

Removes a previously-registered remote command to prevent it being triggered again.

remove(commandWithId: String)
// assumes "tealium" previously instantiated
tealium?.remoteCommands()?.remove(commandWithId: "logger")

disableRemoteCommands()

Disables the remote commands module.

disableRemoteCommands()

The following is a usage example:

// assumes "tealium" previously instantiated
tealium?.remoteCommands()?.disableRemoteCommands()

enableRemoteCommands()

Enables the remote commands module (only required if previously disabled; default is enabled).

enabledRemoteCommands()

The following is a usage example:

// assumes "tealium" previously instantiated
tealium?.remoteCommands()?.enableRemoteCommands()

disableRemoteHTTPCommand()

Disables the built-in remote HTTP command, but leaves the remote commands module enabled for other commands.

disableRemoteHTTPCommand()

The following is a usage example:

// assumes "tealium" previously instantiated
tealium?.remoteCommands()?.disableRemoteHTTPCommand()

enableRemoteHTTPCommand()

Enables the built-in remote HTTP command (only required if previously disabled; default is enabled).

enableRemoteHTTPCommand()`

The following is a usage example:

// assumes "tealium" previously instantiated
tealium?.remoteCommands()?.enableRemoteHTTPCommand()

Remote HTTP Command

This is a reserved internal command with identifier _http which triggers an HTTP request from native code, and passes the response back to the Tealium iQ web view. This is used in some cases to bypass CORS restrictions that may be encountered in a web browser. To use this command, there are specific mapping names you must use:

Mapping Name Description
url (Required) The URL of the request you wish to trigger.
method (Required) The HTTP method you wish to call. PUT, GET and POST are currently the only supported methods.v
headers (Optional) A JavaScript object (JSON) containing the header key-value pairs to pass along with the request. For example, {"Content-Type": "application/json"}).
callback_function (Optional) A JavaScript function to be invoked when the command has completed. The callback function is passed 2 parameters: code is the HTTP response code such as 404 or 200, and body, which is the response body from the request.

Here’s a sample callback function:

var my_callback = function(code, body) {
   // assuming the response body was a JSON object, this logs a variable called my_response_variable to the console in the web view
	console.log(body.my_response_variable);
}

For a working example, see this article: Tracking App Downloads with Adobe Analytics

PersistentData Module
TagManagement Module

 
  • Mobile
  • Getting Started
    • Overview
    • Quick Start Guide
    • Mobile Concepts
    • Client-Side
    • Server-Side
    • Tracking Webviews
    • Data Layer
    • Consent Management
    • Event Batching
    • User Location and Geofencing
    • Deep Links
    • Timed Events
    • Trace
    • Hosted Data Layer
    • Feature Comparison
    • Troubleshooting
  • Remote Commands
    • Overview
    • How It Works
    • Integrations
      • AppsFlyer
      • Braze
      • Contentsquare
      • Facebook
      • Firebase
      • Kochava
      • Usabilla
  • Android (Java)
    • Overview
    • Install
    • Track
    • Data Layer
    • Data Management
    • Consent Management
    • Module List
      • Ad Identifier Module
      • Crash Reporter Module
      • Install Referrer Module
      • Lifecycle Tracking Module
      • Location Module
      • Optimizely X Tracking Module
    • Android TV
    • Android Wear
    • API Reference
      • ConsentManager
      • DataSources
      • Lifecycle
      • Tealium
      • Tealium.Config
      • TealiumLocation
    • Release Notes
  • Android (Kotlin)
    • Overview
    • Install
    • Track
    • Data Layer
    • Consent Management
    • Identity Resolution
    • Module List
      • Ad Identifier Module
      • Collect Module
      • Collectors Module
      • Crash Reporter Module
      • Install Referrer Module
      • Lifecycle Tracking Module
      • Location Manager Module
      • RemoteCommands Module
      • Tag Management Dispatcher Module
      • Visitor Service Module
    • Android TV
    • API Reference
      • ConsentCategory
      • ConsentManager
      • CurrentVisit
      • DataLayer
      • Lifecycle
      • LocationManager
      • Tealium
      • TealiumConfig
      • VisitorProfile
      • VisitorService
    • Release Notes
  • Cordova
    • Overview
    • Install
    • Track
    • Data Management
    • Module List
      • Ad Identifier Module
      • Crash Reporter Module
      • Install Referrer Module
    • API Reference
    • Release Notes
  • Flutter
    • Overview
    • Install
    • Track
    • Consent Management
    • Data Management
    • API Reference
    • Release Notes
  • iOS (Objective-C)
    • Overview
    • Install
    • Track
    • Data Layer
    • Data Management
    • Consent Management
    • Tag Management
    • Module List
      • Lifecycle Tracking Module
    • tvOS
    • watchOS
    • API Reference
    • Release Notes
  • iOS (Swift) 1.x
    • Overview
    • Install
    • Track
    • Data Layer
    • Data Management
    • App Extensions
    • Identity Resolution
    • Consent Management
    • Modules
    • Module List
      • AppData Module
      • Attribution Module
      • AutoTracking Module
      • Collect Module
      • Connectivity Module
      • CrashReporter Module
      • DataSource Module
      • DefaultStorage Module
      • Delegate Module
      • DeviceData Module
      • DispatchQueue Module
      • FileStorage Module
      • Lifecycle Module
      • Location Module
      • Logger Module
      • PersistentData Module
      • RemoteCommands Module
      • TagManagement Module
      • VisitorService Module
      • VolatileData Module
    • Feature Comparison
    • Working with Objective-C
    • API Reference
      • TealiumConfig
      • TealiumConsentCategories
      • TealiumConsentManagerDelegate
      • TealiumConsentManager
      • TealiumInstanceManager
      • TealiumPersistentData
      • TealiumVolatileData
      • Tealium
    • Release Notes
  • iOS (Swift) 2.x
    • Overview
    • Install
    • Track
    • Data Layer
    • Consent Management
    • App Extensions
    • Identity Resolution
    • Modules
    • Module List
      • AppData Module
      • Attribution Module
      • AutoTracking Module
      • Collect Module
      • Connectivity Module
      • CrashReporter Module
      • DeviceData Module
      • Lifecycle Module
      • Location Module
      • RemoteCommands Module
      • TagManagement Module
      • VisitorService Module
    • Working with Objective-C
    • API Reference
      • Tealium
      • TealiumConfig
      • TealiumConsentCategories
      • TealiumConsentManager
      • TealiumDataLayer
      • TealiumInstanceManager
    • Release Notes
  • NativeScript
    • Overview
    • Install
    • Track
    • API Reference
      • Tealium
      • TealiumConfig
    • Release Notes
  • React Native 1.x
    • Overview
    • Install
    • Track
    • API Reference
    • Release Notes
  • React Native 2.x
    • Overview
    • Install
    • Track
    • API Reference
    • Release Notes
  • Unity
    • Overview
    • Install
    • Track
    • API Referencee
  • Xamarin
    • Overview
    • Install
    • Track
    • Data Management
    • Consent Management
    • API Reference
    • Release Notes
  • Web
  • Getting Started
    • Overview
    • Quick Start Guide
    • Web Concepts
  • Adobe Launch
    • Overview
    • Install
    • Data Layer
  • AMP
    • Install
    • Track
    • Data Layer
    • Overview
  • Angular
    • Install
    • Track
    • API Reference
    • Overview
  • Google Tag Manager
    • Overview
    • Data Layer
    • Install
  • JavaScript (Web)
    • Install
    • Track
    • Data Layer
    • Overview
    • Universal Data Object (utag_data)
    • Universal Tag (utag.js)
    • Data Layer Object (b)
    • Single-Page Applications
    • Settings
    • Debugging
    • API Reference
      • Cookie Functions
      • GDPR Functions
      • Tracking Functions
      • Utility Functions
    • Release Notes
  • Server
  • C#
    • Overview
    • Install
    • Track
    • Data Layer
    • API Reference
    • Release Notes
  • HTTP API
    • Overview
    • Endpoint
    • Data Layer
  • Java
    • Overview
    • Install
    • Track
    • API Reference
    • Release Notes
  • Node
    • Overview
    • Install
    • Track
    • API Reference
  • Python
    • Overview
    • Install
    • Track
    • API Reference
  • Roku
    • Overview
    • Install
    • Track
    • API Reference
  • Ruby
    • Overview
    • Install
    • Track
    • API Reference

Was this article helpful?

This page was last updated: September 28, 2020       Thank you for your feedback!
  • Platforms
  • Partners
  • Forums
  • Mobile
  • Getting Started
  • Remote Commands
  • Android (Java)
  • Android (Kotlin)
  • Cordova
  • Flutter
  • iOS (Objective-C)
  • iOS (Swift) 1.x
  • iOS (Swift) 2.x
  • NativeScript
  • React Native 1.x
  • React Native 2.x
  • Unity
  • Xamarin
  • Web
  • Getting Started
  • Adobe Launch
  • AMP
  • Angular
  • Google Tag Manager
  • JavaScript (Web)
  • Server
  • C#
  • HTTP API
  • Java
  • Node
  • Python
  • Roku
  • Ruby