(EN) Android Native, CloseAd - adxcorp/ADXLibrary_Integration GitHub Wiki
Native Ad Integration
For Native Ad, build your own layout and implement it to your needs.
1) Native Ad Layout
Native Ad requires you to provide Icon Image, Title Text, CTA Button, Sponsored(AD) Tag, and Privacy Icon. Also, there must be no layout that covers over ad content area. Finally, you are not allowed to change any text, image or touch actions related to the ad content.
You also can refer to below project for implementing native ad layout. (layout_media_native_ad.xml, layout_native_ad.xml) https://github.com/adxcorp/ADXLibrary_Sample_Android
2) Using a single view
MainActivity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
NativeAdFactory.init(this);
// for Native Ad
NativeAdFactory.setViewBinder(DefineAdUnitId.NATIVE_AD_UNIT_ID, new ViewBinder.Builder(R.layout.layout_native_ad)
.mainImageId(R.id.mainImageId)
.iconImageId(R.id.iconImageId)
.titleId(R.id.titleId)
.callToActionId(R.id.callToActionId)
.privacyInformationIconImageId(R.id.privacyInformationIconImageId)
.build());
NativeAdFactory.setAdxViewBinder(DefineAdUnitId.NATIVE_AD_UNIT_ID, new ADXViewBinder.Builder(R.layout.layout_media_native_ad)
.mediaViewContainerId(R.id.mediaContainerId)
.adIconViewContainerId(R.id.adIconContainerId)
.titleId(R.id.titleId)
.adChoiceContainerId(R.id.adChoicesContainerId)
.callToActionId(R.id.callToActionId)
.build());
NativeAdFactory.preloadAd(DefineAdUnitId.NATIVE_AD_UNIT_ID);
}
Activity (or Fragment)
private View mAdView;
private NativeAd mNativeAd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_native_ad_factory);
NativeAdFactory.addListener(mListener);
NativeAdFactory.loadAd(DefineAdUnitId.NATIVE_AD_UNIT_ID);
}
@Override
protected void onDestroy() {
NativeAdFactory.removeListener(mListener);
if(mNativeAd != null) {
mNativeAd.destroy();
mNativeAd = null;
}
super.onDestroy();
}
private NativeAdFactory.NativeAdListener mListener = new NativeAdFactory.NativeAdListener() {
@Override
public void onSuccess(String s, NativeAd nativeAd) {
if(DefineAdUnitId.NATIVE_AD_UNIT_ID.equals(s)) {
mNativeAd = nativeAd;
mAdView = NativeAdFactory.getNativeAdView(NativeAdFactoryActivity.this, DefineAdUnitId.NATIVE_AD_UNIT_ID, mContentView, null);
mContentView.addView(mAdView);
}
}
@Override
public void onFailure(String s) {
}
}
3) Using RecyclerView
MainActivity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
NativeAdFactory.init(this);
// for Native Ad
NativeAdFactory.setViewBinder(DefineAdUnitId.NATIVE_AD_UNIT_ID, new ViewBinder.Builder(R.layout.layout_native_ad)
.mainImageId(R.id.mainImageId)
.iconImageId(R.id.iconImageId)
.titleId(R.id.titleId)
.callToActionId(R.id.callToActionId)
.privacyInformationIconImageId(R.id.privacyInformationIconImageId)
.build());
NativeAdFactory.setAdxViewBinder(DefineAdUnitId.NATIVE_AD_UNIT_ID, new ADXViewBinder.Builder(R.layout.layout_media_native_ad)
.mediaViewContainerId(R.id.mediaContainerId)
.adIconViewContainerId(R.id.adIconContainerId)
.titleId(R.id.titleId)
.adChoiceContainerId(R.id.adChoicesContainerId)
.callToActionId(R.id.callToActionId)
.build());
NativeAdFactory.preloadAd(DefineAdUnitId.NATIVE_AD_UNIT_ID);
}
Activity (or Fragment)
private MoPubRecyclerAdapter mRecyclerAdapter;
private RecyclerView mRecyclerView;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_native_ad_recyclerview);
mRecyclerView = (RecyclerView) findViewById(R.id.native_recycler_view);
final RecyclerView.Adapter originalAdapter = new DemoRecyclerAdapter();
mRecyclerAdapter = NativeAdFactory.getMoPubRecyclerAdapter(this, originalAdapter, DefineAdUnitId.NATIVE_AD_UNIT_ID);
mRecyclerView.setAdapter(mRecyclerAdapter);
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
mRecyclerAdapter.loadAds(DefineAdUnitId.NATIVE_AD_UNIT_ID);
}
@Override
protected void onDestroy() {
super.onDestroy();
mRecyclerAdapter.destroy();
}
Close Ad Integration
Please implement close ad via close ad's unit id
import com.adxcorp.nativead.CloseAdFactory;
public class AppWallActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_app_wall);
ButterKnife.bind(this);
CloseAdFactory.init(this, UNIT_ID, "Exit Message");
CloseAdFactory.preloadAd();
}
@Override
public void onBackPressed() {
CloseAdFactory.showCloseAd(this, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Log.d("chiung.choi", "onClick positive button");
finish();
}
}, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Log.d("chiung.choi", "onCancel");
}
});
}
@Override
protected void onDestroy() {
CloseAdFactory.destroy();
super.onDestroy();
}