Androidクイックスタート

重要な注意点:次のクイックスタートは全てのTUNE開発者に適用されます。Android 4.11.0以降のリリースでは、Smartwhereが含まれており、既存のTUNEのお客様は、アップデートしていただく必要があります。

ネイティブAndroid™プラットフォーム用のTUNE SDKには、アプリケーションセッションおよびイベントロギング機能が用意されています。TUNE Android SDKは、単一のjava JARファイルの形式で利用可能で、簡単にAndroidプロジェクトへ組み込むことができます。当社SDKは、Android API 9以降が動作する全てのAndroidデバイスに対応しています。

このクイックスタートに従い、TUNE SDKをすぐに実装できます。TUNE SDKバージョン3.x~4.xからアプリをアップグレードする場合は、TUNE SDK 3.xから4.xへ移行するをご覧ください。TUNE SDK4.xから4.8以降にアップグレードする場合、TUNE SDK 4.8.0以降へ移行するを参照してください。

セッションおよびイベントを開始するには、Android用TUNE SDKをお使いのモバイルアプリに統合します。最初のActivityをレジュームした後に、Attribution Analyticsを利用してアプリ内イベントを計測可能です(購入、ゲームレベル、およびその他のユーザーエンゲージメントなど)。

注記:あなたのアプリがAndroid API 14以降をサポートしている場合は、Android API 14以降の開始を参照してください。

サポートするTMCソリューション

Android用のTUNE SDKは、次のTUNE Marketing Consoleソリューションをサポートしています:

  • Attribution Analytics
  • In-App Marketing - 追加のSDK設定が必要で、v4.0.0以上でサポートされます。
  • App Store Analytics

SDKをダウンロードする

Android用TUNE SDKのサイズは、約260KBです。TUNE SDKをダウンロードする前に、アプリをTUNEプラットフォームへ追加してください。またTUNE SDKは、セッションおよびイベント計測のためのライブラリのオープンソースフレームワークとしても提供しています。オープンソースSDKにアクセスするには、GitHubをご覧ください。

SDKをインストールする

TUNE SDKをアプリのdependencyとして追加します。SDKはGradle、またはJARでインストールできます。

Gradle

TUNE jCenterでインストールします:

  1. jCenterがGradleファイル内でリポジトリとして含められていることを確認してください:
    buildscript {
        repositories {
            [...]
            jcenter()
        }
        [...]
    }
  2. 次の行をGradleの依存関係に追加します:

これにより自動的にTUNE SDK(およびassociated dependencies)をプロジェクトに追加します。

JAR

TUNE SDK JARの配布でインストールします:

  1. TuneMarketingConsoleSDK-x.y.z.jarファイルをモバイルアプリのlibsディレクトリにコピーします。gradleを使用している場合、libsローカルフォルダをdependenciesに追加しても良いでしょう。
    compile fileTree(dir: 'libs', include: ['*.jar'])
  2. EventBusライブラリをインストールしてプロジェクトにインポートします。
    compile 'de.greenrobot:eventbus:2.4.0'
  3. Android Support V4ライブラリをインストールしてプロジェクトにインポートします。
    compile 'com.android.support:support-v4:24.+'
  4. Smartwhereをご利用になり、TuneをJARでインストールする場合は、Smartwhere Integrationをご参照ください。

 

コード変更

Google Play Services

Google Play Services SDKをインストールしてプロジェクトにインポートし、SDKによるGoogle Advertising IDの収集を可能にします。Gradleを使用している場合、dependenciesにベースメントライブラリだけを追加することができます:

compile 'com.google.android.gms:play-services-basement:10.0.0'

注記:既にフルのGoogle Play Services library('com.google.android.gms:play-services:10.0.0'をコンパイル)を含めている場合、-basementサブパッケージを追加する必要はありません。4.0.0以降のGoogle Play Serviceのどのバージョンも使用可能です。

ProGuard

ProGuardを使用している場合は、ProGuard設定ファイルの難読化からTUNEおよびGoogle Advertising IDクラスを削除します:

-keep public class com.tune.** { public *; }
-keep public class com.google.android.gms.ads.identifier.** { *; }
-keep public class com.google.android.gms.gcm.** { *; }
-keep public class com.google.android.gms.common.** { *; }
  
