Skip to content

Instantly share code, notes, and snippets.

View ayltai's full-sized avatar

Alan Tai ayltai

View GitHub Profile
@ayltai
ayltai / AdMobNativeAd.java
Created February 12, 2017 10:23
Fetch ad for AdMob
@Override
public void fetchAd() {
new AdLoader.Builder(this.getContext(), this.adUnitId)
.forAppInstallAd(AdMobNativeAd.this)
.forContentAd(AdMobNativeAd.this)
.withNativeAdOptions(this.getNativeAdOptionsBuilder().build())
.withAdListener(new AdListener() {
@Override
public void onAdOpened() {
AdMobNativeAd.this.notifyAdClicked();
@ayltai
ayltai / FacebookNativeEvent.java
Created February 12, 2017 09:56
Populating ad fields
this.setTitle(this.nativeAd.getAdTitle());
this.setText(this.nativeAd.getAdBody());
final NativeAd.Image coverImage = this.nativeAd.getAdCoverImage();
if (coverImage != null) this.setMainImageUrl(coverImage.getUrl());
final NativeAd.Image icon = this.nativeAd.getAdIcon();
if (icon != null) this.setIconImageUrl(icon.getUrl());
this.setCallToAction(this.nativeAd.getAdCallToAction());
@ayltai
ayltai / FacebookNativeEvent.java
Created February 12, 2017 09:36
Extending CustomNativeEvent class
@Override
public void loadNativeAd(@NonNull final Context context,
@NonNull final CustomEventNative.CustomEventNativeListener customEventNativeListener,
@NonNull final Map<String, Object> localExtras,
@NonNull final Map<String, String> serverExtras) {
final String adUnitId = serverExtras.get(KEY_AD_UNIT_ID);
if (this.validateAdUnitId(adUnitId)) {
final FacebookNativeAd nativeAd = this.createNativeAd(context, customEventNativeListener, null, adUnitId);
nativeAd.destroy();
moPubNative.destroy();
@Override
public void onNativeLoad(final NativeAd nativeAd) {
nativeAd.setMoPubNativeEventListener(this);
nativeAd.renderAdView(view);
nativeAd.prepare(view);
}
@Override
public void onNativeFail(final NativeErrorCode errorCode) {
Log.w(this.getClass().getSimpleName(), errorCode.toString());
@ayltai
ayltai / MainActivity.java
Created February 12, 2017 08:17
Request native ad
moPubNative.makeRequest(new RequestParameters.Builder()
.desiredAssets(EnumSet.of(
RequestParameters.NativeAdAsset.TITLE,
RequestParameters.NativeAdAsset.TEXT,
RequestParameters.NativeAdAsset.MAIN_IMAGE,
RequestParameters.NativeAdAsset.CALL_TO_ACTION_TEXT))
.build());
@ayltai
ayltai / MainActivity.java
Created February 12, 2017 08:10
MoPub SDK initialization
moPubNative = new MoPubNative(context, adUnitId, moPubNativeNetworkListener);
moPubNative.registerAdRenderer(new MoPubStaticNativeAdRenderer(new ViewBinder.Builder(R.layout.view_native_ad)
.titleId(R.id.ad_title)
.textId(R.id.ad_body)
.mainImageId(R.id.ad_image)
.callToActionId(R.id.ad_call_to_action)
.build()));
<!-- MoPub -->
<activity
android:name="com.mopub.mobileads.MoPubActivity"
android:configChanges="keyboardHidden|orientation|screenSize" />
<activity
android:name="com.mopub.common.MoPubBrowser"
android:configChanges="keyboardHidden|orientation|screenSize" />
<!-- Facebook Audience Network -->
<activity
@ayltai
ayltai / AndroidManifest.xml
Created February 12, 2017 06:14
Add permissions to AndroidManifest.xml
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="org.github.ayltai.mopub.adapter.app">
<!-- Required -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- Required by Facebook Audience Network and Flurry Ads -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
@ayltai
ayltai / build.gradle
Created February 12, 2017 06:10
Add MoPub SDK dependency
dependencies {
compile('com.mopub:mopub-sdk-native-static:4.12.0@aar') { transitive = true }
// Other dependencies
}