HUAWEI Ads開屏廣告

來源: 華為開發(fā)者聯(lián)盟官網(wǎng)
作者:華為開發(fā)者聯(lián)盟官網(wǎng)
時間:2020-12-15
17585
開屏廣告是一種在應(yīng)用啟動時且在應(yīng)用主界面顯示之前需要被展示的廣告。

開屏廣告

開屏廣告是一種在應(yīng)用啟動時且在應(yīng)用主界面顯示之前需要被展示的廣告。

0000000000011111111.20201208194810.25416814503945205635062103987976_50511209010030_2800_71C18263BB117B200CD662F3EA39F8FC8CEB3C768254A498E304AA6E97D50408.png

添加開屏廣告

1.添加SplashView。

在XML布局文件中添加SplashView。

以下示例代碼中展示了如何在XML布局文件中添加SplashView。

<?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"

    tools:context=".SplashActivity">

 

    <!-- 開屏廣告Logo區(qū)域 -->

    <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>

說明

您需要配置在Logo區(qū)域中配置對應(yīng)的應(yīng)用圖標(biāo)、應(yīng)用名稱和版權(quán)信息。

以下示例代碼展示了如何獲取SplashView。

SplashView splashView=findViewById(R.id.splash_ad_view);

2.修改應(yīng)用默認(rèn)啟動頁面。

開屏廣告是在應(yīng)用主界面顯示之前被展示,所以需修改應(yīng)用默認(rèn)啟動頁面。

修改AndroidManifest.xml,將默認(rèn)啟動的activity修改為SplashActivity,這樣即可在應(yīng)用主界面加載前展示開屏廣告。

修改后的內(nèi)容示例如下:

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/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="false"

            android:screenOrientation="portrait">

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

        ...

    </application>

</manifest>

創(chuàng)建SplashActivity.java類,用于實現(xiàn)開屏廣告獲取和展示。

...

import android.os.Build;

import androidx.appcompat.app.AppCompatActivity;

 

public class SplashActivity extends AppCompatActivity {

    // "testq6zq98hecj"為專用的測試廣告位ID, App正式發(fā)布時需要改為正式的廣告位ID

    private static final String AD_ID = "testq6zq98hecj";

    private static final int AD_TIMEOUT = 5000;

    private static final int MSG_AD_TIMEOUT = 1001;

 

    /**

* 暫停標(biāo)志位。

* 在開屏廣告頁面展示時:

* 按返回鍵退出應(yīng)用時需設(shè)置為true,以確保應(yīng)用主界面不被拉起;

* 切換至其他界面時需設(shè)置為false,以確保從其他頁面回到開屏廣告頁面時仍然可以正常跳轉(zhuǎn)至應(yīng)用主界面;

*/

    private boolean hasPaused = false;

 

    // 收到廣告展示超時消息時的回調(diào)處理

    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();

    }

    /**

* 廣告展示完畢時,從廣告界面跳轉(zhuǎn)至App主界面

*/

    private void jump() {

        if (!hasPaused) {

            hasPaused = true;

            startActivity(new Intent(SplashActivity.this, MainActivity.class));

            finish();

        }

    }

    /**

* 按返回鍵退出應(yīng)用時需設(shè)置為true,以確保應(yīng)用主界面不被拉起

*/

    @Override

    protected void onStop() {

        // 移除消息隊列中等待的超時消息

        timeoutHandler.removeMessages(MSG_AD_TIMEOUT);

        hasPaused = true;

        super.onStop();

    }

    /**

* 從其他頁面回到開屏頁面時調(diào)用,進(jìn)入應(yīng)用主界面

*/

    @Override

    protected void onRestart() {

        super.onRestart();

        hasPaused = false;

        jump();

    }

    @Override

    protected void onDestroy() {

        super.onDestroy();

    }

}

3.獲取廣告。

