๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“š Database/Firebase

[Firebase iOS] ์•ฑ์— ๊ด‘๊ณ ๋‹ฌ๊ธฐ (Google Firebase AdMob)

by Fomagran ๐Ÿ’ป 2021. 1. 18.
728x90
๋ฐ˜์‘ํ˜•

์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค!

 

์ตœ๊ทผ์— TimeBank ๋ผ๋Š” ์•ฑ์„ ์ถœ์‹œํ•˜๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ ์•ฑ์œผ๋กœ ์ˆ˜์ต์„ ์–ป๋Š” ๋ฐฉ๋ฒ•์ด ๋ญ๊ฐ€ ์žˆ์„๊นŒ? ์— ๋Œ€ํ•ด์„œ ์ฐพ์•„๋ณด๋‹ค๊ฐ€

 

google ์• ๋“œ๋ชน์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ๋˜์—ˆ์–ด์š”.

 

๊ทธ๋ž˜์„œ ์˜ค๋Š˜์€ ์• ๋“œ๋ชน ๋‹ค๋Š”๋ฒ•์— ๋Œ€ํ•ด์„œ ๋‹ค๋ค„๋ณด๋„๋ก ํ• ๊ฒŒ์š”!

 

AdMob


Google Admob

 

์• ๋“œ๋ชน ํ™ˆํŽ˜์ด์ง€๋กœ ๋จผ์ € ์ด๋™ํ•ด์ค๋‹ˆ๋‹ค~

 

 

AdMob

ํ•˜๋‚˜์˜ ๊ณ„์ •์œผ๋กœ ๋ชจ๋“  Google ์„œ๋น„์Šค๋ฅผ AdMob์œผ๋กœ ์ด๋™ํ•˜๋ ค๋ฉด ๋กœ๊ทธ์ธํ•˜์„ธ์š”.

accounts.google.com

๊ทธ๋Ÿผ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ™”๋ฉด์ด ๋œฐ๊ฑฐ์—์š”. ์‹œ์ž‘ํ•˜๊ธฐ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ค๋‹ˆ๋‹ค.

 

 

ํ”Œ๋žซํผ์€ ๋‹น์—ฐํžˆ iOS ๊ทธ๋ฆฌ๊ณ  ์ €๋Š” ์•ฑ์Šคํ† ์–ด์— ๋“ฑ๋ก๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์˜ˆ,์ง€์›๋˜๋Š” ์•ฑ ์Šคํ† ์–ด์— ์•ฑ.... ์ด๊ฒƒ์„ ํด๋ฆญํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

 

 

๊ทธ๋ฆฌ๊ณค ์ž์‹ ์˜ ์•ฑ์„ ๊ฒ€์ƒ‰ํ•ด์„œ ๊ณจ๋ผ์ฃผ์„ธ์š”.

 

 

์ œ ์ฒซ๋ฒˆ์งธ ์•ฑ ํƒ€์ž„๋ฑ…ํฌ์ž…๋‹ˆ๋‹ค!!

 

 

์‚ฌ์šฉ์ž ์ธก์ •ํ•ญ๋ชฉ์€ ์ฒดํฌํ•˜์…”๋„ ๋˜๊ณ  ์•ˆํ•˜์…”๋„ ๋ฉ๋‹ˆ๋‹ค. ๋‹ค ๋๋‚˜์…จ์œผ๋ฉด ์•ฑ ์ถ”๊ฐ€๋ฅผ ํ•ด์ค๋‹ˆ๋‹ค.

 

 

๋‹ค ํ•˜์‹  ๋’ค์— ์•ฑ ์„ค์ •์œผ๋กœ ๋“ค์–ด๊ฐ€๋ฉด ์•ฑ ID๊ฐ€ ์ƒ์„ฑ๋œ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ์„๊ฑฐ์—์š”.

 

