Android - Tích hợp AmobiSDK
17/09/2016

Chỉ 2 phút lập trình tích hợp thư viện AmobiSDK, bạn đã có thể nhúng quảng cáo vào ứng dụng Android của mình. Các bước thực hiện được mô tả như dưới đây. Chúc bạn thành công.

 

 

Tích hợp thư viện Google Play Service


 

Tích hợp thư viện Google Play Service vào project theo hướng dẫn ở đây

 

Mô hình hoạt động: chèn 15 - 30s quảng cáo Video TVC khi người dùng xem clip giải trí, đọc nội dung ứng dụng hoặc start chơi game.

Bước 1:

Đầu tiên các bạn down load thư viện tại đây

Sau khi down load thành công các bạn giải nén và add file : Amobi SDK xxx xxxx.jar vào thư mục lib như sau:

Click chuột phải vào thư viện và chọn: Add As Library

 

Bước 2: Khai báo thông tin trong Manifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="
http://schemas.android.com/apk/res/android"
package="
amobi.com.testads ">
                
<!--Các quyền cần thêm-->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
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>

<!—khai báo activity chạy video-->
<activity android:name="vn.amobi.util.ads.video.player.VideoActivity" >
</activity>

<!—Khai báo widget-code -->
<meta-data
android:name="vn.amobi.util.ads.widget_id"
android:value="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx " >
<!—Điền mã widget-code của bạn -->
</meta-data>
</application>
</manifest>
 
 
Bước 3: Lập trình tích hợp Video Ads SDK
 
  • Tạo đối tượng implement từ interface AmobiVideoAdListener.
  • Mục đích là tạo các phương thức để chương trình tương tác với quảng cáo video.
  • Interface AmobiVideoAdListener gồm các hàm:​
@Override
public void onAdAvailable() {
  // Được gọi khi quảng cáo đã sẵn sàng để hiển thị
}

@Override
public void onPrepareError() {
  // Được gọi khi quá trình chuẩn bị quảng cáo gặp lỗi
}

@Override
public void onAdStarted() {
  // Được gọi khi quảng cáo bắt đầu được hiển thị
}

@Override
public void onAdFinished() {
  // Được gọi khi video đã chạy xong
}
 
  • Để khai báo listener thì gọi hàm:
AmobiVideoAd.getInstance().setVideoAdListener(listener);
Code example :
package amobi.com.testads;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import vn.amobi.util.ads.video.AmobiShowVideoAdRequest;
import vn.amobi.util.ads.video.AmobiVideoAd;
import vn.amobi.util.ads.video.AmobiVideoAdListener;
public class MainActivity extends AppCompatActivity implements AmobiVideoAdListener {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        AmobiVideoAd.getInstance().setVideoAdListener(this);
        AmobiVideoAd.getInstance().prepare(MainActivity.this);
    }
    @Override
    public void onAdAvailable() {
        // ham được gọi khi video đã sẵn sàng
        AmobiVideoAd.getInstance().showAd(new AmobiShowVideoAdRequest());
    }
    @Override
    public void onPrepareError() {
        // hàm được gọi khi quá trình load video ads xảy ra lỗi, các bạn có thể gọi hàm khơi tạo video full baner tại đây để thay thế video lỗi.
    }
    @Override

    public void onAdStarted() {
// hàm được gọi khi video ads bắt đầu chạy, gọi các hàm cần thiết để tạm dừng các hoạt động trong app hoặc game nhằm tránh sự bất tiện cho người sử dụng 
    }
    @Override
    public void onAdFinished() {
// hàm được gọi khi quảng cáo đã hoàn thành, gọi cách hàm cần thiết để tiếp tục ứng dụng tại đây
    }
}

 

 

 
Bước 4: Hiển thị quảng cáo Video TVC
 
  • Chuẩn bị video: Trước khi có thể hiển thị video, ứng dụng cần gọi đến hàm prepare để thư viện chuẩn bị những thông tin cần thiết cho video:
