SimpleGoogleAnaltyticsForIOS 0.0.2

SimpleGoogleAnaltyticsForIOS 0.0.2

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

Paulo Roberto Brambilla Junior维护。



  • 作者
  • Paulo Roberto Brambilla Junior

Simple Google Analytics for IOS

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

要求

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

通讯

  • 如果您需要帮助或建议,或提出一般性问题,请通过电子邮件 [email protected]
  • 如果您发现了bug,请提交问题。
  • 如果您有功能请求,请提交问题。
  • 如果您想做出贡献,请提交拉取请求。

使用

实例

以下代码应粘贴到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 code GAParameters,键(@"sc")的值,以及该键的值(@"start")。您可以使用 getValueEnumGAParameter 方法来获取键值,但对于不需要索引控制的键,程序应直接告知字符串本身。

#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
};

setRequiredParameters

将必需参数设置为发送数据到 Google Analytics 和初始化会话的方法。

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

changeHitType

使用 HitTypeEnum 设置 Hit 类型的方法。

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

getValueEnumGAParameter

获取枚举表示的值。

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

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

许可

SimpleGoogleAnalytics 在 GNU 许可下发布。有关详细信息,请参阅 COPYING。