Skip to content

AppInteraction Events

Info

This document is a work in progress.

Currently, AppInteraction events contain below events, still working in progress:

  • AppInteraction Events
    • Promotion Event - When user interacts with HMI/application's promotion popup, should send Promotion event.
    • Voice Event - When user interacts with HMI/application in voice, should send Voice event.
    • AppActivated Event - When user activates with HMI/application, should send AppActivated event.
    • AppDeactivated Event - When user deactivates with HMI/application, should send AppDeactivated event.
    • Interaction Event - When user interacts with HMI/application, should send Interaction event.
    • CapturePoiOnMap Event - When user request HMI/application to have snapshot with current poi on map, should send CapturePoiOnMap event.
    • CardInteraction Event - When a click on a destination renders the Details page for the Address or POI, should send CardInteraction event.
    • FTUEAgreements Event - When user interacts with HMI/application's first time user experience related dialogs, should send FTUEAgreements event.
    • Order Event - When user interacts with HMI/application to order something, should send Order event.
    • Pay Event - When user wants to pay via HMI/application, should send Pay event.
    • PredictiveCards Event - When user interacts with HMI/application's predictive cards, should send PredictiveCards event.
    • PredictiveNavigationSetting Event - When user interacts with HMI/application's Predictive Navigation Setting, should send PredictiveNavigationSetting event.

AppInteraction Events

Promotion Event

When user interacts with HMI/application's promotion popup, should send Promotion event

Key methods

Method Details
setPromotionId(String promotion_id) A unique id for the promotion mandatory data field.
setVendorPromotionId(String vendor_promotion_id) The promotion id received from vendor, optional data field.
setEntityId(String entity_id) The entity where promotion was displayed, optional data field.
setCategory(GroupDetailItem[] category) List of offer category ids and names, optional data field.
setBrand(GroupDetailItem[] brand) List of offer brand ids and names, optional data field.
setAction(PromotionActionValue action) The type of user engagement with the promotion, mandatory data field.
setTrigger(PromotionTriggerValue trigger) The moment or scenario which triggered the promotion event, mandatory data field.
setVendor(PromotionVendorValue vendor) The vendor from which promotion details were received, optional data field.
setSource(PromotionSourceValue source) The source which generated the promotion based on the moment like search service, prediction service etc, optional data field.
setSourceId(String source_id) The id of promotion source. This is the reference_id in the search/prediction response, optional data field.

GroupDetailItem

Method Details
setId(String id) The id of the classification, mandatory data field.
setName(String name) The name of the classification, optional data field.
enum index PromotionActionValue
0 IMPRESSION
1 CLICK
2 SEND_TO_PHONE
3 DRIVE

Sample code

1
2
3
4
5
6
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(PromotionEvent.builder()
    .setPromotionId("id")
    .setAction(PromotionActionValue.CLICK)
    .setTrigger(PromotionTriggerValue.OTHER)
    .build()).build().execute();
1
2
3
4
5
6
var builder = dataCollectorClient.sendEventRequest()
var response = builder.setEvent(PromotionEvent.builder()
    .setPromotionId("id")
    .setAction(PromotionActionValue.CLICK)
    .setTrigger(PromotionTriggerValue.OTHER)
    .build()).build().execute()

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

Voice Event

When user initiates an action (eg: click a candidate, call the phone number of that poi, drive to that poi/address) from a pre-stored poi/address (home/work address, favorite result list, recent poi/address), HMI/application should send "ENTITY_CACHE_ACTION" event.

Key methods:

