AdMob API는 다양한 구성을 테스트하여 광고 실적을 극대화하는 미디에이션 A/B 실험을 만들 수 있습니다. A/B 테스트를 사용하면 미디에이션 그룹의 두 가지 변형을 평가하여 결과를 나란히 비교하고 선호하는 구성을 선택할 수 있습니다.
설정할 수 있는 실험의 예는 다음과 같습니다.
- 광고 소스를 추가하거나 삭제하여 미디에이션 그룹에 미치는 영향 확인
- 광고 소스의 수동 eCPM 값을 변경하여 다른 폭포식 구조의 순서 사용
- 폭포식 구조 광고 소스에서 최적화 사용 설정 또는 사용 중지
- 광고 소스 호출 횟수 변경
예
기존 미디에이션 그룹으로 시작하여 다양한 버전을 만들어 A 또는 B 중 어떤 버전이 더 나은 실적을 내는지 확인하세요. 테스트에서는 사용자가 제공한 비율 (1%, 10%, 50%)에 따라 앱의 사용자를 기존 미디에이션 그룹 설정과 유사 설정 간에 분할합니다.
curl (명령줄)
curl을 사용한 요청
클라이언트 보안 비밀번호 파일을 로드하고 승인 사용자 인증 정보를 생성합니다.
이 단계를 처음 실행하면 브라우저에서 승인 메시지를 수락하라는 메시지가 표시됩니다. 수락하기 전에 AdMob API에 액세스할 수 있는 Google 계정으로 로그인했는지 확인하세요. 앱은 현재 로그인된 계정을 대신하여 데이터에 액세스할 수 있는 권한이 부여됩니다.
인증 및 승인에는 Google OAuth 2.0을 사용하는 간단한 명령줄 도구인 oauth2l을 사용하는 것이 좋습니다. 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로 바꿉니다. 미디에이션 그룹 ID는 AdMob UI에서 확인하거나accounts.mediationGroups:list메서드를 사용하여 확인할 수 있습니다.treatmentMediationLines및treatmentTrafficPercentage은 지정해야 하지만controlMediationLines은 상위 미디에이션 그룹에서 상속되므로 지정하지 않아도 됩니다.다음 요청은
LIVE모드를 사용하는 AdMob 네트워크의 단일 미디에이션 라인이 포함된 처리 대안(대안 B라고도 함)이 있는 미디에이션 A/B 실험을 만듭니다.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" } }] } EOFSSSSSSSSSSSSSSSSSSSSSS는 생성된 미디에이션 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 실험 상태를 가져옵니다. 자세한 내용은 미디에이션 그룹 가이드를 참고하세요.mediationAbExperimentState은 활성 미디에이션 A/B 실험의 경우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로 바꿉니다. 미디에이션 그룹 ID는 AdMob UI에서 확인하거나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", }