Skip to content

Commit 9c2756e

Browse files
committed
native ad added to admob
1 parent d44b0d4 commit 9c2756e

File tree

1 file changed

+50
-1
lines changed

1 file changed

+50
-1
lines changed

_drafts/2019-04-29-admob.md

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,4 +183,53 @@ class RewarderVideoAdActivity : AppCompatActivity(), RewardedVideoAdListener {
183183
{% endhighlight %}
184184

185185
## Reklama natywna
186-
//TODO
186+
Reklamy natywne (`native ads`) składają się z zasobów reklamowych, które są wyświetlane za pośrednictwem standardowych natywnych widoków interfejsu użytkownika. Dzięki temu treść otrzymanych reklam może być sformatowana w taki sposób, aby pasowała do szaty graficznej aplikacji. Aby dodać reklamę natywną należy przy użyciu instancji `AdLoader` uzyskać obiekt `UnifiedNativeAd` zawierający zasoby reklamowe, zaimplementować obiekty słuchaczy, stworzyć kontrolki widoku osadzone w rodzicu `UnifiedNativeAdView`, a następnie wyświetlić załadowaną reklamę w widoku. Reklamy natywne wspierają także materiały wideo oraz obsługę preferencji niepożądanej treści.
187+
188+
{% highlight kotlin %}
189+
class NativeAdActivity : AppCompatActivity() {
190+
191+
private lateinit var adLoader: AdLoader
192+
193+
override fun onCreate(savedInstanceState: Bundle?) {
194+
super.onCreate(savedInstanceState)
195+
setContentView(R.layout.activity_native_ad)
196+
MobileAds.initialize(this, "ca-app-pub-3940256099942544~3347511713")
197+
loadUnifiedNativeAd()
198+
}
199+
200+
private fun loadUnifiedNativeAd() {
201+
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
202+
.forUnifiedNativeAd { ad : UnifiedNativeAd ->
203+
showUnifiedNativeAd(parentView, ad)
204+
}
205+
.withAdListener(object: AdListener() {
206+
//add custom behavior to listener methods
207+
override fun onAdClicked() {
208+
//some action
209+
}
210+
})
211+
.withNativeAdOptions(NativeAdOptions.Builder() //setup builder
212+
.setImageOrientation(ORIENTATION_PORTRAIT)
213+
.build())
214+
.build()
215+
216+
adLoader.loadAd(AdRequest.Builder().build()) //or use loadAds to load multiple items
217+
}
218+
219+
private fun showUnifiedNativeAd(parent: ViewGroup, ad: UnifiedNativeAd) {
220+
//inflate view where adView root should be UnifiedNativeAdView instance
221+
val inflater = parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
222+
val adView = inflater.inflate(R.layout.custom_ad_layout, parent) as UnifiedNativeAdView
223+
224+
//use ad data into some views like text or image
225+
val headlineView = adView.findViewById<TextView>(R.id.ad_headline)
226+
headlineView.text = ad.headline
227+
adView.headlineView = headlineView
228+
229+
//clear parent and put new add
230+
adView.setNativeAd(ad)
231+
parent.removeAllViews()
232+
parent.addView(adView)
233+
}
234+
}
235+
{% endhighlight %}

0 commit comments

Comments
 (0)