Android-Как заставить Inneractive рекламу работать?
Я нахожусь на более поздних стадиях своего приложения, и мне интересно, как я должен заставить Inneractive объявление работать. Я попробовал их учебник, и он не отображает рекламу, несмотря на тот факт, что у меня на Galaxy Galaxy S II прекрасные 6 тактов. У меня есть как inneractive, так и jar поддержки в ссылочных библиотеках. Вот код, который я использую:
package com.ads;
import com.inneractive.api.ads.InneractiveAd;
import java.util.Hashtable;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.support.v4.content.LocalBroadcastManager;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
public class AdsActivity extends Activity {
LinearLayout linear;
Button interstitialBtn;
Hashtable<InneractiveAd.IaOptionalParams, String> metaData = new Hashtable<InneractiveAd.IaOptionalParams, String>();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Optional parameters
metaData.put(InneractiveAd.IaOptionalParams.Key_Gender, "F");
metaData.put(InneractiveAd.IaOptionalParams.Key_Keywords, "sports,fashion");
// Receive inneractive ad events
LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver, new IntentFilter("InneractiveAd"));
linear = new LinearLayout(this);
linear.setOrientation(LinearLayout.VERTICAL);
// Interstitial ad button
interstitialBtn = new Button(this);
interstitialBtn.setText("Interstitial ad");
interstitialBtn.setWidth(getWindowManager().getDefaultDisplay().getWidth());
interstitialBtn.setOnClickListener(new OnClickListener(){
public void onClick(View arg0) {
// Display interstitial ad
if (!InneractiveAd.displayAd(AdsActivity.this, linear, "Android_IA_Test", InneractiveAd.IaAdType.Interstitial, 0, AdsActivity.this.metaData))
noConnectivity();
}
});
// Display banner ad
if (!InneractiveAd.displayAd(AdsActivity.this, linear, "Android_IA_Test", InneractiveAd.IaAdType.Banner, 120, AdsActivity.this.metaData))
noConnectivity();
linear.addView(interstitialBtn);
setContentView(linear);
}
public void noConnectivity() {
AlertDialog alertDialog = new AlertDialog.Builder(AdsActivity.this).create();
alertDialog.setTitle("This application is free but requires an internet connection");
alertDialog.setMessage("Please configure your connectivity settings and re-try");
alertDialog.setButton("Exit", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
onBackPressed();
} });
alertDialog.show();
}
private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
/* Receive the inneractive ad event. Can be one of the following events -
* IaAdReceived - Called when a new paid Ad has been received and is about to be displayed.
* IaDefaultAdReceived - Called when a new default Ad has been received and is about to be displayed.
* IaAdFailed - Called when an Ad request fails to get an Ad.
* IaAdClicked - Called when an Ad clicked.
* IaAdResize - Called when an Ad resized.
* IaAdResizeClosed - Called when an Ad resize closed.
* IaAdExpand - Called when an Ad expanded.
* IaAdExpandClosed - Called when an Ad expand closed.
*/
String message = intent.getStringExtra("message");
}
};
@Override
protected void onDestroy() {
// Unregister events since the activity is about to be closed.
LocalBroadcastManager.getInstance(this).unregisterReceiver(mMessageReceiver);
super.onDestroy();
}
}
Любая помощь будет принята с благодарностью.
1 ответ
Я не очень работал с тем провайдером рекламы, которого вы упомянули, но я работал с другим. Вот несколько вещей, которые вы могли бы сделать.
Убедитесь, что вы получаете успех / неудачу в получении объявления. Обычно у них есть свои слушатели, которых вы можете использовать.
Также попробуйте создать пустой макет в формате XML и поместить в него свое объявление, а не делать это на лету программно.
Если у них есть свои действия, в которых вы можете показывать рекламу, попробуйте сначала.
Еще кое-что. Сначала выполните setContentView(), а затем добавьте объявление. Попробуйте один раз с тем, как вы делаете. Сделайте линейное расположение, setcontentview и затем addview(). Если это не работает, попробуйте метод xml.