8. Banner Ad‎ > ‎

1) Android

배너 광고 적용을 위해서는 Tnk 사이트에서 앱 등록 및 Android 프로젝트 상의 SDK 관련 설정이 우선 선행되어야합니다.
[Android Settings] 의 내용을 우선 확인해주세요.

[Banner Ad Loading]

XML 방식 Sample

main_activity.xml


<?xml version="1.0" encoding="utf-8"?>
<RelaytiveLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
    // …

         <com.tnkfactory.ad.BannerAdView

        android:id="@+id/banner_ad"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:layout_alignParentBottom="true"

        />

 

 

MainActivivity


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// …
BannerAdView bannerAdView = (BannerAdView) findViewById(R.id.banner_ad);
bannerAdView.setBannerAdListener(new BannerAdListener() {

@Override
public void onFailure(int errCode) {

}

@Override
public void onShow() {

}

@Override
public void onClick() {

}
});

bannerAdView.loadAd(TnkSession.CPC); // or bannerAdView.loadAd(TnkSession.CPC, BannerAdType.LANDSCAPE)
}

@Override
public void onPause() {
if (bannerAdView != null) {
bannerAdView.onPause();
}

super.onPause();
}

@Override
public void onResume() {
super.onResume();

if (bannerAdView != null) {
bannerAdView.onResume();
}
}


JAVA 방식 Sample

MainActivity


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// …
RelativeLayout mainLayout = (RelativeLayout) findViewById(R.id.main_layout);
BannerAdView bannerAdView = new BannerAdView(this);
mainLayout.addView(bannerAdView);

bannerAdView.setBannerAdListener(new BannerAdListener() {

@Override
public void onFailure(int errCode) {

}

@Override
public void onShow() {

}

@Override
public void onClick() {

}
});

bannerAdView.loadAd(TnkSession.CPC); // or bannerAdView.loadAd(TnkSession.CPC, BannerAdType.LANDSCAPE)
// …
}

@Override
public void onPause() {
if (bannerAdView != null) {
bannerAdView.onPause();
}

super.onPause();
}

@Override
public void onResume() {
super.onResume();

if (bannerAdView != null) {
bannerAdView.onResume();
}
}


[Listener 이용하기]

배너 광고의 로딩이 완료되거나 화면에 노출되는 경우 또는 사용자가 광고를 클릭한 경우 해당 이벤트 발생시점에 필요한 로직을 구현하기 위해서 아래의 BannerAdListener 인터페이스를 이용할 수 있습니다.

BannerAdListener Interface

 public interface BannerAdListenerr {

public static final int FAIL_NO_AD = -1;  // no ad available

public static final int FAIL_CANCELED = -4; // ad frequency settings

public static final int FAIL_SYSTEM = -9;


        /**

         * 배너 광고를 로딩하지 못하였을 경우 호출됩니다.

         * @param errCode 에러코드

         */

         public void onFailure(int errCode);


         /**

         * N건의 배너 광고 중 하나의 광고가 화면에 노출되면 호출됩니다.

         */

         public void onShow();


         /**

         * 사용자가 N건의 배너 광고 중 화면에 노출된 광고를 클릭할 경우 호출됩니다.

         */

         public void onClick();

}


배너 광고와 관련되어 BannerAdListener에서 발생하는 이벤트의 내용은 같습니다.
  • onFailure(int errCode) : 배너 광고를 가져오지 못한 경우 호출이 됩니다. 에러 코드가 errCode 파라메터로 전달됩니다.
    • FAIL_NO_AD (-1) : 제공할 배너 광고가 없을 경우입니다.
    • FAIL_CANCELED (-4) : loadAd() 호출하였으나 서버에서 설정한 광고 노출 주기를 지나지 않아 취소된 경우입니다.
    • FAIL_SYSTEM (-9) : 서버 또는 네트워크 오류가 발생한 경우입니다.
  • onShow() : N건의 배너 광고 중 하나의 광고가 화면에 나타날 때 호출됩니다.
  • onClick() : 사용자가 N건의 배너 광고 중 화면에 나타난 광고를 클릭한 경우 호출됩니다.

[Banner Ad API]

1) BannerAdView 생성

Constructor
  - BannerAdView(Context context)
  - BannerAdView(Context context, BannerAdListener bannerAdListner)

Description
   배너 광고를 화면에 표시하기 위한 BannerAdView 객체를 생성합니다.

Parameters
 파라메터 명칭 내용
 context Context 객체

 bannerAdListener BannerAdListener 객체

2) Banner Ad Loading

loadAd()
 생성된 BannerAdView의 loadAd() 를 호출하여 배너 광고를 로딩할 수 있습니다. 비보상 광고만 로딩가능하며, displayLogic 파라메터를 지정하면 서버에서 해당 파라메터 값으로 설정된 내용에 따라서 비보상광고, 크로스 광고, 인하우스 광고 등을 원하는 대로 가져올 수 있습니다.
 배너 광고를 로딩하기 위하여 매번 loadAd() 를 호출하지 않아도 됩니다. 최초 1회 호출 시 내부적으로 자동으로 배너 광고를 로딩합니다.

 - void loadAd(String displayLogic)
    BannerAdType.LANDSCAPE 의 비보상 배너 광고를 서버에 요청합니다.
 - void loadAd(String displayLogic, int adType)
    adType 의 비보상 배너 광고를 서버에 요청합니다.

Parameters
 파라메터 명칭 내용
 displayLogic 비보상형 광고 요청을 위해서 TnkSession.CPC 를 넣어줍니다.
또는 Tnk 사이트에서 설정한 Display Logic 명칭을 지정하여 서버에서 설정한대로 원하는 형태의 광고를 띄우도록 제어할 수 있습니다. ( [Display Logic] 참고)
 adType 배너 광고의 형식을 지정합니다.

3) Banner Ad Type
  • BannerAdType.LANDSCAPE : 가로 방향 720x100 크기의 배너 광고를 요청하는 경우 지정합니다.
  • BannerAdType.LANDSCAPE_200 : 가로 방향 720x200 크기의 배너 광고를 요청하는 경우 지정합니다.
Comments