Android SDK

Tenjin Android SDK (v1.8.8) (132KB) - Google Play and Amazon Store Support

Tenjin 안드로이드 SDK - 구글 플레이와 아마존 스토어 지원

참고: SDK 통합 시, 최신 버전의 Android Studio 사용을 권장합니다.

Manifest 요구사항:


  • manifest 태그 내에 INTERNET 권한 포함
  • 애플리케이션 태그 내에 구글 플레이 서비스 포함
  • Tenjin의 INSTALL_REFERRER 수신기 포함
<manifest>
  ...
  <application ...>
    <meta-data android:name="com.google.android.gms.version"
           android:value="@integer/google_play_services_version" />
    ...
    <receiver android:name="com.tenjin.android.TenjinReferrerReceiver" android:exported="true">
      <intent-filter>
        <action android:name="com.android.vending.INSTALL_REFERRER"/>
      </intent-filter>
    </receiver>
    ...
  </application>
  ...
  <uses-permission android:name="android.permission.INTERNET"></uses-permission>
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> <!-- Required to get network connectivity (i.e. wifi vs. mobile) -->
  ...
</manifest>

SDK 통합:


Android Studio 통합

  1. 최신 Android SDK를 이곳에서 다운로드 하십시오.
  2. 새로 만들기> 모듈을 선택하여 tenjin.jar를 Android Studio 프로젝트에 추가합니다.
  3. 새 모듈 대화 상자에서 .JAR 또는 .AAR 패키지 가져오기 옵션을 선택하고, 다음을 클릭하십시오. AndroidStudio
  4. tenjin.jar 또는 tenjin.aar 파일을 선택하고 마침을 클릭하십시오.
  5. 아직 구글 플레이 서비스를 설치하지 않았다면, 구글 플레이 서비스를 build.gradle 파일에 추가합니다. Tenjin Android SDK v1.8.3부터 구글의 설치 리퍼러 라이브러리를 추가해야합니다.
dependencies {
  compile 'com.google.android.gms:play-services:10.0.1'
  compile 'com.android.installreferrer:installreferrer:1.0'
}
  1. 앱 모듈의 build.gradle 파일에서, 아래 사항을 dependecies 블록을 추가해야합니다:
    dependencies {
    compile project(":tenjin")
    }
    

    Eclipse 통합

  2. 최신 Android SDK를 이곳에서 다운로드하세요.
  3. 프로젝트 루트 폴더에 libs 폴더를 만듭니다.
  4. tenjin.jar 파일을 libs 폴더에 복사하십시오.
  5. tenjin.jar 파일을 마우스 오른쪽 버튼으로 클릭한 후, Build Path-> Add to Build Path를 선택하십시오.
  6. 프로젝트에 Referenced Libraries라는 폴더가 생성됩니다.
  7. SDK 관리자에서 Google의 Android 지원 저장소, Android 지원 라이브러리, Google Play 서비스 및 Google 저장소 SDK를 설치합니다. Google은 아직 설정하지 않았을 경우, 이를 효과적으로 구성하는 방법에 대해 설명합니다.

Code 통합:

  1. Tenjin 조직 탭에서 API_KEY를 가져오세요.
  2. 주 Activity에는 import com.tenjin.android.TenjinSDK; 가 있는 Tenjin SDK를 포함시킵니다.

3a. 모든 Activity의 각 onResume method에 대해 다음 코드 행을 추가하십시오.

TenjinSDK instance = TenjinSDK.getInstance(this, "<API_KEY>");
instance.connect();

또는 이와 유사하게, Activity 통합이 어떻게 나타나는지에 대한 예시가 있습니다:

import com.tenjin.android.TenjinSDK;
import com.tenjin.android.Callback;

public class TenjinDemo extends ActionBarActivity {

    @Override
    public void onResume() {
        //standard code
        super.onResume()

        //Integrate TenjinSDK connect call
        String apiKey = "<API_KEY>";
        TenjinSDK instance = TenjinSDK.getInstance(this, apiKey);
        instance.connect();

        //Your other code...
        //...

    }
}

3b. 다른 서비스의 딥링크를 처리하기 위한 대체 초기화 (3a와 3b를 함께 사용하지 마십시오. 하나만 사용해야합니다) 다른 서비스를 사용하여 지연된 딥링크를 생성하는 경우 Tenjin에서 딥링크를 전달하여, 텐진 사용 딥링크로 속성 로직을 처리할 수 있습니다.

