Repro - Mobile Analytics for growth
日本語
Sign Up Back to Dashboard
  • System Requirements
  • Dashboard Guide
  • Development Guide
    • Signup
    • iOS/Android SDK
      • Get Started
      • Session Lifecycle
      • User ID
      • Device ID
      • User Profile
      • Event Tracking
        • Standard Event
          • View Content
          • Search
          • Add to Cart
          • Add to wishlist
          • Initiate Checkout
          • Add Payment Info
          • Purchase
          • Share
          • Lead
          • Complete Registration
          • Adding custom properties
        • Custom Event
      • Push Notification
      • NewsFeed
      • In-App Message
      • Silver Egg Recommendation Messages
      • Remote Config
      • WebView
      • Opt-out feature
      • Settings regarding the collection of advertiser IDs
      • Registering an user device into a specific audience with the help of a QR code
      • Set attribution data from Adjust to Repro
      • Set attribution data from AppsFlyer to Repro
      • Log Level
      • Verification Method
    • Web
    • Audience API
    • Audience Import(β)
    • Push API
    • User Profile API
    • User Profile Bulk Import
    • NewsFeed API
    • Deletion Targeted User Registration API
    • Booster installation guide
    • Mail(β)
  • Release Notes
  • FAQ

Event Tracking¶

Track user actions in your app. User actions can be something like the following:

  • View Page

  • Add to Cart

  • Purchase Content

  • Share Content to Social Network

Tracked events are used as the raw data for the analytics, while also making it possible to segment target users when creating campaigns.

You can attach properties as associated information to each event. And up to 20 properties can be attached for one event.

Warning

  • The maximum number of active events depends on the customer's Repro contract plan.The maximum number of free plans is 50 by default, and in the case of paid plans it is 200 by default.

  • Please note that if you automatically generate dynamic strings and pass it to track, the number of events can easily go up to 200. You can check the number of events currently being used from Settings > Event Settings.

  • To configure user profiles in HTML in-app messages, you must use iOS SDK 5.19.0 or higher and Android SDK 5.18.0 or higher.

Note

  • null and empty strings are not allowed for property names. Maximum name length is 48 characters.

  • You can set String or Number to property's value.

  • Maximum length is 191 characters for property's value when its type is String.

  • NaN(Not a Number) and Infinity are not allowed for property's value when its type is Number.

Standard Event¶

Repro defines typical events for user behavior analysis as Standard Event. Call the appropriate API when tracking Standard Events. Use Custom Event when you want to track original events in your application.

Warning

  • When triggering the delivery of in-app messages with tracked events, the implementation must reflect the app's screen rendering cycle. Check In-App Message and adjust the timing of execution.

  • Even if it is not available as a delivery triggering for in-app messages, the event can still be tracked and measured.

The following is the list of standard events. Different properties can be specified depending on each event. See the description of each API for more details.

Name

Description

Type

content_id

ID that specifies the product or the page

string
content_name

Name of product or page

string
content_category

Category of product or page

string
value

Price of product

double
currency

Currency unit of value

string
num_items

Number of purchases of the same item

integer
search_string

Search text submitted by the user

string
status

Registration status

string

Note

  • Non-required properties are optional

  • Check Adding custom properties when adding custom properties.

View Content¶

Tracks viewing a content.

Usage

  • When a user views a product detail page

Properties

  • content_id (Required, Must be specified as the first argument of the method)

  • content_name
  • content_category
  • value
  • currency
RPRViewContentProperties *properties = [[RPRViewContentProperties alloc] init];

properties.value = 5000.0;
properties.currency = @"JPY";
properties.contentName = @"Slim Jeans";
properties.contentCategory = @"Clothing & Shoes > Mens > Clothing";

[Repro trackViewContent:@"1234" properties:properties];
import Repro.RPREventProperties

...

let properties = RPRViewContentProperties()

properties.value = 5000.0
properties.currency = "JPY"
properties.contentName = "Slim Jeans"
properties.contentCategory = "Clothing & Shoes > Mens > Clothing"

Repro.trackViewContentEvent(contentID: "1234", properties: properties)
import io.repro.android.tracking.ViewContentProperties;

...

ViewContentProperties properties = new ViewContentProperties();

properties.setValue(5000.0);
properties.setCurrency("JPY");
properties.setContentName("Slim Jeans");
properties.setContentCategory("Clothing & Shoes > Mens > Clothing");

Repro.trackViewContent("1234", properties);
import io.repro.android.tracking.ViewContentProperties

...

val properties = ViewContentProperties()

properties.value = 5000.0
properties.currency = "USD"
properties.contentName = "JPY"
properties.contentCategory = "Clothing & Shoes > Mens > Clothing"

Repro.trackViewContent("1234", properties)
#include "ReproCpp.h"

...

repro::ViewContentProperties properties;

properties.setContentName("Slim Jeans");
properties.setContentCategory("Clothing & Shoes > Mens > Clothing");
properties.setValue(5000.0);
properties.setCurrency("JPY");

ReproCpp::trackViewContent("1234", &properties);
ViewContentProperties properties = new ViewContentProperties();

