質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

Google Analytics

Google AnalyticsはGoogleが開発した無料のウェブ分析のソリューションです。複数のクライアント側のAPIとデータをエクスポートし管理するREST APIも格納されています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Q&A

解決済

2回答

2528閲覧

 iosアプリのアナリティクス導入について

hirahira10

総合スコア50

Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

Google Analytics

Google AnalyticsはGoogleが開発した無料のウェブ分析のソリューションです。複数のクライアント側のAPIとデータをエクスポートし管理するREST APIも格納されています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

0グッド

1クリップ

投稿2015/04/28 01:55

編集2015/04/28 02:50

iosアプリのアナリティクス導入について公式ページをみながらやってみたのですがどうもうまくいかずに困っています。
https://developers.google.com/analytics/devguides/collection/ios/v3/

エラーなどは出ていないのですが24時間たっても計測がはじまらない状態です(お知らせが下記のままです

ヒットがありません
プロパティ「⚪︎⚪︎⚪︎⚪︎」でヒットが発生していません。
確認待ち | 元に戻す | 詳細

)。

objective-Cの知識がほとんどないので
初心者が見落としやすい部分や気をつけてたほうがいいことなども
ご教授頂けると幸いです。
フレームワークや必要なファイルは全て揃っているとおもいます。

AppDelegate.m

#import "GAI.h"


  • (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 = 20; // Optional: set Logger to VERBOSE for debug information. [[[GAI sharedInstance] logger] setLogLevel:kGAILogLevelVerbose]; // Initialize tracker. Replace with your tracking ID. [[GAI sharedInstance] trackerWithTrackingId:@"トラッキングコード"];

}

TimelineViewController.m

#import "TimelineViewController.h"
#import "AppDelegate.h"
#import "GAITrackedViewController.h"

_________________________
-(void)viewDidAppear:(BOOL)animated
{

[super viewWillAppear:animated]; self.screenName = @"timeline";



}
_________________________
ご指摘いただき上記を下記に変更いたしました

-(void)viewWillAppear:(BOOL)animated
{

[super viewWillAppear:animated]; self.screenName = @"timeline";



}

TimelineViewController.h

#import "GAITrackedViewController.h"

@interface TimelineViewController : GAITrackedViewController <UIWebViewDelegate, UISearchBarDelegate, UIAlertViewDelegate, UIScrollViewDelegate, EGORefreshTableHeaderDelegate>

{
・・・・・・・
}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

こんにちは。

TimelineViewController.mで、レポートで使用するビューの名前を指定している箇所の最初の行ですが、

lang