import com.facebook.applinks.AppLinkData;

import com.tenjin.android.TenjinSDK;

public class TenjinDemo extends ActionBarActivity {

    @Override
    public void onResume() {
        //standard code
        super.onResume()

        //Integrate TenjinSDK connect call
        String apiKey = "<API_KEY>";
        final TenjinSDK instance = TenjinSDK.getInstance(this, apiKey);

        String appLinkUri = "your_deeplink";
        if (appLinkUri){
          instance.connect(appLinkUri);
        } else {
          instance.connect();
        }

        //Your other code...
        //...

    }
}

Live Test Device Data Tool를 통해 통합이 작동하는지 확인할 수 있습니다. 테스트 장치 목록에 advertising_id 또는 IDFA/GAID를 추가하십시오. 지원->테스트 디바이스에서 찾을 수 있습니다. SDK 라이브 페이지로 이동하여 앱에서 테스트 이벤트를 보냅니다. 실시간 이벤트가 표시됩니다:

Tenjin and GDPR:


GDPR 준수의 일환으로 Tenjin의 SDK를 사용하면 장치/사용자를 opt-in하거나 opt-out하거나, 특정 장치 관련 매개 변수를 선택하여 opt-in 또는 opt-out할 수 있습니다. OptOut()은 Tenjin에 API 요청을 보내지 않으며, 이벤트를 처리하지 않습니다.

Opt-in/opt-out 진행시:

import com.tenjin.android.TenjinSDK;

public class TenjinDemo extends ActionBarActivity {

    @Override
    public void onResume() {
        //standard code
        super.onResume()

        //Integrate TenjinSDK connect call
        String apiKey = "<API_KEY>";
        TenjinSDK instance = TenjinSDK.getInstance(this, apiKey);

        boolean userOptIn = checkOptInValue();

        if (userOptIn) {
            instance.optIn();
        }
        else {
            instance.optOut();
        }

        instance.connect();

        //Your other code...
        //...

    }

    protected boolean checkOptInValue(){
        // check opt-in value
        // return true; // if user opted-in
        return false;
    }
}

특정 장치 관련 매개 변수를 opt-in/opt-out하려면 OptInParams() 또는 OptOutParams()를 사용할 수 있습니다. OptInParams()는 지정된 장치 관련 매개 변수만을 보냅니다. OptOutParams()는 지정된 것 이외의 모든 장치 관련 매개 변수를 보냅니다. Tenjin의 시스템에서 장치를 올바르게 추적하려면 최소한 ip_address, advertising_id, developer_device_id, limit_ad_tracking, referrer(Android) 및 iad(iOS)가 필요합니다. Google을 사용할 예정이면, 다음 사항들을 추가하십시오: platform, os_version, locale, device_model, build_id

특정 장치 관련 매개 변수만 가져오려면 OptInParams()를 사용하십시오. 아래의 예에서는 이러한 장치 관련 매개 변수만 사용합니다: ip_address, advertising_id, developer_device_id, limit_ad_tracking, referrer, iad:

String apiKey = "<API_KEY>";
TenjinSDK instance = TenjinSDK.getInstance(this, apiKey);

String[] optInParams = {"ip_address", "advertising_id", "developer_device_id", "limit_ad_tracking", "referrer", "iad"};
instance.optInParams(optInParams);

instance.connect();

특정 장치 관련 매개 변수를 제외한 모든 매개 변수를 보내려면 OptOutParams()를 사용하십시오. 아래 예를 제외하고는 모든 장치 관련 매개 변수를 전송합니다.

String apiKey = "<API_KEY>";
TenjinSDK instance = TenjinSDK.getInstance(this, apiKey);

String[] optOutParams = {"locale", "timezone", "build_id"};
instance.optOutParams(optOutParams);

instance.connect();

장치 관련 매개 변수들

매개 변수 설명 참고
advertising_id Google Advertising ID Android
limit_ad_tracking limit ad tracking enabled Android
platform Platform Android
referrer Google Play Install Referrer Android
os_version OS version Android
device device name Android
device_manufacturer device manufacturer Android
device_model device model Android
device_brand device brand Android
device_product device product Android
carrier carrier Android)
connection_type cellular or wifi Android)
screen_width device width Android
screen_height device height Android
os_version_release release os version Android
build_id build ID Android
locale device locale Android)
country locale country Android)
timezone timezone Android

