測試 Audience Network 實作

將 Facebook Audience Network 整合至行動版網站或應用程式後,您應該在推出前,先在實體裝置上使用實際廣告測試您的實作。進行整合時,請使用最新的 Audience Network SDK,以便套用最新的故障修復及效能改善。以下章節針對如何測試應用程式或行動版網站的 Audience Network 廣告整合,提供逐步操作說明。

步驟 1:使用實際廣告進行測試

步驟 2:查看實際廣告要求是否出現錯誤代碼

步驟 3:使用 Audience Network 要求偵錯工具進行廣告要求診斷

步驟 4:使用測試廣告進行測試

步驟 5:Audience Network 廣告整合的檢查清單

步驟 1:使用實際廣告進行測試

使用實際廣告進行測試的作業包含兩個步驟,第一個步驟是在企業管理平台設定中新增相關人員,這樣他們才能在應用程式獲得批准之前,看到實際廣告;第二個步驟是要求指派的測試人員在登入 Facebook 後使用您的應用程式或行動版網站。

將測試人員新增至應用程式

請務必將執行測試的人員新增為您 Facebook 應用程式的任一角色,才可在實體裝置上使用實際廣告測試您的應用程式或行動版網站。以下是將測試人員新增至應用程式的建議方式:

  1. 前往企業管理平台設定
  2. 點擊左側相關人員頁籤上的 + 新增
  3. 輸入企業管理平台帳號所需相關人員的電子郵件地址。您可以在此輸入多位相關人員。
  4. 如有必要,您可指派角色給相關人員,或是點擊略過,單純將他們新增到企業管理平台帳號。

如果您使用任何中介服務層,請確保該中介服務層會將要求傳送至 Audience Network。如果您在中介服務層啟用測試功能,則可能不會將任何要求傳送至我們的伺服器。

測試行動應用程式

  1. 透過偏好的發佈方式,將應用程式發佈至測試人員裝置,並確定已在企業管理平台設定頁面中新增這些測試人員。
  2. 您新增的每一位相關人員都必須在各自的裝置上安裝 Facebook 應用程式,並且使用您新增至測試人員角色的 Facebook 用戶編號登入。必須如此做的原因是,Facebook 需要辨認用戶是否為企業管理平台相關人員,才能傳回廣告。
  3. 執行測試的相關人員現在便可啟動應用程式,然後觸發所要測試的版位。他們應該會看到實際廣告。

測試廣告版位時,Facebook 會針對大約 20% 的要求刻意傳送「未供應廣告」的回應,以供您測試應用程式或行動版網站如何處理「未供應廣告」的情況。

使用 Testflight 來散播與測試應用程式時,您無法在這些測試組建中看到真實廣告。您需要依如下所示設定測試模式,才能從 Audience Network 取得廣告。 每次透過 Testflight 散播的應用程式要求廣告商識別碼(IDFA)時,都會取得不同的 IDFA。 一般而言,除非用戶手動重設,否則裝置的 IDFA 會維持不變。 但 Testflight 組建向作業系統要求 IDFA 時,並不會取得「真正的」IDFA。而是會取得「虛設的」IDFA,並且每次應用程式要求時都會改變。

為了解決這個問題,您可以開啟測試模式,以允許顯示測試廣告。



步驟 2:查看實際廣告要求是否出現錯誤代碼

測試 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 分鐘後嘗試再次發出要求,我們也建議您調整重新整理或發出要求的頻率。

1011 - Display Format Mismatch

伺服器回應 SDK 文件

Code=1011 “Display Format Mismatch”

  • 出現 Error 1011 - Display Format Mismatch 是因為:
  • 廣告要求的顯示格式與此版位指定的顯示格式不符。
  • 每個版位只能搭配單一顯示格式使用。
  • 您可以建立多個版位來使用不同顯示格式。

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 秒後嘗試再次發出要求。
  • 如果這項錯誤持續發生,請向我們回報。


步驟 3:使用 Audience Network 要求偵錯工具進行廣告要求診斷

在您的應用程式中實作廣告版位後,您可以使用 Audience Network 要求偵錯工具,確認 Facebook 是否能夠接收來自您應用程式的要求。

  1. 前往營利管理工具
  2. 點擊管理資產
  3. 依序點擊右上方的資產設定 > 要求偵錯工具
  4. 點擊開始以監控來自您應用程式或網站的要求。