1- (void)- (void)viewWillAppear:(BOOL)animated {:(BOOL)animated {

hikaruさんの記述では、「viewWillAppear」とすべきところを「viewDidAppear」としていますが、ここに記述した際だけのまちがいでしょうか。

アプリのエラーもなく、Google アナリティクスの公式ページを参照しながら導入しているのであれば、問題はないはずですが……

質問の内容から推測できる問題は上述したソースコード内の一部のまちがいだけだと思われます。

投稿2015/04/28 02:54

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2015/04/28 02:56

回答を書いているうちに、まさにおなじ箇所を指摘している回答が投稿されていたようです。 投稿が削除できませんので、この回答は、無視してください。
hirahira10

2015/04/28 03:00

GeorgeCohtaさん いつもご指導ありがとうございます。 ご指摘いただいた箇所を編集致しましたがまだ計測がはじまらない状態です。 ただいまiOS simulatarで確認をしているのですがこれからですと 計測されないや、計測まで時間がかかるなどありますでしょうか?
退会済みユーザー

退会済みユーザー

2015/04/28 03:02

Googleのアナウンスでは、「データは最大 72 時間ごとのデータ処理後にレポートに反映」するというようなこともいわれていますので、しばらくようすをみるべきかもしれません。
hirahira10

2015/04/28 10:17

GeorgeCohtaさん 再度コードを確認したところ -(void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; self.screenName = @"timeline"; ・ ・ ・ } の self.screenName = @"timeline"にエラーがはかれていました propety 'aaa' not found on object of type 'bbb'とありました 調べてみると bbb型の aaa というプロパティ名の物が見つからない(プロパティ宣言に失敗している)とあったのですがヘッダーファイルで宣言をしろという意味でしょうか? object-cの知識が全くないため宣言の仕方がわからず困っています。 他の宣言をみるに @property (retain, nonatomic) ImplementAPIBussiness *implementAPIBussiness;のような感じで書くのかなくらいです・・・
退会済みユーザー

退会済みユーザー

2015/04/28 11:34

全体がみえていませんので、ただそれだけのエラーメッセージで、ヘッダファイルに宣言が必要かどうか判断できません。 もしかしたら、記述のどこか別のところにクラスとインスタンスの区別ができていない箇所があるのかもしれません。ご承知とは思いますが、クラスはインスタンスの雛形であり、メモリ上にバッファされるのはインスタンスです。 Objective-Cでは、通常、クラスをアッパーケースではじめ、インスタンスをローワーケースではじめることんいなっています。これは、クラスとインスタンスとを混同することをさけるためなのですが、そのあたりをもう一度さらってみる必要があるかもしれません。 必要かどうかわかりませんが、宣言プロパティについては http://takatoshiono.com/blog/archives/448 あたりが参考になるのではないかと思います。 おまりお役に立てていないような気がしますが、現状でお伝えできるのはこのくらいです。 あしからずご了承ください。
退会済みユーザー

退会済みユーザー

2015/04/28 11:54

さしつかえなければ、もう少し詳細なソースコードと、吐き出したエラーメッセージとを提示したうえで、別の質問として新たに投稿したほうが回答が得やすいかもしれません。
退会済みユーザー

退会済みユーザー

2015/04/28 22:51

考えられることとして、もうひとつ…… screenNameに ViewControllerを識別するための文字列を指定するところでエラーを吐き出したということですので、 self.screenName = [NSString stringWithFormat:@"%@", NSStringFromClass([self class])]; と記述して、ViewControllerのクラス名を使用してみてはいかがでしょうか。 こうしておくと、エラーも少なく、コードの使い回しができるのでおすすめです。
退会済みユーザー

退会済みユーザー

2015/04/28 23:02

さらに、もうひとつ…… 試しに、TimelineViewController.hでは、GAITrackedViewControllerを継承した ViewControllerを用意する記述をすればいいはずですので、 #import "GAITrackedViewController.h" @interface TimelineViewController : GAITrackedViewController @end としてみてください。 たびたび失礼しました。
hirahira10

2015/05/01 01:17

GeorgeCohtaさん お返事遅れてしまい申し訳ありません。 GeorgeCohtaさんから頂いたご指導通りに変更したところ無事にエラーが解消されました!ありがとうございます! ただ linker command failed with exit code 1 (use -v to see invocation) という別のエラーがでてしまいまた詰まってしまったのでこちらは また別のページで質問してみたいとおもいます。 いつも本当にありがとうございます
退会済みユーザー

退会済みユーザー

2015/05/01 01:36

とりあえず、最初のエラーは解消されたということで、なによりです。 さて、つづいてのエラー linker command failed with exit code 1 (use -v to see invocation) ですが。 このエラーは、おなじ名前のクラスや変数、メソッドなどが使われている場合に発生することが多いようです。 変数やメソッドの場合はコーディングの途中でアラートがでますので気づきますが、クラスの場合はビルドしたときにエラーを吐きますので、クラスかもしれません。 また、~.hを importするべきところに ~.mを importしている場合にもおなじエラーが発生します。 これは、importするところへ ~.mがコピーされ、おなじクラスが2回コンパイルの対象となってしまうためです。つまり、こちらもクラスの重複に由来するエラーということです。 原因は、もしかしたら、このあたりかもしれません。
hirahira10

2015/05/01 01:53

GeorgeCohtaさん ご指導ありがとうございました。 おかげさまで本当に助かりました。 今importしている部分を全て確認してみたのですが 関係している3つのファイル(AppDelegate.m、TimelineViewController.h 、TimelineViewController.m)では全て.hのファイルをimportしており.mを呼び出している場所はありませんでした。
guest

0

Google アナリティクスのレポートで使うビューの名前の指定を行っているメソッドが違うのではないのでしょうか?

lang

1-(void)viewDidAppear:(BOOL)animated //viewDidAppearではないのではないか? 2{ 3 4 [super viewWillAppear:animated]; 5 self.screenName = @"timeline"; 6789 10} 11

ではなく、

lang

1-(void)viewWillAppear:(BOOL)animated //ここが違う 2{ 3 4 [super viewWillAppear:animated]; 5 self.screenName = @"timeline"; 6789 10} 11

残念ながら私も詳しくは分からないので、完全に推測になります。

投稿2015/04/28 02:37

orange0190

総合スコア1698

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hirahira10

2015/04/28 02:52

ShunsukeIzuiさん ご指導ありがとうございます。 完全に見落としてしまっていましたありがとうございます。 しかしご指摘いただいた通り変更いたしましたが まだ計測はされていない状態です
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問