-keepclassmembers class ** {
    public void onEvent(**);
}

さらに最適化を行う場合にはAvoiding the Dalvik 65K Method Limitの記事をご参照ください。

Androidマニフェストファイル

AndroidManifest.xmlの変更は、android:nameフィールドを<application>タグに追加して行います。これで作成したカスタムのApplicationを使用できます(まだ設定されていない場合)。

以下のセクションをAndroidManifest.xmlファイルに追加します。

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>     
<application ... >        
    <receiver android:name="com.tune.TuneTracker">        
        <intent-filter>       
            <action android:name="com.android.vending.INSTALL_REFERRER" />        
        </intent-filter>
    </receiver>
</application>

注:複数のSDKがAndroidアプリに実装されている場合は、Multiple Android Install Referrersで説明されているように、複数のAndroid INSTALL_REFERRERレシーバーが存在する可能性があります。INSTALL_REFERRERが正しく収集されているか確認するには、Testing the Google Play Install Referrerをご覧ください。

 

TUNE SDKの初期化

新しいApplicationクラスを作成するか、または既存クラスを更新してTuneApplicationから拡張し、TUNE SDKを初期化します。

import com.tune.Tune;
import com.tune.ma.application.TuneApplication;
 
public class MyApplication extends TuneApplication {
    @Override
    public void onCreate() {
        super.onCreate();
        
        // Initialize TMC
        Tune.init(this, "your_advertiser_ID", "your_conversion_key");
    }
}

注:Applicationクラスが既に他のクラスに拡張されていた場合、その代わりにregisterActivityLifecycleCallbacksTuneActivityLifecycleCallbacksと一緒にApplicationのonCreateで呼び出します。

import com.tune.ma.application.TuneActivityLifecycleCallbacks;
 
public class MyApplication extends SomeOtherClass {
    @Override
    public void onCreate() {
        super.onCreate();

        if (Build.VERSION.SDK_INT >= 14) {
            registerActivityLifecycleCallbacks(new TuneActivityLifecycleCallbacks());
        }
    }
}

AndroidManifest.xmlの変更は、android:nameフィールドを<application>タグに追加して行います。これで作成したカスタムのApplicationを使用できます(まだ設定されていない場合)。

In-App Marketingを有効にする

In-App Marketingを有効にするには:

アプリケーションのonCreateで、追加の引数turnOnIAM  =  trueを指定してTune.init をコールします

public class MyApplication extends TuneApplication {
 
    @Override
    public void onCreate() {
        super.onCreate();
        Tune tune = Tune.init(this, TUNE_ADVERTISER_ID, TUNE_CONVERSION_KEY, true);
    }
}

Smartwhereを有効にする

TUNE Marketing Console (TMC)とSmartwhereの統合により、定義済みのジオフェンスを実装して、モバイルアプリの”店内”ユーザーのエンゲージメントの情報を提供することで、位置情報ベースのビジネスインテリジェンスを提供します。Smartwhereはバージョン4.11.1以降のTUNE SDKに含まれています。詳細については、Smartwhere Integrationの記事をご参照ください。

Smartwhereは最新のTUNE SDKに含まれていますが、デフォルトでは有効になっていません。Smartwhereを有効にするには、TUNEの初期化後に次のメソッドを呼び出します。

        // OPT-IN Enable SmartWhere
        Tune.getInstance().enableSmartWhere();

TUNEクライアントのイベントをオプションで、Smartwhereに渡すには、カスタムイベントに基づいて、近接イベントをトリガするようSmartwhereを有効にした後で次のコールを行います。

イベント共有

Smartwhereの詳細については、Smartwhere IntegrationSmartwhere In Store Event Tracking の記事をご参照ください。

アクティビティ

アプリがSDKバージョン14以前をサポートしている場合、各ActivitiesのTuneActivityを拡張するか、またはActivityクラスが既に他のクラスに拡張されている場合、Activityのそれぞれのライフサイクルイベント内にある、TuneActivity.onStart(Activity activity)TuneActivity.onResume(Activity activity)、およびTuneActivity.onStop(Activity activity)を代わりにコールします。

