전체 글 (28)


안드로이드 앱으로 수익을 창출하는 방법에는 여러가지 방법이 있습니다.


첫번째) 앱을 유료로 등록하여 판매하는 방법!


두번째) 광고 (전면광고, 배너광고, 리워드광고) 를 붙여 수익을 창출하는 방법!


세번째) 광고를 붙인 후 광고제거 인앱결제를 추가하여 수익을 창출하는 방법!


그중 이번에는 두번째 방법, 전면광고를 사용하는 방법에 대해서 알아보겠습니다.


build.gradle Module : app 단위에 다음 코드를 추가합니다.

(버전은 해당 게시글 작성일 2020.02.27 기준 최신버전 18.3.0 버전을 사용했습니다.) 

dependencies {

// 애드몹
implementation 'com.google.android.gms:play-services-ads:18.3.0'
}


AndroidManifest.xml에 다음 코드를 추가합니다.

<uses-permission android:name="android.permission.INTERNET" />

인터넷 사용 권한으로, 광고를 불러올 때 인터넷을 사용하기 때문에 필요합니다.



다음의 코드를 <application></application> 사이에 추가합니다.

<meta-data
android:name="com.google.android.gms.ads.AD_MANAGER_APP"
android:value="true" />

<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="@string/admob_app_id" />


res/values/strings.xml에 다음 코드를 추가합니다.

<string name="admob_app_id">애드몹 앱ID</string>
<string name="banner_ad_unit_id">애드몹 광고단위 ID</string>
<string name="banner_ad_unit_id_for_test">ca-app-pub-3940256099942544/1033173712</string>

"애드몹 앱 ID" 와 "애드몹 광고단위 ID" 에는 본인의 정보를 입력합니다.

테스트 광고단위 ID는 공통이기 때문에 수정하실 필요 없습니다.



이제 광고를 띄우고자 하는 Activity에 애드몹 객체를 선언합니다.

//애드몹
private InterstitialAd mInterstitialAd;


onCreate 선언, 시작과 동시에 다음의 코드를 입력합니다.

MobileAds.initialize(this, "애드몹 앱 ID");
mInterstitialAd = new InterstitialAd(this);
mInterstitialAd.setAdUnitId("애드몹 광고단위 ID");
mInterstitialAd.loadAd(new AdRequest.Builder().build());

여기서 애드몹 앱 ID와 애드몹 광고단위 ID에 직접 수치를 입력하셔도 되고, strings.xml에 선언한 admob_app_id, banner_ad_unit_id를 사용하셔도 됩니다.




mInterstitialAd.loadAd(new AdRequest.Builder().build()); 하단에 아래의 코드를 반드시 입력합니다.

mInterstitialAd.setAdListener(new AdListener() {
@Override
public void onAdClosed() {
// Load the next interstitial.
mInterstitialAd.loadAd(new AdRequest.Builder().build());
}

});

전면광고가 실행되고 사용자에 의해 종료되면, 새로운 광고를 로드하는 코드로, 이 코드가 없으면 최초 한번 광고실행 이후 광고를 불러오지 않습니다.

반드시 입력해주세요!



그 후 본인이 광고를 불러오고자 하는 곳에 아래의 코드를 추가하시면 됩니다.

if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
}


광고 불러오기가 완료되면(isLoaded()), 광고를 실행(show())시킵니다.




****************************************************************************************************************************************************************

주의사항! 


본인이 앱을 개발중에 있을때는 반드시 테스트 광고단위 ID를 사용하셔야 합니다.

출시를 위해 APK를 플레이스토어에 등록하기 이전에 실제 광고단위 ID로 수정하셔야 하며, 출시 이후에도 의도적으로 개발자가 광고를 클릭하거나

많은 횟수의 광고를 불러오게 되면 애드몹 아이디가 정지되는 일이 자주 발생합니다. 반드시 주의해주세요!

****************************************************************************************************************************************************************



전면광고는 배너광고와 달리 xml layout을 따로 설정할 필요가 없다는 장점이 있고, 배너광고에 비해 수익률이 높지만

사용자가 불쾌감을 느끼는 경우가 큽니다. (실제로 플레이스토어 리뷰를 보면 전면광고로 인한 1점 별점이 매우 많습니다.)


또한 절대적으로 배너광고에 비해 전면광고가 수익이 높다고 할 수도 없습니다.


