广告SDK(Android)
# 1. 准备工作
- 创建Fascode Ads帐户(还没有帐户?注册新帐户)
- 已将App添加到Fascode Ads(还没有App? 添加新App)
- 使用Android Studio 3.4或更高版本
- App的支持版本在Android 6.0及以上(
minSdkVersion>=16) compileSdkVersion>=28
# 2. 引入SDK
通过使用指向 Maven代码库的 Gradle 依赖项,应用可以导入 Fascode广告SDK。首先,请确保在项目级 build.gradle 文件的 allprojects 部分引用了 mavenCentral()。
- project-level build.gradle
allprojects {
repositories {
mavenCentral()
}
}
接下来,请打开您应用的应用级 build.gradle 文件,并添加SDK的依赖项到dependencies中
dependencies {
implementation "com.fascode.ads:fascode-ads:1.+"
...// 其它依赖项
}
# 3. 使用SDK
# 3.1 获取Publisher Id
前往 Account 获得你的 Publisher Id
# 3.2 初始化SDK
加载广告之前,请先调用 FascodeAds.shared().init(...),以便让应用初始化移动广告 SDK。该方法将初始化相应 SDK,并在初始化完成后或 30 秒超时后回调完成监听器。此操作仅需执行一次,最好是在应用启动时执行。
import com.fascode.ads.FascodeAds
import com.fascode.ads.initialization.InitializationStatus
import com.fascode.ads.initialization.onInitializationComplete
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
FascodeAds.shared().init(this, "<Your Publisher ID>") {}
}
}
import com.fascode.ads.FascodeAds;
import com.fascode.ads.initialization.InitializationStatus;
import com.fascode.ads.initialization.onInitializationComplete;
class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
FascodeAds.shared().init(this, "<Your Publisher ID>", new OnInitializationCompleteListener() {
@Override
public void onInitializationComplete(InitializationStatus initializationStatus) {
}
});
}
}
# 4. 创建广告单元
请前往 Fascode广告控制台-创建新广告单元,你需要按照本节中接下来的步骤创建一个或多个广告单元,广告单元将决定会展示的广告特性。
如果使用已有的广告单元,请跳过本节前往 5. Show Ads
# 4.1 选择广告类型
在Android App中,你可以选择如下广告类型:
- 横幅广告
- 插页式广告
- 视频插播广告
- 自定义广告
- 玩家激励广告
Tips
- 玩家激励广告并不是一种独立类型,而是激励玩家观看视频插播广告而获得应用内奖励的方法。
# 4.2 选择广告策略
默认为全选,您也可以手动设置广告策略来进行人为优化。
# 4.3 设置刷新间隔(仅适用于横幅广告)
如果展示的是横幅广告,则可以设置刷新间隔(秒单位)来定期替换所展示的广告。
# 4.4 保存广告单元
保存,系统将生成一个新的广告单元,并返回给你 Ad Unit ID,该值将被用于植入广告到应用中。
# 5. 植入广告
# 5.1 横幅广告
# 向布局中添加广告位 BannerAd
# main_activity.xml
...
<com.fascode.ads.BannerAd
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/bannerAd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
ads:adUnitId="<Ad Unit ID>">
</com.fascode.ads.BannerAd>
...
请注意设置以下必需属性:
- adUnitId: 即广告单元ID(
Ad Unit ID),如果还没有获取,请参考 4. 创建广告单元
你也可以在应用程序的代码中创建 BannerAd :
mBannerAd = FascodeAds.shared().createBannerAd(this, "<Ad Unit ID>")
// TODO: 添加AdBanner到你的画面布局中.
mBannerAd = FascodeAds.shared().createBannerAd(this, "<Ad Unit ID>");
// TODO: 添加AdBanner到你的画面布局中.
# 向BannerAd中加载广告
BannerAd 放置好后,下一步是加载广告。广告加载是使用 BannerAd 类中的 loadAd() 方法完成的。此方法需要一个 AdRequest 参数,该参数中包含关于单个广告请求的运行时信息(如定位信息)。
下例显示了如何通过 Activity 的 onCreate() 方法加载广告:
class MainActivity : AppCompatActivity() {
lateinit var mBannerAd : BannerAd
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// In case BannerAd is added to Layout(R.layout.activity_main)
mBannerAd = findViewById(R.id.bannerAd)
val adRequest = FascodeAds.shared().createAdRequest();
mBannerAd?.loadAd(adRequest)
}
}
// MainActivity.java
public class MainActivity extends AppCompatActivity {
private BannerAd mBannerAd;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// In case BannerAd is added to Layout(R.layout.activity_main)
mAdView = findViewById(R.id.bannerAd);
AdRequest adRequest = FascodeAds.shared().createAdRequest();
mBannerAd.loadAd(adRequest);
}
}
注意
横幅广告通常显示在画面底部或顶部,请确保广告能够正常显示,并且没有干扰到画面中的其他组件。
# 5.2 插页式广告
插页式广告不能插入到布局中,而只能通过编程来展示,并且要确保关闭按钮(右上角按钮)没有被遮挡。
请在需要展示插页式广告的时机(例如Activity.onCreate()中)调用如下代码:
val interstitialAd = FascodeAds.shared().createInterstitialAd(this, "<Ad Unit ID>");
val adRequest = FascodeAds.shared().createAdRequest();
interstitialAd.loadAd(adRequest);
InterstitialAd interstitialAd = FascodeAds.shared().createInterstitialAd(this, "<Ad Unit ID>");
val adRequest = FascodeAds.shared().createAdRequest();
interstitialAd.loadAd(adRequest);
# 5.3 视频插播广告
与插页式广告相同,视频插播广告,也只能在编程来展示。 请在需要展示视频插播广告的时机(例如一轮游戏结束时)调用如下代码:
val videoAd = FascodeAds.shared().createVideoAd(this, "<Ad Unit ID>");
val adRequest = FascodeAds.shared().createAdRequest();
videoAd.loadAd(adRequest);
VideoAd videoAd = FascodeAds.shared().createVideoId(this, "<Ad Unit ID>");
val adRequest = FascodeAds.shared().createAdRequest();
videoAd.loadAd(adRequest);
# 5.4 自定义广告
当你在控制面板中创建的广告单元是原生定制类型的话,则意味着该广告单元的ID只会加载和展示您创建的单个固定广告。 在应用中展示的方法等同于 5.1 横幅广告,5.2 插页式广告 ,5.3 视频插播广告 的实现方法。
# 5.5 用户激励广告
为了鼓励用户把广告看完,你可能会加入激励机制,这种情况下,你应该会需要监听 6. 广告事件来确定是否应该给予奖励。
# 6. 广告事件
要进一步自定义你的广告行为,你可以在广告生命周期内加入许多事件,如加载、打开、关闭等等。你可以通过 AdListener 类监听这些事件。
要将 AdListener 用于监听广告事件,请调用 setAdListener() 方法:
mInterstitialAd.setAdListener(object: AdListener {
override void onAdLoaded() {
// Ad Loading completed
}
override void onAdFailedToLoad(int errorCode) {
// Ad loading failed
}
override void onAdOpened() {
// Ad showing started
}
override void onAdClicked() {
// Ad clicked
}
override void onAdClosed() {
// Ad closed
}
}
mInterstitialAd.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
// Ad Loading completed
}
@Override
public void onAdFailedToLoad(int errorCode) {
// Ad loading failed
}
@Override
public void onAdOpened() {
// Ad showing started
}
@Override
public void onAdClicked() {
// Ad clicked
}
@Override
public void onAdClosed() {
// Ad closed
}
});
# 7. 测试
请务必用测试广告单元ID进行测试,信息如下:
adUnitId: Fascode-Ads-Test-AdUnitId