광고 게재위치

이 가이드에서는 Google 모바일 광고 Unity 플러그인의 Ad 게재위치 기능으로 앱을 위한 광고를 만들고 게재할 수 있습니다.

기본 요건

Google 모바일 광고 SDK 초기화

광고를 로드하기 전에 다음을 호출하여 모바일 광고 SDK를 초기화합니다. MobileAds.Initialize(): Action<InitializationStatus> 콜백과 함께 사용 이 한 번만 처리하면 되며, 앱 실행 시 처리하는 것이 가장 좋습니다.

using GoogleMobileAds.Api;
using System.Collections.Generic;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    ...
    public void Start()
    {
        // Initialize the Mobile Ads SDK.
        MobileAds.Initialize((initStatus) =>
        {
            // SDK initialization is complete
        });
        ...
    }
}

광고 게재위치 만들기

Google 모바일 광고로 배너를 표시하는 첫 단계는 광고 게재위치를 구성할 수 있습니다. 배너의 광고 게재위치를 선택하고 애셋 > 전면 광고 또는 보상형 광고 형식 Google 모바일 광고 > 광고 게재위치를 선택합니다. 그러면 데모 광고 게재위치 3개가 설정하고 사용할 수 있습니다.

새 광고 게재위치를 추가하려면 광고 게재위치 끝에 있는 새 게재위치 추가 버튼을 할 수 있습니다. 검사기 뷰에서 광고 게재위치를 구성할 수 있습니다.

광고 게재위치 구성

각 게재위치에는 다음과 같은 속성이 있습니다.

게재위치 이름
게재위치의 이름입니다. 캠페인에서 광고를 설정할 때 게재위치를 식별하는 데 장면입니다.
광고 형식
배너 광고, 보상형 광고, 전면 광고 광고 유형입니다.
광고 단위 ID
Android 및 iOS용 배너 광고 단위 ID를 제공합니다. 다음을 제공해야 합니다. 광고 단위 ID가 하나 이상 있어야 합니다.
장면 전체에서 지속
이 옵션을 선택하면 장면과 관계없이 배너가 화면에 유지됩니다. 변경사항 (이전 버전과 동일한 동작) DontDestroyOnLoad)
자동 로드 사용 설정됨
이 옵션을 선택하면 특정 장면과 연결된 장면에 광고가 자동으로 로드됩니다. 광고 게재위치가 로드됩니다.

다음 스크린샷은 이름이 지정된 광고 게재위치의 예입니다. My Awesome Banner

장면에 AdGameObject 추가하기

배너, 전면 광고 또는 보상형 광고 형식용 AdGameObject를 GameObject > Google 모바일 광고를 엽니다. 그런 다음 형식을 사용하여 활성 장면에 게재위치를 추가합니다.

장면에 AdGameObject를 추가하면 GameObject가 Unity 편집기의 Hierarchy 뷰에서 광고를 나타냅니다.

GameObject의 이름을 변경하여 게재위치의 이름을 변경할 수 있습니다. 있습니다. 다음 스크린샷은 AdGameObject의 예시를 보여줍니다. 배너 광고라고 했습니다.

AdGameObject 설정

Inspector를 통해 장면의 AdGameObject를 구성할 수 있습니다. 광고 게임 객체 (스크립트) 구성요소 설정에서 이 옵션을 선택합니다.

광고 게재위치

구성된 게재위치의 드롭다운 목록에서 광고 게재위치를 선택합니다. 이 올바른 형식의 광고 단위만 표시됩니다. 예를 들어 배너 광고의 경우 게임 객체 드롭다운에는 구성된 배너 광고 게재위치만 표시됩니다.

BannerAdGameObject 구성 (배너만 해당)

  • 크기 - 사용할 배너의 크기를 선택합니다.
    • 앵커 적응형 배너는 다음과 같은 옵션을 추가로 제공합니다. <ph type="x-smartling-placeholder">
        </ph>
      • 방향 - 광고를 계산하는 데 사용할 기기 방향을 선택합니다. 높이.
      • 전체 화면 너비 사용 - 선택하면 배너가 전체화면 너비를 설정할 수 있습니다. 다음과 같은 경우 화면의 너비(%)(50~99%)를 조정할 수 있습니다. 전체 화면 너비 사용 옵션을 선택 해제합니다.
    • 맞춤을 사용하면 배너 너비와 높이를 제공할 수 있습니다.
  • 광고 게재순위 - 배너를 게재할 위치를 선택합니다.

콜백

광고 콜백에 상응하는 함수를 구현할 수 있습니다. 예를 들어 다음과 같습니다.

  1. 광고 콜백과 호환되는 함수를 만듭니다.

    public void OnBannerAdFailedToLoad(string reason) {
        Debug.Log("Banner ad failed to load: " + reason);
    }
    
  2. 위의 함수가 포함된 스크립트를 장면입니다.

  3. + 버튼을 클릭한 다음 연결한 GameObject를 삭제하거나 스크립트를 추가합니다

  4. 광고 콜백에 연결할 함수를 선택합니다. 대상 매개변수화된 광고 콜백을 사용하려면 변수를 사용하여 SDK에서 매개변수 값을 가져올 수 있습니다.

스크립트의 AdGameObject 사용

스크립트에서 AdGameObject 인스턴스 가져오기

모든 AdGameObject 객체에는 편의 메서드 LoadAd()가 있습니다. 이 작업은 타겟팅되지 않은 평범한 AdRequest가 포함된 광고 타겟팅을 적용하려면 자체 구성된 광고 요청을 사용하여 LoadAd(AdRequest adRequest).

AdGameObject의 인스턴스를 가져오려면 각 형식에 다음 메서드를 사용합니다.

MobileAds.Instance.GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");

반환된 BannerAdGameObject 객체에는 편의 메서드도 있습니다. Hide()Show().

전면 광고

MobileAds.Instance.GetAd<InterstitialAdGameObject>("AD_GAMEOBJECT_NAME");

반환된 InterstitialAdGameObject 객체에는 편의 메서드가 있습니다. ShowIfLoaded()

리워드 제공됨

MobileAds.Instance.GetAd<RewardedAdGameObject>("AD_GAMEOBJECT_NAME");

반환된 RewardedAdGameObject 객체에는 편의 메서드가 있습니다. ShowIfLoaded()

예를 들어 BannerAdGameObject의 인스턴스를 가져와서 다음과 같이 로드할 수 있습니다. 다음과 같습니다.

using UnityEngine;

using GoogleMobileAds.Api;
using GoogleMobileAds.Placement;

public class BannerTestScript : MonoBehaviour
{
    BannerAdGameObject bannerAd;

    void Start()
    {
        bannerAd = MobileAds.Instance
            .GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");

        bannerAd.LoadAd();
        ...
    }
    ...
}

BannerAd라는 BannerAdGameObject가 있으면 다음과 같습니다.

MobileAds.Instance.GetAd<BannerAdGameObject>("BannerAd");

AdGameObject의 기본 광고 객체에 액세스

이 스니펫은 연결된 기본 광고 객체에 액세스하는 방법을 보여줍니다. 사용합니다.

BannerAdGameObject bannerAd = MobileAds.Instance
    .GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");

// Access BannerView object
BannerView bannerView = bannerAd.BannerView;

전면 광고

InterstitialAdGameObject interstitialAdGameObject = MobileAds.Instance
    .GetAd<InterstitialAdGameObject>("AD_GAMEOBJECT_NAME");

// Access InterstitialAd object
InterstitialAd interstitialAd = interstitialAdGameObject.InterstitialAd;

리워드 제공됨

RewardedAdGameObject rewardedAdGameObject = MobileAds.Instance
    .Get<RewardedAdGameObject>("AD_GAMEOBJECT_NAME");

// Access RewardedAd object
RewardedAd rewardedAd = rewardedAdGameObject.RewardedAd;

전면 광고 표시

다음은 전면 광고를 로드하고 표시하도록 게임을 구성하는 방법의 예입니다. 광고를 만듭니다.

장면에 InterstitialAdGameObject를 추가하고 Auto Load를 사용 설정합니다. 장면이 로드될 때 광고가 자동으로 로드되도록 기능을 사용 설정합니다.

다음으로, 다음과 같이 SDK를 초기화했는지 확인합니다. Auto 로드하기(Load) 기능이 작동하지 않습니다. 사용할 수 있습니다.

그런 다음 InterstitialAdGameObject.ShowIfLoaded() 함수를 사용하세요. 다음 코드는 장면 전환 사이에 표시되는 전면 광고 표시의 예

using UnityEngine;
using UnityEngine.SceneManagement;

using GoogleMobileAds.Api;
using GoogleMobileAds.Placement;

public class MainScene : MonoBehaviour
{
    InterstitialAdGameObject interstitialAd;

    void Start()
    {
        interstitialAd = MobileAds.Instance
            .GetAd<InterstitialAdGameObject>("interstitial");

        MobileAds.Initialize((initStatus) => {
            Debug.Log("Initialized MobileAds");
        });
    }

    public void OnClickShowGameSceneButton()
    {
        // Display an interstitial ad
        interstitialAd.ShowIfLoaded();

        // Load a scene named "GameScene"
        SceneManager.LoadScene("GameScene");
    }
}

광고 게재위치에서 자동 로드 기능을 사용하도록 설정했으므로 광고를 명시적으로 요청해야 합니다 장면이 바뀌면 전면 광고가 표시됩니다.

