Posted at

Xamarin.FormsでGoogle Analyticsに対応してみた(再掲)

More than 1 year has passed since last update.


はじめに

Xamarin.Formsを使用したアプリでGoogle Analyticsに対応してみました。

※2017/10/14に投稿しましたが、投稿NGの記載があったので再掲しています。(TrackerIDをそのまま記載していました……)


環境


PC等


  • Windows 10

  • Visual Studio 2017 Community


NuGetパッケージ


  • ksemenenko.GoogleAnalytics (1.03)


機材


  • Nexus5X (Android 8.0)

  • iPhone7 (iOS11)


アプリ作成


プロジェクトの新規作成

「XamarinGoogleAnalytics」という名称のXamarin.Formsプロジェクトを新規作成します。

01.png


NuGetパッケージの追加

「ksemenenko.GoogleAnalytics」を検索して追加します。

こちらです。

02.png


ソースコード


共通

Xamarin.Formsにボタンを配置し、タップした際にGoogle Analyticsへ送信してみます。


MainPage.xaml

<?xml version="1.0" encoding="utf-8" ?>

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:XamarinGoogleAnalytics"
x:Class="XamarinGoogleAnalytics.MainPage">
<ContentPage.Content>
<StackLayout HorizontalOptions="Center" VerticalOptions="Center">
<Button Text="Click!" Clicked="Button_Clicked"/>
</StackLayout>
</ContentPage.Content>
</ContentPage>


MainPage.xaml.cs

using Plugin.GoogleAnalytics;

using System;

using Xamarin.Forms;

namespace XamarinGoogleAnalytics
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}

private void Button_Clicked(object sender, EventArgs e)
{
GoogleAnalytics.Current.Tracker.SendView("MaiinPage");
GoogleAnalytics.Current.Tracker.SendEvent("Category", "Action", "Label", 0);

DisplayAlert("Info", "情報を送信しました。", "OK");
}
}
}



Android

LoadApplication()を実行する前に初期化を行います。

TrackingIdは適宜変更してください。


MainActivity.cs

using System;

using Android.App;
using Android.Content.PM;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using Plugin.GoogleAnalytics;

namespace XamarinGoogleAnalytics.Droid
{
[Activity(Label = "XamarinGoogleAnalytics", Icon = "@drawable/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
protected override void OnCreate(Bundle bundle)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;

base.OnCreate(bundle);

GoogleAnalytics.Current.Config.TrackingId = "UA-xxxxxx-x";
GoogleAnalytics.Current.Config.AppId = "XamarinGoogleAnalytics";
GoogleAnalytics.Current.Config.AppName = "Googleアナリティクスサンプル";
GoogleAnalytics.Current.Config.AppVersion = "1.0.0";
GoogleAnalytics.Current.InitTracker();

global::Xamarin.Forms.Forms.Init(this, bundle);
LoadApplication(new App());
}
}
}



iOSのコード

LoadApplication()を実行する前に初期化を行います。

TrackingIdは適宜変更してください。


AppDelegate.cs

using Foundation;

using UIKit;
using Plugin.GoogleAnalytics;

namespace XamarinGoogleAnalytics.iOS
{
[Register("AppDelegate")]
public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
{
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
GoogleAnalytics.Current.Config.TrackingId = "UA-xxxxxx-x";
GoogleAnalytics.Current.Config.AppId = "XamarinGoogleAnalytics";
GoogleAnalytics.Current.Config.AppName = "Googleアナリティクスサンプル";
GoogleAnalytics.Current.Config.AppVersion = "1.0.0";
GoogleAnalytics.Current.InitTracker();

global::Xamarin.Forms.Forms.Init();
LoadApplication(new App());

return base.FinishedLaunching(app, options);
}
}
}



できました

03.png


Github

こちらにサンプルコードがあります。


参考サイト