GoogleAnalytics
Xamarin
Xamarin.Forms

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

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

参考サイト