到 2015 2015年 7 月

30 卷數 7

谷歌分析-分析您的 Windows/Windows Phone 應用程式與谷歌分析使用者行為

Nicola Delfino

應用程式開發是通過定義一個反覆運算的過程,所以你要明白,在盡可能短的時間,如何使用您的應用程式和新版本或功能可能會如何影響使用者的行為。真正使用的功能是多少?在特定的網頁上的使用者行為是什麼?多少時間呢使用者花來完成特定的任務嗎?最常見的硬體設定是什麼?當崩潰發生時,什麼?試用版和購買應用程式中是如何成功?您的使用者做離線運行應用程式?這些僅僅是一些遙測系統可以回答的問題。

有大量的正式支援 Windows 開發的遙測供應商 (bit.ly/1KGgAdQ),和微軟 Azure 包括Visual Studio應用洞察力,也集成在Visual Studio2015年 (bit.ly/1EeM8Ui)。

谷歌分析,由於谷歌分析 Windows SDK (可用在 Codeplex 上 bit.ly/1zXfvxJ),也是方便地集成到 Windows 或 Windows Phone 應用程式 (Silverlight 和通用)。

在這篇文章,我將重點放在谷歌分析,因為它是使用最廣泛的供應商在其他平臺上,包括 Web,和這是一個偉大的選擇,如果你已經過檢測與谷歌的網站,想要為應用程式使用相同的帳戶。我將描述如何收集遙測資訊與谷歌分析,和分析收集的資料,如已安裝的應用程式版本、 地理分佈和使用者的行為,以及如何執行 A / B 測試。

瞭解遙測概念有用無論哪個提供程式使用。一個偉大的起點,關於這一主題是從生成 2014 年克拉 Brockschmidt 甲板 (bit.ly/1QGIsSO)。

谷歌分析是什麼?

谷歌分析原本用於跟蹤和分析 Web 網站上的使用者行為。隨著時間推移,谷歌擴展其支援和應用程式,工具,現在 SDK 可供 iOS 和安卓系統,以及。Google 還提供了一種測量協定,允許您執行 HTTP 調用原始使用者交互資料將直接發送到谷歌分析伺服器 (bit.ly/1kHgDYz)。這使您可以確定使用者與他們的業務從幾乎任何環境的交互。谷歌分析 SDK 為 Windows 8 和 Windows Phone 使用這個協定。SDK 是獨立的、 開放原始碼工具集,旨在為 Android 有同位功能和 API 相似性與官方的谷歌分析 SDK。

將您的應用程式集成與谷歌分析

要集成的應用程式,首先你需要訪問谷歌分析儀表板與一個有效的谷歌帳戶,然後創建可以訪問本行政區域的至少一個應用程式帳戶 (bit.ly/1kPLnqG)。它也是一個好主意,創建單獨的應用程式帳戶用於開發、 測試和生產。這種方式,你從每個設置的分離,保持資料和避免污染您重要的生產資料與來自其他開發人員和測試人員的無效資料。

應用程式帳戶唯一地標識應用程式 (Contoso,為這篇文章的目的)。在這種情況下,"應用­陽離子"實際上涉及到的應用程式可用於不同的平臺和/或網站 (Contoso 的 Windows,Contoso Android,Contoso 網路儀表板),所有的一切都發送其遠端集合­法資訊到相同的帳戶。每個應用程式也可能在多個版本 (Android 2.0.1 的 Contoso 的 Windows 1.0,Contoso 的 Windows 1.1,Contoso) 中可用。

當你在谷歌分析中創建帳戶時,您還需要定義一個或多個屬性。在這裡,屬性是一個應用程式或 Web 網站為您的帳戶。應用程式屬性可以有多個版本,和它是邏輯需要有一個屬性為每個受支援的平臺 (例如,ContosoW8、 ContosoWP8、 ContosoDroid)。您選擇您的應用程式的名稱和回答幾個問題,對應用程式的業務範圍進行分類後,谷歌分析生成數位帳戶 ID 和跟蹤 ID 與 UA-xxxxxxxx-x,這表示您在谷歌分析的特定于平臺的應用程式和將用於從應用程式發送的所有遙測通信格式。

