測試 Audience Network 安裝作業

將 Facebook Audience Network 整合到流動版網站或應用程式後,在正式推出前,您應該先在實際的裝置上以實際的廣告測試安裝作業是否成功。請務必使用最新版本的 Audience Network SDK 執行整合作業,這樣整合內容中才會有最新的錯誤修正與改善項目。以下區塊所提供的指南會說明如何測試您的應用程式與網站。

在 iOS 或 Android 模擬器上操作時,請啟用測試模式並指定裝置雜湊編號來進行測試。這是測試安裝作業的第一步。另外建議您按照下列的指示,在實際的裝置上以實際的廣告進行測試。

1.以實際廣告進行測試

2.實際廣告要求的錯誤代碼

3.以測試廣告進行測試

使用 Audience Network 要求除錯工具來測試要求

在應用程式中導入版位後,您可以使用 Audience Network 要求除錯工具,確認 Facebook 可以收到您應用程式所提出的要求。

在開發人員管理中心的「Audience Network」部分中: https://developers.facebook.com/apps/<your_app_id>/audience-network/

前往「Audience Network」下方左側面板中的「應用程式」部分,然後向下捲動即可看到「Audience Network 要求除錯工具」。點擊「Start」按鈕後,工具就會開始監控您應用程式自己所提出的要求。

透過您實際的 iOS 或 Android 測試裝置,在應用程式中瀏覽以觸發 Audience Network 廣告版位,廣告要求就會顯示在工具中。請確認這些要求在傳送時使用的是正確的版位編號和套件名稱等等。

以上做法必須使用實體裝置,在 iOS 或 Android 模擬器上則無效。

您必須在所使用的測試裝置上登入 Facebook 應用程式,工具才能開始監控。

如果廣告要求沒有顯示在工具中,就表示 Facebook 無法正常收到要求。若要除錯,您可以進行下列檢查:

  1. 確定您所使用的是實體裝置,而非模擬器
  2. 確定您的測試裝置已安裝 Facebook 應用程式
  3. 確定您在測試裝置上登入 Facebook 時,使用的是 Facebook Audience Network 應用程式管理員、開發人員或測試人員身分
  4. 如果您使用中介服務,請確定中介服務層可傳送要求到 Facebook Audience Network

以實際的廣告進行測試

只要兩個步驟就能夠以實際的廣告進行測試。第一步是將測試員加入應用程式設定,讓他們能夠在應用程式審核前,先看過實際的廣告。第二步是讓這些測試員以 Facebook 身分登入後,使用您的應用程式或流動版網站。請參考執行這兩個步驟的詳細說明。

將測試員加入應用程式

只要分配任何一個 Facebook 應用程式的角色給負責測試的人員,您就可以在實際的裝置上以實際的廣告進行測試。建議您採取下列方法將測試員加入您的應用程式:

  1. 前往應用程式的管理中心,然後點擊左側的「角色」標籤。
  2. 在「測試員」區塊中,點擊「新增測試員」按鈕。用戶也可以擔任管理員或開發人員的角色。建議讓必須測試應用程式或網站的用戶擔任測試員的角色,但不要開放檢視 Facebook 設定的權限給他們。
  3. 輸入您要新增為測試員之用戶的姓名、fbid 或用戶名稱,然後點擊「提交」。您可以在此輸入多位用戶。
  4. 您現在應該就能夠看到那些您輸入的測試員了。

如果您有使用中介層,請確保中介層會傳送要求至 Audience Network。如果您在中介層啟用測試模式,那麼中介層可能就不會傳送任何要求至我們的伺服器。

測試流動應用程式

  1. 使用您偏好的分配方式將應用程式分配到各個測試員的裝置。
  2. 您新增的每一個測試員都必須在他們的裝置上安裝 Facebook 應用程式,並且以您當初新增測試員角色所使用的 Facebook 用戶編號登入 Facebook。此為必要步驟,因為 Facebook 必須先在應用程式上確認這些用戶具備測試員角色,然後才能無視廣告的審核狀態,進一步將廣告回傳至應用程式。
  3. 接著測試員就可以啟動您的應用程式,然後採取相關步驟以觸發您要測試的廣告版位。這時候他們就可以看到實際的廣告了。

在測試廣告版位時,Facebook 會故意傳送約 20% 的未供應廣告要求,以便您測試應用程式或流動版網站遇到未供應廣告情況時會如何處理。

實際廣告要求的錯誤代碼

測試 Facebook Audience Network 的安裝作業時,您可能會在傳送要求時遇到數種錯誤代碼。這些錯誤代碼的描述如下。

1000 - Network Error

伺服器回應 SDK 文件

