안드로이드 Unity Ads 적용하기
안드로이드에서 광고모듈하면 첫번째로 구글애드몹을 생각하실겁니다.
구글애드몹이나 모바일웹을 이용한 애드센스를 붙이는것만 생각하시는데요.
여기에 Unity Ads를 추가하면 좀 더 풍부하게 광고가 나오게 할 수 있습니다.
유니티에서도 안드로이드 가이드를 제공하고 있습니다.
https://unityads.unity3d.com/help/android/integration-guide-android#basic-implementation
Integration guide for Android (Java) - Knowledge base
Integration guide for Android (Java) Overview This guide covers basic integration for implementing Unity Ads in your native Android game. If you are an iOS developer using Objective-C, click here. If you are a Unity developer using C#, click here. Click he
unityads.unity3d.com
첫번째로 unity-ads.aar 파일을 다운로드 합니다.
https://github.com/Unity-Technologies/unity-ads-android/releases
Releases · Unity-Technologies/unity-ads-android
Unity Ads SDK 3.0 for Android. Contribute to Unity-Technologies/unity-ads-android development by creating an account on GitHub.
github.com
프로젝트를 우클릭해서 New -> Module 선택합니다.
Import .JAR/.AAR Package를 선택하고 다운로드한 aar 파일을 Import 해줍니다.
프로젝트 선택후 우클릭 OpenModule Settings 선택
Dependencies 선택후 + 버튼 클릭후 Module Dependency 선택후 unity-ads 선택
이렇게 해서 unity-ads를 사용하는 모듈을 추가하면 build.gradle dependencies에 unity-ads가 추가됩니다.
dependencies {
implementation project(path: ':unity-ads')
}
이제 사용할 곳에서 import해서 사용하시면 됩니다.
import com.unity3d.ads.IUnityAdsListener;
import com.unity3d.ads.UnityAds;
다음은 Unity Ads SDK를 초기화 합니다.
SDK를 초기화하려면 적절한 플랫폼에 대한 프로젝트의 게임ID를 참조해야 합니다.
안드로이드앱에서 광고 콜백을 처리하는 IUnityAdsListener 인터페이스를 구현합니다. SDK를 초기화하는 Initialize 메소드에는 이 리스너가 매개 변수로 필요합니다.
아래는 소스 코드입니다.
import com.unity3d.ads.IUnityAdsListener;
import com.unity3d.ads.UnityAds;
public class InitializeAdsScript extends AppCompatActivity implements View.OnClickListener, IUnityAdsListener {
private String unityGameID = "1234567";
private Boolean testMode = true;
@Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
setContentView (R.layout.activity_main);
// Declare a new listener:
final UnityAdsListener myAdsListener = new UnityAdsListener ();
// Add the listener to the SDK:
UnityAds.addListener(myAdsListener);
// Initialize the SDK:
UnityAds.initialize (this, unityGameID, testMode);
}
// Implement the IUnityAdsListener interface methods:
private class UnityAdsListener implements IUnityAdsListener {
@Override
public void onUnityAdsReady (String placementId) {
// Implement functionality for an ad being ready to show.
}
@Override
public void onUnityAdsStart (String placementId) {
// Implement functionality for a user starting to watch an ad.
}
@Override
public void onUnityAdsFinish (String placementId, UnityAds.FinishState finishState) {
// Implement functionality for a user finishing an ad.
}
@Override
public void onUnityAdsError (UnityAds.UnityAdsError error, String message) {
// Implement functionality for a Unity Ads service error occurring.
}
}
}
전면광고를 표시하려면 게재 위치 ID로 표시 기능을 사용하면 됩니다.
전면광고 예제코드입니다.
import com.unity3d.ads.IUnityAdsListener;
import com.unity3d.ads.UnityAds;
public class ShowInterstitialAds extends AppCompatActivity implements View.OnClickListener, IUnityAdsListener {
private String unityGameID = "1234567";
private Boolean testMode = true;
private String placementId = "video";
@Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
setContentView (R.layout.activity_main);
// Declare a new listener:
final UnityAdsListener myAdsListener = new UnityAdsListener ();
// Add the listener to the SDK:
UnityAds.addListener(myAdsListener);
// Initialize the SDK:
UnityAds.initialize (this, unityGameID, testMode);
}
// Implement a function to display an ad if the Placement is ready:
public void DisplayInterstitialAd () {
if (UnityAds.isReady (placementId)) {
UnityAds.show (this, placementId);
}
}
// Implement the IUnityAdsListener interface methods:
private class UnityAdsListener implements IUnityAdsListener {
@Override
public void onUnityAdsReady (String placementId) {
// Implement functionality for an ad being ready to show.
}
@Override
public void onUnityAdsStart (String placementId) {
// Implement functionality for a user starting to watch an ad.
}
@Override
public void onUnityAdsFinish (String placementId, UnityAds.FinishState finishState) {
// Implement functionality for a user finishing an ad.
}
@Override
public void onUnityAdsError (UnityAds.UnityAdsError error, String message) {
// Implement functionality for a Unity Ads service error occurring.
}
}
}
보상형광고도 마찬가지입니다. 광고시청에 대한 보상을 제공하면서 표시되는 광고입니다. 동영상 광고를 완료한 앱사용자에게 보상을 제공하려면 onUnityAdsFinish 리스너 콜백 메소드의 FinishState 결과를 사용하여 사용자가 광고 시청을 완료했는지, 보상을 받아야 하는지 확인합니다.
아래는 보상형 광고 예제 샘플입니다.
import com.unity3d.ads.IUnityAdsListener;
import com.unity3d.ads.UnityAds;
public class ShowRewardedAds extends AppCompatActivity implements View.OnClickListener, IUnityAdsListener {
private String unityGameID = "1234567";
private Boolean testMode = true;
private String placementId = "rewardedVideo";
@Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
setContentView (R.layout.activity_main);
// Declare a new listener:
final UnityAdsListener myAdsListener = new UnityAdsListener ();
// Add the listener to the SDK:
UnityAds.addListener(myAdsListener);
// Initialize the SDK:
UnityAds.initialize (this, unityGameID, testMode);
}
// Implement a function to display an ad if the Placement is ready:
public void DisplayRewardedVideoAd () {
if (UnityAds.isReady (placementId)) {
UnityAds.show (this, placementId);
}
}
// Implement the IUnityAdsListener interface methods:
private class UnityAdsListener implements IUnityAdsListener {
public void onUnityAdsReady (String placementId) {
// Implement functionality for an ad being ready to show.
}
@Override
public void onUnityAdsStart (String placementId) {
// Implement functionality for a user starting to watch an ad.
}
@Override
public void onUnityAdsFinish (String placementId, UnityAds.FinishState finishState) {
// Implement conditional logic for each ad completion status:
if (finishState.equals(UnityAds.FinishState.COMPLETED) {
// Reward the user for watching the ad to completion.
} else if (result == FinishState.SKIPPED) {
// Do not reward the user for skipping the ad.
} else if (result == FinishState.ERROR) {
// Log an error.
}
}
@Override
public void onUnityAdsError (UnityAds.UnityAdsError error, String message) {
// Implement functionality for a Unity Ads service error occurring.
}
}
}
위와 같이 안드로이드에서도 간단하게 유니티 ads 광고를 붙일 수 있습니다.
구글애드몹 광고가 잘 나오지 않을때 효율이 좋지 않을때 유니티 광고와 병행을 한다면 더욱 좋은 결과를 만드실 수 있습니다.