본문 바로가기
Programing/android

[android] 카카오 광고 adfit 앱에 달기

by TEXTBOX 2021. 12. 6.
728x90

이번에 기존 앱에 카카오 광고를 달면서 앞으로도 쓰일꺼 같아 정리해 놓는다.

먼저 카카오 애드핏으로 들어가 광고단위를 발급 받아야 된다.

https://adfit.kakao.com/

 

https://adfit.kakao.com/

 

adfit.kakao.com

메뉴에 광고관리에 들어가 새 매체를 클릭한다.

그 다음 메체등록을 순서대로 기입힌다.

매체명은 앱 이름을 넣으면 되고, 매체유형은 앱이 ios앱인지 android앱인지 선택하면 된다.
마지막으로 매체 고유값은 ios는 Bundle ID, android는 Package Name을 넣으면 된다.
이후 매체등록이 완료 되면 해당 매체에 들어가 [새 광고단위]를 클릭해 광고단위 ID를 발급 받는다.

 

이제는 발급받은 광고 ID를 이용하여 앱에 광고를 달아주면 된다.

먼저 최상위 build.gragle에 Maven repository를 추가한다.

카카오 애드핏 참고문서에는 아래와 같이 되어 있었다.

그런데 최신 버전의 안드로이드에서는 최상위 build.gradle에 allprojects가 없다.
이런 경우 settings.gradle에 아래와 같이 추가해 주면 된다.

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        jcenter() // Warning: this repository is going to shut down soon
        maven { url 'https://devrepo.kakao.com/nexus/content/groups/public/' } <-- 추가부분
    }
}

이후 app 모듈의 build.gradle에 최신버전의 sdk를 추가해주면 된다.
현재 광고를 다는 당시에는 아래가 최신버전이였다.
추가 후 노란색으로 나타난다면 마우스를 갖다대고 최신버전으로 change to ... 을 클릭해주면 될 것이다.

implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.0'
implementation 'com.google.android.gms:play-services-ads-identifier:17.1.0'
implementation 'com.kakao.adfit:ads-base:3.8.5'

 

다음으로 네트워크 보안 설정을 해주어야 된다.

먼저 res폴더 밑 xml폴더 아래에 network_security_config.xml 파일을 만들어 준다.
그리고 파일 내용에는 아래 내용을 넣어준다.

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

그리고 androidManifest.xml 파일에 android:networkSecurityConfig 속성을 지정해준다.

<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
    <application 
        android:networkSecurityConfig="@xml/network_security_config" <- 해당부분 추가
        ... >
        ...
    </application>
</manifest>

 

 

이제 설정은 끝나고 광고를 달아주고 기능을 만들어 주면된다.

먼저 배너광고를 달 Layout에 아래와 같이 배너 광고를 넣어준다.

<com.kakao.adfit.ads.ba.BannerAdView
    android:id="@+id/adView"
    android:layout_width="match_parent"
    android:layout_height="50dp" />

그리고 기존 앱이 java로 되어 있어 java코드로 광고를 불러왔다.

먼저 상단에서 배너를 정의하고

BannerAdView mAdView;

onCreate 메서드 부분에서 아래와 같이 정의해 주었다.

mAdView = findViewById(R.id.adView); // 배너 광고 뷰
mAdView.setClientId("DAN-RtggRuuOsgGVCFm8");  // 할당 받은 광고단위 ID 설정
mAdView.setAdListener(new AdListener() {    // 광고 수신 리스너 설정
	@Override
	public void onAdLoaded() {

	}	

	@Override
	public void onAdFailed(int i) {

	}

	@Override
	public void onAdClicked() {

	}
});

mAdView.loadAd();   // 광고 요청

 

마지막으로 카카오 애드핏에서 아래와 같은 안내문이 있었다.

Lifecycle을 사용하지 않는 경우 아래와 같이 코드를 넣어주면 되었다.

//Lifecycle이 사용이 불가능한 경우
    @Override
    protected void onDestroy() {
        super.onDestroy();

        if (mAdView != null) {
            mAdView.destroy();
            mAdView = null;
        }
    }

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

        if (mAdView != null) {
            mAdView.pause();
        }
    }

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

        if (mAdView != null) {
            mAdView.resume();
        }
    }

 

이것으로 잘 돌아가는지 테스트를 하기위해 빌드를 해보니 정상적으로 나타났다.

 

이제 애드핏에서 심사대기가 승인으로 바뀌기만을 기다리면 된다.

아래는 애드핏의 깃허브에 올라와 있는 가이드 파일이다.

참고하면 좋을 듯 하다.

https://github.com/adfit/adfit-android-sdk/blob/master/docs/GUIDE.md

 

GitHub - adfit/adfit-android-sdk: AdFit Android SDK for Publisher

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

github.com

 

728x90

댓글