WLAnalyticsManager.h
4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
/*
Copyright 2010-2016 Warply Inc. All rights reserved.
Redistribution and use in source and binary forms, without modification,
are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binaryform must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE WARPLY LTD ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
EVENT SHALL WARPLY LTD OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/*!
@header WLAnalyticsManager.h
The Analytics Manager provides a functional interface for in-app analytics.
Use the methods declared here to send in-app analytics wherever is needed within
the application.
@copyright Warply Inc.
*/
#import <Foundation/Foundation.h>
#import "WLBaseItem.h"
/*!
@class WLAnalyticsManager
@discussion This manager handles the in-app analytics functionality of Warply
service.
*/
@interface WLAnalyticsManager : NSObject
/*!
@methodgroup Sending In-App Analytics
*/
/*!
@abstract Sends an in-app analytic.
@discussion This class method sends an in-app analytic event. This event is stored
into a local DB and is sent over to Warply service when a threshold of stored
events is exceeded.
@param event_id A string object that specifies the event that happened. Developer
defined string.
@param page_id A string object that specifies where the event happened. Developer
defined string.
@param action_metadata A dictionary object with metadata related for the event.
Developer defined dictionary.
@seealso //apple_ref/occ/clm/WLAnalyticsManager/sendAnalyticsEventWithEvent_id:page_id:action_metadata: sendAnalyticsEventWithEvent_id:page_id:action_metadata:
*/
+ (void)logEventWithEventId:(NSString *)event_id pageId:(NSString *)page_id actionMetadata:(NSDictionary *)action_metadata;
/*!
@abstract Sends an Urgent in-app analytic.
@discussion This class method sends an urgent in-app analytic event. This event
is sent to Warply service immediately. It is advised to use this type of event only
in places of the application where almost real-time analytic reporting is required.
@param event_id A string object that specifies the event that happened. Developer
defined string.
@param page_id A string object that specifies where the event happened. Developer
defined string.
@param action_metadata A dictionary object with metadata related for the event.
Developer defined dictionary.
@seealso //apple_ref/occ/clm/WLAnalyticsManager/sendPriorityAnalyticsEventWithEvent_id:page_id:action_metadata: sendPriorityAnalyticsEventWithEvent_id:page_id:action_metadata:
*/
+ (void)logUrgentEventWithEventId:(NSString *)eventId pageId:(NSString *)pageId actionMetadata:(NSDictionary *)action_metadata;
/*!
@abstract Sends an in-app analytic event indicating that the user interacted with the push.
@param item The WLBaseItem representation of the push payload. You can create it like this: WLBaseItem *item = [WLBaseItem alloc] initWithAttributes:payload];
terminates.
*/
+ (void)logUserEngagedPush:(WLBaseItem *)item;
+ (void)logUserReceivedPush:(WLBaseItem *)item;
//TODO: Add documentation
+ (void)logAppDidFinishLauchingEvent;
+ (void)logAppWillEnterForegroundEvent;
+ (void)logAppWillTerminateEvent;
+ (void)logAppDidEnterBackgroundEvent;
@end