Tenjin 구매 이벤트 지침:


사용자 수익 및 구매 행동을 이해하기 위해, 개발자는 거래 이벤트를 Tenjin으로 보낼 수 있습니다. Tenjin에 거래 이벤트를 보내는 방법에는 두 가지가 있습니다.

  1. 영수증 유효성 확인 - Tenjin은 귀하의 영수증 확인을 해줄 수 있습니다. 중요: 앱의 public key를 Tenjin 대시보드> Android 앱> Edit(수정)에 추가해야합니다. Google Play 개발자 콘솔> 앱 선택> 개발 도구> 서비스 및 API에서 Base64로 인코딩 된 RSA public key를 검색할 수 있습니다. Public Key를 앱의 Tenjin 대시보드에 입력하면, 아래의 Tenjin SDK 방법을 사용할 수 있습니다:

Dashboard

Public Key를 앱의 Tenjin 대시보드에 입력하면, 아래의 Tenjin SDK 방법을 사용할 수 있습니다:

public void transaction(String productId, String currencyCode, int quantity, double unitPrice, String purchaseData, String dataSignature)

다음은 구매시 구현할 수 있는 예입니다: (http://developer.android.com/google/play/billing/billing_integrate.html#Purchase에서 가져온 코드)

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
   if (requestCode == 1001) {
      int responseCode = data.getIntExtra("RESPONSE_CODE", 0);
      String purchaseData = data.getStringExtra("INAPP_PURCHASE_DATA");
      String dataSignature = data.getStringExtra("INAPP_DATA_SIGNATURE");

      if (resultCode == RESULT_OK) {
         try {
            JSONObject jo = new JSONObject(purchaseData);
            String sku = jo.getString("productId");

            //here you will need to assign the currencyCode, quantity, and the price
            TenjinSDK.getInstance(this, "<API_KEY>").transaction(sku, "USD", 1, 3.99, purchaseData, dataSignature)
          }
          catch (JSONException e) {
             alert("Failed to parse purchase data.");
             e.printStackTrace();
          }
      }
   }
}

Live Test Device Data Tool (라이브 테스트 장치 데이터 도구)를 통해 IAP 유효성 검사가 작동하는지 확인할 수 있습니다. 실시간 이벤트가 아래와 같이 나타납니다:

  1. 거래를 수동으로 전달합니다 (일반적으로 구매가 Google Play에서 처리되지 않는 경우) 거래 이벤트를 보내려면 아래 method signature에 따라 사용자거래의 productId, currencyCode, quantityunitPrice를 제공해야합니다:

public void transaction(String productId, String currencyCode, int quantity, double unitPrice).

다음은 구매시 구현할 수 있는 방법의 예입니다:

//The developer's own method for completing a transaction that happened in app
public void completeTransaction(String productId, String currencyCode, int quantity, double unitPrice){
  ...
  //Call the Tenjin SDK with the context and the API_KEY
  TenjinSDK.getInstance(this, "<API_KEY>").transaction(productId, currencyCode, quantity, unitPrice);
  ...
}
  • productId -> 판매하는 제품명 혹은 ID
  • currencyCode -> 가격의 통화 코드
  • quantity -> 이벤트 수행시 거래량
  • unitPrice -> 단일 거래의 단가

Tenjin은 quantity unitPrice (수량단위) 가격에 따라 거래에서 총 수익을 계산합니다. Tenjin은 전송된 통화 코드, 수량 및 단가에 따라 수익을 기록하고 추적합니다.

Tenjin 커스텀 이벤트 통합 지침:


Tenjin SDK를 사용하여 커스텀 이벤트를 전달할 수 있습니다: eventWithName(String name)

앱과의 커스텀 인터액션은 Tenjin의 서비스를 통해 사용하는 각 획득 소스의 레벨 비용과 연계될 수 있습니다. 다음은 사용 예입니다:

String apiKey = <API_KEY>;
TenjinSDK instance = TenjinSDK.getInstance(this, apiKey);

//Integrate a custom event with a distinct name - ie. swiping right on the screen
instance.eventWithName("swipe_right");

정수 값을 사용하여 커스텀 이벤트 전달:

참고: 초기화 connect() 이벤트 (위) 전에 커스텀 이벤트를 보내지 마십시오. 초기화 이벤트는 커스텀 이벤트를 보내기 전에 진행되어야 합니다.