Method Details
setVoiceEventType(VoiceEventType event_type) To identify if the event is triggered by the system or by a user interaction, mandatory data field.
setEventZone(EventZoneValue event_zone) The identify the zone from which user interaction happened, mandatory data field.
setEventLabel(String event_label) The label of the button or the icon interacted with, mandatory data field.
setSttOutput(String stt_output) This property will allow us to identify the result of speech_to_text engine that translates what the user said using voice commands, optional data field.
setNlgOutput(String nlg_output) This property is used to understand how the system responds to a certain intent of the user. It is extracted from the NLG output data, optional data field.
enum index VoiceEventType
0 USER_EVENT
1 SYSTEM_EVENT
enum index EventZoneValue
0 SEARCH
1 FIND_PARKING
2 NEARBY_PARKING
3 SAVED_DESTINATIONS
4 RECENT_DESTINATIONS
5 MY_ORDERS
6 PAY_AHEAD
7 NAVIGATION
8 DASHBOARD
9 REGISTRATION
10 PAYMENT_METHOD
11 FTUE
12 INFOTAINMENT
13 SETTINGS
14 COMMERCE
15 NAVIGATION_INFOTAINMENT
16 CALLS
17 NONE
enum index SourceType
0 RECENT
1 FAVORITE
2 HOME
3 WORK

Sample code

1
2
3
4
5
6
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(VoiceEvent.builder()
    .setVoiceEventType(VoiceEvent.VoiceEventType.SYSTEM_EVENT)
    .setEventZone(EventZoneValue.CALLS)
    .setEventLabel("label")
    .build()).build().execute();
1
2
3
4
5
6
7
var builder = dataCollectorClient.sendEventRequest();
var response = builder
    .setEvent(VoiceEvent.builder()
    .setVoiceEventType(VoiceEvent.VoiceEventType.SYSTEM_EVENT)
    .setEventZone(EventZoneValue.CALLS)
    .setEventLabel("label")
    .build()).build().execute()

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

AppActivated Event

When user activates with HMI/application, should send AppActivated event.

Key methods:

Method Details
setTrigger(AppActivatedTriggerType trigger) Required Entry point from which the app was launched. If a user launced the app from a Facebook link, the trigger would be FB, mandatory data field.
setCausedBy(String caused_by) A short description of the action that caused the app to be activated, mandatory data field.
setDisplayScreen(LaunchDisplayType display_screen) The screen displayed on app activation. This would be different depending on whether the user launched the app from a shortcut, background or meetup link, mandatory data field.
enum index AppActivatedTriggerType
0 SHORTCUT
1 FACEBOOK
2 GPLUS
3 WIDGET
4 SMS
5 EMAIL
6 PUSH_NOTIFICATION
7 WHATS_APP
8 APP_ICON
9 BACKGROUND
10 CLUSTER
11 START_ENGINE
12 PORCH_VIEW
13 SPEECH
14 EXTERNAL_API
15 OTHER
16 WATCH
enum index LaunchDisplayType
0 DASHBOARD
1 PLACE_DETAILS
2 SRP
3 COUPONS
4 COUPON_DETAILS
5 MILEAGE
6 EXPLORE_CATEGORY
7 NAVIGATION
8 DOWNLOAD_MAP
9 OTHER
10 SEARCH
11 AR

Sample code

1
2
3
4
5
6
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(AppActivatedEvent.builder()
    .setCausedBy("setCausedBy")
    .setTrigger(AppActivatedTriggerType.PORCH_VIEW)
    .setDisplayScreen(LaunchDisplayType.DOWNLOAD_MAP)
    .build()).build().execute();
1
2
3
4
5
6
var builder = dataCollectorClient.sendEventRequest();
var response = builder.setEvent(AppActivatedEvent.builder()
    .setCausedBy("setCausedBy")
    .setTrigger(AppActivatedTriggerType.PORCH_VIEW)
    .setDisplayScreen(LaunchDisplayType.DOWNLOAD_MAP)
    .build()).build().execute()

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

AppDeactivated Event

When user deactivates with HMI/application, should send AppDeactivated event.

Key methods:

Method Details
setTrigger(AppDeactivatedTriggerType trigger) Action that caused the application to be deactivated. This could be a user action or external action like a phone call that causes the app to be sent to background, mandatory data field.
setCausedBy(String caused_by) A short description of the action that caused the app to be deactivated, mandatory data field.
enum index AppDeactivatedTriggerType
0 CLOSE
1 BACKGROUND
2 CRASH
3 OTHER

Sample code

1
2
3
4
5
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(AppDeactivatedEvent.builder()
    .setCausedBy("setCausedBy")
    .setTrigger(AppDeactivatedTriggerType.BACKGROUND)
    .build()).build().execute();
