SimpleGoogleAnalyticsForIOS 0.0.2

SimpleGoogleAnalyticsForIOS 0.0.2

测试已测试
语言语言 Obj-CObjective C
许可证 自定义
发布最后发布2017年4月

Paulo Roberto Brambilla Junior 维护。



  • Paulo Roberto Brambilla Junior

Simple Google Analytics for IOS

SimpleGoogleAnalytics 是一个 HTTP 网络库,用于通过 Objective-c 向 Google Analytics 发送消息。

要求

  • iOS 7.0+
  • Xcode 8.2+
  • Objective-c

通信

  • 如果您需要帮助、建议或一般性问题,请使用电子邮件 [email protected]
  • 如果您发现了错误,请创建一个问题。
  • 如果您有功能请求,请创建一个问题。
  • 如果您想要贡献,请提交拉取请求。

用法

实例

以下代码应粘贴到 AppDelegate.m 中。通过传递跟踪 ID / 网页属性 ID、客户 ID 和命中类型来初始化 SimpleGoogleAnalytics 类。

#import <UIKit/UIKit.h>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    self.sga = [SimpleGoogleAnalytics startSharedWithTid:@"tid" withCid:@"cid" andHitType:SCREEN_VIEW_HIT];
    //Your code.
    return YES;
}

开始会话

使用 google analytics 登录。以下代码应粘贴到 AppDelegate.m 中。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
    [self.sga startSession:^(NSData *data, NSURLResponse * _Nullable response, NSError * _Nullable erro) {
        if (erro){
            NSLog(@"Erro: %@", [erro.userInfo objectForKey:[NSNumber numberWithLong:erro.code ]]);
        }
    }];
}

结束会话

结束与 Google Analytics 的会话。以下代码应粘贴到 AppDelegate.m 中。

- (void)applicationWillTerminate:(UIApplication *)application {
    [self.sga endSession:^(NSData *data, NSURLResponse * _Nullable response, NSError * _Nullable erro) {
        if (erro){
            NSLog(@"Erro: %@", [erro.userInfo objectForKey:[NSNumber numberWithLong:erro.code ]]);
        }
    }];
}

发送收集消息

发送一个简单消息。示例:   v=1&tid=UA-123456-1&cid=5555&t=screenview&aip=1

ItemGA *item = [[ItemGA alloc] initWithCodEnumParameterGA:ANONYMIZE_IP_GAPARAMETERS andKey: @"aip" andValue: @"1"];

NSArray<ItemGA *> *parameters = [NSArray arrayWithObject:item];

[self sendMessage:parameters withCallBack:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError *  _Nullable erro) {
        //Your code.
}];

发送批处理消息

一次性发送多条消息。例如:   v=1&tid=UA-123456-1&cid=5555&t=screenview&aip=1    v=1&tid=UA-123456-1&cid=5555&t=screenview&ds=app

NSMutableArray<NSArray<ItemGA *> *> *parameters = [NSMutableArray new];

ItemGA *item1 = [[ItemGA alloc] initWithCodEnumParameterGA:ANONYMIZE_IP_GAPARAMETERS andKey: [self getValueEnumGAParameter: ANONYMIZE_IP_GAPARAMETERS] andValue: @"1"];
ItemGA *item2 = [[ItemGA alloc] initWithCodEnumParameterGA:DATA_SOURCE_GAPARAMETERS andKey:[self getValueEnumGAParameter: DATA_SOURCE_GAPARAMETERS] andValue:@"app"];

NSMutableArray<ItemGA *> *line = [NSMutableArray new];
[line addObject:item1];
[line addObject:item2];

[parameters addObject:line];

[self.sga sendBatchMessage:parameters withCallBack:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable erro) {
    //Your code.
}];

项目GA

该对象表示请求中要传递的参数和值。其启动参数是一个Enum代码GAParameters,键(@"sc")的值和该键的值(@"start")。你可以使用getValueEnumGAParameter方法来获取键值,但对于不需要索引控制的键,编程员应直接传递String。

#import "ItemGA.h" 

ItemGA *item = [[ItemGA alloc] initWithCodEnumParameterGA:SESSION_CONTROL_GAPARAMETERS andKey: [self getValueEnumGAParameter:SESSION_CONTROL_GAPARAMETERS] andValue: @"start"];

GAParameterEnum

列举了与ItemGA类的实例化和getValueEnumGAParameter方法一起使用的Google Analytics参数。有关每个参数的更多详细信息,请访问链接协议参数参考

