Video Behavior Data Collection - iOS

Introduction

This section details the convenience methods that are available for capturing behavior data when the end-users interact with video content on mobile applications.

The Core module captures a set of default parameters from the device and mobile application. These default parameters are transmitted along with each event captured by the Infinity module. The list of default parameters is available here.

The Infinity module captures the behavior data with the help of convenience methods. Convenience methods are methods that can be used with minimal or no coding.

Each of the convenience methods requires an eventMeta object to be passed as a mandatory argument for the method. The eventMeta object can be combined with additional arguments and passed in the convenience method. The arguments from the convenience methods are mapped parameters in the Infinity Library. The complete list of parameters in the Infinity library is available here.

The eventMeta object has the following properties:

Object Object Property Mandatory/Optional Event Parameter Infinity Parameter(s) Mapping Description
eventMeta         This object stores the parameters attached to an event.
  eventPath (dcsuri) mandatory eventMeta.eventPath data.page-uri This parameter specifies the path in the application in which the event occurs. This parameter typically includes the path or screen name.
  eventDesc mandatory eventMeta.eventDesc wt.pi, wt.ti This parameter specifies the name of the screen on which the event occurs. This parameter typically includes the event name or screen name or a title that identifies the screen.
  eventType mandatory eventMeta.eventType wt.ev This parameter specifies the type of event that occurs, such as a View, Click and so on
  customData optional eventMeta.customData   This object can be used to pass custom key-value pairs as additional data that is typically not included in the method, but relevant to the event.

For details of the complete list of Oracle Infinity Parameters, their descriptions, and their values, click here.

Field Validations

The allowable characters for the values of arguments in the event capture methods include the following:

  • Alphanumeric characters (letters, numbers)

  • Special characters (punctuation marks, mathematical and other conventional symbols).

The Character limits for arguments of the string data type are as follows:

  Arguments Accepting String Values Length
1 Values passed for content descriptions, path, content group names or any custom data 512
2 Custom Data Name 64

Note: The total length of a custom event method cannot exceed 4096 characters

Video content events

Automatic tracking of video events

Manual tracking of video events

You can configure your mobile application to track video events manually using the following methods.

Video metadata load event

This method collects data when a video meta-information is available or loaded in the mobile app.

ORAEventMeta *eventMetaData = [ORAEventMeta eventMetaForPath:nil description:@"video load event description" type:nil
customParams:@{@"myCustomParam":@"myCustomValue"}];
ORAVideoMeta * videoMeta = [ORAVideoMeta new];
videoMeta.clipName = @"Video Name";
videoMeta.clipType = @"LoadMeta";
[[ORADataCollector sharedCollector] triggerEventForVideoLoadMeta:videoMeta eventMeta:eventMetaData];
let eventMetaData = ORAEventMeta(eventPath: nil,
description:"video load event description",
type:nil, customParams:["myCustomParam":"myCustomValue"])
let videoMeta = ORAVideoMeta();
videoMeta?.clipName = "Video Name"
videoMeta?.clipType = "LoadMeta"
ORADataCollector.shared().triggerEvent(forVideoLoadMeta: videoMeta , eventMeta: eventMetaData >)

Additional arguments required to be passed along with eventMeta object for this event

  • videoMeta: Specifies an <ORAVideoMeta> object that stores video based parameters attached to this event.

The Infinity parameters and their values specific to this event are as follows:

  Infinity Parameter Value
1 data.page-uri eventMeta.eventPath
2 WT.ti eventMeta.eventDescr
3 WT.pi eventMeta.eventDescr
4 Wt.clip_id "Video Name"
5 Wt.clip_ev "LoadMeta"
6 WT.sys clip_load_meta
7 WT.dl 41

Video load event

This method collects data when the video content is loaded in the mobile app.

ORAEventMeta *eventMetaData = [ORAEventMeta eventMetaForPath:nil description:@"video load event description" type:nil
customParams:@{@"myCustomParam":@"myCustomValue"}];
ORAVideoMeta * videoMeta = [ORAVideoMeta new];
videoMeta.clipName = @"Video Name";
videoMeta.clipType = @"Load";
[[ORADataCollector sharedCollector] triggerEventForVideoLoad:videoMeta eventMeta:eventMetaData];
let eventMetaData = ORAEventMeta(eventPath: nil,
description:"video load event description",
type:nil, customParams:["myCustomParam":"myCustomValue"])
let videoMeta = ORAVideoMeta();
videoMeta?.clipName = "Video Name"
videoMeta?.clipType = "Load"
ORADataCollector.shared().triggerEvent(forVideoLoad: videoMeta , eventMeta: eventMetaData >)

