시작하기

캐시버튼 Android용 SDK에서 제공하는 서비스를 연동하기 전 완료해야 하는 설정에 대해 알아보세요.

안내사항

"퍼블리셔"로 등록된 파트너사의 경우만 제공되는 서비스입니다.


퍼블리셔 등록은 영업담당자에게 연락 바랍니다.


요구사항

요구 사항은 CashButton Android SDK 최신 상태를 기준으로 명시됩니다.


안정적인 광고 플랫폼 및 개선된 수익화 기능의 탑재와 Android OS와의 호환성을 위해 최신 버전으로 업데이트하는 것을 권장합니다.

  • minSdkVersion -> 16 (JelleyBean)

    • Android 5.0(API Level 21) 이상을 권장합니다.

      • "일부 광고 노출"이 제한 됩니다.

      • Android 5.0(API 21) 미만의 경우 multi-dex 적용 필수

    • Android Studio -> 3.2 이상

      • 최신 버전의 IDE 사용을 권장합니다.

      • Android Studio Flamingo 이상 버전에서 개발되고 있습니다.

    • Android gradle plugin -> 4.0.1 이상

    • Google Play 타겟 API 수준 -> compileSdkVersion 33

    • Kotlin version 1.6.20


연동 순서

1. 캐시버튼 퍼블리셔 SDK를 build.gradle(project) / build.gradle(app)에 설정합니다.

2. AndroidManifest.xml에 설정값을 추가 합니다.

3. Application Class를 통해 CashButtonSDK를 초기화 합니다.


원격 저장소(Repository) 설정

build.gradle(project) 구성 사용

프로젝트 수준의 "build.gradle" 파일에 다음 항목을 추가 합니다.

allprojects {
  repositories {
    google()
    mavenCentral()
    maven { url "https://jitpack.io" }
    maven { url 'https://artifact.bytedance.com/repository/pangle' }
    maven { url 'https://devrepo.kakao.com/nexus/content/groups/public/' }
    maven { url 'https://raw.githubusercontent.com/coupang-ads-sdk/android/main' }
    maven { url "https://dl.cloudsmith.io/public/avatye/android-cashbutton-buzzvil/maven/" }
    maven {
      url "s3://repo.cauly.net/releases"
      credentials(AwsCredentials) {
        accessKey "AKIAWRZUK5MFKYVSUOLB"
        secretKey "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"
      }
    }
  }
}

settings.gradle 구성 사용

AGP 7.1.0 이상 또는 Android Studio Bumblebee 이상 사용시(settings.gradle 이용시)

pluginManagement {
  repositories {
    gradlePluginPortal()
    google()
    mavenCentral()
  }
}

dependencyResolutionManagement {
  repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
  repositories {
    google()
    mavenCentral()
    maven { url "https://jitpack.io" }
    maven { url 'https://artifact.bytedance.com/repository/pangle' }
    maven { url 'https://devrepo.kakao.com/nexus/content/groups/public/' }
    maven { url 'https://raw.githubusercontent.com/coupang-ads-sdk/android/main' }
    maven { url "https://dl.cloudsmith.io/public/avatye/android-cashbutton-buzzvil/maven/" }
    maven {
      url "s3://repo.cauly.net/releases"
      credentials(AwsCredentials) {
        accessKey "AKIAWRZUK5MFKYVSUOLB"
        secretKey "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"
      }
    }
  }
}

퍼블리셔 모듈 적용

최신버전 정보


com.avatye.cashbutton.buzzvil:product-button:B2.2.233

캐시버튼 SDK의 의존성을 앱(모듈) 수준의 "build.gradle" 파일에 설정하세요.

android {
    ...
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}
dependencies {
    // 캐시버튼 적용
    implementation 'com.avatye.cashbutton.buzzvil:product-button:${SDK Version 참고}'
}

AndroidManifest.xml 설정

퍼미션 값을 설정합니다.

<!-- 퍼미션 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- android target sdk 28 FOREGROUND_SERVICE -->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.VIBRATE" />

SDK 초기화 안내

Application의 “onCreate()"에서 CashButtonSDK(class)"를 사용하여 CashButton Android SDK를 초기화 하세요.


  • Application Class 설정이 없을 경우 앱이 실행되지 않으며, 앱이 강제 종료 되는 문제가 발생합니다.

  • Android 5.0(API Level 21) 하위 버전을 지원하는 앱의 경우 Multidex 적용이 필요합니다.

  • 사용중인 Application Class가 없다새로운 Application Class를 생성 후 AndroidManifest.xml 항목에 추가 합니다.

CashButtonSDK

