Installation and initialization
Support and development of the plugin has been stopped. We do not guarantee the SDK will work correctly.
AppMetrica Xamarin is a plugin for the Xamarin platform. It includes the AppMetrica SDK support for Android and iOS.
The general flow of using the plugin is shown below:
The plug-in is provided as projects containing the following libraries:
- YandexMetricaPCL
-
This library implements an interface for working with cross-platform parts of the app. The library contains:
- The general AppMetrica interface —
IYandexMetrica
. - The static proxy class
YandexMetrica
for working via this interface with an implementation for the current platform. - The stub
YandexMetricaDummy
(which implements theIYandexMetrica
interface), used if no implementation has performed registration in theYandexMetrica
proxy class.
- YandexMetricaAndroid
-
The library contains an AAR file of the AppMetrica library, generated code for working with the methods of the library and the
YandexMetricaImplementation
class, which implements theIYandexMetrica
interface. - YandexMetricaiOS
-
The library contains A files for the AppMetrica library, generated code for working with the methods of the library and the
YandexMetricaImplementation
class, which implements theIYandexMetrica
interface.
Step 1. Integrating the AppMetrica Xamarin plugin
Download and enable the plugin libraries in one of the ways:
- Connect the projects YandexMetrica.Xamarin.PCL, YandexMetrica.Xamarin.iOSBinding and YandexMetrica.Xamarin.AndroidBinding.
- Assemble and connect the libraries from the projects. After building, the libraries will be available in the directories:
- YandexMetrica.Xamarin.PCL/bin/(Debug|Release)/YandexMetrica.Xamarin.PCL.dll
- YandexMetrica.Xamarin.iOSBinding/bin/(Debug|Release)/YandexMetrica.Xamarin.iOS.dll
- YandexMetrica.Xamarin.AndroidBinding/bin/(Debug|Release)/YandexMetrica.Xamarin.Android.dll
Step 2. Initialize the AppMetrica library
Initialize the AppMetrica library using the Activate()
method of the YandexMetricaImplementation
class. This method also performs registration of the IYandexMetrica
interface implementation.
public static void Activate(Context context, YandexMetricaConfig config, Application app = null) {...}
Parameter | Default value | Description |
---|---|---|
config | — | Extended startup configuration. To create it, pass |
app | null | Allows enabling or disabling automatic app lifecycle tracking. By default, tracking is disabled. If this parameter takes the |
Parameter | Default value | Description |
---|---|---|
config | — | Extended startup configuration. To create it, pass |
app | null | Allows enabling or disabling automatic app lifecycle tracking. By default, tracking is disabled. If this parameter takes the |
public static void Activate(YandexMetricaConfig config) {...}
Parameter | Default value | Description |
---|---|---|
config | — | Extended startup configuration. To create it, pass |
Parameter | Default value | Description |
---|---|---|
config | — | Extended startup configuration. To create it, pass |
The API key is a unique application identifier that is issued in the AppMetrica web interface during app registration.
Make sure you have entered it correctly.
Connection examples
Examples of working with demonstration projects are shown below.
The YandexMetricaPCL library is connected. The YandexMetrica.Implementation
is used for working with AppMetrica.
using System; using YandexMetricaPCL; using System.Collections.Generic; namespace Metrica.Xamarin.CrossPlatform { public class SharedLogic { public static void LogClick(int clickNumber) { var dict = new Dictionary<string, string>{ { "click", clickNumber.ToString() } }; YandexMetrica.Implementation.ReportEvent("Click from shared logic", dict); } } }
Copied to clipboard
The YandexMetricaAndroid and YandexMetricaPCL libraries are connected. Activation must be performed on app start. Then you can use the general YandexMetricaPCL interface, or work directly with YandexMetricaAndroid.
using Android.App; using Android.Widget; using Android.OS; using System.Collections.Generic; using YandexMetricaPCL; namespace Metrica.Xamarin.CrossPlatform.Droid { [Activity(Label = "Metrica.Xamarin.CrossPlatform", MainLauncher = true, Icon = "@mipmap/icon")] public class MainActivity : Activity { int count = 1; protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); // Init Android AppMetrica directly. YandexMetricaConfig config = new YandexMetricaConfig("API_key"); YandexMetricaAndroid.YandexMetricaImplementation.Activate(this, config, this.Application); // Set our view from the "main" layout resource. SetContentView(Resource.Layout.Main); // Get our button from the layout resource, // and attach an event to it. Button button = FindViewById<Button>(Resource.Id.myButton); button.Click += delegate { button.Text = string.Format("{0} clicks!", count); var dict = new Dictionary<string, string> { { "click", count.ToString() } }; YandexMetrica.Implementation.ReportEvent("Click from Android", dict); SharedLogic.LogClick(count); ++count; }; } } }
Copied to clipboard
The YandexMetricaIOS and YandexMetricaPCL libraries are connected. Activation must be performed on app start. Then you can use the general YandexMetricaPCL interface, or work directly with YandexMetricaIOS.
using System; using UIKit; using YandexMetricaPCL; using System.Collections.Generic; namespace Metrica.Xamarin.CrossPlatform.iOS { public partial class ViewController : UIViewController { int count = 1; public override void ViewDidLoad() { base.ViewDidLoad(); // Init iOS AppMetrica directly. YandexMetricaConfig config = new YandexMetricaConfig("API_key"); YandexMetricaIOS.YandexMetricaImplementation.Activate(config); // Perform any additional setup after loading the view, typically from a nib. Button.AccessibilityIdentifier = "myButton"; Button.TouchUpInside += delegate { var title = string.Format("{0} clicks!", count); Button.SetTitle(title, UIControlState.Normal); var dict = new Dictionary<string, string> { { "click", count.ToString() } }; YandexMetrica.Implementation.ReportEvent("Click from iOS", dict); SharedLogic.LogClick(count); ++count; }; } } }
Copied to clipboard
Step 3. (Android) Connect the Play Install Referrer library
Connecting the library Play Install Referrer is mandatory. It is used to track the installation source.
- Download the latest version of the Play Install Referrer library.
- Add it to a project, such as a directory lib.
- Enable Build Action for the library in AndroidAarLibrary.