광고를 수동으로 요청하려면 서버에서 자동 로드 기능을 광고 게재위치 검사기를 호출하고 InterstitialAdGameObject.LoadAd()를 호출합니다. 함수를 사용하세요. 다음 코드 스니펫은 있습니다.

public class MainScene : MonoBehaviour
{
    InterstitialAdGameObject interstitialAd;

    void Start()
    {
        interstitialAd = MobileAds.Instance
            .GetAdGameObject<InterstitialAdGameObject>("interstitial");

        MobileAds.Initialize((initStatus) => {
            Debug.Log("MobileAds initialized");

            // Load an interstitial ad after the SDK initialization is complete
            interstitialAd.LoadAd();
        });
    }
    ...
}

'보상형 광고 시청' 처리 버튼 상태

다음은 '보상형 광고 시청'을 사용 설정하는 방법의 예입니다. 버튼을 사용하여 게재위치

Button GameObject (이 예에서는 Button)를 장면에 추가합니다. 보상형 광고를 게재하는 데 사용됩니다. 이 버튼은 (보상형 광고를 사용할 수 있을 때)

Start() 메서드에서 버튼의 활성 상태를 false로 변경합니다. 이 버튼이 장면에서 사라집니다.

public class MainScene : MonoBehaviour
{
    ...
    void Start()
    {
        GameObject.Find("Button").SetActive(false);
        ...
    }
}

장면에 RewardedAdGameObject를 추가하고 보상형 AdMob 데모 데모를 선택합니다. 광고 광고 게재위치를 선택합니다.

RewardedAdGameObject 검사기의 콜백 섹션에서 다음을 클릭합니다. On Ad Loaded()+ 버튼을 클릭하여 함수가 호출되도록 합니다. (보상형 광고가 로드될 때)

이전 단계에서 추가한 Button GameObject를 없음 (객체) 필드 드롭다운에서 호출할 함수를 선택합니다. 함수 없음 > 게임 객체 > SetActive(bool)를 설정한 다음 체크박스를 클릭하여 true를 매개변수로 전송합니다 (SetActive(true) 호출).

이 콜백 섹션에서 RewardedAd.OnUserEarnedReward 이벤트가 시작될 때 자세한 내용은 이 섹션을 참고하세요.

다음으로 클릭 시 보상형 광고를 표시하는 버튼을 만듭니다. 사용 설정 Click() 콜백 섹션에서 + 버튼을 클릭하고 보상형 광고 게재위치 GameObject (이 예에서는 보상형 광고)를 None (Object) 필드에 입력합니다.

그런 다음 RewardedAdGameObject.ShowIfLoaded() 함수를 버튼의 Click() 콜백 시

마지막으로, SDK를 초기화해야 합니다. 다음 코드 스니펫은 전체 코드가 필요합니다.

using UnityEngine;

using GoogleMobileAds.Api;

public class MainScene : MonoBehaviour
{
    void Start()
    {
        GameObject.Find("Button").SetActive(false);

        MobileAds.Initialize((initStatus) => {
            Debug.Log("Initialized MobileAds");
        });
    }
}

프로젝트를 실행하면 보상형 광고가 로드되어 표시할 준비가 되었습니다.

RewardedAdGameObject의 보상 콜백 구성하기

다음은 보상형 광고에 대한 보상형 콜백을 구성하는 방법의 예입니다. 콜백 함수가 호출될 때 사용자에게 보상을 제공할 수 있습니다. 합니다.

새 스크립트를 만들고 Reward를 매개변수로 허용하는 함수를 정의합니다. 변경할 수 있습니다.

using UnityEngine;
using GoogleMobileAds.Api;

class RewardedTestScript : MonoBehaviour {
    ...
    public void OnUserEarnedReward(Reward reward) {
        Debug.Log("OnUserEarnedReward: reward=" +
            reward.Type + ", amount=" + reward.Amount);
    }
    ...
}

RewardedTestScript 스크립트를 모든 GameObject (Ad 배치 GameObject)을 배치하세요. 이 예에서는 Camera GameObject를 반환합니다.

장면에 RewardedAdGameObject를 추가합니다. 그런 다음 RewardedAdGameObject 검사기에서 On User의 + 버튼을 클릭합니다. 획득한 리워드 (리워드): 리워드가 다음과 같을 때 함수가 호출될 수 있도록 합니다. 권한을 부여할 수 있습니다

이전 동영상에서 추가한 기본 카메라 GameObject를 드래그 앤 드롭합니다. 없음 (객체) 필드로 이동합니다. 다음에서 호출할 함수를 선택합니다. 선택합니다. 함수 없음 > RewardedTestScript > OnUserEarnedReward를 참조하세요.

프로젝트를 실행하고 보상형 광고를 시청하면 RewardedTestScript.OnUserEarnedReward()는 사용자가 광고와 상호작용하면 보상을 받을 수 있습니다.