Interface IReporter


public interface IReporter

IReporter can send events to an alternative api key, differ from api key, passed to YandexMetrica.activate(android.content.Context, com.yandex.metrica.YandexMetricaConfig)

Instance of object, implements IReporter, can be obtained via YandexMetrica.getReporter(android.content.Context, String) method call.

For every api key only one IReporter instance is created. You can either query it each time you need it, or save the reference by yourself.

See Also:
YandexMetrica.activate(android.content.Context, com.yandex.metrica.YandexMetricaConfig), YandexMetrica.getReporter(android.content.Context, String)
  • Method Summary

    Modifier and Type Method Description
    IPluginReporter getPluginExtension()
    Creates an IPluginReporter that can send plugin events to this reporter.
    void pauseSession()
    Helper method for sessions tracking.
    void reportAdRevenue​(AdRevenue adRevenue)
    Sends information about ad revenue.
    void reportECommerce​(ECommerceEvent event)
    Sends e-commerce event.
    void reportError​(java.lang.String identifier, java.lang.String message)
    Sends an error.
    void reportError​(java.lang.String identifier, java.lang.String message, java.lang.Throwable error)
    Sends an error.
    void reportError​(java.lang.String message, java.lang.Throwable error)
    Sends an error.
    void reportEvent​(java.lang.String eventName)
    Sends report by event name.
    void reportEvent​(java.lang.String eventName, java.lang.String jsonValue)
    Sends report by event name and event value.
    void reportEvent​(java.lang.String eventName, java.util.Map<java.lang.String,​java.lang.Object> attributes)
    Sends report by dictionary.
    void reportRevenue​(Revenue revenue)
    Sends information about the purchase.
    void reportUnhandledException​(java.lang.Throwable exception)
    Sends unhandled exception by Throwable object.
    void reportUserProfile​(UserProfile profile)
    Sends information about the user profile.
    void resumeSession()
    Helper method for sessions tracking.
    void sendEventsBuffer()
    Initiates forced sending of all stored events from the buffer.
    void setStatisticsSending​(boolean enabled)
    Enables/disables statistics sending to the AppMetrica server.
    void setUserProfileID​(java.lang.String profileID)
    Sets the ID of the user profile.
  • Method Details

    • sendEventsBuffer

      void sendEventsBuffer()
      Initiates forced sending of all stored events from the buffer.

      AppMetrica SDK doesn't send events immediately after they occurred. It stores events data in the buffer. This method forcibly initiates sending all the data from the buffer and flushes it.

      Use the method after important checkpoints of user scenarios.

      WARNING: Frequent use of the method can lead to increasing outgoing internet traffic and energy consumption.

    • reportEvent

      void reportEvent​(@NonNull java.lang.String eventName)
      Sends report by event name.
      Parameters:
      eventName - Event name. In the eventName parameter, pass a short name or description of the event.
      Throws:
      java.lang.IllegalArgumentException - If eventName is null.
      See Also:
      reportEvent(String)
    • reportEvent

      void reportEvent​(@NonNull java.lang.String eventName, @Nullable java.lang.String jsonValue)
      Sends report by event name and event value.
      Parameters:
      eventName - Event name. In the eventName parameter, pass a short name or description of the event.
      jsonValue - Event value. In the eventValue parameter, pass a JSONObject represented as a String object or pass a String object represented in the Java JSON format. Maximum level of nesting (for JSON object) - 5.

      EXAMPLE:

                        
                         {
                             "firstName": "John",
                             "lastName": "Smith",
                             "age": 25,
                             "nickname": "JS"
                             "address": {
                                 "streetAddress": "21 2nd Street",
                                 "city": "New York",
                                 "state": "NY",
                             },
                             "phoneNumbers": [
                                 {
                                     "type": "HOME",
                                     "number": "212 555-1234"
                                 },
                                 {
                                     "type": "FAX",
                                     "number": "646 555-4567"
                                 }
                             ]
                          }
                        
                        
      Throws:
      java.lang.IllegalArgumentException - If eventName or jsonValue is null.
      See Also:
      reportEvent(String, String), JSONObject.toString()
    • reportEvent

      void reportEvent​(@NonNull java.lang.String eventName, @Nullable java.util.Map<java.lang.String,​java.lang.Object> attributes)
      Sends report by dictionary.
      Parameters:
      eventName - Event name. In the eventName parameter, pass a short name or description of the event.
      attributes - Event value. In the attributes parameter, pass a Map whose keys are of type String and whose values are of supported types: Boolean, String, and the wrappers for the primitive number types Double, Integer, ...
      Throws:
      java.lang.IllegalArgumentException - If eventName or attributes is null.
      See Also:
      reportEvent(String, java.util.Map)
    • reportError

      void reportError​(@NonNull java.lang.String message, @Nullable java.lang.Throwable error)
      Sends an error. Use this method to report un unexpected situation. If you use this method errors will be grouped by error stacktrace. If you want to influence the way errors are grouped use reportError(String, String, Throwable) or reportError(String, String)
      Parameters:
      message - Short description or name of the error.
      error - Throwable object for the error. Can be null.
      Throws:
      java.lang.IllegalArgumentException - If message is null.
      See Also:
      reportUnhandledException(Throwable)
    • reportError

      void reportError​(@NonNull java.lang.String identifier, @Nullable java.lang.String message)
      Sends an error. Use this method to report un unexpected situation. This method should be used if you want to customize error grouping. If not use reportError(String, Throwable)
      Parameters:
      identifier - An identifier used for grouping errors. Errors that have the same identifiers will belong in one group. Do not use dynamically formed strings or exception messages as identifiers to avoid having too many small crash groups. Cannot be null.
      message - Short description or name of the error. Can be null.
      Throws:
      java.lang.IllegalArgumentException - If identifier is null.
    • reportError

      void reportError​(@NonNull java.lang.String identifier, @Nullable java.lang.String message, @Nullable java.lang.Throwable error)
      Sends an error. Use this method to report un unexpected situation. This method should be used if you want to customize error grouping. If not use reportError(String, Throwable) error stacktrace will NOT be used for grouping, only identifier.
      Parameters:
      identifier - An identifier used for grouping errors. Errors that have the same identifiers will belong in one group. Do not use dynamically formed strings or exception messages as identifiers to avoid having too many small crash groups. Cannot be null.
      message - Short description or name of the error. Can be null.
      error - Throwable object for the error. Its stacktrace will not be considered for error grouping. Can be null.
      Throws:
      java.lang.IllegalArgumentException - If identifier is null.
    • reportUnhandledException

      void reportUnhandledException​(@NonNull java.lang.Throwable exception)
      Sends unhandled exception by Throwable object.
      Parameters:
      exception - Throwable object for the unhandled exception.
      Throws:
      java.lang.IllegalArgumentException - If exception is null.
      See Also:
      reportUnhandledException(Throwable)
    • resumeSession

      void resumeSession()

      Helper method for sessions tracking.

      Usually, it should be called into Activity.onResume().
      See Also:
      Activity.onResume(), pauseSession()
    • pauseSession

      void pauseSession()

      Helper method for sessions tracking.

      Usually, it should be called into Activity.onPause().
      See Also:
      Activity.onPause(), resumeSession()
    • setUserProfileID

      void setUserProfileID​(@Nullable java.lang.String profileID)
      Sets the ID of the user profile. NOTE: The string value can contain up to 200 characters.
      Parameters:
      profileID - The custom user profile ID.
    • reportUserProfile

      void reportUserProfile​(@NonNull UserProfile profile)
      Sends information about the user profile.
      Parameters:
      profile - The UserProfile object. Contains user profile information.
    • reportRevenue

      void reportRevenue​(@NonNull Revenue revenue)
      Sends information about the purchase.
      Parameters:
      revenue - The Revenue object. It contains purchase information.
    • reportECommerce

      void reportECommerce​(@NonNull ECommerceEvent event)
      Sends e-commerce event.
      Parameters:
      event - The ECommerceEvent object to be sent.
      See Also:
      ECommerceEvent
    • setStatisticsSending

      void setStatisticsSending​(boolean enabled)
      Enables/disables statistics sending to the AppMetrica server. By default, the sending is enabled.

      NOTE: Disabling this option doesn't affect data sending from the main apiKey and other reporters.

      Parameters:
      enabled - true to allow AppMetrica sending statistics, otherwise false.
    • getPluginExtension

      @NonNull IPluginReporter getPluginExtension()

      Creates an IPluginReporter that can send plugin events to this reporter.

      For every reporter only one IPluginReporter instance is created. You can either query it each time you need it, or save the reference by yourself.
      Returns:
      plugin extension instance for this reporter
    • reportAdRevenue

      void reportAdRevenue​(@NonNull AdRevenue adRevenue)
      Sends information about ad revenue.
      Parameters:
      adRevenue - Object containing the information about ad revenue.
      See Also:
      AdRevenue