class Application : Application() {
  override fun onCreate() {
    super.onCreate()    
    /** 라이브 키는 영업팀에 문의 후 적용해주세요.
         *
         *  캐시버튼 테스트 키
         *  appID = "91e4b7f81a6511ea813d0a4916b2361a", 
         *  appSecret = "aafc702323bf6a214"
         *
         *  캐시버튼 채널링 테스트 키
         *  appID = "69f43822b64d46d6bc01ff6d282f754d", 
         *  appSecret = "077b11dc468f4bd3"         
         *
         *  버즈빌 매핑 테스트 ID (MID)
         *  nativeMID = "0fbe7a0b-04e8-4a82-8c32-d20bb5155ecd",
         *  feedContentMID = "5dea2f82-4f1a-4850-99b1-cbda830b7225",
         *  feedShoppingMID = "e4b81c69-0e8d-49a6-ba6b-22d75d4ffa77"
     */
    // initialize
    CashButtonSDK(
      application = this,
      appId = "91e4b7f81a6511ea813d0a4916b2361a",
      appSecret = "aafc702323bf6a214"
    ).apply {
      // debug-mode
      setUseDebug(use = true)
      // 버즈빌 매핑 ID 설정
      setBuzzAdsMID(
        buzzAdsMID = BuzzAdsMID(
          nativeMID = "0fbe7a0b-04e8-4a82-8c32-d20bb5155ecd",
          feedContentMID = "5dea2f82-4f1a-4850-99b1-cbda830b7225",
          feedShoppingMID = "e4b81c69-0e8d-49a6-ba6b-22d75d4ffa77"
         )
      )
      // point-theme
      // setPointType(pointType = PointType.POINT)
      // market
      setMarketType(marketType = MarketType.GooglePlayStore)
      // 포인트 전환 이벤트 리스너 등록(전환 사용시 필수)
      setCashExchangeListener(listener = object : ICashExchangeListener {
        override fun onRequestExchange(
          transactionID: String, 
          exchangeItemID: String
        ) {
            /**
            * transactionID 포인트 전환 TransactionID
            * exchangeItemID 포인트 전환 아이템 코드
            */
          }
      }
    }.build(listener = object : CashButtonSDK.IResultListener {
      override fun onSuccess() {
        Toast.makeText(
          this@AppContext, 
          "CashButtonSDK.Init::onSuccess", 
          Toast.LENGTH_SHORT
        ).show()
      }
      
      override fun onFailure(reason: String) {
        Toast.makeText(
          this@AppContext, 
          "CashButtonSDK.Init::onFailure '$reason'", 
          Toast.LENGTH_SHORT
        ).show()
      }
    })
  }
}

CashButtonSDK(builder constructor)

class CashButtonSDK constructor(
    private val application: Application,
    private val appId: String? = null,
    private val appSecret: String? = null
)

Parameters

name
type
description

application

Application

Android Application

appId

String(null)

앱 고유 식별자

appSecret

String(null)

앱 고유 식별자 검증키

초기화 옵션 설정(builder-option)

생성된 CashButtonSDK 인스턴스를 통해 필요한 옵션을 설정합니다.

설정하지 않은 경우 SDK에서 제공되는 기본값을 사용합니다.

개발모드 설정

개발 모드를 설정합니다(캐시버튼의 로그 기능 활성화)


  • setUseDebug(use: Boolean)

    • true : 개발모드 활성화(개발 로그 출력)

    • false(기본값) : 개발모드 비활성화

마켓타입 설정

앱이 등록된 대표 마켓을 설정합니다. (플레이스토어 1순위)


  • setMarketType(marketType: MarketType)

    • MarketType.GooglePlayStore

    • MarketType.OneStore

포인트 테마를 설정합니다.

포인트 테마를 설정합니다.


  • setPointType(pointType: PointType)

    • PointType.MILEAGE : 마일리지

    • PointType.POINT : 포인트

포인트 전환 이벤트 리시버 등록

포인트 전환 요청시 전달되는 아이템 정보를 전달 합니다.


setCashExchangeListener(listener: ICashExchangeListener)

interface ICashExchangeListener {
    fun onRequestExchange(
        transactionID: String,
        exchangeItemID: String
    )
}
  • transactionID : 포인트 전환 요청 ID

  • exchangeItemID: 전환 요청 아이템 ID

버즈피드 정보 설정(BuzzAdsMID)

캐시버튼내에 노출되는 버즈 피드 지면 정보를 설정 합니다.


setBuzzAdsMID(buzzAdsMID: BuzzAdsMID)

data class BuzzAdsMID(
    // 네이티브 배너 매핑ID
    val nativeMID: String? = null,
    // 피드 컨텐츠 적립 매핑ID
    val feedContentMID: String? = null,
    // 피드 쇼핑 적립 매핑ID
    val feedShoppingMID: String? = null,
)

초기화 실행(builder build)

build(CashButtonSDK.IResultListener) 함수를 통해 초기화를 진행합니다.

build() Parameter

interface IResultListener {
    fun onSuccess()
    fun onFailure(reason: String)
}

Last updated