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

# はじめに
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](https://qiita-image-store.s3.amazonaws.com/0/203323/c99b6621-71eb-0481-7cc2-6b1f8674d0f6.png)

## NuGetパッケージの追加
「ksemenenko.GoogleAnalytics」を検索して追加します。
[こちら](https://www.nuget.org/packages/ksemenenko.GoogleAnalytics)です。

![02.png](https://qiita-image-store.s3.amazonaws.com/0/203323/2d20e282-b6e1-c10a-d42c-4af359da05f2.png)


## ソースコード
### 共通
Xamarin.Formsにボタンを配置し、タップした際にGoogle Analyticsへ送信してみます。

```xml: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>
```

```C#: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は適宜変更してください。

```C#: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は適宜変更してください。

```C#: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](https://qiita-image-store.s3.amazonaws.com/0/203323/a0838262-3ad9-2f82-0940-2c5e19ece4d8.png)



# Github
[こちら](https://github.com/gnk263/XamarinFormsGoogleAnalytics)にサンプルコードがあります。

# 参考サイト
* https://xamarinhelp.com/google-analytics-xamarin/