1
2
3
4
5
var builder = dataCollectorClient.sendEventRequest();
var response = builder.setEvent(AppDeactivatedEvent.builder()
    .setCausedBy("setCausedBy")
    .setTrigger(AppDeactivatedTriggerType.BACKGROUND)
    .build()).build().execute()

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

Interaction Event

When user interacts with HMI/application, should send Interaction event.

Key methods:

Method Details
setInteractionEventType(InteractionEventType event_type) To identify if the event is triggered by the system or by a user interaction, mandatory data field.
setEventZone(String caused_by) The identify the zone from which user interaction happened, mandatory data field.
setEventAction(EventZoneValue event_zone) EventZoneValueThe identify the zone from which user interaction happened, mandatory data field.
setEventModule(EventModuleValue event_module) The identify the screen position where the event occurred, mandatory data field.
setEventLabel(String event_label) The label of the button or the icon interacted with, mandatory data field.
setTabPosition(Integer tab_position) This property is used to identify what tab was active when an event happened. Value 0(zero) will be fired for all events that are not happening in a tab. 1 to n values will be fired in order to determine the tab, optional data field.
setColumnPosition(Integer column_position) This property is used to identify on what column the event happened. Value 0(zero) will be fired for all events that are not happening in a column. 1 to n values will be fired in order to determine the column, optional data field.
setRowPosition(Integer row_position) This property is used to identify on what row the event happened. Value 0(zero) will be fired for all events that are not happening in a row. 1 to n values will be fired in order to determine the row, optional data field.
setEventMetadata(String event_metadata) Contains optional JSON data pertaining to the event, optional data field.
enum index InteractionEventType
0 USER_EVENT
1 SYSTEM_EVENT
enum index EventModuleValue
0 NAV_BAR
1 MAP_AREA
2 POI_DETAILS
3 LIST_VIEW
4 USER_EVENT
5 MAIN_AREA
6 DIALOG_VIEW
7 ALERT_VIEW
8 LOADING_INDICATOR
9 MESSAGE_WIDGET
10 TOP_NAV_BAR
11 BOTTOM_NAV_BAR
12 OTHER

Sample code

1
2
3
4
5
6
7
8
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(InteractionEvent.builder()
        .setInteractionEventType(InteractionEvent.InteractionEventType.SYSTEM_EVENT)
        .setEventZone(EventZoneValue.CALLS)
        .setEventAction(EventActionValue.ARRIVAL)
        .setEventModule(EventModuleValue.ALERT_VIEW)
        .setEventLabel("label")
.build()).build().execute();
1
2
3
4
5
6
7
8
var builder = dataCollectorClient.sendEventRequest();
var response = builder.setEvent(InteractionEvent.builder()
        .setInteractionEventType(InteractionEvent.InteractionEventType.SYSTEM_EVENT)
        .setEventZone(EventZoneValue.CALLS)
        .setEventAction(EventActionValue.ARRIVAL)
        .setEventModule(EventModuleValue.ALERT_VIEW)
        .setEventLabel("label")
.build()).build().execute()

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

CapturePoiOnMap Event

When user request HMI/application to have snapshot with current poi on map, should send CapturePoiOnMap event.

Key methods

Method Details
setTrigger(CategoryType trigger) A unique id for the promotion mandatory data field.
setAction(SettingType action) The promotion id received from vendor, optional data field.
setInteractionMethod(InteractionMethodValue interaction_method) The entity where promotion was displayed, optional data field.
enum index InteractionMethodValue
0 TOUCH_SCREEN
1 MFC
2 ROTARY
3 VOICE
enum index SettingType
0 ON
1 OFF
2 CLICK
1 BACK
2 EXIT
enum index CategoryType
0 COFFEE,
1 RESTAURANTS
2 FASTFOOD
3 ATM
4 GAS
5 LODGING
6 PARKING
7 AIRPORTS
8 MOVIES
9 GROCERY
10 SHOPPING
11 BARS
12 BRAND
13 BANK
14 HOTEL
15 MORE
16 RECENTS
17 FAVORITE
18 DEALERSHIPS
19 FUEL
20 FOOD
21 TRANSIT
22 LEISURE
23 ENTERTAINMENT
24 LIFE
25 AUTO_SERVICE
26 ATTRACTIONS
27 RESTAREAS
28 HEALTH
29 EMERGENCY
30 DRINKS
31 PHARMACIES
32 SUBWAY_STATIONS
33 CONVENIENCE_STORES
34 GM_DEALERSHIPS
35 HOSPITALS
36SUPERMARKETS
37 ADDRESS

