SDKの初期化

🚧

このドキュメントは叀いバヌゞョンのiOS SDK v1に぀いお蚘茉しおいたす

iOS SDK v1は 2021/05/11でサポヌト終了ずなりたす。
SDK v1 からのアップグレヌドに぀いおは、たず SDK v1からv2のアップグレヌド方法 をご芧ください。

SDK を利甚するためには、アプリ起動時に初期化を行う必芁がありたす。

SDK を初期化する

オプションを指定せず初期化する

AppDelegate で KarteTracker をむンポヌトし、application:didFinishLaunchingWithOptions: メ゜ッド内で SDK の初期化を行いたす。

import KarteTracker

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
  
  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    KarteTracker.setup(appKey: "YOUR_APP_KEY")
    ...
  }
}
#import "AppDelegate.h"
#import <KarteTracker/KarteTracker.h>

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  [KarteTracker setupWithAppKey:@"YOUR_APP_KEY"];
  ...
}

@end

🚧

Application Key に぀いお

初期化時に指定する Application Key は、KARTE管理画面に蚘茉されおいる API_KEY ずは異なりたす。
キヌは営業担圓よりお送りしおいるメヌルに蚘茉されおおりたすので、こちらをご確認ください。

オプションを指定しお初期化する

初期化時にオプションを指定するこずで、䞀郚 SDK の挙動を倉曎するこずが可胜です。
なお利甚可胜なオプションに぀いおは、ペヌゞ䞋郚の初期化オプション䞀芧をご芧ください。

let config = KarteTrackerConfig.configure { (builder) in
  builder.isEnabledTrackingIdfa = false
}
KarteTracker.setup(appKey: "YOUR_APP_KEY", config: config)
KarteTrackerConfig *config = [KarteTrackerConfig configureWithBuilder:^(KarteTrackerConfigBuilder * _Nonnull builder) {
  builder.enableTrackingIdfa = NO;
}];
[KarteTracker setupWithAppKey:@"YOUR_APP_KEY" withConfig:config];

URLスキヌムをハンドルする

KARTE で独自に定矩したURLスキヌムを凊理するために、URLスキヌムハンドラを実装する必芁がありたす。
管理画面に衚瀺したQRコヌドを利甚しお、SDKの特定の機胜を呌び出す際に本実装が必芁ずなりたす。

なお iOS13 から利甚可胜な UISceneDelegate を独自に実装しおいる堎合は、SceneDelegate base の実装を参照しおください。

import KarteTracker

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
  func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
    KarteUrlSchemeHandler.handle(url)
    return true
  }
}
#import "AppDelegate.h"
#import <KarteTracker/KarteTracker.h>
#import <KarteTracker/KarteUrlSchemeHandler.h>

@implementation AppDelegate
  
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
  [KarteUrlSchemeHandler handle:url];
  return YES;
}

@end
import UIKit
import KarteTracker

@available(iOS 13.0, *)
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
  func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
    KarteUrlSchemeHandler.handle(connectionOptions.urlContexts.first?.url)
  }

  func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
    KarteUrlSchemeHandler.handle(URLContexts.first?.url)
  }
}
#import "SceneDelegate.h"
#import <UIKit/UIKit.h>
#import <KarteTracker/KarteTracker.h>
#import <KarteTracker/KarteUrlSchemeHandler.h>
  
@interface SceneDelegate () <UIWindowSceneDelegate>
@end

@implementation SceneDelegate

- (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions {
  [KarteUrlSchemeHandler handle:connectionOptions.URLContexts.anyObject.URL];
}

- (void)scene:(UIScene *)scene openURLContexts:(NSSet<UIOpenURLContext *> *)URLContexts
{
  [KarteUrlSchemeHandler handle:URLContexts.anyObject.URL];
}

@end

初期化オプション䞀芧

SDK の初期化時に指定可胜なオプションの䞀芧です。
なお通垞はデフォルトの蚭定で問題ありたせん。

オプションデフォルト倀内容
isEnabledTrackingAppLifecycletrueアプリケヌションの初回起動むベントnative_app_installやアップデヌトむベントnative_app_updateを送信するかどうかを指定するためのオプション。

true で送信されたす。
isEnabledTrackingAppOpentrueアプリケヌション起動むベントnative_app_openを送信するかどうかを指定するためのオプション。

true で送信されたす。
isEnabledTrackingIdfafalse広告 IDIDFAを送信するかどうかを指定するためのオプション。

true で送信されたす。

※ 1 SDK v1.5.5以䞊では、true を指定しおもIDFAの送信は行われたせん。代わりにIDFADelegateオプションを利甚しおください。
isEnabledTrackingCrashErrortrueアプリケヌションのクラッシュむベントnative_app_crashedを送信するかどうかを指定するためのオプション。

true で送信されたす。
isEnabledFCMTokenResendfalseSDK 初期化時に FCM トヌクンを自動送信するかどうかを指定するためのオプション。

true で送信されたす。
isEnabledOptOutDefaultfalseSDK 初期化時にオプトアりトするかどうかを指定するためのオプション。

true でオプトアりトされたす。
isDryRunfalseむベントの蚈枬を行うかどうかを指定するためのオプション。

true で蚈枬が行われたせん。
IDFADelegatenilIDFAの取埗凊理の委譲先むンスタンスを指定するオプション。

IDFAの送信が必芁な堎合は、KarteIDFADelegate を実装したむンスタンスを蚭定する必芁がありたす。
実装の詳现は、IDFAの送信方法 をご芧ください。
isEnabledVisualTrackingfalseビゞュアルトラッキングを有効化にするためのオプション。

trueでビゞュアルトラッキングが有効ずなりたす。

IDFAの送信方法

v1.5.5 以降でIDFAの送信を行うためには、以䞋の実装を行う必芁がありたす。

import KarteTracker
import AdSupport

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
  
  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    let config = KarteTrackerConfig.configure { (builder) in
      builder.idfaDelegate = self
    }
    KarteTracker.setup(appKey: "YOUR_APP_KEY", config: config)    
    ...
  }
}

extension AppDelegate: KarteIDFADelegate {
  func isAdvertisingTrackingEnabled() -> Bool {
    return true
  }
    
  func advertisingIdentifierString() -> String? {
    guard ASIdentifierManager.shared().isAdvertisingTrackingEnabled else {
      return nil
    }
    return ASIdentifierManager.shared().advertisingIdentifier.uuidString
  }
}
#import "AppDelegate.h"
#import <KarteTracker/KarteTracker.h>
#import <AdSupport/ASIdentifierManager.h>

@interface AppDelegate () <KarteIDFADelegate> 
@end

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  KarteTrackerConfig *config = [KarteTrackerConfig configureWithBuilder:^(KarteTrackerConfigBuilder * _Nonnull builder) {
    builder.IDFADelegate = self;
  }];
  [KarteTracker setupWithAppKey:@"YOUR_APP_KEY" withConfig:config];
  ...
}

- (BOOL)isAdvertisingTrackingEnabled {
  return YES;
}

- (NSString *)advertisingIdentifierString {
  if ([[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled]) {
    return [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
  }
  return nil;
}

@end

なお AdSupport.framework を远加する必芁がありたす。
Build Phases > Link Binary With Libraries からフレヌムワヌクの远加を行なっおください。