미디에이션 A/B 실험

AdMob API는 다양한 구성을 테스트하여 광고 실적을 극대화하는 미디에이션 A/B 실험을 만들 수 있습니다. A/B 테스트를 사용하면 미디에이션 그룹의 두 가지 변형을 평가하여 결과를 나란히 비교하고 선호하는 구성을 선택할 수 있습니다.

설정할 수 있는 실험의 예는 다음과 같습니다.

  • 광고 소스를 추가하거나 삭제하여 미디에이션 그룹에 미치는 영향 확인
  • 광고 소스의 수동 eCPM 값을 변경하여 다른 폭포식 구조의 순서 사용
  • 폭포식 구조 광고 소스에서 최적화 사용 설정 또는 사용 중지
  • 광고 소스 호출 횟수 변경

예

기존 미디에이션 그룹으로 시작하여 다양한 버전을 만들어 A 또는 B 중 어떤 버전이 더 나은 실적을 내는지 확인하세요. 테스트에서는 사용자가 제공한 비율 (1%, 10%, 50%)에 따라 앱의 사용자를 기존 미디에이션 그룹 설정과 유사 설정 간에 분할합니다.

curl (명령줄)

curl을 사용한 요청

  1. 클라이언트 보안 비밀번호 파일을 로드하고 승인 사용자 인증 정보를 생성합니다.

    이 단계를 처음 실행하면 브라우저에서 승인 메시지를 수락하라는 메시지가 표시됩니다. 수락하기 전에 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
    
  2. 미디에이션 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"
        }
      }]
    }
    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"
    }
  3. 미디에이션 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)"
    
  4. 미디에이션 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",
    }