typedef NS_ENUM(NSInteger, GAParametersEnum){
    ANONYMIZE_IP_GAPARAMETERS,
    DATA_SOURCE_GAPARAMETERS,
    QUEUE_TIME_GAPARAMETERS,
    CACHE_BUSTER_GAPARAMETERS,
    USER_ID_GAPARAMETERS,
    SESSION_CONTROL_GAPARAMETERS,
    IP_OVERRIDE_GAPARAMETERS,
    USER_AGENT_OVERRIDE_GAPARAMETERS,
    GEOGRAPHICAL_OVERRIDE_GAPARAMETERS,
    DOCUMENT_REFERRER_GAPARAMETERS,
    CAMPAIGN_NAME_GAPARAMETERS,
    CAMPAIGN_ORIGIN_GAPARAMETERS,
    CAMPAIGN_MEDIA_GAPARAMETERS,
    CAMPAIGN_KEYWORD_GAPARAMETERS,
    CAMPAIGN_CONTENT_GAPARAMETERS,
    CAMPAIGN_ID_GAPARAMETERS,
    GOOGLE_ADWORDS_ID_GAPARAMETERS,
    GOOGLE_DISPLAY_ADS_ID_GAPARAMETERS,
    SCREEN_RESOLUTION_GAPARAMETERS,
    VIEWPORT_SIZE_GAPARAMETERS,
    DOCUMENT_ENCODING_GAPARAMETERS,
    SCREEN_COLORS_GAPARAMETERS,
    USER_LANGUAGE_GAPARAMETERS,
    JAVA_ENABLED_GAPARAMETERS,
    FLASH_VERSION_GAPARAMETERS,
    NON_INTERACTION_HIT_GAPARAMETERS,
    DOCUMENT_LOCATION_URL_GAPARAMETERS,
    DOCUMENT_HOST_NAME_GAPARAMETERS,
    DOCUMENT_PATH_GAPARAMETERS,
    DOCUMENT_TITLE_GAPARAMETERS,
    SCREEN_NAME_GAPARAMETERS,
    CONTENT_GROUP_GAPARAMETERS,
    LINK_ID_GAPARAMETERS,
    APPLICATION_NAME_GAPARAMETERS,
    APPLICATION_ID_GAPARAMETERS,
    APPLICATION_VERSION_GAPARAMETERS,
    APPLICATION_INSTALLER_ID_GAPARAMETERS,
    EVENT_CATEGORY_GAPARAMETERS,
    EVENT_ACTION_GAPARAMETERS,
    EVENT_LABEL_GAPARAMETERS,
    EVENT_VALUE_GAPARAMETERS,
    TRANSACTION_ID_GAPARAMETERS,
    TRANSACTION_AFFILIATION_GAPARAMETERS,
    TRANSACTION_REVENUE_GAPARAMETERS,
    TRANSACTION_SHIPPING_GAPARAMETERS,
    TRANSACTION_TAX_GAPARAMETERS,
    ITEM_NAME_GAPARAMETERS,
    ITEM_PRICE_GAPARAMETERS,
    ITEM_QUANTITY_GAPARAMETERS,
    ITEM_CODE_GAPARAMETERS,
    ITEM_CATEGORY_GAPARAMETERS,
    PRODUCT_SKU_GAPARAMETERS,
    PRODUCT_NAME_GAPARAMETERS,
    PRODUCT_BRAND_GAPARAMETERS,
    PRODUCT_CATEGORY_GAPARAMETERS,
    PRODUCT_VARIANT_GAPARAMETERS,
    PRODUCT_PRICE_GAPARAMETERS,
    PRODUCT_QUANTITY_GAPARAMETERS,
    PRODUCT_COUPON_CODE_GAPARAMETERS,
    PRODUCT_POSITION_GAPARAMETERS,
    PRODUCT_CUSTOM_DIMENSION_GAPARAMETERS,
    PRODUCT_CUSTOM_METRIC_GAPARAMETERS,
    PRODUCT_ACTION_GAPARAMETERS,
    ID_TRANSACTION_GAPARAMETERS,
    AFFILIATION_GAPARAMETERS,
    REVENUE_GAPARAMETERS,
    TAX_GAPARAMETERS,
    SHIPPING_GAPARAMETERS,
    COUPON_CODE_GAPARAMETERS,
    PRODUCT_ACTION_LIST_GAPARAMETERS,
    CHECKOUT_STAGE_GAPARAMETERS,
    CHECKOUT_STAGE_OPTION_GAPARAMETERS,
    PRODUCT_IMPRESSION_LIST_NAME_GAPARAMETERS,
    PRODUCT_IMPRESSION_SKU_GAPARAMETERS,
    PRODUCT_IMPRESSION_NAME_GAPARAMETERS,
    PRODUCT_IMPRESSION_BRAND_GAPARAMETERS,
    PRODUCT_IMPRESSION_CATEGORY_GAPARAMETERS,
    PRODUCT_IMPRESSION_VARIANT_GAPARAMETERS,
    PRODUCT_IMPRESSION_POSITION_GAPARAMETERS,
    PRODUCT_IMPRESSION_PRICE_GAPARAMETERS,
    PRODUCT_IMPRESSION_CUSTOM_DIMENSION_GAPARAMETERS,
    PRODUCT_IMPRESSION_CUSTOM_METRIC_GAPARAMETERS,
    PROMOTION_ID_GAPARAMETERS,
    PROMOTION_NAME_GAPARAMETERS,
    PROMOTION_CREATIVE_GAPARAMETERS,
    PROMOTION_POSITION_GAPARAMETERS,
    PROMOTION_ACTION_GAPARAMETERS,
    CURRENCY_CODE_GAPARAMETERS,
    SOCIAL_NETWORK_GAPARAMETERS,
    SOCIAL_ACTION_GAPARAMETERS,
    SOCIAL_ACTION_TARGET_GAPARAMETERS,
    USER_TIMING_CATEGORY_GAPARAMETERS,
    USER_TIMING_VARIABLE_NAME_GAPARAMETERS,
    USER_TIMING_TIME_GAPARAMETERS,
    USER_TIMING_LABEL_GAPARAMETERS,
    PAGE_LOAD_TIME_GAPARAMETERS,
    DNS_TIME_GAPARAMETERS,
    PAGE_DOWNLOAD_TIME_GAPARAMETERS,
    REDIRECT_RESPONSE_TIME_GAPARAMETERS,
    TCP_CONNECT_TIME_GAPARAMETERS,
    SERVER_RESPONSE_TIME_GAPARAMETERS,
    DOM_INTERACTIVE_TIME_GAPARAMETERS,
    CONTENT_LOAD_TIME_GAPARAMETERS,
    EXCEPTION_DESCRIPTION_GAPARAMETERS,
    IS_FATAL_EXCEPTION_GAPARAMETERS,
    CUSTOM_DIMENSION_GAPARAMETERS,
    CUSTOM_METRIC_GAPARAMETERS,
    EXPERIMENT_ID_GAPARAMETERS,
    EXPERIMENT_VARIANT_GAPARAMETERS,
    ENUM_COUNT
};

