Difference between revisions of "AddEventBatch"

From Gvp-public
Jump to navigation Jump to search
 
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
{{Api_Method_Spec|
 
{{Api_Method_Spec|
Description=The AddEventBatch is a method to add massive events in just one request. The same behavior of [[AddEvent]], his most common use is on mobile device (after stay offline during some time) or when the events can be send in a group of events. On mobile device in a offline mode, all events that wants to add can be storage in a pool and it become online, send all data in one request to the AddEventBatch.
+
Description=The AddEventBatch is a method to add massive events in just one request, in another words, send multiply events as [[AddEvent]] in the same time. On mobile device, for example, in a offline mode, all events that wants to add can be storage in a pool, and when it become online, send all data in one request to the AddEventBatch.
  
The difference between [[AddEvent]], is that the parameter eventData is an Array of [[AnalyticsEventItem]] that contains each event to add with his info like timestamp and event title.
+
The principal difference between [[AddEvent]], is that the parameter eventData is an Array of [[AnalyticsEventItem]] that contains each event to add with his info like timestamp and event title.
  
 
The AddEventBatch can be used logged or anonymous.
 
The AddEventBatch can be used logged or anonymous.
 +
 +
For each event, if not specified the context parameter, the user data will be obtained from the Token.
  
 
For more information about the behavior, see [[AddEvent]] method.
 
For more information about the behavior, see [[AddEvent]] method.
  
  
NOTE: Each event in the array eventData has three members: timestamp, event and data. The data parameter could be create with dynamic fields as needed. It's composed by a sequence of key:value.
+
The following parameters are always overwritten by GVP
  
For example: If wants to send three groups of data and it has different name. The application should controls the sequence and sent one at a time.
+
* USERID -> (From token)
 
+
* DEVICEID -> (From token, deviceID in case it is a loginTrustedDevice, User IP if loginUserPAssword)
* First batch:
+
* DEVICETYPEID (From token)
: - Timstamp: { now }
+
* IPADDRESS (From request heades)
: - Event: FirstBatch
+
* INSTANCEID -> (From token)
: - Data: [ Array of Event object with information ]
+
* LANGUAGEID -> (From token)
 
+
* SESSIONID -> (From token: currently empty because some device couldnt support it)
* Second batch
+
* CONTEXT ->  (From token: always true)
: - Timstamp: { now }
 
: - Event: SecondBatch
 
: - Data: [ Array of Event object with information ]
 
 
 
* Third batch
 
: - Timstamp: { now }
 
: - Event: ThirdBatch
 
: - Data: [ Array of Event object with information ]
 
  
  
 +
Avoid also using any parameter Starting By MIB* (It returns an error in the method)
  
 +
examples
 +
* MIBAPPLICATIONAME
 +
* MIBTIMESTAMP
 +
* MIBEVENTNAME
  
  
Line 50: Line 49:
 
:::  eventData: [
 
:::  eventData: [
 
::::  {
 
::::  {
:::::  "Timestamp" : "4315435114",
+
:::::  "Timestamp" : "1578910731",
 
:::::  "Event" : "EventName",
 
:::::  "Event" : "EventName",
 
:::::  "Data" :
 
:::::  "Data" :
Line 62: Line 61:
 
::::::::      "DeviceId":"3333333333332222222222227128",
 
::::::::      "DeviceId":"3333333333332222222222227128",
 
::::::::      "OBInstanceCode":25,
 
::::::::      "OBInstanceCode":25,
::::::::      "UserType":null
+
::::::::      "UserType":null,
 +
::::::::      '''"Context":false,'''
 
:::::::    }
 
:::::::    }
 
::::  },
 
::::  },
 
::::  {
 
::::  {
:::::  "Timestamp" : "34123543156",
+
:::::  "Timestamp" : "1578910737",
 
:::::  "Event" : "AnotherEventName",
 
:::::  "Event" : "AnotherEventName",
 
:::::  "Data" :
 
:::::  "Data" :
Line 76: Line 76:
 
::::::::      "OBInstanceCode":29,
 
::::::::      "OBInstanceCode":29,
 
::::::::      "Advertising":null
 
::::::::      "Advertising":null
::::::::      "MerchantId":123
+
::::::::      "MerchantId":123,
 +
::::::::      '''"Context":true,'''
 
:::::::    }
 
:::::::    }
 
::::  }
 
::::  }
Line 86: Line 87:
 
|ParamType=String
 
|ParamType=String
 
|ParamRequired=optional
 
|ParamRequired=optional
|ParamDescription=This parameter can be found in the [[GetMediaURL]] and has all information about the Movie. Is passed, it will be used to assign the eventData with the movie.
+
|ParamDescription=This parameter can be found in the [[GetMediaUrl]] and has all information about the Movie. Is passed, it will be used to assign the eventData with the movie.
 
: e.g.
 
: e.g.
 
:: "MediaInfo": "eyJNb3ZpZUlkIjozNTkzNiwiTWVkaWFJZCI6 … XlsaXN0SWQiOjAsIk1lZGlhVHlwZSI6MSwiRHVyYXRpb24iOjU4MjB9"
 
:: "MediaInfo": "eyJNb3ZpZUlkIjozNTkzNiwiTWVkaWFJZCI6 … XlsaXN0SWQiOjAsIk1lZGlhVHlwZSI6MSwiRHVyYXRpb24iOjU4MjB9"
Line 105: Line 106:
  
 
|Exceptions=
 
|Exceptions=
None
+
* [[InvalidEventDataException]]
  
 
|Cache=
 
|Cache=
Line 137: Line 138:
 
* [[AddEvent]]
 
* [[AddEvent]]
 
* [[GetMediaUrl]]
 
* [[GetMediaUrl]]
 +
* [[AnalyticsEventItem]]
 
}}
 
}}