๋’ค์— ๊ผญ ์•ฑ์•„์ด๋””๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•˜๋‹ˆ ์ž˜ ๋ณด๊ด€ํ•ด๋‘์„ธ์š”!

 

 

 

์ด์ œ ๊ด‘๊ณ ๋ฅผ ๋งŒ๋“ค๊ฑด๋ฐ์š”.

 

์™ผ์ชฝ์— ๊ด‘๊ณ  ๋‹จ์œ„๋ฅผ ๋ˆ„๋ฅด์‹œ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์‹œ์ž‘ํ•˜๊ธฐ ๋ฒ„ํŠผ์ด ์žˆ์„๊ฑฐ์—์š”. ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š”~

 

์›ํ•˜์‹œ๋Š” ๊ด‘๊ณ ๋ฅผ ๊ณ ๋ฅด์‹œ๊ณ 

 

 

๊ด‘๊ณ ๋‹จ์œ„ ์ด๋ฆ„๋„ ์„ค์ •ํ•ด์ฃผ์„ธ์š”~

 

 

๊ทธ๋Ÿผ ์•„๋ž˜์™€ ๊ฐ™์ด ๊ด‘๊ณ ์šฉ ์•ฑID๊ฐ€ ๋ฐœ๊ธ‰๋˜์‹ ๊ฑธ ๋ณผ์ˆ˜๊ฐ€ ์žˆ์„๊ฑฐ์—์š”.

 

์œ„์— ์•ฑ์•„์ด๋””์™€ ํ•ด๋‹น ๊ด‘๊ณ ์šฉ ์•ฑID๋Š” ๋‹ค๋ฅธ ๊ฒƒ์ด๋‹ˆ ๊ผญ ๋‘˜ ๋‹ค ๋ณด๊ด€ํ•ด์ฃผ์„ธ์š”!

 

 

๊ทธ๋ฆฌ๊ณค ๋งˆ์ง€๋ง‰์œผ๋กœ ์•ฑ ์„ค์ •์œผ๋กœ ๋“ค์–ด๊ฐ€์…”์„œ ์—ฐ๊ฒฐ๋œ ์„œ๋น„์Šค์— ํŒŒ์ด์–ด๋ฒ ์ด์Šค ์• ๋“œ๋ชน์ด ์žˆ์„๊ฑฐ์—์š”.

 

ํŒŒ์ด์–ด๋ฒ ์ด์Šค ์• ๋“œ๋ชน์„ ์—ฐ๊ฒฐํ•ด์ค๋‹ˆ๋‹ค.

 

 

๊ทธ๋ฆฌ๊ณค ํŒŒ์ด์–ด๋ฒ ์ด์Šค ์ฝ˜์†”์— ๊ฐ€์…”์„œ ์• ๋“œ๋ชน์„ ๋ˆ„๋ฅด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์—ฐ๊ฒฐ๋จ ํ‘œ์‹œ๋กœ ๋ณ€ํ• ๊ฑฐ์—์š”!

 

 


Xcode

 

์ด์ œ Xcode์— ์ด๋™ํ•˜์…”์„œ info.plist๋กœ ๋จผ์ € ๊ฐ€์ค๋‹ˆ๋‹ค~

 

์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ๋ณต์‚ฌํ•˜์‹œ๊ณ  info.plist์— ๋ถ™์—ฌ๋„ฃ์–ด์ฃผ์„ธ์š”!

	<key>GADApplicationIdentifier</key>
	<string>ca-app-pub-์• ๋“œ๋ชน ์•ฑID</string>
	<key>SKAdNetworkItems</key>
	<array>
		<dict>
			<key>SKAdNetworkidentifier</key>
			<string>cstr6suwn9.skadnetwork</string>
		</dict>
	</array>
    <key>GADIsAdManagerApp</key>
    <true/>

 

