Unity SDK에서 배너광고 위치가 이상합니다

이 글의 성격은 무엇인가요?

질문 / 문제 해결

내용을 설명해주세요

개발환경: Unity 6000.3.19f1, AppsInToss SDK 2.10.7
테스트환경: QR 테스트, Android 16, One UI 8.0

배너광고가 화면 하단에 딱 붙어있지 않고 상단으로 올라와있습니다.

배너는 SDK에서 제공하는 함수를 사용하고 있습니다.
AITBannerAd.Show(BANNER_AD_ID, AITBannerPosition.Bottom, AITBannerTheme.Dark);

/// <summary>
/// 배너가 표시될 화면 위치 프리셋
/// </summary>
public enum AITBannerPosition
{
    /// <summary>화면 상단 (safe area 반영)</summary>
    Top,

    /// <summary>화면 하단 (safe area 반영)</summary>
    Bottom,
}

문서에서 찾지 못한 내용이지만 AITBannerPosition에서 Safearea가 반영된다는 주석이 달려있어서 확인해보았는데요, AIT.SafeAreaInsetsGet() 함수 및 AIT.SafeAreaInsetsSubscribe 콜백을 통해 얻은 값에는 bottom값이 0입니다.
SafeAreaInsets Top: 28.5714, Bottom: 0, Left: 0, Right: 0

배너 영역이 안드로이드 하단 네비게이션 바 영역 만큼 더 올라온 것 같아 보입니다.
혹시 배너 광고를 호출하는 방식이 틀렸을까요?

이미지 첨부

@bsmoon 님 안녕하세요

배너 광고 예제를 추가해두었는데 참고 부탁드립니다.

감사합니다. 바로 적용해보겠습니다.

AITBannerAd.Show 대신 AITBannerAdView 컴포넌트를 사용하도록 변경하였으나 QR테스트에서 변경 전과 완전히 동일하게 잘못된 위치에 배너가 표시됩니다 ㅜㅜ
safearea 등 다른 요소에 영향받지 않도록 작성했는데도 문제가 여전히 남아있네요.
아래 코드에서 혹시 잘못 구현한 부분이 있는지 확인 부탁드려도 될까요?

private void EnsureBannerView()
{
    if (_bannerAdView != null)
        return;

    _bannerRoot = new GameObject("AIT Banner Canvas", typeof(RectTransform), typeof(Canvas));
    UnityEngine.Object.DontDestroyOnLoad(_bannerRoot);

    var canvas = _bannerRoot.GetComponent<Canvas>();
    canvas.renderMode = RenderMode.ScreenSpaceOverlay;
    canvas.sortingOrder = short.MaxValue;

    GameObject bannerContainer = new GameObject("Banner Container", typeof(RectTransform));
    bannerContainer.transform.SetParent(_bannerRoot.transform, false);

    var rectTransform = (RectTransform)bannerContainer.transform;
    var bannerSize = GetBannerSize();

    rectTransform.anchorMin = new Vector2(0.5f, 0f);
    rectTransform.anchorMax = new Vector2(0.5f, 0f);
    rectTransform.pivot = new Vector2(0.5f, 0f);
    rectTransform.sizeDelta = new Vector2(bannerSize.x, bannerSize.y);
    rectTransform.anchoredPosition = Vector2.zero;

    _bannerAdView = bannerContainer.AddComponent<AITBannerAdView>();
    _bannerAdView.AdGroupId = BANNER_AD_ID;
    _bannerAdView.Placement = AITBannerAdPlacement.FollowRectTransform;
    _bannerAdView.AutoResizeHeight = false;
    _bannerAdView.OnAdEvent += OnBannerAdEvent;
}

넵넵 확인해볼게요.

배너광고를 SafeArea 컨테이너 안에 넣으셨나요?
밖으로 빼면 바닥에 고정되긴 하던데

위 코드에서 보시다시피 safearea와 관계없이 완전히 독립된 Canvas에 컨테이너를 생성해서 주입하고 있습니다.
다른분들은 멀쩡하신데 제 디바이스 환경에서만 그런걸지도 모르겠네요.

문제 해결했습니다.

이전에 AITBannerAd.Show(BANNER_AD_ID, AITBannerPosition.Bottom, AITBannerTheme.Dark); 호출해서 구현했을 때 올라와있는만큼 배너크기에 패딩을 더했던 코드가 남아있던게 영향을 주었습니다.
자체구현한 GetBannerSize 사이즈에서 높이갚을 조정하니 배너 위치가 그에 맞게 조정되었습니다.

이제 또 다른 얘기긴 한데, 정확한 배너사이즈를 구할 수 있을까요?
여기저기서 찾아본 바로는 웹 css기준 96px 이라고만 되어있어서 dpr값을 곱해 사용하고 있는데 이게 정확하게 사용하고 있는건지 모르겠습니다.

    public static Vector2 GetBannerSize()
    {
        var screenWidth = Screen.width;
        var dpr = AIT.GetDevicePixelRatio();
        return new Vector2(screenWidth, 96f);
    }