在我的示例場景中,我有一個通用的應用程式 (W8.1 和 WP8.1),所以我創建了兩個屬性 Id 在一個谷歌帳戶。若要啟用我的應用程式,跟谷歌分析,會使用 NuGet 套裝程式。為此,Windows 和應用程式,用滑鼠右鍵按一下引用,Windows Phone 選擇管理 NuGet 套裝程式和添加包"GoogleAnalyticsSDK"。此套裝程式增加參考和檔 analytics.xml,所示的兩個圖 1,到你Visual Studio解決方案。你得要編輯此檔,所以應用程式可以使用前面創建的正確的跟蹤 ID。

圖 1 Analytics.xml 為 Windows 和 Windows Phone 應用程式

<?xml version="1.0" encoding="utf-8" ?>
<analytics xmlns="http://googleanalyticssdk.codeplex.com/ns/easytracker">
<trackingId>UA-60759067-2</trackingId>
  <appName>ContosoWindows</appName>
  <appVersion>1.0.0.0</appVersion>
</analytics>
<?xml version="1.0" encoding="utf-8" ?>
<analytics xmlns="http://googleanalyticssdk.codeplex.com/ns/easytracker">
  <trackingId>UA-60759067-1</trackingId>
  <appName>ContosoWinPhone</appName>
  <appVersion>1.0.0.0</appVersion>
</analytics>

最後,您必須確保您的應用程式被授權使用的網路。對於 Windows Phone 應用程式,選擇 ID_CAP_NETWORKING 能力在 WMAppManifest.xml 檔中; 針對 Windows 8,在 package.appxmanifest 檔中選擇互聯網 (用戶端) 能力。

導航應用程式

大多數開發人員想要跟蹤的第一類是資訊的使用者導航。使用此 SDK,您需要發送正確的事件,每次使用者訪問頁面。谷歌分析 SDK 公開 SendView 命令,並很自然地就調用此方法是每個頁面的載入的事件:

void MainPage_Loaded(object sender, RoutedEventArgs e)
{
GoogleAnalytics.EasyTracker.GetTracker().SendView("Main");
}
void Page1_Loaded(object sender, RoutedEventArgs e)
{
GoogleAnalytics.EasyTracker.GetTracker().SendView("Page1");
}
void Page2_Loaded(object sender, RoutedEventArgs e)
{
GoogleAnalytics.EasyTracker.GetTracker().SendView("Page2");
}

請記住"觀"不是只是應用程式頁; 你還需要考慮其他方面的 UI,注意力的使用者 (如設置面板和對話方塊框),你想要監視和分析。

SendView 需要一個唯一標識頁面或 UI 方面正在跟蹤的字串參數。此名稱將出現在谷歌分析儀表板和報告為您的頁面的引用。它應該是泛型和有意義和容易交感性與源頁。即使您的應用程式支援多種語言,因為它將被解釋為不同的頁分析系統,它必須不翻譯。換句話說,除非你特別想要區分遙測資料為您的應用程式的當地語系化版本,請確保您將發送給谷歌分析的識別碼本身沒有當地語系化。

應用程式現在準備好要發送的第一個頁面導航遙測資訊。若要查看它,打開您的應用程式和流覽的頁面為一段時間。

使用者導航和應用程式版本

在幾秒鐘內導航資料是隨時供您分析。去 google.com/analytics 和登錄以訪問您的主頁。然後點擊你想要分析的屬性下面的所有移動應用程式的資料連結 (在我的示例中,該屬性是 ContosoW8 或者 Contoso WP8)。

歡迎儀表板可以顯示最近 30 天內,不包括當前日期的歷史資料。如果帳戶是新的最有可能的所有圖表將都為空。也是一個儀表板領域致力於最新的資料,您可以通過選擇即時按鈕在左邊的儀表板的訪問。

概述頁指示的活躍使用者數和最後一分鐘和最後一個小時即時與詳細的圖形顯示幕幕視圖 (見圖 2)。對這些關係圖豎條顯示使用者頁面訪問。

資料即時儀表板
圖 2 資料即時儀表板