Additional arguments required to be passed along with eventMeta object for this event

  • videoMeta: Specifies an <ORAVideoMeta> object that stores video based parameters attached to this event.

The Infinity parameters and their values specific to this event are as follows:

  Infinity Parameter Value
1 data.page-uri eventMeta.eventPath
2 WT.ti eventMeta.eventDescr
3 WT.pi eventMeta.eventDescr
4 Wt.clip_id "Video Name"
5 Wt.clip_ev "Load"
6 WT.sys clip_load
7 WT.dl 41

Video play event

This method collects data when a video is played in the mobile app.

ORAEventMeta *eventMetaData = [ORAEventMeta eventMetaForPath:nil description:@"video play event description" type:nil
customParams:@{@"myCustomParam":@"myCustomValue"}];
ORAVideoMeta * videoMeta = [ORAVideoMeta new];
videoMeta.clipName = @"Video Name";
videoMeta.clipType = @"Play";
[[ORADataCollector sharedCollector] triggerEventForVideoPlay:videoMeta eventMeta:eventMetaData];
let eventMetaData = ORAEventMeta(eventPath: nil,
description:"video play event description",
type:nil, customParams:["myCustomParam":"myCustomValue"])
let videoMeta = ORAVideoMeta();
videoMeta?.clipName = "Video Name"
videoMeta?.clipType = "Play"
ORADataCollector.shared().triggerEvent(forVideoPlay: videoMeta , eventMeta: eventMetaData >)

Additional arguments required to be passed along with eventMeta object for this event

  • videoMeta: Specifies an <ORAVideoMeta> object that stores video based parameters attached to this event.

The Infinity parameters and their values specific to this event are as follows:

  Infinity Parameter Value
1 data.page-uri eventMeta.eventPath
2 WT.ti eventMeta.eventDescr
3 WT.pi eventMeta.eventDescr
4 Wt.clip_id "Video Name"
5 Wt.clip_ev "Play"
6 WT.sys clip_play
7 WT.dl 40

Video pause event

This method collects data when a video is paused in the mobile app.

ORAEventMeta *eventMetaData = [ORAEventMeta eventMetaForPath:nil description:@"video pause event description" type:nil
customParams:@{@"myCustomParam":@"myCustomValue"}];
ORAVideoMeta * videoMeta = [ORAVideoMeta new];
videoMeta.clipName = @"Video Name";
videoMeta.clipType = @"Pause";
[[ORADataCollector sharedCollector] triggerEventForVideoPause:videoMeta eventMeta:eventMetaData];
let eventMetaData = ORAEventMeta(eventPath: nil,
description:"video pause event description",
type:nil, customParams:["myCustomParam":"myCustomValue"])
let videoMeta = ORAVideoMeta();
videoMeta?.clipName = "Video Name"
videoMeta?.clipType = "Pause"
ORADataCollector.shared().triggerEvent(forVideoPause: videoMeta , eventMeta: eventMetaData >)

Additional arguments required to be passed along with eventMeta object for this event

  • videoMeta: Specifies an <ORAVideoMeta> object that stores video based parameters attached to this event.

The Infinity parameters and their values specific to this event are as follows:

  Infinity Parameter Value
1 data.page-uri eventMeta.eventPath
2 WT.ti eventMeta.eventDescr
3 WT.pi eventMeta.eventDescr
4 Wt.clip_id "Video Name"
5 Wt.clip_ev "Pause"
6 WT.sys clip_pause
7 WT.dl 40

Video resume event

This method collects data when a video clip is resumed to play in the mobile app.

ORAEventMeta *eventMetaData = [ORAEventMeta eventMetaForPath:nil description:@"video resume event description" type:nil
customParams:@{@"myCustomParam":@"myCustomValue"}];
ORAVideoMeta * videoMeta = [ORAVideoMeta new];
videoMeta.clipName = @"Video Name";
videoMeta.clipType = @"Resume";
[[ORADataCollector sharedCollector] triggerEventForVideoPause:videoMeta eventMeta:eventMetaData];
let eventMetaData = ORAEventMeta(eventPath: nil,
description:"video resume event description",
type:nil, customParams:["myCustomParam":"myCustomValue"])
let videoMeta = ORAVideoMeta();
videoMeta?.clipName = "Video Name"
videoMeta?.clipType = "Resume"
ORADataCollector.shared().triggerEvent(forVideoResume: videoMeta , eventMeta: eventMetaData >)				

Additional arguments required to be passed along with eventMeta object for this event

  • videoMeta: Specifies an <ORAVideoMeta> object that stores video based parameters attached to this event.

The Infinity parameters and their values specific to this event are as follows:

  Infinity Parameter Value