Sample code

1
2
3
4
5
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(CapturePoiOnMapEvent.builder()
        .setAction(SettingType.CLICK)
        .setTrigger(CategoryType.ADDRESS)
.build()).build().execute();
1
2
3
4
5
var builder = dataCollectorClient.sendEventRequest()
var response = builder.setEvent(CapturePoiOnMapEvent.builder()
        .setAction(SettingType.CLICK)
        .setTrigger(CategoryType.ADDRESS)
.build()).build().execute()

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

CardInteraction Event

When a click on a destination renders the Details page for the Address or POI, should send CardInteraction event.

Key methods

Method Details
setAction(CardInteractionActionType action) The action that the user takes on the card, mandatory data field.
setTrigger(CardTriggerType trigger) What triggered this event. SYSTEM - when system decide to hide the card for any reason e.g. Auto-hide, user not following the predicted route etc. trigger_cause will have additional information on this. USER - When user explicitly triggers the event, optional data field.
setTriggerCause(String trigger_cause) Any english description of cause of the trigger, optional data field.
setImpressionId(String impression_id) The identifier of the impression associated with an instance of cards displayed, optional data field.
setPredictiveCard(PredictiveListItem predictive_card) PredictiveListItemAll of the details associated with the predictive card selected. Structure of this is same as the one item in predictive_card_list array in predictive_cards event, optional data field.
setInteractionMethod(InteractionMethodValue interaction_method) InteractionMethodValuefor each user interaction log the interation method, mandatory data field.
enum index CardInteractionActionType
0 SELECT
1 UNSELECT
2 NAV_START
3 DISMISS
enum index CardTriggerType
0 SYSTEM
1 USER

Sample code

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(CardInteractionEvent.builder()
        .setTrigger(CardTriggerType.SYSTEM)
        .setImpressionId("id")
        .setPredictiveCard(PredictiveListItem.builder()
        .setDestLat(35.0)
        .setDestLon(-122.0)
        .setScore(7.0)
        .setCardId("id")
        .build())
        .setAction(CardInteractionEvent.CardInteractionActionType.DISMISS)
.build()).build().execute();
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
var builder = dataCollectorClient.sendEventRequest()
var response = builder.setEvent(CardInteractionEvent.builder()
        .setTrigger(CardTriggerType.SYSTEM)
        .setImpressionId("id")
        .setPredictiveCard(PredictiveListItem.builder()
                .setDestLat(35.0)
                .setDestLon(-122.0)
                .setScore(7.0)
                .setCardId("id")
                .build())
        .setAction(CardInteractionEvent.CardInteractionActionType.DISMISS)
.build()).build().execute()

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

FTUEAgreements Event

When user interacts with HMI/application's first time user experience related dialogs, should send FTUEAgreements event.

Key methods

Method Details
setAction(FTUEAgreementsAction action) Log DISPLAY when the screen is displayed;Log DONE or SEE_MY_INVITE when the corresponding option is clicked;Log SIGNUP when the button is clicked on the value prop screen, mandatory data field.
setSdcardCid(String sdcard_cid) SD card CID, optional data field, optional data field.
setTrigger(AboutNavigationAction trigger) Log WELCOME when the value prop screen is displayed; Log VERIFICATION_COMPLETE when ALL DONE, LETS GET STARTED screen is displayed, mandatory data field.
setInteractionMethod(InteractionMethodValue interaction_method) InteractionMethodValuefor each user interaction log the interation method, optional data field.
enum index FTUEAgreementsAction
0 ACCEPT
1 DECLINE
2 BACK
enum index AboutNavigationAction
0 TERMS
1 PRIVACY
2 BACK
3 BOTH
4 NEITHER

