Experience Properties

All experiences inherit from the base class, Experience. Currently, there are four experience types: Video, Image, Alert and Custom. Experiences are created in the ExtremeLocation UI. The properties for the Experience base class and each subclass are described below:

FMExperience (Objective-C)

@property FMExperienceType type: Enum that indicates the given Experience type 
typedef enum : int
    FMExperienceTypeCustom = 0,
    FMExperienceTypeVideo = 1,
    FMExperienceTypeImage = 2,
    FMExperienceTypeAlert = 3
} FMExperienceType; 

@property FMExperienceAction action: Enum that instructs how to act on the given experience.
typedef enum : int
    // Do not show the Experience content to the user. Depending on
    // your implementation, it may make sense to store the Experience
    // and display it sometime in the future
    FMExperienceActionDoNothing = 0,
    // Display the data contained in the Experience right away without
    // giving the user a choice. For example, if a VideoExp arrived, 
    // it would auto play the next time the user opened the app. 
    FMExperienceActionAutoShow = 1,
    // Ask the user if they would like to see the Experience content 
    // prior to presenting it. 
    FMExperienceActionAskPermission = 3
} FMExperienceAction;

typedef enum : int
    // The trigger is a beacon type. The user has detected a beacon.
    FMTriggerTypeBeacon = 0,
    // The trigger is a geo fence. The user entered
    // or exited a designated geo location.
    FMTriggerTypeGeozone = 1,
    // The trigger is unknown.
    FMTriggerTypeUnknown = 2
} FMTriggerType;

@property NSString* customDetails: Additional details added to the experience that did not fall into any of the standard properties. 

@property NSString* expTitle: The Experiences title. Typically Experiences will be displayed with a Title and Description

@property NSString* expDescription: The Experiences description. This field contains the message that you are trying to get across to your customers.

@property NSString* notificationTitle: This field should contain the text you would like to display in a Notification to the user.

@property NSString* notificationDescription: The notificationDescription is an additional field that can be used to better describe what you are notifying the user about.
@property BOOL showNotif: Indicates whether or not to display a notification to the user for the given Experience.  

@property NSDictionary* content: Contains various values that differ across each Experience type. The expected values for each Experience type are described below.

@property NSString *triggerIdentifier: The identifier for the trigger source.  

@property FMTriggerType triggerType: The type of trigger that fired the experience.

FMVideoExp (Objective-C)

FMVideoExp contains video content that should be made available to the user. This class also provides accessory methods to allow you to easily play the video if you would like.

@property FMDisplayType displayType: Enum that indicates what mode to display the video in.
typedef enum : int
    FMDisplayTypeFullscreen = 0,
    FMDisplayTypeLarge = 1,
    FMDisplayTypeSmall = 2
} FMDisplayType;

@property FMContentProvider contentProvider: Enum that informs you of where the video is hosted. 
typedef enum : int
    FMContentProviderCustom = 0,
    FMContentProviderYoutube = 1,
    FMContentProviderVimeo = 2
} FMContentProvider;

@property (nonatomic, retain) NSString *vidURL: A URL that points to the video.

Below is an example of how you could display a video experience. You could use the properties however you like, but the intention and most common means of using the following properties is shown below. Depending on how you configure your experiences in the ExtremeLocation UI, you may not populate data for all of the properties. In this case, remember to do proper error checking and just retrieve what attributes makes sense.

Click to expand in new window
FMVideoExp Example

FMImageExp (Objective-C)

FMImageExp contains an image that should be presented to the user.

@property (nonatomic, retain) NSString *imgURL: A URL that points to the image.

Below are 2 examples of how an FMImageExp could be displayed. One using only the expTitle property and the other using both the expTitle and expDescription properties.

Click to expand in new window
FMImageExp Example


An experience that is intended to simply present a notification to the user. This type of experience is meant to alert the user of updated news, trend, or any current related events and info. For this type of experience help breaks the different category between the other experiences.

Below is an example of how the FMAlertExp may be used. The text displayed in the UILocalNotification is pulled from the Experience‘s notificationTitle property and notificationDescription property. You may use one or both.

Click to expand in new window
FMAlertExp Example


This is a catchall experience that can be modified to fit your use case in the ExtremeLocation UI. If used, the customized data will be returned in the base class's Attributes property.