Latest 1.0.5
Homepage https://github.com/XSSheng/CYSDKKit
License MIT
Platforms ios 8.1, requires ARC
Frameworks Security, CoreLocation, CoreTelephony, WebKit
Authors

CYSDKKit

鋆创无埋点sdk 联系方式qq:986852522

本sdkdemo 借用github开源项目 感谢写项目的小伙伴

终端检索sdk方法 pod search CYSDKKit –simple

本sdk接入方式有两种

1 利用pod导入无埋点相关sdk (推荐)

//相信pod大家都用过,我就不具体介绍如何安装和使用cocoaPods了
pod 'CYDataSDK', '~> 1.0.3'

2 手动导入sdk

1 把CYSDKKit工程下载到本地

把sdk文件夹CYSDK 添加到您的项目

提醒:记得勾选 "Copy items if needed"

  1. 添加6依赖

    在您的工程项目中添加依赖

    添加依赖库Security.framework CoreLocation.framework CoreTelephony.framework libz.tbd libsqlite3.tbd WebKit.frameWork

    添加项目依赖库的位置在 项目设置target -> 选项卡General -> Linked Frameworks and Libraries

  2. 添加编译参数

    在您的工程项目中添加编译参数

    找到 Linking 设置

    在 Other Linker Flags 中添加 -ObjC 参数,请注意大小写

    提醒:Linking 设置位于 项目设置 target -> 选项卡 Build Settings,左上角选择 All。

    3 网络适配

    在info.plist添加(https请求按自己方式配置)

    NSAppTransportSecurity
    NSAllowsArbitraryLoads

    4 添加初始化函数

    在 AppDelegate 中引入#import " XXReporter.h"并添加启动方法

    • (BOOL)application:(UIApplication )application
      didFinishLaunchingWithOptions:(NSDictionary
      )launchOptions {

      // 启动
      [XXReporter isOpenTestLog:YES];
      [XXReporter startWithAppID:@"shihui" withIdfa:@"xuidfa" channelID:@"AppStore"];
      [XXReporter crashLog];

请确保将代码添加在上面描述的位置和顺序,添加到其他函数中可能导致数据不准确。

添加圈选功能在 AppDelegate 的方法中

- (BOOL)application:(UIApplication *)application
        openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
     annotation:(id)annotation {
if ([[NSString stringWithFormat:@"%@",url] containsString:@"eju"]) {
    [XXReporter openCircleFunctionWithURL:url];
    return YES;
}}

5 配置URLSchemes

aa
URL Schemes : eju.(appID)

6 uid参数设置

在登录成功后调用

+ (void)setUserID:(NSString *)uid;

在登出成功后调用

+(void)userLogOut;

uid埋点说明:

【例如有一个可以登录和注册的app,在登录的时候会有uid字段来表示用户的唯一标识,因此可以调用以上两个方法对uid进行埋点操作,
第一种情况,例如程序刚刚启动,如果没有自动登录功能这时不需要埋点,SDK会在用户登陆前自动把uid置空,如果用户登陆了,那么这时候要调用方法,埋点uid,SDK会以一个全局变量进行保存,当用户登出是,需要调用方法,把uid置空。
第二种情况,如果有一个app在用户登陆下有一个uid,在未登录时有一个游客id,这时候SDK只会保存一个id,正常程序启动,埋点游客id,当用户注册或登录成功之后需要再次埋点uid,只时候uid会把游客ID覆盖掉,当用户登出是调用方法置空就行。】

4.测试和正式接口切换

+ (void)isOpenTestLog:(BOOL)isOpen;

YES会传输数据到测试接口

NO会传输数据到正式接口

5.添加程序崩溃日志收集方法

+ (void)crashLog;

7 h5界面埋点

手动埋点用户标识 (id)uid

<script type='text/javascript'>
//在用户点击登录按钮后,JS添加如下代码, d 为手动设置的用户ID
var param = {
    eventId: string,//事件id
    d: string,//用户ID
    expand:mapping//自定义数据字典{key:value...}
 };
Cysdk.setEventU(param);
//在用户点击退出按钮后,JS添加如下代码, d 为空字符串
var param = {
  eventId: eventId,
     d: uid,
     expand:{
        key:value
  }
};
Cysdk.setEventU(param);
</script>

说明:
1.当使用UITableView时,如果用到了sectionHeader 或 sectionFooter,自定义view需要使用UITableViewHeaderFooterView,如果直接使用UIView会引起控件ID不准确问题。

2.当客户端使用手势时,需要设置手势的cancelsTouchesInView属性为NO,否则对手势的统计可能会不准确。

@property (nonatomic,assign) BOOL CYAttributesDonotTrack; 

如果不想采集某些view的点击行为数据或ID,将该属性设置为YES,SDK将不会收集

8 添加广告监测

URL Schemes : cysdk
- (BOOL)application:(UIApplication *)application
        openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
     annotation:(id)annotation {
if ([[url scheme] isEqualToString:@"cysdk"])
{
    [XXReporter advertisementTrace:url];
    return YES;
}}

SDK API

/**
App启动时调用改方法,打印启动日志

 @param appid 无埋点appID
 @param idva 广告标识
 @param channelid 渠道号
 */
+ (void)startWithAppID:(NSString *)appid withIdfa:(NSString *)idva channelID:(NSString *)channelid;

/**
 设置uid方法,只在登陆成功处调用此方法

 @param uid 用户ID
 */
+ (void)setUserID:(NSString *)uid;

/**
 登出操作,将uid置为空
 */
+ (void)userLogOut;

/**
 添加程序崩溃日志收集方法
 */
+ (void)crashLog;

/**
 是否开启日志测试接口(此方法用于正式环境和测试环境接口的切换)

 @param isOpen YES会传输数据到测试接口,NO会传输数据到正式接口
 */
+ (void)isOpenTestLog:(BOOL)isOpen;

/**
 客户端埋点eventID

 @param eventID 埋点ID
 @param dic 埋点数据
 */
+ (void)clientEventWithEventID:(NSString *)eventID expandDic:(NSMutableDictionary *)dic;

/**
  集成圈选功能的方法

 @param url 圈选APP传入URL
 */
+ (void)openCircleFunctionWithURL:(NSURL *)url;

/**
添加广告监测

 @param adUrl 渠道广告URL
 */
+ (void)advertisementTrace:(NSURL *)adUrl;

/**
 自定义埋点业务统计

 @param propertyName 业务别名
 @param propertyIdentify 属性数据
 */
+ (void)clientBusinessProperty:(NSString *)propertyName propertyIdentify:(NSString *)propertyIdentify;

Latest podspec

{
    "name": "CYSDKKit",
    "version": "1.0.5",
    "summary": "u6613u5c45u65e0u57cbu70b9u7edfu8ba1sdk",
    "description": "u76eeu524du6b64sdku53eau9650u5185u90e8u4f7fu7528uff0cu82e5u8981u4f7fu7528u8bf7u8054u7cfbu6613u5c45u521bu7814u5de5u4f5cu4ebau5458",
    "homepage": "https://github.com/XSSheng/CYSDKKit",
    "license": "MIT",
    "authors": {
        "XSSheng": "[email protected]"
    },
    "platforms": {
        "ios": "8.1"
    },
    "source": {
        "git": "https://github.com/XSSheng/CYSDKKit.git",
        "tag": "1.0.5"
    },
    "source_files": [
        "CYSDK",
        "CYSDK/Headers/*.{h,m}"
    ],
    "requires_arc": true,
    "vendored_libraries": "CYSDK/*.a",
    "resources": "CYSDK/CYSDKBundle.bundle",
    "frameworks": [
        "Security",
        "CoreLocation",
        "CoreTelephony",
        "WebKit"
    ],
    "libraries": "sqlite3"
}

Pin It on Pinterest

Share This