properties.SetContentName ("Slim Jeans");
properties.SetContentCategory ("Clothing & Shoes > Mens > Clothing");
properties.SetValue (5000.0);
properties.SetCurrency ("JPY");

Repro.TrackViewContent ("1234", properties);
Repro.trackViewContent("1234", {
  value: 5000.0,
  currency: "JPY",
  content_name: "Slim Jeans",
  content_category: "Clothing & Shoes > Mens > Clothing"
});
Repro.trackViewContent("1234", {
  value: 5000.0,
  currency: "JPY",
  content_name: "Slim Jeans",
  content_category: "Clothing & Shoes > Mens > Clothing"
});
repro.trackViewContent("1234", {
  value: 5000.0,
  currency: "JPY",
  content_name: "Slim Jeans",
  content_category: "Clothing & Shoes > Mens > Clothing"
});
Repro.trackViewContent("1234", {
  value: 5000.0,
  currency: "JPY",
  content_name: "Slim Jeans",
  content_category: "Clothing & Shoes > Mens > Clothing"
});
await Repro.trackViewContent("1234", {
  "value": 5000.0,
  "currency": "JPY",
  "content_name": "Slim Jeans",
  "content_category": "Clothing & Shoes > Mens > Clothing"
});

Search¶

Tracks searching for something.

Usage

  • When a user taps "Search" button

Properties

  • content_id
  • content_category
  • value
  • currency
  • search_string
RPRSearchProperties *properties = [[RPRSearchProperties alloc] init];

properties.value = 3000.0;
properties.currency = @"JPY";
properties.contentCategory = @"Clothing & Shoes > Mens > Clothing";
properties.searchString = @"Jeans";
properties.contentID = @"1234";

[Repro trackSearch:properties];
import Repro.RPREventProperties

...

let properties = RPRSearchProperties()

properties.value = 3000.0
properties.currency = "JPY"
properties.contentCategory = "Clothing & Shoes > Mens > Clothing"
properties.searchString = "Jeans"
properties.contentID = "1234"

Repro.trackSearchEvent(properties: properties)
import io.repro.android.tracking.SearchProperties;

...

SearchProperties properties = new SearchProperties();

properties.setValue(3000.0);
properties.setCurrency("JPY");
properties.setContentCategory("Clothing & Shoes > Mens > Clothing");
properties.setSearchString("Jeans");
properties.setContentId("1234");

Repro.trackSearch(properties);
import io.repro.android.tracking.SearchProperties

...

val properties = SearchProperties()

properties.value = 3000.0;
properties.currency = "JPY"
properties.contentCategory = "Clothing & Shoes > Mens > Clothing"
properties.searchString = "Jeans"
properties.contentId = "1234"

Repro.trackSearch(properties)
#include "ReproCpp.h"

...

repro::SearchProperties properties;

properties.setContentId("1234");
properties.setContentCategory("Clothing & Shoes > Mens > Clothing");
properties.setValue(5000.0);
properties.setCurrency("JPY");
properties.setSearchString("Jeans");

ReproCpp::trackSearch(&properties);
SearchProperties properties = new SearchProperties();

properties.SetContentID ("1234");
properties.SetContentCategory ("Clothing & Shoes > Mens > Clothing");
properties.SetValue (5000.0);
properties.SetCurrency ("JPY");
properties.SetSearchString ("Jeans");

Repro.TrackSearch (properties);
Repro.trackSearch({
  value: 3000.0,
  currency: "JPY",
  content_category: "Clothing & Shoes > Mens > Clothing",
  search_string: "Jeans",
  content_id: "1234"
});
Repro.trackSearch({
  value: 3000.0,
  currency: "JPY",
  content_category: "Clothing & Shoes > Mens > Clothing",
  search_string: "Jeans",
  content_id: "1234"
});
repro.trackSearch({
  value: 3000.0,
  currency: "JPY",
  content_category: "Clothing & Shoes > Mens > Clothing",
  search_string: "Jeans",
  content_id: "1234"
});
Repro.trackSearch({
  value: 3000.0,
  currency: "JPY",
  content_category: "Clothing & Shoes > Mens > Clothing",
  search_string: "Jeans",
  content_id: "1234"
});
await Repro.trackSearch({
  "value": 3000.0,
  "currency": "JPY",
  "content_category": "Clothing & Shoes > Mens > Clothing",
  "search_string": "Jeans",
  "content_id": "1234"
});

Add to Cart¶

Tracks adding an item to the cart.

Usage

  • When a user taps "Add to Cart" button

Properties

  • content_id (Required, Must be specified as the first argument of the method)

  • content_name
  • content_category
  • value
  • currency
RPRAddToCartProperties *properties = [[RPRAddToCartProperties alloc] init];

properties.value = 5000.0;
properties.currency = @"JPY";
properties.contentName = @"Slim Jeans";
properties.contentCategory = @"Clothing & Shoes > Mens > Clothing";

[Repro trackAddToCart:@"1234" properties:properties];
import Repro.RPREventProperties

...

let properties = RPRAddToCartProperties()

properties.value = 5000.0
properties.currency = "JPY"
properties.contentName = "Slim Jeans"
properties.contentCategory = "Clothing & Shoes > Mens > Clothing"