AmobiVideoAd.getInstance().prepare(Activity);
 
  • Sau lệnh trên, thư viện sẽ chuẩn bị video, và trả về thông tin thành công hay không ở đối tượng AmobiVideoAdListener đã khai báo ở trên.
  • Cụ thể hàm onAdAvailable() nếu quảng cáo thành công, hoặc onPrepareError() nếu không có quảng cáo hoặc có lỗi.
  • Khi đã nhận được thông tin quảng cáo sẵn sàng từ hàm onAdAvailable(), ứng dụng có thể gọi quảng cáo bằng cách gọi hàm:
AmobiVideoAd.getInstance().showAd(new AmobiShowVideoAdRequest());
 
  • Các sự kiện playback quảng cáo sẽ gọi các hàm tương ứng của đối tượng AmobiVideoAdListener. 
  • Hàm onAdStarted() được gọi khi quảng cáo bắt đầu chạy, bạn có thể viết đè hàm này để tạm dừng các hoạt động trong app hoặc game của bạn nhằm tránh sự bất tiện cho người sử dụng.
  • Hàm onAdFinished() được gọi khi quảng cáo đã hoàn thành, bạn có thể viết đè hàm này để tiếp tục xử lý các hoạt động trong game hoặc ứng dụng của bạn.

 

Tích hợp AmobiSDK vào project Android


 

Bước 1: Tải thư viện AmobiSDK Android

 

Trước hết bạn cần phải tạo ứng dụng trên hệ thống Amobi theo như hướng dẫn tại đây trước.

Sau đó tải thư viện AmobiSDK cho Android tại đây

Tham khảo thêm ví dụ mẫu về dự án đã tích hợp AmobiSDK tại đây

 

 

Bước 2: Tích hợp AmobiSDK vào project Android trên Eclipse

 

1. Copy file thư viện Amobi SDK xxx xxxxxxxx.jar vào thư mục libs của project (phần xxx xxxxxxxx trong tên file là số hiệu phiên bản).
2. Kiểm tra file thư viện đã được chèn vào project chưa bằng cách xem file .jar  có xuất hiện trong mục Android Private Libraries (ở phiên bản SDK cũ là Android Dependencies) hay không.

Hình 1: Đưa thư viện AmobiSDK vào thư mục libs của project 

 

Nếu đã thấy file thư viện xuất hiện trong mục Android Private Libraries:
1. Chuột phải vào tên project trong phần Package Explorer và chọn "Properties"
2. Chọn "Java Build Path" từ menu bên trái
3. Mở tab "Order and Export" ở khung bên phải
4. Tick chọn vào mục "Android Private Libraries" nếu mục này chưa được chọn
5. Nhấn "OK"

 

Hình 2: Tích chọn AmobiSDK trong Order and Export

 

Nếu chưa thấy file thư viện xuất hiện trong mục Android Private Libraries thì cần phải chỉnh sửa trong Java Build Part:
1. Mở mục "Java Build Path" (bước 2 ở trên)
2. Chọn tab "Libraries" ở khung bên phải
3. Nhấn "Add JARs..."
4. Trỏ đến file thư viện .jar vừa được copy vào thư mục libs ở trên
5. Chọn "OK"
6. Mở tab "Order and Export" ở khung bên phải
7. Tích chọn vào file .jar
8. Nhấn Ok.

 

Hình 3: Tích hợp thư viện AmobiSDK

 

 

Bật quảng cáo


 

Bước 1: Khai báo các tham số trong AndroidManifest.xml

 

- Những quyền cần có:

 

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

 

Khai báo widget id meta-data trong thẻ , bạn đã được cấp widget-id trong bước Khởi tạo ứng dụng

 

<!-- Widget id cho banner quảng cáo -->
<meta-data
    android:name="vn.amobi.util.ads.widget_id"
    android:value="Bạn điền widget id vào đây" >
</meta-data>

 

 

Bước 2: Khai báo Ad View ở vị trí thích hợp trong file layout

 

AmobiAdView là một view chứa nội dung quảng cáo, bạn phải khai báo view này trong layout của activity, hãy đặt view này được hiển thị trên cùng.

 

<vn.amobi.util.ads.AmobiAdView
  android:id="@+id/main_menu_adView"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:visibility="gone" />

 

 

Bước 3: Bật quảng cáo

 

Hiện tại có 3 loại banner quảng cáo: 320x50 (WidgetSize.SMALL) và 300x250 (WidgetSize.LARGE) và fullscreen (WidgetSize.FULL_SCREEN). Tìm hiểu các loại banner của Amobi tại đây.

 

