广告SDK开发经验总结

一、SDK简介

SDK全称 Software Development Kit,即软件开发工具包。通常是辅助开发某个软件而抽出剥离的特定功能软件包。与App开发的不同,SDK通常更偏向功能的开发实现,App则是从用户层面到业务逻辑,全程处理用户的行为。

二、SDK核心原则

  1. 稳定性: 崩溃率≤4‰

SDK作为嵌入在App里面的一部分,可能会被多个App集成使用,这必须要求SDK性能稳定,没有崩溃。通常开发中,多做一些校验判断,以及可能出现异常的地方进行捕获(注意线程内部产生的异常,需要在线程内部进行捕获)。
通常业界App的崩溃率在4‰左右,提供代码质量是一方面,增加线上异常捕获是一方面。通过线上异常的反馈,迭代修复增进稳定性。

2.安全性:无安全风险、遵守规范

SDK必须没有安全风险,如注入、包含病毒、违反隐私规范等可能导致App被应用市场下架的风险。
常见的如:js注入风险,上架GP等应用市场可能需要遵守相关规定,海外市场如安全隐私条例等。

3.高性能:内存占用小、无经常性卡顿

一些公司对上线产品有严格的性能检测指标,对于集成的SDK也有相应的标准要求。SDK尽可能的占用较小的内存,不会造成性能的卡顿等。

4.体积小:减少或避免直接依赖三方库

SDK包要小而精,避免造成接入方包体积过程。包体积过大,下载耗时长,不利于广告转化。
策略:尽量不依赖第三方开源库(可以进行功能裁剪接入)、 使用混淆等

5.对外接口要求
5.1 简单易用性

接口尽量简单,接口数量不会太多。减少使用方集成接入成本。

5.2 命名规范统一

命名除了编码上的命名规范,所见即所得外,最好形成统一的风格,能一眼看出是哪家厂商的SDK,好的规范能形成口碑,促进提升品牌效应。

5.3 跨端接口尽量保持一致

对于同一套SDK,尽量保持各端的接口命名、实现逻辑一致,减少接入过程中的困惑,减少技术支持成本,给人较好的接入体验。

5.4 接口兼容性:新老接口的兼容、新功能兼容

新版本尽可能的兼容老版本,避免已经集成的开发者在接入新版本后,出现问题,提高新版本的推进铺量速度。

6.高健壮性、高鲁棒性

要尽可能的提高程序的健壮性、鲁棒性。对于依赖服务端、开发者、或用户配合的各种环境,我们要有各种冗长兜底的逻辑,假定各种依赖环境异常,我们也务必要保证程序的稳定性,尽可能的采用兜底方案,减少对业务的损失。

三、SDK集成与维护
1.集成方式:灵活多样

SDK集成方式尽可能灵活方便。对于Android,可以采用maven,gradle依赖引入,或者直接提供jar、aar包来集成。

2.集成指南

对于SDK的集成步骤,使用步骤,版本更新说明,API接口介绍等,应用详细的文档说明。常见的官方文档包括:

  • 概要
  • 集成前准备
  • 获取SDK
  • 初始化
  • 使用说明
  • 测试说明
  • 集成建议&常见问题
  • changeLog
  • 其他须知

3.集成测试

可以提供检测集成工具,帮助开发者检验是否正确接入。或者必要的测试步骤以及结果说明引导开发者完成集成测试。

四、SDK开发经验
1.埋点要全

对于SDK内部的各种行为,流程,尽可能的加入埋点。通过埋点,为业务方数据分析提供支持。

2.灵活配置化:铺量至少2周

SDK由于需要App的集成,依赖App的发版周期,导致铺量时间长。所以对于SDK内的业务支持,尽可能采用灵活的方式实现,如配置化,H5化。

3.SDK架构图
架构图画的比较简单,有一点点问题,如bid模块的存储地方,暂不修改,仅供参考


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

推荐阅读更多精彩内容

  • 相比于APP的开发,SDK的开发有些不同:1、拓展性要求更高:SDK需要对外提供接口,无论是迭代还是重构,原有接口...
    张明云阅读 1,623评论 0 5
  • 做SDK开发很久了,这里备注下日常开发中的几个常规项。对于有经验的开发都来说,这篇文章没有任何意义。如果你不小心走...
    秦砖阅读 1,679评论 3 8
  • 在公司做了两年多的 SDK 开发,结合自己的所知所学,分享一些 SDK 开发的经验。 1. SDK 是什么 相信做...
    落英坠露阅读 1,920评论 0 3
  • 原文: SDK开发过程的一些问题总结 过去的一年多时间里都在做SDK, 这一年从Web开发转到Android开发也...
    erichua23阅读 20,487评论 4 10
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,538评论 28 53