Native Mobile SDK Features
The Marketing Cloud Personalization iOS SDK supports these features.
- Integration
- XCFramework, static or dynamic, for direct or manual integrations
- CocoaPods, static XCFramework (or dynamic XCFramework with minor podspec edits)
- Supports iOS versions 12 and higher
- Supports Objective-C and Swift code
- Includes module map for Swift
- Optional swizzling to reduce integration points
- Configurable debug logging
- Tracking/Events
- Automatic
- 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
- API-driven
- User information
- Catalog interactions
- Action tracking
- Stats for custom app-handled campaigns
- Automatic
- 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
- Data
- JSON payload to a target/content-zone
- APIs for stats based on the app's handling of data
- Testing
- Can control testing unpublished campaigns directly from the device
- Anonymous Identifiers
identifierForVendor
- Configuration
- Tiered: Defaults, client-provided, server-provided
- The SDK periodically obtains
AppConfig
from 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
- Stability
- 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.
Use of this software and the Marketing Cloud Personalization service is subject to the Personalization terms of use.