Marketing Cloud Personalization iOS SDK v1.3.1
Marketing Cloud Personalization web templates are based on responsive HTML and can support web campaigns that are displayed on mobile devices. However, these "standard" web templates cannot leverage all of the features and capabilities available to native mobile apps. For companies and developers who want Personalization to have access to native mobile app features and capabilities, Personalization provides an Apple iOS SDK mobile app integration.
The Personalization iOS SDK gathers information about the user, device, and in-app behavior and sends it to Personalization to build profiles, generate statistics, and feed machine learning. The SDK also handles event responses containing personalization campaigns for qualified mobile application users.
- Direct framework, static or dynamic.
- Supports iOS 9+
- Supports Objective-C and Swift code
- Includes module map for Swift
- Optional swizzling to reduce integration points
- Configurable debug logging
- App events (launch, install, upgrade, foreground, background, and so on)
- Miscellaneous SDK-handled tracking and events: campaigns (In-App), view time accumulation, any APIs reduced by swizzling, and so on
- User information
- Catalog interactions
- Custom events
- Stats for custom app-handled campaigns
- Optional Visual Screen Mapping
- When enabled, as the user navigates through the app, screen information and images are uploaded to the Personalization web console
- The user can then assign an action name for the screen based on the screen information (including the hierarchy)
- The SDK receives screen mappings as part of the configuration from the server
- When the user navigates to the screen in the app, the SDK automatically detects this navigation and tracks the mapped action
- Real-Time Campaigns
- In response to events tracked
- All campaigns support dynamic content based on the user and catalog, including recommendations
- In-App Message
- A simple banner that floats over the app with optional buttons and clickable links
- The SDK handles rendering and stats itself
- Push Notifications
- Apple Push Notification System and Firebase supported
- Scheduling, including based on the last-known user timezone
- JSON payload to a target/content-zone
- APIs for stats based on the app's handling of data
- Can control testing unpublished campaigns directly from the device
- Anonymous Identifiers
- Tiered: Defaults, client-provided, server-provided
- The SDK periodically obtains
AppConfigfrom CDN/server for the app
- The SDK does not send events until it receives a successful configuration
- Configuration can disable the SDK. The default response for an unknown app disables the SDK.
- Support for numerous settings to change SDK behavior.
- Robust Networking
- Events queued during connectivity issues
- Automatically reattempts upon return of connectivity
- Async non-main threads to keep app UI responsive
- Detects when a response is no longer relevant. For example, when a screen no longer exists due to user navigation.
- Dynamic headers for routing to user-affine node, and so on
- Designed to avoid negatively impacting the host app and user experience
- Async network calls
- Checkpoints to determine whether operations are no longer relevant and need to be dropped
- Safety-wrapping processing of dynamic data
- Cleaning up screen-specific resources/handlers as user/navigation discards the screen
As detailed in the preceding section, the Native Mobile SDKs handle anonymous user identifiers themselves. The app can provide named user identifiers to support merging profile identities across different devices and channels.