Android용 모바일 앱용 AFS (AFSMA) 구현

기본 요건

이 구현 가이드에서는 사용자가 다음 사항을 잘 알고 있다고 가정합니다.

  • AFS CSA (맞춤 검색 광고) 구현 프로토콜
  • Android 앱 개발
  • Android용 Google 모바일 광고 SDK(현재 Google Play 서비스의 일부)를 Android 스튜디오 프로젝트와 연결합니다. Google Play 서비스 버전 9.0.0이 필요합니다.

클래스

앱에 AFSMA 광고 (동적 높이 검색 광고라고도 함)를 게재하려면 다음 클래스를 구현합니다.

SearchAdView

  • 이 클래스는 Android ViewGroup 클래스에서 상속되어 AFSMA 광고를 표시합니다. SearchAdViewDynamicHeightSearchAdRequest가 포함된 광고를 요청하고 반환된 광고를 렌더링합니다. SearchAdView를 앱의 기존 뷰 그룹에 추가해야 합니다.
  • SearchAdViewSearchAdView가 실행 중인 컨텍스트(일반적으로 Activity)로 인스턴스화되어야 합니다.
  • SearchAdView가 인스턴스화되면 AdSize.SEARCHsetAdSize() 메서드를 호출하여 AFSMA 광고를 요청해야 합니다. 다른 열거형 값은 모바일 앱용 AFS와 호환되지 않는 광고를 요청합니다.
  • 속성 코드를 사용하여 이 객체에서 setAdUnitId() 메서드를 호출합니다.

DynamicHeightSearchAdRequest.Builder

  • 이 클래스는 광고 요청 매개변수를 캡슐화합니다. 이는 AFS 데스크톱 및 모바일 웹의 자바스크립트 광고 요청 객체(페이지 옵션, 단위 옵션)에서 매개변수를 설정하는 것과 유사합니다.
  • 적절한 setter로 매개변수를 설정합니다. 즉, setQuery()를 호출하여 쿼리 매개변수를 설정합니다.

구현 예시

아래 예는 Activity를 사용하여 SearchAdViewViewGroup의 하위 뷰로 만드는 방법을 보여줍니다. AFSMA 광고를 올바르게 요청하려면 SearchAdView 객체가 AdSize.SEARCHsetAdSize() 메서드를 호출해야 합니다.

//  MainActivity.java implementation
//  (MainActivity is a subclass of Activity)

// Create the SearchAdView
final SearchAdView searchAdView = new SearchAdView(this);

// Set parameter to request for dynamic height search ads
searchAdView.setAdSize(AdSize.SEARCH); // Important!

// Replace with your pub ID (e.g. ms-app-pub-9616389000213823)
searchAdView.setAdUnitId("ms-app-pub-################");

// Add searchAdView to parent view group
...

동일한 Activity 내에서 SearchAdView에서 렌더링될 광고의 매개변수를 지시하는 DynamicHeightSearchAdRequest.Builder를 만듭니다. AFSMA 광고는 AFS 맞춤 검색 광고와 동일한 방식으로 구성됩니다. 자세한 내용은 AFS 맞춤 검색 광고 참조를 확인하세요.

// Create the ad request
DynamicHeightSearchAdRequest.Builder builder =
        new DynamicHeightSearchAdRequest.Builder();
builder.setQuery("flowers");
builder.setNumber(2);

// Replace with the ID of a style from your custom search styles
builder.setAdvancedOptionValue("csa_styleId", "0000000001");

// Customization options (set using setters on
// DynamicHeightSearchAdRequest.Builder)
builder.setAdTest(true);

다른 맞춤설정 옵션은 DynamicHeightSearchAdRequest.Builder 객체에서 추가 속성을 설정하여 사용할 수 있습니다.

광고 요청을 하려면 SearchAdView 객체의 DynamicHeightSearchAdRequest.Builder 객체를 사용하여 loadAd() 메서드를 호출하세요.

searchAdView.loadAd(builder.build());

고급 옵션

대부분의 광고 요청 매개변수는 DynamicHeightSearchAdRequest.Builder 객체의 setter 메서드를 통해 설정할 수 있습니다. DynamicHeightSearchAdRequest.Builder에 setter 메서드가 없는 매개변수는 setAdvancedOptionValue() 메서드와 함께 키-값 쌍을 사용하여 설정할 수 있습니다. setAdvancedOptionValue() 메서드로 설정할 수 있는 전체 설정 목록은 AFS 맞춤 검색 광고 참조를 확인하세요.

속성을 올바르게 설정하려면 키 매개변수에 'csa_' 접두사를 붙여야 합니다.

// Advanced customization options (set using key-value pair)

// Set a parameter (parameter_name) and its value (parameter_value)
// builder.setAdvancedOptionValue("csa_parameter_name", "parameter_value");

// Example: Show visible URL below description
// (domainLinkAboveDescription: false)
builder.setAdvancedOptionValue("csa_domainLinkAboveDescription", "false");

매개변수의 setter 메서드를 사용하고 setAdvancedOptionValue를 사용하여 설정하면 두 번째 호출이 첫 번째 호출의 값을 재정의합니다.

오류 조사

SearchAdView (여기서 searchAdView)에는 오류를 조사하는 데 도움이 되는 setAdListener() 메서드가 포함되어 있습니다. 동일한 Activity 내에서:

searchAdView.setAdListener(new AdListener() {
    @Override
    public void onAdLoaded() {
        // Called when an ad is loaded
        super.onAdLoaded();
        Toast.makeText(MainActivity.this, "Ad Loaded",
                Toast.LENGTH_SHORT).show();
        Log.d(MainActivity.class.getSimpleName(), "Ad Loaded");
    }

    @Override
    public void onAdOpened() {
        // Called when an ad opens an overlay that covers the screen
        super.onAdOpened();
        Toast.makeText(MainActivity.this, "Ad Opened",
                Toast.LENGTH_SHORT).show();
        Log.d(MainActivity.class.getSimpleName(), "Ad Opened");
    }

    @Override
    public void onAdLeftApplication() {
        // Called when an ad leaves the application
        // (to go to the browser for example)
        super.onAdLeftApplication();
        Toast.makeText(MainActivity.this, "Ad Left Application",
                Toast.LENGTH_SHORT).show();
        Log.d(MainActivity.class.getSimpleName(), "Ad Left Application");
    }

    @Override
    public void onAdFailedToLoad(int errorCode) {
        // Called when an ad request failed
        super.onAdFailedToLoad(errorCode);
        Toast.makeText(MainActivity.this, "Ad Failed to Load: " + errorCode,
                Toast.LENGTH_SHORT).show();
        Log.e(MainActivity.class.getSimpleName(), "Ad Failed to Load: " +
                errorCode);
    }
});

onAdFailedToLoad() 콜백 메서드에서 사용되는 상수는 API 참조에 설명되어 있습니다.

Google Play의 데이터 공개 요건 준비

2021년 5월, Google Play는 개발자가 앱의 데이터 수집, 공유, 보안 관행과 관련하여 제공하는 공개 정보인 새로운 데이터 보안 섹션을 발표했습니다.

이 페이지에서는 AFS 네이티브 SDK (쇼핑용 애드센스에도 적용) 사용과 관련된 데이터 공개 요건을 충족하는 방법을 알아볼 수 있습니다. 이 페이지에서는 SDK가 최종 사용자 데이터를 처리하는지 여부 및 처리 방법에 대한 정보를 제공합니다.

Google은 최대한 투명한 방식으로 개발자를 지원하려고 노력하고 있습니다. 하지만 앱의 최종 사용자 데이터 수집, 공유 및 보안 관행과 관련하여 Google Play의 데이터 보안 섹션 양식을 어떻게 처리할지 결정할 책임은 전적으로 앱 개발자에게 있습니다.

이 페이지의 정보를 사용하는 방법

이 페이지에는 최신 버전의 SDK에서 수집된 최종 사용자 데이터만 표시됩니다.

데이터 공개 정보를 작성하려는 경우 Android의 데이터 유형 가이드를 참고하면 수집되는 데이터를 가장 잘 설명하는 데이터 유형을 판단하는 데 도움이 됩니다. 특정 앱이 수집된 데이터를 공유하고 사용하는 방식도 데이터 공개 정보에 포함되어야 합니다.

SDK에서 액세스하고 수집하는 데이터 유형

패키지:

com.google.android.gms:play-services-afs-native

com.google.ads.afsn

자동으로 수집되는 데이터

AFS SDK는 다음 데이터를 자동으로 수집합니다. 광고 게재를 목적으로 모든 데이터는 기기에서 Google로 전송되고 모든 데이터는 전송 중에 암호화됩니다. 사용자의 개인 정보는 앱에서 사용자 검색어를 통해 전송하지 않는 한 수집되지 않습니다.

데이터 이 데이터는 다음과 같은 목적으로 수집됩니다.
IP 주소 요약:
  • 사기 예방, 보안, 규정 준수
  • 광고 또는 마케팅
  • 대략적인 위치 도출
세부정보:
IP 주소는 사기 및 악용 모니터링에 사용되며 대략적인 사용자 위치를 파악하는 데 사용됩니다.

그런 다음 대략적인 위치를 사용하여 게재되는 광고가 현지 규정을 준수하도록 하고 사용자의 대략적인 지리적 위치와 관련된 광고를 제공합니다.

앱 활동
  • 페이지 조회 및 앱에서의 탭
  • 인앱 검색 기록
요약:
  • 분석
  • 사기 예방, 보안, 규정 준수
  • 광고 또는 마케팅
  • 맞춤설정
세부정보:
키워드와 관련된 검색 광고를 반환할 수 있도록 앱이 사용자의 검색어를 제공합니다. Google은 반환된 광고의 조회수와 참여도 (탭)를 측정합니다.
진단 요약:
  • 분석
세부정보:
SDK는 제품 개선사항을 구현하고 측정할 수 있도록 광고의 렌더링 지연 시간을 측정합니다. 또한 Google에서는 비정상 종료/오류 보고서를 보내고 게시자가 기능을 어떻게 사용하는지 이해하기 위해 필요에 따라 다른 계측을 추가하기도 합니다.
기기 또는 기타 식별자 요약:
  • 사기 예방, 보안, 규정 준수
  • 광고 또는 마케팅
세부정보:
기기 ID는 사기 및 악용 사례 모니터링과 광고 실적 측정에 사용됩니다.