Code=1000 “Network Error"

  • Error 1000 - Network Error。Audience Network SDK 無法連上 facebook.com (http://facebook.com/)
  • 您的應用程式應嘗試繼續傳送其他要求,直到網絡連上為止。建議您持續傳送要求,直到網絡連線重新建立或您要求暫停為止。

1001 - No Fill

這是測試時常見的錯誤類型,與「未供應廣告」有關;最常見的原因是因為用戶測試您的流動應用程式時忘記先登入 Facebook 應用程式,或測試您的流動版網站時忘記先登入 Facebook 流動版網站。

伺服器回應 SDK 文件

Code=1001 “No Fill”

  • Error 1001 - No Fill。這可能是因為下列一個或多個原因:
  • 用戶未在流動裝置上登入原生 Facebook 應用程式
  • 用戶啟用限制廣告追蹤 (iOS)
  • 用戶退出針對用戶興趣顯示的廣告 (Android)
  • 當前用戶沒有廣告庫存
  • 您的測試裝置必須安裝原生 Facebook 應用程式。
  • 您的應用程式應於 30 秒後嘗試傳送另一個要求。

1002 - Ad Load Too Frequently

伺服器回應 SDK 文件

Code=1002 “Load Too Frequently”

  • 廣告要求是由下列元素所組成:
  • 裝置編號
  • 版位編號
  • 顯示格式(橫額、插頁、原生)
  • 您的應用程式應於 30 分鐘後嘗試傳送另一個要求。我們也建議您調整重新整理率或要求率。

1203 - Not An App Admin, Developer or Tester

伺服器回應 SDK 文件

Code=1203 “Not An App Admin, Developer or Tester”

  • 套件所提出的初始要求必須來自應用程式管理員、開發人員或測試人員。

2000 - Server Error

伺服器回應 SDK 文件

Code=2000 “Server Error"

  • Error 2000 - Server Error。可能的原因如下:
  • 無效的版位編號 - 每個版位與類型都有獨特的編號
  • SDK 版本不受支援或過於老舊 - 請下載最新的版本或更新您的 Pod(適用使用 Cocoa Pods 的用戶)
  • 不適當的 loadAd 方法調用/使用。建議您在 loadAd 及其他相關方法/回傳之間放置斷點
  • 您的應用程式應於 30 秒後嘗試傳送另一個要求。

2001 - Internal Error

伺服器回應 SDK 文件

Code=2001 “Internal Error”

  • Error 2001 - Internal Error。 Audience Network SDK 無法處理來自 facebook.com 的回應
  • 您的應用程式應於 30 秒後嘗試傳送另一個要求。
  • 如果這個錯誤持續發生,請提交錯誤舉報給我們。

以測試廣告進行測試

請務必確保您已在 Facebook 應用程式管理中心將角色分配給要測試應用程式的用戶。這個建議測試方法可以讓您在實際的裝置上查看實際的廣告。請參閱以實際的廣告進行測試章節以瞭解此建議測試方法的詳情。

不過,如上節所述,您可能會發現自己不一定能夠在應用程式的用戶介面檢視中測試實際廣告的樣貌。此外,您無法保證應用程式收到的會是圖像廣告、影片廣告,還是輪播廣告。如果您要求實際廣告,系統不保證會傳回廣告的內容和格式。如果您在測試時要使用的廣告內含直向影片內容,是為了確保該內容在應用程式的用戶介面檢視中能正常顯示,又該怎麼辦?

若要要求測試廣告,在初始化 Facebook 廣告物件時,使用下列測試廣告類型字串,以「#」連結版位編號。用於要求測試廣告的版位編號範本為 TEST_AD_TYPE#YOUR_PLACEMENT_ID。

測試廣告類型表格

測試廣告類型 描述 廣告支援格式

IMG_16_9_APP_INSTALL

含應用程式安裝呼籲字句選項的 16x9 圖像廣告

橫額、插頁、原生

IMG_16_9_LINK

含連結呼籲字句選項的 16x9 圖像廣告

橫額、插頁、原生

VID_HD_16_9_46S_APP_INSTALL

含應用程式安裝呼籲字句選項的 16x9 HD 影片 46 秒廣告

插頁、原生

VID_HD_16_9_46S_LINK

含連結呼籲字句選項的 16x9 HD 影片 46 秒廣告

插頁、原生

VID_HD_16_9_15S_APP_INSTALL

含應用程式安裝呼籲字句選項的 16x9 HD 影片 15 秒廣告

插頁、原生

VID_HD_16_9_15S_LINK

含連結呼籲字句選項的 16x9 HD 影片 15 秒廣告

插頁、原生

VID_HD_9_16_39S_APP_INSTALL

含應用程式安裝呼籲字句選項的 9x16 HD 影片 39 秒廣告

插頁、原生

VID_HD_9_16_39S_LINK

含連結呼籲字句選項的 9x16 HD 影片 39 秒廣告

插頁、原生

CAROUSEL_IMG_SQUARE_APP_INSTALL

含正方形圖像與應用程式安裝選項的輪播廣告

插頁、原生

CAROUSEL_IMG_SQUARE_LINK

含正方形圖像與連結選項的輪播廣告

插頁、原生

在 iOS 裝置以程式碼要求測試廣告的範例

若使用 Testflight 來散佈及測試應用程式,您無法在這些測試建置中看到實際的廣告。所以您必須設定測試模式(如下所示),才能從 Audience Network 取得廣告。 每次由 Testflight 散佈的應用程式要求廣告客戶識別碼 (IDFA)時,都會收到不同的 IDFA。 一般而言,除非用戶手動重設裝置,否則裝置的 IDFA 都會保持不變。 但是當 Testflight 建置向操作系統要求 IDFA 時,並不會取得「真正的」IDFA。該建置會取得「虛假的」IDFA,每次應用程式要求時,該識別碼都會改變。

若要解決這個問題,您可以開啟測試模式以便顯示測試廣告。

舉例來說,若要在 iOS 應用程式內要求一個長寬比為 9:16 的影片測試廣告及應用程式安裝呼籲字句按鈕,您必須新增下列程式碼以初始化 FBNativeAd 物件:

[FBNativeAd *nativeAd = [[FBNativeAd alloc] initWithPlacementID:@"VID_HD_9_16_39S_APP_INSTALL#YOUR_PLACEMENT_ID"];

您可以執行上方程式碼,從 Audience Network SDK 樣本資料夾的 NativeAdSample 專案中要求測試廣告。

或者,如果您想要求隨機內容格式的測試廣告,您可以在載入廣告要求前,新增下列程式碼:

#ifdef DEBUG
[FBAdSettings setLogLevel:FBAdLogLevelLog];
[FBAdSettings addTestDevice:@"HASHED_ID"];
#endif

您會看到下列的記錄訊息:

[FBAudienceNetworkLog/FBAdSettings:94] 
When testing your app with Facebook ad units,  
you must specify the device hashed ID to ensure the delivery of test ads, 
add the following code before loading an ad: `[FBAdSettings addTestDevice:@"HASHED_ID"]`
Test mode device hash: bd675f960298a92003630d76fa612b1706b745ab

以印在記錄上方的測試模式裝置雜湊取代 HASHED_ID

請絕對不要用上述測試程式碼來公開發佈您的應用程式,因為這會導致系統只顯示測試廣告。建議您先改用 DEBUGTESTING 等預先處理器巨集,再使用 #ifdef 來區分測試版和正式發佈版。

測試完畢後,您應該使用下列這一行程式碼來清除測試裝置設定:

[FBAdSettings clearTestDevice:[FBAdSettings testDeviceHash]]; 

在 Android 裝置以程式碼要求測試廣告的範例

若要在 Android 應用程式內要求一個長寬比為 9:16 的影片測試廣告及應用程式安裝呼籲字句按鈕,您必須新增下列程式碼以初始化 NativeAd 物件:

nativeAd = new NativeAd(this, "VID_HD_9_16_39S_APP_INSTALL#YOUR_PLACEMENT_ID");

或者,如果您想要求隨機內容格式的測試廣告,當您在實體 Android 裝置上進行測試時,就會在 Logcat 中看到這個訊息:

登錄:測試模式裝置雜湊:HASHED_ID 記錄:使用 Facebook 廣告單位測試應用程式時, 請務必指定裝置雜湊編號,以確保測試廣告可以順利刊登, ,並於載入廣告前,先加入下列程式碼:AdSettings.addTestDevice("HASHED ID");

您可以在載入廣告前先加入下列程式碼,以便於裝置上啟用測試廣告:

AdSettings.addTestDevice("HASHED ID");

如果您想新增多個測試裝置,只要在載入廣告前先建立欲新增的字串清單即可:

List<String> testDevices = new ArrayList<>();
testDevices.add("HASHED_ID_1");
testDevices.add("HASHED_ID_2");
AdSettings.addTestDevices(testDevices);

測試完畢後,您應該使用下列這一行程式碼來清除測試裝置設定:

AdSettings.clearTestDevices();

在中介管理中心要求測試廣告的範例

除了利用程式碼要求測試廣告之外,如果您的應用程式使用中介服務的話,您亦可從中介管理中心配置版位編號值與測試廣告類型。 舉例來說,如果您的應用程式是使用 MoPub,您就可以編輯 Facebook 網絡,並將原生廣告的版位編號值設為 VID_HD_9_16_39S_APP_INSTALL#YOUR_PLACEMENT_ID。 這樣您的應用程式就會收到一個長寬比為 9:16 的影片測試廣告及應用程式安裝呼籲字句按鈕。