14

我們正在將我們的原生iPad應用程序變爲混合應用程序。一些功能和UI將保留在本地代碼中,其他功能將以HTML形式實現,這些HTML將從我們的服務器提供服務,並且也可以脫機使用。將谷歌分析與混合移動應用程序結合使用

我現在遇到的主要問題是使用谷歌分析:
現有的原生代碼使用GA SDK iOS和我計劃使用Web API的網絡的一部分,但是我怎麼也找不到數據來自兩個渠道的數據可以在GA中一起使用,因爲數據存儲似乎是不同的。

此外,我計劃使用Google Analytics的內容實驗進行A/B測試,但轉換目標可能是在本機部分實現的。

任何人都有關於混合應用程序或其他解決方案的分析經驗。

感謝

回答

18

您確實想使用SDK。它具有一些功能,可用於移動應用程序,如崩潰,玩商店集成。它還可以批量發送數據以提高電池使用率,並且還可以在應用程序離線時排隊點擊以在線時發送。你將無法用Javascript實現來模擬。

因此,您需要編寫的是從WebView將數據發送迴應用程序本地部分的Javascript方法。 This other Stack Overflow thread有關於如何做到這一點的更多細節。

因此,用於跟蹤Google Analytics互動的JavaScript可能看起來像這樣。

var _gaq = {}; 
_gaq.push = function(arr){ 
    var i, hit; 
    hit = arr.slice(1).join('&'); 
    location.href = 'analytics://'+arr[0]+'?'+arr; 
}; 

現在,這將作爲您的ga.js文件替換,你仍然可以使用相同的API,你_gaq今天上使用您的Web應用程序,並且上面會適配器將其數據發送給TE本地APP的一部分。然後您只需編寫將攔截該HTTP請求的本機部分,並使用本機SDK發佈Google Analytics功能。

正常_gaq.push(['_trackPageview', '/homepage']);將成爲像analytics://_trackPageview?/homepage這樣的URI,現在您只需要截取並解析本機部分。

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType { 
    NSURL *url = [request URL]; 

    NSLog(@"Hit detected %@", url.absoluteString); 

    if ([[url scheme] isEqualToString:@"analytics"]) { 
     id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker]; 

     if ([url.host isEqualToString:@"_trackPageview"]) { 
      // Get the page from parameters and then track the native View. 
      // (...) 
      [tracker trackView:page]; 
     } 
     else if ([url.host isEqualToString:@"_trackEvent"]) { 
      // Get the event parameters from url parameters and then track the native GA Event. 
      // (...) 
      [tracker trackEventWithCategory:cat 
           withAction:act 
            withLabel:lab 
            withValue:val]; 
     } 
     // Check for all other analytics functions types 
     // (...) 
     // Cancel the request 
     return NO; 
    } 
    // Not an analytics: request. 
    return YES; 
} 

我希望它給了你一個很好的起點。祝你好運。

0

我用http://www.flurry.com/我的應用程序和谷歌Analytics(分析)對我其他的東西。我從來沒有在同一個應用中混用他們兩個,但我猜這是可行的。我會搶先檢查一下。對於混合應用程序來說,這是一個很好的機會。

+0

你有沒有在混合應用程序中使用亂七八糟的? 我沒有看到任何庫的支持呢,也許我需要更努力\ – Vineet 2015-10-18 17:31:18

1

確實是一個具有挑戰性的配置。

您是否使用analytics.js(Universal Analytics)進行了Web部件研究?然後,你可以能夠將數據提供給一個單一的應用程序配置文件

否則,你可以從你的後端發送的所有跟蹤調用,利用服務器端實現Measurement Protocol的,但你會內容可能鬆動的用法實驗!

+0

我沒想到這是一個具有挑戰性的配置混合應用是方向很多頭,但它確實證明了具有挑戰性的。 – Variant 2013-03-14 14:24:06

相關問題