2013-06-27 12 views
6

Lassen Sie mich zunächst sagen, ich weiß, wie das iOS SDK verwenden, also bitte nicht mit einem "nur das SDK verwenden." Ich möchte wissen, warum Google Analytics nicht funktioniert.Google Analytics funktioniert nicht in Webview in iOS App

Hier ist mein Setup. Ich habe eine Web-App, die auch in eine Android-App und iOS-App via Webview gebacken wird. Ich benutze Cordova. Die Android-App funktioniert gut mit dem GA JS-Code. Das Web funktioniert gut. Es werden jedoch keine Ereignisse oder Seitenaufrufe von iOS angezeigt. Ich habe gehört, dass GA an die Domain gebunden ist, also macht ein iOS-Webview etwas unter der Haube der Domain?

Ich wollte meine Code-Schnipsel befestigen, aber es ist in einigen Klassen Coffee so werde ich nur die

Analytics.prototype.track = function(args) { 
     window._gaq.push(args); 
    }; 
    Analytics.track(['_trackEvent', 'SubscriptionModal', "Closed", data]); 

Dies funktioniert gut in Web-und Android-js zusammengestellt einfügen, so dass es kein JS ist. Ich setze den GA _setDomainName auf "focusatwill.com" und kann sehen, dass sowohl ios als auch web eine Domain von "www.focusatwill.com" haben

Ich habe online gelesen ein paar Leute reden über dieses Problem und alle sagt nur das SDK verwenden. Ich suche nach dem Grund, warum es nicht funktioniert. Wie reparierst du es, um den JS zu benutzen?

bearbeiten

Ich sollte erwähnen, dass die HTML-und JS nicht in das Gerät gebacken, dh sie nicht über eine lokale URL, sondern werden von unserem Webserver

+0

Haben Sie für Ihre GA-App das Projekt als mobile App eingerichtet? Ich bin in ähnlicher Weise auf dieses Projekt gestoßen, und letztendlich habe ich zwei Projekte unter dem GA-Konto eingerichtet; 1 für die mobile Website (für Webview-Klicks) und ein anderes für die eigentliche App, um Ereignisse in der App selbst zu protokollieren (nicht Webview) – kevinl

+0

Es ist ein Web-Tracker. Android funktioniert mit Webtracks aber scheint wie iOS uiwebviews nicht und ich neugierig warum? Liegt es daran, dass die GA-Imagedatei nicht lokal gespeichert werden kann? Oder ein anderes Cookie-Problem? Nur neugierig, ob jemand wirklich weiß, warum –

+2

'track' ist eine Prototyp-Methode, aber Sie rufen die Objekt-Methode .. –

Antwort

0

Safari auf iOS6 + Blöcke serviert Cookies von Drittanbietern standardmäßig, und ich bin mir sicher, dass Webviews auch tun.

Sie sicher, dass Sie etwas Ähnliches wie die folgenden in der Init-Methode von AppDelegate.m haben:

NSHTTPCookieStorage* cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; 
[cookieStorage setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways]; 

die von den Standardtextvorschlag von Cordova erzeugt ist 3.0.9, aber möglicherweise nicht vorhanden sein, wenn Sie Verwenden einer Version, die älter als iOS6 ist. Sie legt die anwendungsspezifische Cookie-Richtlinie fest, die den Systemstandard überschreiben sollte.

Verwandte Themen