Repro.trackAddToCartEvent(contentID: "1234", properties: properties)
import io.repro.android.tracking.AddToCartProperties;

...

AddToCartProperties properties = new AddToCartProperties();

properties.setValue(5000.0);
properties.setCurrency("JPY");
properties.setContentName("Slim Jeans");
properties.setContentCategory("Clothing & Shoes > Mens > Clothing");

Repro.trackAddToCart("1234", properties);
import io.repro.android.tracking.AddToCartProperties

...

val properties = AddToCartProperties()

properties.value = 5000.0
properties.currency = "JPY"
properties.contentName = "Slim Jeans"
properties.contentCategory = "Clothing & Shoes > Mens > Clothing"

Repro.trackAddToCart("1234", properties)
#include "ReproCpp.h"

...

repro::AddToCartProperties properties;

properties.setContentName("Slim Jeans");
properties.setContentCategory("Clothing & Shoes > Mens > Clothing");
properties.setValue(5000.0);
properties.setCurrency("JPY");

ReproCpp::trackAddToCart("1234", &properties);
AddToCartProperties properties = new AddToCartProperties();

properties.SetContentName("Slim Jeans");
properties.SetContentCategory("Clothing & Shoes > Mens > Clothing");
properties.SetValue(5000.0);
properties.SetCurrency("JPY");

Repro.TrackAddToCart ("1234", properties);
Repro.trackAddToCart("1234", {
  value: 5000.0,
  currency: "JPY",
  content_name: "Slim Jeans",
  content_category: "Clothing & Shoes > Mens > Clothing"
});
Repro.trackAddToCart("1234", {
  value: 5000.0,
  currency: "JPY",
  content_name: "Slim Jeans",
  content_category: "Clothing & Shoes > Mens > Clothing"
});
repro.trackAddToCart("1234", {
  value: 5000.0,
  currency: "JPY",
  content_name: "Slim Jeans",
  content_category: "Clothing & Shoes > Mens > Clothing"
});
Repro.trackAddToCart("1234", {
  value: 5000.0,
  currency: "JPY",
  content_name: "Slim Jeans",
  content_category: "Clothing & Shoes > Mens > Clothing"
});
await Repro.trackAddToCart("1234", {
  "value": 5000.0,
  "currency": "JPY",
  "content_name": "Slim Jeans",
  "content_category": "Clothing & Shoes > Mens > Clothing"
});

Add to wishlist¶

Tracks adding an item to wishlist

Usage

  • When a user taps "Add to Wishlist" button

Properties

  • content_id
  • content_name
  • content_category
  • value
  • currency
RPRAddToWishlistProperties *properties = [[RPRAddToWishlistProperties alloc] init];

properties.value = 5000.0;
properties.currency = @"JPY";
properties.contentName = @"Slim Jeans";
properties.contentCategory = @"Clothing & Shoes > Mens > Clothing";
properties.contentID = @"1234";

[Repro trackAddToWishlist:properties];
import Repro.RPREventProperties

...

let properties = RPRAddToWishlistProperties()

properties.value = 5000.0
properties.currency = "JPY"
properties.contentName = "Slim Jeans"
properties.contentCategory = "Clothing & Shoes > Mens > Clothing"
properties.contentID = "1234"

Repro.trackAddToWishlistEvent(properties: properties)
import io.repro.android.tracking.AddToWishlistProperties;

...

AddToWishlistProperties properties = new AddToWishlistProperties();

properties.setValue(5000.0);
properties.setCurrency("JPY");
properties.setContentName("Slim Jeans");
properties.setContentCategory("Clothing & Shoes > Mens > Clothing");
properties.setContentId("1234");

Repro.trackAddToWishlist(properties);
import io.repro.android.tracking.AddToWishlistProperties

...

val properties = AddToWishlistProperties()

properties.value = 5000.0
properties.currency = "JPY"
properties.contentName = "Slim Jeans"
properties.contentCategory = "Clothing & Shoes > Mens > Clothing"
properties.contentId = "1234"

Repro.trackAddToWishlist(properties)
#include "ReproCpp.h"

...

repro::AddToWishlistProperties properties;

properties.setContentId("1234");
properties.setContentName("Slim Jeans");
properties.setContentCategory("Clothing & Shoes > Mens > Clothing");
properties.setValue(5000.0);
properties.setCurrency("JPY");

ReproCpp::trackAddToWishlist(&properties);
AddToWishlistProperties properties = new AddToWishlistProperties();

properties.SetContentID("1234");
properties.SetContentName("Slim Jeans");
properties.SetContentCategory("Clothing & Shoes > Mens > Clothing");
properties.SetValue(5000.0);
properties.SetCurrency("JPY");