在實際的 iOS 或 Android 測試裝置上透過您的應用程式觸發 Audience Network 廣告版位,如此一來偵錯工具中便會出現廣告要求。請確認傳送要求的版位編號、套件組合名稱等都正確。

這項測試必須使用實體裝置,無法在 iOS 或 Android 模擬器上執行。

您必須從相同的測試裝置登入 Facebook 應用程式,才能使用偵錯工具進行監控。

如果偵錯工具中沒有出現廣告要求,就代表 Facebook 並未如預期收到要求。您可以檢查下列項目,以進行除錯:

  1. 確認您使用的是實體裝置,而非模擬器
  2. 確認您已在測試裝置上安裝了 Facebook 應用程式
  3. 確認測試人員已在測試裝置上登入 Facebook,且企業管理平台已指派角色給該測試人員
  4. 如果您使用了中介服務,請確認中介服務層會將要求傳送至 Facebook Audience Network


步驟 4:使用測試廣告進行測試

請務必在應用程式的企業管理平台中,將測試您應用程式的相關人員新增為某個角色,我們建議您採用此測試方式,因為可讓您在實體裝置上看到實際廣告。請參閱使用實際廣告進行測試一節,瞭解更多有關建議測試方式的資訊。

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

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

您絕不可將內含以上測試程式碼的應用程式供大眾使用,因為這會造成顯示的只有測試廣告。而應該使用前置處理器巨集(如 DEBUGTESTING),然後使用 #ifdef 來區別測試組建和發行組建。

測試廣告類型表

測試廣告類型 說明 支援的廣告格式

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 秒廣告,含連結行動呼籲選項

插頁、獎勵式影片、原生

IMG_16_9_APP_INSTALL

16x9 圖像廣告,含應用程式安裝行動呼籲選項

橫幅、插頁、原生

IMG_16_9_LINK

16x9 圖像廣告,含連結行動呼籲選項

橫幅、插頁、原生

CAROUSEL_IMG_SQUARE_APP_INSTALL

輪播廣告,含正方形圖像和應用程式安裝行動呼籲選項

插頁、原生

CAROUSEL_IMG_SQUARE_LINK

輪播廣告,含正方形圖像和連結行動呼籲選項

插頁、原生

使用測試廣告類型測試廣告版位時,請留意支援的廣告格式。例如,如果建立獎勵式影片執行個體來要求測試廣告類型 IMG_16_9_APP_INSTALL 的廣告,會顯示錯誤

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

例如,若要在 iOS 應用程式中要求 9:16 長寬比的影片測試廣告,且包含應用程式安裝行動呼籲按鈕,您需要新增下行程式碼才能初始化 FBNativeAd 物件:

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

您可以在 Audience Network SDK 範例資料夾內的 NativeAdSample 專案中,執行以上程式碼來要求測試廣告。

或者,如果您需要要求隨機內容格式的測試廣告,則在實體 Android 裝置上測試時,您會在 Logcat 中看到列印如下的訊息:

#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 取代為列印在以上紀錄中的測試模式裝置雜湊。

完成測試後,請使用以下一行程式碼清除測試裝置:

[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 長寬比的影片測試廣告,且包含應用程式安裝行動呼籲按鈕。



步驟 5:Audience Network 廣告整合的檢查清單

  1. 在測試裝置安裝並登入 Facebook 應用程式。
  2. 將測試 Audience Network 廣告的相關人員新增至您的企業管理平台帳號。
  3. 初始化廣告實例時,務必使用從企業管理平台建立的版位編號。 請參閱新手指南中的步驟說明。
  4. 查看應用程式是否成功要求 Audience Network 實際廣告。請使用 Audience Network 錯誤代碼Audience Network 要求偵錯工具進行診斷。
  5. 查看應用程式用戶是否可清楚瀏覽廣告。
  6. 使用測試廣告,查看廣告整合的用戶體驗。在應用程式商店推出應用程式之前,請務必移除測試廣告程式碼片段,否則正式版應用程式將只會顯示測試廣告。