インストール
Tealium for Xamarin 1.x のインストールについて説明します。
TealiumのXamarin統合には、一連のクロスプラットフォームインターフェイスと、ネイティブのTealium iOSおよびAndroid SDKと連携するための構成クラスが用意されています。
サンプルアプリ
当社のライブラリ、トラッキングメソッド、ベストプラクティスの実装に精通していただけるよう、Xamarinのサンプルアプリをダウンロードできるようになっています。
コードの取得
利用可能なDLL
Xamarin統合では、以下のダイナミックリンクライブラリ(DLL)が利用可能です。
Tealium.Common.dll
このDLLには、Xamarinアプリケーション内のすべてのプロジェクトで使用するクロスプラットフォームコード、インターフェイス、共通コードが含まれています。このDLLを、共通プロジェクトとプラットフォーム固有のプロジェクトの両方に、リファレンスとして追加します。- 抽象DLL
プラットフォーム固有のプロジェクト内のネイティブTealium SDK向けにC# APIラッパーを作成するための抽象DLLが含まれています。これらのライブラリには、Tealium共通ライブラリにより提供されているインターフェイスおよび抽象クラス向けの、プラットフォーム固有の具象クラスの実装が含まれています。すべてのクロスプラットフォームロジックを共通ライブラリに基づいてコーディングします。
Tealium.Droid.dll
– Androidモバイルプラットフォーム用Tealium.iOS.dll
– Appleモバイルプラットフォーム用
抽象DLLにより参照される、各モバイルプラットフォームに固有のDLLもあります。プラットフォームDLLはバインディングライブラリであるため、ネイティブSDKを埋め込んであります。プラットフォームDLLが提供する自動生成ラッパーコードにより、ネイティブSDKと直接やりとりできるため、必要に応じてスタンドアロンで使用することも可能です。
Tealium.Platform.Droid.dll
Tealium.Platform.iOS.dll
バインディングライブラリは、単独で使用可能です。ライブラリが自動的に生成されるということは、プラットフォームごとに大きく異なる名前空間ができることになり、開発作業が必要以上に複雑になります。代わりにCommon
ライブラリや、プラットフォーム固有の抽象ライブラリを利用することを推奨しています。
ライフサイクルモジュール
プラットフォームに関連するDLLを参照することで、任意のライフサイクルモジュールを利用できます。これらはネイティブ同等のSDKのためのバインディングライブラリです。
Tealium.Platform.Lifecycle.Droid.dll
Tealium.Platform.Lifecycle.iOS.dll
Androidの例
以下の例では、典型的なXamarinベースのアプリのSharedプロジェクトおよびAndroidプラットフォーム固有のプロジェクトを示しています。
この例で示されているように、SharedプロジェクトではTealium.Common.dll
のみが参照されているのに対し、Android固有のプロジェクトでは以下のすべてが参照されています。
Tealium.Common.dll
Tealium.Droid.dll
Tealium.Platform.Droid.dll
Tealium.Platform.Lifecycle.Droid.dll
インストール
Xamarin向けTealiumライブラリをインストールするには、まず、プロジェクトが適切なライブラリを参照していることを確認します。追加構成が不要で、スレッドセーフなTealiumインスタンスの管理に対応した、TealiumInstanceManager
クラスを使用することをお勧めします。
using Tealium.Droid;
//...
ITealiumInstanceManager instanceManager = new TealiumInstanceManager(new TealiumInstanceFactoryDroid(<myAndroidApplication>));
//Optional Lifecycle Module enablement - must reference Tealium.Platform.Lifecycle.Droid.dll
TealiumLifecycleManager.SetLifecycleAutoTracking = TealiumDroid.Lifecycle.TealiumLifecycleControlDelegation.SetLifecycleAutoTracking;
using Tealium.iOS;
//...
ITealiumInstanceManager instanceManager = new TealiumInstanceManager(new TealiumInstanceFactoryIOS());
//Optional Lifecycle Module enablement - must reference Tealium.Platform.Lifecycle.iOS.dll
TealiumLifecycleManager.SetLifecycleAutoTracking =TealiumIOS.Lifecycle.TealiumLifecycleControlDelegation.SetLifecycleAutoTracking;
NuGet
Xamarin向けTealiumライブラリをNuGetパッケージとしてインストールするには、組み込みのNuGetパッケージマネージャを使用してVisual Studioから直接インストールします。Tealium NuGetリストの詳細については、こちらを参照してください。
初期化
TealiumInstanceManager
が作成されたら、ネイティブSDKと同様にTealium
インスタンスの作成を開始します。TealiumInstanceManager
は、2つ以上のTealiumプロファイルのデータをトラッキングする必要がある場合に、複数の名前付きインスタンスへのアクセスを提供するMultitonパターンです。
新しいインスタンスを作成するには、まず、アカウントの詳細とともにTealiumConfig
オブジェクトを作成します。
TealiumConfig tealConfig
= new TealiumConfig(instance, account, profile, environment, lifecycleAutoTracking);
パラメータ | 型 | 説明 | 例 |
---|---|---|---|
instance |
String |
TealiumインスタンスID | "tealium_main" |
account |
String |
Tealiumアカウントの名前 | "companyXYZ" |
profile |
String |
Tealiumプロファイルの名前 | "main" |
environment |
String |
Tealium環境の名前 | ["dev" , "qa" , "prod" ] |
lifecycleAutoTracking |
Boolean |
(オプション)ライフサイクル自動トラッキング(デフォルト:true ) |
true`, `false |
次に、TealiumInstanceManager
を使用してTealiumインスタンスを作成します。Tealiumインスタンスはイベントのトラッキングに使用します。
ITealium tealium = instanceManager.CreateInstance(tealConfig);
高度な構成
TealiumConfig
クラスにはオーバーロードされたコンストラクタがあり、そこでオプションのパラメータを指定することによって、Tealium Mobile SDKのより高度な機能の有効と無効を切り替えられるようになっています。すべてのお客様がこれらの機能を必要とするわけではないため、これらのパラメータは任意となっています。
リモートコマンド
モバイル内のイベントの大部分は、データ収集サーバーに送信されてコネクタで処理されるか、タグ管理ウェブ ビューで処理されてベンダ ータグをトリガーします。リモート コマンドは、 IRemoteCommand
インターフェイスを通じてネイティブコードをトリガーする追加の柔軟性を提供します。
以下のサンプルコードでは、コマンドID(TealiumConsts.REMOTE_COMMAND_ID
に構成)を出力しています。この例を使用することで、このセットアップに必要な関連TagBridge Custom Commandタグで構成されているとおり、データの完全なペイロードにアクセスすることもできます。
static List<IRemoteCommand> SetupRemoteCommands()
{
var command = new DelegateRemoteCommand(TealiumConsts.REMOTE_COMMAND_ID, "Test command " + TealiumConsts.REMOTE_COMMAND_ID) {
HandleResponseDelegate = (DelegateRemoteCommand cmd,
IRemoteCommandResponse resp) => {
System.Diagnostics.Debug.WriteLine($"Handling command {cmd.CommandId}...");
}
};
return new List<IRemoteCommand>() { command };
}
リモートコマンドの詳細については、こちらを参照してください。
デリゲートメソッド
Tealium SDK内でコードを処理ロジックに注入できるデリゲートメソッドが5つあります。
Delegated メソッド | 説明 |
---|---|
DelegateDispatchValidator() |
2つのデリゲートメソッド[ShouldDropDispatchDelegate() 、ShouldQueueDispatchDelegate() ]を提供します。ここで、既存のディスパッチが削除されるかキューに入れられるかは、ブール値の戻り値によって決まります。ユーザーがオフラインである可能性があることがわかっているステップがアプリ内にある場合、または独自のバッチ処理ロジックを具体的に記述する必要がある場合に役立ちます。 |
DispatchSentDelegateEventListener() |
ディスパッチが送信されるたびに呼び出されます |
DispatchQueuedDelegateEventListener() |
ディスパッチがキューに登録されるたびに呼び出されます |
WebViewReadyDelegateEventListener() |
Tag Managementモジュールを使用している場合に、WebViewが完全に読み込まれて準備が整った時点で呼び出されます |
SettingsPublishedDelegateEventListener() |
取得した一連の公開構成に更新があったときに呼び出されます |
以下はデリゲートメソッドの使用例です。
static TealiumAdvancedConfig SetupAdvancedConfig() {
DelegateDispatchValidator validator = new DelegateDispatchValidator() {
ShouldDropDispatchDelegate = (ITealium arg1, IDispatch arg2) => {
System.Diagnostics.Debug.WriteLine("Inside ShouldDropDispatchDelegate!");
return false;
},
ShouldQueueDispatchDelegate = (ITealium arg1, IDispatch arg2, bool shouldQueue) => {
System.Diagnostics.Debug.WriteLine("Inside ShouldQueueDispatchDelegate!");
return shouldQueue;
}
};
DispatchSentDelegateEventListener sendingListener = new DispatchSentDelegateEventListener() {
DispatchSent = (tealium, dispatch) => {
System.Diagnostics.Debug.WriteLine("Inside DispatchSent!");
dispatch.PutString("KeyAddedBySendListener", "Value added by sending listener.");
}
};
DispatchQueuedDelegateEventListener queuingListener = new DispatchQueuedDelegateEventListener() {
DispatchQueued = (tealium, dispatch) => {
System.Diagnostics.Debug.WriteLine("Inside DispatchQueued!");
dispatch.PutString("KeyAddedByQueuedListener", "Value added by queuing listener.");
}
};
WebViewReadyDelegateEventListener webViewListener = new WebViewReadyDelegateEventListener() {
WebViewReady = (tealium, webView) => {
System.Diagnostics.Debug.WriteLine("Inside WebViewReady!");
}
};
SettingsPublishedDelegateEventListener settingsListener = new SettingsPublishedDelegateEventListener() {
SettingsPublished = (tealium) => {
System.Diagnostics.Debug.WriteLine("Inside SettingsPublished!");
}
};
TealiumAdvancedConfig advConfig = new TealiumAdvancedConfig(validator,
sendingListener, queuingListener, webViewListener, settingsListener);
return advConfig;
}
リソース
以下のリソースは、TealiumのAndroidおよびiOSライブラリの追加に関するさまざまなXamarinドキュメントへのリンクです。
最終更新日 :: 2024年April月30日