Sample code

1
2
3
4
5
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(FTUEAgreementsEvent.builder()
        .setAction(FTUEAgreementsEvent.FTUEAgreementsAction.ACCEPT)
        .setTrigger(AboutNavigationAction.BACK)
.build()).build().execute();
1
2
3
4
5
var builder = dataCollectorClient.sendEventRequest()
var response = builder.setEvent(FTUEAgreementsEvent.builder()
        .setAction(FTUEAgreementsEvent.FTUEAgreementsAction.ACCEPT)
        .setTrigger(AboutNavigationAction.BACK)
.build()).build().execute()

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

Order Event

When user interacts with HMI/application to order something, should send Order event.

Key methods

Method Details
setOrderId(String order_id) A unique id for the promotion mandatory data field.
setMerchantOrderId(String merchant_order_id) The promotion id received from vendor, optional data field.
setCategory(CategoryType category) CategoryTypeThe entity where promotion was displayed, optional data field.
setOrderItems(OrderItem[] order_items) List of offer category ids and names, optional data field.
setPaymentId(String payment_id) List of offer brand ids and names, optional data field.
setEntityStoreId(String entity_store_id) The type of user engagement with the promotion, mandatory data field.
setMerchantStoreId(String merchant_store_id) The moment or scenario which triggered the promotion event, mandatory data field.
setPrice(OrderPriceItem price) The vendor from which promotion details were received, optional data field.
setStatus(OrderStatusValue status) The source which generated the promotion based on the moment like search service, prediction service etc, optional data field.
setMerchantName(OrderMerchantValue merchant_name) The id of promotion source. This is the reference_id in the search/prediction response, optional data field.
setCommerceService(OrderCommerceServiceItem commerce_service) The id of promotion source. This is the reference_id in the search/prediction response, optional data field.

OrderItem

Method Details
setProductId(String product_id) The id of a single item/product in the order. In case of a combo, this will have sub items, optional data field.
setProductName(String product_name) The name of a single item/product in the order, mandatory data field.
setQuantity(Integer quantity) The quantity of main items purchased, optional data field.
setPrice(OrderPriceItem price) Price details of individual product/item in order, optional data field.
setOrderFoodSpecificItem(OrderFoodSpecificItem food_specific) Details like modifiers and sub_items for a combo - specific to food order, optional data field.
setOrderParkingSpecificItem(OrderParkingSpecificItem parking_specific) Details like start/end time and quote - specific to parking order, optional data field.

OrderFoodSpecificItem

Method Details
setModifiers(OrderModifierDetail[] modifiers) Commerce service event version, mandatory data field.
setSubItems(OrderSubItem[] sub_items) Commerce service event version, mandatory data field.

OrderModifierDetail |-----|--------------| |setModifierId(String modifier_id)|The id of a modifier in a commerce order, optional data field.| |setModifierName(String modifier_name)|The name of a modifier in the order, mandatory data field.| |setQuantity(Integer quantity)|The modifier quantity, optional data field.|

OrderSubItem |-----|--------------| |setSubItemId(String sub_item_id)|The id of a item/sub_item in a commerce order, optional data field.| |setSubItemName(String sub_item_name)|The name of a item/sub_item in the order, mandatory data field.| |setSubItemModifiers(OrderModifierDetail[] sub_item_modifiers)|The array of details, optional data field.|

OrderPriceItem

Method Details
setTotal(Double total) Commerce service event version, mandatory data field.
setTax(Double tax) Commerce service event version, mandatory data field.
setTotalBeforeTax(Double total_before_tax) Commerce service event version, mandatory data field.
setCurrency(CurrencyType currency) Commerce service event version, mandatory data field.
enum index CurrencyType
0 USD
1 EUR

OrderCommerceServiceItem

Method Details
setCsEventVersion(String cs_event_version) Commerce service event version, mandatory data field.

OrderParkingSpecificItem