Repro.TrackAddToWishlist (properties);
Repro.trackAddToWishlist({
  value: 5000.0,
  currency: "JPY",
  content_name: "Slim Jeans",
  content_category: "Clothing & Shoes > Mens > Clothing",
  content_id: "1234"
});
Repro.trackAddToWishlist({
  value: 5000.0,
  currency: "JPY",
  content_name: "Slim Jeans",
  content_category: "Clothing & Shoes > Mens > Clothing",
  content_id: "1234"
});
repro.trackAddToWishlist({
  value: 5000.0,
  currency: "JPY",
  content_name: "Slim Jeans",
  content_category: "Clothing & Shoes > Mens > Clothing",
  content_id: "1234"
});
Repro.trackAddToWishlist({
  value: 5000.0,
  currency: "JPY",
  content_name: "Slim Jeans",
  content_category: "Clothing & Shoes > Mens > Clothing",
  content_id: "1234"
});
await Repro.trackAddToWishlist({
  "value": 5000.0,
  "currency": "JPY",
  "content_name": "Slim Jeans",
  "content_category": "Clothing & Shoes > Mens > Clothing",
  "content_id": "1234"
});

Initiate Checkout¶

Tracks checkout process has started.

Usage

  • When a user taps "Checkout" button.

Properties

  • content_id
  • content_name
  • content_category
  • value
  • currency
  • num_items
RPRInitiateCheckoutProperties *properties = [[RPRInitiateCheckoutProperties alloc] init];

properties.value = 8000.0;
properties.currency = @"JPY";
properties.contentName = @"Slim Jeans";
properties.contentCategory = @"Clothing & Shoes > Mens > Clothing";
properties.contentID = @"1234";
properties.numItems = 2;

[Repro trackInitiateCheckout:properties];
import Repro.RPREventProperties

...

let properties = RPRInitiateCheckoutProperties()

properties.value = 8000.0
properties.currency = "JPY"
properties.contentName = "Slim Jeans"
properties.contentCategory = "Clothing & Shoes > Mens > Clothing"
properties.contentID = "1234"
properties.numItems = 2

Repro.trackInitiateCheckoutEvent(properties: properties)
import io.repro.android.tracking.InitiateCheckoutProperties;

...

InitiateCheckoutProperties properties = new InitiateCheckoutProperties();

properties.setValue(8000.0);
properties.setCurrency("JPY");
properties.setContentName("Slim Jeans");
properties.setContentCategory("Clothing & Shoes > Mens > Clothing");
properties.setContentId("1234");
properties.setNumItems(2);

Repro.trackInitiateCheckout(properties);
import io.repro.android.tracking.InitiateCheckoutProperties

...

val properties = InitiateCheckoutProperties()

properties.value = 8000.0
properties.currency = "JPY"
properties.contentName = "Slim Jeans"
properties.contentCategory = "Clothing & Shoes > Mens > Clothing"
properties.contentId = "1234"
properties.numItems = 2

Repro.trackInitiateCheckout(properties)
#include "ReproCpp.h"

...

repro::InitiateCheckoutProperties properties;

properties.setContentId("1234");
properties.setContentName("Slim Jeans");
properties.setContentCategory("Clothing & Shoes > Mens > Clothing");
properties.setValue(5000.0);
properties.setCurrency("JPY");
properties.setNumItems(10);

ReproCpp::trackInitiateCheckout(&properties);
InitiateCheckoutProperties properties = new InitiateCheckoutProperties();

properties.SetContentID("1234");
properties.SetContentName("Slim Jeans");
properties.SetContentCategory("Clothing & Shoes > Mens > Clothing");
properties.SetValue(5000.0);
properties.SetCurrency("JPY");
properties.SetNumItems(10);

Repro.TrackInitiateCheckout (properties);
Repro.trackInitiateCheckout({
  value: 8000.0,
  currency: "JPY",
  content_name: "Slim Jeans",
  content_category: "Clothing & Shoes > Mens > Clothing",
  content_id: "1234"
});
Repro.trackInitiateCheckout({
  value: 8000.0,
  currency: "JPY",
  content_name: "Slim Jeans",
  content_category: "Clothing & Shoes > Mens > Clothing",
  content_id: "1234"
});
repro.trackInitiateCheckout({
  value: 8000.0,
  currency: "JPY",
  content_name: "Slim Jeans",
  content_category: "Clothing & Shoes > Mens > Clothing",
  content_id: "1234"
});
Repro.trackInitiateCheckout({
  value: 8000.0,
  currency: "JPY",
  content_name: "Slim Jeans",
  content_category: "Clothing & Shoes > Mens > Clothing",
  content_id: "1234"
});
await Repro.trackInitiateCheckout({
  "value": 8000.0,
  "currency": "JPY",
  "content_name": "Slim Jeans",
  "content_category": "Clothing & Shoes > Mens > Clothing",
  "content_id": "1234"
});

Add Payment Info¶

Tracks adding payment information.

Usage

  • When a user taps "Add payment info" button.

Properties

  • content_id
  • content_category
  • value
  • currency
RPRAddPaymentInfoProperties *properties = [[RPRAddPaymentInfoProperties alloc] init];

properties.value = 8000.0;
properties.currency = @"JPY";
properties.contentCategory = @"Clothing & Shoes > Mens > Clothing";
properties.contentID = @"1234";

[Repro trackAddPaymentInfo:properties];
import Repro.RPREventProperties

...

let properties = RPRAddPaymentInfoProperties()