HitTypeEnum

点击类型。必须是以下其中之一:‘pageview’、‘screenview’、‘event’、‘transaction’、‘item’、‘social’、‘exception’、‘timing’。

typedef NS_ENUM(NSInteger, HitTypeEnum){
    EVENT_HIT,
    EXCEPTION_HIT,
    ITEM_HIT,
    PAGE_VIEW_HIT,
    SCREEN_VIEW_HIT,
    SOCIAL_HIT,
    TRANSACTION_HIT,
    TIMING_HIT,
    HIT_TYPE_ENUM_COUNT
};

设置必需参数

用于设置必需参数并将数据发送到Google Analytics的init会话的方法。

  • tid -> 区分应接收数据的Google Analytics属性的ID。
  • cid -> 具体用户的一个唯一代码。
  • hitTypeEnum -> 对特定用户的交互类型进行收集的类型。
-(void) setRequiredParameters: (NSString*) tid withCid: (NSString*) cid andHitType: (NSInteger) hitTypeEnum;

更改点击类型

使用HitTypeEnum设置点击类型的方法。

  • hitTypeEnum -> 枚举值。例如:EVENT_HIT。
-(void) changeHitType:(NSInteger) hitTypeEnum;

getValueEnumGAParameter

获取枚举器所表示的值。

  • codeEnum -> 这是Enum GAParameters。
  • return -> 参数值。

    -(NSString*) getValueEnumGAParameter: (int) codeEnum;

许可协议

SimpleGoogleAnalytics根据GNU协议发布。有关详细信息,请参阅COPYING。