계속 쓸것 같아서 만들어 봤습니다.
1. AndroidManifest.xml 추가
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version"/>
<activity android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
<!-- Interstitial 광고를 사용하기 위해서는 반드시 이 부분을 추가해야한다. -->
<activity android:name="net.daum.adam.publisher.impl.AdInterstitialActivity"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="portrait" />
2. layout.xml 추가
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical" >
광고 넣을 부분에 아래사항 추가
<FrameLayout
android:id="@+id/adLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.gms.ads.AdView
android:id="@+id/adAdmobView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:adSize="BANNER"
ads:adUnitId="각자 코드 삽입"/>
<net.daum.adam.publisher.AdView
android:id="@+id/adAdamView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</FrameLayout>
3. java file 추가
AdControl.getInstance().InitBanner(findViewById(R.id.adAdamView), findViewById(R.id.adAdmobView));
AdControl.getInstance().InitInterstitial(this);
4. adControl.java file 내용
public class AdControl {
private static AdControl instance;
private View mAdamView;
private View mAdmobView;
private boolean mAdamInterstitial = false;
public static AdControl getInstance(){
if(instance == null){
instance = new AdControl();
}
return instance;
}
public void InitInterstitial(Activity _activity){
AdamControl.getInstance().InitInterstitialAdam(_activity);
AdmobControl.getInstance().InitInterstitialAdmob(_activity);
}
public void DisplayInterstitial(){
if(AdamControl.getInstance().mAdInterstitial.isReady())
AdamControl.getInstance().DisplayInterstitial();
else
AdmobControl.getInstance().DisplayInterstitial();
}
public void InitBanner(View _adamView, View _admobView){
mAdamView = _adamView;
mAdmobView = _admobView;
AdamControl.getInstance().InitBannerAdam(mAdamView);
}
public void Destroy(){
AdamControl.getInstance().Destroy();
AdmobControl.getInstance().Destroy();
}
private void ShowAdamView(){
mAdamView.setVisibility(View.VISIBLE);
mAdmobView.setVisibility(View.INVISIBLE);
}
private void ShowAdmobView(){
mAdmobView.setVisibility(View.VISIBLE);
mAdamView.setVisibility(View.INVISIBLE);
}
Handler mADHandler = new Handler(){
public void handleMessage(Message msg) {
if( msg.what == 0){
//adam 실패
AdmobControl.getInstance().InitBannerAdmob(mAdmobView);
ShowAdmobView();
}
if( msg.what == 1){
//adam 성공
ShowAdamView();
}
}
};
}
5. AdamControl.java
public class AdamControl {
private static AdamControl instance;
AdInterstitial mAdInterstitial = null;
private AdView adView = null;
public static AdamControl getInstance(){
if(instance == null){
instance = new AdamControl();
}
return instance;
}
public void Destroy(){
if (adView != null) {
adView.destroy();
adView = null;
}
if (mAdInterstitial != null) {
mAdInterstitial = null;
}
}
public void InitInterstitialAdam(Activity _activity){
// 1. 전면형 광고 객체 생성
mAdInterstitial = new AdInterstitial(_activity);
// 2. 전면형 광고 클라이언트 ID를 설정한다.
mAdInterstitial.setClientId("각자 key 삽입");
// 3. (선택)전면형 광고 다운로드시에 실행할 리스너
mAdInterstitial.setOnAdLoadedListener(new OnAdLoadedListener() {
@Override
public void OnAdLoaded() {
Log.d("jwm", "전면광고가 로딩되었습니다.");
}
});
// 4. (선택)전면형 광고 다운로드 실패시에 실행할 리스너
mAdInterstitial.setOnAdFailedListener(new OnAdFailedListener() {
@Override
public void OnAdFailed(AdError error, String errorMessage) {
Log.d("jwm", "전면광고 " + errorMessage);
// Toast.makeText(InterstitialActivity.this, errorMessage, Toast.LENGTH_LONG).show();
}
});
// 5. (선택)전면형 광고를 닫을 시에 실행할 리스너
mAdInterstitial.setOnAdClosedListener (new OnAdClosedListener() {
@Override
public void OnAdClosed() {
Log.d("jwm", "전면광고를 닫았습니다. ");
}
});
}
public void DisplayInterstitial(){
// 6. 전면형 광고를 불러온다.
mAdInterstitial.loadAd();
}
public void InitBannerAdam(View _view) {
boolean isLoad = false;
// Ad@m sdk 초기화 시작
adView = (AdView) _view;
adView.setClientId("각자 key 삽입"); //배너
// 광고 리스너 설정
// 1. 광고 클릭시 실행할 리스너
adView.setOnAdClickedListener(new OnAdClickedListener() {
@Override
public void OnAdClicked() {
Log.d("jwm", "광고를 클릭했습니다.");
}
});
// 2. 광고 내려받기 실패했을 경우에 실행할 리스너
adView.setOnAdFailedListener(new OnAdFailedListener()
{
@Override
public void OnAdFailed(AdError error, String message) {
Log.d("jwm", "adam" + message);
AdControl.getInstance().mADHandler.sendEmptyMessage(0);
}
});
// 3. 광고를 정상적으로 내려받았을 경우에 실행할 리스너
adView.setOnAdLoadedListener(new OnAdLoadedListener()
{
@Override
public void OnAdLoaded() {
Log.d("jwm", "광고가 정상적으로 로딩되었습니다.");
AdControl.getInstance().mADHandler.sendEmptyMessage(1);
}
});
// 4. 광고를 불러올때 실행할 리스너
adView.setOnAdWillLoadListener(new OnAdWillLoadListener() {
@Override
public void OnAdWillLoad(String url) {
Log.d("jwm", "광고를 불러옵니다. : " + url);
}
});
// 5. 전면형 광고를 닫았을때 실행할 리스너
adView.setOnAdClosedListener(new OnAdClosedListener()
{
@Override
public void OnAdClosed() {
Log.d("jwm", "광고를 닫았습니다.");
}
});
// 할당 받은 clientId 설정
// adView.setClientId(“TestClientId”);
// 광고 갱신 주기를 12초로 설정
adView.setRequestInterval(12);
// 광고 영역에 캐시 사용 여부 : 기본 값은 true
adView.setAdCache(false);
// Animation 효과 : 기본 값은 AnimationType.NONE
adView.setAnimationType(AnimationType.FLIP_HORIZONTAL);
adView.setVisibility(View.VISIBLE);
}
}
6. AdmobControl.java
public class AdmobControl {
private static AdmobControl instance;
private AdView adView = null;
private InterstitialAd interstitial = null;
public static AdmobControl getInstance(){
if(instance == null){
instance = new AdmobControl();
}
return instance;
}
public void Destroy(){
if (adView != null) {
adView.destroy();
adView = null;
}
if (interstitial != null) {
interstitial = null;
}
}
public void InitInterstitialAdmob(Context _context){
interstitial = new InterstitialAd(_context);
interstitial.setAdUnitId("각자 key 삽입");
AdRequest adRequest1 = new AdRequest.Builder().build();
interstitial.loadAd(adRequest1);
}
public void InitBannerAdmob(View _view){
adView = (AdView) _view;
adView.setAdListener(new AdListener() {
public void onAdLoaded() {
adView.bringToFront();
}
});
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);
}
public void DisplayInterstitial(){
if(interstitial.isLoaded()){
interstitial.show();
}
}
}
'Android' 카테고리의 다른 글
이클립스 개발환경 배경색상 폰트 바꾸기 (0) | 2014.11.08 |
---|---|
android 간단한 값 저장 SharedPreferences Class (0) | 2014.11.06 |
flat design site (0) | 2014.11.04 |
android webview 간단 사용법 (0) | 2014.11.03 |
android 롤리팝 color (0) | 2014.11.02 |