properties.value = 8000.0
properties.currency = "JPY"
properties.contentCategory = "Clothing & Shoes > Mens > Clothing"
properties.contentID = "1234"

Repro.trackAddPaymentInfoEvent(properties: properties)
import io.repro.android.tracking.AddPaymentInfoProperties;

...

AddPaymentInfoProperties properties = new AddPaymentInfoProperties();

properties.setValue(8000.0);
properties.setCurrency("JPY");
properties.setContentCategory("Clothing & Shoes > Mens > Clothing");
properties.setContentId("1234");

Repro.trackAddPaymentInfo(properties);
import io.repro.android.tracking.AddPaymentInfoProperties

...

val properties = AddPaymentInfoProperties()

properties.value = 8000.0
properties.currency = "JPY"
properties.contentCategory = "Clothing & Shoes > Mens > Clothing"
properties.contentId = "1234"

Repro.trackAddPaymentInfo(properties)
#include "ReproCpp.h"

...

repro::AddPaymentInfoProperties properties;

properties.setContentId("1234");
properties.setContentCategory("Clothing & Shoes > Mens > Clothing");
properties.setValue(5000.0);
properties.setCurrency("JPY");

ReproCpp::trackAddPaymentInfo(&properties);
AddPaymentInfoProperties properties = new AddPaymentInfoProperties();

properties.SetContentID("1234");
properties.SetContentCategory("Clothing & Shoes > Mens > Clothing");
properties.SetValue(5000.0);
properties.SetCurrency("JPY");

Repro.TrackAddPaymentInfo (properties);
Repro.trackAddPaymentInfo({
  value: 8000.0,
  currency: "JPY",
  content_category: "Clothing & Shoes > Mens > Clothing",
  content_id: "1234"
});
Repro.trackAddPaymentInfo({
  value: 8000.0,
  currency: "JPY",
  content_category: "Clothing & Shoes > Mens > Clothing",
  content_id: "1234"
});
repro.trackAddPaymentInfo({
  value: 8000.0,
  currency: "JPY",
  content_category: "Clothing & Shoes > Mens > Clothing",
  content_id: "1234"
});
Repro.trackAddPaymentInfo({
  value: 8000.0,
  currency: "JPY",
  content_category: "Clothing & Shoes > Mens > Clothing",
  content_id: "1234"
});
await Repro.trackAddPaymentInfo({
  "value": 8000.0,
  "currency": "JPY",
  "content_category": "Clothing & Shoes > Mens > Clothing",
  "content_id": "1234"
});

Purchase¶

Track finalizing a purchase.

Usage

  • When a user taps "Complete Purchase" button.

Properties

  • content_id (Required, Must be specified as the first argument of the method)

  • value (Required, Must be specified as the second argument of the method)

  • currency (Required, Must be specified as the third argument of the method)

  • content_name
  • content_category
  • num_items
RPRPurchaseProperties *properties = [[RPRPurchaseProperties alloc] init];

properties.contentName = @"Slim Jeans";
properties.contentCategory = @"Clothing & Shoes > Mens > Clothing";
properties.numItems = 2;

[Repro trackPurchase:@"1234" value:8000.0 currency:@"JPY" properties:properties];
import Repro.RPREventProperties

...

let properties = RPRPurchaseProperties()

properties.contentName = "Slim Jeans"
properties.contentCategory = "Clothing & Shoes > Mens > Clothing"
properties.numItems = 2;

Repro.trackPurchaseEvent(contentID: "1234", value: 8000.0, currency: "JPY", properties: properties)
import io.repro.android.tracking.PurchaseProperties;

...

PurchaseProperties properties = new PurchaseProperties();

properties.setContentName("Slim Jeans");
properties.setContentCategory("Clothing & Shoes > Mens > Clothing");
properties.setNumItems(2);

Repro.trackPurchase("1234", 8000.0, "JPY", properties);
import io.repro.android.tracking.PurchaseProperties

...

val properties = PurchaseProperties()

properties.contentName = "Slim Jeans"
properties.contentCategory = "Clothing & Shoes > Mens > Clothing"
properties.numItems = 2

Repro.trackPurchase("1234", 8000.0, "JPY", properties)
#include "ReproCpp.h"

...

repro::PurchaseProperties properties;

properties.setContentName("Slim Jeans");
properties.setContentCategory("Clothing & Shoes > Mens > Clothing");
properties.setNumItems(2);

ReproCpp::trackPurchase("1234", 5000.0, "JPY", &properties);
PurchaseProperties properties = new PurchaseProperties();

properties.SetContentName ("Slim Jeans");
properties.SetContentCategory ("Clothing & Shoes > Mens > Clothing");
properties.SetNumItems (2);

