インストール
要件
- Android Studio
- Android(KitKat/4.4以降/APIレベル19以上)
- Tealium iQモバイルプロファイル
- Tealium Customer Data Hubアカウント
サンプルアプリ
当社のライブラリ、トラッキングメソッド、ベストプラクティスの実装に精通していただけるよう、Android向けTealiumのサンプルアプリをご確認いただけるようになっています。
コードの取得
Tealium Androidライブラリをクローンします。ライブラリをダウンロードせずクローンすることで、今後のリリースに向けたアップデートがしやすくなります。
Android向けTealiumクラスおよびメソッドの完全なリストについては、Tealium APIを参照してください。
インストール
Android向けTealium SDKをMavenによって、または手動でインストールします。
Maven
Tealium for AndroidライブラリをMavenによってインストールするには(推奨):
Tealium MavenのURLを、プロジェクトの最上位にある
build.gradle
ファイルに追加します。allprojects { repositories { jcenter() maven { url "https://maven.tealiumiq.com/android/releases/" } } }
プロジェクトモジュールの
build.gradle
ファイルに、以下のようにMavenの依存関係を追加します。dependencies { implementation 'com.tealium:library:5.6.1' }
手動
Tealium for Androidライブラリを手動でインストールするには:
flatDir
をプロジェクトのルートにあるbuild.gradle
ファイルに追加します。allprojects { repositories { jcenter() flatDir { dirs 'libs' } } }
Add
tealium-5.x.x.aar
to<PROJECT_ROOT>/<MODULE>/libs
.Tealiumライブラリの依存関係を
build.gradle
ファイルに追加します。dependencies { implementation(name:'tealium-5.6.1', ext:'aar') }
初期化
初期化するには、次の変更をアプリのonCreate()
メソッドに加えます。
Tealium.Config
オブジェクトのインスタンスを作成します。Tealium.Config tealConfig = Tealium.Config.create( this, "ACCOUNT", "PROFILE", "ENVIRONMENT");
追加の必要なメソッド(
setDatasourceId()
など)を呼び出して、構成データを設定します。tealConfig.setDatasourceId("DATASOURCE_ID");
setupInstance()
メソッドを呼び出して、アプリのライフサイクルインスタンスを設定します。LifeCycle.setupInstance("INSTANCE_NAME", config, true);
createInstance()
メソッドを呼び出してTealiumインスタンスを作成し、構成インスタンスをコンストラクタ引数として渡します。tealium = Tealium.createInstance("INSTANCE_NAME", tealConfig);
Collectがバージョン5.5.1以降で有効になっている場合、データはTealium.Config
オブジェクトで提供されるプロファイルに送信されます。それより前のバージョンでは、データはデフォルトのプロファイル("main"
)に送信されます。
ログレベル
ログレベルはリモート公開設定により管理され、初期化の際に設定された環境から推測されます。
バージョン5.3.1以降、次の例に示すようにsetForceOverrideLogLevel()
メソッドを使用して、ログレベルをローカルでオーバーライドすることができます。
tealConfig.setForceOverrideLogLevel("LOG_LEVEL");
Cookie
モバイルプロファイルでTag Managementを有効にしている場合は、Cookieを有効にする必要があります。
初期化ステートメントの後に次のコードを追加して、Cookie管理をアクティベートします。
config.getEventListeners().add(createCookieEnablerListener());
private static WebViewCreatedListener createCookieEnablerListener() {
return new WebViewCreatedListener() {
@Override
public void onWebViewCreated(WebView webView) {
final CookieManager mgr = CookieManager.getInstance();
// Accept all cookies
mgr.setAcceptCookie(true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
mgr.setAcceptThirdPartyCookies(webView, true);
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR1) {
CookieManager.setAcceptFileSchemeCookies(true);
}
Log.d(TAG, "WebView " + webView + " created and cookies enabled.");
}
};
}
このコードを使用すると、タグ管理Webview
は、ファーストパーティ、サードパーティ、およびファイルスキームのCookieを[受け入れる](https://developer.android.com/reference/android/webkit/CookieManager.html#acceptCookie()ことができます。
バージョン5.1.0以降では、CookieManager
がデフォルトで有効になっています。バージョン5.0.4以前では、CookieManager
がデフォルトで無効になっています。
イベントバッチ処理
イベントバッチ処理を有効にするには、モバイル公開設定に移動して、バッチサイズを1より大きい値に設定します。キュー内のイベントの数がバッチサイズと等しくなると、イベントがディスパッチされます。
イベントのディスパッチは、_バッチタイムアウト_設定に基づいてトリガーすることもできます。この設定により、バッチサイズに達していない場合でも、一定の時間が経過したときにキューがディスパッチされるようになります。バッチタイムアウトを設定するには、メソッドsetSecondsBeforeBatchTimeout()
を呼び出します。
バッチサイズとバッチタイムアウトチェックをオーバーライドするには、メソッドrequestFlush()
を呼び出してキューを即座にフラッシュします。
デバイスがオフラインであるか、Consent Managerが有効になっている場合は、フラッシュオーバーライドを行っても効果がありません。
マルチプロセスアプリ
Android 9以降のマルチプロセスアプリケーション
Android 9では、マルチプロセスアプリケーションにおけるWebView
データディレクトリに関する挙動が変更されました。この変更により、複数のWebView
がマルチプロセスで1つのデータディレクトリを共有しなくなりました。通常は、1つのWebView
を共通して使用するActivityはいずれも、同一のプロセスで実行されます。
2つ以上のプロセスにおいてより多くのWebView
のインスタンスを実装し、TealiumのTag Managementソリューションを使用する場合は、アプリがクラッシュしないよう、Tealiumのインスタンスを作成する前にsetDataDirectorySuffix
を呼び出すことを推奨しています。
TealiumのTag ManagementのCookieとウェブデータにアクセスする必要がある場合は、CookieManager
クラスのgetCookie()
およびsetCookie()
メソッドを使用して、プロセス間でコピーします。
その他の読み物:『プロセスで分けられたウェブベース データ ディレクトリ』