1 data.page-uri eventMeta.eventPath
2 WT.ti eventMeta.eventDescr
3 WT.pi eventMeta.eventDescr
4 Wt.clip_id "Video Name"
5 Wt.clip_ev "Resume"
6 WT.sys clip_resume
7 WT.dl 40

Video seek event

This method collects data when a mobile app user navigates a video by seeking to a point in the duration of the video.

ORAEventMeta *eventMetaData = [ORAEventMeta eventMetaForPath:nil description:@"video seek event description" type:nil
customParams:@{@"myCustomParam":@"myCustomValue"}];
ORAVideoMeta * videoMeta = [ORAVideoMeta new];
videoMeta.clipName = @"Video Name";
videoMeta.clipType = @"Seek";
[[ORADataCollector sharedCollector] triggerEventForVideoSeek:videoMeta eventMeta:eventMetaData];						
let eventMetaData = ORAEventMeta(eventPath: nil,
description:"video seek event description",
type:nil, customParams:["myCustomParam":"myCustomValue"])
let videoMeta = ORAVideoMeta();
videoMeta?.clipName = "Video Name"
videoMeta?.clipType = "Seek"
ORADataCollector.shared().triggerEvent(forVideoSeek:videoMeta, eventMeta: eventMetaData >)				

Additional arguments are required to be passed along with eventMeta object for this event

  • videoMeta: Specifies an <ORAVideoMeta> object that stores video-based parameters attached to this event.

The Infinity parameters and their values specific to this event are as follows:

  Infinity Parameter Value
1 data.page-uri eventMeta.eventPath
2 WT.ti eventMeta.eventDescr
3 WT.pi eventMeta.eventDescr
4 Wt.clip_id "Video Name"
5 Wt.clip_ev "Seek"
6 WT.sys clip_seek
7 WT.dl 40

Video completion event

This method collects data when a video clip has completed playing in the mobile app.

ORAEventMeta *eventMetaData = [ORAEventMeta eventMetaForPath:nil description:@"video completion event description" type:nil
customParams:@{@"myCustomParam":@"myCustomValue"}];
ORAVideoMeta * videoMeta = [ORAVideoMeta new];
videoMeta.clipName = @"Video Name";
videoMeta.clipType = @"Completion";
[[ORADataCollector sharedCollector] triggerEventForVideoCompletion:videoMeta eventMeta:eventMetaData];						
let eventMetaData = ORAEventMeta(eventPath: nil,
description:"video completion event description",
type:nil, customParams:["myCustomParam":"myCustomValue"])
let videoMeta = ORAVideoMeta();
videoMeta?.clipName = "Video Name"
videoMeta?.clipType = "Completion"
ORADataCollector.shared().triggerEvent(forVideoCompletion:videoMeta, eventMeta: eventMetaData >)				

Additional arguments required to be passed along with eventMeta object for this event

  • videoMeta: Specifies an <ORAVideoMeta> object that stores video based parameters attached to this event.

The Infinity parameters and their values specific to this event are as follows:

  Infinity Parameter Value
1 data.page-uri eventMeta.eventPath
2 WT.ti eventMeta.eventDescr
3 WT.pi eventMeta.eventDescr
4 Wt.clip_id "Video Name"
5 Wt.clip_ev "Completion"
6 WT.sys clip_completion
7 WT.dl 40

Video VolumeChange Events

This method collects data when a volume is changed during the playtime of the video.

ORAEventMeta *eventMetaData = [ORAEventMeta eventMetaForPath:nil description:@"video volumeChange event description" type:nil
customParams:@{@"myCustomParam":@"myCustomValue"}];
ORAVideoMeta * videoMeta = [ORAVideoMeta new];
videoMeta.clipName = @"Video Name";
videoMeta.clipType = @"VolumeChange";
[[ORADataCollector sharedCollector] triggerEventForVideoVolumeChange:videoMeta eventMeta:eventMetaData];						
let eventMetaData = ORAEventMeta(eventPath: nil,
description:"video volumeChange event description",
type:nil, customParams:["myCustomParam":"myCustomValue"])
let videoMeta = ORAVideoMeta();
videoMeta?.clipName = "Video Name"
videoMeta?.clipType = "VolumeChange"
ORADataCollector.shared().triggerEvent(forVideoVolumeChange:videoMeta, eventMeta: eventMetaData >)				

Additional arguments are required to be passed along with eventMeta object for this event

  • videoMeta: Specifies an <ORAVideoMeta> object that stores video-based parameters attached to this event.

The Infinity parameters and their values specific to this event are as follows:

  Infinity Parameter Value
1 data.page-uri eventMeta.eventPath
2 WT.ti eventMeta.eventDescr
3 WT.pi eventMeta.eventDescr
4 Wt.clip_id "Video Name"
5 Wt.clip_ev "VolumeChange"
6 WT.sys clip_volume_change
7 WT.dl 41

