mirror of
https://github.com/wahyd4/Yep.git
synced 2026-08-09 04:46:35 +10:00
Remove GA
This commit is contained in:
@@ -138,7 +138,6 @@
|
||||
505262121C5205AB00292C6A /* UploadAttachmentOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 505262111C5205AB00292C6A /* UploadAttachmentOperation.swift */; };
|
||||
505262151C522A1E00292C6A /* Show.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 505262131C522A1E00292C6A /* Show.storyboard */; };
|
||||
505262171C522A3D00292C6A /* FeedConversations.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 505262161C522A3D00292C6A /* FeedConversations.storyboard */; };
|
||||
505262241C522BAB00292C6A /* libGoogleAnalyticsServices.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 505262231C522BAB00292C6A /* libGoogleAnalyticsServices.a */; };
|
||||
50535D1A1BCD19AE002FE1A4 /* TouchClosuresView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50535D191BCD19AE002FE1A4 /* TouchClosuresView.swift */; };
|
||||
50535D1D1BCE42BE002FE1A4 /* PickPhotosViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50535D1C1BCE42BE002FE1A4 /* PickPhotosViewController.swift */; };
|
||||
50535D201BCE43ED002FE1A4 /* ImageCacheController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50535D1F1BCE43ED002FE1A4 /* ImageCacheController.swift */; };
|
||||
@@ -510,17 +509,6 @@
|
||||
505262111C5205AB00292C6A /* UploadAttachmentOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = UploadAttachmentOperation.swift; path = Operations/UploadAttachmentOperation.swift; sourceTree = "<group>"; };
|
||||
505262141C522A1E00292C6A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Show.storyboard; sourceTree = "<group>"; };
|
||||
505262161C522A3D00292C6A /* FeedConversations.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = FeedConversations.storyboard; path = ViewControllers/FeedConversations/FeedConversations.storyboard; sourceTree = "<group>"; };
|
||||
505262191C522BAB00292C6A /* GAI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAI.h; sourceTree = "<group>"; };
|
||||
5052621A1C522BAB00292C6A /* GAIDictionaryBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAIDictionaryBuilder.h; sourceTree = "<group>"; };
|
||||
5052621B1C522BAB00292C6A /* GAIEcommerceFields.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAIEcommerceFields.h; sourceTree = "<group>"; };
|
||||
5052621C1C522BAB00292C6A /* GAIEcommerceProduct.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAIEcommerceProduct.h; sourceTree = "<group>"; };
|
||||
5052621D1C522BAB00292C6A /* GAIEcommerceProductAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAIEcommerceProductAction.h; sourceTree = "<group>"; };
|
||||
5052621E1C522BAB00292C6A /* GAIEcommercePromotion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAIEcommercePromotion.h; sourceTree = "<group>"; };
|
||||
5052621F1C522BAB00292C6A /* GAIFields.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAIFields.h; sourceTree = "<group>"; };
|
||||
505262201C522BAB00292C6A /* GAILogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAILogger.h; sourceTree = "<group>"; };
|
||||
505262211C522BAB00292C6A /* GAITrackedViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAITrackedViewController.h; sourceTree = "<group>"; };
|
||||
505262221C522BAB00292C6A /* GAITracker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GAITracker.h; sourceTree = "<group>"; };
|
||||
505262231C522BAB00292C6A /* libGoogleAnalyticsServices.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libGoogleAnalyticsServices.a; sourceTree = "<group>"; };
|
||||
50535D191BCD19AE002FE1A4 /* TouchClosuresView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = TouchClosuresView.swift; path = Views/TouchClosures/TouchClosuresView.swift; sourceTree = "<group>"; };
|
||||
50535D1C1BCE42BE002FE1A4 /* PickPhotosViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = PickPhotosViewController.swift; path = ViewControllers/PickPhotos/PickPhotosViewController.swift; sourceTree = "<group>"; };
|
||||
50535D1F1BCE43ED002FE1A4 /* ImageCacheController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ImageCacheController.swift; path = ViewControllers/PickPhotos/ImageCacheController.swift; sourceTree = "<group>"; };
|
||||
@@ -756,7 +744,6 @@
|
||||
5052620B1C51CDE600292C6A /* libz.tbd in Frameworks */,
|
||||
6AC40E351C47A9060024FC63 /* libsqlite3.tbd in Frameworks */,
|
||||
0AD7EA641AC3ED2A00617758 /* SystemConfiguration.framework in Frameworks */,
|
||||
505262241C522BAB00292C6A /* libGoogleAnalyticsServices.a in Frameworks */,
|
||||
6AC40E311C47A8EE0024FC63 /* CoreData.framework in Frameworks */,
|
||||
0AD7EA681AC3ED3600617758 /* Foundation.framework in Frameworks */,
|
||||
0AAFCFF91AC8CA5B00EB0EF8 /* MobileCoreServices.framework in Frameworks */,
|
||||
@@ -845,7 +832,6 @@
|
||||
0A8F54AD1AB67D11004AD60E /* Yep */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
505262181C522BAB00292C6A /* GoogleAnalytics */,
|
||||
848806B21B7B0230000C5424 /* Yep.entitlements */,
|
||||
0A8F54B01AB67D11004AD60E /* AppDelegate.swift */,
|
||||
0AD7EA581AC3EAF300617758 /* Yep-Bridging-Header.h */,
|
||||
@@ -1580,24 +1566,6 @@
|
||||
name = Operations;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
505262181C522BAB00292C6A /* GoogleAnalytics */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
505262191C522BAB00292C6A /* GAI.h */,
|
||||
5052621A1C522BAB00292C6A /* GAIDictionaryBuilder.h */,
|
||||
5052621B1C522BAB00292C6A /* GAIEcommerceFields.h */,
|
||||
5052621C1C522BAB00292C6A /* GAIEcommerceProduct.h */,
|
||||
5052621D1C522BAB00292C6A /* GAIEcommerceProductAction.h */,
|
||||
5052621E1C522BAB00292C6A /* GAIEcommercePromotion.h */,
|
||||
5052621F1C522BAB00292C6A /* GAIFields.h */,
|
||||
505262201C522BAB00292C6A /* GAILogger.h */,
|
||||
505262211C522BAB00292C6A /* GAITrackedViewController.h */,
|
||||
505262221C522BAB00292C6A /* GAITracker.h */,
|
||||
505262231C522BAB00292C6A /* libGoogleAnalyticsServices.a */,
|
||||
);
|
||||
path = GoogleAnalytics;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
50535D1B1BCD19B4002FE1A4 /* TouchClosures */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
|
||||
@@ -111,13 +111,6 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
|
||||
} else {
|
||||
startShowStory()
|
||||
}
|
||||
|
||||
|
||||
// Optional: configure GAI options.
|
||||
let gai = GAI.sharedInstance()
|
||||
gai.trackerWithTrackingId("UA-69805568-2")
|
||||
gai.trackUncaughtExceptions = true // report uncaught exceptions
|
||||
gai.logger.logLevel = GAILogLevel.Verbose // remove before app release
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
@@ -163,21 +163,13 @@ extension UINavigationBar {
|
||||
}
|
||||
|
||||
func GoogleAnalyticsTrackView(name: String) {
|
||||
let tracker = GAI.sharedInstance().defaultTracker
|
||||
tracker.set(kGAIScreenName, value: name)
|
||||
|
||||
let builder = GAIDictionaryBuilder.createScreenView()
|
||||
tracker.send(builder.build() as [NSObject : AnyObject])
|
||||
|
||||
}
|
||||
|
||||
func GoogleAnalyticsTrackEvent(action: String, label: String, value: NSNumber) {
|
||||
let tracker = GAI.sharedInstance().defaultTracker
|
||||
let data = GAIDictionaryBuilder.createEventWithCategory("UI Action", action: action, label: label, value: value)
|
||||
tracker.send(data.build() as [NSObject : AnyObject])
|
||||
|
||||
}
|
||||
|
||||
func GoogleAnalyticsTrackSocial(network: String, action: String, target: String) {
|
||||
let tracker = GAI.sharedInstance().defaultTracker
|
||||
let data = GAIDictionaryBuilder.createSocialWithNetwork(network, action: action, target: target)
|
||||
tracker.send(data.build() as [NSObject : AnyObject])
|
||||
|
||||
}
|
||||
@@ -1,192 +0,0 @@
|
||||
/*!
|
||||
@header GAI.h
|
||||
@abstract Google Analytics iOS SDK Header
|
||||
@version 3.15
|
||||
@copyright Copyright 2015 Google Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
#import "GAILogger.h"
|
||||
#import "GAITrackedViewController.h"
|
||||
#import "GAITracker.h"
|
||||
|
||||
typedef NS_ENUM(NSUInteger, GAIDispatchResult) {
|
||||
kGAIDispatchNoData,
|
||||
kGAIDispatchGood,
|
||||
kGAIDispatchError
|
||||
};
|
||||
|
||||
/*! Google Analytics product string. */
|
||||
extern NSString *const kGAIProduct;
|
||||
|
||||
/*! Google Analytics version string. */
|
||||
extern NSString *const kGAIVersion;
|
||||
|
||||
/*!
|
||||
NSError objects returned by the Google Analytics SDK may have this error domain
|
||||
to indicate that the error originated in the Google Analytics SDK.
|
||||
*/
|
||||
extern NSString *const kGAIErrorDomain;
|
||||
|
||||
/*! Google Analytics error codes. */
|
||||
typedef enum {
|
||||
// This error code indicates that there was no error. Never used.
|
||||
kGAINoError = 0,
|
||||
|
||||
// This error code indicates that there was a database-related error.
|
||||
kGAIDatabaseError,
|
||||
|
||||
// This error code indicates that there was a network-related error.
|
||||
kGAINetworkError,
|
||||
} GAIErrorCode;
|
||||
|
||||
/*!
|
||||
Google Analytics iOS top-level class. Provides facilities to create trackers
|
||||
and set behaviorial flags.
|
||||
*/
|
||||
@interface GAI : NSObject
|
||||
|
||||
/*!
|
||||
For convenience, this class exposes a default tracker instance.
|
||||
This is initialized to `nil` and will be set to the first tracker that is
|
||||
instantiated in trackerWithTrackingId:. It may be overridden as desired.
|
||||
|
||||
The GAITrackedViewController class will, by default, use this tracker instance.
|
||||
*/
|
||||
@property(nonatomic, assign) id<GAITracker> defaultTracker;
|
||||
|
||||
/*!
|
||||
The GAILogger to use.
|
||||
*/
|
||||
@property(nonatomic, retain) id<GAILogger> logger;
|
||||
|
||||
/*!
|
||||
When this is true, no tracking information will be gathered; tracking calls
|
||||
will effectively become no-ops. When set to true, all tracking information that
|
||||
has not yet been submitted. The value of this flag will be persisted
|
||||
automatically by the SDK. Developers can optionally use this flag to implement
|
||||
an opt-out setting in the app to allows users to opt out of Google Analytics
|
||||
tracking.
|
||||
|
||||
This is set to `NO` the first time the Google Analytics SDK is used on a
|
||||
device, and is persisted thereafter.
|
||||
*/
|
||||
@property(nonatomic, assign) BOOL optOut;
|
||||
|
||||
/*!
|
||||
If this value is positive, tracking information will be automatically
|
||||
dispatched every dispatchInterval seconds. Otherwise, tracking information must
|
||||
be sent manually by calling dispatch.
|
||||
|
||||
By default, this is set to `120`, which indicates tracking information should
|
||||
be dispatched automatically every 120 seconds.
|
||||
*/
|
||||
@property(nonatomic, assign) NSTimeInterval dispatchInterval;
|
||||
|
||||
/*!
|
||||
When set to true, the SDK will record the currently registered uncaught
|
||||
exception handler, and then register an uncaught exception handler which tracks
|
||||
the exceptions that occurred using defaultTracker. If defaultTracker is not
|
||||
`nil`, this function will track the exception on the tracker and attempt to
|
||||
dispatch any outstanding tracking information for 5 seconds. It will then call
|
||||
the previously registered exception handler, if any. When set back to false,
|
||||
the previously registered uncaught exception handler will be restored.
|
||||
*/
|
||||
@property(nonatomic, assign) BOOL trackUncaughtExceptions;
|
||||
|
||||
/*!
|
||||
When this is 'YES', no tracking information will be sent. Defaults to 'NO'.
|
||||
*/
|
||||
@property(nonatomic, assign) BOOL dryRun;
|
||||
|
||||
/*! Get the shared instance of the Google Analytics for iOS class. */
|
||||
+ (GAI *)sharedInstance;
|
||||
|
||||
/*!
|
||||
Creates or retrieves a GAITracker implementation with the specified name and
|
||||
tracking ID. If the tracker for the specified name does not already exist, then
|
||||
it will be created and returned; otherwise, the existing tracker will be
|
||||
returned. If the existing tracker for the respective name has a different
|
||||
tracking ID, that tracking ID is not changed by this method. If defaultTracker
|
||||
is not set, it will be set to the tracker instance returned here.
|
||||
|
||||
@param name The name of this tracker. Must not be `nil` or empty.
|
||||
|
||||
@param trackingID The tracking ID to use for this tracker. It should be of
|
||||
the form `UA-xxxxx-y`.
|
||||
|
||||
@return A GAITracker associated with the specified name. The tracker
|
||||
can be used to send tracking data to Google Analytics. The first time this
|
||||
method is called with a particular name, the tracker for that name will be
|
||||
returned, and subsequent calls with the same name will return the same
|
||||
instance. It is not necessary to retain the tracker because the tracker will be
|
||||
retained internally by the library.
|
||||
|
||||
If an error occurs or the name is not valid, this method will return
|
||||
`nil`.
|
||||
*/
|
||||
- (id<GAITracker>)trackerWithName:(NSString *)name
|
||||
trackingId:(NSString *)trackingId;
|
||||
|
||||
/*!
|
||||
Creates or retrieves a GAITracker implementation with name equal to
|
||||
the specified tracking ID. If the tracker for the respective name does not
|
||||
already exist, it is created, has it's tracking ID set to |trackingId|,
|
||||
and is returned; otherwise, the existing tracker is returned. If the existing
|
||||
tracker for the respective name has a different tracking ID, that tracking ID
|
||||
is not changed by this method. If defaultTracker is not set, it is set to the
|
||||
tracker instance returned here.
|
||||
|
||||
@param trackingID The tracking ID to use for this tracker. It should be of
|
||||
the form `UA-xxxxx-y`. The name of the tracker will be the same as trackingID.
|
||||
|
||||
@return A GAITracker associated with the specified trackingID. The tracker
|
||||
can be used to send tracking data to Google Analytics. The first time this
|
||||
method is called with a particular trackingID, the tracker for the respective
|
||||
name will be returned, and subsequent calls with the same trackingID
|
||||
will return the same instance. It is not necessary to retain the tracker
|
||||
because the tracker will be retained internally by the library.
|
||||
|
||||
If an error occurs or the trackingId is not valid, this method will return
|
||||
`nil`.
|
||||
*/
|
||||
- (id<GAITracker>)trackerWithTrackingId:(NSString *)trackingId;
|
||||
|
||||
/*!
|
||||
Remove a tracker from the trackers dictionary. If it is the default tracker,
|
||||
clears the default tracker as well.
|
||||
|
||||
@param name The name of the tracker.
|
||||
*/
|
||||
- (void)removeTrackerByName:(NSString *)name;
|
||||
|
||||
/*!
|
||||
Dispatches any pending tracking information.
|
||||
|
||||
Note that this does not have any effect on dispatchInterval, and can be used in
|
||||
conjunction with periodic dispatch. */
|
||||
- (void)dispatch;
|
||||
|
||||
/*!
|
||||
Dispatches the next tracking beacon in the queue, calling completionHandler when
|
||||
the tracking beacon has either been sent (returning kGAIDispatchGood) or an error has resulted
|
||||
(returning kGAIDispatchError). If there is no network connection or there is no data to send,
|
||||
kGAIDispatchNoData is returned.
|
||||
|
||||
Note that calling this method with a non-nil completionHandler disables periodic dispatch.
|
||||
Periodic dispatch can be reenabled by setting the dispatchInterval to a positive number when
|
||||
the app resumes from the background.
|
||||
|
||||
Calling this method with a nil completionHandler is the same as calling the dispatch
|
||||
above.
|
||||
|
||||
This method can be used for background data fetching in iOS 7.0 or later. It would be wise to
|
||||
call this when the application is exiting to initiate the submission of any unsubmitted
|
||||
tracking information.
|
||||
|
||||
@param completionHandler The block to run after a single dispatch request. The GAIDispatchResult
|
||||
param indicates whether the dispatch succeeded, had an error, or had no hits to dispatch.
|
||||
*/
|
||||
- (void)dispatchWithCompletionHandler:(void (^)(GAIDispatchResult result))completionHandler;
|
||||
@end
|
||||
@@ -1,217 +0,0 @@
|
||||
/*!
|
||||
@header GAIDictionaryBuilder.h
|
||||
@abstract Google Analytics iOS SDK Hit Format Header
|
||||
@copyright Copyright 2013 Google Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
#import "GAIEcommerceProduct.h"
|
||||
#import "GAIEcommerceProductAction.h"
|
||||
#import "GAIEcommercePromotion.h"
|
||||
|
||||
/*!
|
||||
* Helper class to build a dictionary of hit parameters and values.
|
||||
* <br>
|
||||
* Examples:
|
||||
* <code>
|
||||
* id<GAITracker> t = // get a tracker.
|
||||
* [t send:[[[GAIDictionaryBuilder createEventWithCategory:@"EventCategory"
|
||||
* action:@"EventAction"
|
||||
* label:nil
|
||||
* value:nil]
|
||||
* set:@"dimension1" forKey:[GAIFields customDimensionForIndex:1]] build]];
|
||||
* </code>
|
||||
* This will send an event hit type with the specified parameters
|
||||
* and a custom dimension parameter.
|
||||
* <br>
|
||||
* If you want to send a parameter with all hits, set it on GAITracker directly.
|
||||
* <code>
|
||||
* [t set:kGAIScreenName value:@"Home"];
|
||||
* [t send:[[GAIDictionaryBuilder createSocialWithNetwork:@"Google+"
|
||||
* action:@"PlusOne"
|
||||
* target:@"SOME_URL"] build]];
|
||||
* [t send:[[GAIDictionaryBuilder createSocialWithNetwork:@"Google+"
|
||||
* action:@"Share"
|
||||
* target:@"SOME_POST"] build]];
|
||||
* [t send:[[GAIDictionaryBuilder createSocialWithNetwork:@"Google+"
|
||||
* action:@"HangOut"
|
||||
* target:@"SOME_CIRCLE"]
|
||||
* build]];
|
||||
* </code>
|
||||
* You can override a value set on the tracker by adding it to the dictionary.
|
||||
* <code>
|
||||
* [t set:kGAIScreenName value:@"Home"];
|
||||
* [t send:...];
|
||||
* [t send[[[GAIDictionaryBuilder createEventWithCategory:@"click"
|
||||
* action:@"popup"
|
||||
* label:nil
|
||||
* value:nil]
|
||||
* set:@"popup title" forKey:kGAIScreenName] build]];
|
||||
* </code>
|
||||
* The values set via [GAIDictionaryBuilder set] or
|
||||
* [GAIDictionaryBuilder setAll] will override any existing values in the
|
||||
* GAIDictionaryBuilder object (i.e. initialized by
|
||||
* [GAIDictionaryBuilder createXYZ]). e.g.
|
||||
* <code>
|
||||
* GAIDictionaryBuilder *m =
|
||||
* GAIDictionaryBuilder createTimingWithCategory:@"category"
|
||||
* interval:@0
|
||||
* name:@"name"
|
||||
* label:nil];
|
||||
* [t send:[m.set:@"10" forKey:kGAITimingVar] build];
|
||||
* [t send:[m.set:@"20" forKey:kGAITimingVar] build];
|
||||
* </code>
|
||||
*/
|
||||
@interface GAIDictionaryBuilder : NSObject
|
||||
|
||||
- (GAIDictionaryBuilder *)set:(NSString *)value
|
||||
forKey:(NSString *)key;
|
||||
|
||||
/*!
|
||||
* Copies all the name-value pairs from params into this object, ignoring any
|
||||
* keys that are not NSString and any values that are neither NSString or
|
||||
* NSNull.
|
||||
*/
|
||||
- (GAIDictionaryBuilder *)setAll:(NSDictionary *)params;
|
||||
|
||||
/*!
|
||||
* Returns the value for the input parameter paramName, or nil if paramName
|
||||
* is not present.
|
||||
*/
|
||||
- (NSString *)get:(NSString *)paramName;
|
||||
|
||||
/*!
|
||||
* Return an NSMutableDictionary object with all the parameters set in this
|
||||
*/
|
||||
- (NSMutableDictionary *)build;
|
||||
|
||||
/*!
|
||||
* Parses and translates utm campaign parameters to analytics campaign param
|
||||
* and returns them as a map.
|
||||
*
|
||||
* @param params url containing utm campaign parameters.
|
||||
*
|
||||
* Valid campaign parameters are:
|
||||
* <ul>
|
||||
* <li>utm_id</li>
|
||||
* <li>utm_campaign</li>
|
||||
* <li>utm_content</li>
|
||||
* <li>utm_medium</li>
|
||||
* <li>utm_source</li>
|
||||
* <li>utm_term</li>
|
||||
* <li>dclid</li>
|
||||
* <li>gclid</li>
|
||||
* <li>gmob_t</li>
|
||||
* <li>aclid</li>
|
||||
* <li>anid</li>
|
||||
* </ul>
|
||||
* <p>
|
||||
* Example:
|
||||
* http://my.site.com/index.html?utm_campaign=wow&utm_source=source
|
||||
* utm_campaign=wow&utm_source=source.
|
||||
* <p>
|
||||
* For more information on auto-tagging, see
|
||||
* http://support.google.com/googleanalytics/bin/answer.py?hl=en&answer=55590
|
||||
* <p>
|
||||
* For more information on manual tagging, see
|
||||
* http://support.google.com/googleanalytics/bin/answer.py?hl=en&answer=55518
|
||||
*/
|
||||
- (GAIDictionaryBuilder *)setCampaignParametersFromUrl:(NSString *)urlString;
|
||||
|
||||
/*!
|
||||
Returns a GAIDictionaryBuilder object with parameters specific to an appview
|
||||
hit.
|
||||
|
||||
Note that using this method will not set the screen name for followon hits. To
|
||||
do that you need to call set:kGAIDescription value:<screenName> on the
|
||||
GAITracker instance.
|
||||
|
||||
This method is deprecated. Use createScreenView instead.
|
||||
*/
|
||||
+ (GAIDictionaryBuilder *)createAppView DEPRECATED_MSG_ATTRIBUTE("Use createScreenView instead.");
|
||||
|
||||
/*!
|
||||
Returns a GAIDictionaryBuilder object with parameters specific to a screenview
|
||||
hit.
|
||||
|
||||
Note that using this method will not set the screen name for followon hits. To
|
||||
do that you need to call set:kGAIDescription value:<screenName> on the
|
||||
GAITracker instance.
|
||||
*/
|
||||
+ (GAIDictionaryBuilder *)createScreenView;
|
||||
|
||||
/*!
|
||||
Returns a GAIDictionaryBuilder object with parameters specific to an event hit.
|
||||
*/
|
||||
+ (GAIDictionaryBuilder *)createEventWithCategory:(NSString *)category
|
||||
action:(NSString *)action
|
||||
label:(NSString *)label
|
||||
value:(NSNumber *)value;
|
||||
|
||||
/*!
|
||||
Returns a GAIDictionaryBuilder object with parameters specific to an exception
|
||||
hit.
|
||||
*/
|
||||
+ (GAIDictionaryBuilder *)createExceptionWithDescription:(NSString *)description
|
||||
withFatal:(NSNumber *)fatal;
|
||||
|
||||
/*!
|
||||
Returns a GAIDictionaryBuilder object with parameters specific to an item hit.
|
||||
*/
|
||||
+ (GAIDictionaryBuilder *)createItemWithTransactionId:(NSString *)transactionId
|
||||
name:(NSString *)name
|
||||
sku:(NSString *)sku
|
||||
category:(NSString *)category
|
||||
price:(NSNumber *)price
|
||||
quantity:(NSNumber *)quantity
|
||||
currencyCode:(NSString *)currencyCode;
|
||||
|
||||
/*!
|
||||
Returns a GAIDictionaryBuilder object with parameters specific to a social hit.
|
||||
*/
|
||||
+ (GAIDictionaryBuilder *)createSocialWithNetwork:(NSString *)network
|
||||
action:(NSString *)action
|
||||
target:(NSString *)target;
|
||||
|
||||
/*!
|
||||
Returns a GAIDictionaryBuilder object with parameters specific to a timing hit.
|
||||
*/
|
||||
+ (GAIDictionaryBuilder *)createTimingWithCategory:(NSString *)category
|
||||
interval:(NSNumber *)intervalMillis
|
||||
name:(NSString *)name
|
||||
label:(NSString *)label;
|
||||
|
||||
/*!
|
||||
Returns a GAIDictionaryBuilder object with parameters specific to a transaction
|
||||
hit.
|
||||
*/
|
||||
+ (GAIDictionaryBuilder *)createTransactionWithId:(NSString *)transactionId
|
||||
affiliation:(NSString *)affiliation
|
||||
revenue:(NSNumber *)revenue
|
||||
tax:(NSNumber *)tax
|
||||
shipping:(NSNumber *)shipping
|
||||
currencyCode:(NSString *)currencyCode;
|
||||
|
||||
/*!
|
||||
Set the product action field for this hit.
|
||||
*/
|
||||
- (GAIDictionaryBuilder *)setProductAction:(GAIEcommerceProductAction *)productAction;
|
||||
|
||||
/*!
|
||||
Adds a product to this hit.
|
||||
*/
|
||||
- (GAIDictionaryBuilder *)addProduct:(GAIEcommerceProduct *)product;
|
||||
|
||||
/*!
|
||||
Add a product impression to this hit.
|
||||
*/
|
||||
- (GAIDictionaryBuilder *)addProductImpression:(GAIEcommerceProduct *)product
|
||||
impressionList:(NSString *)name
|
||||
impressionSource:(NSString *)source;
|
||||
|
||||
/*!
|
||||
Add a promotion to this hit.
|
||||
*/
|
||||
- (GAIDictionaryBuilder *)addPromotion:(GAIEcommercePromotion *)promotion;
|
||||
@end
|
||||
@@ -1,124 +0,0 @@
|
||||
/*!
|
||||
@header GAIEcommerceFields.h
|
||||
@abstract Google Analytics iOS SDK Ecommerce Hit Format Header
|
||||
@copyright Copyright 2014 Google Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
/*!
|
||||
This class provides several fields and methods useful as wire format parameters for
|
||||
Enhanced Ecommerce. See the online developer guides for Enhanced Ecommerce for details
|
||||
on how to use the Enhanced Ecommerce features.
|
||||
*/
|
||||
|
||||
// Enhanced Ecommerce Product fields
|
||||
extern NSString *const kGAIProductId;
|
||||
extern NSString *const kGAIProductName;
|
||||
extern NSString *const kGAIProductBrand;
|
||||
extern NSString *const kGAIProductCategory;
|
||||
extern NSString *const kGAIProductVariant;
|
||||
extern NSString *const kGAIProductPrice;
|
||||
extern NSString *const kGAIProductQuantity;
|
||||
extern NSString *const kGAIProductCouponCode;
|
||||
extern NSString *const kGAIProductPosition;
|
||||
|
||||
extern NSString *const kGAIProductAction;
|
||||
|
||||
// product action values
|
||||
extern NSString *const kGAIPADetail;
|
||||
extern NSString *const kGAIPAClick;
|
||||
extern NSString *const kGAIPAAdd;
|
||||
extern NSString *const kGAIPARemove;
|
||||
extern NSString *const kGAIPACheckout;
|
||||
extern NSString *const kGAIPACheckoutOption;
|
||||
extern NSString *const kGAIPAPurchase;
|
||||
extern NSString *const kGAIPARefund;
|
||||
|
||||
// product action fields
|
||||
// used for 'purchase' and 'refund' actions
|
||||
extern NSString *const kGAIPATransactionId;
|
||||
extern NSString *const kGAIPAAffiliation;
|
||||
extern NSString *const kGAIPARevenue;
|
||||
extern NSString *const kGAIPATax;
|
||||
extern NSString *const kGAIPAShipping;
|
||||
extern NSString *const kGAIPACouponCode;
|
||||
// used for 'checkout' action
|
||||
extern NSString *const kGAICheckoutStep;
|
||||
extern NSString *const kGAICheckoutOption;
|
||||
// used for 'detail' and 'click' actions
|
||||
extern NSString *const kGAIProductActionList;
|
||||
extern NSString *const kGAIProductListSource;
|
||||
|
||||
// Enhanced Ecommerce Impressions fields
|
||||
extern NSString *const kGAIImpressionName;
|
||||
extern NSString *const kGAIImpressionListSource;
|
||||
extern NSString *const kGAIImpressionProduct;
|
||||
extern NSString *const kGAIImpressionProductId;
|
||||
extern NSString *const kGAIImpressionProductName;
|
||||
extern NSString *const kGAIImpressionProductBrand;
|
||||
extern NSString *const kGAIImpressionProductCategory;
|
||||
extern NSString *const kGAIImpressionProductVariant;
|
||||
extern NSString *const kGAIImpressionProductPosition;
|
||||
extern NSString *const kGAIImpressionProductPrice;
|
||||
|
||||
// Enhanced Ecommerce Promotions fields
|
||||
extern NSString *const kGAIPromotionId;
|
||||
extern NSString *const kGAIPromotionName;
|
||||
extern NSString *const kGAIPromotionCreative;
|
||||
extern NSString *const kGAIPromotionPosition;
|
||||
|
||||
// Promotion actions
|
||||
extern NSString *const kGAIPromotionAction;
|
||||
extern NSString *const kGAIPromotionView;
|
||||
extern NSString *const kGAIPromotionClick;
|
||||
|
||||
@interface GAIEcommerceFields : NSObject
|
||||
|
||||
/*!
|
||||
Generates an enhanced ecommerce product field. Note that field names generated by
|
||||
customDimensionForIndex and customMetricForIndex can be used as suffixes.
|
||||
|
||||
@param index the index of the product
|
||||
@param suffix the product field suffix (such as kGAIProductPrice).
|
||||
|
||||
@return an NSString representing the product field parameter
|
||||
*/
|
||||
+ (NSString *)productFieldForIndex:(NSUInteger)index suffix:(NSString *)suffix;
|
||||
|
||||
/*!
|
||||
Genrates an enhanced ecommerce impression list field name with an index. The return value of
|
||||
this method should also be used as input to the productImpressionForList method below.
|
||||
|
||||
@param index the index of the impression list
|
||||
|
||||
@return an NSString representing the impression list parameter
|
||||
*/
|
||||
+ (NSString *)impressionListForIndex:(NSUInteger)index;
|
||||
|
||||
/*!
|
||||
Generates an enhanced ecommerce product impression field with the impression list, product index
|
||||
and product suffix as parameters. The output of the method impressionListForIndex above should be
|
||||
used as the input list for this method. The output of customDimensionForIndex and
|
||||
customMetricForIndex can be used as suffixes.
|
||||
|
||||
@param list the impression list for this product impression
|
||||
@param index the index of this product in the impression list
|
||||
@param suffix the product impression suffix for this field
|
||||
|
||||
@return an NSString representing this product impression field parameter
|
||||
*/
|
||||
+ (NSString *)productImpressionForList:(NSString *)list
|
||||
index:(NSUInteger)index
|
||||
suffix:(NSString *)Suffix;
|
||||
|
||||
/*!
|
||||
Generates an enhanced ecommerce promotion field with an index and suffix.
|
||||
|
||||
@param index the index of the promotion
|
||||
@param suffix the promotion suffix (such as kGAIPromotionId)
|
||||
|
||||
@return an NSString representing this promotion field paramter
|
||||
*/
|
||||
+ (NSString *)promotionForIndex:(NSUInteger)index suffix:(NSString *)suffix;
|
||||
@end
|
||||
@@ -1,102 +0,0 @@
|
||||
/*!
|
||||
@header GAIEcommerceProduct.h
|
||||
@abstract Google Analytics iOS SDK Hit Format Header
|
||||
@copyright Copyright 2014 Google Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
/*!
|
||||
* Class to construct product related information for a Google Analytics beacon. Use this class to
|
||||
* report information about products sold by merchants or impressions of products seen by users.
|
||||
* Instances of this class can be associated with both Product Actions and Product
|
||||
* Impression Lists.
|
||||
* <br>
|
||||
* Typical usage:
|
||||
* <code>
|
||||
* [tracker set:kGAIScreenName value:@"MyScreen"];
|
||||
* GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createScreenView];
|
||||
* GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init];
|
||||
* [product setId:@""PID-1234""];
|
||||
* [product setName:@"Space Monkeys!"];
|
||||
* [product setPrice:@100];
|
||||
* [product setQuantity:@2];
|
||||
* [builder addProductImpression:product impressionList:@"listName"];
|
||||
* [tracker send:[builder build]];
|
||||
* </code>
|
||||
*/
|
||||
@interface GAIEcommerceProduct : NSObject
|
||||
|
||||
/*!
|
||||
Sets the id that is used to identify a product in GA reports.
|
||||
*/
|
||||
- (GAIEcommerceProduct *)setId:(NSString *)productId;
|
||||
|
||||
/*!
|
||||
Sets the name that is used to indentify the product in GA reports.
|
||||
*/
|
||||
- (GAIEcommerceProduct *)setName:(NSString *)productName;
|
||||
|
||||
/*!
|
||||
Sets the brand associated with the product in GA reports.
|
||||
*/
|
||||
- (GAIEcommerceProduct *)setBrand:(NSString *)productBrand;
|
||||
|
||||
/*!
|
||||
Sets the category associated with the product in GA reports.
|
||||
*/
|
||||
- (GAIEcommerceProduct *)setCategory:(NSString *)productCategory;
|
||||
|
||||
/*!
|
||||
Sets the variant of the product.
|
||||
*/
|
||||
- (GAIEcommerceProduct *)setVariant:(NSString *)productVariant;
|
||||
|
||||
/*!
|
||||
Sets the price of the product.
|
||||
*/
|
||||
- (GAIEcommerceProduct *)setPrice:(NSNumber *)productPrice;
|
||||
|
||||
/*!
|
||||
Sets the quantity of the product. This field is usually not used with product impressions.
|
||||
*/
|
||||
- (GAIEcommerceProduct *)setQuantity:(NSNumber *)productQuantity;
|
||||
|
||||
/*!
|
||||
Sets the coupon code associated with the product. This field is usually not used with product
|
||||
impressions.
|
||||
*/
|
||||
- (GAIEcommerceProduct *)setCouponCode:(NSString *)productCouponCode;
|
||||
|
||||
/*!
|
||||
Sets the position of the product on the screen/product impression list, etc.
|
||||
*/
|
||||
- (GAIEcommerceProduct *)setPosition:(NSNumber *)productPosition;
|
||||
|
||||
/*!
|
||||
Sets the custom dimension associated with this product.
|
||||
*/
|
||||
- (GAIEcommerceProduct *)setCustomDimension:(NSUInteger)index value:(NSString *)value;
|
||||
|
||||
/*!
|
||||
Sets the custom metric associated with this product.
|
||||
*/
|
||||
- (GAIEcommerceProduct *)setCustomMetric:(NSUInteger)index value:(NSNumber *)value;
|
||||
|
||||
/*!
|
||||
Builds an NSDictionary of fields stored in this instance suitable for a product action. The
|
||||
index parameter is the index of this product in the product action list.
|
||||
<br>
|
||||
Normally, users will have no need to call this method.
|
||||
*/
|
||||
- (NSDictionary *)buildWithIndex:(NSUInteger)index;
|
||||
|
||||
/*!
|
||||
Builds an NSDictionary of fields stored in this instance suitable for an impression list. The
|
||||
lIndex parameter is the index of the product impression list while the index parameter is the
|
||||
index of this product in that impression list.
|
||||
<br>
|
||||
Normally, users will have no need to call this method.
|
||||
*/
|
||||
- (NSDictionary *)buildWithListIndex:(NSUInteger)lIndex index:(NSUInteger)index;
|
||||
@end
|
||||
@@ -1,107 +0,0 @@
|
||||
/*!
|
||||
@header GAIProductAction.h
|
||||
@abstract Google Analytics iOS SDK Hit Format Header
|
||||
@copyright Copyright 2014 Google Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
/*!
|
||||
* Class to construct transaction/checkout or other product interaction related information for a
|
||||
* Google Analytics hit. Use this class to report information about products sold, viewed or
|
||||
* refunded. This class is intended to be used with GAIDictionaryBuilder.
|
||||
* <br>
|
||||
* Typical usage:
|
||||
* <code>
|
||||
* [tracker set:kGAIScreenName value:@"MyScreen"];
|
||||
* GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createScreenView];
|
||||
* GAIEcommerceProductAction *action = [[GAIEcommerceProductAction alloc] init];
|
||||
* [action setAction:kGAIPAPurchase];
|
||||
* [action setTransactionId:@"TT-1234"];
|
||||
* [action setRevenue:@3.14];
|
||||
* [action setCouponCode:@"EXTRA100"];
|
||||
* [builder setProductAction:action];
|
||||
* GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init];
|
||||
* [product setId:@""PID-1234""];
|
||||
* [product setName:@"Space Monkeys!"];
|
||||
* [product setPrice:@100];
|
||||
* [product setQuantity:@2];
|
||||
* [builder addProduct:product];
|
||||
* [tracker send:[builder build]];
|
||||
* </code>
|
||||
*/
|
||||
@interface GAIEcommerceProductAction : NSObject
|
||||
|
||||
/*!
|
||||
Sets the product action field for this product action. Valid values can be found in
|
||||
GAIEcommerceFields.h under "product action values".
|
||||
*/
|
||||
- (GAIEcommerceProductAction *)setAction:(NSString *)productAction;
|
||||
|
||||
/*!
|
||||
The unique id associated with the transaction. This value is used for kGAIPAPurchase and
|
||||
kGAIPARefund product actions.
|
||||
*/
|
||||
- (GAIEcommerceProductAction *)setTransactionId:(NSString *)transactionId;
|
||||
|
||||
/*!
|
||||
Sets the transaction's affiliation value. This value is used for kGAIPAPurchase and
|
||||
kGAIPARefund product actions.
|
||||
*/
|
||||
- (GAIEcommerceProductAction *)setAffiliation:(NSString *)affiliation;
|
||||
|
||||
/*!
|
||||
Sets the transaction's total revenue. This value is used for kGAIPAPurchase and kGAIPARefund
|
||||
product actions.
|
||||
*/
|
||||
- (GAIEcommerceProductAction *)setRevenue:(NSNumber *)revenue;
|
||||
|
||||
/*!
|
||||
Sets the transaction's total tax. This value is used for kGAIPAPurchase and kGAIPARefund
|
||||
product actions.
|
||||
*/
|
||||
- (GAIEcommerceProductAction *)setTax:(NSNumber *)tax;
|
||||
|
||||
/*!
|
||||
Sets the transaction's total shipping costs. This value is used for kGAIPAPurchase and
|
||||
kGAIPARefund product actions.
|
||||
*/
|
||||
- (GAIEcommerceProductAction *)setShipping:(NSNumber *)shipping;
|
||||
|
||||
/*!
|
||||
Sets the coupon code used in this transaction. This value is used for kGAIPAPurchase and
|
||||
kGAIPARefund product actions.
|
||||
*/
|
||||
- (GAIEcommerceProductAction *)setCouponCode:(NSString *)couponCode;
|
||||
|
||||
/*!
|
||||
Sets the checkout process's progress. This value is used for kGAICheckout and
|
||||
kGAICheckoutOptions product actions.
|
||||
*/
|
||||
- (GAIEcommerceProductAction *)setCheckoutStep:(NSNumber *)checkoutStep;
|
||||
|
||||
/*!
|
||||
Sets the option associated with the checkout. This value is used for kGAICheckout and
|
||||
kGAICheckoutOptions product actions.
|
||||
*/
|
||||
- (GAIEcommerceProductAction *)setCheckoutOption:(NSString *)checkoutOption;
|
||||
|
||||
/*!
|
||||
Sets the list name associated with the products in Google Analytics beacons. This value is
|
||||
used in kGAIPADetail and kGAIPAClick product actions.
|
||||
*/
|
||||
- (GAIEcommerceProductAction *)setProductActionList:(NSString *)productActionList;
|
||||
|
||||
/*!
|
||||
Sets the list source name associated with the products in Google Analytics beacons. This value
|
||||
is used in kGAIPADetail and kGAIPAClick product actions.
|
||||
*/
|
||||
- (GAIEcommerceProductAction *)setProductListSource:(NSString *)productListSource;
|
||||
|
||||
/*!
|
||||
Builds an NSDictionary of fields stored in this instance representing this product action.
|
||||
<br>
|
||||
Normally, users will have no need to call this method.
|
||||
*/
|
||||
- (NSDictionary *)build;
|
||||
@end
|
||||
@@ -1,54 +0,0 @@
|
||||
/*!
|
||||
@header GAIEcommercePromotion.h
|
||||
@abstract Google Analytics iOS SDK Hit Format Header
|
||||
@copyright Copyright 2014 Google Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
/*!
|
||||
* Class to construct promotion related fields for Google Analytics hits. The fields from this class
|
||||
* can be used to represent internal promotions that run within an app, such as banners, banner ads
|
||||
* etc.
|
||||
*
|
||||
* Typical usage:
|
||||
* <code>
|
||||
* GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createScreenView];
|
||||
* GAIEcommercePromotion *promotion = [[GAIEcommercePromotion alloc] init];
|
||||
* [promotion setId:@"PROMO-ID1234"];
|
||||
* [promotion setName:@"Home screen banner"];
|
||||
* [builder set:kGAIPromotionClick forKey:kGAIPromotionAction];
|
||||
* [builder addPromotion:promotion];
|
||||
* [tracker send:builder.build]];
|
||||
* </code>
|
||||
*/
|
||||
@interface GAIEcommercePromotion : NSObject
|
||||
|
||||
/*!
|
||||
Sets the id that is used to identify a promotion in GA reports.
|
||||
*/
|
||||
- (GAIEcommercePromotion *)setId:(NSString *)pid;
|
||||
|
||||
/*!
|
||||
Sets the name that is used to identify a promotion in GA reports.
|
||||
*/
|
||||
- (GAIEcommercePromotion *)setName:(NSString *)name;
|
||||
|
||||
/*!
|
||||
Sets the name of the creative associated with the promotion.
|
||||
*/
|
||||
- (GAIEcommercePromotion *)setCreative:(NSString *)creative;
|
||||
|
||||
/*!
|
||||
Sets the position of the promotion.
|
||||
*/
|
||||
- (GAIEcommercePromotion *)setPosition:(NSString *)position;
|
||||
|
||||
/*!
|
||||
Builds an NSDictionary of fields stored in this instance. The index parameter is the
|
||||
index of this promotion in that promotion list.
|
||||
<br>
|
||||
Normally, users will have no need to call this method.
|
||||
*/
|
||||
- (NSDictionary *)buildWithIndex:(NSUInteger)index;
|
||||
@end
|
||||
@@ -1,133 +0,0 @@
|
||||
/*!
|
||||
@header GAIFields.h
|
||||
@abstract Google Analytics iOS SDK Hit Format Header
|
||||
@copyright Copyright 2013 Google Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
/*!
|
||||
These fields can be used for the wire format parameter names required by
|
||||
the |GAITracker| get, set and send methods as well as the set methods in the
|
||||
|GAIDictionaryBuilder| class.
|
||||
*/
|
||||
extern NSString *const kGAIUseSecure;
|
||||
|
||||
extern NSString *const kGAIHitType;
|
||||
extern NSString *const kGAITrackingId;
|
||||
extern NSString *const kGAIClientId;
|
||||
extern NSString *const kGAIDataSource;
|
||||
extern NSString *const kGAIAnonymizeIp;
|
||||
extern NSString *const kGAISessionControl;
|
||||
extern NSString *const kGAIDeviceModelVersion;
|
||||
extern NSString *const kGAIScreenResolution;
|
||||
extern NSString *const kGAIViewportSize;
|
||||
extern NSString *const kGAIEncoding;
|
||||
extern NSString *const kGAIScreenColors;
|
||||
extern NSString *const kGAILanguage;
|
||||
extern NSString *const kGAIJavaEnabled;
|
||||
extern NSString *const kGAIFlashVersion;
|
||||
extern NSString *const kGAINonInteraction;
|
||||
extern NSString *const kGAIReferrer;
|
||||
extern NSString *const kGAILocation;
|
||||
extern NSString *const kGAIHostname;
|
||||
extern NSString *const kGAIPage;
|
||||
extern NSString *const kGAIDescription; // synonym for kGAIScreenName
|
||||
extern NSString *const kGAIScreenName; // synonym for kGAIDescription
|
||||
extern NSString *const kGAITitle;
|
||||
extern NSString *const kGAIAdMobHitId;
|
||||
extern NSString *const kGAIAppName;
|
||||
extern NSString *const kGAIAppVersion;
|
||||
extern NSString *const kGAIAppId;
|
||||
extern NSString *const kGAIAppInstallerId;
|
||||
extern NSString *const kGAIUserId;
|
||||
|
||||
extern NSString *const kGAIEventCategory;
|
||||
extern NSString *const kGAIEventAction;
|
||||
extern NSString *const kGAIEventLabel;
|
||||
extern NSString *const kGAIEventValue;
|
||||
|
||||
extern NSString *const kGAISocialNetwork;
|
||||
extern NSString *const kGAISocialAction;
|
||||
extern NSString *const kGAISocialTarget;
|
||||
|
||||
extern NSString *const kGAITransactionId;
|
||||
extern NSString *const kGAITransactionAffiliation;
|
||||
extern NSString *const kGAITransactionRevenue;
|
||||
extern NSString *const kGAITransactionShipping;
|
||||
extern NSString *const kGAITransactionTax;
|
||||
extern NSString *const kGAICurrencyCode;
|
||||
|
||||
extern NSString *const kGAIItemPrice;
|
||||
extern NSString *const kGAIItemQuantity;
|
||||
extern NSString *const kGAIItemSku;
|
||||
extern NSString *const kGAIItemName;
|
||||
extern NSString *const kGAIItemCategory;
|
||||
|
||||
extern NSString *const kGAICampaignSource;
|
||||
extern NSString *const kGAICampaignMedium;
|
||||
extern NSString *const kGAICampaignName;
|
||||
extern NSString *const kGAICampaignKeyword;
|
||||
extern NSString *const kGAICampaignContent;
|
||||
extern NSString *const kGAICampaignId;
|
||||
extern NSString *const kGAICampaignAdNetworkClickId;
|
||||
extern NSString *const kGAICampaignAdNetworkId;
|
||||
|
||||
extern NSString *const kGAITimingCategory;
|
||||
extern NSString *const kGAITimingVar;
|
||||
extern NSString *const kGAITimingValue;
|
||||
extern NSString *const kGAITimingLabel;
|
||||
|
||||
extern NSString *const kGAIExDescription;
|
||||
extern NSString *const kGAIExFatal;
|
||||
|
||||
extern NSString *const kGAISampleRate;
|
||||
|
||||
extern NSString *const kGAIIdfa;
|
||||
extern NSString *const kGAIAdTargetingEnabled;
|
||||
|
||||
// hit types
|
||||
extern NSString *const kGAIAppView DEPRECATED_MSG_ATTRIBUTE("Use kGAIScreenView instead.");
|
||||
extern NSString *const kGAIScreenView;
|
||||
extern NSString *const kGAIEvent;
|
||||
extern NSString *const kGAISocial;
|
||||
extern NSString *const kGAITransaction;
|
||||
extern NSString *const kGAIItem;
|
||||
extern NSString *const kGAIException;
|
||||
extern NSString *const kGAITiming;
|
||||
|
||||
/*!
|
||||
This class provides several fields and methods useful as wire format parameter
|
||||
names. The methods are used for wire format parameter names that are indexed.
|
||||
*/
|
||||
|
||||
@interface GAIFields : NSObject
|
||||
|
||||
/*!
|
||||
Generates the correct parameter name for a content group with an index.
|
||||
|
||||
@param index the index of the content group.
|
||||
|
||||
@return an NSString representing the content group parameter for the index.
|
||||
*/
|
||||
+ (NSString *)contentGroupForIndex:(NSUInteger)index;
|
||||
|
||||
/*!
|
||||
Generates the correct parameter name for a custon dimension with an index.
|
||||
|
||||
@param index the index of the custom dimension.
|
||||
|
||||
@return an NSString representing the custom dimension parameter for the index.
|
||||
*/
|
||||
+ (NSString *)customDimensionForIndex:(NSUInteger)index;
|
||||
|
||||
/*!
|
||||
Generates the correct parameter name for a custom metric with an index.
|
||||
|
||||
@param index the index of the custom metric.
|
||||
|
||||
@return an NSString representing the custom metric parameter for the index.
|
||||
*/
|
||||
+ (NSString *)customMetricForIndex:(NSUInteger)index;
|
||||
|
||||
@end
|
||||
@@ -1,49 +0,0 @@
|
||||
/*!
|
||||
@header GAILogger.h
|
||||
@abstract Google Analytics iOS SDK Source
|
||||
@copyright Copyright 2011 Google Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
typedef NS_ENUM(NSUInteger, GAILogLevel) {
|
||||
kGAILogLevelNone = 0,
|
||||
kGAILogLevelError = 1,
|
||||
kGAILogLevelWarning = 2,
|
||||
kGAILogLevelInfo = 3,
|
||||
kGAILogLevelVerbose = 4
|
||||
};
|
||||
|
||||
/*!
|
||||
Protocol to be used for logging debug and informational messages from the SDK.
|
||||
Implementations of this protocol can be provided to the |GAI| class,
|
||||
to be used as the logger by the SDK. See the |logger| property in GAI.h.
|
||||
*/
|
||||
@protocol GAILogger<NSObject>
|
||||
@required
|
||||
|
||||
/*!
|
||||
Only messages of |logLevel| and below are logged.
|
||||
*/
|
||||
@property (nonatomic, assign) GAILogLevel logLevel;
|
||||
|
||||
/*!
|
||||
Logs message with log level |kGAILogLevelVerbose|.
|
||||
*/
|
||||
- (void)verbose:(NSString *)message;
|
||||
|
||||
/*!
|
||||
Logs message with log level |kGAILogLevelInfo|.
|
||||
*/
|
||||
- (void)info:(NSString *)message;
|
||||
|
||||
/*!
|
||||
Logs message with log level |kGAILogLevelWarning|.
|
||||
*/
|
||||
- (void)warning:(NSString *)message;
|
||||
|
||||
/*!
|
||||
Logs message with log level |kGAILogLevelError|.
|
||||
*/
|
||||
- (void)error:(NSString *)message;
|
||||
@end
|
||||
@@ -1,33 +0,0 @@
|
||||
/*!
|
||||
@header GAITrackedViewController.h
|
||||
@abstract Google Analytics for iOS Tracked View Controller Header
|
||||
@copyright Copyright 2012 Google Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@protocol GAITracker;
|
||||
|
||||
/*!
|
||||
Extends UIViewController to generate Google Analytics screenview calls
|
||||
whenever the view appears; this is done by overriding the `viewDidAppear:`
|
||||
method. The screen name must be set for any tracking calls to be made.
|
||||
|
||||
By default, this will use [GAI defaultTracker] for tracking calls, but one can
|
||||
override this by setting the tracker property.
|
||||
*/
|
||||
@interface GAITrackedViewController : UIViewController
|
||||
|
||||
/*!
|
||||
The tracker on which view tracking calls are be made, or `nil`, in which case
|
||||
[GAI defaultTracker] will be used.
|
||||
*/
|
||||
@property(nonatomic, assign) id<GAITracker> tracker;
|
||||
/*!
|
||||
The screen name, for purposes of Google Analytics tracking. If this is `nil`,
|
||||
no tracking calls will be made.
|
||||
*/
|
||||
@property(nonatomic, copy) NSString *screenName;
|
||||
|
||||
@end
|
||||
@@ -1,57 +0,0 @@
|
||||
/*!
|
||||
@header GAITracker.h
|
||||
@abstract Google Analytics iOS SDK Tracker Header
|
||||
@copyright Copyright 2013 Google Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
/*!
|
||||
Google Analytics tracking interface. Obtain instances of this interface from
|
||||
[GAI trackerWithTrackingId:] to track screens, events, transactions, timing,
|
||||
and exceptions. The implementation of this interface is thread-safe, and no
|
||||
calls are expected to block or take a long time. All network and disk activity
|
||||
will take place in the background.
|
||||
*/
|
||||
@protocol GAITracker<NSObject>
|
||||
|
||||
/*!
|
||||
Name of this tracker.
|
||||
*/
|
||||
@property(nonatomic, readonly) NSString *name;
|
||||
|
||||
/*!
|
||||
Allow collection of IDFA and related fields if set to true. Default is false.
|
||||
*/
|
||||
@property(nonatomic) BOOL allowIDFACollection;
|
||||
|
||||
/*!
|
||||
Set a tracking parameter.
|
||||
|
||||
@param parameterName The parameter name.
|
||||
|
||||
@param value The value to set for the parameter. If this is nil, the
|
||||
value for the parameter will be cleared.
|
||||
*/
|
||||
- (void)set:(NSString *)parameterName
|
||||
value:(NSString *)value;
|
||||
|
||||
/*!
|
||||
Get a tracking parameter.
|
||||
|
||||
@param parameterName The parameter name.
|
||||
|
||||
@returns The parameter value, or nil if no value for the given parameter is
|
||||
set.
|
||||
*/
|
||||
- (NSString *)get:(NSString *)parameterName;
|
||||
|
||||
/*!
|
||||
Queue tracking information with the given parameter values.
|
||||
|
||||
@param parameters A map from parameter names to parameter values which will be
|
||||
set just for this piece of tracking information, or nil for none.
|
||||
*/
|
||||
- (void)send:(NSDictionary *)parameters;
|
||||
|
||||
@end
|
||||
Binary file not shown.
+1
-1
@@ -40,7 +40,7 @@
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>229</string>
|
||||
<string>231</string>
|
||||
<key>Fabric</key>
|
||||
<dict>
|
||||
<key>APIKey</key>
|
||||
|
||||
@@ -35,8 +35,6 @@ class AboutViewController: SegueViewController {
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
self.screenName = "About"
|
||||
|
||||
title = NSLocalizedString("About", comment: "")
|
||||
|
||||
|
||||
@@ -19,8 +19,6 @@ class AddFriendsViewController: SegueViewController {
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
self.screenName = "Add Friends"
|
||||
|
||||
title = NSLocalizedString("Add Friends", comment: "")
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
import UIKit
|
||||
|
||||
class SegueViewController: GAITrackedViewController {
|
||||
class SegueViewController: UIViewController {
|
||||
|
||||
override func performSegueWithIdentifier(identifier: String, sender: AnyObject?) {
|
||||
|
||||
|
||||
@@ -165,8 +165,6 @@ class ContactsViewController: BaseViewController {
|
||||
}
|
||||
|
||||
override func viewWillAppear(animated: Bool) {
|
||||
self.screenName = "Contacts"
|
||||
|
||||
super.viewWillAppear(animated)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -879,12 +879,6 @@ class ConversationViewController: BaseViewController {
|
||||
|
||||
needDetectMention = conversation.needDetectMention
|
||||
|
||||
if let _ = conversation.withGroup?.withFeed {
|
||||
self.screenName = "Feed Conversation"
|
||||
} else {
|
||||
self.screenName = "Conversation"
|
||||
}
|
||||
|
||||
#if DEBUG
|
||||
//view.addSubview(conversationFPSLabel)
|
||||
#endif
|
||||
|
||||
@@ -87,8 +87,6 @@ class ConversationsViewController: SegueViewController {
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
self.screenName = "Conversations"
|
||||
|
||||
realm = try! Realm()
|
||||
|
||||
|
||||
@@ -77,7 +77,6 @@ class DiscoverViewController: BaseViewController {
|
||||
#endif
|
||||
|
||||
override func viewWillAppear(animated: Bool) {
|
||||
self.screenName = "Discover"
|
||||
|
||||
super.viewWillAppear(animated)
|
||||
}
|
||||
|
||||
@@ -67,8 +67,6 @@ class EditProfileViewController: SegueViewController {
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
self.screenName = "Edit Profile"
|
||||
|
||||
title = NSLocalizedString("Edit Profile", comment: "")
|
||||
|
||||
|
||||
@@ -37,9 +37,6 @@ class EditSkillsViewController: BaseViewController {
|
||||
// animatedOnNavigationBar = false
|
||||
|
||||
title = skillSet?.name
|
||||
|
||||
self.screenName = "Edit Skills"
|
||||
|
||||
// get all skill categories
|
||||
|
||||
allSkillCategories(failureHandler: { (reason, errorMessage) -> Void in
|
||||
|
||||
@@ -41,8 +41,6 @@ class FeedConversationsViewController: SegueViewController {
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
self.screenName = "Joined Feeds"
|
||||
|
||||
title = NSLocalizedString("Feeds", comment: "")
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ import UIKit
|
||||
import KeyboardMan
|
||||
import DeviceGuru
|
||||
|
||||
class FeedbackViewController: GAITrackedViewController {
|
||||
class FeedbackViewController: UIViewController {
|
||||
|
||||
@IBOutlet private weak var promptLabel: UILabel! {
|
||||
didSet {
|
||||
@@ -55,8 +55,6 @@ class FeedbackViewController: GAITrackedViewController {
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
self.screenName = "Feedback"
|
||||
|
||||
title = NSLocalizedString("Feedback", comment: "")
|
||||
|
||||
|
||||
@@ -259,8 +259,6 @@ class FeedsViewController: BaseViewController {
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
self.screenName = "Feeds"
|
||||
|
||||
// 优先处理侧滑,而不是 scrollView 的上下滚动,避免出现你想侧滑返回的时候,结果触发了 scrollView 的上下滚动
|
||||
if let gestures = navigationController?.view.gestureRecognizers {
|
||||
|
||||
@@ -41,8 +41,6 @@ class FriendsInContactsViewController: BaseViewController {
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
self.screenName = "Friends In Contacts"
|
||||
|
||||
title = NSLocalizedString("Available Friends", comment: "")
|
||||
|
||||
|
||||
@@ -27,8 +27,6 @@ class LoginByMobileViewController: BaseViewController {
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
self.screenName = "Login By Mobile"
|
||||
|
||||
animatedOnNavigationBar = false
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
import UIKit
|
||||
import Ruler
|
||||
|
||||
class LoginVerifyMobileViewController: GAITrackedViewController {
|
||||
class LoginVerifyMobileViewController: UIViewController {
|
||||
|
||||
var mobile: String!
|
||||
var areaCode: String!
|
||||
@@ -52,8 +52,6 @@ class LoginVerifyMobileViewController: GAITrackedViewController {
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
self.screenName = "Login Verify Mobile"
|
||||
|
||||
view.backgroundColor = UIColor.yepViewBackgroundColor()
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ enum PreviewMedia {
|
||||
case WebImage(imageURL: NSURL, linkURL: NSURL)
|
||||
}
|
||||
|
||||
class MediaPreviewViewController: GAITrackedViewController {
|
||||
class MediaPreviewViewController: UIViewController {
|
||||
|
||||
var previewMedias: [PreviewMedia] = []
|
||||
var startIndex: Int = 0
|
||||
@@ -105,8 +105,6 @@ class MediaPreviewViewController: GAITrackedViewController {
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
self.screenName = "Media Preview"
|
||||
|
||||
mediasCollectionView.backgroundColor = UIColor.clearColor()
|
||||
mediasCollectionView.registerNib(UINib(nibName: mediaViewCellID, bundle: nil), forCellWithReuseIdentifier: mediaViewCellID)
|
||||
|
||||
@@ -10,7 +10,7 @@ import UIKit
|
||||
import AVFoundation
|
||||
import MonkeyKing
|
||||
|
||||
class MessageMediaViewController: GAITrackedViewController {
|
||||
class MessageMediaViewController: UIViewController {
|
||||
|
||||
var previewMedias: [PreviewMedia] = []
|
||||
var startIndex: Int = 0
|
||||
@@ -39,8 +39,6 @@ class MessageMediaViewController: GAITrackedViewController {
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
self.screenName = "Message Media"
|
||||
|
||||
title = NSLocalizedString("Preview", comment: "")
|
||||
|
||||
|
||||
@@ -216,8 +216,6 @@ class NewFeedViewController: SegueViewController {
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
self.screenName = "New Feed"
|
||||
|
||||
title = NSLocalizedString("New Feed", comment: "")
|
||||
view.backgroundColor = UIColor.yepBackgroundColor()
|
||||
|
||||
|
||||
@@ -193,8 +193,6 @@ class NewFeedVoiceRecordViewController: SegueViewController {
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
self.screenName = "New Voice Feed"
|
||||
|
||||
title = NSLocalizedString("New Voice", comment: "")
|
||||
|
||||
|
||||
@@ -147,8 +147,6 @@ class PickLocationViewController: SegueViewController {
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
self.screenName = "Pick Location"
|
||||
|
||||
title = NSLocalizedString("Pick Location", comment: "")
|
||||
|
||||
|
||||
@@ -821,8 +821,6 @@ class ProfileViewController: SegueViewController {
|
||||
customNavigationBar.alpha = 1.0
|
||||
|
||||
statusBarShouldLight = false
|
||||
|
||||
self.screenName = "Profile"
|
||||
|
||||
if noNeedToChangeStatusBar {
|
||||
statusBarShouldLight = true
|
||||
|
||||
@@ -116,8 +116,6 @@ class RegisterPickAvatarViewController: SegueViewController {
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
self.screenName = "Register Pick Avatar"
|
||||
|
||||
view.backgroundColor = UIColor.yepViewBackgroundColor()
|
||||
|
||||
|
||||
@@ -27,8 +27,6 @@ class RegisterPickMobileViewController: SegueViewController {
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
self.screenName = "Register Pick Mobile"
|
||||
|
||||
view.backgroundColor = UIColor.yepViewBackgroundColor()
|
||||
|
||||
|
||||
@@ -33,8 +33,6 @@ class RegisterPickNameViewController: BaseViewController {
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
self.screenName = "Register Pick Name"
|
||||
|
||||
animatedOnNavigationBar = false
|
||||
|
||||
|
||||
@@ -53,8 +53,6 @@ class RegisterPickSkillsViewController: BaseViewController {
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
self.screenName = "Register Pick Skills"
|
||||
|
||||
let doneBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Done, target: self, action: "saveSkills:")
|
||||
navigationItem.rightBarButtonItem = doneBarButtonItem
|
||||
|
||||
@@ -52,8 +52,6 @@ class RegisterVerifyMobileViewController: SegueViewController {
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
self.screenName = "Register Verify Mobile"
|
||||
|
||||
view.backgroundColor = UIColor.yepViewBackgroundColor()
|
||||
|
||||
|
||||
@@ -30,8 +30,6 @@ class SearchedUsersViewController: BaseViewController {
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
self.screenName = "Search User"
|
||||
|
||||
title = NSLocalizedString("Search", comment: "") + " \"\(searchText)\""
|
||||
|
||||
|
||||
@@ -51,7 +51,6 @@ class SettingsViewController: BaseViewController {
|
||||
}
|
||||
|
||||
override func viewWillAppear(animated: Bool) {
|
||||
self.screenName = "Settings"
|
||||
|
||||
super.viewWillAppear(animated)
|
||||
}
|
||||
@@ -60,8 +59,6 @@ class SettingsViewController: BaseViewController {
|
||||
super.viewDidLoad()
|
||||
|
||||
// animatedOnNavigationBar = false
|
||||
|
||||
self.screenName = "Settings"
|
||||
|
||||
title = NSLocalizedString("Settings", comment: "")
|
||||
|
||||
|
||||
@@ -110,8 +110,6 @@ class SkillHomeViewController: BaseViewController {
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
self.screenName = "Skill Home"
|
||||
|
||||
if let skillCategory = skill?.category {
|
||||
headerView.skillCategory = skillCategory
|
||||
}
|
||||
|
||||
@@ -45,7 +45,6 @@ class SocialWorkDribbbleViewController: BaseViewController {
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
self.screenName = "Dribbble Works"
|
||||
|
||||
// animatedOnNavigationBar = false
|
||||
|
||||
|
||||
@@ -73,7 +73,7 @@ class SocialWorkGithubViewController: BaseViewController {
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
self.screenName = "Github Works"
|
||||
|
||||
// animatedOnNavigationBar = false
|
||||
|
||||
if let socialAccount = socialAccount {
|
||||
|
||||
@@ -47,7 +47,6 @@ class SocialWorkInstagramViewController: BaseViewController {
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
self.screenName = "Instagram Works"
|
||||
|
||||
if let socialAccount = socialAccount {
|
||||
let accountImageView = UIImageView(image: UIImage(named: socialAccount.iconName)!)
|
||||
|
||||
@@ -20,8 +20,6 @@ class WelcomeViewController: GAITrackedViewController {
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
self.screenName = "Welcome"
|
||||
|
||||
logoLabel.text = NSLocalizedString("Yep", comment: "")
|
||||
sloganLabel.text = NSLocalizedString("Meet with genius", comment: "")
|
||||
|
||||
@@ -3,8 +3,4 @@
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "JPUSHService.h"
|
||||
#import "GAI.h"
|
||||
#import "GAIDictionaryBuilder.h"
|
||||
#import "GAIFields.h"
|
||||
#import "GAILogger.h"
|
||||
#import "JPUSHService.h"
|
||||
Reference in New Issue
Block a user