SplashView創(chuàng)建好之后,通過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() {

            // 廣告獲取成功時調(diào)用

            ...

        }

        @Override

        public void onAdFailedToLoad(int errorCode) {

            // 廣告獲取失敗時調(diào)用, 跳轉(zhuǎn)至App主界面

            jump();

        }

        @Override

        public void onAdDismissed() {

            // 廣告展示完畢時調(diào)用, 跳轉(zhuǎn)至App主界面

            jump();

        }

    };

    // 獲取SplashView

    SplashView splashView = findViewById(R.id.splash_ad_view);

    // 設(shè)置默認(rèn)Slogan

    splashView.setSloganResId(R.drawable.default_slogan);

    // 設(shè)置視頻類開屏廣告的音頻焦點類型

    splashView.setAudioFocusType(AudioFocusType.NOT_GAIN_AUDIO_FOCUS_WHEN_MUTE);

    // 獲取廣告,其中AD_ID為廣告位ID

    splashView.load(AD_ID, orientation, adParam, splashAdLoadListener);

    // 發(fā)送延時消息,保證廣告顯示超時后,APP首頁可以正常顯示

    timeoutHandler.removeMessages(MSG_AD_TIMEOUT);

    timeoutHandler.sendEmptyMessageDelayed(MSG_AD_TIMEOUT, AD_TIMEOUT);

}

說明

您需要為App設(shè)計一張開屏默認(rèn)Slogan圖片,確保在未獲得到開屏廣告之前展示默認(rèn)Slogan,提供良好的用戶體驗。

4.(可選)監(jiān)聽廣告事件。

通過實現(xiàn)SplashAdDisplayListener類中的方法來監(jiān)聽廣告展示類事件。了解詳細(xì)方法,請參見API文檔中的SplashAdDisplayListener類。

SplashAdDisplayListener adDisplayListener = new SplashAdDisplayListener() {

    @Override

    public void onAdShowed() {

        // 廣告顯示時調(diào)用

        ...

    }

    @Override

    public void onAdClick() {

        // 廣告被點擊時調(diào)用

        ...

    }

};

splashView.setAdDisplayListener(adDisplayListener);

測試開屏廣告

測試開屏廣告時,需要使用專門的測試廣告位ID來獲取測試廣告,以避免在測試過程中產(chǎn)生無效的廣告點擊量。測試廣告位ID僅作為功能調(diào)試使用,不可用于廣告變現(xiàn)。您需要在應(yīng)用發(fā)布前申請正式的廣告位ID,并替換測試廣告位ID。

以下表格中提供了開屏廣告的專用測試廣告位ID:

1608018444(1).png

下載開屏廣告的示例代碼并運行,可以看到如下效果圖:

1608018586(1).png

另外您也可以通過學(xué)習(xí)Codelab中的教程來集成開屏廣告。


立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于華為開發(fā)者聯(lián)盟官網(wǎng),本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
相關(guān)文章
小游戲,大買賣 | HUAWEI Ads助力廣告主突破中東非市場
小游戲,大買賣 | HUAWEI Ads助力廣告主突破中東非市場
目前,中東非游戲市場種類和數(shù)量繁多,其中射擊、經(jīng)營、跑酷、消除、解密等休閑類小游戲深受大眾喜歡,這些游戲有著玩法簡單、容易上手、時間碎片化、廣告能變現(xiàn)等特點。市場潛力巨大。
HUAWEI Ads
中東
2022-08-022022-08-02
HUAWEI Ads智能客服上線啦
HUAWEI Ads智能客服上線啦
HUAWEI Ads智能客服上線啦,有什么問題都可以解答。
HUAWEI Ads
2022-04-062022-04-06
Meta AI嘗試解決維基百科人物傳記所存在的性別偏見問題
Meta AI嘗試解決維基百科人物傳記所存在的性別偏見問題
Meta研究人員創(chuàng)建人工智能系統(tǒng),來編寫出維基百科風(fēng)格的傳記草稿,使得維基百科編輯能夠以最少的編輯,在維基百科上提供女性人物的傳記,以補充目前維基百科上,男女性人物傳記數(shù)量失衡的狀況。
AI
Meta
2022-04-022022-04-02
海外廣告業(yè)務(wù)合規(guī)化,HUAWEI Ads通過IAB歐洲透明度和同意框架CMP認(rèn)證
海外廣告業(yè)務(wù)合規(guī)化,HUAWEI Ads通過IAB歐洲透明度和同意框架CMP認(rèn)證
繼HUAWEI Ads平臺于2020年加入TCF v2.0的全球供應(yīng)商列表(Global Vendor List,供應(yīng)商ID856)積極推動程序化廣告生態(tài)鏈標(biāo)準(zhǔn)化建設(shè)之后,2022年3月,HUAWEI Ads順利通過IAB歐洲透明度和同意框架CMP認(rèn)證(CMP ID 386),成為國內(nèi)首家具備在海外市場提供CMP服務(wù)的廣告平臺。
HUAWEI Ads
廣告行業(yè)
2022-03-282022-03-28
優(yōu)質(zhì)服務(wù)商推薦
更多