測試 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 必須辨識用戶為應用程式的測試人員,才能無視應用程式的審查狀態而傳回廣告。
  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 版本 - 請下載最新版本,若使用 CocoaPods,則請更新 Pod
  • 未正確呼叫/使用 loadAd 方法。建議在 loadAd 和任何關聯的方法/回呼放置中斷點
  • 您的應用程式應該在 30 秒後嘗試再次發出要求。

2001 - Internal Error

伺服器回應 SDK 文件

Code=2001 “Internal Error”

  • Error 2001 - Internal Error。 Audience Network SDK 無法處理來自 facebook.com 的回應
  • 您的應用程式應該在 30 秒後嘗試再次發出要求。
  • 如果這項錯誤持續發生,請向我們回報。

使用測試廣告進行測試

請務必在 Facebook 的應用程式主控板中,將測試您應用程式的用戶新增為某個角色,我們建議您採用此測試方式,因為可讓您在實際裝置上看到真實的廣告。請參閱使用真實廣告進行測試一節,瞭解更多有關建議測試方式的資訊。

不過,如上節所述,您會發現不見得能透過應用程式的 UI 檢視來測試真實廣告的外觀。此外,您也無法保證應用程式接收的廣告會是圖像廣告、影片廣告或輪播廣告。要求真實廣告時,無法保證所傳回廣告的內容和格式。要是您想要以內含直向影片內容的廣告進行測試,以確保這類廣告會在應用程式的 UI 檢視中正確顯示?

若想要求測試廣告,在初始化任何 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 高畫質影片 46 秒廣告,含應用程式安裝行動呼籲選項

插頁、原生

VID_HD_16_9_46S_LINK

16x9 高畫質影片 46 秒廣告,含連結行動呼籲選項

插頁、原生

VID_HD_16_9_15S_APP_INSTALL

16x9 高畫質影片 15 秒廣告,含應用程式安裝行動呼籲選項

插頁、原生

VID_HD_16_9_15S_LINK

16x9 高畫質影片 15 秒廣告,含連結行動呼籲選項

插頁、原生

VID_HD_9_16_39S_APP_INSTALL

9x16 高畫質影片 39 秒廣告,含應用程式安裝行動呼籲選項

插頁、原生

VID_HD_9_16_39S_LINK

9x16 高畫質影片 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 Network,將原生廣告的版位編號值設為 VID_HD_9_16_39S_APP_INSTALL#YOUR_PLACEMENT_ID。 應用程式將會收到 9:16 長寬比的影片測試廣告,且包含應用程式安裝行動呼籲按鈕。