Method Details
setStartTime(Integer start_time) Start time of parking reservation - UTC timestamp in milliseconds, optional data field.
setEndTime(Integer end_time) End time of parking reservation - UTC timestamp in milliseconds, optional data field.
setQuoteId(String quote_id) Unique id of parking reservation from external vendor, optional data field.
enum index OrderStatusValue
0 SUCCESSFUL
1 CANCELLED
2 DECLINED
3 PENDING
4 FAILED
enum index OrderMerchantValue
0 PARKOPEDIA
1 SYNQ3
2 NOVOLABS
3 P97
4 OLO

Sample code

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(OrderEvent.builder()
        .setOrderId("id")
        .setOrderItems(new OrderItem[] {OrderItem.builder()
        .setProductName("name").setProductId("id")
        .setOrderFoodSpecificItem(OrderFoodSpecificItem.builder().setSubItems(new OrderSubItem[] {
        OrderSubItem.builder().setSubItemId("id").setSubItemName("name").build()}).build())
        .setOrderParkingSpecificItem(OrderParkingSpecificItem.builder().setStartTime(7).setEndTime(7).setQuoteId("id").build())
        .build()})
        .setMerchantOrderId("id")
        .setEntityStoreId("id")
        .setStatus(OrderStatusValue.CANCELLED)
        .setMerchantName(OrderMerchantValue.NOVOLABS)
.build()).build().execute();
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
var builder = dataCollectorClient.sendEventRequest()
var response = builder.setEvent(OrderEvent.builder()
        .setOrderId("id")
        .setOrderItems(arrayof(OrderItem.builder()
                .setProductName("name").setProductId("id")
                .setOrderFoodSpecificItem(OrderFoodSpecificItem.builder().setSubItems(new OrderSubItem[] {
                    OrderSubItem.builder().setSubItemId("id").setSubItemName("name").build()}).build())
                .setOrderParkingSpecificItem(OrderParkingSpecificItem.builder().setStartTime(7).setEndTime(7).setQuoteId("id").build())
                .build()))
        .setMerchantOrderId("id")
        .setEntityStoreId("id")
        .setStatus(OrderStatusValue.CANCELLED)
        .setMerchantName(OrderMerchantValue.NOVOLABS)
.build()).build().execute()

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

Pay Event

When user wants to pay via HMI/application, should send Pay event.

Key methods

Method Details
setTransactionId(String transaction_id) The payment transaction id, mandatory data field.
setCommerceId(String commerce_id) The commerce id for the order, optional data field.
setPayEventType(PayEventType pay_event_type) To identify if the event is triggered by the system or by a user interaction, optional data field.
setEventDescriptor(EventDescriptorValue event_descriptor) The identify the trigger of user interaction, optional data field.
setEventZone(EventZoneValue event_zone) EventZoneValueThe identify the zone from which user interaction happened, optional data field.
setUserInteraction(UserInteractionValue user_interaction) The type of user interaction type, mandatory data field.
setEventModule(EventModuleValue event_module) EventModuleValueThe identify the screen position where the event occurred, mandatory data field.
setEventPosition(Integer event_position) The position of the user selection in a list. Default value is 0 for events where list is not relevant, optional data field.
setEventLabel(String event_label) The label of the button or the icon interacted with, optional data field.
setOrderTotal(Double order_total) The total amount including taxes paid by the user in specified currency, optional data field.
setTaxes(Double taxes) The taxes paid in specified currency, optional data field.
setCurrency(CurrencyType currency) CurrencyTypeTo identify the currency of the payment, optional data field.
setMerchantName(OrderMerchantValue merchant_name) OrderMerchantValueTo identify the merchant at which order is placed, mandatory data field.
setProductCategory(CategoryType product_category) **CategoryType **The category of the product ordered, mandatory data field.
setPaymentStatus(PaymentStatusValue payment_status) To identify the payment status, optional data field.
setPaymentType(PaymentTypeValue payment_type) To identify the payment type like CREDIT, DEBIT, CASH and others, optional data field.
setCardType(CardTypeValue card_type) To identify the card type, optional data field.
setPaymentProvider(PaymentProviderValue payment_provider) To identify of the payment provider, optional data field.
enum index PayEventType
0 USER_EVENT
1 SYSTEM_EVENT
enum index EventDescriptorValue
0 SHAPE_BUTTON
1 FLOATING_BUTTON
2 TEXT_BUTTON
3 ICON_BUTTON
4 OTHER
5 THUMBNAIL_BUTTON
6 FIELD_BUTTON
7 CHECKBOX_ON_BUTTON
8 CHECKBOX_OFF_BUTTON
9 SWITCH_ON_BUTTON
10 SWITCH_OFF_BUTTON
enum index UserInteractionValue
0 TAP
1 SWIPE
2 DRAG
3 SLIDE
4 PRESS
5 DISPLAY
6 SCROLL
enum index PaymentTypeValue
0 CREDIT
1 DEBIT
2 PREPAID
3 UNKNOWN
4 CARD
5 CASH
enum index PaymentStatusValue
0 PRE_INITIATED
1 INITIATED
2 COMPLETE
3 FAILED
4 CANCELLED
5 SUCCESSFUL
6 REFUNDED
enum index CardTypeValue
0 VISA
1 MASTERCARD
2 AMERICANEXPRESS
3 DISCOVER
4 JCB
5 OTHER
enum index PaymentProviderValue
0 STRIPE
1 P97

