Android SDK
Tenjin Android SDK (v1.9.3) (132KB) - Google Play and Amazon Store Support
Tenjin 안드로이드 SDK - 구글 플레이와 아마존 스토어 지원
참고: SDK 통합 시, 최신 버전의 Android Studio 사용을 권장합니다.
Manifest 요구사항:
- manifest 태그 내에
INTERNET
권한 포함 - 애플리케이션 태그 내에 구글 플레이 서비스 포함
- Tenjin의
INSTALL_REFERRER
수신기 포함
<manifest>
...
<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 통합
- 최신 Android SDK를 이곳에서 다운로드 하십시오.
- 새로 만들기> 모듈을 선택하여
tenjin.jar
를 Android Studio 프로젝트에 추가합니다. - 새 모듈 대화 상자에서 .JAR 또는 .AAR 패키지 가져오기 옵션을 선택하고, 다음을 클릭하십시오.
tenjin.jar
또는tenjin.aar
파일을 선택하고 마침을 클릭하십시오.- 아직 구글 플레이 서비스를 설치하지 않았다면, 구글 플레이 서비스를 build.gradle 파일에 추가합니다. Tenjin Android SDK v1.8.3부터 구글의 설치 리퍼러 라이브러리를 추가해야합니다.
dependencies {
implementation 'com.google.android.gms:play-services-analytics:17.0.0'
implementation 'com.android.installreferrer:installreferrer:1.1.2'
}
- 앱 모듈의 build.gradle 파일에서, 아래 사항을 dependecies 블록을 추가해야합니다:
dependencies { compile project(":tenjin") }
Eclipse 통합
- 최신 Android SDK를 이곳에서 다운로드하세요.
- 프로젝트 루트 폴더에 libs 폴더를 만듭니다.
tenjin.jar
파일을 libs 폴더에 복사하십시오.tenjin.jar
파일을 마우스 오른쪽 버튼으로 클릭한 후, Build Path-> Add to Build Path를 선택하십시오.- 프로젝트에 Referenced Libraries라는 폴더가 생성됩니다.
- SDK 관리자에서 Google의 Android 지원 저장소, Android 지원 라이브러리, Google Play 서비스 및 Google 저장소 SDK를 설치합니다. Google은 아직 설정하지 않았을 경우, 이를 효과적으로 구성하는 방법에 대해 설명합니다.
Code 통합:
- Tenjin 조직 탭에서 API_KEY를 가져오세요.
- 주 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에 거래 이벤트를 보내는 방법에는 두 가지가 있습니다.
- 영수증 유효성 확인 - Tenjin은 귀하의 영수증 확인을 해줄 수 있습니다. 중요: 앱의 public key를 Tenjin 대시보드> Android 앱> Edit(수정)에 추가해야합니다. Google Play 개발자 콘솔> 앱 선택> 개발 도구> 서비스 및 API에서 Base64로 인코딩 된 RSA public key를 검색할 수 있습니다. Public Key를 앱의 Tenjin 대시보드에 입력하면, 아래의 Tenjin SDK 방법을 사용할 수 있습니다:
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 유효성 검사가 작동하는지 확인할 수 있습니다. 실시간 이벤트가 아래와 같이 나타납니다:
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
가 작동하는지 테스트하려면 다음을 수행하세요:
- 위 초기화 지침서대로 진행하십시오
./adb shell
를 오픈하세요.adb
가 홈 디렉토리에 없으면 Android SDK 폴더에서 찾으십시오- 앱 실행
- IDE에서
REF
태그를 필터링하십시오 - 다음을 실행 및 테스트:
이것을 테스트한 후, IDE 콘솔에서am broadcast -a com.android.vending.INSTALL_REFERRER -n <com.your.apppackage>/com.tenjin.android.TenjinReferrerReceiver --es "referrer" "ai=test&gclid=click_test"
referrer
에 전달된 값의 출력을 확인해야 합니다. 위의 경우 다음과 같이 표시됩니다:
ai=test&gclid=click_test