Skip to content

Instantly share code, notes, and snippets.

@rlarla245
Last active February 22, 2019 10:54
Show Gist options
  • Save rlarla245/ee44aa07af5e9be700940142a8700e6f to your computer and use it in GitHub Desktop.
Save rlarla245/ee44aa07af5e9be700940142a8700e6f to your computer and use it in GitHub Desktop.
Firebase 15 - Interstitial, Native, Rewarded Video
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:gravity="center"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".BannerAdActivity">
<com.google.android.gms.ads.AdView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
ads:adSize="BANNER"
ads:adUnitId="ca-app-pub-3940256099942544/6300978111">
</com.google.android.gms.ads.AdView>
<LinearLayout
android:gravity="center"
android:layout_marginTop="10dp"
android:layout_marginLeft="45dp"
android:layout_marginRight="45dp"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/banneradactivity_button_interstitial"
android:text="interstitial"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:id="@+id/banneradactivity_button_rewardvideo"
android:layout_margin="3dp"
android:text="video"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
15. Firebase – Interstitial, Native, Rewarded Video
1. 문서로 이동 – Interstitial을 참조합니다. 기존 배너 코드는 banner라는 새로운 메소드를 만들어 내부에 입력합니다.
- Interstitial 인스턴스 코드들도 불러옵니다.
해당 광고는 버튼을 눌러야만 실행할 수 있습니다.
- 로드 코드도 불러옵니다.
- 새로운 버튼을 생성한 뒤 리스너를 달아줍니다.
내부 메소드에 show 메소드를 입력합니다.
// 현재 advanced 외에 지원하지 않습니다.
2. Native Ads로 이동합니다. 레이아웃 코드들을 불러옵니다. 에러 잡습니다.
- 작은 광고 화면으로 바꿔주기 위해 문서 좌측 상단의
Test Ads – Native Express의 스몰 아이콘 아이디를 입력합니다.
- 문서 내 광고 불러오기 란의 변수 생성 및 호출 코드를 불러옵니다.
아이디 맞게 변경해주는거 잊지 맙시다.
- advanced 버전이 궁금하면 샘플로 이동 – github 내 admob으로 이동 – NativeAdvanceExample로 이동
3. Reward Video로 이동합니다. 생성 및 호출 코드들을 붙입니다.
- 영상 로드 코드도 불러옵니다. 에러가 발생하면 RewardedVideoAdListener
인터페이스를 추가합니다.
- 이 또한 버튼을 통해 show 되므로 버튼을 생성한 뒤 리스너를 달아 수행합니다.
public class BannerAdActivity extends AppCompatActivity implements RewardedVideoAdListener {
public AdView mAdView;
private InterstitialAd mInterstitialAd;
private RewardedVideoAd mRewardedVideoAd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_banner_ad);
MobileAds.initialize(this, "ca-app-pub-3940256099942544~3347511713");
// 배너 메소드
mAdView = findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
mAdView.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
// Code to be executed when an ad finishes loading.
}
@Override
public void onAdFailedToLoad(int errorCode) {
// Code to be executed when an ad request fails.
}
@Override
public void onAdOpened() {
// Code to be executed when an ad opens an overlay that
// covers the screen.
}
@Override
public void onAdLeftApplication() {
// Code to be executed when the user has left the app.
}
@Override
public void onAdClosed() {
// Code to be executed when when the user is about to return
// to the app after tapping on an ad.
}
});
// Interstitial
mInterstitialAd = new InterstitialAd(this);
mInterstitialAd.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
mInterstitialAd.loadAd(new AdRequest.Builder().build());
findViewById(R.id.banneradactivity_button_interstitial).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mInterstitialAd.show();
}
});
// Native Ads
// NativeExpressAdView adView = (NativeExpressAdView)findViewById(R.id.adView_nativead);
// AdRequest request = new AdRequest.Builder().build();
// adView.loadAd(request);
// 보상 동영상
mRewardedVideoAd = MobileAds.getRewardedVideoAdInstance(this);
mRewardedVideoAd.setRewardedVideoAdListener(this);
mRewardedVideoAd.loadAd("ca-app-pub-3940256099942544/5224354917",
new AdRequest.Builder().build());
findViewById(R.id.banneradactivity_button_rewardvideo).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mRewardedVideoAd.show();
}
});
}
// 보상 동영상 리스너
@Override
public void onRewardedVideoAdLoaded() {
}
@Override
public void onRewardedVideoAdOpened() {
}
@Override
public void onRewardedVideoStarted() {
}
@Override
public void onRewardedVideoAdClosed() {
}
@Override
public void onRewarded(RewardItem rewardItem) {
}
@Override
public void onRewardedVideoAdLeftApplication() {
}
@Override
public void onRewardedVideoAdFailedToLoad(int i) {
}
@Override
public void onRewardedVideoCompleted() {
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment