LoginSignup
2
2

More than 5 years have passed since last update.

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

Posted at

はじめに

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

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

参考サイト

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2