AdMob 안드로이드 앱으로 수익을 창출하는 방법 :: 게임제작[SSISO Community]
 
SSISO 카페 SSISO Source SSISO 구직 SSISO 쇼핑몰 SSISO 맛집
추천검색어 : JUnit   Log4j   ajax   spring   struts   struts-config.xml   Synchronized   책정보   Ajax 마스터하기   우측부분

게임제작
[1]
등록일:2018-09-15 13:38:12 (0%)
작성자:
제목:AdMob 안드로이드 앱으로 수익을 창출하는 방법

이 자습서에서는 AdMob을 통합하는 방법에 대해 알아보고, 작성한 멋진 안드로이드 앱을 통해 수익을 창출할 수 있도록 하고, 누가 원하지 않는지 알아봅니다. AdMob은 시장에서 가장 큰 모바일 광고 플랫폼 중 하나이며 Google이 소유하고 있습니다.

유료 다운로드, 유료 구독, 인앱 구매 및 광고 표시를 통해 안드로이드에서 앱으로 수익을 창출하는 방법에는 몇 가지가 있습니다. 이들을 결합할 수 있지만 단일 모델을 선택하는 것이 좋습니다. 이 자습서에서는 광고를 게재하여 앱으로 수익을 창출하는 방법에 대해 알아봅니다.

이 자습서에서 만드는 광고의 종류는 배너, 삽입 광고 및 기본 고속 광고입니다. 각각에 대해 설명하고 응용 프로그램에서 구현하는 방법을 보여줄 것입니다. 그러나 그전에 먼저 모바일 광고 SDK를 통합하고 초기화하는 방법을 알아보겠습니다.

안드로이드 스튜디오에서 MainActivity라는 새 프로젝트를 만듭니다.

Android Studio add an activity dialog

AdMob과 앱의 통합을 시작하려면 먼저 앱 모듈 build.gradle 파일에 모바일 광고 SDK를 포함해야 합니다.

1
compile 'com.google.android.gms:play-services-ads:11.0.2'

Firebase를 앱에 통합하려면 Firebase에 포함 된 SDK를 사용해야 합니다.

1
compile 'com.google.firebase:firebase-ads:11.0.2'

Firebase를 시작하는 데 도움이 필요하면 Envato Tuts+의 Firebase 튜토리얼을 참조하십시오.

SDK를 추가 한 후에 프로젝트를 동기화해야 인터넷에서 라이브러리를 응용 프로그램으로 가져올 수 있습니다.

안드로이드 앱에 광고를 로드하기 전에 모바일 광고 SDK를 초기화해야 하므로 가능한 한 빨리 이작업을 수행하십시오. Application 클래스를 확장한 클래스를 만든 다음 해당 메서드가 응용 프로그램이 시작될 때 한 번만 호출되기 때문에 해당 클래스의 onCreate() 메서드에서 MobileAds SDK를 초기화합니다.

01
02
03
04
05
06
07
08
09
10
11
import com.google.android.gms.ads.MobileAds;
import android.app.Application;
 
public class App extends Application {
 
    @Override
    public void onCreate() {
        super.onCreate();
        MobileAds.initialize(this, "ca-app-pub-3940256099942544/6300978111");
    }
}

MobileAds 클래스의 정적 메소드 initialize()에 제공된 두 번째 인수는 Ad Mob에 가입할 때 얻은 Ad Mob 애플리케이션 ID 여야 합니다. 이 경우 데모 용도로 Google에서 제공하는 공개 애플리케이션 ID를 사용하고 있습니다.

우리가 만든 응용 프로그램 클래스를 AndroidManifest.xml 파일의 응용 프로그램 태그 이름 특성에 추가해야 합니다.

1
2
3
<application
    android:name=".App">
</application>

이 파일에있는 동안 Google 모바일 광고를 실행할 수 있도록 INTERNET 권한도 포함해야 합니다.

1
2
3
<!-- Include required permissions for Google Mobile Ads to run. -->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

아래의 코드 스니펫에서 AdActivity를 애플리케이션 태그 내의 AndroidManifest.xml 파일에 추가했습니다.

1
2
3
<activity android:name="com.google.android.gms.ads.AdActivity"
          android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
          android:theme="@android:style/Theme.Translucent" />

검사버튼삭제버튼이 활동은 SDK에서 제공합니다. 배너 광고에서 사용자가 광고를 클릭할 때 광고를 볼 수 있고, 삽입 광고의 경우 사용자가 클릭할 때 광고를 표시하는 데 유용합니다.