public class MainActivity extends SomeOtherActivityNotTuneActivity {
    @Override
    public void onStart() {
        supertanker();
        if (Build.VERSION.SDK_INT < 14) {
            TuneActivity.onStart(this);
        }
    }
  
    @Override
    public void onResume() {
        super.onResume();
        if (Build.VERSION.SDK_INT < 14) {
            TuneActivity.onResume(this);
        }
    }
  
    @Override
    public void onStop() {
        if (Build.VERSION.SDK_INT < 14) {
            TuneActivity.onStop(this);
        }
        super.onStop();
    }
}

ID

アプリをGoogle Playのみで配信する場合、本セクションを飛ばしてください。アプリをGoogle PlayだけでなくAndroidアプリストアでも入手可能にする場合、デバイス識別子としてANDROID_ID、Device ID、およびMACアドレスを引き続き収集します。onCreateでTMCを初期化した後に、これらの識別子を以下のセッター経由でTUNE SDKへと渡します。

Android ID
ANDROID_IDは、Google Advertising IDの収集に失敗する場合、フォールバックとして自動収集されます(Amazonデバイス、Google Play Serviceバージョン4.0以前)。Android IDをどのような場合にも常に収集するには、以下のコードを使用します。

import android.provider.Settings.Secure;
 
Tune.getInstance().setAndroidId(Secure.getString(getContentResolver(), Secure.ANDROID_ID));

Device ID
android.permission.READ_PHONE_STATEが必要です。

import android.telephony.TelephonyManager;
 
String deviceId = ((TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE)).getDeviceId();
Tune.getInstance().setDeviceId(deviceId);

MAC Address
android.permission.ACCESS_WIFI_STATEが必要です。

import android.net.wifi.WifiManager;
 
// WifiManager objects may be null
try {
    WifiManager wm = (WifiManager) getSystemService(Context.WIFI_SERVICE);
    Tune.getInstance().setMacAddress(wm.getConnectionInfo().getMacAddress());
} catch (NullPointerException e) {
}

留意事項

  • your_advertiser_ID」と「your_conversion_key」の値は、TUNEにモバイルアプリを追加したときに生成されるAdvertiser IDとConversion Keyです。Advertiser IDおよびConversion Keyの詳細は、Advertiser IDおよびConversion Keyを見つけるをご参照ください。
  • ディファードディープリンク機能は、iOS用TUNE SDKバージョン3.15.0以降で利用可能です。延期ディープリンクの詳細は、ディファードディープリンクを実装するをご覧ください。
  • アプリに既存ユーザー(既にアプリをインストールしている人)がいる場合、TUNEはそのユーザーを既存ユーザーとしてフラグを付けて、マーケティングパートナーにアトリビュートする事を防ぐいくつかのオプションを用意しています。既存ユーザーの移行の詳細については、SDK実装前の既存ユーザーの扱いをご覧ください。
  • アトリビューションをより均一かつ簡略にするには、Unique Identifiers for Attributionで説明される通り、デバイス識別子の収集を検討してください。
  • TUNE SDK v4.0以上では、自動的にユーザーデバイスのジオロケーションを収集し位置情報をベースにしたユーザーセグメントを改善します。アプリが位置情報へのアクセスを既に許可されている場合にのみ、収集されます。TUNE SDKはエンドユーザーに位置情報アクセス許可をリクエストしません。

テストおよびトラブルシューティング

モバイルアプリでTUNE SDK実装をテストするには、テスト環境を作らず、TUNEプラットフォームから直接行うことが可能です。モバイルアプリのテストをご覧ください。

イベントを計測する

モバイルアプリにTUNE SDKを実装してセッションを開始すると、registration(登録)やpurchase(購入)といった様々なアプリ内イベントを計測するよう設定できます。

アプリ内イベントのログと分析により、アプリの機能と広告戦略の両方を効率的に最適化できます。最も重要なのは、モバイルアプリでのユーザーの行動を理解することで、コストと継続率、エンゲージメント、および顧客生涯価値 (LTV) の比較が可能になります。これにより、効果的で収益性の高い広告キャンペーンを構築することが可能になります。

カスタムイベントを作成するには、Event Builder(イベントビルダー)の記事をご覧ください。

アプリ内イベント