카테고리 보관물: Unity

유니티(Unity) ‘RequestConfiguration.Builder’ is obsolete: ‘Use RequestConfiguration directly instead’ 경고 해결

개요

유니티에 Google Mobile Ads Unity Plugin 을 이용하여 광고를 연동했는데 ‘RequestConfiguration.Builder’ is obsolete: ‘Use RequestConfiguration directly instead’ 경고가 나타났습니다. 당장 문제가 되지는 않지만 향후에 결국 스크립트를 변경해야 할 것 같아 해결하기로 했습니다.

원인

원래 스크립트의 코드는 다음과 같습니다.

RequestConfiguration requestConfiguration =
        new RequestConfiguration.Builder()
        .SetTagForChildDirectedTreatment(TagForChildDirectedTreatment.Unspecified)
        .SetTestDeviceIds(deviceIds).build();

new RequestConfiguration.Builder() 이 부분에서 ‘RequestConfiguration.Builder’ is obsolete: ‘Use RequestConfiguration directly instead’ 경고가 발생합니다. Builder() 를 사용해서 경고가 발생합니다.

그리고 AdRequest 도 동일한 경고가 발생했습니다. 원래 스크립트의 코드는 다음과 같습니다.

return new AdRequest.Builder()
        .AddKeyword("unity-admob")
        .Build();

해결

Builder 를 사용하지 않도록 코드를 수정하면 됩니다.

RequestConfiguration requestConfiguration = new RequestConfiguration();
requestConfiguration.TagForChildDirectedTreatment = TagForChildDirectedTreatment.Unspecified;
requestConfiguration.TestDeviceIds = deviceIds;

AdRequest adRequest = new AdRequest();
HashSet<string> keyword = new HashSet<string>();
keyword.Add("unity-admob");
adRequest.Keywords = keyword;

return adRequest;

이번 글에서는 간단하게 ‘RequestConfiguration.Builder’ is obsolete: ‘Use RequestConfiguration directly instead’ 경고를 해결하는 방법을 알아보았습니다.

애드몹(Admob) 의도하지 않은 클릭을 유도하는 레이아웃 – 예기치 않은 전면 광고 실행 조치 방법

개요

간단한 기능을 하는 앱에 애드몹 전면광고가 삽입되어 있었습니다. 어느 날 “귀하의 앱에서 Google AdMob 광고 게재가 중지되었습니다” 라는 제목으로 메일이 왔습니다. 내용을 살펴보니 “의도하지 않은 클릭을 유도하는 레이아웃 – 예기치 않은 전면 광고 실행” 이라고 안내되어 있었습니다. 영문으로는 Layout Encourages Accidental Clicks – Unexpected Launch Interstitials 입니다.

내용 파악

복잡한 기능을 하는 앱이 아니어서 무엇이 문제인지 처음에는 잘 몰랐습니다. 생각해 보니 전면광고가 나타나는 시점을 약간 조정했는데 그것이 문제가 된 것 같았습니다. 우측 상단의 설정 버튼을 제외하고 화면상에 터치가 필요한 앱이 아니었습니다.

처음 앱이 실행되었을 때 사용자가 무심코 화면을 터치하려는 순간 전면광고가 나타나서 의도하지 않은 광고 클릭이 될 수 있다는 생각이 들었습니다. 당연히 의도한 것은 아니었고 가능성은 낮지만 충분히 일어날 수 일이라는 판단이 들어 조치에 들어갔습니다.

첫 번째 조치

지연 시간을 없애고 광고가 완전히 준비된 후 표시가 가능할 때 나타나도록 수정했습니다. 지연 시간을 둔 이유는 광고가 나타나지 않는 현상이 있어서 그랬는데 결과적으로 문제가 되었습니다.

앱 수정 및 업데이트하고 반영된 것을 확인 후 검토 요청을 했습니다. 그러나 거부 메일이 또 다른 위반 사항이 추가되어 도착했습니다.

“게시자 콘텐츠보다 광고나 기타 유료 프로모션 자료가 더 많은 화면 이라는 위반 사항이 추가되었습니다.” 라는 내용이었습니다. 자세한 사항은 이곳에서 확인하실 수 있습니다. 요약하자면 앱에서 제공하는 내용보다 광고가 차지하는 영역이 많다는 것 입니다. 영문으로는 More ads or paid promotional material than publisher-content 입니다.

두 번째 조치

두 개의 문제를 어떻게 해결해야 할지 난감했습니다. 무엇이 문제일까 고민을 해 보았는데 광고가 나타나는 시점을 사용자가 예측할 수 없다는 것이 제일 큰 것 같았습니다. 가장 먼저 앱의 기능이 화면에 표시되고 그 후에 광고가 나타나는데 상황에 따라 빠를 수도 늦을 수도 있을 것 같았습니다.

고민 끝에 앱 기능과 광고가 나타나는 시점을 아예 분리하기로 했습니다. 광고의 준비, 표시, 실패 등 관련된 이벤트가 발생한 후 앱의 본 기능이 작동하도록 수정했습니다. 그리고 추가된 위반사항에 대한 것도 앱의 내용이 나타나기 전에 광고가 나타나므로 문제가 해결될 것 같았습니다. 다시 업데이트하고 반영된 것을 확인한 후 다시 검토 요청했습니다.

대략 한 시간 조금 지나서 문제가 없다는 메일을 받았고 앱에서 전면광고가 나타나는 것을 확인했습니다.

위반 해결 알림 메일

구글에서 위반 메일을 받으면 당황하게 됩니다(필자는 그랬습니다). 약간 막연하지만 차분히 생각해 보면 대부분 해결책을 찾을 수 있을 것 입니다.

위에 언급한 두 가지 위반 사항으로 고민하시는 분들께 도움이 되었으면 합니다.