Class MyTracker


  • public final class MyTracker
    extends java.lang.Object
    Main facade to access MyTracker API
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static interface  MyTracker.AttributionListener
      Attribution listener interface.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String VERSION
      Library version
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static void applyPlugin​(MyTrackerPluginConfig pluginConfig)
      This method could be used to apply additional plugin.
      static void flush()
      Force sending all saved events to the server.
      static java.lang.String getInstanceId​(android.content.Context context)
      Return current instance id of tracker.
      static MyTrackerConfig getTrackerConfig()
      Return the instance of MyTrackerConfig.
      static MyTrackerParams getTrackerParams()
      Return the instance of MyTrackerParams.
      static java.lang.String handleDeeplink​(android.content.Intent intent)
      The method for processing deeplink to application.
      static void initTracker​(java.lang.String id, android.app.Application application)
      Perform initialization of tracker.
      static boolean isDebugMode()
      Return the attribute whether the tracker prints debug information.
      static void onActivityResult​(int resultCode, android.content.Intent data)
      The method is used for tracking purchases when autotracking purchases is enabled with MyTrackerConfig.setAutotrackingPurchaseEnabled(boolean).
      static void onPurchasesUpdated​(int responseCode, java.util.List<java.lang.Object> purchases)
      The method is used for tracking purchases when autotracking purchases is enabled with MyTrackerConfig.setAutotrackingPurchaseEnabled(boolean).
      static void setAttributionListener​(MyTracker.AttributionListener attributionListener)
      Set the attribution listener.
      static void setAttributionListener​(MyTracker.AttributionListener attributionListener, android.os.Handler handler)
      Set the attribution listener.
      static void setDebugMode​(boolean debugMode)
      Enable or disable printing debug information.
      static void trackAdEvent​(AdEvent adEvent)
      Track advertising event.
      static void trackEvent​(java.lang.String name)
      Track user defined event with custom name.
      static void trackEvent​(java.lang.String name, java.util.Map<java.lang.String,​java.lang.String> eventParams)
      Track user defined event with custom name and optional key-value parameters.
      static void trackInviteEvent()
      Track user invitation event.
      static void trackInviteEvent​(java.util.Map<java.lang.String,​java.lang.String> eventParams)
      Track user invitation event.
      static void trackLaunchManually​(android.app.Activity activity)
      This method could be used in rare cases when tracker isn't able to correctly identify application start.
      static void trackLevelEvent()
      Track achieving new level.
      static void trackLevelEvent​(int level, java.util.Map<java.lang.String,​java.lang.String> eventParams)
      Track achieving new level.
      static void trackLevelEvent​(java.util.Map<java.lang.String,​java.lang.String> eventParams)
      Track achieving new level.
      static void trackLoginEvent​(java.lang.String userId, java.lang.String vkConnectId)
      Track user login event.
      static void trackLoginEvent​(java.lang.String userId, java.lang.String vkConnectId, java.util.Map<java.lang.String,​java.lang.String> eventParams)
      Track user login event.
      static void trackMiniAppEvent​(MiniAppEvent miniAppEvent)
      Track mini-app event.
      static void trackPurchaseEvent​(org.json.JSONObject skuDetails, org.json.JSONObject purchaseData, java.lang.String dataSignature)
      Track purchase event.
      static void trackPurchaseEvent​(org.json.JSONObject skuDetails, org.json.JSONObject purchaseData, java.lang.String dataSignature, java.util.Map<java.lang.String,​java.lang.String> eventParams)
      Track purchase event.
      static void trackRegistrationEvent​(java.lang.String userId, java.lang.String vkConnectId)
      Track user registration event.
      static void trackRegistrationEvent​(java.lang.String userId, java.lang.String vkConnectId, java.util.Map<java.lang.String,​java.lang.String> eventParams)
      Track user registration event.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • VERSION

        @NonNull
        public static final java.lang.String VERSION
        Library version
    • Method Detail

      • isDebugMode

        @AnyThread
        public static boolean isDebugMode()
        Return the attribute whether the tracker prints debug information.
      • setDebugMode

        @AnyThread
        public static void setDebugMode​(boolean debugMode)
        Enable or disable printing debug information.
        Parameters:
        debugMode - If true, the tracker prints debug information to LogCat.
      • setAttributionListener

        @AnyThread
        public static void setAttributionListener​(@Nullable
                                                  MyTracker.AttributionListener attributionListener,
                                                  @Nullable
                                                  android.os.Handler handler)
        Set the attribution listener.
        Parameters:
        attributionListener - The instance of MyTracker.AttributionListener or null.
        handler - The instance of Handler which will be used for invocation listener.
      • initTracker

        @AnyThread
        public static void initTracker​(@NonNull
                                       java.lang.String id,
                                       @NonNull
                                       android.app.Application application)
        Perform initialization of tracker.

        NOTE: this method should be called right after setup tracker configuration.

        NOTE: it's supposed that this method should be called in Application.onCreate().

        Parameters:
        id - The identifier of your application.
        application - The instance of application.
      • flush

        @AnyThread
        public static void flush()
        Force sending all saved events to the server.
      • trackEvent

        @AnyThread
        public static void trackEvent​(@NonNull
                                      java.lang.String name,
                                      @Nullable
                                      java.util.Map<java.lang.String,​java.lang.String> eventParams)
        Track user defined event with custom name and optional key-value parameters.
        Parameters:
        name - User defined event name. Max length is 255 symbols.
        eventParams - Additional event key-value parameters. Max length for key or value is 255 symbols.
      • trackEvent

        @AnyThread
        public static void trackEvent​(@NonNull
                                      java.lang.String name)
        Track user defined event with custom name.
        Parameters:
        name - User defined event name. Max length is 255 symbols.
      • trackLoginEvent

        @AnyThread
        public static void trackLoginEvent​(@NonNull
                                           java.lang.String userId,
                                           @Nullable
                                           java.lang.String vkConnectId,
                                           @Nullable
                                           java.util.Map<java.lang.String,​java.lang.String> eventParams)
        Track user login event.

        NOTE: Call the method right after user successfully authorized in the app and got an unique identifier.

        Parameters:
        userId - Unique user identifier.
        vkConnectId - VK Connect user identifier.
        eventParams - Additional event key-value parameters. Max length for key or value is 255 symbols.
      • trackLoginEvent

        @AnyThread
        public static void trackLoginEvent​(@NonNull
                                           java.lang.String userId,
                                           @Nullable
                                           java.lang.String vkConnectId)
        Track user login event.

        NOTE: Call the method right after user successfully authorized in the app and got an unique identifier.

        Parameters:
        userId - Unique user identifier.
        vkConnectId - VK Connect user identifier.
      • trackRegistrationEvent

        @AnyThread
        public static void trackRegistrationEvent​(@NonNull
                                                  java.lang.String userId,
                                                  @Nullable
                                                  java.lang.String vkConnectId,
                                                  @Nullable
                                                  java.util.Map<java.lang.String,​java.lang.String> eventParams)
        Track user registration event.

        NOTE: Call the method right after user successfully registered in the app and got an unique identifier.

        Parameters:
        userId - Unique user identifier.
        eventParams - Additional event key-value parameters. Max length for key or value is 255 symbols.
      • trackRegistrationEvent

        @AnyThread
        public static void trackRegistrationEvent​(@NonNull
                                                  java.lang.String userId,
                                                  @Nullable
                                                  java.lang.String vkConnectId)
        Track user registration event.

        NOTE: Call the method right after user successfully registered in the app and got an unique identifier.

        Parameters:
        userId - Unique user identifier.
      • trackInviteEvent

        @AnyThread
        public static void trackInviteEvent​(@Nullable
                                            java.util.Map<java.lang.String,​java.lang.String> eventParams)
        Track user invitation event. Call this method if the current user was invited by other user.
        Parameters:
        eventParams - Additional event key-value parameters. Max length for key or value is 255 symbols.
      • trackInviteEvent

        @AnyThread
        public static void trackInviteEvent()
        Track user invitation event. Call this method if the current user was invited by other user.
      • trackLevelEvent

        @AnyThread
        public static void trackLevelEvent​(@Nullable
                                           java.util.Map<java.lang.String,​java.lang.String> eventParams)
        Track achieving new level. Call this method when user has achieved new level.
        Parameters:
        eventParams - Additional event key-value parameters. Max length for key or value is 255 symbols.
      • trackLevelEvent

        @AnyThread
        public static void trackLevelEvent()
        Track achieving new level. Call this method when user has achieved new level.
      • trackLevelEvent

        @AnyThread
        public static void trackLevelEvent​(int level,
                                           @Nullable
                                           java.util.Map<java.lang.String,​java.lang.String> eventParams)
        Track achieving new level. Call this method when user has achieved new level.
        Parameters:
        level - The level that has been achieved.
        eventParams - Additional event key-value parameters. Max length for key or value is 255 symbols.
      • trackAdEvent

        @AnyThread
        public static void trackAdEvent​(@NonNull
                                        AdEvent adEvent)
        Track advertising event. Call this method when an advertising event has occurred.
        Parameters:
        adEvent - Instance of AdEvent
      • trackMiniAppEvent

        @AnyThread
        public static void trackMiniAppEvent​(@NonNull
                                             MiniAppEvent miniAppEvent)
        Track mini-app event. Call this method when an event in mini-app has occurred.
        Parameters:
        miniAppEvent - Instance of MiniAppEvent
      • trackPurchaseEvent

        @AnyThread
        public static void trackPurchaseEvent​(@NonNull
                                              org.json.JSONObject skuDetails,
                                              @NonNull
                                              org.json.JSONObject purchaseData,
                                              @NonNull
                                              java.lang.String dataSignature,
                                              @Nullable
                                              java.util.Map<java.lang.String,​java.lang.String> eventParams)
        Track purchase event. The method could be used if application contains the logic for processing in-app purchases.
        Parameters:
        skuDetails - The result of getSkuDetails.
        purchaseData - The field INAPP_PURCHASE_DATA of getBuyIntent.
        dataSignature - The field INAPP_DATA_SIGNATURE of getBuyIntent.
        eventParams - Additional event key-value parameters. Max length for key or value is 255 symbols.
      • trackPurchaseEvent

        @AnyThread
        public static void trackPurchaseEvent​(@NonNull
                                              org.json.JSONObject skuDetails,
                                              @NonNull
                                              org.json.JSONObject purchaseData,
                                              @NonNull
                                              java.lang.String dataSignature)
        Track purchase event. The method could be used if application contains the logic for processing in-app purchases.
        Parameters:
        skuDetails - The result of getSkuDetails.
        purchaseData - The field INAPP_PURCHASE_DATA of getBuyIntent.
        dataSignature - The field INAPP_DATA_SIGNATURE of getBuyIntent.
      • trackLaunchManually

        @AnyThread
        public static void trackLaunchManually​(@NonNull
                                               android.app.Activity activity)
        This method could be used in rare cases when tracker isn't able to correctly identify application start.
        Parameters:
        activity - The start activity.
      • onActivityResult

        @AnyThread
        public static void onActivityResult​(int resultCode,
                                            @Nullable
                                            android.content.Intent data)
        The method is used for tracking purchases when autotracking purchases is enabled with MyTrackerConfig.setAutotrackingPurchaseEnabled(boolean). This method should be called in Activity.onActivityResult(int, int, Intent).
        Parameters:
        resultCode - The resultCode from Activity.onActivityResult(int, int, Intent).
        data - The data from Activity.onActivityResult(int, int, Intent).
      • onPurchasesUpdated

        @AnyThread
        public static void onPurchasesUpdated​(int responseCode,
                                              @Nullable
                                              java.util.List<java.lang.Object> purchases)
        The method is used for tracking purchases when autotracking purchases is enabled with MyTrackerConfig.setAutotrackingPurchaseEnabled(boolean). This method should be called in PurchasesUpdatedListener.onPurchasesUpdated(BillingResult, List).
        Parameters:
        responseCode - The value of BillingResult.getResponseCode().
        purchases - List of purchases received on PurchasesUpdatedListener.onPurchasesUpdated(BillingResult, List).
      • handleDeeplink

        @AnyThread
        @Nullable
        public static java.lang.String handleDeeplink​(@Nullable
                                                      android.content.Intent intent)
        The method for processing deeplink to application. You could call the method in Activity.onNewIntent(Intent) or in Activity.startActivity(Intent).
        Parameters:
        intent - The intent with deeplink.
        Returns:
        The deeplink string or null if it hasn't been found.
      • applyPlugin

        @AnyThread
        public static void applyPlugin​(@NonNull
                                       MyTrackerPluginConfig pluginConfig)
        This method could be used to apply additional plugin.

        NOTE: it's mandatory to call this method before initTracker(String, Application) call.

        Parameters:
        pluginConfig - The instance of plugin configuration.
      • getInstanceId

        @WorkerThread
        @NonNull
        public static java.lang.String getInstanceId​(@NonNull
                                                     android.content.Context context)
        Return current instance id of tracker.
        Parameters:
        context - Instance of class Context.
        Returns:
        Tracker's instance id.