Repro.TrackPurchase ("1234", 100.0, "JPY", properties);
Repro.trackPurchase("1234", 8000.0, "JPY", {
  content_name: "Slim Jeans",
  content_category: "Clothing & Shoes > Mens > Clothing",
  num_items: 2
});
Repro.trackPurchase("1234", 8000.0, "JPY", {
  content_name: "Slim Jeans",
  content_category: "Clothing & Shoes > Mens > Clothing",
  num_items: 2
});
repro.trackPurchase("1234", 8000.0, "JPY", {
  content_name: "Slim Jeans",
  content_category: "Clothing & Shoes > Mens > Clothing",
  num_items: 2
});
Repro.trackPurchase("1234", 8000.0, "JPY", {
  content_name: "Slim Jeans",
  content_category: "Clothing & Shoes > Mens > Clothing",
  num_items: 2
});
await Repro.trackPurchase("1234", 8000.0, "JPY", {
  "content_name": "Slim Jeans",
  "content_category": "Clothing & Shoes > Mens > Clothing",
  "num_items": 2
});

Share¶

Tracks sharing content to Social media (e.g. Facebook, Twitter).

Usage

  • When a user taps "Share" button.

Properties

  • content_id
  • content_name
  • content_category
  • serviceName
RPRShareProperties *properties = [[RPRShareProperties alloc] init];

properties.contentCategory = @"Clothing & Shoes > Mens > Clothing";
properties.contentName = @"Slim Jeans";
properties.contentID = @"1234";
properties.serviceName = @"twitter";

[Repro trackShare:properties];
import Repro.RPREventProperties

...

let properties = RPRShareProperties()

properties.contentCategory = "Clothing & Shoes > Mens > Clothing"
properties.contentName = "Slim Jeans"
properties.contentID = "1234"
properties.serviceName = "twitter"

Repro.trackShareEvent(properties: properties)
import io.repro.android.tracking.ShareProperties;

...

ShareProperties properties = new ShareProperties();

properties.setContentCategory("Clothing & Shoes > Mens > Clothing");
properties.setContentName("Slim Jeans");
properties.setContentId("1234");
properties.setServiceName("twitter");

Repro.trackShare(properties);
import io.repro.android.tracking.ShareProperties

...

val properties = ShareProperties()

properties.contentCategory = "Clothing & Shoes > Mens > Clothing"
properties.contentName = "Slim Jeans"
properties.contentId = "1234"
properties.serviceName = "twitter"

Repro.trackShare(properties)
#include "ReproCpp.h"

...

repro::ShareProperties properties;

properties.setContentId("1234");
properties.setContentName("Slim Jeans");
properties.setContentCategory("Clothing & Shoes > Mens > Clothing");
properties.setServiceName("twitter");

ReproCpp::trackShare(&properties);
ShareProperties properties = new ShareProperties();

properties.SetContentID ("1234");
properties.SetContentName ("Slim Jeans");
properties.SetContentCategory ("Clothing & Shoes > Mens > Clothing");
properties.SetServiceName ("twitter");

Repro.TrackShare (properties);
Repro.trackShare({
  content_category: "Clothing & Shoes > Mens > Clothing",
  content_name: "Slim Jeans",
  content_id: "1234",
  service_name: "twitter"
});
Repro.trackShare({
  content_category: "Clothing & Shoes > Mens > Clothing",
  content_name: "Slim Jeans",
  content_id: "1234",
  service_name: "twitter"
});
repro.trackShare({
  content_category: "Clothing & Shoes > Mens > Clothing",
  content_name: "Slim Jeans",
  content_id: "1234",
  service_name: "twitter"
});
Repro.trackShare({
  content_category: "Clothing & Shoes > Mens > Clothing",
  content_name: "Slim Jeans",
  content_id: "1234",
  service_name: "twitter"
});
await Repro.trackShare({
  "content_category": "Clothing & Shoes > Mens > Clothing",
  "content_name": "Slim Jeans",
  "content_id": "1234",
  "service_name": "twitter"
});

Lead¶

Tracks trial use of the app. Use this method if your app doesn't require user registration upon installation.

Usage

  • When a user taps "Try it" button

Properties

  • content_name
  • content_category
  • value
  • currency
RPRLeadProperties *properties = [[RPRLeadProperties alloc] init];

properties.value = 8000.0;
properties.currency = @"JPY";
properties.contentName = @"Slim Jeans";
properties.contentCategory = @"Clothing & Shoes > Mens > Clothing";

[Repro trackLead:properties];
import Repro.RPREventProperties

...

let properties = RPRLeadProperties()

properties.value = 8000.0
properties.currency = "JPY"
properties.contentName = "Slim Jeans"
properties.contentCategory = "Clothing & Shoes > Mens > Clothing"

Repro.trackLeadEvent(properties: properties)
import io.repro.android.tracking.LeadProperties;

...

LeadProperties properties = new LeadProperties();

properties.setValue(8000.0);
properties.setCurrency("JPY");
properties.setContentName("Slim Jeans");
properties.setContentCategory("Clothing & Shoes > Mens > Clothing");

Repro.trackLead(properties);
import io.repro.android.tracking.LeadProperties

...

val properties = LeadProperties()

properties.value = 8000.0
properties.currency = "JPY"
properties.contentName = "Slim Jeans"
properties.contentCategory = "Clothing & Shoes > Mens > Clothing"

Repro.trackLead(properties)
#include "ReproCpp.h"

...

repro::LeadProperties properties;

properties.setContentName("Slim Jeans");
properties.setContentCategory("Clothing & Shoes > Mens > Clothing");
properties.setValue(5000.0);
properties.setCurrency("JPY");

