アプリ拡張
アプリ拡張について学びます。
今日の拡張
今日の拡張は、デバイスの「今日」画面に表示されるウィジェットです。これらのアプリ拡張は、OSによって非常に限られたリソースが許可されており、メモリや処理能力を多く消費すると終了される可能性があります。
Today Extension内でSwiftライブラリを通常通り使用しますが、メモリの使用量を抑えるために、データを送信するためにCollectモジュールのみを使用することをお勧めします。Tag Managementモジュールはリソースを大量に消費し、ウィジェットが終了する原因となる可能性があります。
選択したオプションに関係なく、ウィジェットが期待通りに動作することを確認するために、十分にテストを行うことが重要です。ウィジェットにTealiumモジュールを少なく埋め込むことで、パフォーマンスが向上し、メモリの使用量が減少します。
watchOS拡張と独立したアプリ
すでにTealiumがインストールされているiOSプロジェクトにwatchOSターゲットを追加する場合は、必要なモジュール、TealiumHelper
(または他の分析マネージャクラス)をWatch Extensionターゲットにインポートし、必要なトラッキング呼び出しを追加します。Tag ManagementモジュールはWKWebView
への依存性のため、watchOSではサポートされていません。Collectモジュールは、watchOSでのデータ収集の唯一のサポートされている方法です。
Tealiumを利用したwatchOS拡張ターゲットの例として、TealiumSwiftExampleを参照してください。スタンドアロンのwatchOSアプリの作成も同様です。各Tealium###.framework
をwatchOS拡張ターゲットに割り当て、TealiumHelper
クラスを追加します。
または、WatchConnectivty
フレームワークのWCSession
APIを使用して、トラッキング呼び出しを送るたびにホストiOSアプリにメッセージを送信します。これにより、Tag Managementモジュールを使用している場合にイベントを追跡できますが、独立したwatchOSアプリではオプションになりません。
WidgetKitとApp Clips
現在のiOSアプリにWidgetKitまたはApp Clip拡張を追加する場合は、iOSのTealiumHelper
(または他の分析マネージャクラス)をWidgetKitまたはApp Clipターゲットと共有します。次に、WidgetKitとApp ClipのViews
内にトラッキング呼び出しを追加して、WidgetまたはApp ClipからTealiumにイベントを送信します。例として、TealiumSwiftExampleを参照してください。
アプリ拡張のVisitor ID
アプリ拡張は、ホストiOSアプリ(利用可能な場合)とは共有されない独自のサンドボックス化されたデータストレージを持っています。そのため、デフォルトでは、アプリが初めて起動されたときに新しい永続的な訪問IDが生成されます。
iOSアプリ、Todayウィジェット、watchOS拡張があるときに、同じ訪問に対して3つの異なる訪問IDが生成される問題が発生します。これは、訪問のスティッチングを使用していて、アプリユーザーの既知の訪問IDがすでにある場合には問題ではありません。アプリとその拡張機能間で訪問IDを同期させることで、この状況を避けます。これは、Tealiumを初期化するときにアプリ拡張のTealiumConfig
オブジェクトに現在のTealium第一者訪問IDを渡すことで行われます。IDは保存され、アプリの将来の起動時に再生成されません。
class TealiumHelper {
var tealium: Tealium?
// ...
// iOSアプリのTealium Swiftライブラリから現在の訪問IDを返す
func getVisitorId() -> String? {
return self.tealium.visitorId
}
// アプリ拡張で、iOSアプリから取得したIDをconfigオブジェクトに渡す
private func initTealium(existingVisitorId id: String) {
let config = TealiumConfig(account: "ACCOUNT",
profile: "PROFILE",
environment: "ENVIRONMENT",
datasource: "DATASOURCE")
// 既存のIDは、アプリ拡張の第一者IDとして使用されます
config.existingVisitorId = id
self.tealium = Tealium(config: config)
}
}
または、訪問IDを中央で生成し、初期化時にそれぞれのTealiumインスタンスに渡します。UUIDの使用を推奨します。
あなたの第一者訪問IDとして、単純なID(例えば、メールアドレス)を使用しないでください。
最終更新日 :: 2024年May月15日