Sample code

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(PayEvent.builder()
        .setTransactionId("id")
        .setCommerceId("id")
        .setPayEventType(PayEvent.PayEventType.SYSTEM_EVENT)
        .setEventZone(EventZoneValue.CALLS)
        .setEventModule(EventModuleValue.ALERT_VIEW)
        .setEventLabel("label")
        .setOrderTotal(7.0)
        .setCurrency(CurrencyType.EUR)
        .setPaymentStatus(PaymentStatusValue.CANCELLED)
.build()).build().execute();
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
var builder = dataCollectorClient.sendEventRequest()
var response = builder.setEvent(PayEvent.builder()
        .setTransactionId("id")
        .setCommerceId("id")
        .setPayEventType(PayEvent.PayEventType.SYSTEM_EVENT)
        .setEventZone(EventZoneValue.CALLS)
        .setEventModule(EventModuleValue.ALERT_VIEW)
        .setEventLabel("label")
        .setOrderTotal(7.0)
        .setCurrency(CurrencyType.EUR)
        .setPaymentStatus(PaymentStatusValue.CANCELLED)
.build()).build().execute()

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

PredictiveCards Event

When user interacts with HMI/application's promotion popup, should send Promotion event

Key methods

Method Details
setPromotionId(String promotion_id) A unique id for the promotion mandatory data field.
setVendorPromotionId(String vendor_promotion_id) The promotion id received from vendor, optional data field.
setEntityId(String entity_id) The entity where promotion was displayed, optional data field.
setCategory(GroupDetailItem[] category) List of offer category ids and names, optional data field.
setBrand(GroupDetailItem[] brand) List of offer brand ids and names, optional data field.
setAction(PromotionActionValue action) The type of user engagement with the promotion, mandatory data field.
setTrigger(PromotionTriggerValue trigger) The moment or scenario which triggered the promotion event, mandatory data field.
setVendor(PromotionVendorValue vendor) The vendor from which promotion details were received, optional data field.
setSource(PromotionSourceValue source) The source which generated the promotion based on the moment like search service, prediction service etc, optional data field.
setSourceId(String source_id) The id of promotion source. This is the reference_id in the search/prediction response, optional data field.

PredictiveListItem

Method Details
setDestLat(Double dest_lat) The latitude of the destination, optional data field.
setDestLon(Double dest_lon) The longitude of the destination, optional data field.
setEntityId(String entity_id) Identifier of the Entity associated with the item in the list, optional data field.
setCardId(String card_id) Identifier for individual cards, mandatory data field.
setPosition(Double position) position of the card, optional data field.
setLabel(String label) The name of the destination is saved. The address if not saved, optional data field.
setDestinationId(String destination_id) Unique identifier for predictive destination, optional data field.
setScore(Double score) The score is the score of prediction, mandatory data field.
setRouteInfoList(RouteInfoListItem[] route_info) Required List of routes and associate information route id, traffic, position and ETA, optional data field.