ReproCpp::trackLead(&properties);
LeadProperties properties = new LeadProperties();

properties.SetContentName ("Slim Jeans");
properties.SetContentCategory ("Clothing & Shoes > Mens > Clothing");
properties.SetValue (5000.0);
properties.SetCurrency ("JPY");

Repro.TrackLead (properties);
Repro.trackLead({
  value: 8000.0,
  currency: "JPY",
  content_name: "Slim Jeans",
  content_category: "Clothing & Shoes > Mens > Clothing"
});
Repro.trackLead({
  value: 8000.0,
  currency: "JPY",
  content_name: "Slim Jeans",
  content_category: "Clothing & Shoes > Mens > Clothing"
});
repro.trackLead({
  value: 8000.0,
  currency: "JPY",
  content_name: "Slim Jeans",
  content_category: "Clothing & Shoes > Mens > Clothing"
});
Repro.trackLead({
  value: 8000.0,
  currency: "JPY",
  content_name: "Slim Jeans",
  content_category: "Clothing & Shoes > Mens > Clothing"
});
await Repro.trackLead({
  "value": 8000.0,
  "currency": "JPY",
  "content_name": "Slim Jeans",
  "content_category": "Clothing & Shoes > Mens > Clothing"
});

Complete Registration¶

Tracks completing registration.

Usage

  • When a user taps "Signup" button

Properties

  • content_name
  • value
  • currency
  • status
RPRCompleteRegistrationProperties *properties = [[RPRCompleteRegistrationProperties alloc] init];

properties.value = 8000.0;
properties.currency = @"JPY";
properties.contentName = @"Slim Jeans";
properties.status = @"completed";

[Repro trackCompleteRegistration:properties];
import Repro.RPREventProperties

...

let properties = RPRCompleteRegistrationProperties()

properties.value = 8000.0
properties.currency = "JPY"
properties.contentName = "Slim Jeans"
properties.status = "completed"

Repro.trackCompleteRegistrationEvent(properties: properties)
import io.repro.android.tracking.CompleteRegistrationProperties;

...

CompleteRegistrationProperties properties = new CompleteRegistrationProperties();

properties.setValue(8000.0);
properties.setCurrency("JPY");
properties.setContentName("Slim Jeans");
properties.setStatus("completed");

Repro.trackCompleteRegistration(properties);
import io.repro.android.tracking.CompleteRegistrationProperties

...

val properties = CompleteRegistrationProperties()

properties.value = 8000.0
properties.currency = "JPY"
properties.contentName = "Slim Jeans"
properties.status = "completed"

Repro.trackCompleteRegistration(properties)
#include "ReproCpp.h"

...

repro::CompleteRegistrationProperties properties;

properties.setContentName("Slim Jeans");
properties.setValue(5000.0);
properties.setCurrency("JPY");
properties.setStatus("completed");

ReproCpp::trackCompleteRegistration(&properties);
CompleteRegistrationProperties properties = new CompleteRegistrationProperties();

properties.SetContentName ("Slim Jeans");
properties.SetValue (5000.0);
properties.SetCurrency ("JPY");
properties.SetStatus ("completed");

Repro.TrackCompleteRegistration (properties);
Repro.trackCompleteRegistration({
  value: 8000.0,
  currency: "JPY",
  content_name: "Slim Jeans",
  status: "completed"
});
Repro.trackCompleteRegistration({
  value: 8000.0,
  currency: "JPY",
  content_name: "Slim Jeans",
  status: "completed"
});
repro.trackCompleteRegistration({
  value: 8000.0,
  currency: "JPY",
  content_name: "Slim Jeans",
  status: "completed"
});
Repro.trackCompleteRegistration({
  value: 8000.0,
  currency: "JPY",
  content_name: "Slim Jeans",
  status: "completed"
});
await Repro.trackCompleteRegistration({
  "value": 8000.0,
  "currency": "JPY",
  "content_name": "Slim Jeans",
  "status": "completed"
});

Adding custom properties¶

You can also add custom properties to standard events. Set dictionaries to extras property.

Note

If the key of the additional dictionaries overlap with the property name of the standard event, the value of the dictionaries will be ignored.

RPRViewContentProperties *properties = [[RPRViewContentProperties alloc] init];

properties.value = 5000.0;
properties.currency = @"JPY";
properties.contentName = @"Slim Jeans";
properties.contentCategory = @"Clothing & Shoes > Mens > Clothing";
properties.extras = @{
                     @"color":@"blue",
                     @"waist":@80
                     };

[Repro trackViewContent:@"1234" properties:properties];
import Repro.RPREventProperties

...

let properties = RPRViewContentProperties()

properties.value = 5000.0
properties.currency = "JPY"
properties.contentName = "Slim Jeans"
properties.contentCategory = "Clothing & Shoes > Mens > Clothing"
properties.extras = [
                    "color": "blue",
                    "waist": 80
                    ]

Repro.trackViewContentEvent(contentID: "1234", properties: properties)
import io.repro.android.tracking.ViewContentProperties;

...

ViewContentProperties properties = new ViewContentProperties();