也可以與活動使用者的數量,在最後一個小時中, 看到最活躍的螢幕的清單。你會看到在儀表板的名稱是用來作為應用程式代碼中的 SendView 參數。圖 2 在"Caledos 跑步者,"我開發了一個應用程式使用谷歌分析來收集使用方式資料顯示即時的示例資料。我想要在應用程式中顯示真實資料,所以你能看到多少資訊,你可以從這個工具 — — 和相應的潛力。

每個螢幕名稱是可點擊的所以你可以切成小的資料和 ana­源泉網頁的具體運用。資訊在這裡最重要的棋子之一是時間花在每個頁面 (或更好,在每個視圖)。點擊後螢幕名稱,您可以添加到圖表的螢幕上顯示的平均時間,通過按一下選擇一個度量從資源管理器選項卡的度量。

谷歌提供了一個很好的工具是行為流動的報告,所示圖 3。由於 SendView API,這個工具是可用通過選擇行為上,儀表板上的報告選項卡,它可以讓你分析使用者跨應用程式的頁從使用者會話開始的移動。圖組成序列的螢幕 (第一屏,第二個螢幕等等),並且顯示的連接並退出的使用者會話數。為會話退出,你可以的看到訪問的下一個頁面 (按會話編號排序) 和從該網頁 (在紅色) 離開應用程式的使用者數目。

樣本行為流報告
圖 3 樣本行為流報告

此工具允許您瞭解使用者在哪裡花他們的時間,當他們使用的應用程式,和你可能最終決定要訪問到受歡迎的頁面更容易通過提供一個更大、 更可辨認的按鈕。圖 3 在我的應用程式前, 三名下一屏目的地從主頁面的顯示是 askcloud、 運行和活動的細節。這表明它的問題­幹練地一個好的主意,給中央和可見的位置,到相應的按鈕在主頁面上,或移動的一些功能使用者頁面上找到的那些到主畫面,減少時間和水龍頭使用者數目需要完成這些活動。

你還需要知道正在使用您的應用程式的版本,並且此資訊來自使用您的應用程式的設備。在每個調用 SDK 發送 analytics.xml 中提供,所以你可以切你的資料,發現使用的版本的應用程式版本。歷史的應用程式版本的資料是可用下觀眾 |在左窗格中的儀表板的應用程式版本。圖 4 顯示通常會發生什麼當我發佈一個新版本的我的應用程式到存儲區。因為 Windows Phone 8.1 上的預設行為是自動下載並安裝新版本的應用程式時可用,90%以上的使用者群的幾天內將遷移到最新版本,(儘管長長的尾巴的少於 10%的使用者仍然是誰,出於某種原因,不能或不想升級)。

應用程式版本資料
圖 4 應用程式版本資料

您收到"免費"與導航跟蹤其他尺寸是設備名稱 (而不是 100%的準確率,Windows Phone) 的地點,語言,和網路服務提供者,雖然措施一邊,你可以找到會話、 獨特和獨特的新使用者的數目。

有了這些資訊,你能夠回答以下的問題:最活躍的國家或城市是什麼?在上個月在哪裡有了最新的使用者?使用此新的版本,都我的客戶使用的應用程式更多或更少?在這種情況下,唯一的限制是你的想像力,因為你可以設置自訂事件、 計數器、 維度和度量。

使用者從一個螢幕組成的隊伍,導航到另一種是一個好的起點,對於理解如何使用您的應用程式,但還有更多的資訊可用,更涉及到您的應用程式的特定域。這種類型的資訊可以作為一個自訂的事件,通常是指一些通用的使用者交互或冒泡到開發人員團隊有意義的資訊跟蹤。事件包括四個欄位,您可以使用來描述使用者與您的應用程式內容的交互:

  • 字串類
  • 字串操作
  • 字串標籤
  • Long 類型的值

因為所有的自訂事件去單個常見清單中,類別、 行動和標籤欄位説明確定您要分析的特定資訊。

以這種方式收集到的資訊是非常通用的和這是在哪裡遙測成為一門藝術。 給資料的意義,你開始想要回答的問題導致的遙測設計,然後導致你需要的儀器。因此,讓我們開始以示例的方式。

問題:我的應用程式範例具有許多功能,觸發應用程式的各個頁面上的按鈕。我想要瞭解更多,使用哪個函數把重點放在正確的方向我發展努力。

