[ 개발 일기 ] Drop The Chicken 모바일 출시 작업 - 광고 좀 넣자(완)
2024. 9. 9. 16:00ㆍ게임 개발/개발 일기
https://rivermountain.tistory.com/153
모바일 빌드에 성공했다.
이후 광고를 넣기 위한 작업을 진행 후
폰으로 옮겨서 실행했는데
해상도 조절 기능이 잘 작동되지 않았다.
+ 광고도 작동되지 않았음.
해당 코드와 구조가 같은데 왜 여기서는 실행되지 않는 것일까
레터박스, 광고 둘 다 에디터에서는 잘 실행되었다.
왜 빌드본에서는 실행되지 않는 것일까?
일단 치킨 플라이와 설정을 비슷하게 하니 일부 수정되었다.
하지만 아직도 뭔가 이상해서 Chat gpt한테 물어봤다.
최근에 모바일 버그를 해결하기 위해 챗 지피티를 사용하면서 챗 지피티에 빠진 것 같다.
두세번 정도 물어보니 해결되었다.
하지만 광고가 재생되지 않았다. 흠..
사실 구글 애드몹 광고 예제랑은 코드가 좀 많이 다르긴 했었다.
https://developers.google.com/admob/unity/rewarded/legacy?hl=ko
링크를 보면 공식 코드가 나온다.
흠.. 분명 디버그 모드에서는 잘 실행이 되는데 무엇이 문제일까?
결국 나는 또 챗지피티의 도움을 받았다.
이번에는 5~6번 정도의 질문 및 빌드 후
광고가!! 재생이!! 된다고!!
우와아아악!!!
using GoogleMobileAds.Api;
using System;
using UnityEngine;
public class AdManager : MonoBehaviour
{
public static AdManager Instance { get; private set; }
private string _adUnitId = "ca-app-pub-3940256099942544/5224354917";
private RewardedAd _rewardedAd;
public void Start()
{
if (Instance == null)
{
Instance = this;
DontDestroyOnLoad(gameObject);
}
else
{
Destroy(gameObject);
return;
}
// Initialize the Google Mobile Ads SDK.
MobileAds.Initialize((InitializationStatus initStatus) => { });
LoadAd();
}
public void ShowRewardedAd()
{
if (_rewardedAd != null && _rewardedAd.IsLoaded())
{
_rewardedAd.Show();
_rewardedAd.Destroy();
LoadAd(); // 광고 재로드
}
else
{
Debug.Log("Rewarded ad is not loaded yet.");
}
}
private void LoadAd()
{
// Clean up the old ad before loading a new one.
if (_rewardedAd != null)
{
_rewardedAd.Destroy();
_rewardedAd = null;
}
Debug.Log("Loading the rewarded ad.");
// Create our request used to load the ad.
var adRequest = new AdRequest.Builder().Build();
_rewardedAd = new RewardedAd(_adUnitId);
// Load the ad with a callback
_rewardedAd.LoadAd(adRequest);
// Subscribe to ad events
_rewardedAd.OnAdLoaded += HandleRewardedAdLoaded;
_rewardedAd.OnAdFailedToLoad += HandleRewardedAdFailedToLoad;
_rewardedAd.OnAdClosed += HandleRewardedAdClosed;
}
private void HandleRewardedAdLoaded(object sender, EventArgs args)
{
Debug.Log("Rewarded ad loaded successfully.");
}
private void HandleRewardedAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
Debug.LogError("Failed to load rewarded ad: " + args.ToString());
}
private void HandleRewardedAdClosed(object sender, EventArgs args)
{
Debug.Log("Rewarded ad closed. Reloading...");
LoadAd(); // 광고 종료 후 재로드
}
}
'게임 개발 > 개발 일기' 카테고리의 다른 글
[ 개발 일기 ] 라이팅 겸사겸사 (0) | 2024.09.24 |
---|---|
[ 개발 일기 ] Drop The Chicken 마무리 작업 (0) | 2024.09.10 |
[ 개발 일기 ] 결국 해결했다. - 광고 좀 넣자(3) (0) | 2024.09.07 |
[ 개발 일기 ] gradle build failed가 해결이 안 된다.. - 광고 좀 넣자(2) (0) | 2024.09.06 |
[ 개발 일기 ] 프로젝트의 광고 기능 넣기 ( 실패 ) - 광고 좀 넣자(1) (3) | 2024.09.05 |