배너 광고는 현재 표시되는 화면의 일부를 포함합니다. 즉, 앱의 모든 콘텐츠와 광고가 화면에 함께 표시됩니다. 이렇게 하면 삽입 광고와 달리 광고가 게재되는 동안 사용자가 앱을 계속 사용할 수 있기 때문에 사용자 환경이 개선됩니다. 잠깐만 기다려주십시오. 배너 광고는 텍스트 또는 이미지 일 수 있습니다.

배너 광고를 구현하는 방법을 살펴 보겠습니다.

AdView는 배너 광고가 포함된 맞춤 ViewGroup이므로 이 보기를 포함하도록 activity_banner_ad.xml 레이아웃 파일을 수정해야 합니다.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:ads="http://schemas.android.com/apk/res-auto"
                xmlns:tools="http://schemas.android.com/tools"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                tools:context="com.chikeandroid.tutsplus_admob.MainActivity">
 
    <TextView android:text="Hello World"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content" />
 
    <com.google.android.gms.ads.AdView
            android:id="@+id/adView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_alignParentBottom="true"
            ads:adSize="BANNER"
            ads:adUnitId="ca-app-pub-3940256099942544/6300978111">
    </com.google.android.gms.ads.AdView>
</RelativeLayout>

ad : AdSize 속성을 사용하여 AdView 크기를 정의하고 BANNER로 설정합니다. 다른 대안으로는 LARGE_BANNER, FULL_BANNER, SMART_BANNER 등이 있습니다.

ads : adUnitId AdView 속성은 Google에서 제공하는 샘플 광고 단위로 설정됩니다. 실제로 광고로 돈을 벌고 싶다면 계정과 연결된 광고 단위로 이를 업데이트해야 합니다.

광고 단위 ID는 광고 게재 위치를 식별하며 AdMob 관리 콘솔에서 찾을 수 있습니다. 이 ID는 AdMob에 앱에 표시 할 광고의 종류와 표시 형식 (이미지, 텍스트 또는 동영상)을 알려줍니다.

광고를 마침내 표시하려면 BannerAdActivity 클래스에서 위에서 만든 AdView에 요청을 제출해야 합니다.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
 
public class BannerAdActivity extends AppCompatActivity {
    private AdView mAdView;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mAdView = (AdView) findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder()
                .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
                .build();
        mAdView.loadAd(adRequest);
    }
}

빌더를 사용하여 AdRequest의 인스턴스를 생성하여 광고를 요청했습니다. 그런 다음 addTestDevice() 메소드를 사용하여 장치 ID를 인수로 전달하여 테스트 광고를 장치에 수신합니다 (이 경우에는 에뮬레이터). 그런 다음 이 AdRequest 인스턴스를 가져 와서 백그라운드 스레드 (UI / 주 스레드를 차단하지 않도록)에 광고를로드하는 AdView 메소드 loadAd()를 마지막으로 호출했습니다.

이 시점에서 프로젝트를 실행하고 그 결과를 볼 수 있습니다.

App showing banner ad

위의 스크린샷에서 테스트 배너 광고가 보기 아래에 표시되고 있음을 알 수 있습니다. 이제 광고를 클릭하여 상호 작용하십시오.

이제 광고에서 관찰할 수 있는 이벤트 또는 콜백을 살펴보겠습니다. 사용 가능한 이벤트는 다음과 같습니다.

  • onAdLoaded() : 이 메소드는 광고가 검색 될 때 시작됩니다.
  • onAdOpened() : 이 메소드는 광고가 열릴 때 호출됩니다.
  • onAdClosed() : 이 메소드는 광고가 닫힐 때 시작됩니다.
  • onAdLeftApplication() : 이 메소드는 사용자가 응용 프로그램을 나갈 때 호출됩니다.
  • onAdFailedToLoad(int errorCode) : 광고 요청이 실패하면 시작됩니다. 코드는 ERROR_CODE_NETWORK_ERROR, ERROR_CODE_INVALID_REQUEST, ERROR_CODE_NO_FILL 또는 ERROR_CODE_INTERNAL_ERROR 중 하나 일 수 있습니다.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