์ฃผ์˜ํ• ์ ์€ ca-app-pub ๋‹ค์Œ์€ ๋ฐ˜๋“œ์‹œ ์œ„์—์„œ ํ™•์ธํ•œ ์•ฑID๋ฅผ ๋„ฃ์–ด์ฃผ์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.(์ˆซ์ž~์ˆซ์ž๋กœ ๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.)

 

(๊ตฌ๊ธ€ ๊ณต์‹๋ฌธ์„œ์—” GADIsADManagerApp ์„ ๋„ฃ์œผ๋ž€ ์†Œ๋ฆฌ๊ฐ€ ์—†์–ด์„œ ์ง„์งœ ํ•œ์ฐธ ํ—ค๋งธ์Šต๋‹ˆ๋‹ค ใ…œใ…œ)

 

๊ทธ๋ฆฌ๊ณค podfile์— 'Firebase/Core' ์™€ 'Firebase/Admob' ์„ ์ถ”๊ฐ€ํ•ด์ฃผ์‹œ๊ณ  

 

 

ํ„ฐ๋ฏธ๋„์— pod install --repo-update๋ฅผ ํ•ด์ค๋‹ˆ๋‹ค.

Google AdMob ์‹œ์ž‘ํ•˜๊ธฐ ๋กœ ์ด๋™ํ•ด์„œ SDK ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๋‹ค์šด๋ฐ›์•„์ค๋‹ˆ๋‹ค.

 

 

๋‹ค์šด๋ฐ›์€ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ GoogleMobileAds ํ”„๋ ˆ์ž„์›Œํฌ๋งŒ ๋„ฃ์–ด์ฃผ์„ธ์š”.

 

(์ด๊ฑธ ์•ˆ๋„ฃ์œผ๋ฉด ๋ฌด์Šจ ์ด์œ ์ธ์ง€ Undefined ์˜ค๋ฅ˜๊ฐ€ ๋œจ๋”๋ผ๊ตฌ์š” ใ…œ)

 

 

๊ทธ๋ฆฌ๊ณค Targets - Build Setting ์—์„œ Levels ์—์„œ Other Linker Flags๋ฅผ -Objc๋ฅผ ์ž…๋ ฅํ•ด์ค๋‹ˆ๋‹ค.

 

 


AppDelegate

 

AppDelegate๋กœ ์ด๋™ํ•˜์…”์„œ GoogleMobileAds๋ฅผ import ํ•ด์ค€๋’ค

 

 

didFinishLaunchingWithOptions ๋ฉ”์†Œ๋“œ์— GADMobileAds.sharedInstance().start(completionHandler:nil)์„ ์ถ”๊ฐ€ํ•ด์ค๋‹ˆ๋‹ค.

 


Storyboard

 

์ด์ œ ์Šคํ† ๋ฆฌ๋ณด๋“œ๋กœ ์ด๋™ํ•˜์…”์„œ ์›ํ•˜๋Š” ์œ„์น˜์— (๋ฐฐ๋„ˆ๊ฐ€ ๋‚˜์˜ฌ) ๋ทฐ๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณค View์˜ Class๋ฅผ GADBannerView๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ์„ธ์š”!


ViewController

 

ํ•ด๋‹น ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ๋กœ ์ด๋™ํ•ด์„œ GoogleMobileAds๋ฅผ import ํ•ด์ฃผ์‹œ๊ณ 

 

GADBannerView๋ฅผ ์—ฐ๊ฒฐํ•ด์ค๋‹ˆ๋‹ค.

์•„๋ž˜์™€ ๊ฐ™์ด ๋ฐฐ๋„ˆ๋ทฐ.adUnitID๋Š” ์œ„์—์„œ ๋ฐฐ๋„ˆ๋ฅผ ๋งŒ๋“ค๋•Œ ๋ฐœ๊ธ‰๋๋˜ ๊ด‘๊ณ ์šฉ ์•ฑ์•„์ด๋””๋ฅผ ์ž…๋ ฅํ•˜๊ณ 

 

