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.
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)
andInfinity
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"
});
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"
});
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"
});
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"
});
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"
});
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"
});
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
});
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"
});
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"
});
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"
});
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
}
});
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
await Repro.track("Finished tutorial");
// Custom event with properties
await Repro.track("user review", { "rating": 3 });