[iOS] Google AdMob 앱에 애드몹 광고 달기

ungchun·2022년 7월 21일
0
post-thumbnail

Google AdMob 에 앱 추가

Google AdMob 회원가입이 안되어있으면 홈페이지에서 회원가입을 해주시고 앱 추가를 클릭해주세요.

만약 본인의 앱이 앱 스토어에 등록되어 있으면 첫 번째 선택, 아직 등록되지 않은 상태면 두 번째 선택을 해주세요.

앱 준비 상태에 관해 문서를 보면 "AdMob에서 새 앱을 설정할 때는 앱이 검토 및 승인을 거쳐야 광고가 게재될 수 있습니다." 그리고 앱을 검토받으려면 첫 번째에 "앱을 게시해야 합니다." 라고 적혀있습니다. 즉, 만약 앱을 등록하지 않은 상태에서는 AdMob을 테스트로 실행시켜보고 정식으로 앱을 등록시킨 다음 검토를 받으면 됩니다. ( 앱 스토어에 앱 연결하기 참고 )


광고 단위 추가

앱을 추가했으면 광고단위 추가 버튼을 클릭해주세요.

다양한 광고들이 보입니다. 본인이 원하는 광고를 선택해주시면 되는데, 저는 배너광고를 사용할거라 배너를 선택하겠습니다. 다음에 광고 단위 이름을 설정해주시면 1. 앱 ID, 2. 광고 단위 ID 가 보이는데 복사해서 준비해주세요.


Xcode 세팅

// CocoaPods이나
pod 'Google-Mobile-Ads-SDK'

// SPM
https://github.com/googleads/swift-package-manager-google-mobile-ads.git

공식문서 를 참고해서 CocoaPods이나 SPM 을 이용해서 앱에 애드몹을 추가해주세요.

// AppDelegate
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        
        // 구글 광고 초기화 -> 모바일 광고 SDK 초기화해줘야함. 이 작업은 한 번만 수행하면 됨 (최대한 빨리 호출하는게 좋다)
        //
        GADMobileAds.sharedInstance().start(completionHandler: nil)

        return true
    }

AppDelegate 에서 구글 광고를 초기화해주세요.

info.plist -> GADApplicationIdentifier, value 값으로 위에서 복사한 1. 앱 ID 를 입력해주세요. 실제 광고든 테스트광고든 앱 ID는 동일하게 들어가줘야합니다. 두 번째줄 GADIsAdManagerApp, true 는 제가 진행하다가 어떤 에러가 떴는데 Ads SDK was initialized without AppMeasurement 스택오버플로우에서 해결방법을 찾아서 혹시나 같은 에러가 뜨신분들은 GADIsAdManagerApp, true 도 같이 넣어주시고 아무 이상없으신 분들은 그냥 넘어가셔도 됩니다.

이제 모든 기본 세팅이 끝났습니다. UIKit이랑 SwiftUI 코드 구성이 조금 다르다보니 따로 두 가지 케이스 모두 다 한번 정리해보겠습니다.

UIKit

private let demoAdmobView: GADBannerView = { // admob 부분
	var view = GADBannerView()
	view.translatesAutoresizingMaskIntoConstraints = false
	return view
}()

...

override func viewDidLoad() {
	view.addSubview(demoAdmobView)
	demoAdmobView.widthAnchor.constraint(equalToConstant: GADAdSizeBanner.size.width).isActive = true
	demoAdmobView.heightAnchor.constraint(equalToConstant: GADAdSizeBanner.size.height).isActive = true
	demoAdmobView.adUnitID = "ca-app-pub-3940256099942544/2934735716" // test Key
	demoAdmobView.rootViewController = self
	demoAdmobView.load(GADRequest())
    demoAdmobView.delegate = self
}

// GADBannerViewDelegate
//
extension ViewController : GADBannerViewDelegate {
    public func adViewDidReceiveAd(_ bannerView: GADBannerView) {
        bannerView.alpha = 0
        UIView.animate(withDuration: 1) {
            bannerView.alpha = 1
        }
    }
}

adUnitID 에는 테스트로 실행시키실거면 테스트 광고 사용 설정 을 보시고 테스트 키를 넣어주시면 되고, 실제 앱에 올라가는 광고를 넣으실거면 위에서 복사한 2. 광고 단위 ID 를 넣어주시면 됩니다. GADBannerViewDelegate 부분은 광고를 받아왔을 때 배너에 광고를 표시해주기 위한 Delegate라고 하는데 광고 로드 시 발생하는 에러 같은것도 처리가 가능하다고 합니다. 근데 저는 이거 없어도 광고가 떠서.. 정확하게 어떤 것을 하는 친구인지는 잘 모르겠네요.. adViewDidReceiveAd 말고도 그런 에러나 예외처리 분기를 다루는 메소드들이 존재하는 것 같습니다. 일단 이렇게만 설정하고 넘어가겠습니다.

SwiftUI

struct GADBanner: UIViewControllerRepresentable {
    
    func makeUIViewController(context: Context) -> some UIViewController {
        let view = GADBannerView(adSize: GADAdSizeBanner)
        let viewController = UIViewController()
        view.adUnitID = "ca-app-pub-3940256099942544/2934735716" // test Key
        view.rootViewController = viewController
        viewController.view.addSubview(view)
        viewController.view.frame = CGRect(origin: .zero, size: GADAdSizeBanner.size)
        view.load(GADRequest())
        return viewController
    }
    func updateUIViewController(_ uiViewController: UIViewControllerType, context: Context) {
    
    }
}

...

	@ViewBuilder func admob() -> some View {
		// admob
		GADBanner().frame(width: GADAdSizeBanner.size.width, height: GADAdSizeBanner.size.height)
	}
    
	var body: some View {
		VStack {
			...
			admob()
        } // VStack
	} // body      

UIKit에서 했던거랑 마찬가지로 나중에 출시하면 adUnitId에 본인의 ID를 넣어주시면 됩니다. 그리고 저는 SwiftUI에서는 AppDelegate 에서 진행한 광고초기화는 따로 안해도 돌아가는거 같습니다.. 만약 안되시면 광고초기화 코드를 한번 넣어서 실행시켜보세요 !


구글 애드몹 앱 검토

추가로 앱 스토어에 등록되지 않은 앱으로 진행하다가 앱 스토어에 등록을 하고 구글 애드몹에서 검토 받는 방법을 알아보겠습니다.

앱 스토어에 등록되지 않은 상태면 저렇게 검토가 필요하다고 떠있습니다. 앱 스토어 옆에 추가 버튼을 클릭해주세요.

여기서 본인 앱의 앱 스토어 링크나 스토어 ID를 입력하면 저렇게 앱이 나옵니다. 추가를 클릭하면

이렇게 앱이 업데이트되었다고 알림이 뜨고 구글은 앱을 검토합니다.

이렇게 준비 중에서 준비됨 이라고 바뀌면 정상적으로 검토가 끝났고 애드몹을 사용할 수 있는 상태가 됐습니다. 이 상태에서 본인의 광고 단위 ID를 정상적으로 넣었다면 애드몹이 뜨실겁니다.

0개의 댓글