Video watching behavior

This method collects data when a specific percentage of a video is played during an interaction of the user with the mobile app.

ORAEventMeta *eventMetaData = [ORAEventMeta eventMetaForPath:nil description:@"video quartile event description" type:nil
customParams:@{@"myCustomParam":@"myCustomValue"}];
ORAVideoMeta * videoMeta = [ORAVideoMeta new];
videoMeta.clipName = @"Video Name";
videoMeta.clipType = @"Quartile";
[[ORADataCollector sharedCollector] triggerEventForVideoQuartile:videoMeta eventMeta:eventMetaData];
let eventMetaData = ORAEventMeta(eventPath: nil,
description:"video quartile event description",
type:nil, customParams:["myCustomParam":"myCustomValue"])
let videoMeta = ORAVideoMeta();
videoMeta?.clipName = "Video Name"
videoMeta?.clipType = "Quartile"
ORADataCollector.shared().triggerEvent(forVideoQuartile:videoMeta, eventMeta: eventMetaData >)

Additional arguments are required to be passed along with eventMeta object for this event

  • videoMeta: Specifies an <ORAVideoMeta> object that stores video-based parameters attached to this event.

The Infinity parameters and their values specific to this event are as follows:

  Infinity Parameter Value
1 data.page-uri eventMeta.eventPath
2 WT.ti eventMeta.eventDescr
3 WT.pi eventMeta.eventDescr
4 Wt.clip_id "Video Name"
5 Wt.clip_ev "Quartile"
6 WT.sys clip_quartile
7 WT.dl 41

Video beacon event

This method collects data when a specific duration of the video is watched by the mobile application user.

ORAEventMeta *eventMetaData = [ORAEventMeta eventMetaForPath:nil description:@"video beacon event description" type:nil
customParams:@{@"myCustomParam":@"myCustomValue"}];
ORAVideoMeta * videoMeta = [ORAVideoMeta new];
videoMeta.clipName = @"Video Name";
videoMeta.clipType = @"Beacon";
[[ORADataCollector sharedCollector] triggerEventForVideoBeacon:videoMeta eventMeta:eventMetaData];						
let eventMetaData = ORAEventMeta(eventPath: nil,
description:"video beacon event description",
type:nil, customParams:["myCustomParam":"myCustomValue"])
let videoMeta = ORAVideoMeta();
videoMeta?.clipName = "Video Name"
videoMeta?.clipType = "Beacon"
ORADataCollector.shared().triggerEvent(forVideoBeacon:videoMeta, eventMeta: eventMetaData >)				

Additional arguments are required to be passed along with eventMeta object for this event

  • videoMeta: Specifies an <ORAVideoMeta> object that stores video-based parameters attached to this event.

The Infinity parameters and their values specific to this event are as follows:

  Infinity Parameter Value
1 data.page-uri eventMeta.eventPath
2 WT.ti eventMeta.eventDescr
3 WT.pi eventMeta.eventDescr
4 Wt.clip_id "Video Name"
5 Wt.clip_ev "Beacon"
6 WT.sys clip_beacon
7 WT.dl 41

Video error event

This method collects data when an error occurs during the loading and playing of the video in the mobile app.

ORAEventMeta *eventMetaData = [ORAEventMeta eventMetaForPath:nil description:@"video error event description" type:nil
customParams:@{@"myCustomParam":@"myCustomValue"}];
ORAVideoMeta * videoMeta = [ORAVideoMeta new];
videoMeta.clipName = @"Video Name";
videoMeta.clipType = @"Error";
[[ORADataCollector sharedCollector] triggerEventForVideoError:videoMeta eventMeta:eventMetaData];
let eventMetaData = ORAEventMeta(eventPath: nil,
description:"video error event description",
type:nil, customParams:["myCustomParam":"myCustomValue"])
let videoMeta = ORAVideoMeta();
videoMeta?.clipName = "Video Name"
videoMeta?.clipType = "Error"
ORADataCollector.shared().triggerEvent(forVideoError:videoMeta, eventMeta: eventMetaData >)				

Additional arguments required to be passed along with eventMeta object for this event

  • videoMeta: Specifies an <ORAVideoMeta> object that stores video based parameters attached to this event.

The Infinity parameters and their values specific to this event are as follows:

  Infinity Parameter Value
1 data.page-uri eventMeta.eventPath
2 WT.ti eventMeta.eventDescr
3 WT.pi eventMeta.eventDescr
4 Wt.clip_id "Video Name"
5 Wt.clip_ev "Error"
6 WT.sys clip_error
7 WT.dl 41

Learn more

Android Video Behavior Data Collection Methods

Oracle CX Infinity Module