如何接入
本章详细介绍 Android 和 iOS App 集成 EasyFly-Ads SDK 的完整步骤,帮助开发者快速完成接入。
Android 接入
环境要求
| 项目 | 要求 |
|---|---|
| 最低 API Level | 21 (Android 5.0) |
| 目标 API Level | 33+ (Android 13) |
| 编译 SDK | 34+ |
| Kotlin | 1.8+ |
| Gradle | 7.0+ |
1. 添加依赖
在项目根目录 build.gradle 中:
groovy
allprojects {
repositories {
maven { url 'https://maven.easyfly.com/repository/maven-public/' }
google()
mavenCentral()
}
}在 App 模块 build.gradle 中:
groovy
dependencies {
// 基础SDK(必须)
implementation 'com.easyfly:core:1.0.0'
// 广告模块
implementation 'com.easyfly:ad:1.0.0'
// 钱包模块(金币系统)
implementation 'com.easyfly:wallet:1.0.0'
// 或直接集成全部
// implementation 'com.easyfly:all:1.0.0'
}2. 配置 AndroidManifest.xml
xml
<manifest>
<!-- 网络权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 获取设备信息(广告需要) -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!-- 访问网络状态 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<application>
<!-- 配置 AppKey -->
<meta-data
android:name="EASYFLY_APP_KEY"
android:value="your_app_key" />
</application>
</manifest>3. SDK 初始化
在 Application 类中初始化:
kotlin
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
// 初始化 EasyFly-Ads SDK
EasyFly.init(this, EasyFlyConfig.Builder()
.setAppKey("your_app_key") // 后台获取的 AppKey
.setDebugMode(BuildConfig.DEBUG) // Debug 模式开关
.setUserId(currentUserId) // 用户ID(登录后设置)
.build()
)
}
}4. 广告接入示例
kotlin
// 开屏广告
class SplashActivity : AppCompatActivity() {
private lateinit var splashAd: SplashAd
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
splashAd = EasyFly.createSplashAd(this, "scene_splash_home")
splashAd.setAdListener(object : SplashAdListener {
override fun onAdLoaded() { splashAd.show() }
override fun onAdDismissed() { navigateToMain() }
override fun onAdFailed(code: Int, msg: String) {
navigateToMain() // 加载失败直接进入主页
}
})
splashAd.load()
}
}
// 激励视频广告
class GameActivity : AppCompatActivity() {
private fun showRewardAd() {
EasyFly.createRewardAd(this, "scene_reward_level")
.setUserLevel(userId, "level_5") // 可选:传入用户等级
.setRewardName("金币 x100")
.setRewardAmount(100)
.setRewardCallback { reward ->
// 发放奖励
Wallet.addCoins(reward.amount)
showToast("获得 ${reward.name}!")
}
.show()
}
}iOS 接入
环境要求
| 项目 | 要求 |
|---|---|
| 最低版本 | iOS 12.0 |
| Swift | 5.5+ |
| Xcode | 14.0+ |
| CocoaPods | 1.11+ |
1. 添加依赖 - CocoaPods
ruby
# Podfile
pod 'EasyFlyAds', '~> 1.0.0'
# 安装
pod install2. 配置 Info.plist
xml
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
<key>EASYFLY_APP_KEY</key>
<string>your_app_key</string>3. SDK 初始化
swift
import EasyFlyAds
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// 初始化
let config = EasyFlyConfig.Builder()
.appKey("your_app_key")
.debugMode(false)
.build()
EasyFly.initialize(config)
return true
}
}4. 广告接入示例
swift
// 开屏广告
class SplashViewController: UIViewController {
func loadSplashAd() {
EasyFly.createSplashAd(sceneId: "scene_splash_home",
viewController: self)
.setAdListener { result in
switch result {
case .loaded:
// 广告加载成功,自动展示
break
case .dismissed:
self.navigateToMain()
case .failed(let code, let message):
print("广告加载失败: \(code) - \(message)")
self.navigateToMain()
}
}
.load()
}
}
// 激励视频
func showRewardAd() {
EasyFly.createRewardAd(sceneId: "scene_reward_level",
viewController: self)
.setRewardInfo(name: "金币 x100", amount: 100)
.setRewardCallback { reward in
Wallet.addCoins(reward.amount)
}
.show()
}数据上报验证
接入完成后,在测试环境验证数据上报:
kotlin
// Android 开启调试日志
EasyFly.setLogLevel(LogLevel.DEBUG)
// 查看日志输出
// D/EasyFly: 初始化成功 appKey=xxx
// D/EasyFly: 广告请求 scene=splash_home
// D/EasyFly: 广告加载成功 adId=xxx
// D/EasyFly: 广告展示上报 adId=xxx
// D/EasyFly: 广告点击上报 adId=xxx接入检查清单
- [ ] SDK 依赖正确添加,编译通过
- [ ] AppKey 配置正确
- [ ] AndroidManifest / Info.plist 权限配置完整
- [ ] SDK 初始化在 Application 中调用
- [ ] 开屏广告加载和展示正常
- [ ] 激励视频奖励回调触发正常
- [ ] 数据上报日志有正常输出
- [ ] 后台统计数据有更新
- [ ] 混淆规则已配置(Android)
混淆配置(Android)
proguard-rules.pro:
proguard
# EasyFly SDK
-keep class com.easyfly.** { *; }
-dontwarn com.easyfly.**
# 广告联盟(按需添加)
-keep class com.bytedance.sdk.** { *; } # 穿山甲
-keep class com.qq.e.** { *; } # 优量汇
-keep class com.kwad.** { *; } # 快手
-keep class com.baidu.mobads.** { *; } # 百度下一步
- APP 配置 —— 后台配置 App 参数
- APP 上架应用商店 —— 准备上架材料