The “Conversion” feature enables you to measure user interactions with beacons and campaigns. With this feature you can track the following informations: - how many users were around the beacon region - how many campaigns were delivered to the app - how many campaign actions were performed by users
New “action” property in SBMCampaignAction
This “action” property is a unique id to report conversion information.
@interface SBMCampaignAction : NSObject
...
// action : unique action fire event identifier
@property (strong, nonatomic) NSString *action;
@end
When you receive an “SBEventPerformAction” event from the SDK, it will contain an ‘SBMCampaignAction’ object (assuming it doesn’t have an error :D). Now you can use new ‘action’ parameter to report this conversion through ‘SBManager’
Currently we have following 4 conversion types.
/**
SBConversionType
Represents the conversion type for a specific campaign action
@since 2.1.2
*/
typedef enum : NSUInteger {
/**
* The campaign action can't "fire" (ex. the user has denied access to local notifications)
*/
kSBConversionUnavailable = -2,
/**
* The campaign was suppressed by the app
*/
kSBConversionSuppressed = -1,
/**
* The campaign action has been "fired" but was ignored by the user
*
* @discussion: The campaigns are marked as "ignored" by default. To correctly measure conversion, be sure to call [SBManager sharedManager] reportConversion: forCampaignAction:] when performing the campaign action
*/
kSBConversionIgnored = 0,
/**
* The campaign action has been performed successfully
*/
kSBConversionSuccessful = 1
} SBConversionType;
Example for kSBConversionSuccessful : When user has interacted with the notification
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
if (notification.userInfo)
{
NSDictionary *dict = [notification.userInfo valueForKey:@"action"];
SBMCampaignAction *action = [SBUtilities campaignActionFromDictionary:dict];
if (action)
{
[[SBManager sharedManager] reportConversion:kSBConversionSuccessful forCampaignAction:[action.action copy]];
}
}
}
Example for kSBConversionUnavailable : when the user cannot be notified.
SUBSCRIBE(SBEventPerformAction)
{
if (![[SBManager sharedManager] canReceiveNotifications])
{
[[SBManager sharedManager] reportConversion:kSBConversionUnavailable forCampaignAction:[action.action copy]];
}
else
{
// schedule notification
[[SBManager sharedManager] reportConversion:kSBConversionIgnored forCampaignAction:[action.action copy]]
}
}
In this case you can also show an alert and let your customer decide whether to perform an action or not.
Default Conversion value for campaign action is “ignored” (kSBConversionIgnored) - we overwrite conversion value when you report conversion through
[[SBManager sharedManager] reportConversion:SBConversionType forCampaignAction:action];
Corresponding blogpost about conversions for Android
Enjoy the Conversions !!
Sensorberg Tech