Magent插码SDK遗留问题

BEH_SEND_PATH:发送日志后缀名

#define BEH_SEND_PATH @"m"  //  添加埋点事件,比如APP启动,自定义事件,用户留存等

#define CLK_SEND_PATH @"aclk"  // 推荐统计,在sdk代码里已经集成,统计页面访问量

#define SHARE_SEND_PATH @"ashare"  // 没用到

#define PUSH_SEND_PTH @"apush"  // 没用到

#define COMMENT_SEND_PTH @"acomment"  // 没用到

#define AFAV_SEND_PTH @"afav"  // 没用到

APP设置里面有发送时机的设置: 有启动时发送, 和间隔时间发送两种

会优先网络同步的信息,然后是用户自己配置的信息,如果都没有,采用sdk内置的默认值,如下如:

#define policyInterval @"INTERVAL" // 定时器间隔发送

#define policyBatch @"BATCHING"  // 启动时候会发送

        UDID获取使用两种方式, 如果支持idfa则取idfa, 否则使用idfv_时间戳的形式, 后者存储到keychain, 前者未进行存储.

idfa:

每个设备只有一个IDFA,不同APP在同一设备上获取IDFA的结果是一样的,它是系统存储的。设备重启不会产生新的IDFA

但IDFA存在重新生成的情况:

用户完全重置系统(设置程序 -> 通用 -> 还原 -> 还原位置与隐私)

用户明确还原广告(设置程序-> 通用 -> 关于本机 -> 广告 -> 还原广告标示符)

苹果禁止不使用广告而采集idfa的情况。

idfv:

com.example.app1和com.example.app2,只有最后的后缀不同,所以会产生相同的vendor ID

注意:如果用户将属于此Vender的所有App卸载,则idfv的值会被重置,即再重装此Vender的App,idfv的值和之前不同

keychain:

keychain不是存储在手机的沙盒内,而是手机的某个公共区域,手机重启和应用卸载,都不会对这片存储区域造成影响,因为是加密 存储不存在被其他应用修改的问题,所以就有人拿keychain来存储唯一标识

综上总结:

sskeychain+idfv  用来保存唯一标识,无论卸载或重装都不会改变,但不同vender生成的标识不一样,一部手机会有很多不同vender。所以我们可以先获取idfa(因为有苹果审核可以做个宏给开发做选择),获取不到的情况下在使用sskeychain+idfv。

        startPage里向list中添加对象, endPage时只取last和end的page进行比对, 是否合理.

他的逻辑应该是,一个页面展示和销毁分别调用startPage和endPage,这是一种情况。另外一种情况是打开页面A调用一次startPage,在该页面又打开另外的页面B,上一个页面仍然能看到或者没有销毁。此时如果销毁B,在销毁A,那么仍是合理的。

endpage的remove按照先进后出的顺序,也就是view的生命周期符合栈的规律就是合理的。

sessionBgTimeOuts 是什么字段

唯一使用到的地方:

if ([[[mAgentConfig sharedInstance] sessionBgTimeOuts] intValue] < space)

            self.sess_time = [NSDate date];

    }

这里统计sess_time,值代表进入前台激活的时间,如果离线时间大于于sessionBgTimeOuts的值,那么会sess_time会重新被赋值 。这里sessionBgTimeOuts意思是:App进入后台多久后刷新sess_time。

appList 有什么用么.

  NSArray *targetList = @[

                      @{@"name": @"微信", @"urlName": @"weixin"},

                      @{@"name": @"facebook", @"urlName": @"fb"},

                      @{@"name": @"微博", @"urlName": @"weibo"}

                      ];

if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:url]]) {            if (isDebug)                NSLog(@"install %@", name);            [dic setValue:name forKey:[NSString stringWithFormat:@"%d", count]];            count++;

这里appList应该是线上配置完了后,下发到sdk通过canOpenURL来遍历应用和手机已装app匹配,然后发送    [MAgent onEvent:@"APPLIST" attributes:dic]日志。目前无法使用好像ios10这种方法给禁止了。

        MonitorButton 具体是什么.

监控一个view里面的button事件的点击,monitorList是从平台配置获取到的,数组元素是type是button,代码里的button的tag要和平台的tag一致才能绑定事件。目测是无埋点。感觉有点简单粗暴,没有测试过。

watchNow 里面调用到很多个uploadInfo, 具体是什么样的发送流程.

多个uploadInfo,每个代表不同的本地文件,文件名不一样,发送的地址不一样。

文件里存的是数组,把每个元素拼接成字符串,中间用/n隔开,然后把字符串序列化成二进制,在通过gzip方式压缩,增快传输速度和减少服务器使用带宽。

发送的一些配置是否都能生效, 是在哪里控制发送流程的, 目前只发现了发送时机和发送网络状态的配置生效.

如app发送时机问题:

会优先网络同步的信息,然后是用户自己配置的信息,如果都没有,采用sdk内置的默认值

uploadInfo 中如果遇到正在写入的情况就停止发送, 正在发送的情况没有操作, 是否正在发送中的状态对下次发送没有影响.

无影响,justWriteToFile是在主线程做的,uploadInfo这个方法也是主线程判断isWritring,所以说写数据后再执行watchNow。他们是顺序执行下去的,建议优化把写数据和上传放在一个串行队列里面。

要发送的数据存到本地, 存了几个文件, 分别存了些什么

如问题1

发送的数据分了类别, 现在是否用到了, 在后台页面能体现吗.

onAppEnd 中把clickList列表中的数据, 存了好几个文件, 发送的时候, 这几个文件中的数据又都进行发送, 是怎么回事.

// for(BehInfo *info in self.clickList) // { // info.isaborted = @"1"; // [self justWriteToFile:info sendPath:SHARE_SEND_PATH]; // } // for(BehInfo *info in self.clickList) // { // info.isaborted = @"1"; // [self justWriteToFile:info sendPath:PUSH_SEND_PTH]; // } // for(BehInfo *info in self.clickList) // { // info.isaborted = @"1"; // [self justWriteToFile:info sendPath:COMMENT_SEND_PTH]; // } // for(BehInfo *info in self.clickList) // { // info.isaborted = @"1"; // [self justWriteToFile:info sendPath:AFAV_SEND_PTH];

以上代码需要注释在uar中没有用到

clickList 这个数组没有初始化, 没有写入操作, 只有读取操作, 会产生些无效操作, 是不是没必要.

是的,因为list是那种有可能会存多个事件情况,clickList意思是推荐点击,是瞬时事件是没有必要的,可以删掉




©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,701评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,649评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,037评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,994评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,018评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,796评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,481评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,370评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,868评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,014评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,153评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,832评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,494评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,039评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,156评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,437评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,131评论 2 356

推荐阅读更多精彩内容