Tenjin SDK를 사용하여 정수 값이 있는 커스텀 이벤트를 전달할 수 있습니다: eventWithNameAndValue(String name, String value) 혹은 eventWithNameAndValue(String name, int value).

이벤트 name(이름과) 함께 정수 value(값)을 전달하면 마케팅 담당자가 Tenjin 대시보드에서 해당 측정 항목에 대해 전달된 값의 평균을 합산하고 추적할 수 있습니다. DataVault를 사용하려는 경우, 이 값들을 사용하여 유용한 추가 메트릭을 얻을 수 있습니다.

String apiKey = <API_KEY>;
TenjinSDK.instance = TenjinSDK.getInstance(this, apiKey);

//Integrate a custom event with a distinct name and value - ie. paying 100 virtual coins for an item
instance.eventWithNameAndValue("item", "100");

위의 예제를 사용하여 Tenjin 대시보드는 item(항목) 이름으로 모든 이벤트 값을 합산하고 평균화합니다. 값이 정수가 아닐 경우, 이 이벤트는 작동하지 않습니다.

Tenjin 지연된 딥링크 통합 지침:


Tenjin은 Tenjin의 캠페인 추적 URL들을 통해 새로운 속성 설치 후 사용자를 앱의 특정 부분으로 안내할 수 있는 기능을 지원합니다. getDeeplink 메소드와 콜백을 사용하여 데이터 객체를 통해 지연된 딥링크에 액세스할 수 있습니다. 테스트하려면, 이곳에 있는 안내를 따르십시오.

import com.tenjin.android.TenjinSDK;
import com.tenjin.android.Callback;

public class TenjinDemo extends ActionBarActivity {

    //...other callbacks are here

    @Override
    public void onResume() {
        //standard code
        super.onResume()

        //Integrate TenjinSDK connect call
        String apiKey = "<API_KEY>"; //You can potentially set this as a global variable too
        TenjinSDK instance = TenjinSDK.getInstance(this, apiKey);
        instance.connect();

        instance.getDeeplink(new Callback() {
            @Override
            public void onSuccess(boolean clickedTenjinLink, boolean isFirstSession, Map<String, String> data) {
                if (clickedTenjinLink) {
                    if (isFirstSession) {
                        if (data.containsKey(TenjinSDK.DEEPLINK_URL)) {
                           // use the deferred_deeplink_url to direct the user to a specific part of your app
                        }
                    }
                }
            }
        });

        //Your other code...
        ...

    }

isFirstSession 매개 변수를 확인하여 설치 후 로직을 처리 시, v1.7.1+SDK를 사용할 수도 있습니다. 예를 들어, 유료 앱을 가지고 있다면, 유료 앱을 다음과 같은 방법으로 등록할 수 있습니다:

import com.tenjin.android.TenjinSDK;

public class TenjinDemo extends ActionBarActivity {

    //...other callbacks are here

    @Override
    public void onResume() {
        //standard code
        super.onResume()

        //Integrate TenjinSDK connect call
        String apiKey = "<API_KEY>"; //You can potentially set this as a global variable too
        TenjinSDK instance = TenjinSDK.getInstance(this, apiKey);
        instance.connect();

        instance.getDeeplink(new Callback() {
            @Override
            public void onSuccess(boolean clickedTenjinLink, boolean isFirstSession, Map<String, String> data) {
                if (isFirstSession) {
                  // send paid app price and revenue to Tenjin
                }
            }
        });

        //Your other code...
        ...

    }

안드로이드 리퍼러 테스트하기:


안드로이드 INSTALL_REFERRER가 작동하는지 테스트하려면 다음을 수행하세요:

  1. 위 초기화 지침서대로 진행하십시오
  2. ./adb shell를 오픈하세요. adb가 홈 디렉토리에 없으면 Android SDK 폴더에서 찾으십시오
  3. 앱 실행
  4. IDE에서 REF 태그를 필터링하십시오
  5. 다음을 실행 및 테스트:
    am broadcast -a com.android.vending.INSTALL_REFERRER -n <com.your.apppackage>/com.tenjin.android.TenjinReferrerReceiver --es "referrer" "ai=test&gclid=click_test"
    
    이것을 테스트한 후, IDE 콘솔에서 referrer에 전달된 값의 출력을 확인해야 합니다. 위의 경우 다음과 같이 표시됩니다:

ai=test&gclid=click_test

results matching ""

    No results matching ""