Sử dụng hàm loadAd(WidgetSize) để load quảng cáo.

Nếu muốn load quảng cáo dạng pop-up banner 300x250 hoặc banner fullscreen thì phải truyền vào một đối tượng được implement  từ interface adEventInterface :

 

adView.setEventListener(adEventInterface);

 

Ví dụ về một đoạn code khai báo hoàn chỉnh ( adEventListener là một đối tượng implement AdEventInterface):

 

AmobiAdView adView = (AmobiAdView) findViewById(R.id.main_menu_adView);
if (adView != null) {
    adView.setEventListener(adEventListener);
    adView.loadAd(WidgetSize.LARGE);
}

 

Chú ý rằng với banner fullscreen không phải lúc nào Amobi cũng có sẵn chiến dịch đáp ứng, trường hợp này sẽ được tự động chuyển sang banner pop-up 300x250 nhằm đảm bảo fillrate cao nhất cho developer.

 

Bước 4: Xử lý sự kiện

 

Trong các loại banner quảng cáo to, choán màn hình, nhằm giúp bạn bắt được sự kiện quảng cáo gặp lỗi hoặc quảng cáo được người dùng đóng lại, bạn phải implement từ Interface AdEventInterface:

 

Mục đích là tạo phương thức để banner 300x250 hoặc fullscreen tương tác với chương trình (banner 320x50 thì không cần đến). Interface adEventInterface gồm các hàm:

 

@Override
public void onAdViewClose() {
    // Xử lý sự kiện đóng quảng cáo
}

@Override
public void onLoadAdError(ErrorCode code) {
    // Xử lý sự kiện khi quảng cáo lỗi không bật được
}
 

 

Chú ý:

- Phải khai báo layout params cho adView trước khi gọi hàm loadAd().

- Nếu muốn ẩn adView thì gọi hàm adView.hide().


 

Bật quảng cáo

 

Để bật quảng cáo, gọi hàm adView.loadAd(SIZE);

 
AmobiAdView adView = (AmobiAdView) findViewById(R.id.main_menu_adView);
if (adView != null) {
    
adView.setEventListener(adEventListener);
    
adView.loadAd(WidgetSize.LARGE);
}

 

 

Ẩn quảng cáo

 

Để ẩn quảng cáo, gọi hàm adView.hide()

 
AmobiAdView adView = (AmobiAdView) findViewById(R.id.main_menu_adView);
if (adView != null) {
    adView.hide();
}

 

 

Bật quảng cáo 320x50

 

Để bật quảng cáo cỡ này, gọi hàm adView.loadAd(WidgetSize.SMALL);

 
AmobiAdView adView = (AmobiAdView) findViewById(R.id.main_menu_adView);
if (adView != null) {
    
adView.setEventListener(adEventListener);
    
adView.loadAd(WidgetSize.SMALL);
}

 

Bật quảng cáo 300x250

 

Để bật quảng cáo pop-up cỡ này, gọi hàm adView.loadAd(WidgetSize.LARGE);

 
AmobiAdView adView = (AmobiAdView) findViewById(R.id.main_menu_adView);
if (adView != null) {
    
adView.setEventListener(adEventListener);
    
adView.loadAd(WidgetSize.LARGE);
}
 

Bật quảng cáo Fullscreen

 

Để bật quảng cáo pop-up cỡ fullscreen này, gọi hàm adView.loadAd(WidgetSize.FULL_SCREEN);

 
AmobiAdView adView = (AmobiAdView) findViewById(R.id.main_menu_adView);
if (adView != null) {
    
adView.setEventListener(adEventListener);
    
adView.loadAd(WidgetSize.FULL_SCREEN);
}
 
Chú ý rằng không phải lúc nào Amobi cũng sẵn chiến dịch với banner cỡ này, khi đó Amobi sẽ thay thế bằng banner CPI hoặc banner 300x250 để đảm bảo fillrate luôn ở mức cao nhất.
 

Sự kiện lỗi quảng cáo

 

Để xử lý sự kiện khi quảng cáo gặp lỗi hiển thị, cần implement Interface adEventInterface và xử lý function:

 

