Singular iOS SDK | |
---|---|
ダウンロード | Singular iOS SDK version 11.0.7 |
互換性 |
iOS 8+ |
サンプルアプリ | ベストプラクティスに基づくSDK全体実装方法確認の為に、サンプルアプリをご参照ください。 |
実装ガイド |
Uninstallトラッキング
注意: Uninstallトラッキングはエンタプライズ顧客のみ提供されます。
アプリでUninstallトラッキングを活性化するには下記の手順に順ってください。
- Singular内のアプリ設定にてUnistallトラッキングが活性化されたか確認ください。詳しい内容は Setting Up iOS Install Tracking 文書をご参照ください。
- アプリ内にて registerDeviceTokenForUninstall又は registerDeviceToken メソッドを使用し、Apple Push Notification Service(APNS)から変換されたデバイストークンを渡します。このコードは必ずSingularのStartSession 前に呼び出される必要が有ります。
アプリが現在Push Notificationをサポートしてない場合には Appleのガイドをご参照ください。
注意:
- 既に既存のPush Notification実装によりデバイストークンを取得している場合には、その値をご使用ください。
- APNSトークンは主にbinaryデータでAPNSから取得したトークンを渡してください。もしアプリ内で次のような64字の文字列形態(b0adf7c9730763f88e1a048e28c68a9f806ed032fb522debff5bfba010a9b052)にて変換してご使用中の場合にはNSDataにて変換して渡してください。
registerDeviceTokenForUninstall メソッド (Objective-C) | |
---|---|
定義 | APNSから取得したデバイストークンを渡す |
メソッド | + (void)registerDeviceTokenForUninstall:(NSData*)deviceToken; |
使用例 |
|
Singular SDK JavaScriptインタフェース
アプリ内のjavaScriptコードからSingularを呼び出しを必要とする場合、 JavaScript インタフェースをご使用頂けます。
例えば、JavaScriptインタフェースを設定した場合、次のように JavaScriptコードからSingularにイベントを転送する事が可能です。
Singular.event('event');
Singular.event('test', JSON.stringify({"a1":"bar",
"a2":"boo", "a3":"baz"}));
このインタフェースは次のようなSDKメソッドを支援します。
- setCustomUserID
- unsetCustomUserID
- event
- revenue
Enabling the JavaScript Interface
JavaScriptインタフェース活性化
注意: AppleはiOS 8.0以上からアプリにウェブコンテンツを追加する際、WKWebView를を使用する事を推薦している為 UIWebView又は WebView 使用は推薦していません。詳しい内容はAppleのWKWebView文書をご参照ください。
WKWebViewの使用際にJavaScriptインタフェースを使用する為には WKNavigationDelegate プロトコルの webView メソッドにいくつかのコードを追加する必要が有ります。このプロトコルはウェブビューがナビゲーション要請を処理する際にカスタム行動を発動させるよう実装する事を手伝うプロトコルです。
Swift:
extension ViewController: WKNavigationDelegate {
func webView(_: WKWebView, decidePolicyFor: WKNavigationAction,
decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
// Singular ハンドラー
let js = "typeof(Singular)"
webView.evaluateJavaScript(js) { (result, error) -> Void in
if let resultString = result as? String {
if resultString.isEqual("undefined") {
do {
let contents = try String(contentsOfFile:
Bundle.main.path(forResource: "Singular", ofType: "js")!)
self.webView.evaluateJavaScript(contents,
completionHandler: nil)
} catch {
}
}
else {
print(decidePolicyFor.request)
Singular.processJSRequestWK(self.webView,
withURL:decidePolicyFor.request)
}
}
}
// 他のコードは下に追加してください。
}
iOS 8.0から使用が中断された以前UIWebViewを使用する場合、次のようにUIWebViewDelegate ファイルの webView:shouldStartLoadWithRequest:navigationType: メソッドをアップデータしてください。
Objective-C:
- (BOOL)webView:(UIWebView *)webView
shouldStartLoadWithRequest:(NSURLRequest *)request
navigationType:(UIWebViewNavigationType)navigationType{
if([[webView stringByEvaluatingJavaScriptFromString:@"typeof(Singular)"] isEqualToString:@"undefined"]) {
// HTMLにSingular.js注入
[webView stringByEvaluatingJavaScriptFromString:[NSString
stringWithContentsOfFile:[[NSBundle mainBundle]
pathForResource:@"Singular" ofType:@"js"] usedEncoding:nil error:nil]];
} else {
// Singular.jsにて要請処理
[Singular processJSRequest:webView withURL:request];
}
// 次のコードは下に追加してください。
return true;
}
GDPR 規定遵守
Singular SDKはお客様がGDPR規定を遵守し、ユーザーのトラッキング同意及び非同意事項をSingularにお知らせするに必要な様々なメソッドを提供します。
trackingOptIn メソッド |
|
---|---|
定義 | Singularにユーザーのトラッキング同意(Opt-in)を告知 |
使用例 | Objective-C:
Swift:
|
trackingUnder13 メソッド |
|
定義 | Singularにユーザーが未成年(13才未満)である事を告知 |
使用例 |
Objective-C:
Swift:
|
stopAllTracking メソッド |
|
定義 |
該当アプリにて該当ユーザーをトラッキングする全ての行為を中断 注意: このメソッドを呼び出す場合、SDKが非活性化されアプリの再起動以降にも状態が保存されます。 トラッキングを再開するには resumeAllTracking()メソッドを明示的に呼び出す必要が有ります。 |
使用例 |
Objective-C:
Swift:
|
resumeAllTracking メソッド |
|
定義 | 該当アプリから該当ユーザーのトラッキングを再開 |
使用例 |
Objective-C:
Swift:
|
isAllTrackingStopped メソッド |
|
定義 | 該当アプリから該当ユーザーのトラッキング中断状態を確認。StopAllTracking() メソッドを通じて現在トラッキングが中断し再開されて無い状況の場合、 true 値を返還 |
使用例 |
Objective-C:
Swift:
|