Appnext adalah platform iklan digital seluler terkemuka, membantu jutaan pengguna menggunakan aplikasi pada waktu yang tepat sepanjang hari. Platform kami menawarkan kepada penayang seluler dan reseller aplikasi solusi teknologi end-to-end untuk monetisasi premium dan pengembangan aplikasi.
Dengan komunitas berkembang yang terdiri lebih dari 65.000 pengembang dan 650 juta pengguna di seluruh dunia, appnext telah menciptakan pasar yang menghubungkan penayang dan pengiklan secara langsung dan lancar untuk mendukung upaya monetisasi dan periklanan mereka.
Appnext telah menjadi pemimpin dalam periklanan dalam aplikasi dan video seluler sejak 2012, bermitra dengan web seluler, game, penerbit aplikasi, OEM, dan operator terkemuka untuk membantu mereka mengembangkan bisnis seluler dengan mempromosikan aplikasi mereka.
Pembayaran Appnext diproses dalam waktu 10 hari sejak faktur, asalkan saldo akun Penerbit lebih besar dari $200 jika Penerbit memilih untuk penarikan melalui transfer bank atau $50 jika Penerbit memilih untuk melalui PayPal atau layanan serupa.
Halaman ini akan menampilkan contoh unit iklan Appnext Android SDK; Interstitial, Spanduk, Layar pembuka/Penghargaan.
Tambahkan baris kode berikut ini ke file build.gradle aplikasi Anda di dalam bagian repositori:
jcenter()
maven { url "http://dl.appnext.com/" }
Tambahkan ini ke bagian Dependensi, yang diperlukan:
implementation 'com.appnext.sdk:ads:2.4.2.471.2'
implementation 'com.appnext.sdk:banners:2.4.2.471.2'
Appnext SDK menggunakan izin yang Anda berikan kepada aplikasi Anda untuk meningkatkan penargetan kampanye dan menyarankan aplikasi yang paling relevan kepada pengguna. Kami sangat menyarankan agar aplikasi Anda memerlukan izin berikut agar Anda dapat merekomendasikannya dengan lebih baik kepada pengguna dan menampilkan jenis kampanye premium di dalamnya, tambahkan ini ke AndroidManifest.xml:
<!-- dapatkan akses jaringan penuh -->
<uses-permission android:name="android.permission.INTERNET"/>
<!-- lihat sambungan jaringan -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<!-- Appnext integration -->
<service android:name="com.appnext.core.DownloadService" />
<activity android:name="com.appnext.ads.interstitial.InterstitialActivity"
android:hardwareAccelerated="true"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />
<activity android:name="com.appnext.ads.fullscreen.FullscreenActivity"
android:hardwareAccelerated="true" android:configChanges="keyboardHidden|orientation|screenSize"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />
Untuk melakukan percobaan saya susun file activity_main.xml seperti di bawah ini:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.appnext.sdktest.MainActivity">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="30dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Set streaming mode"
android:layout_alignParentLeft="true"
android:layout_marginLeft="10dp"/>
<Switch
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/Idswitch"
android:layout_alignParentRight="true"
android:layout_marginRight="10dp"/>
</RelativeLayout>
<Button
android:id="@+id/interLoadad"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="interstitial load ad" />
<Button
android:id="@+id/interShow"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/inter_load_button"
android:text="interstitial show ad" />
<Button
android:id="@+id/fullScreenLoadad"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/inter_show_button"
android:text="fullscreen load ad" />
<Button
android:id="@+id/fullScreenShow"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/full_screen_load_button"
android:text="fullscreen show ad" />
<Button
android:id="@+id/multiRewardedLoad"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/full_screen_show_button"
android:text="multi rewarded load ad" />
<Button
android:id="@+id/multiRewardedShow"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/multi_rewarded_load_button"
android:text="multi rewarded show ad" />
<Button
android:id="@+id/normalRewardedLoad"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/full_screen_show_button"
android:text="normal rewarded load ad" />
<Button
android:id="@+id/normalRewardedShow"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/multi_rewarded_load_button"
android:text="normal rewarded show ad" />
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:layout_marginBottom="15dp"
android:id="@+id/spinner"/>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<com.appnext.banners.BannerView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/banner1"
android:visibility="invisible"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:bannerSize="BANNER"
ads:placementId="a48ac80e-7c52-402d-b061-b7d6ca400823"/>
<com.appnext.banners.BannerView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/banner2"
android:visibility="invisible"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:bannerSize="LARGE_BANNER"
ads:placementId="ea4af50b-40ca-4f3b-8beb-2b10b562a270"/>
<com.appnext.banners.BannerView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/banner3"
android:visibility="invisible"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:bannerSize="MEDIUM_RECTANGLE"
ads:placementId="4f4ba404-0215-42c0-acff-77de7a45fdc9"/>
</RelativeLayout>
</LinearLayout>
</ScrollView>
</RelativeLayout>
Dan baris kode di bawah ini adalah untuk file MainActivity.java saya.
package com.happycodx.app;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.Spinner;
import android.widget.Switch;
import android.widget.Toast;
import com.appnext.ads.fullscreen.FullScreenVideo;
import com.appnext.ads.fullscreen.RewardedVideo;
import com.appnext.ads.fullscreen.Video;
import com.appnext.ads.interstitial.Interstitial;
import com.appnext.banners.BannerAdRequest;
import com.appnext.banners.BannerListener;
import com.appnext.banners.BannerView;
import com.appnext.core.AppnextError;
import com.appnext.core.callbacks.OnAdClicked;
import com.appnext.core.callbacks.OnAdClosed;
import com.appnext.core.callbacks.OnAdError;
import com.appnext.core.callbacks.OnAdLoaded;
import com.appnext.core.callbacks.OnVideoEnded;
public class MainActivity extends Activity implements View.OnClickListener {
private Interstitial interstitial;
private FullScreenVideo fullscreen;
private RewardedVideo rewardedMulti;
private RewardedVideo rewardedNormal;
private OnVideoEnded onVideoEnded;
private OnAdLoaded onAdLoaded;
private OnAdError onAdError;
private OnAdClosed onAdClosed;
private OnAdClicked onAdClicked;
private BannerView bannerView1, bannerView2, bannerView3;
private Button interLoadButton, interShowButton, fullScreenLoadButton, fullScreenShowButton, multiRewardedLoadButton, multiRewardedShowButton, normalRewardedLoadButton, normalRewardedShowButton;
private Spinner bannerSpinner;
private String placementIDInter = "103029bd-5625-4ba2-9293-8a29461b8692";
private String placementIDFullScreen = "faed8533-5061-418b-8ad1-7b19a066ef8a";
private String placementIDRewardedNormal = "37d5b4a5-500b-44fb-b745-788084be2794";
private String placementIDRewardedMulti = "0445b326-976b-4d49-99b6-ccc0c5284346";
@Override
protected void onCreate(Bundle savedInstanceState) {
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setVies();
onVideoEnded = new OnVideoEnded() {
@Override
public void videoEnded() {
Toast.makeText(MainActivity.this, "videoEnded", Toast.LENGTH_SHORT).show();
}
};
onAdLoaded = new OnAdLoaded() {
@Override
public void adLoaded(String banner) {
Toast.makeText(MainActivity.this, "adLoaded", Toast.LENGTH_SHORT).show();
}
};
onAdError = new OnAdError() {
@Override
public void adError(String error) {
Toast.makeText(MainActivity.this, "adError " + error, Toast.LENGTH_SHORT).show();
}
};
onAdClosed = new OnAdClosed() {
@Override
public void onAdClosed() {
Toast.makeText(MainActivity.this, "onAdClosed", Toast.LENGTH_SHORT).show();
}
};
onAdClicked = new OnAdClicked() {
@Override
public void adClicked() {
Toast.makeText(MainActivity.this, "adClicked", Toast.LENGTH_SHORT).show();
}
};
interstitial = new Interstitial(this, placementIDInter);
interstitial.setOnAdClickedCallback(onAdClicked);
interstitial.setOnAdClosedCallback(onAdClosed);
interstitial.setOnAdErrorCallback(onAdError);
interstitial.setOnAdLoadedCallback(onAdLoaded);
fullscreen = new FullScreenVideo(this, placementIDFullScreen);
fullscreen.setOnAdClickedCallback(onAdClicked);
fullscreen.setOnAdClosedCallback(onAdClosed);
fullscreen.setOnAdErrorCallback(onAdError);
fullscreen.setOnAdLoadedCallback(onAdLoaded);
fullscreen.setOnVideoEndedCallback(onVideoEnded);
fullscreen.setBackButtonCanClose(true);
fullscreen.setShowClose(true);
rewardedMulti = new RewardedVideo(this, placementIDRewardedMulti);
rewardedMulti.setMode(RewardedVideo.VIDEO_MODE_MULTI);
rewardedMulti.setVideoLength(Video.VIDEO_LENGTH_SHORT);
rewardedMulti.setMultiTimerLength(9);
rewardedMulti.setRollCaptionTime(-1);
rewardedMulti.setOnAdClickedCallback(onAdClicked);
rewardedMulti.setOnAdClosedCallback(onAdClosed);
rewardedMulti.setOnAdErrorCallback(onAdError);
rewardedMulti.setOnAdLoadedCallback(onAdLoaded);
rewardedMulti.setOnVideoEndedCallback(onVideoEnded);
rewardedMulti.setRewardedServerSidePostback("TransactionId", "UserId", "TypeCurrency", "Amount", "CustomParameter");
rewardedNormal = new RewardedVideo(this, placementIDRewardedNormal);
rewardedNormal.setMode(RewardedVideo.VIDEO_MODE_NORMAL);
rewardedNormal.setOnAdClickedCallback(onAdClicked);
rewardedNormal.setOnAdClosedCallback(onAdClosed);
rewardedNormal.setOnAdErrorCallback(onAdError);
rewardedNormal.setOnAdLoadedCallback(onAdLoaded);
rewardedNormal.setOnVideoEndedCallback(onVideoEnded);
rewardedNormal.setRewardedServerSidePostback("TransactionId", "UserId", "TypeCurrency", "Amount", "CustomParameter");
Switch streamingSwitch = (Switch) findViewById(R.id.Idswitch);
streamingSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
Video.setStreamingMode(isChecked);
}
});
}
private void setVies() {
interLoadButton = (Button) findViewById(R.id.interLoadad);
interLoadButton.setOnClickListener(this);
interShowButton = (Button) findViewById(R.id.interShow);
interShowButton.setOnClickListener(this);
fullScreenLoadButton = (Button) findViewById(R.id.fullScreenLoadad);
fullScreenLoadButton.setOnClickListener(this);
fullScreenShowButton = (Button) findViewById(R.id.fullScreenShow);
fullScreenShowButton.setOnClickListener(this);
multiRewardedLoadButton = (Button) findViewById(R.id.multiRewardedLoad);
multiRewardedLoadButton.setOnClickListener(this);
multiRewardedShowButton = (Button) findViewById(R.id.multiRewardedShow);
multiRewardedShowButton.setOnClickListener(this);
normalRewardedLoadButton = (Button) findViewById(R.id.normalRewardedLoad);
normalRewardedLoadButton.setOnClickListener(this);
normalRewardedShowButton = (Button) findViewById(R.id.normalRewardedShow);
normalRewardedShowButton.setOnClickListener(this);
bannerSpinner = (Spinner) findViewById(R.id.spinner);
bannerView1 = (BannerView) findViewById(R.id.banner1);
bannerView1.setVisibility(View.INVISIBLE);
bannerView2 = (BannerView) findViewById(R.id.banner2);
bannerView2.setVisibility(View.INVISIBLE);
bannerView3 = (BannerView) findViewById(R.id.banner3);
bannerView3.setVisibility(View.INVISIBLE);
String[] arraySpinner = new String[] {"Choose a banner size to show", "BANNER (320x50)", "LARGE BANNER (320x100)", "MEDIUM RECTANGLE (300x250)"};
ArrayAdapter adapter = new ArrayAdapter(this,
android.R.layout.simple_spinner_item, arraySpinner);
bannerSpinner.setAdapter(adapter);
bannerSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView parent, View view, int position, long id) {
switch (position){
case 0:
case 1:
bannerView1.loadAd(new BannerAdRequest());
bannerView1.setVisibility(View.VISIBLE);
bannerView1.setBannerListener(new BannerListener(){
@Override
public void onError(AppnextError appnextError) {
super.onError(appnextError);
Toast.makeText(getApplicationContext(), "No ads", Toast.LENGTH_SHORT).show();
}
});
bannerView2.setVisibility(View.INVISIBLE);
bannerView3.setVisibility(View.INVISIBLE);
break;
case 2:
bannerView2.loadAd(new BannerAdRequest());
bannerView1.setVisibility(View.INVISIBLE);
bannerView2.setVisibility(View.VISIBLE);
bannerView2.setBannerListener(new BannerListener(){
@Override
public void onError(AppnextError appnextError) {
super.onError(appnextError);
Toast.makeText(getApplicationContext(), "No ads", Toast.LENGTH_SHORT).show();
}
});
bannerView3.setVisibility(View.INVISIBLE);
break;
case 3:
bannerView3.loadAd(new BannerAdRequest().setMute(true).setAutoPlay(true));
bannerView1.setVisibility(View.INVISIBLE);
bannerView2.setVisibility(View.INVISIBLE);
bannerView3.setVisibility(View.VISIBLE);
bannerView3.setBannerListener(new BannerListener(){
@Override
public void onError(AppnextError appnextError) {
super.onError(appnextError);
Toast.makeText(getApplicationContext(), "No ads", Toast.LENGTH_SHORT).show();
}
});
break;
}
}
@Override
public void onNothingSelected(AdapterView parent) {
bannerView1.setVisibility(View.INVISIBLE);
bannerView2.setVisibility(View.INVISIBLE);
bannerView3.setVisibility(View.INVISIBLE);
}
});
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.inter_load_button:
interstitial.loadAd();
break;
case R.id.inter_show_button:
interstitial.showAd();
break;
case R.id.full_screen_load_button:
fullscreen.loadAd();
break;
case R.id.full_screen_show_button:
fullscreen.showAd();
break;
case R.id.multi_rewarded_load_button:
rewardedMulti.loadAd();
break;
case R.id.multiRewardedShow:
rewardedMulti.showAd();
break;
case R.id.normalRewardedLoad:
rewardedNormal.loadAd();
break;
case R.id.normalRewardedShow:
rewardedMulti.showAd();
break;
default:
}
}
}
Hasilnya, anda bisa lihat video di bawah ini: