전면 광고는 호스트 앱의 인터페이스를 완전히 덮는 전체 화면 광고입니다. 일반적으로 게임에서 다음 레벨로 넘어갈 때처럼 앱 흐름의 자연스러운 전환 시점에 광고가 게재됩니다. 앱에 전면 광고가 표시되면 사용자는 광고를 탭하여 도착 페이지로 이동하거나 광고를 닫고 앱으로 돌아갈 수 있습니다. 우수사례
아래 샘플 코드에는 테스트 광고 요청에 사용할 수 있는 광고 단위 ID가 포함되어 있습니다. 이 ID는 모든 요청에 대해 실제 광고가 아닌 테스트 광고를 반환하도록 구성되어서 안전하게 사용할 수 있습니다.
그러나 AdMob 웹 인터페이스에 앱을 등록하고 앱에서 사용할 광고 단위 ID를 직접 생성한 후에는 개발 중에 명확하게 기기를 테스트 기기로 설정하세요.
Android
ca-app-pub-3940256099942544/1033173712
iOS
ca-app-pub-3940256099942544/4411468910
모바일 광고 SDK 초기화
광고를 로드하기 전에 앱이 MobileAds.Initialize()를 호출하여 모바일 광고 SDK를 초기화하게 하세요. 이 작업은 앱 실행 시 한 번만 처리하면 됩니다.
usingGoogleMobileAds;usingGoogleMobileAds.Api;publicclassGoogleMobileAdsDemoScript:MonoBehaviour{publicvoidStart(){// Initialize the Google Mobile Ads SDK.MobileAds.Initialize((InitializationStatusinitStatus)=>
{// This callback is called once the MobileAds SDK is initialized.});}}
미디에이션을 사용하는 경우 광고 로드 전에 콜백이 발생할 때까지 기다려야 모든 미디에이션 어댑터가 초기화됩니다.
전면 광고 로드
전면 광고는 InterstitialAd 클래스의 정적 Load() 메서드를 사용하여 로드됩니다. 로드 메서드에는 광고 단위 ID, AdRequest 객체, 광고 로드에 성공하거나 실패할 때 호출되는 완료 핸들러가 필요합니다. 로드된 InterstitialAd 객체는 완료 핸들러의 매개변수로 제공됩니다. 다음 예에서는 InterstitialAd를 로드합니다.
// Create our request used to load the ad.varadRequest=newAdRequest();// Send the request to load the ad.InterstitialAd.Load("AD_UNIT_ID",adRequest,(InterstitialAdad,LoadAdErrorerror)=>
{if(error!=null){// The ad failed to load.return;}// The ad loaded successfully.});
광고의 작동 방식을 더 세부적으로 맞춤설정하려는 경우 광고의 수명 주기에서 여러 이벤트에 연결하면 됩니다. 다음 예에서는 광고 이벤트를 수신 대기합니다.
interstitialAd.OnAdPaid += (AdValue adValue) =>
{
// 광고에서 수익이 창출되었다고 추정될 때 발생합니다.
};
interstitialAd.OnAdImpressionRecorded += () =>
{
// 광고 노출이 기록되었을 때 발생합니다.
};
interstitialAd.OnAdClicked += () =>
{
// 광고 클릭이 기록되었을 때 발생합니다.
};
interstitialAd.OnAdFullScreenContentOpened += () =>
{
// 광고가 전체 화면 콘텐츠를 열었을 때 발생합니다.
};
interstitialAd.OnAdFullScreenContentClosed += () =>
{
// 광고가 전체 화면 콘텐츠를 닫았을 때 발생합니다.
};
interstitialAd.OnAdFullScreenContentFailed += (AdError error) =>
{
// 광고가 전체 화면 콘텐츠를 열지 못했을 때 발생합니다.
};
이렇게 하면 객체가 더 이상 사용되지 않는다는 것을 플러그인에게 알려 객체가 사용한 메모리를 복구할 수 있습니다. 이 메서드를 호출하지 않으면 메모리 누수가 발생합니다.
다음 전면 광고 미리 로드
전면 광고는 일회용 객체입니다. 즉, 전면 광고가 표시된 후에는 이 객체를 다시 사용할 수 없습니다. 다른 전면 광고를 요청하려면 새 InterstitialAd 객체를 만듭니다.
다음 노출 기회에 대한 전면 광고가 게재되도록 OnAdFullScreenContentClosed 또는 OnAdFullScreenContentFailed 광고 이벤트가 발생한 후에 전면 광고를 미리 로드합니다.
interstitialAd.OnAdFullScreenContentClosed+=()=>
{// Reload the ad so that we can show another as soon as possible.varadRequest=newAdRequest();InterstitialAd.Load("AD_UNIT_ID",adRequest,(InterstitialAdad,LoadAdErrorerror)=>
{// Handle ad loading here.});};
전면 광고는 자연스러운 전환 지점이 있는 앱에서 가장 효과적입니다.
자연스러운 전환 지점이란 이미지 공유, 게임 레벨 달성처럼 앱에서 한 가지 작업이 완료되는 순간을 말합니다. 앱의 흐름에서 어떤 지점에 전면 광고를 표시해야 가장 자연스러우며 사용자가 어떻게 반응할지 생각해 보세요.
전면 광고를 게재할 때는 작업을 일시중지해야 합니다.
전면 광고에는 텍스트, 이미지, 동영상 등 다양한 유형이 있습니다. 앱에서 전면 광고를 표시할 때는 광고에서 리소스를 활용할 수 있도록 앱에서 일부 리소스의 이용을 중지합니다. 예를 들어 전면 광고를 표시하도록 호출할 때 앱에서 재생되는 오디오 출력을 일시중지해야 합니다. 사용자가 광고와의 상호작용을 마칠 때 호출되는 OnAdFullScreenContentClosed() 이벤트를 통해 사운드 재생을 재개할 수 있습니다 또한 광고가 표시되는 동안에는 강도 높은 처리 작업(예: 게임 루프)을 잠시 중단하는 것이 좋습니다. 그러면 그래픽이 느려지거나 응답이 없는 현상 또는 동영상 끊김 등의 문제가 사라집니다.
광고를 과도하게 게재하면 안 됩니다.
앱에 전면 광고를 더 많이 게재할수록 수익이 늘어난다고 생각할 수
있겠지만, 이렇게 하면 사용자 환경이 악화되고 클릭률이 떨어지기도
합니다. 사용자의 원활한 앱 사용에 지장을 주지 않는 범위에서
게재빈도를 조절하시기 바랍니다.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-08-28(UTC)"],[[["\u003cp\u003eInterstitial ads are full-screen ads displayed at natural transition points in an app, allowing users to interact or close them.\u003c/p\u003e\n"],["\u003cp\u003eThis guide provides instructions on integrating interstitial ads into a Unity app, covering initialization, loading, displaying, and event handling.\u003c/p\u003e\n"],["\u003cp\u003eBefore displaying interstitial ads in your app, ensure the Mobile Ads SDK is initialized using \u003ccode\u003eMobileAds.Initialize()\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eTo show an interstitial ad, call the \u003ccode\u003eShow()\u003c/code\u003e method on the \u003ccode\u003eInterstitialAd\u003c/code\u003e instance, but first verify its readiness using \u003ccode\u003eCanShowAd()\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eBest practices include strategically placing ads at transition points, pausing app activity while ads are displayed, and avoiding excessive ad frequency to maintain a positive user experience.\u003c/p\u003e\n"]]],["Interstitial ads, displayed full-screen at natural app transitions, require integration with the Mobile Ads SDK. Key actions include: initializing the SDK, loading an ad using `InterstitialAd.Load()` with an ad unit ID and `AdRequest`, and showing it with `Show()`. Listen for events like `OnAdFullScreenContentClosed` to preload new ads. Always destroy ads with `Destroy()` after use. Test ads first using provided IDs and set up test devices. Ensure ads don't disrupt user experience, and pause app resources while they are displayed.\n"],null,["Select platform: [Android](/admob/android/interstitial \"View this page for the Android platform docs.\") [iOS](/admob/ios/interstitial \"View this page for the iOS platform docs.\") [Unity](/admob/unity/interstitial \"View this page for the Unity platform docs.\") [Flutter](/admob/flutter/interstitial \"View this page for the Flutter platform docs.\")\n\n\u003cbr /\u003e\n\nInterstitial ads are full-screen ads that cover the interface of their host app.\nThey're typically displayed at natural transition points in the flow of an app,\nsuch as during the pause between levels in a game. When an app shows an\ninterstitial ad, the user has the choice to either tap on the ad and continue to\nits destination or close it and return to the app.\n\n[Case study](//admob.google.com/home/resources/freaking-math-powers-revenue-increase-with-google-admob-support/).\n\n\nThis guide explains how to integrate interstitial ads into a Unity app.\n\nPrerequisites\n\n- Complete the [Get started guide](/admob/unity/quick-start).\n\nAlways test with test ads\n\nThe following sample code contains an ad unit ID which you can use to request\ntest ads. It's been specially configured to return test ads rather than\nproduction ads for every request, making it safe to use.\n\nHowever, after you've registered an app in the\nAdMob web interface and created your own ad unit\nIDs for use in your app, explicitly [configure your device as a test\ndevice](/admob/unity/test-ads#enable_test_devices) during\ndevelopment. \n\nAndroid\n\n`ca-app-pub-3940256099942544/1033173712`\n\niOS\n\n`ca-app-pub-3940256099942544/4411468910`\n\nInitialize the Mobile Ads SDK\n\nBefore loading ads, have your app initialize Google Mobile Ads SDK by calling\n`MobileAds.Initialize()`. This needs to be done only once, ideally at app launch. \n\n using GoogleMobileAds;\n using GoogleMobileAds.Api;\n\n public class GoogleMobileAdsDemoScript : MonoBehaviour\n {\n public void Start()\n {\n // Initialize Google Mobile Ads SDK.\n MobileAds.Initialize((InitializationStatus initStatus) =\u003e\n {\n // This callback is called once the MobileAds SDK is initialized.\n });\n }\n }\n\nIf you're using mediation, wait until the callback occurs before loading ads as\nthis will ensure that all mediation adapters are initialized.\n\nLoad the interstitial ad\n\nLoading an interstitial ad is accomplished using the static `Load()` method on the\n`InterstitialAd` class. The load method requires an ad unit ID, an\n`AdRequest` object, and a completion handler which\ngets called when ad loading succeeds or fails. The loaded\n`InterstitialAd` object is provided as a parameter in\nthe completion handler. The following example loads InterstitialAd: \n\n // Create our request used to load the ad.\n var adRequest = new AdRequest();\n\n // Send the request to load the ad.\n InterstitialAd.Load(\"\u003cvar translate=\"no\"\u003eAD_UNIT_ID\u003c/var\u003e\", adRequest, (InterstitialAd ad, LoadAdError error) =\u003e\n {\n if (error != null)\n {\n // The ad failed to load.\n return;\n }\n // The ad loaded successfully.\n }); \n https://github.com/googleads/googleads-mobile-unity/blob/9544f919c5c8067939fa38d7fb45d698a7408dc1/samples/HelloWorld/Assets/Snippets/InterstitialAdSnippets.cs#L21-L33\n\nReplace \u003cvar class=\"readonly\" translate=\"no\"\u003eAD_UNIT_ID\u003c/var\u003e with your ad unit ID.\n| **Warning:** Attempting to load a new ad from the ad request completion block when an ad failed to load is strongly discouraged. If you must load an ad from the ad request completion block, limit ad load retries to avoid continuous failed ad requests in situations such as limited network connectivity.\n\n\n| **Tip:** You can use ad load calls to build up a cache of preloaded ads before you intend to show them, so that ads can be shown with zero latency when needed. Since ads expire after an hour, you should clear this cache and reload with new ads every hour.\n\n\u003cbr /\u003e\n\nShow the interstitial ad\n\nTo show a loaded interstitial ad, call the `Show()` method on the\n`InterstitialAd` instance. Ads may be shown once per\nload. Use the `CanShowAd()` method to verify that the ad is ready to be shown.\n**Note:** Interstitial ads should be displayed during natural pauses in the flow of an app, such as between levels of a game or after the user completes a task. \n\n if (interstitialAd != null && interstitialAd.CanShowAd())\n {\n interstitialAd.Show();\n } \n https://github.com/googleads/googleads-mobile-unity/blob/9544f919c5c8067939fa38d7fb45d698a7408dc1/samples/HelloWorld/Assets/Snippets/InterstitialAdSnippets.cs#L40-L43\n\nListen to interstitial ad events\n\nTo further customize the behavior of your ad, you can hook into a number of\nevents in the ad's lifecycle. The following example listens to ad events: \n\n interstitialAd.OnAdPaid += (AdValue adValue) =\u003e\n {\n // Raised when the ad is estimated to have earned money.\n };\n interstitialAd.OnAdImpressionRecorded += () =\u003e\n {\n // Raised when an impression is recorded for an ad.\n };\n interstitialAd.OnAdClicked += () =\u003e\n {\n // Raised when a click is recorded for an ad.\n };\n interstitialAd.OnAdFullScreenContentOpened += () =\u003e\n {\n // Raised when the ad opened full screen content.\n };\n interstitialAd.OnAdFullScreenContentClosed += () =\u003e\n {\n // Raised when the ad closed full screen content.\n };\n interstitialAd.OnAdFullScreenContentFailed += (AdError error) =\u003e\n {\n // Raised when the ad failed to open full screen content.\n }; \n https://github.com/googleads/googleads-mobile-unity/blob/9544f919c5c8067939fa38d7fb45d698a7408dc1/samples/HelloWorld/Assets/Snippets/InterstitialAdSnippets.cs#L50-L73\n\nClean up the interstitial ad\n\nWhen you are finished with an `InterstitialAd`, make\nsure to call the `Destroy()` method before dropping your reference to it: \n\n if (interstitialAd != null)\n {\n interstitialAd.Destroy();\n } \n https://github.com/googleads/googleads-mobile-unity/blob/9544f919c5c8067939fa38d7fb45d698a7408dc1/samples/HelloWorld/Assets/Snippets/InterstitialAdSnippets.cs#L80-L83\n\nThis notifies the plugin that the object is no longer used and the memory it\noccupies can be reclaimed. Failure to call this method results in memory leaks.\n\nPreload the next interstitial ad\n\nInterstitial ads are a one-time-use object. This means once an interstitial ad\nis shown, the object can't be used again. To request another interstitial ad,\ncreate a new `InterstitialAd` object.\n\nTo prepare an interstitial ad for the next impression opportunity, preload the\ninterstitial ad once the `OnAdFullScreenContentClosed` or\n`OnAdFullScreenContentFailed` ad event is raised. \n\n interstitialAd.OnAdFullScreenContentClosed += () =\u003e\n {\n // Reload the ad so that we can show another as soon as possible.\n var adRequest = new AdRequest();\n InterstitialAd.Load(\"\u003cvar translate=\"no\"\u003eAD_UNIT_ID\u003c/var\u003e\", adRequest, (InterstitialAd ad, LoadAdError error) =\u003e\n {\n // Handle ad loading here.\n });\n }; \n https://github.com/googleads/googleads-mobile-unity/blob/9544f919c5c8067939fa38d7fb45d698a7408dc1/samples/HelloWorld/Assets/Snippets/InterstitialAdSnippets.cs#L90-L98\n\nBest practices\n\nDetermine whether interstitial ads are the right type of ad for your app.\n: Interstitial ads work best in apps with natural transition points.\n The conclusion of a task within an app, such as sharing an image or completing a\n game level, creates such a point. Make sure you consider at which points in your\n app's flow to best display interstitial ads and how the user is likely to respond.\n\nPause the action when displaying an interstitial ad.\n: There are a number of different types of interstitial ads such as text,\n image, or video. It's important to make sure that when your app displays an\n interstitial ad, it also suspends its use of some resources to allow the ad to\n take advantage of them. For example, when you make the call to display an\n interstitial ad, be sure to pause any audio output being produced by your app.\n You can resume playing sounds in the `OnAdFullScreenContentClosed()` event,\n which can be invoked when the user has finished interacting with the ad. In\n addition, consider temporarily halting any intense computation tasks, such as a\n game loop, while the ad is being displayed. This ensures that the user doesn't\n experience slow or unresponsive graphics or stuttered video.\n\nDon't flood the user with ads.\n: While increasing the frequency of interstitial ads in your app might seem\n like a great way to increase revenue, it can also degrade the user experience\n and lower click-through rates. Make sure that users aren't so frequently\n interrupted that they're no longer able to enjoy the use of your app.\n\nAdditional resources\n\n- [HelloWorld example](//github.com/googleads/googleads-mobile-unity/tree/main/samples/HelloWorld): A minimal implementation of all ad formats.\n\n\\* [Sample use case](//admob.google.com/home/resources/freaking-math-powers-revenue-increase-with-google-admob-support/)"]]