public class AnalyticsUtilities
extends Object
Constructor and Description |
---|
AnalyticsUtilities() |
Modifier and Type | Method and Description |
---|---|
static void |
fireEvent(java.util.logging.Level level,
String category,
String eventName)
AnalyticsUtilities provides this api to capture Analytics if there is no
JSON payload to provide.
|
static void |
fireEvent(java.util.logging.Level level,
String category,
String eventName,
JSONObject payload)
AnalyticsUtilities provides this api to capture Analytics if there is a
JSON payload to be published for the event generated.
|
public static final String CATEGORY_MAF_FRAMEWORK
public static final String CATEGORY_CUSTOM
public static final String CATEGORY_SYSTEM
public static final String EVENT_USER_LOGGED_IN
public static final String EVENT_LOGIN_CALLBACK
public static final String EVENT_USER_LOGGED_OUT
public static final String EVENT_LOGOUT_CALLBACK
public static final String EVENT_USER_LOGGED_FAILED
public static final String EVENT_TIMER
public static final String EVENT_STATUS_CHANGE
public static final String EVENT_FEATURE_NAVIGATION
public static final String EVENT_PAGE_NAVIGATION
public static final String EVENT_UPDATE_AUTHENTICATION_STATUS
public static final String EVENT_FEATURE_TRANSITION
public static final String EVENT_APPLICATION_TRANSITION
public static final String EVENT_REST_WS
public static final String EVENT_REST_WS_ERR
public static final String EVENT_ERR
public static final String EVENT_SESSION_START
public static final String EVENT_SESSION_END
public static final String EVENT_CONTEXT
public static final String USERNAME
public static final String NAME
public static final String PROPERTIES
public static final String SESSIONID
public static final String TYPE
public static final String TIMESTAMP
public static final String PAYLOAD_NAME_PROPERTY
public static final String PAYLOAD_OPERATION_PROPERTY
public static final String PAYLOAD_AUTHENTICATION_KEY
public static final String PAYLOAD_AUTHENTICATION_MECHANISM
public static final String PAYLOAD_AUTHENTICATION_STATUS
public static final String PAYLOAD_FEATURE_ID
public static final String PAYLOAD_LOGIN_FEATURE_ID
public static final String PAYLOAD_LOGIN_CALLBACK_ID
public static final String PAYLOAD_LOGOUT_CALLBACK_ID
public static final String PAYLOAD_SOURCE_ID
public static final String PAYLOAD_DESTINATION_ID
public static final String PAYLOAD_PROCESS_STATE
public static final String PAYLOAD_TRANSITION_STATE
public static final String PAYLOAD_GEOLOCATION
public static final String PAYLOAD_NETWORK
public static final String PAYLOAD_WS_CALL
public static final String PAYLOAD_ENDPT_URL
public static final String PAYLOAD_ERR_MSG
public static final String PAYLOAD_PAGE_ID
public static final String PAYLOAD_STATE_START
public static final String PAYLOAD_STATE_STOP
public static final String PAYLOAD_STATE_ACTIVATE
public static final String PAYLOAD_STATE_DEACTIVATE
public static final String PAYLOAD_PROCESS_STATE_STARTED
public static final String PAYLOAD_PROCESS_STATE_COMPLETED
public static final String PAYLOAD_STATE_RESUME
public static final String PAYLOAD_STATE_SUSPEND
public static final String PAYLOAD_STATE_WARNING
public static final String PAYLOAD_STATE_EXPIRED
public static final String PAYLOAD_STATE_ADJUST
public static void fireEvent(java.util.logging.Level level, String category, String eventName)
Example of usage Custom events: eg: AnalyticsUtilities.fireEvent(Level.FINE, AnalyticsUtilities.CATEGORY_CUSTOM, "OrderAccepted"); 'OrderAccepted' is the name of the event for which Analytics is captured. 'FINE' is the level which is set for this event. 'CATEGORY_CUSTOM' represents the type of the event.Payload for 'OrderAccepted' event will appear as follow: { "name": "OrderAccepted", "type":"custom", "timestamp": "2015-11-06T20:35:27.384Z", "sessionID":"com.company.AppName_0f0c50bd-3dc5-4c41-9d0a-053d99cfaa25_151216142817" } timestamp and sessionID are implicitly added by framework. The payload will be sent to the handler which is attached to the analytics logger "oracle.maf.api.analytics".
Manage logging of 'OrderAccepted' event via logging.properties: Disable: oracle.maf.api.analytics.custom.OrderAccepted.level=OFF Enable: oracle.maf.api.analytics.custom.OrderAccepted.level=FINEAny of the standard logging levels could be used to control logging output. The level attached to the event is FINE. Hence, if the logging level is set to FINE or lower than FINE, then the logging for 'OrderAccepted' event is enabled. If the logging level is OFF or any level higher then FINE then it is disabled.
level
- - Any of the standard logging levels could be used (Severe,
Warning, Fine, Info, Config, Fine, Finer, Finest, Off & All)category
- - 'custom' for all the events which are getting logged from
user application except 'context' event. AnalyticsUtilities
provides 'CATEGORY_CUSTOM' for this usage.
- 'system' for only context event. AnalyticsUtilities provides
'CATEGORY_SYSTEM' for this usage.eventName
- - It is a String value which represents the name of the event.
'sessionStart' and 'sessionEnd' are prohibited as event's name.public static void fireEvent(java.util.logging.Level level, String category, String eventName, JSONObject payload)
- category has to be 'system'
- payload cannot be null and it should only contain the fields supported by
MCS. Adding anything else will be rejected by MCS.
Accepted fileds are: timezone, model, osName, osVersion, carrier, manufacturer,
osBuild, username, either latitude, longitude or city, state, country & postalCode
- Logging of context events should be enabled in logging.properties by
providing either 'oracle.maf.api.analytics.McsContextProvider' or by providing a
full class path of custom class which implements ContextProvider.
oracle.maf.api.analytics.McsAnalyticsHandler.context
=oracle.maf.api.analytics.McsContextProvider
Example of usage
JSONObject contextJSONObject = new JSONObject();
contextJSONObject.put("latitude", getLatitude());
contextJSONObject.put("longitude", getLongitude());
contextJSONObject.put("model", getDeviceMode());
contextJSONObject.put("osName", getDeviceOs());
contextJSONObject.put("osVersion", getDeviceVersion());
eg: AnalyticsUtilities.fireEvent(Level.INFO, AnalyticsUtilities.CATEGORY_SYSTEM,
AnalyticsUtilities.EVENT_CONTEXT, contextJSONObject);
Generated 'context' event:
{
"name":"context",
"type":"system",
"timestamp":"2013-04-12T23:20:54.345Z",
"properties":{
"latitude":"37.35687",
"longitude":"-122.11663",
"model":"iPhone6,1",
"osName":"iPhone OS",
"osVersion":"9.1"
}
"sessionID":"com.company.AppName_0f0c50bd-3dc5-4c41-9d0a-053d99cfaa25_151216142817"
}
sessionID and timestamp are implicitly added by framework.
Custom events:
It is a default category and these events will be analyzed by MCS to generate reports.
Example of usage
eg: Define a JSONObject to carry user generated information:
JSONObject jsonPayload = new JSONObject();
jsonPayload.put("OrderNumber", "34-5678");
jsonPayload.put("Items", "1");
jsonPayload.put("Name", "Oracle MAF Developer Guide");
'jsonPayload' has to be of type JSONObect with keys/values of type String.
Numbers, booleans, nulls, arrays, or complex objects are not supported.
Publish the event:
AnalyticsUtilities.fireEvent(Level.FINE, AnalyticsUtilities.CATEGORY_CUSTOM,
"OrderAccepted", jsonPayload);
Payload for 'OrderAccepted' event will appear as follows:
{
"name": "OrderAccepted",
"type": "custom",
"timestamp" : ""2013-04-12T23:20:54.345Z",
"properties" :{
"OrderNumber":"34-5678",
"Items":"1",
"Name":"Oracle MAF Developer Guide"
}
"sessionID":"com.company.AppName_0f0c50bd-3dc5-4c41-9d0a-053d99cfaa25_151216142817"
}
sessionID and timestamp are implicitly added by framework.
'OrderAccepted' is the name of the event.
'FINE' is the level which is set for this event.
'CATEGORY_CUSTOM' represents the type of the event. Events collected from user application
have to be of type 'custom' for MCS.
The payload will be sent to the handler which is attached to the
analytics logger "oracle.maf.api.analytics".
Manage logging of 'OrderAccepted' event via logging.properties:
Disable: oracle.maf.api.analytics.custom.OrderAccepted.level=OFF
Enable: oracle.maf.api.analytics.custom.OrderAccepted.level=FINE
Any of the standard logging levels could be used to control logging output.
The level attached to the event is FINE. Hence, if the logging level is set
to FINE or to any level lower than FINE, then the logging for
'OrderAccepted' event is enabled. If the logging level is OFF or any level
higher then FINE then it is disabled.
level
- - Any of the standard logging levels could be used (Severe,
Warning, Fine, Info, Config, Fine, Finer, Finest, Off & All)category
- - 'custom' for all the events which are getting logged from
user application except for 'context' event. AnalyticsUtilities
provides 'CATEGORY_CUSTOM' for this usage.
- 'system' for only context event. AnalyticsUtilities provides
'CATEGORY_SYSTEM' for this usage.eventName
- - It is a String value which represents the name of the event.
'sessionStart' and 'sessionEnd' are prohibited as event's name.