화면을 오랫동안 지속해서 봐야하는 앱일 경우, 전면광고를 띄울 타이밍이 애매하기 떄문에 배너광고를 오랜시간 노출시키는것이 이득일 수도 있고,

화면이 복잡하거나 UI로 가득차있는 경우, 그 틈을 비집고 배너광고를 띄우면 사용자가 느끼기에 광고로 지저분한 느낌을 받을 수도 있습니다.




결국 광고에는 답이없습니다. 개발자 본인이 오랜 고민을 통해 가장 최적화된 방법을 찾으시길 바랍니다.

MusicQuiz 개인정보취급방침


1. 개인정보의 처리 목적. 


본 개발자가 작성한 MusicQuiz 은(는) 다음의 목적을 위하여 개인정보를 처리하고 있으며, 다음의 목적 이외의 용도로는 이용하지 않습니다.

1) 해당 앱에서 구글 Admob 광고가 필요로 하는 권한 위임을 위해 사용

2. 개인정보처리 위탁 여부
본 개발자의 앱은 타 업체에 개인정보처리를 위탁하지 않습니다.

3. 정보주체의 권리,의무 및 그 행사방법
이용자는 개인정보주체로서 언제든지 개인정보 보호 관련 권리를 행사할 수 있습니다.
다만, 본 앱은 앱 사용자의 사용정보를 수집 및 보유하지 않습니다.

4. 처리하는 개인정보의 항목 작성
다음의 개인정보 항목을 처리하고 있습니다.


android.permission.INTERNET 구글 Admob 광고를 송출하기 위해 인터넷 권한을 사용합니다.

android.permission.WRITE_EXTERNAL_STORAGE : 사용자 디바이스에서 음악 정보를 가져오기 위해 사용합니다.


5. 개인정보의 파기
앱 사용자의 사용정보를 수집 및 보유하지 않습니다.

6. 개인정보의 안전성 확보 조치
앱 사용자의 사용정보를 수집 및 보유하지 않습니다.


안드로이드 앱을 사용중에 휴대폰의 뒤로가기 버튼을 클릭하게 되면 앱이 종료됩니다.


이전 화면으로 돌아가고자 뒤로가기 버튼을 누르거나, 실수로 뒤로가기 버튼을 스쳤는데 앱이 바로 꺼져버린다면 사용자에게 불편함을 유발할 수 있겠죠

그래서 최근 개발되는 앱들은 뒤로가기 버튼을 한번 클릭 시, Toast 메시지를 통해 종료의사를 물어보고, 개발자가 지정한 시간 이내 뒤로가기 버튼을 추가로 클릭한 경우 앱을 종료시키는 방법을 사용합니다.


그럼 이제 구현방법을 알아볼까요? 구현방법은 아주 간단합니다.


뒤로가기 버튼을 눌렀을때 바로 종료시키지 않을 Activity.java 에 아래 방법으로 구현해주시면 됩니다.


1. 


// 뒤로가기 버튼을 눌렀던 시간 저장
private long backKeyPressedTime = 0;


2. onBackPressed() 함수


@Override
public void onBackPressed() {
// 기존의 뒤로가기 버튼의 기능 제거
// super.onBackPressed();

// 2000 milliseconds = 2 seconds
if (System.currentTimeMillis() > backKeyPressedTime + 2000) {
backKeyPressedTime = System.currentTimeMillis();
Toast.makeText(this, "\'뒤로\' 버튼을 한번 더 누르시면 종료됩니다.", Toast.LENGTH_SHORT).show();
return;
}

// 2초 이내에 뒤로가기 버튼을 한번 더 클릭시 finish()(앱 종료)
if (System.currentTimeMillis() <= backKeyPressedTime + 2000) {
finish();
}
}


이렇게 두가지만 설정해주시면 문제없이 뒤로가기 두 번 클릭하여 앱종료가 되는것을 확인하실 수 있습니다.


앱을 개발하다보면 여러 앱에 반복적으로, 또 필수적으로 들어가는 공통 함수나 코드들이 있습니다. 예를들어 뒤로가기 두번클릭 앱종료, 애드몹 설정, 가로화면 세로화면 고정, 타이틀바 삭제, 앱 아이콘과 이름변경 등등


이런것들을 최초 한번 코딩하신 후, 문제없이 구현되었다면 개인적으로 정리해두시는 것이 앞으로의 코딩속도에 큰 도움이 될것이라고 생각합니다.

QR 코드 스캐너 개인정보취급방침