RouteInfoListItem

Method Details
setEta(Double eta) Set ETA time, optional data field.
setRouteId(String route_id) Route id for each route, mandatory data field.
setTraffic(String traffic) Traffic information, possible value - NO_TRAFFIC, HEAVY_TRAFFIC, MODERATE _TRAFFIC, optional data field.
setPosition(String position) Traffic information, possible value - NO_TRAFFIC, HEAVY_TRAFFIC, MODERATE _TRAFFIC, optional data field.
enum index PromotionActionValue
0 IMPRESSION
1 CLICK
2 SEND_TO_PHONE
3 DRIVE

Sample code

1
2
3
4
5
6
7
8
9
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(PredictiveCardsEvent.builder()
        .setImpressionId("id")
        .setPredictiveCardList(new PredictiveListItem[] {
        PredictiveListItem.builder().setEntityId("id").setDestLat(35.0).setDestLon(-122.0).setScore(7.0).setCardId("id").build()
        })
        .setRequestId("id")
        .setDisplayScreen(PredictiveCardsEvent.DisplayScreenType.CLUSTER)
.build()).build().execute();
1
2
3
4
5
6
7
8
9
var builder = dataCollectorClient.sendEventRequest()
var response = builder.setEvent(PredictiveCardsEvent.builder()
        .setImpressionId("id")
        .setPredictiveCardList(arrayof(
            PredictiveListItem.builder().setEntityId("id").setDestLat(35.0).setDestLon(-122.0).setScore(7.0).setCardId("id").build()
        ))
        .setRequestId("id")
        .setDisplayScreen(PredictiveCardsEvent.DisplayScreenType.CLUSTER)
.build()).build().execute()

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}

PredictiveNavigationSetting Event

When user interacts with HMI/application's Predictive Navigation Setting, should send PredictiveNavigationSetting event Key methods

Method Details
setAction(ClickActionType action)Log Click if user clicks on Alerts and Warnings under profile. Log Back if user clicks back, mandatory data field.
setSdcardCid(String sdcard_cid) SD card CID, optional data field.
setPredictiveNavSetting(SettingType predictive_nav_setting) SettingTypeThe value of the setting ON/OFF, mandatory data field.
setTrigger(FTUESetting trigger) The page/screen on which setting was triggered, mandatory data field.
setInteractionMethod(InteractionMethodValue interaction_method) InteractionMethodValuefor each user interaction log the interaction method, optional data field.
enum index ClickActionType
0 CLICK
1 SELECT
2 SAVE
3 SUBMIT
4 DELETE
5 SCROLL
6 UP
7 DOWN
8 BACK
9 BACK_HARD
10 CANCEL
11 OPEN
12 CLOSE
13 MORE
14 LESS
15 CONFIRM
16 DECLINE
17 EXIT
18 UNDO
19 CLEAR
20 PASS
21 FAIL
22 INTERRUPTED
23 ACCEPT
24 REJECT
25 TIMEOUT
26 COMPLETE
27 SKIP
28 EXPAND
29 MINIMIZE
30 CLUSTER_MAP
31 CLUSTER_AR
enum index FTUESetting
0 FTUE
1 SETTING

Sample code

1
2
3
4
5
6
SendEventRequest.Builder builder = dataCollectorClient.sendEventRequest();
SendEventResponse response = builder.setEvent(PredictiveNavigationSettingEvent.builder()
        .setAction(ClickActionType.CLICK)
        .setTrigger(FTUESetting.FTUE)
        .setPredictiveNavSetting(SettingType.EXIT)
.build()).build().execute();
1
2
3
4
5
6
var builder = dataCollectorClient.sendEventRequest()
var response = builder.setEvent(PredictiveNavigationSettingEvent.builder()
        .setAction(ClickActionType.CLICK)
        .setTrigger(FTUESetting.FTUE)
        .setPredictiveNavSetting(SettingType.EXIT)
.build()).build().execute()

Response example

1
2
3
4
5
{
  "code": "SUCCESS",
  "message": "SendEventResponse Success",
  "response_time": 1
}