17

私はGoogleアナリティクスを実装しようとしています..皆さん、私を助けてもらえますか

-(void) setGoogleAnalytics{

    // Initialize tracker.
    self.tracker = [[GAI sharedInstance] trackerWithName:@"ipad app"
                                              trackingId:kTrackingID];

    NSDictionary *appDefaults = @{kAllowTracking: @(YES)};

    [[NSUserDefaults standardUserDefaults] registerDefaults:appDefaults];
    // User must be able to opt out of tracking

    [GAI sharedInstance].optOut =
    ![[NSUserDefaults standardUserDefaults] boolForKey:kAllowTracking];

    // Optional: automatically send uncaught exceptions to Google Analytics.
    [GAI sharedInstance].trackUncaughtExceptions = YES;

    // Optional: set Google Analytics dispatch interval to e.g. 20 seconds.
    [GAI sharedInstance].dispatchInterval = 5;

    // Optional: set Logger to VERBOSE for debug information.
    [[[GAI sharedInstance] logger] setLogLevel:kGAILogLevelVerbose];

    [[GAI sharedInstance] setTrackUncaughtExceptions:YES];
}

そしてそれを呼び出す

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
            [self setGoogleAnalytics];
    //
    //
    //
}

My ViewController 実装の内部

 [self dispatchEvent:@"Purchase Done"];

[self trackViewName:NSStringFromClass([self class])];


 -(void) trackViewName:(NSString *) strClassName{
        [[GAI sharedInstance] defaultTracker];
        self.screenName=[NSString stringWithFormat:@"%@",strClassName];
        [self.tracker send:[[NSDictionary alloc] initWithObjectsAndKeys:strClassName,@"ViewName", nil]];
        [[GAI sharedInstance] dispatch];

    }

- (void)dispatchEvent:(NSString *)strButtonText{

    id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];

    [tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"ui_action"     // Event category (required)
                                                          action:@"button_press"  // Event action (required)
                                                           label:strButtonText          // Event label
                                                           value:nil] build]];    // Event value  = [[GAI sharedInstance] defaultTracker];

    [[GAI sharedInstance] dispatch];
}

Google アナリティクスのどのバージョンをダウンロードする必要がありますか?ベータ版 GoogleAnalyticsiOS_2.0beta4.zip を使用したくないため、Google GoogleAnalyticsServicesiOS_3.01.zip (推奨) をダウンロードしました

4

4 に答える 4

11

3.01でも同じ問題がありました。私の問題は、実際には Google アナリティクスの管理セクションにありました。

バージョン1.xで動作するモバイル用のプロファイル設定(実際にはWebサイトのように設定されていました)がありました。ただし、Google は現在、「モバイル」プロファイルも実装しているようです。3.x モバイル SDK は「Web」プロファイルを追跡できないと思います。

こちらの手順に従って、新しいプロファイルを作成します。そして、新しい追跡 ID を使用すると、追跡が開始されます。

注:他の人が示唆しているように、dispatchIntervalを0に設定しないでください。これにより、追跡も妨げられ、1に設定されます。これですべてが修正されました。

于 2013-09-27T14:09:54.697 に答える
11

更新 -- iOS 向け Google アナリティクス SDK v3

だから私はv3を使用していますが、問題はありません:

AppDelegate に実装しています。.h ファイル内:

#import "GAI.h"
@property (nonatomic,assign) id<GAITracker> tracker; // I'm not using ARC (assign)

.m:

#import "GAIDictionaryBuilder.h"
#import "GAIFields.h"

// GOOGLE ANALYTICS
[GAI sharedInstance].trackUncaughtExceptions = YES;
[GAI sharedInstance].dispatchInterval = 0;
tracker = [[GAI sharedInstance] trackerWithTrackingId:@"yourGAID"];

そして、次のようなメソッドを書きます。

- (void) sendGoogleAnalyticsView:(NSString*)viewName{
    [tracker set:kGAIScreenName value:viewName];
    [tracker send:[[GAIDictionaryBuilder createAppView] build]];
    [[GAI sharedInstance] dispatch]; // this will force track your views.
}

古い答え:

このリンクの下のこの回答を参照してください。この回答で私が言ったのと同じようにすれば、うまくいくはずです

別のスタックオーバーフローが google-analytics に関する質問に回答しました

次の方法を使用します。

[GAI sharedInstance].optOut = YES;
[GAI sharedInstance].dispatchInterval = 0;
[GAI sharedInstance].trackUncaughtExceptions = YES;
    tracker = [[GAI sharedInstance] trackerWithTrackingId:@"YOUR TRACKERID"];


[tracker sendView:@"Your View name"];

[tracker sendEventWithCategory:@"YOUR CATEGORY" withAction:@"YOUR ACTION" withLabel:nil withValue:nil];