@Override
public void onLoadAdError(ErrorCode 
 
 

Phần này hướng dẫn bạn sử dụng một service đặc biệt của Amobi giúp các developer có thể kiểm tra lượt install trên google play của mình khi quảng cáo trên nhiều kênh khác nhau.

 

Bước 1: Tải thư viện AmobiSDK mới nhất tại đây

 

Bước 2: Add file jar thư viện vào như hướng dẫn ở đây 

 

Bước 3: Thêm quyền trong AndroidManifest.xml

 

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

 

Bước 4: Khai báo service trong AndroidManifest.xml - bên trong thẻ <applicate></application>

 

<receiver
    android:name="vn.amobi.util.referrer.ReferrerReceiver"
    android:exported="true" >
    <intent-filter>
        <action android:name="com.android.vending.INSTALL_REFERRER" />
    </intent-filter>
</receiver>
<receiver android:name="vn.amobi.util.receivers.NetworkReceiver" >
    <intent-filter>
         <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
    </intent-filter>
</receiver>

 

Bước 5: Gọi hàm sau khi bắt đầu chạy ứng dụng:

AmobiCampaign.checkInstall(context);
 
 

Quảng cáo trả thưởng là mô hình mới cho phép developer đưa mô hình tính phí vào trong game/app của mình. Theo đó thay vì thu phí người chơi game hoặc sử dụng ứng dụng bằng tiền thật, developer sử dụng Amobi yêu cầu người dùng thực hiện một hành vi nào đấy để thanh toán tiền mua game/ứng dụng, ví dụ: cài đặt một ứng dụng khác hoặc xem hết một video clip quảng cáo như hình minh họa dưới. Phần tiền thật trả cho hành vi này Amobi sẽ thanh toán cho developer.

 

(Click hình để xem rõ hơn)

 

Bước 1: Tải thư viện AmobiSDK mới nhất tại đây

 

Bước 2: Add file jar thư viện vào như hướng dẫn ở đây 

 

Bước 3: Thêm quyền trong AndroidManifest.xml

 

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

 

Bước 4: Khai báo meta-data trong thẻ <application>

 

<!-- Widget id -->
<meta-data
    android:name="vn.amobi.util.ads.widget_id"
    
android:value="xxxxxxxxxxxxxxxxxxxxx" >
</meta-data>

 

Bước 5: Khi phải thu phí người chơi (thu phí mua xu ảo, mua lượt chơi, mua mạng, mua đò, mua item, mua full version), thay vì yêu cầu người chơi nộp tiền thật, developer hiện hộp thoại đề nghị người dùng thực hiện hành vi quảng cáo để nhận thưởng:

 

/**
@param context
@param exchangeRate tỷ lệ quy đổi từ VNĐ ra tiền trong game
@param unit tên đơn vị tiền tệ trong game
*/

OfferManager.prepare(context, 2, "xu");
OfferManager.setOfferEventListener(OfferEventListener);|

// Mở danh sách quảng cáo:
OfferManager.getInstance().showOffers();

// Kiểm tra quảng cáo thành công:
OfferManager.getInstance().checkSuccessOffer();

 

Bước 6: Tạo đối tượng implement từ interface OfferEventListener Interface OfferEventListener gồm các hàm:

/**
* Được gọi khi cửa sổ danh sách quảng cáo được hiện lên
*/
@Override
public void onOfferViewOpen() {
}

/**

* Được gọi khi ẩn cửa sổ danh sách quảng cáo
*/
@Override
public void onOfferViewClosed() {
    //  Sự kiện cửa sổ danh sách quảng cáo đóng lại
}

/**
* Được gọi khi thực hiện hàm
* OfferManager.getInstance().checkSuccessOffer()
* mà có quảng cáo thực hiện thành công
*
@param value tổng giá trị (VNĐ) của những quảng cáo đã thành công
*/

@Override
public void onOffersSuccess(int value) {}

/**
* Được gọi khi thực hiện hàm
* OfferManager.getInstance().checkSuccessOffer()
* mà không có quảng cáo nào được thực hiện thành công, hoặc xảy ra
* các lỗi khác.
*
@param failCode mã lỗi.
*/
@Override
public void onCheckOfferFail(FailCode failCode) {
}

 

 
 
 Tin liên quan