Showing posts with label 獲利. Show all posts
Showing posts with label 獲利. Show all posts

Wednesday, October 12, 2011

使用Proguard和Vpon時廣告出不來

今天遇見一個技術問題︰

即使在已匯入Vpon JAR檔的狀況下,
在做Proguard(程式碼模糊混淆)產出程式,
Vpon仍會顯示沒有正確的Adapter接收廣告
造成廣告無法正常顯示的問題。

出錯的LOG如下︰

Caught an exception in adapter:
java.lang.Exception: Invalid adapter
    at com.adwhirl.a.a.a(Unknown Source)
    at com.adwhirl.AdWhirlLayout.d(Unknown Source)
    at com.adwhirl.b.run(Unknown Source)

這個問題後來我發現︰
如果直接使用debug模式輸出程式時,
Vpon廣告是能顯示的。
原來是被Proguard混淆時,
打亂了廣告接收器(Adapter)。

解決方法︰
在Proguard腳本(proguard.cfg)中加入以下程式碼
-dontwarn com.vpon.**
-dontwarn javadoc.**
-dontwarn properties.**
-dontwarn com.adwhirl.**
-keep class com.vpon.** { *; }
-keep class javadoc.** { *; }
-keep class properties.** { *; }
-keep class com.adwhirl.** { *; }
 

上面這些是adOn.jar和adwhirl.jar裡所有的套件名稱,
在劇本裡下這些指令就能跳過混淆這2組jar檔,
讓廣告順利產出。

相關文章︰


Monday, September 19, 2011

Admob的另一個選擇︰Vpon

相信很多開發者都知道Admob是做什麼的,
這幾天我一直在研究另一家廣告公司︰Vpon


Vpon如同Admob,
只不過他們的獲利方式,
不只Admob的點擊賺回饋金。
就算是顯示出廣告,
都還是有一定的分潤機制,
只是比點擊的分潤還低。

Vpon目前做地域性的廣告市場,
也就是説,如果你的客戶在台灣或大陸,
那麼Vpon可能是一個不錯的選擇,
如果你的市場在外國,
那你⋯還是乖乖用Admob吧⋯

Vpon除了做自家的廣告(Vpon_TW、Vpon_CN)外,
他們還引用了Google的Adwhirl工具,
此工具能將各家的廣告,
通通串連起來。
以後不管要播放Vpon、Admob、iAd⋯
等等之類的廣告,
你只要透過Adwhirl後端,
便可以對這些廣告做投放率的控管。

註︰
這個Adwhirl是Vpon的Adwhirl
而不是Google原本的Adwhirl,
如果你是註冊Google的Adwhirl,
你就會跟我一樣卡在這裡一天,
收到廣告回傳的Log的Jason是空的狀況。

以下是Vpon提供Adwhirl對各大廣告商的關係圖

在這裡我直接以eclipse來説明如何將這些東西做串接。
1.你必須將各家的廣告jar檔放入你的eclipse中。
這樣看下來,如果你要用Admob、Vpon_TW、Vpon_CN、Adsense,
你至少要引入三家廣告商的jar檔
(Adsense因為可以直接在Admob後臺做設定,
所以不用再引入Adsense相關的jar檔了)

2.在你專案的src目錄裡,要加入相對應的Adapter去迎接第3方的廣告。
這些第3方廣告的Adapter在Vpon with Adwhirl sdk檔案裡都能找的到,
他們都已經寫好了︰
Vpon_tw和Vpon_cn的Adapter,他們寫在jar裡了,
但Admob的廣告,要另外將Adapter丟出來做串接(如下圖),
否則從Admob傳來的廣告,Vpon_Adwhirl會不知道如何回應。
註︰這個地方因為不知道要再銜接一個Adapter出來接Admob,
Log因而回傳Invalid Adapter, 
又讓我卡一天。

3.在Androidmenifest.xml裡,你要宣告︰

 
 
 
 
然後再宣告2個Activity進來︰

 

 
註︰AdActivity因為沒有宣告在AndroidMenifest.xml裡,
在這邊我卡了2天。

4.在你的畫面裡留出一個位置準備放廣告,
根據Vpon官方的説法,
這個廣告只適用在320x240(註2)/480x320/800x480/854x480
Android2.2以上版本

註︰
2011-09-19
1.官方説明Vpon能用在Android1.6、2.1、2.2,
但當我在用Proguard編譯時,
卻告訴我需要一個Android2.2的元件才能export成功。
Warning: com.vpon.adon.android.WebInAppWebChromeClient: can't find referenced class android.webkit.ConsoleMessage
這裡我又卡上半天。
也同時告訴我們編譯環境最好設在Android2.2以上。

2011-09-22
如上,雖然要2.2的環境才能export出apk檔,
但如果AndroidMenifest.xml裡的min SDK version設成7(2.1),
然後export,
Vpon廣告仍然是可以顯示出來的。

2.經測試320x240也能顯示Vpon廣告 

5.程式碼中加上︰
/**
  * 添加Vpon with Adwhirl廣告
  */
 private void callAdvertisement() {
  FrameLayout prepareAdvertisement_layout = (FrameLayout)findViewById(R.id.adLayout);//adLayout是你事先預留的廣告位置
  
  AdWhirlLayout adWhirlLayout = new AdWhirlLayout(this, "你跟Adwhirl要到的sdk key");
  
  AdWhirlManager.setConfigExpireTimeout(1000 * 60); 
  AdWhirlTargeting.setAge(23);
         AdWhirlTargeting.setGender(AdWhirlTargeting.Gender.MALE);
         AdWhirlTargeting.setKeywords("online games gaming");
         AdWhirlTargeting.setPostalCode("94123");
         AdWhirlTargeting.setTestMode(false); 
         
     adWhirlLayout.setAdWhirlInterface(new AdWhirlInterface(){

   @Override
   public void adWhirlGeneric() {
    Log.e(AdWhirlUtil.ADWHIRL, "In adWhirlGeneric()");
   } 
     });
      
     prepareAdvertisement_layout.addView(adWhirlLayout);   
    
 }

6.各家的廣告License key,像是Admob、Vpon_TW、Vpon_CN⋯
通通在Vpon的Adwhirl後臺裡去輸入和統一管理

Vpon分出了TW和CN兩個平臺,
如果你同一隻應用程式要做地域性的廣告
(涵蓋臺灣和大陸市場),
那麼在兩個平臺內,
你必須各申請1組Vpon key,
登錄在Vpon Adwhirl後臺裡。
(見上圖)

剩下的廣告如何顯示這件事,通通交給Vpon_Adwhirl吧!

相關文章︰使用Proguard和Vpon時廣告出不來