Tracking User Actions with the Sensorberg Conversion Feature.

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
   }
}

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