測試 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。此為必要操作,因為 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 版本不受支援或過於老舊 - 請下載最新的版本或更新您的 Pod(適用使用 Cocoa Pods 的用戶)
  • 不適當的 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:以測試廣告進行測試

請務必確保您已在應用程式的企業管理平台上將角色分配給要測試應用程式的人員。這個建議測試方法可以讓您在實體裝置上查看實際上線廣告。若要進一步瞭解建議測試方法,請參閱以實際上線廣告進行測試一節。

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

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

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

測試廣告類型表格

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

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 秒廣告

插頁、獎勵式影片、原生

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 網絡,並將原生廣告的版位編號值設為 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. 使用測試廣告檢查廣告整合的用戶體驗。請務必先移除測試廣告程式碼片段,再將其上架到應用程式商店。否則,您的實際上線應用程式只會顯示測試廣告。