행복한 하루

Kakao AdFit 안드로이드 광고 올리기 본문

IT

Kakao AdFit 안드로이드 광고 올리기

변화의 물결 2020. 9. 13. 18:34

 

안녕하세요.

 

kakao AdFit web 광고 승인받고 안드로이드 앱에도 적용시켜 보았습니다.

승인받는 단위가 웹은 주소, 앱은 패키지 단위로 승인을 받아야 합니다. 처음에 그냥 한번 승인이면 되는 줄았았는데 등록하면서 추가로 받아야 하는 것을 알게 되었습니다.

 

 가장 좋은 가이드는 개발사의 가이드입니다. 참고하시면 도움이 됩니다. 저는 이 가이드에서 조금 참고해야 할 사항들을 추가로 공유하도록 하겠습니다.

 

 우선 카카오에서 알려준 광고 올리는 샘플 앱 소스 사이트를 들어 가봅니다.

github.com/adfit/adfit-android-sdk

 

adfit/adfit-android-sdk

AdFit Android SDK for Publisher. Contribute to adfit/adfit-android-sdk development by creating an account on GitHub.

github.com

 

 

github에 등록된 사이트에서 AdFit Android SDK Guid (Ver3.4.0) 버전을 확인할 수 있습니다. 그리고 sdk 연동 가이드 링크를 눌러보면 방법을 알려줍니다.

 

1. 광고 단위 ID(Client ID) 받기 

 1) 매체 등록

 adfit.kakao.com 사이트에서 가입하고 광고관리-> 새 매체 생성을 하시면 생성되는 광고 아이디 값입니다.

 여기서 주의할 것은 자신이 만들 앱  패키지 명을 가지고 있어야 합니다. ( 안드로이드 프로젝트를 만들면 생성되는 소스 상단에 나타나는 패키지명 )

새 매체 생성

2) 새 광고 단위

 320*50,  320* 100,  320*250  선택할 수 있게 되어 있습니다. 그런데 샘플 예제를 실행시켜 봐도 알겠지만, 높이 50 사이즈 밖에 동작하지 않았습니다.

 

그래서 일반 안드로이드 하단 광고를 등록하신다고 보시면 될 것 같습니다. (320*50)

 

그렇게 등록이 완료되면 광고 단위 ID(Client ID)를 얻게 됩니다. 이것을 기억하고 있다가 사용해야 합니다.

새광고 단위 생성

 

2. AdFit SDK 추가

 1) build.gradle(Project)에 추가( 버전 정도도 추가 )

buildscript {
    ext.adfit_version = '3.4.0' //추가
    ext.kotlin_version = '1.3.72' //추가
    ext.play_service_version = '17.0.0' // 17.0.0부터 AndroidX 사용 필수

...

allprojects {
    repositories {
        google()
        jcenter()
        maven { url 'http://devrepo.kakao.com:8088/nexus/content/groups/public/' }  //추가
    }
}

2) build.gradle(app) 사용하는 SDK를 등록해줍니다.

 // required :: AdFit SDK 연동을 위해서는 필수 사항
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation "com.google.android.gms:play-services-ads-identifier:$play_service_version"
    implementation "com.kakao.adfit:ads-base:$adfit_version"

 

 

3. 보안 XML 등록

 -  광고 노출 및 클릭이 정상적으로 동작하기 위해서는 일반 텍스트 트래픽을 허용하는 네트워크 보안 설정이 필요합니다. xml 디렉터리를 생성해서 xml 파일을 생성해줍니다.

 

1) File-> New -> Resource directory  xml 폴더를 만들어 줍니다.

 

2) File -> New -> Xml Resource  만들고 다른 설정은 손댈 필요 없이 network_security_config라고 파일명에다가 입력해줍니다. 그리고 코드창이 나타나면 내용을 지우고 다음과 같이 내용을 입력합니다.

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true"/>
</network-security-config>

3) AndroidManifest.xml 파일에서 <application> android:networkSecurityConfig 속성으로 지정합니다.

networkSecurityConfig.xml

 

4. activity.xml 내용 추가

- 하단에 붙이기 위해서 자신에 UI 맞게 옵션들을 넣어줍니다. 기본적으로 알려주는 소스에서는 플래그먼트에 리니어 뷰에서 하단으로 표시가 되지 않아서 layout_alignParentBottom="true" 추가해주었습니니다.

        <com.kakao.adfit.ads.ba.BannerAdView
            android:id="@+id/kakao_adView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_gravity="bottom|center_horizontal" />

 

 

 

5. activity.java 내용 추가

 - 내용이 조금 복잡을 수 있습니다. 간단하게 보면 광고 배너 하나 만들고 변수와 load 하는 코드 그리고 pause, resume, destroy에 대한 부분을 복사해서 붙여 넣기를 하면 됩니다. 어디에 넣어야 되는지 헷갈린다면 샘플 소스(상단 예제 github)를 참조하시면 됩니다.

	public class Fragment_Example extends Fragment {
        private BannerAdView adView;

		...
        
		adView = rootView.findViewById(R.id.kakao_adView);  // 배너 광고 뷰
  		adView.setClientId("DAN-1h82js7czjqsj");// 할당 받은 광고 단위(clientId) 설정
  		adView.setAdListener(new AdListener() {  // 광고 수신 리스너 설정

            @Override
            public void onAdLoaded() {
                //toast("Banner is loaded");
            }

            @Override
            public void onAdFailed(int errorCode) {
                //toast("Failed to load banner :: errorCode = " + errorCode);
            }

            @Override
            public void onAdClicked() {

            }

        });

        adView.loadAd();  // 광고 요청
        
        
        ...
        
        @Override
        public void onResume() {
            super.onResume();

            // lifecycle 사용이 불가능한 경우
            if (adView == null) return;
            adView.resume();
        }

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

            // lifecycle 사용이 불가능한 경우
            if (adView == null) return;
            adView.pause();
        }

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

            // lifecycle 사용이 불가능한 경우
            if (adView == null) return;
            adView.destroy();
        }

    private void toast(String message) {
        if (adView == null) return;
        Toast.makeText(adView.getContext(), message, Toast.LENGTH_SHORT).show();
    }
        
        
        

 

만약 소스상 문제가 없다면 테스트용 광고가 나타납니다. (테스트 광고 아이디 사용)

 

 

6. 승인 신청

kakao.adfit.com 사이트에 들어가 보면 등록 확인하라고 링크가 만들어집니다.  

등록확인을 하기 위해서는 play.google.com/console/   에서 등록이 먼저 되어 있어야 합니다.

그러면 플레이스토어에 주소가 나타나고 승인 대기라고 나타나게 됩니다.

 

 

그리고 승인이 되면 광고가 나타나게 됩니다. 

 

다들 유용한 앱으로 수익 나셨으면 합니다.

감사합니다.

 

2020.09.16 추가 사항

승인된 날짜는 WEB이 하루 정도 였다면 APP은 2~3일 정도 걸렸습니다.

 

Comments