Audience Network를 사용하면 Facebook 광고를 통해 Android 및 iOS 앱에서 수익을 창출할 수 있습니다. 전면 광고는 앱 플로의 전환 지점에 사용할 수 있는 전체 광고 화면 경험입니다. 예를 들어 활동 중간이나 게임에서 다음 레벨로 넘어가기 전 일시 정지 도중이 해당합니다. 크리에이티브 콘텐츠는 이미지, 동영상 또는 슬라이드를 사용할 수 있습니다. 이 가이드에서는 앱에 전면 광고를 추가하는 방법을 설명합니다.
계속 진행하기 전에 Audience Network 시작하기 및 Unity 시작하기 가이드를 완료했는지 확인하세요.
전면 광고를 표시하기 위한 첫 단계는 GameObject
에 첨부된 C# 스크립트에서 InterstitialAd
개체를 만드는 것입니다.
... using AudienceNetwork; ... public class InterstitialAdTest : MonoBehaviour { ... private InterstitialAd interstitialAd; private bool isLoaded; ... public void LoadInterstitial() { this.interstitialAd = new InterstitialAd("YOUR_PLACEMENT_ID"); this.interstitialAd.Register(this.gameObject); // Set delegates to get notified on changes or when the user interacts with the ad. this.interstitialAd.InterstitialAdDidLoad = (delegate() { Debug.Log("Interstitial ad loaded."); this.isLoaded = true; }); interstitialAd.InterstitialAdDidFailWithError = (delegate(string error) { Debug.Log("Interstitial ad failed to load with error: " + error); }); interstitialAd.InterstitialAdWillLogImpression = (delegate() { Debug.Log("Interstitial ad logged impression."); }); interstitialAd.InterstitialAdDidClick = (delegate() { Debug.Log("Interstitial ad clicked."); }); this.interstitialAd.interstitialAdDidClose = (delegate() { Debug.Log("Interstitial ad did close."); if (this.interstitialAd != null) { this.interstitialAd.Dispose(); } }); // Initiate the request to load the ad. this.interstitialAd.LoadAd(); } ... }
InterstitialAd
생성자의 매개변수는 다음과 같습니다.
placementId
- 이 전면 광고 유닛의 Audience Network 노출 위치 ID.그다음으로는 몇 개의 콜백을 구현하여 광고의 수명 주기 이벤트를 받아봅니다. 아래 예시와 같이 이벤트의 델리게이트를 등록하여 해당 이벤트를 수신합니다.
... // Set delegates to get notified on changes or when the user interacts with the ad. this.interstitialAd.InterstitialAdDidLoad = (delegate() { Debug.Log("Interstitial ad loaded."); this.isLoaded = true; }); interstitialAd.InterstitialAdDidFailWithError = (delegate(string error) { Debug.Log("Interstitial ad failed to load with error: " + error); }); interstitialAd.InterstitialAdWillLogImpression = (delegate() { Debug.Log("Interstitial ad logged impression."); }); interstitialAd.InterstitialAdDidClick = (delegate() { Debug.Log("Interstitial ad clicked."); }); this.interstitialAd.interstitialAdDidClose = (delegate() { Debug.Log("Interstitial ad did close."); if (this.interstitialAd != null) { this.interstitialAd.Dispose(); } }); ...
이 내용은 Android에만 적용됩니다.
현재 Android용 Unity 게임은 메인 Unity Activity
만 singleTask
의 launchMode
를 가질 수 있도록 지원합니다. Android 매니페스트를 위한 Unity 문서와 활동을 위한 Android 문서를 참조하세요.
Activity
를 사용하여 Interstitial
및 Rewarded Video
광고를 표시하기 때문에 사용자가 앱을 백그라운드로 돌렸다가 앱 전환기가 아닌 아이콘으로 다시 앱을 시작하면 광고 활동이 적절히 닫히지 않은 상태에서 폐기될 수 있습니다. 다음 콜백을 사용하여 사용자가 광고를 닫았는지 확인할 수 있습니다.
삽입 광고:
this.interstitialAd.interstitialAdDidClose = (delegate() { Debug.Log("Interstitial ad did close."); this.didClose = true; if (this.interstitialAd != null) { this.interstitialAd.Dispose(); } }); #if UNITY_ANDROID /* * Android에만 적용됩니다. * 삽입 광고 활동이 적절히 닫히지 않은 상태에서 * 폐기되었을 경우에만 이 콜백이 트리거됩니다. * launchMode:singleTask가 있는 앱(예: Unity 게임)을 * 백그라운드로 돌렸다가 아이콘을 탭해서 다시 시작하면 이렇게 될 수 있습니다. */ this.interstitialAd.interstitialAdActivityDestroyed = (delegate() { if (!this.didClose) { Debug.Log("Interstitial activity destroyed without being closed first."); Debug.Log("Game should resume."); } }); #endif
보상형 동영상:
this.rewardedVideoAd.rewardedVideoAdDidClose = (delegate() { Debug.Log("Rewarded video ad did close."); this.didClose = true; if (this.rewardedVideoAd != null) { this.rewardedVideoAd.Dispose(); } }); #if UNITY_ANDROID /* * Android에만 적용됩니다. * 보상형 동영상 활동이 적절히 닫히지 않은 상태에서 * 폐기되었을 경우에만 이 콜백이 트리거됩니다. launchMode:singleTask가 있는 앱(예: Unity 게임)을 * 백그라운드로 돌렸다가 아이콘을 탭해서 다시 시작하면 이렇게 될 수 있습니다. */ this.rewardedVideoAd.rewardedVideoAdActivityDestroyed = (delegate() { if (!this.didClose) { Debug.Log("Rewarded video activity destroyed without being closed first."); Debug.Log("Game should resume. User should not get a reward."); } }); #endif
InterstitialAd
가 인스턴스화되고 나면 광고를 읽어들여야 합니다. 이때 InterstitialAd
클래스의 loadAd() 메서드를 사용합니다.
위의 예시에서 광고를 읽어들이는 방법은 다음과 같습니다.
... this.interstitialAd.LoadAd(); ...
마지막으로 전면 광고를 읽어들이고 나면 Show
메서드를 호출하여 화면에 전면 광고를 렌더링할 수 있습니다. 예를 들어 ShowInterstitial
에 대한 함수를 만들고 전면 광고를 표시할 시점이 되면 이 함수를 호출합니다.
// Show button public void ShowInterstitial() { if (this.isLoaded) { this.interstitialAd.Show(); this.isLoaded = false; } else { Debug.Log("Interstitial Ad not loaded!"); } }
Unity 앱에서 여러 광고 형식을 통합하려면 Facebook 가이드를 참조하세요.
앱에 광고를 전송하여 수익을 창출할 준비가 완료되었다면, 앱이 Audience Network 정책 및 Facebook 커뮤니티 규정을 준수하는지 확인한 후 검수를 위해 제출하세요.