Porto Android - 橫幅廣告

SDK Document

若需在 Android 應用程式中呈現 ClickForce 廣告,只要在您的 專案中導入 SDK,然後在使用者介面中加入相關指令就行了。

SDK導入說明

加入ClickForce橫幅廣告前,需先下載Android SDK檔案,即進行解壓縮程序,包含了一個jar檔,並完成以下前置步驟:


A.在本橫幅廣告專案中加入 MFAD-*.*.*.jar

B.加入Google Play Service

C.設定AndroidManifest.xml

D.設定 layout xml

基本設定


引入SDK

在 Android Studio 專案中加入 MFAD-*.*.*.jar

1. 複製解壓縮的 JAR 檔貼上到 libs 資料夾




2. 回到 Android 專案,libs 會多出一個 JAR 檔案,對它按下右鍵選擇Add as library 。之後可至 build.gradle 確認是否有加入成功。
如範例顯示,將會有一行 compile files(‘libs/MFAD-*.*.*.jar’) 表示 JAR 被讀到了


加入Google Play Service


在 Android Studio 專案層級的 build.gradle 中,加入Google Mobile Ads SDK。並請加入maven指令。

        .
        .
        ..
        ...
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

allprojects {
    repositories {
        jcenter()
        maven {
            url "https://maven.google.com"
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:25.3.1'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    compile 'com.google.android.gms:play-services-ads:17.2.0'
    testCompile 'junit:junit:4.12'
    implementation files('libs/MFAD-2.0.4.jar')
}
 

設定AndroidManifest.xml

INTERNET

必要。用來存取網路,以發出廣告請求。


ACCESS_WIFI_STATE

必要。允許訪問Wi-Fi網路狀態信息。


ACCESS_NETWORK_STATE

必要。用來在發出廣告請求前,先行檢查是否有可用的網路連結。


READ_PHONE_STATE

必要。讀取手機狀態,並用來在發出電話請求前,先行檢查是否有可以進行通話。


ACCESS_COARSE_LOCATION

必要。允許訪問粗略性位置,以取得地理相關的廣告。


加入至 AndroidManifest.xml 中


    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />



加進參考 Google Play 服務版本的 <meta-data> 代碼,Android 可藉此瞭解應用程式預期要用的服務版本。

由於Google Play Services 17.0.0 開始需在 <meta-data> 代碼裡加上 AD_MANAGER_APP,如下圖第二段 meat 代碼內。


   <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 ">
            <intent-filter>
                <action android:name="android.intent.action.MAIN " />

                <category android:name="android.intent.category.LAUNCHER " />
            </intent-filter>
       </activity>
	<meta-data
	   android:name="com.google.android.gms.version"
	   android:value="@integer/google_play_services_version"/>
	<meta-data
	   android:name="com.google.android.gms.ads.AD_MANAGER_APP"
	   android:value="true" />
    </application>

    

加進參考 Google Play 服務版本的 <meta-data> 代碼,Android 可藉此瞭解應用程式預期要用的服務版本。


   <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">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
       </activity>
       <meta-data
           android:name="com.google.android.gms.version"
           android:value="@integer/google_play_services_version"/>
    </application>

    

ACCESS_FINE_LOCATION

選用。允許訪問精準性定位,以提供更精準的定位取得地理相關的廣告。


WAKE_LOCK

選用。


WRITE_EXTERNAL_STORAGE

選用。允許寫入外部儲存裝置,與其他權限互相搭配,以取得更多樣性互動的廣告。


CALL_PHONE

選用。用來發出打電話請求,提供使用者更多的廣告資訊。


加入至 AndroidManifest.xml 中


    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.CALL_PHONE" />



設定 layout xml


使用橫幅廣告 ,必需在放置廣告頁面的layout xml 中,加入clickforce.ad.AdView


  <com.clickforce.ad.AdView
     android:id="@+id/ad"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignParentBottom="true"
     android:layout_centerHorizontal="true">
  </com.clickforce.ad.AdView>



開始建立 橫幅廣告

AdView 參數設定與說明


開始請求廣告

Parameters

設定廣告板位ID

橫幅廣告尺寸


開始請求廣告 (設定是否廣告刷新)

Parameters

設定廣告板位ID

橫幅廣告尺寸

設定是否廣告刷新



顯示廣告




* 以下為選擇使用方法

AdView 屬性說明

設定是否輸出除錯(debug)訊息 : (true / false)


釋放資源,並清除廣告。建議在已經請求過廣告後的每一次請求廣告,可以先進行釋放資源,再進行請廣告


取得廣告寬度(乘像素比回傳)


取得廣告高度(乘像素比回傳)


橫幅廣告尺寸


尺寸大小 ClickForceADSize 常數值
300X100 MA300X100
300X250 MA300X250
320X50 MA320X50
320X100 MA320X100
336X280 MA336X280
728X90 MA728X90
Smart Banner(多尺寸) MASmartSize

AdViewLinstener 說明


  
//接收廣告成功
  @Override
 public void OnAdViewLoadSuccess() {
 }

//接收廣告失敗
 @Override
 public void OnAdViewLoadFail() {
 }

//接收廣告點擊
 @Override
 public void OnAdViewClickToAd();{

 }





宣告及引入

加入橫幅廣告會用到程式碼如下:

   
public class MainActivity extends Activity {
    private AdView ad ;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        

        ad = (AdView) this.findViewById(R.id.ad);
        ad.getAd(3783,AdSize.MA320X50,true);


        
        //Ad Load Callback
        ad.setOnAdViewLoaded(new AdViewListener() {
           
            @Override
            public void OnAdViewLoadSuccess() {
                Log.d("Ad Response Result", "成功請求廣告");
                ad.show();  //顯示banner廣告
            }
            @Override
            public void OnAdViewLoadFail() {
                Log.d("Ad Response Result", "請求廣告失敗");
            }
            @Override
            public void OnAdViewClickToAd() {
                Log.d("Ad Click", "點擊廣告");
            }
        });
    }


    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (ad != null)
            ad.releaseAd();
    }
}



取得結果



show date