properties.setValue(5000.0);
properties.setCurrency("JPY");
properties.setContentName("Slim Jeans");
properties.setContentCategory("Clothing & Shoes > Mens > Clothing");
properties.setExtras(new HashMap<String, Object>() {{
    put("color", "blue");
    put("waist", 80);
}});

Repro.trackViewContent("1234", properties);
import io.repro.android.tracking.ViewContentProperties

...

val properties = ViewContentProperties()

properties.value = 5000.0
properties.currency = "JPY"
properties.contentName = "Slim Jeans"
properties.contentCategory = "Clothing & Shoes > Mens > Clothing"
properties.extras = mapOf(
    "color" to "blue",
    "waist" to 80
    )

Repro.trackViewContent("1234", properties)
#include "ReproCpp.h"

...

repro::ViewContentProperties properties;

properties.setContentName("Slim Jeans");
properties.setContentCategory("Clothing & Shoes > Mens > Clothing");
properties.setValue(5000.0);
properties.setCurrency("JPY");
properties.setExtras(R"({"color": "blue", "waist": 90})"); /* Raw string literals, same with "{\"color\": \"blue\", \"waist\": 90}" */

ReproCpp::trackViewContent("1234", &properties);
ViewContentProperties properties = new ViewContentProperties();

properties.SetContentName ("Slim Jeans");
properties.SetContentCategory ("Clothing & Shoes > Mens > Clothing");
properties.SetValue (5000.0);
properties.SetCurrency ("JPY");

properties.SetExtras("{\"color\": \"blue\", \"waist\": 80}");

Repro.TrackViewContent ("1234", properties);
Repro.trackViewContent("1234", {
  value: 5000.0,
  currency: "JPY",
  content_name: "Slim Jeans",
  content_category: "Clothing & Shoes > Mens > Clothing",
  extras: {
    color: "blue",
    waist: 90
  }
});
Repro.trackViewContent("1234", {
  value: 5000.0,
  currency: "JPY",
  content_name: "Slim Jeans",
  content_category: "Clothing & Shoes > Mens > Clothing",
  extras: {
    color: "blue",
    waist: 90
  }
});
repro.trackViewContent("1234", {
  value: 5000.0,
  currency: "JPY",
  content_name: "Slim Jeans",
  content_category: "Clothing & Shoes > Mens > Clothing",
  extras: {
    color: "blue",
    waist: 90
  }
});
Repro.trackViewContent("1234", {
  value: 5000.0,
  currency: "JPY",
  content_name: "Slim Jeans",
  content_category: "Clothing & Shoes > Mens > Clothing",
  extras: {
    color: "blue",
    waist: 90
  }
});
await Repro.trackViewContent("1234", {
  "value": 5000.0,
  "currency": "JPY",
  "content_name": "Slim Jeans",
  "content_category": "Clothing & Shoes > Mens > Clothing",
  "extras": {
    "color": "blue",
    "waist": 90
  }
});

Custom Event¶

Track application-specific events other than standard events.

Warning

  • When triggering the delivery of in-app messages with tracked events, the implementation must reflect the app's screen rendering cycle. Check In-App Message and adjust the timing of execution.

  • Even if it is not available as a delivery triggering for in-app messages, the event can still be tracked and measured.

Note

  • Event name starting with ___repro___ is not allowed.

  • null or empty string are not allowed for event names. Maximum length of event name is 191 characters.

// Custom event
[Repro track:@"Finished tutorial" properties:nil];

// Custom event with properties
[Repro track:@"user review" properties:@{
    @"rating": @3
}];
// Custom event
Repro.track(event: "Finished tutorial", properties: [:])

// Custom event with properties
Repro.track(event: "user review", properties:[
    "rating": 3
])
// Custom event
Repro.track("Finished tutorial");

// Custom event with properties
Repro.track("user review", new HashMap<String, Object>() {{
  put("rating", 3);
}});
// Custom event
Repro.track("Finished tutorial")

// Custom event with properties
Repro.track("user review", mapOf(
        "rating" to 3
    )
)
// Custom event
ReproCpp::track("Finished tutorial");

// Event with properties
ReproCpp::trackWithProperties("user review", R"({ "rating": "3" })"); /* Raw string literals, same with {\"rating\": \"3\"} */
// Custom event
Repro.Track ("Finished tutorial");

// Custom event with properties
Repro.TrackWithProperties ("user review", "{\"rating\": 3}");
// Custom event
Repro.track("Finished tutorial");

// Custom event with properties
Repro.trackWithProperties("user review", "{\"rating\": \"3\"}");
// Custom event
Repro.track("Finished tutorial", {});

// Custom event with properties
Repro.track("user review", { rating: 3 });
// Custom event
repro.track("Finished tutorial");

// Custom event with properties
repro.track("user review", { rating: 3 });
// Custom event
Repro.track("Finished tutorial");

// Custom event with properties
Repro.track("user review", { rating: 3 });
// Custom event
await Repro.track("Finished tutorial");

// Custom event with properties
await Repro.track("user review", { "rating": 3 });
  • « User Profile
  • Push Notification »

About Us Careers Terms of Service Privacy Policy Cookie Policy

© 2022 Repro Inc.