안드로이드앱에서 광고 콜백을 처리하는 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 광고를 붙일 수 있습니다.
구글애드몹 광고가 잘 나오지 않을때 효율이 좋지 않을때 유니티 광고와 병행을 한다면 더욱 좋은 결과를 만드실 수 있습니다.