2013-03-15 110 views
1

我一直在嘗試創建一個mraid兼容的廣告,但並沒有得到很大的進展。根據官方文檔,可以在this link發現,又多了一個簡單的mraid undefined

<script src='mraid.js'></script>

應該足夠了。但是,這似乎並非如此。我複製下面的示例代碼來測試mraid對象的存在,但它只是保持未定義。精確的螢火錯誤是:

ReferenceError: mraid is not defined

我試圖執行以下(很簡單)的代碼:

if(mraid.getState() !='ready'){ 
console.log("MRAID NOT READY");} 

有沒有人有這個問題的經驗嗎?

+1

你的代碼錯了,你期望mraig.getState返回'ready',但是這個狀態不存在。這是很多MRAID示例代碼的常見錯誤,實際上,當mraid準備就緒時,mraid.getState返回「default」。 – KKetch 2013-03-25 15:03:30

+0

感謝您的評論! :)這裏不是問題,正如John Cappiello已經提到的那樣,但是肯定會在以後出現問題:) – danvdende 2013-03-26 11:10:40

回答

5

是的,它不是那麼簡單,規範還不完全清楚。

mraid.js通過您的任何廣告平臺注入。

它看起來是這樣的:

應用程序 - >廣告SDK - > MRAID廣告

的廣告SDK實例化一個UIWebView並注入mraid.js可用。然後你的腳本標籤找到它,加載它,並且其他所有東西都從那裏解決。

你的選擇要麼是:

  1. 使自己mraid.js用於測試目的是有足夠的天賦來得心應手/測試
  2. 自旋向上移動廣告SDK服務器,做了上述的你,然後只是測試針對
  3. 結賬http://webtester.mraid.org可以讓你避免一些上述

2的是最精確的。 1 & 3讓你遠離,但沒有什麼比應用真正的廣告服務器的SDK處理應用程序的東西。

+1

謝謝!文檔很不清楚,你的解釋是相當豐富的! – danvdende 2013-03-16 09:49:00

+0

測試mraid.js的樣子是什麼?我發現了一個admob(Google)使用的模擬器,但這似乎不起作用。 – danvdende 2013-03-19 14:26:35

+0

它必須實現mraid對象,以及規範所需的所有事件,偵聽器和方法,或者至少是您使用的子集。查看埋在webtester中的代碼,可以在此處http://code.google.com/p/mraid-web-tester/下載完整的代碼。 – 2013-03-21 14:52:50