インストール
Tealium for .NET MAUIのインストール方法を学びます。
Tealium .NET MAUI統合は、Tealium for iOSおよびTealium for Androidとインターフェースを持つクロスプラットフォームインターフェースと構成クラスを提供します。
この統合はTealium Xamarinからの移行です。詳細はTealium for Xamarinを参照してください。
サンプルアプリ
ライブラリ、トラッキング方法、およびベストプラクティスの実装について理解するために、サンプルアプリを使用します。
コードの取得
インストール
Visual Studioの組み込みNuGetパッケージマネージャを使用して、.NET MAUI用のTealiumライブラリを直接インストールします。
初期化
インスタンスマネージャ
クラスインスタンスをインスタンス化する前に、プロジェクトが適切なライブラリを参照していることを確認します。スレッドセーフなTealiumインスタンス管理を提供するTealiumInstanceManager
クラスの使用をお勧めします。
using Tealium.Droid;
//...
ITealiumInstanceManager instanceManager = new TealiumInstanceManager(new TealiumInstanceFactoryDroid(<myAndroidApplication>));
using Tealium.iOS;
//...
ITealiumInstanceManager instanceManager = new TealiumInstanceManager(new TealiumInstanceFactoryIOS());
構成
TealiumInstanceManager
を作成した後、アカウント詳細と構成構成を含むTealiumConfig
オブジェクトを作成します:
TealiumConfig tealConfig = new TealiumConfig(
"ACCOUNT",
"PROFILE",
Tealium.Environment.Dev,
new List<Dispatchers> {
Dispatchers.Collect, Dispatchers.RemoteCommands
},
new List<Collectors> {
Collectors.LifeCycle, Collectors.AppData
}
);
構成パラメータの完全なリストについては、API: TealiumConfigを参照してください。
インスタンス
TealiumConfig
オブジェクトを作成した後、TealiumInstanceManager
を使用してTealiumインスタンスを作成します:
ITealium tealium = instanceManager.CreateInstance(tealConfig, (tealium) =>
{
// インスタンスが準備完了したときのコールバック。
// 例
if (tealium != null)
{
// 成功
}
else
{
// 失敗
}
});
リモートコマンド
ベンダーSDK内のネイティブコードをトリガーするためにリモートコマンドを使用します。.NET MAUIでは、IRemoteCommand
インターフェースとDelegateRemoteCommand
という名前の組み込み実装を使用してリモートコマンドがサポートされています。
Tealium iQのカスタムコマンドタグで動作するリモートコマンドを作成するには、コマンドIDと説明を追加パラメータなしで渡し、レスポンスハンドラを定義します。resp.Payload
のコマンドのデータペイロードにアクセスします。
ローカルファイルまたはリモートURLオプションを使用してリモートコマンドを作成するには、それぞれpath
またはurl
パラメータを追加します:
var myCommand = new DelegateRemoteCommand("logger", "Logger command.", path: "FILENAME.json")
{
HandleResponseDelegate = (DelegateRemoteCommand cmd, IRemoteCommandResponse resp) =>
{
var payload = resp.Payload;
System.Diagnostics.Debug.WriteLine($"Command Payload: {payload}");
if (payload.GetValueForKey<Boolean>("frequent_visitor"))
{
// take action
}
}
};
より高度なソリューションについては、独自のクラスでIRemoteCommand
インターフェースを実装します。
public class MyRemoteCommand : IRemoteCommand
{
private readonly string path;
private readonly string url;
public MyRemoteCommand(string path, string url)
{
this.path = path;
this.url = url;
}
public string CommandId => "logger";
public string Description => "Logger command";
// Sets the path to a local JSON mappings file
public string Path => path;
// Sets the url to a remote JSON mappings file
public string Url => url;
public void Dispose()
{
// tidy up resources
}
public void HandleResponse(IRemoteCommandResponse response)
{
var payload = response.Payload;
System.Diagnostics.Debug.WriteLine($"Command Payload: {payload}");
if (payload.GetValueForKey<Boolean>("frequent_visitor"))
{
// take action
}
}
}
// Tealium iQ mapped Remote Command
var iqCommand = new MyRemoteCommand(null, null);
// Locally mapped Remote Command
var localCommand = new MyRemoteCommand("FILENAME.json", null);
// Remotely mapped Remote Command
var remoteCommand = new MyRemoteCommand(null, "https://tags.tiqcdn.com/dle/ACCOUNT/PROFILE/FILENAME.json");
リモートコマンドを使用するには、TealiumConfig
オブジェクトにDispatcher.RemoteCommands
を含める必要があります。その後、リモートコマンドをTealiumConfig
オブジェクトに追加するか、TealiumインスタンスでAddRemoteCommand()
を呼び出します。
TealiumConfig
を使用する場合:
TealiumConfig config = new TealiumConfig(
"ACCOUNT",
"PROFILE",
Tealium.Environment.Dev,
new List<Dispatchers> {
Dispatchers.Collect, Dispatchers.RemoteCommands
},
remoteCommands: new List<IRemoteCommand>
{
myCommand
}
);
Tealiumインスタンスを使用する場合:
InstanceManager.CreateInstance(config, (tealium) =>
{
if (tealium != null)
{
tealium.AddRemoteCommand(myCommand);
}
});
デリゲートメソッド
Tealium SDK内の処理ロジックにコードを注入する5つのデリゲートメソッドがあります:
デリゲートメソッド | 説明 |
---|---|
DelegateDispatchValidator() |
既存のディスパッチがドロップまたはキューに入れられるかどうかを決定するブール値を返す2つのデリゲートメソッド[ShouldDropDispatchDelegate() , ShouldQueueDispatchDelegate() ]を提供します。ユーザーがオフラインになる可能性があるアプリ内のステップがある場合や、独自のバッチ処理ロジックを書きたい場合に使用します。 |
DispatchSentDelegateEventListener() |
ディスパッチが送信されたときに呼び出されます。 |
DispatchQueuedDelegateEventListener() |
ディスパッチがキューに入れられたときに呼び出されます。 |
WebViewReadyDelegateEventListener() |
タグ管理モジュールを使用している場合、非表示のウェブビューが完全にロードされて準備ができたときに呼び出されます。 |
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;
}
最終更新日 :: 2024年November月6日