// ...
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // ...
        mAdView.setAdListener(new AdListener() {
         
                    @Override
                    public void onAdLoaded() {
                        super.onAdLoaded();
                        Toast.makeText(MainActivity.this, "onAdLoaded()", Toast.LENGTH_SHORT).show();
                    }
         
                    @Override
                    public void onAdOpened() {
                        super.onAdOpened();
                        Toast.makeText(MainActivity.this, "onAdOpened()", Toast.LENGTH_SHORT).show();
                    }
         
                    @Override
                    public void onAdClosed() {
                        super.onAdClosed();
                        Toast.makeText(MainActivity.this, "onAdClosed()", Toast.LENGTH_SHORT).show();
                    }
         
                    @Override
                    public void onAdFailedToLoad(int i) {
                        super.onAdFailedToLoad(i);
                        Toast.makeText(MainActivity.this, "onAdFailedToLoad()", Toast.LENGTH_SHORT).show();
                    }
         
                    @Override
                    public void onAdLeftApplication() {
                        super.onAdLeftApplication();
                        Toast.makeText(MainActivity.this, "onAdLeftApplication()", Toast.LENGTH_SHORT).show();
                    }
            });
    }
 
    @Override
    public void onPause() {
        // This method should be called in the parent Activity's onPause() method.
        if (mAdView != null) {
            mAdView.pause();
        }
        super.onPause();
    }
     
    @Override
    public void onResume() {
        super.onResume();
        // This method should be called in the parent Activity's onResume() method.
        if (mAdView != null) {
            mAdView.resume();
        }
    }
     
    @Override
    public void onDestroy() {
        // This method should be called in the parent Activity's onDestroy() method.
        if (mAdView != null) {
            mAdView.destroy();
        }
        super.onDestroy();
    }
}

리스너를 추가 한 후 프로젝트를 다시 실행하고 광고와 상호 작용하십시오. 우리가 만든 건배를 보고 호출되는 이벤트를 관찰하십시오.

배너 광고를 표시하는 것이 얼마나 쉬운 지 알 수 있었습니다. 이제 삽입 광고를 만드는 방법에 대해 알아보겠습니다.

삽입 광고는 애플리케이션의 전체 화면을 다루는 광고로, 앱의 다른 보기를 표시할 공간이 없습니다 (곧 보게 되겠지만). 이 작업은 전체 화면을 차지하고 네트워크가 느린 경우 로드하는 데 시간이 걸리기 때문에 사용자를 괴롭히지 않도록 주의해야 합니다. 이상적으로 이러한 삽입 광고는 자연재해시 앱에 표시되어야 합니다 (예 : 사용자가 다른 작업의 중간에 있을 때가 아니라 게임의 레벨 사이에서.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import com.google.android.gms.ads.AdListener;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.InterstitialAd;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.Toast;
 
public class InterstitialAdActivity extends AppCompatActivity {
    private InterstitialAd mInterstitialAd;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        loadInterstitialAd();
    }
 
    private void loadInterstitialAd() {
        mInterstitialAd = new InterstitialAd(this);
        mInterstitialAd.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
        mInterstitialAd.setAdListener(new AdListener() {
 
            @Override
            public void onAdLoaded() {
                super.onAdLoaded();
                Toast.makeText(MainActivity.this, "onAdLoaded()", Toast.LENGTH_SHORT).show();
                if(mInterstitialAd.isLoaded()) {
                    mInterstitialAd.show();
                }
            }
 
            @Override
            public void onAdFailedToLoad(int i) {
                super.onAdFailedToLoad(i);
                Toast.makeText(MainActivity.this, "onAdFailedToLoad()", Toast.LENGTH_SHORT).show();
            }
        });
 
        AdRequest adRequest = new AdRequest.Builder().build();
        mInterstitialAd.loadAd(adRequest);
    }
}

위 코드에서 InterstitialAdActivity 클래스의 InterstitialAd 클래스 인스턴스를 선언하고 초기화했습니다. Google이 제공 한 인수를 유일한 인수로 setAdUnitId() 메서드에 전달하여 추가 단위 ID를 설정합니다.

배너 광고에서 했던 것처럼 광고의 이벤트를 수신하므로 ListLoaded()onAdFailedToLoad(int i)에서 오버로드 된 메소드를 발생시키는 리스너를 설정합니다. 빌더를 사용하여 AdRequest 클래스의 인스턴스를 만든 다음 메서드 loadAd()를 호출하여 이 요청을 메소드의 인수로 전달합니다. 우리는 isLoaded() 메소드를 사용하여 광고가 로드된 시기를 결정한 다음 show() 메서드를 호출하여 최종적으로 표시합니다.