๋ฐฐ๋„ˆ๋ทฐ์˜ rootViewController๋ฅผ self๋กœ ์„ค์ •ํ•œ ๋’ค loadํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

  bannerView.adUnitID = "ca-app-pub-3940256099942544/2934735716"
  bannerView.rootViewController = self
  bannerView.load(GADRequest())

๊ทผ๋ฐ ์ด๊ฒŒ ์ œ๋Œ€๋กœ ๊ด‘๊ณ ๊ฐ€ ๋ณด์—ฌ์ง€๋Š”๋ฐ ๋ช‡์‹œ๊ฐ„์ •๋„ ์†Œ์š”๋  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•ด์„œ ์ €๋Š” ํ…Œ์ŠคํŠธ์šฉ ์•ฑ์•„์ด๋””๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ ๋‹ค ํ•˜์‹œ๊ณ  ์•ฑ์„ ์‹คํ–‰์‹œ์ผœ๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๊ด‘๊ณ ๊ฐ€ ๊ฒŒ์žฌ๋œ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!!!!


P.S

 

์ฒ˜์Œ์—” Google admob ios ๋ผ๊ณ  ๊ฒ€์ƒ‰ํ•ด์„œ ์‹œ์ž‘ํ•˜๊ธฐ๋ฅผ ๋”ฐ๋ผํ–ˆ๋Š”๋ฐ

 

์—ฌ๊ธฐ์—์„  podfile์—  pod 'Google-Mobile-Ads-SDK' ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ผ๊ณ  ๋‚˜์˜จ๋‹ค.

์ด ํŠœํ† ๋ฆฌ์–ผ๋Œ€๋กœ ๋”ฐ๋ผํ–ˆ์„๋• Undefined ์—๋Ÿฌ๊ฐ€ ๋„ˆ๋ฌด ๋– ์„œ ์ •๋ง ๋งŽ์ด ๊ณ ์ƒํ•˜๊ณ  ์•ˆ๋˜๋Š”๊ฑด๊ฐ€ ์‹ถ์—ˆ๋Š”๋ฐ 

 

Firebase admob์ด๋ผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ํ•ด๋‹น ์‹œ์ž‘ํ•˜๊ธฐ๋ฅผ ๋“ค์–ด๊ฐ€๋ณด๋‹ˆ

 

์—ฌ๊ธฐ์„  ๋˜ podfile์„ ์•„๋ž˜์™€ ๊ฐ™์ด ์ถ”๊ฐ€ํ•˜๋ผ๊ณ  ํ•˜๊ณ  ํŠœํ† ๋ฆฌ์–ผ์ด ๋‹ฌ๋ž๋‹ค.

 

 

์•„๋ฌดํŠผ ๊ฒฐ๊ตญ์— Firebase admob iOS ์‹œ์ž‘ํ•˜๊ธฐ๋Œ€๋กœ ํ•˜๋‹ˆ๊น ์ผ๋ถ€๋ถ„ ์˜ค๋ฅ˜๊ฐ€ ํ•ด๊ฒฐ๋˜๊ธด ํ–ˆ์ง€๋งŒ

 

์—ฌ์ „ํžˆ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ด์„œ inpo.plist์— GADIsADManagerApp ์„ ์ถ”๊ฐ€ํ•˜๊ณ  

 

๋˜ GoogleMobileAds ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ถ”๊ฐ€์‹œ์ผœ์ฃผ๋‹ˆ ์—๋Ÿฌ๊ฐ€ ์™„์ „ํžˆ ํ•ด๊ฒฐ๋๋‹ค.

 

Undefined Objc ์—๋Ÿฌ์˜€๋Š”๋ฐ ์•„์ง๋„ ์™œ ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค ใ…œ

 

์•„๋ฌดํŠผ ์„ฑ๊ณตํ•ด์„œ ๋‹คํ–‰์ด๋‹ค!

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€