#java #android #android-studio #admob
#java #Android #android-studio #admob
Вопрос:
Я внедрил Google AdMob в свое приложение для Android и использовал только рекламные баннеры.
Сначала я использовал тестовые объявления, чтобы убедиться, что объявления работают, и они были.
Однако всякий раз, когда я указываю свои идентификаторы живой рекламы, рекламные баннеры не отображаются.
Я знаю, что для того, чтобы рекламные места стали живыми, может потребоваться несколько дней, однако я сделал их заранее неделю назад.
Кто-нибудь знает, как исправить эту проблему?
Вот мой код файла макета (я заблокировал идентификатор размещения рекламы:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<androidx.viewpager.widget.ViewPager
android:id="@ id/viewPager"
android:layout_width="411dp"
android:layout_height="557dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@ id/tabLayout"/>
<com.google.android.material.tabs.TabLayout
android:id="@ id/tabLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<com.google.android.material.tabs.TabItem
android:id="@ id/tab1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Sky Q" />
<com.google.android.material.tabs.TabItem
android:id="@ id/tab2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Sky HD" />
</com.google.android.material.tabs.TabLayout>
<com.google.android.gms.ads.AdView
android:id="@ id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
app:adSize="BANNER"
app:adUnitId="PLACEHOLDER"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"></com.google.android.gms.ads.AdView>
</androidx.constraintlayout.widget.ConstraintLayout>
Вот мой основной код активности:
package com.jodastudios.remotecontroluniversal;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentManager;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TableLayout;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.MobileAds;
import com.google.android.gms.ads.initialization.InitializationStatus;
import com.google.android.gms.ads.initialization.OnInitializationCompleteListener;
import com.google.android.material.tabs.TabItem;
import com.google.android.material.tabs.TabLayout;
public class MainActivity extends AppCompatActivity {
private ViewPager viewPager;
private PagerAdapter pagerAdapter;
private TabLayout tabLayout;
private TabItem tab1,tab2;
private AdView mAdView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MobileAds.initialize(this, new OnInitializationCompleteListener() {
@Override
public void onInitializationComplete(InitializationStatus initializationStatus) {
}
});
mAdView = findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
viewPager = (ViewPager) findViewById(R.id.viewPager);
tabLayout = (TabLayout) findViewById(R.id.tabLayout);
tab1 = (TabItem) findViewById(R.id.tab1);
tab2 = (TabItem) findViewById(R.id.tab2);
pagerAdapter = new PageAdapter(getSupportFragmentManager(),tabLayout.getTabCount());
viewPager.setAdapter(pagerAdapter);
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewPager.setCurrentItem(tab.getPosition());
if(tab.getPosition() == 0 || tab.getPosition() == 1){
pagerAdapter.notifyDataSetChanged();
}
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main_activity,menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
if(item.getItemId() == R.id.settings){
// Open settings activity
Intent intent = new Intent(getApplicationContext(),PreferenceActivity.class);
startActivity(intent);
}else if(item.getItemId() == R.id.help){
// Open help activity
}
return super.onOptionsItemSelected(item);
}
}
Ответ №1:
Невозможно показывать живую рекламу в отладочной версии без этого:
Документация:
Если вы хотите провести более тщательное тестирование с рекламой, похожей на производственную, теперь вы можете настроить свое устройство как тестовое и использовать собственные идентификаторы рекламных блоков, созданные в пользовательском интерфейсе AdMob. Тестовые устройства можно либо добавить в пользовательском интерфейсе AdMob, либо программно с помощью Google Mobile Ads SDK.
//TODO find your device id in logcat
List<String> testDeviceIds = Arrays.asList("33BE2250B43518CCDA7DE426D04EE231");
RequestConfiguration configuration =
new RequestConfiguration.Builder().setTestDeviceIds(testDeviceIds).build();
MobileAds.setRequestConfiguration(configuration);
Проверьте это https://developers.google.com/admob/android/test-ads