遙測設計:該應用程式的主要功能觸發按鈕,所以如果我跟蹤按一下這些按鈕上,我馬上就會獲得更好的理解使用者首選項。遙測的成功指標將會接收到來自每個按鈕的點擊次數。

儀器儀錶:我可以轉到所選按鈕的 click 事件,並跟蹤事件。

下面的代碼演示如何記錄使用者已按一下"播放"和"停止"按鈕:

private void buttonPlay_Click(object sender, RoutedEventArgs e)
{
GoogleAnalytics.EasyTracker.GetTracker().SendEvent(
  "ui_action", "press", "play", 0);
// Your code here
}
private void buttonStop_Click(object sender, RoutedEventArgs e)
{
GoogleAnalytics.EasyTracker.GetTracker().SendEvent(
  "ui_action", "press", "stop", 0);
// Your code here
}

如前面的使用者導航分析,在你有即時和行為組下的一個事件表。你想要做的分析類型,您可以選擇適當的視圖,歷史或真正的時間。

事件顯示特定時間範圍內 (預設值為一個月),所以你可以看到事件分組按頂級類別、 行動和在它的標籤的數量。你可以向下切入,關於特定類別及特定事件的操作,您還可以更改日期間隔的分析。

對於一個特定的事件類別、 行動或標籤,你可以找到的事件總數、 獨特的事件數目、 所有值和相應的平均價值的總和。

圖 5 顯示的事件,樣本清單和圖 6 顯示總、 獨特、 筆和 Grp1 組平均值。

圖 5 樣本事件

集團 行動 標籤 價值
Grp1 新聞 Button1 1
Grp1 新聞 Button1 2
Grp1 新聞 Button1 2
Grp1 新聞 Button2 3
Grp1 水龍頭 Label1 4

 

圖 6 Grp1 的匯總值

事件總數 5
獨特的事件 4
事件值 12
事件平均價值 2.4

使用一個真實的例子可以説明您更好地瞭解該工具的潛力。"Caledos 轉輪,"我想要理解多少應用程式真正用於跟蹤活動,,因為我不想強迫使用者註冊帳戶才能使用應用程式,我用事件來跟蹤此資訊。

在應用程式啟動,我跟蹤事件為每個註冊的使用者和不同的事件,為每個使用者都沒有登記,類似于以下內容的代碼:

if (!string.IsNullOrEmpty(currentUser.AccessToken))
{
GoogleAnalytics.EasyTracker.GetTracker().SendEvent(
  "user", "Cloud", "Registered", 1);
}
else
{
GoogleAnalytics.EasyTracker.GetTracker().SendEvent(
  "user", "Cloud", "Unregistered", 1);
}

我發現,55%的使用者不要他們的資料發送到雲中,所以為了得到精確的資料我的所有使用者,在結束了每個 GPS 活動應用程式發送一個事件與所覆蓋的距離有關的資訊和一個事件與總的執行時間的活動,使用類似于以下內容的代碼:

GoogleAnalytics.EasyTracker.GetTracker().SendEvent(
  "activity", "outdoor", "time", (long)CurrentFitnessActivity.Duration);