배너 광고와 마찬가지로 AdListener를 추가할 수도 있습니다.

이 시점에서 우리는 앱을 실행하고 그 결과를 볼 수 있습니다.

App showing interstitial ad

위의 스크린 샷에서 테스트 삽입 광고가 게재되고 있음을 알 수 있습니다.

네이티브 광고 익스프레스는 게시자에게 앱의 자연스러운 느낌에 맞게 광고의 디자인을 맞춤 설정할 수 있는 기능을 제공합니다. 이 맞춤 설정은 AdMob 계정에서 자신의 글꼴, 색상, 크기 등을 정의하는 CSS 템플릿을 정의하여 수행됩니다. 이미지, 설명 및 제목을 변경할 수는 없지만 광고주가 설정합니다.

맞춤 광고는 NativeExpressAdView에서 앱에 표시 될 수 있습니다.

아래에는 레이아웃 그룹에 ViewGroupNativeExpressAdView가 포함되어 있습니다. 또한 android:layout_heightandroid:layout_widthwrap_content로 정의합니다. ads:adSize"320x300"이며 Google에서 제공하는 NativeExpress 광고 단위 ID를 사용합니다 (데모 용).

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:ads="http://schemas.android.com/apk/res-auto"
                xmlns:tools="http://schemas.android.com/tools"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                tools:context="com.chikeandroid.tutsplus_admob.BannerAdActivity">
 
    <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Native Express Ad!" />
 
    <com.google.android.gms.ads.NativeExpressAdView
            android:id="@+id/adView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_alignParentBottom="true"
            ads:adSize="320x300"
            ads:adUnitId="ca-app-pub-3940256099942544/2177258514">
    </com.google.android.gms.ads.NativeExpressAdView>
 
</RelativeLayout>

그런 다음 AdRequest를 작성한 다음 표시할 광고를 로드하기 시작합니다. 또한 액티비티 라이프싸이클 콜백에 응답하는 코드를 추가할 것 입니다. 원하는 경우 배너 광고와 마찬가지로 AdListener를 추가할 수도 있습니다.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.NativeExpressAdView;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
 
public class NativeExpressAdActivity extends AppCompatActivity {
    NativeExpressAdView mNativeExpressAdView;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_native_ad);
 
        mNativeExpressAdView = (NativeExpressAdView) findViewById(R.id.adView);
 
        AdRequest.Builder adRequestBuilder = new AdRequest.Builder();
        adRequestBuilder.addTestDevice(AdRequest.DEVICE_ID_EMULATOR);
 
        mNativeExpressAdView.loadAd(adRequestBuilder.build());
    }
 
    @Override
    public void onResume() {
        super.onResume();
        mNativeExpressAdView.resume();
    }
 
    @Override
    public void onPause() {
        mNativeExpressAdView.pause();
        super.onPause();
    }
 
    @Override
    public void onDestroy() {
        mNativeExpressAdView.destroy();
        super.onDestroy();
    }
}

그게 전부입니다! 이제 앱을 실행하고 Native Express 광고를 실제로 볼 수 있습니다.

App showing NativeExpressAdView
Advertisement

다양한 유형의 광고에 대해 학습했으므로 이제 애플리케이션에 통합할 수 있습니다. 실제 광고를 게재하고 수익을 창출하려면 광고주의 실제 광고와 연결된 실제 광고 단위 ID가있는 AdMob 계정이 필요합니다. 가입하려면 AdMob 웹 사이트를 방문하십시오.

AdMob website home screen

이 자습서에서는 AdMob에 대해 알아보고 Android에 배너, 삽입 광고 및 기본 고속 광고와 같은 다양한 AdMob 광고 형식을 통합하는 방법에 대해 살펴 보았습니다.

안드로이드용 AdMob에 대해 자세히 알아보려면 공식 문서를 참조하세요. 그리고 그동안 안드로이드 앱 개발에 대한 다른 코스 및 자습서를 확인하십시오.

[본문링크] AdMob 안드로이드 앱으로 수익을 창출하는 방법
[1]
코멘트(이글의 트랙백 주소:/cafe/tb_receive.php?no=34837
작성자
비밀번호

 

SSISOCommunity

[이전]

Copyright byCopyright ⓒ2005, SSISO Community All Rights Reserved.