1. 개인정보의 처리 목적. 


본 개발자가 작성한 QR 코드 스캐너 은(는) 다음의 목적을 위하여 개인정보를 처리하고 있으며, 다음의 목적 이외의 용도로는 이용하지 않습니다.

1) 해당 앱에서 구글 Admob 광고가 필요로 하는 권한 위임을 위해 사용

2. 개인정보처리 위탁 여부
본 개발자의 앱은 타 업체에 개인정보처리를 위탁하지 않습니다.

3. 정보주체의 권리,의무 및 그 행사방법
이용자는 개인정보주체로서 언제든지 개인정보 보호 관련 권리를 행사할 수 있습니다.
다만, 본 앱은 앱 사용자의 사용정보를 수집 및 보유하지 않습니다.

4. 처리하는 개인정보의 항목 작성
다음의 개인정보 항목을 처리하고 있습니다.


android.permission.INTERNET : QR 코드 및 바코드의 스캔 결과를 인터넷에서 검색하여 보여주기 위해 사용합니다. 

android.permission.CAMERA : QR 코드 및 바코드의 인식을 위해 카메라 기능을 사용합니다.
android.permission.READ_EXTERNAL_STORAGE : 사용자의 갤러리 이미지를 스캔하기 위하여 사용합니다.
android.permission.WRITE_EXTERNAL_STORAGE : 사용자가 만든 QR코드를 저장하기 위하여 사용합니다.

5. 개인정보의 파기
앱 사용자의 사용정보를 수집 및 보유하지 않습니다.

6. 개인정보의 안전성 확보 조치
앱 사용자의 사용정보를 수집 및 보유하지 않습니다.

배그가 렉걸릴 컴퓨터 사양도 아니고, 평소와 다름없이 배그를 플레이하려고 배그를 켰는데 프레임 드랍 현상이 발생했다.


키보드와 마우스를 건들지 않을때는 평소와 다름없는 프레임이 나오지만 이상하게 키보드와 마우스를 클릭만 하면 1프레임으로 프레임이 떨어지는 현상이 간혹 나타나곤 한다.


배틀그라운드 블루홀 문의 답변을 확인해 본 결과, DRM 프로그램과 충돌이 일어날 경우 발생할 수 있는 문제라고 한다.


DRM 프로그램이 무엇이고, 배그때문에 삭제해도 되는걸까? 하시는 분들을 위한 설명.


 DRM 프로그램은 우리가 흔히 민원24시, 은행사이트, 인터넷 방송 시청, 인터넷 웹툰 시청 시 다운받는 보안용 소프트웨어라고 생각하면 된다.


이 프로그램을 삭제한다고 해서 보안이 뚫린다거나 하는 문제는 당연히 없고, 다음에 서비스를 다시 사용할때 홈페이지에서 제공해주는 소프트웨어를 다시 받으면 된다.




그렇기때문에 평소와 다름없이 배그를 하려고 배그를 켰을때 프레임 드랍이 발생한다면, 이전 배그 플레이와 현재 플레이 간격 사이에 정부, 은행 사이트를 방문했을 가능성이 크다.




해결방법!


1) 키보드에서 윈도우 키를 누르고 컴퓨터 전원종료 버튼 위의 설정(톱니바퀴) 버튼을 클릭한다.


2) 앱 (설치 제거, 기본값, 옵션 기능)을 클릭한다.


3) 정렬 기준 : "이름" 을 "설치 날짜" 로 변경한다.


4) 설치되어있는 최근 프로그램중 000 "DRM" 프로그램이 있는지 확인 후 삭제한다.

(대부분의 경우 FASOO DRM" 이라는 프로그램이 문제를 일으켰다는 글들이 많다.)


5) 삭제가 완료되면 컴퓨터를 재부팅 한 후 배그를 실행하여 프레임을 확인한다.



인터넷을 아무리 검색해봐도 DRM 프로그램 삭제를 제외한 다른 방법은 없고, 공식 블루홀 문의답변이기 때문에 이 방법을 사용한다면 무조건 해결될것이라고 생각한다.


나 또한 실제로 이방법으로 바로 해결했고.


'컴퓨터 팁' 카테고리의 다른 글

[생활코딩] GIT 2일차!  (0) 2020.03.16
[생활코딩] GIT 1일차!  (0) 2020.03.15
윈도우10 검색 기능 안될때 해결 방법  (0) 2020.02.06