AdMob API 可建立中介服務 A/B 實驗,測試各種設定,盡量提升廣告成效。A/B 測試可讓您評估兩種不同版本的中介服務群組,並比較成效差異,然後選取偏好的設定。
以下列舉幾個可設定的實驗:
- 新增或移除廣告來源,看看對中介服務群組有何影響
- 變更廣告來源的手動有效千次曝光出價,以調整刊登序列順序
- 啟用或停用刊登序列廣告來源最佳化功能
- 變更系統呼叫廣告來源的次數
範例
您可以根據現有的中介服務群組建立另一個變化版本,看看版本 A 或版本 B 哪個成效較佳。A/B 版本測試會根據您提供的百分比 (1%、10% 或 50%),將應用程式的使用者流量分配給現有的中介服務群組設定和變化版本。
curl (指令列)
使用 curl 的要求
載入用戶端密鑰檔案,然後產生授權憑證。
首次執行這個步驟時,系統會要求您在瀏覽器中接受授權提示。接受前,請務必使用有權存取 AdMob API 的 Google 帳戶登入。應用程式將獲授權,代表目前登入的帳戶存取資料。
我們建議使用 oauth2l 進行驗證和授權,這是簡單的指令列工具,可搭配 Google OAuth 2.0 使用。安裝 oauth2l 並執行下列指令,將 path_to_credentials_json 替換為您註冊雲端應用程式時下載的
credentials.json檔案路徑。首次執行時,指令會引導您完成 OAuth 2.0 授權流程。後續執行作業時,系統會自動重新整理權杖。oauth2l header --json path_to_credentials_json --scope admob.monetization,admob.readonly
建立中介服務 A/B 實驗。
將
pub-XXXXXXXXXXXXXXXX替換為發布商 ID,並將ZZZZZZZZZZ替換為中介服務群組 ID。您可以在 AdMob UI 中找到中介服務群組 ID,也可以使用accounts.mediationGroups:list方法。您需要指定
treatmentMediationLines和treatmentTrafficPercentage,但controlMediationLines會沿用上層中介服務群組的設定,因此不需要指定。下列要求會建立中介服務 A/B 實驗,其中實驗組 (也稱為變體 B) 包含 AdMob 聯播網的單一中介服務行,並使用
LIVE模式。curl --http1.0 \ -X POST https://admob.googleapis.com/v1beta/accounts/pub-XXXXXXXXXXXXXXXX/mediationGroups/ZZZZZZZZZZ/mediationAbExperiments \ -H "Content-Type:application/json" \ -H "$(oauth2l header --json path_to_credentials_json --scope admob.monetization)" \ --data @- << EOF { "displayName":"Mediation A/B Experiment Test Name", "treatmentTrafficPercentage": "50", "treatmentMediationLines": [{ "mediationGroupLine": { "displayName": "Test mediation group line", "adSourceId": "5450213213286189855", "cpm_mode": "LIVE" } }] } EOF請參閱下方的範例回應,其中
SSSSSSSSSSSSSSSSSSSSSS代表建立的中介服務 A/B 測試實驗 ID,YYYYYYYYYY代表廣告單元 ID 的最後 10 位數,符合以下格式:ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY。{ "name": "accounts/pub-XXXXXXXXXXXXXXXX/mediationGroups/ZZZZZZZZZZ/mediationAbExperiments/SSSSSSSSSSSSSSSSSSSSSS", "displayName": "Mediation A/B Experiment Test Name", "experimentId": "SSSSSSSSSSSSSSSSSSSSSS", "treatmentTrafficPercentage": "50", "treatmentMediationLines": [ { "mediationGroupLine": { "id": "11111111111111111", "displayName": "Test mediation group line", "adSourceId": "5450213213286189855", "cpmMode": "LIVE", "cpmMicros": "10000", "adUnitMappings": { "ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY": "accounts/pub-XXXXXXXXXXXXXXXX/adUnits/YYYYYYYYYY/adUnitMappings/ "ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY": "accounts/pub-XXXXXXXXXXXXXXXX/adUnits/YYYYYYYYYY/adUnitMappings/ }, "state": "ENABLED" } } ], "controlMediationLines": [ { "mediationGroupLine": { "id": "22222222222222222", "displayName": "AdMob Network (control)", "adSourceId": "5450213213286189855", "cpmMode": "LIVE", "cpmMicros": "10000", "adUnitMappings": { "ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY": "accounts/pub-XXXXXXXXXXXXXXXX/adUnits/YYYYYYYYYY/adUnitMappings/ "ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY": "accounts/pub-XXXXXXXXXXXXXXXX/adUnits/YYYYYYYYYY/adUnitMappings/ }, "state": "ENABLED" } } ], "state": "RUNNING" }確認中介服務 A/B 實驗正在執行。
呼叫
accounts.mediationGroups:list,取得該中介服務群組的中介服務 A/B 實驗狀態。詳情請參閱中介服務群組指南。如果中介服務 A/B 實驗處於啟用狀態,則
mediationAbExperimentState會設為RUNNING;如果中介服務群組未執行任何實驗,則會設為NOT_RUNNING。要求範例:
curl --http1.0 \ -X GET https://admob.googleapis.com/v1beta/accounts/pub-XXXXXXXXXXXXXXXX/mediationGroups \ -H "$(oauth2l header --json path_to_credentials_json --scope admob.readonly)"
停止中介服務 A/B 實驗並選取版本。
將
pub-XXXXXXXXXXXXXXXX替換為發布商 ID,並將ZZZZZZZZZZ替換為中介服務群組 ID。您可以在 AdMob UI 中找到中介服務群組 ID,也可以使用accounts.mediationGroups:list方法。如要完成實驗,請在要求中指定勝出版本:
VARIANT_CHOICE_A:使用變化版本 A 的中介服務線,完成實驗。版本 A 包含實驗建立前的原始放送行。VARIANT_CHOICE_B:使用版本 B 的中介服務線,完成實驗。變化版本 B 包含新加入的放送行。
要求範例:
curl --http1.0 \ -X POST https://admob.googleapis.com/v1beta/accounts/pub-XXXXXXXXXXXXXXXX/mediationGroups/ZZZZZZZZZZ/mediationAbExperiments:stop \ -H "Content-Type:application/json" \ -H "$(oauth2l header --json
path_to_credentials_json--scope admob.monetization)" \ --data @- << EOF { "variantChoice": "VARIANT_CHOICE_A" }回應範例:
{ "experimentId": "SSSSSSSSSSSSSSSSSSSSSS", "state": "EXPIRED", }