如何在我的應用啟動介面實現「開屏廣告」?
什麼是開屏廣告
開屏廣告示例
開屏廣告的優勢
位置優勢:使用者在進入App前就會看到開屏廣告,相比於應用內廣告提前,並且只要使用App的使用者就要強制觀看。
展示面積大:廣告全屏顯示,視覺衝擊力很強,便於優質內容曝光,吸引使用者眼球,增強使用者點選率與品牌曝光度。
當使用者剛開啟應用時,使用者覆蓋面廣,使用者注意力集中。因此開屏廣告適用於廣告主進行大規模的品牌宣傳和產品推廣。
華為廣告服務能夠幫助開發者接入包括開屏廣告在內的6種廣告位。接下來的文章會詳細講解開屏廣告的開發步驟。示例程式碼已在相關社群進行開源,歡迎開發者關注、下載並提供寶貴意見:
前提條件
HUAWEI Ads SDK依賴HMS Core(APK)4.0.0.300及以上版本。如果裝置上未安裝HMS Core(APK)4.0.0.300及以上版本,則無法使用HUAWEI Ads SDK的相關介面。
開發前準備
1.1 新增SplashView。
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".SplashActivity"> <!-- 開屏廣告Logo區域 --> <RelativeLayout android:id="@+id/logo_area" android:layout_width="match_parent" android:layout_height="100dp" android:layout_alignParentBottom="true" android:background="@android:color/white" android:visibility="visible"> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:layout_marginBottom="40dp" android:orientation="vertical"> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginBottom="6dp" android:gravity="center" android:orientation="horizontal"> <ImageView android:layout_width="28dp" android:layout_height="28dp" android:background="@mipmap/ic_launcher" /> <View android:layout_width="0.5dp" android:layout_height="18dp" android:layout_marginLeft="12dp" android:layout_marginRight="12dp" android:alpha="0.1" android:background="@android:color/black" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:alpha="1" android:text="@string/owner" android:textColor="@android:color/black" android:textSize="16sp" /> </LinearLayout> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:alpha="0.5" android:text="@string/copyright_info" android:textColor="@android:color/black" android:textSize="8sp" /> </LinearLayout> </RelativeLayout> <!-- 開屏廣告檢視 --> <com.huawei.hms.ads.splash.SplashView android:id="@+id/splash_ad_view" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@id/logo" /> </RelativeLayout>
以下示例程式碼展示瞭如何獲取SplashView
SplashView splashView = findViewById(R.id.splash_ad_view);
1.2 修改應用預設啟動頁面。
修改AndroidManifest.xml, 將預設啟動的activity修改為SplashActivity,這樣即可在應用主介面載入前展示開屏廣告。
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=" package="com.huawei.hms.ads.sdk"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity" android:exported="false" android:screenOrientation="portrait"> </activity> <activity android:name=".SplashActivity" android:exported="true" android:screenOrientation="portrait"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> ... </application> </manifest>
建立SplashActivity.java類,用於實現開屏廣告獲取和展示。
... import android.os.Build; import androidx.appcompat.app.AppCompatActivity; public class SplashActivity extends AppCompatActivity { // "testq6zq98hecj"為測試專用的廣告位ID, App正式釋出時需要改為正式的廣告位ID private static final String AD_ID = "testq6zq98hecj"; private static final int AD_TIMEOUT = 5000; private static final int MSG_AD_TIMEOUT = 1001; /** * 暫停標誌位。 * 在開屏廣告頁面展示時: * 按返回鍵退出應用時需設定為true,以確保應用主介面不被拉起; * 切換至其他介面時需設定為false,以確保從其他頁面回到開屏廣告頁面時仍然可以正常跳轉至應用主介面; */ private boolean hasPaused = false; // 收到廣告展示超時訊息時的回撥處理 private Handler timeoutHandler = new Handler(new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { if (SplashActivity.this.hasWindowFocus()) { jump(); } return false; } }); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash); // 獲取並展示開屏廣告 loadAd(); } /** * 廣告展示完畢時,從廣告介面跳轉至App主介面 */ private void jump() { if (!hasPaused) { hasPaused = true; startActivity(new Intent(SplashActivity.this, MainActivity.class)); finish(); } } /** * 按返回鍵退出應用時需設定為true,以確保應用主介面不被拉起 */ @Override protected void onStop() { // 移除訊息佇列中等待的超時訊息 timeoutHandler.removeMessages(MSG_AD_TIMEOUT); hasPaused = true; super.onStop(); } /** * 從其他頁面回到開屏頁面時呼叫,進入應用主介面 */ @Override protected void onRestart() { super.onRestart(); hasPaused = false; jump(); } @Override protected void onDestroy() { super.onDestroy();
1.3 獲取廣告。
SplashView建立好之後,透過SplashView類的load()方法來獲取廣告。
private void loadAd() { int orientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT; AdParam adParam = new AdParam.Builder().build(); SplashView.SplashAdLoadListener splashAdLoadListener = new SplashView.SplashAdLoadListener() { @Override public void onAdLoaded() { // 廣告獲取成功時呼叫 ... } @Override public void onAdFailedToLoad(int errorCode) { // 廣告獲取失敗時呼叫, 跳轉至App主介面 jump(); } @Override public void onAdDismissed() { // 廣告展示完畢時呼叫, 跳轉至App主介面 jump(); } }; // 獲取SplashView SplashView splashView = findViewById(R.id.splash_ad_view); // 設定預設Slogan splashView.setSloganResId(R.drawable.default_slogan); // 設定影片類開屏廣告的音訊焦點型別 splashView.setAudioFocusType(AudioFocusType.NOT_GAIN_AUDIO_FOCUS_WHEN_MUTE); // 獲取廣告,其中AD_ID為廣告位ID splashView.load(AD_ID, orientation, adParam, splashAdLoadListener); // 傳送延時訊息,保證廣告顯示超時後,APP首頁可以正常顯示 timeoutHandler.removeMessages(MSG_AD_TIMEOUT); timeoutHandler.sendEmptyMessageDelayed(MSG_AD_TIMEOUT, AD_TIMEOUT);
1.4 監聽廣告事件。
SplashAdDisplayListener adDisplayListener = new SplashAdDisplayListener() { @Override public void onAdShowed() { // 廣告顯示時呼叫 ... } @Override public void onAdClick() { // 廣告被點選時呼叫 ... } }; splashView.setAdDisplayListener(adDisplayListener);
更多應用內廣告形式操作指南:
1、
應用內新增Banner廣告位
2、
應用內新增激勵廣告
3、
應用內新增原生廣告
4、應用內新增開屏廣告
5、
應用內新增插屏廣告
6、
應用內新增貼片廣告
原文連結: https://developer.huawei.com/consumer/cn/forum/topic/0202568885258240762?fid=18
原作者:胡椒
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69970551/viewspace-2779382/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 業務爬坑與總結——開屏廣告熱啟動實現方案
- 實現LCD屏啟動播放影片開機動畫與介面切換動畫
- Flutter實現啟動頁、閃屏廣告頁、引導頁Flutter的flutter_native_splash庫Flutter
- 用Qt(C++)實現如蘋果般的亮屏效果QTC++蘋果
- 如何在移動應用中實現AI畫圖?AI
- Adsota:越南移動應用廣告報告
- iOS APP啟動廣告實現方式 與 APP喚端呼叫iOSAPP
- 研究稱94%免費應用開發商利用應用內廣告變現
- IOS使用Launch Screen.storyboard製作廣告啟動介面iOS
- 煩人的開屏廣告終消失!淘寶支付寶等阿里系APP已取消開屏廣告阿里APP
- 投影互動牆在廣告行業的應用行業
- Facebook註冊移動應用以投放應用廣告
- 仿知乎拖動廣告的實現iOSiOS
- Disney 流媒體廣告 Flink 的應用實踐
- Liftoff《移動應用廣告創意綜合報告》:較長的影片廣告更有效
- 如何在直播應用中實現多人KTV?
- 2020年Q4全球移動移動應用廣告變現eCPM資料包告
- 每次開啟wps都會彈出廣告,怎麼設定取消掉彈屏,wps去廣告的小技巧
- ironSource宣佈收購移動廣告和應用變現公司Tapjoy
- WinForm應用程式的開機自啟、記住密碼,自動登入的實現ORM密碼
- win10系統應用彈小廣告怎麼解決 win10系統應用開啟彈小廣告如何處理Win10
- 三分鐘瞭解互動滑軌屏的實現原理與應用
- 直播系統搭建,簡單實現Android應用的啟動頁Android
- Eclipse/tomcat 如何實現應用熱部署和熱啟動EclipseTomcat熱部署
- 代理IP在廣告管理和自動化中的應用
- HBase在移動廣告監測產品中的應用
- 如何在移動端資料視覺化大屏實現分析?視覺化
- Appodeal:2020年Q4全球移動應用廣告變現eCPM資料包告APP
- ROAS至上,最新《廣告平臺綜合表現報告》新增應用內購指數和應用內廣告指數
- 教你實現快應用storage介面同步呼叫
- TiDB 在 Mobikok 廣告系統中的應用和實踐TiDB
- android 再按一次退出應用 出現閃屏 重啟Android
- e-Marketer報告:應用內廣告與移動遊戲遊戲
- win10應用商店安裝應用在哪兒啟動_Win10應用商店應用開機啟動的方法Win10
- 騰訊廣告:輕互動閃屏廣告價值白皮書(附下載)
- 為什麼豌豆莢可以在應用安裝完成介面打廣告?
- 小程式實現微信 【我的】介面
- Redux與前端表格施展“組合拳”,實現大屏展示應用的互動增強Redux前端