本指南適用于希望借助AdMob通過Android應用獲利但不使用Firebase的發(fā)布商。
要展示廣告和賺取收入,第一步是將Google移動廣告SDK集成到應用中。集成SDK后,您可以選擇一種廣告格式,如原生廣告或激勵視頻廣告,然后按照相應步驟進行實現。
前提條件
·使用Android Studio 3.2或更高版本
·minSdkVersion 16或更高版本
·compileSdkVersion 28或更高版本
·創(chuàng)建Google AdMob帳號并注冊應用。
導入移動廣告SDK
注意:您應該先在Android Studio中創(chuàng)建一個新項目,然后選中Use AndroidX Artifacts對應的復選框,或者遷移到AndroidX來遷移您的項目。
通過使用指向Google Maven代碼庫的Gradle依賴項,應用可以導入Google移動廣告SDK。首先,請確保在項目級build.gradle文件的allprojects部分引用了google()。
項目級build.gradle示例(節(jié)選)
allprojects {
repositories {
google()
}
}
接下來,請打開您應用的應用級build.gradle文件,并找到“dependencies”部分。
應用級build.gradle示例(節(jié)選)
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'com.google.android.gms:play-services-ads:19.6.0'
}
請?zhí)砑由厦娴拇煮w代碼行,該代碼會指示Gradle提取最新版本的移動廣告SDK及其他相關依賴項。添加完該代碼后,請保存文件并執(zhí)行“Gradle sync”。
更新您的AndroidManifest.xml
通過添加下面顯示的包含android:name="com.google.android.gms.ads.APPLICATION_ID"的<meta-data>標記,即可將您的AdMob應用ID(可在AdMob界面中找到)添加到您的應用的AndroidManifest.xml文件中。
您可以在AdMob界面中找到您的應用ID。對于android:value,請插入AdMob應用ID并加上引號,如下所示。
<manifest>
<application>
<!-- Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713 -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
</application>
</manifest>
要點:在真實應用中,請務必使用您的實際AdMob應用ID,而不是上面列出的ID。但如果您只是想在一個Hello World應用中體驗一下SDK,可以使用上述示例應用ID。
重要提示:自Google移動廣告SDK 17.0.0版本開始,均須執(zhí)行此步驟。如果未能添加此<meta-data> 標記,將會導致崩潰,并顯示以下消息:The Google Mobile Ads SDK was initialized incorrectly。
初始化移動廣告SDK
加載廣告之前,請先調用MobileAds.initialize(),以便讓應用初始化移動廣告SDK。該方法將初始化相應SDK,并在初始化完成后或30秒超時后回調完成監(jiān)聽器。此操作僅需執(zhí)行一次,最好是在應用啟動時執(zhí)行。
警告:在調用MobileAds.initialize()時,移動廣告SDK或中介合作伙伴SDK可能會預加載廣告。如果您需要獲得歐洲經濟區(qū)(EEA)用戶的同意,請設置任何專門用于特定請求的標記(例如tagForChildDirectedTreatment或tag_for_under_age_of_consent),或者在加載廣告之前采取任何其他相關操作,并確保在初始化移動廣告SDK之前先完成這些操作。
以下示例說明了如何在Activity中調用initialize()方法:
示例MainActivity(節(jié)選)
Java
package ...
import ...
import com.google.android.gms.ads.MobileAds;
import com.google.android.gms.ads.initialization.InitializationStatus;
import com.google.android.gms.ads.initialization.OnInitializationCompleteListener;
public class MainActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MobileAds.initialize(this, new OnInitializationCompleteListener() {
@Override
public void onInitializationComplete(InitializationStatus initializationStatus) {
}
});
}
}
Kotlin
package ...
import ...
import com.google.android.gms.ads.MobileAds;
class MainActivity : AppCompatActivity() {
...
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
MobileAds.initialize(this) {}
}
...
}
如果您使用了中介功能,請等到調用完成處理程序后再加載廣告,因為這可確保初始化所有中介適配器。
選擇一種廣告格式
現已導入移動廣告SDK,您隨時可以植入廣告了。AdMob提供了許多不同的廣告格式,您可以根據您應用的用戶體驗選擇最契合的一款。
橫幅廣告
橫幅廣告是在設備屏幕的頂部或底部展示的矩形廣告。用戶與應用互動時,橫幅廣告會停留在屏幕上,并且可在一段時間后自動刷新。如果您剛開始接觸移動廣告,建議從橫幅廣告著手。
插頁式廣告
插頁式廣告是全屏廣告,它會覆蓋整個應用界面,直到用戶將其關閉。在應用執(zhí)行流程的自然停頓點,例如游戲的不同關卡之間,或一項任務完成后,最適合投放這類廣告。
原生廣告
原生廣告是一種與您應用的外觀和風格融為一體的定制廣告。您可以決定這類廣告的投放方式和位置,從而讓版式與應用的設計風格更為統一。
激勵廣告
向觀看短視頻和與試玩廣告及問卷調查互動的用戶予以獎勵的廣告。適合通過那些只愿意免費玩游戲的用戶獲利。