このリンクから GoogleAnalyticsiOS_2.0beta4.zip をダウンロードすると、必要なクラスが含まれ、完全に機能します。注意してください。Google アナリティクスには、リアルタイムで情報を表示するためのリード タイムがあります。リアルタイムのデータではなく、翌日のみ表示されます

3.0の編集:

おそらく役に立つものをいくつか見つけました:

この問題に遭遇したばかりで、これは少し古くなっているため、更新された回答を次に示します。Google アナリティクス Web サイトの指示に従った後に発生した問題は、次のファイル、、、、およびライブラリを追加するように指示され GAI.hてい ます。彼らがウェブサイトの指示に含めることを完全に忘れているのは、ライブラリを含める必要があるものです. これは圧縮されたダウンロードに含まれていますが、これをデバッグ バージョンに含めるよう指示する指示はありません。GAIDictionaryBuilder.hGAILogger.hGAITrackedViewController.hGAITracker.hlibGoogleAnalytics_debug.alibGoogleAnalyticsServices.a

注 : readme.txt では、Google がドキュメントを更新して、新しい名前またはデバッグで必要であることを示す正しい手順を含めることができなかったためlibGoogleAnalyticsServices.a、単に参照されています。libGoogleAnalytics.a

よく含まれるファイルとライブラリ

GAI.h
GAIDictionaryBuilder.h
GAIFields.h
GAILogger.h
GAITrackedViewController.h
GAITracker.h
libGoogleAnalytics.a // Also know as libGoogleAnalyticsServices.a
libGoogleAnalytics_debug.a

ここに画像の説明を入力

プラス情報:

私は、グーグルがまだ彼らの の arm64 バージョンを提供していないことを確信して libGoogleAnalyticsServices.aいます。

現時点では、armv7、armv7s のみをビルドするか、Google アナリティクスを削除して、彼らが頭を悩ませるまで続けると思います。

これはiOS 入門ガイドです。それを実装するために。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  // Optional: automatically send uncaught exceptions to Google Analytics.
  [GAI sharedInstance].trackUncaughtExceptions = YES;

  // Optional: set Google Analytics dispatch interval to e.g. 20 seconds.
  [GAI sharedInstance].dispatchInterval = 0;

  // Optional: set Logger to VERBOSE for debug information.
  [[[GAI sharedInstance] logger] setLogLevel:kGAILogLevelVerbose];

  // Initialize tracker.
  id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"UA-XXXX-Y"];

}

スクリーン ビューを手動で送信するには、トラッカーでスクリーン フィールドの値を設定してから、ヒットを送信します。

// May return nil if a tracker has not already been initialized with a
// property ID.
id tracker = [[GAI sharedInstance] defaultTracker];

// This screen name value will remain set on the tracker and sent with
// hits until it is set to a new value or to nil.
[tracker set:kGAIScreenName
       value:@"Home Screen"];

[tracker send:[[GAIDictionaryBuilder createAppView] build]];

または自動スクリーン測定:

GAITrackedViewControllerクラスを使用して、ビューを画面として自動的に測定します 。各ビュー コントローラを拡張GAITrackedViewControllerし、screenName というプロパティを追加します。このプロパティは、スクリーン名フィールドの設定に使用されます。

//
// MyViewController.h
// An example of using automatic screen tracking in a ViewController.
//
#import "GAITrackedViewController.h"

// Extend the provided GAITrackedViewController for automatic screen
// measurement.
@interface AboutViewController : GAITrackedViewController

@end


//
// MyViewController.m
//
#import "MyViewController.h"
#import "AppDelegate.h"

@implementation MyViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    // Set screen name.
    self.screenName = @"Home Screen";
}

// Rest of the ViewController implementation.
@end

イベント追跡:

リンク

イベントを Google アナリティクスに送信するには、GAIDictionaryBuilder.createEventWithCategory:action:label:value: を使用して、次の例のようにヒットを送信します。

// May return nil if a tracker has not already been initialized with a property
// ID.
id<GAITracker> = [[GAI sharedInstance] defaultTracker];

[tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"ui_action"     // Event category (required)
                                                      action:@"button_press"  // Event action (required)
                                                       label:@"play"          // Event label
                                                       value:nil] build]];    // Event value
于 2013-09-16T14:00:47.580 に答える
0
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@protocol GAITracker;
@interface GAITrackedViewController : UIViewController {
@private
    id<GAITracker> tracker_;
    NSString *trackedViewName_;
}
@property(nonatomic, assign)id<GAITracker> tracker;
@property(nonatomic, copy)NSString *trackedViewName;
@end

Paste this code on "GAITrackedViewController.h" file
Then you can use self.trackedName = @"Some Name"; easly.
于 2013-11-15T07:41:51.113 に答える