GoogleAnalytics.EasyTracker.GetTracker().SendEvent(
  "activity", outdoor", "distance", (long)model.CurrentFitnessActivity.TotalDistance);

因此,我已經獲得中顯示的資料圖 7 于 2015 年 2 月第一周。

自訂事件示例
圖 7 自訂事件示例

這種分析所說的是:2 月第一周,該應用程式成功地跟蹤超過 15000 小時 (54,000,000 秒) 和 51000 公里 (32,000 英里)。平均使用者使用該應用程式的活動約 5 公里 (3.1 英里),覆蓋在一個半小時 (5,400 秒) 的距離。

很高興知道,但還是不夠!這是只是一個平均使用率視圖,但更有可能你會想知道該用法真的如何分配。這是時間的款應用程式,所以你會想知道最流行的運動,是否那大眾化來自使用者經常使用的應用程式或使用者使用它,但只是時間的大量短了很多的小數目。

這是谷歌分析的自訂維度和度量可以説明的地方。自訂維度和度量標準允許您將額外的資料導入谷歌分析,可以説明您回答有關如何將使用者交互與您的內容的新問題。躍點數是跨你谷歌分析命中總結的資料類型的計數。度量對應于列在一份報告。尺寸允許你打破一個度量由一個特定的值,例如,螢幕視圖的螢幕名稱。尺寸對應于這些行在一份報告 (bit.ly/1lOry2r)。

有兩個主要的步驟來實現自訂維度或度量:

  • 定義自訂維度或度量使用谷歌分析 Web 介面 (bit.ly/1Je9RJQ)。
  • 執行代碼以設置和收集自訂維度和度量值。

谷歌分析的每個屬性有 20 的可用指數,對於自訂尺寸和另一個 20 指數為自訂的度量。一旦創建了一個維度或度量,您的代碼可以引用該度量或維度使用相應的指數。

回到我的問題,瞭解體育擊穿我創建了一個維度,活動類型,與範圍,擊中,和下面的代碼用於跟蹤此資訊在健身會話期間由應用程式顯示的視圖:

GoogleAnalytics.EasyTracker.GetTracker().SetCustomDimension(1, activityType);
GoogleAnalytics.EasyTracker.GetTracker().SendView("Running");

A / B 測試

A / B 測試是一個術語行銷人員用來測試是指,洞察位訪客的行為,目的是提高轉化率。(根據維琪百科,轉化率"是比例的 Web 網站的訪問者採取行動去超越休閒內容視圖或 Web 網站訪問,行銷商、 廣告商及內容創作者微妙或直接請求。")

在開發應用程式的世界裡,A / B 測試手段測試兩個不同版本的元素 (如網頁或按鈕) 使用定義了成功的一種情況在另一個度量。

假設您有兩種設計的一個頁面,A 和 b。 通常情況下,A 是現有的設計 (控制),而 B 是新的設計。您可以使用一個道理為您的應用程式 (也許按一下特定按鈕) 來找到你成功公制或你的轉化率的度量其性能拆分您的使用者基礎這些措施和兩個版本之間。在測試結束時,您選擇的元素的執行效果最佳。

換句話說,假設每個設計是其 XAML 檔 (page3v1.xaml 和 page3v2.xaml) 與不同的應用程式頁。每個頁面上,你有你的目標 — — 需使用者按一下的按鈕 — — 和你可以使用該按鈕的 click 事件來跟蹤確認成功按鈕的按一下操作的自訂事件。通過利用 MVVM 模式,你可以解耦從模型和視圖模型,所以你很容易可以有兩個包含相同的邏輯和資料的 XAML 檔。

你可以然後使用類似于下面的代碼,使使用者對頁面進行測試,拆分均勻版本 A 和 B 的頁面之間的導航:

if (DateTime.Now.Second % 2 == 0)
  this.Frame.Navigate(typeof(Page3V1));
else
  this.Frame.Navigate(typeof(Page3V2));

你可以按錄製按鈕按一下使用跟蹤成功的佈局:

GoogleAnalytics.EasyTracker.GetTracker().SendEvent(
  "ABTest", "Scenario1", "pageV1", 0);

或第一頁上的按一下按鈕:

GoogleAnalytics.EasyTracker.GetTracker().SendEvent(
  "ABTest", "Scenario1", "pageV2", 0);

在第二頁上的同一按鈕的按一下。

每個標籤 (PageV1,PageV2) 的事件的總數確定的最成功的頁。測試結束,該頁只會繼續時在應用程式中,而其他可以被刪除。

總結

在現代應用程式開發,遙測和分析工具可以有真正的差別如何快速您可以識別使用者的行為,以及應用程式的問題和他們的決議。在這篇文章中,我討論了只有一個小樣本的情況,可以分析。數量和類型的這種情況被有限只有通過你的想像力和好奇心。


Nicola Delfino 是在微軟義大利事務司和作者的"Caledos 跑步者,"其中一個最成功的健身跟蹤應用程式的 Windows Phone,這給了他機會使用遙測發現、 分析人們如何使用他的應用,以及應用程式開發經理你能聯繫到他在 nicold@microsoft.comnicola@caledos.com

感謝以下的微軟技術專家對本文的審閱:克賴希 Brockschmidt