Latest revision as of 10:19, 13 January 2020

Description

The AddEventBatch is a method to add massive events in just one request, in another words, send multiply events as AddEvent in the same time. On mobile device, for example, in a offline mode, all events that wants to add can be storage in a pool, and when it become online, send all data in one request to the AddEventBatch.

The principal difference between AddEvent, is that the parameter eventData is an Array of AnalyticsEventItem that contains each event to add with his info like timestamp and event title.

The AddEventBatch can be used logged or anonymous.

For each event, if not specified the context parameter, the user data will be obtained from the Token.

For more information about the behavior, see AddEvent method.


The following parameters are always overwritten by GVP

  • USERID -> (From token)
  • DEVICEID -> (From token, deviceID in case it is a loginTrustedDevice, User IP if loginUserPAssword)
  • DEVICETYPEID (From token)
  • IPADDRESS (From request heades)
  • INSTANCEID -> (From token)
  • LANGUAGEID -> (From token)
  • SESSIONID -> (From token: currently empty because some device couldnt support it)
  • CONTEXT -> (From token: always true)


Avoid also using any parameter Starting By MIB* (It returns an error in the method)

examples

  • MIBAPPLICATIONAME
  • MIBTIMESTAMP
  • MIBEVENTNAME

Parameters

  • token (String, required)
A valid token for identifying the API session context. The token can be anonymous or logged.
The eventData parameter is an AnalyticsEventItem object type and represent a set of data to register the event in the Mongo data base. Each event has the Timestamp, Event and an object with many pair of key:value. It allow to add any pair key:value as you need because it will be add in the Mongo database dynamically inserting a new column by each new key added.
e.g.
{
Token: "",
mediaInfo: "",
eventData: [
{
"Timestamp" : "1578910731",
"Event" : "EventName",
"Data" :
{
"EventType":"STOP",
"ChannelNumber":1,
"ChannelName":"TVE 1",
"ChannelCallLetter":"",
"StreamQuality":"SD",
"UniqueUserCode":null,
"DeviceId":"3333333333332222222222227128",
"OBInstanceCode":25,
"UserType":null,
"Context":false,
}
},
{
"Timestamp" : "1578910737",
"Event" : "AnotherEventName",
"Data" :
{
"EventType":"Rent",
"ActionType":"Click",
"ProductType":1,
"DeviceId":"3333333333332222222222227128",
"OBInstanceCode":29,
"Advertising":null
"MerchantId":123,
"Context":true,
}
}
]
}
  • mediaInfo (String, optional)
This parameter can be found in the GetMediaUrl and has all information about the Movie. Is passed, it will be used to assign the eventData with the movie.
e.g.
"MediaInfo": "eyJNb3ZpZUlkIjozNTkzNiwiTWVkaWFJZCI6 … XlsaXN0SWQiOjAsIk1lZGlhVHlwZSI6MSwiRHVyYXRpb24iOjU4MjB9"


Returns

Returns a JSON object containing the information if the event is registered on server.

Example:

{

"StatusCode": 0,
"Severity": 1,
"StatusMessage": "OK",
"Content": true

}


Exceptions


Caching

This method is not cached.


Known issues

None


Version history

API Version Number Change description Changes author
1.0 Initial method design Harley Cabral
2.4 Ricardo Calvo



See also