Cordova用Singular SDKインテグレーション

ドキュメント

Singular SDKはCordovaのプラグインとして提供されています。以下の手順では、SingularをCordovaアプリに統合する方法を説明します。

前提条件

  • この記事は機能的なCordovaアプリを持っていることを前提としています。
  • SDKを初期化するには、Singular SDK KeyとSDK Secretが必要です。これらはSingularプラットフォームの"Developer Tools > SDK Integration > SDK Keys"から入手できます。

Singularプラグインの追加

SingularプラグインをCordovaプロジェクトに追加するには、以下を実行します:

cordova plugin add singular_cordova_sdk

Ionic

Ionicを使用している場合:

  1. Singular SDKプラグインをインストールします:

    $ ionic cordova plugin add singular_cordova_sdk
  2. メインのtsファイルで、window変数を宣言します:

    declare var cordova;
  3. これで、Cordovaから直接Singularプラグインを使用できるようになります:

    TypeScript
    import {Component} from '@angular/core';
    import {Platform} from '@ionic/angular';
    declare var cordova;
    ...
    
    export class HomePage {
    constructor(public platform: Platform) {
    this.platform.ready().then(() => {
    
        // Add code to initialize the Singular SDK here
    
    
    
    }); 
    }}
    

SDKの初期化(必須)

Singular SDKの初期化コードは、アプリを開くたびに呼び出す必要があります。これはすべてのSingular属性機能の前提条件です。また、新しいユーザーセッションをSingularに送信します(セッションはユーザーのリテンションを計算するために使用されます)。

Singular SDKを初期化します:

  1. SingularConfig オブジェクトを作成します。このオブジェクトにはSingular SDK KeyとSecretが含まれます。
  2. アプリでディープリンクやSKAdNetworkをサポートしたい場合は、オプションの設定を行います(下記の「ディープリンクサポートの追加」と「SKAdNetworkサポートの追加」を参照してください)。
  3. METAインストール リファラー帰属のサポート

    Meta Install Referrer "アトリビューションを有効にするために必要なSDKコンフィギュレーション:

    1. Singular Configuration ObjectにFacebook App Idを入力してください。
      // To enable META Install Referrer
      
      
      singularConfig.withFacebookAppId("INSERT YOUR FACEBOOK APP ID HERE");
    アプリのFacebookアプリIDはどこで確認できますか?
  4. SingularConfigオブジェクトを使ってSDKを初期化します。

コード例(オプション設定はコメントアウトされています):

JavaScript
// Create the configuration object


var singularConfig = new
cordova.plugins.SingularCordovaSdk.SingularConfig("<SDK KEY>", "<SDK SECRET>");

/*
// Optional: Enable deep linking (requires additional setup steps, see guide)


var linkHandler = function(data){
var deeplink = data.deeplink;
var passthrough = data.passthrough;
var isDeferred = data.isDeferred;
// Add link handling logic here


}
singularConfig.withSingularLink(linkHandler);
*/

/*
// To enable META Install Referrer


singularConfig.withFacebookAppId("INSERT YOUR FACEBOOK APP ID HERE");
*/

/*
// Optional: Enable SKAdNetwork (in Managed Mode, see guide for more options)


singularConfig.withSkAdNetworkEnabled(true);
*/

// Initialize Singular


cordova.plugins.SingularCordovaSdk.init(singularConfig);

ユーザーIDをSingularに送信する(オプション)

Singular SDKのメソッドを使用して、内部のユーザーIDをSingularに送信することができます。

注意: Singularのクロスデバイスソリューションを使用する場合は、すべてのプラットフォームでユーザーIDを収集する必要があります。

  • ユーザーIDはどのような識別子でもかまいませんが、PII(個人を特定できる情報)を公開すべきではありません。例えば、ユーザーのメールアドレス、ユーザー名、電話番号は使用しないでください。Singularは、ファーストパーティデータにのみユニークなハッシュ値を使用することを推奨します。
  • Singularに渡すユーザーIDは、すべてのプラットフォーム(ウェブ/モバイル/PC/コンソール/オフライン)で同じ内部ユーザーIDを使用する必要があります。
  • Singularはユーザーレベルのエクスポート、ETL、内部BIポストバック(設定されている場合)にユーザーIDを含めます。ユーザーIDはファーストパーティデータであり、Singularが他者と共有することはありません。
  • ユーザーIDの値は、Singular SDKメソッドで設定されると、unsetCustomUserId メソッドで設定が解除されるまで、またはアプリがアンインストールされるまで保持されます。アプリを終了または再起動しても、ユーザーIDはアンセットされません。

ユーザーIDを設定するには、setCustomUserId メソッドを使用します。設定を解除するには(ユーザがアカウントから「ログアウト」した場合など)、unsetCustomUserId を呼び出してください。

注:複数のユーザが1つのデバイスを使用する場合、ログインとログアウトのたびにユーザIDを設定および解除するログアウトフローを実装することを推奨します。

アプリを開いたときにユーザーIDがすでに分かっている場合は、Singular SDKを初期化する前にsetCustomUserId 。こうすることで、Singularは最初のセッションからユーザーIDを持つことができます。しかし、ユーザーIDは通常、ユーザーが登録するかログインを実行するまで利用できません。その場合は、登録フローが完了した後にsetCustomUserId

SingularCordovaSdk.setCustomUserIDメソッド
説明 ユーザーIDをSingularに送信します。
シグネチャ SingularCordovaSdk.setCustomUserId(String customUserId)
使用例
SingularCordovaSdk.setCustomUserId('CustomUserId');
SingularCordovaSdk.unsetCustomUserIDメソッド
説明 Singularに送信されたユーザーIDの設定を解除します。
シグネチャ SingularCordovaSdk.unsetCustomUserId()
使用例
SingularCordovaSdk.unsetCustomUserId();

オプション:カスタムユーザーID デバイスマッピング

重要: この高度なエンタープライズ機能は例外的な場合にのみ使用できます。実装する前にSingularのソリューションエンジニアにご相談ください。

Singularはサーバー間の統合により、追加のモバイルイベント追跡データを受け取ることができます。この機能を利用するには、ユーザーIDをSingularのモバイルデバイス追跡識別子にマッピングする必要があります。

注意:Singular SDKを初期化した後、またはユーザーIDを取得した後、できるだけ早くこのメソッドを呼び出してください。

SingularCordovaSdk.setDeviceCustomUserId メソッド
説明 ログイン時と同じカスタムユーザーIDを設定し、Singularのトラッキング識別子にマッピングします。
シグネチャ SingularCordovaSdk.setDeviceCustomUserId(String customUserId)
使用例
SingularCordovaSdk.setDeviceCustomUserId('CustomUserId');

トラッキングイベント(非収益)

SDKを初期化することで)ユーザーセッションをSingularに送信するだけでなく、ユーザーイベントを送信することもできます。アプリ内イベントのデータは、Singularがユーザー獲得キャンペーンのパフォーマンスを分析し、KPIを測定するのに役立ちます。

例えば、ゲームアプリでユーザーのログイン、登録、チュートリアルの完了、レベルアップなどのデータを収集したい場合があります。

Singularにイベントを送信するには、eventWithArgs メソッドを使います。イベントに名前を付け、追跡したい属性を追加します。

JavaScript
// Example: Report an event called View Product with event attributes


cordova.plugins.SingularCordovaSdk.eventWithArgs(
  'ViewProduct', // Event name


  {
    // Event attributes


    productID:"123",
    productCategory:"Outerwear"
  }
)

収益のトラッキング

アプリ内課金による収益をSingularにトラッキングさせるには、IAPイベントをSingularに報告します。

eventWithArgsメソッドを使い、IAPオブジェクトをイベント属性として渡すことをお勧めします。SingularはIAPオブジェクトを使用して購入を検証し、不正購入を検出することで、収益メトリクスを歪めないようにします(アプリ内購入の検証に関するFAQを参照)。

https://github.com/j3k0/cordova-plugin-purchaseライブラリを使用している場合は、以下のコードを使用できます:

JavaScript
store.when('product123 verified', onProductVerified);
product.verify();

function onProductVerified(product){
  const iap = new cordova.plugins.SingularCordovaSdk.SingularIAP(product);
  cordova.plugins.SingularCordovaSdk.eventWithArgs('IAP_EVENT', iap)
}

カスタム収益の送信

IAPオブジェクトをSingularに送信できない場合は、イベント名、通貨コード、購入金額を受け取るcustomRevenueメソッドを使用することもできます。

JavaScript
cordova.plugins.SingularCordovaSdk.customRevenue(
  customEventName, // E.g. "purchase"


  currencyCode, // E.g. "USD"


  purchaseAmount // E.g. 3.2


);

注意:通貨は3文字の ISO 4217 通貨コード、例えば "USD", "EUR", "INR" を渡します。

ハイブリッドイベント追跡(上級者向け)

Singularでは、アプリに統合されたSingular SDKを通してすべてのイベントと収益を送信することを推奨しています。しかし、Singularは他のソースからイベントと収益を収集することができます。

Singular SDKから送信されないイベントは、Singularのサーバー間イベントドキュメンテーション要件に準拠し、イベントの属性を正しく設定するために一致するデバイス識別子を提供する必要があります。

重要です:

Server-to-Server イベントリクエストで使用されるデバイス識別子がSingularで一致しない場合、不一致が発生します。以下の可能性に注意してください:

  • イベントリクエストがSingular SDKがアプリセッションからデバイス識別子を記録する「前」に受信された場合、そのイベントリクエストは未知のデバイスの「最初のセッション」とみなされ、Singularはそのデバイスをオーガニックアトリビューションとしてアトリビュートします。
  • Singular SDKがデバイス識別子を記録していたとしても、Singular SDKの識別子がServer-to-Server Eventリクエストで指定されたデバイス識別子と異なる場合、イベントの帰属は正しくありません

ハイブリッドイベント追跡ガイド

内部サーバーからのイベント送信

Singularはお客様のサーバーから収益に関するデータを収集し、キャンペーンのパフォーマンスやROIの分析に役立てることができます。

要件

  • アプリ内登録またはログインイベントから、デバイス識別子を取得して渡し、このデータをユーザーIDと共にサーバーに保存します。デバイス識別子はユーザーによって変更される可能性があるため、ユーザーがアプリセッションを生成する際には必ず識別子を更新してください。これにより、サーバー側イベントが正しいデバイスに帰属することが保証されます。
  • サーバー側イベントはプラットフォーム固有であるため、デバイスプラットフォームに一致するデバイス識別子(iOSデバイスのIDFAまたはIDFVなど)のみを使用して送信する必要があります。
  • Singular 内部 BI ポストバック メカニズムを使用して、内部エンドポイントにリアルタイムでイベントをプッシュすると、サーバー側でデータセットを更新できます。内部 BI ポストバック FAQ を参照してください。
  • 詳細については、『サーバー間統合』ガイドの「収益の追跡」セクションを参照してください。
収益プロバイダからのイベントの送信
RevenueCatや adaptyのようなサードパーティプロバイダーは、Singularに購入収益や購読収益を提供することができます。

これらのパートナーを有効にする方法の詳細については、以下のリンクを参照してください。

セグメントからのイベント送信

SingularSDKと並行してSegmentからSingularにイベントを送信するには、Segmentに"Cloud-Mode "Destinationを追加する必要があります。こちらのガイドに従ってください。

広告収益アトリビューションのトラッキング

SingularはGoogle AdMob、AppLovin、Unity LevelPlay (IronSource)、TradPlusなどの広告収益アトリビューション用のメディエーションプラットフォームと統合されています。Singularはまた、一般的な広告収益SDKの統合により、他のメディエーションプラットフォームもサポートしています。

メディエーションプラットフォームから広告収益アトリビューションデータを取得するには、Singular SDKインテグレーションにコードスニペットを追加します。これにより、SKAdNetworkキャンペーンの広告収益データを取得することもできます。

メディエーションプラットフォームからユーザーレベルの広告収益を取得することで、Singularはこのデータを受け入れることができるメディアソースにアトリビューションされた広告収益を送り返し、AdROASキャンペーンを実施することができます。

SDKの実装方法とコードスニペットはこちら[英語]をご覧ください。

ディープリンクサポートの追加

ディープリンクとは、ユーザーの携帯電話でアプリを開き、アプリのメインウィジェットではなく、特定のページまたはユーザーエクスペリエンスに直接ユーザーを送るリンクです。

ディープリンクは通常、リターゲティングキャンペーンで使用され、すでに携帯電話にアプリを持っているが、しばらくアプリを使用していないユーザーを対象としています。

SingularはSingular Linksを通してディープリンクをサポートしています(Singular Links FAQをご覧ください)。

アプリでSingular Linksを使用するには

  1. Singular Links Prerequisitesの指示に従ってください。
  2. Androidの場合、このコードをメインアクティビティに追加してください:

    Java Kotlin
    import singular_cordova_sdk.SingularCordovaSdk;
    
    @Override
    public void onNewIntent(Intent intent) {
      SingularCordovaSdk.handleNewIntent(intent);
    }
    

    iOSの場合は、このコードをAppDelegateに追加してください:

    Swift Objective-C
    import UIKit
    import SingularCordovaSdk
    
    class AppDelegate: UIResponder, UIApplicationDelegate {
        
        var window: UIWindow?
        var viewController: MainViewController?
        
        func application(
            _ application: UIApplication,
            didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
        ) -> Bool {
            // Initialize window
    
            window = UIWindow(frame: UIScreen.main.bounds)
            
            // Configure view controller
    
            viewController = MainViewController()
            window?.rootViewController = viewController
            
            // Initialize Singular SDK
    
            SingularCordovaSdk.setLaunchOptions(launchOptions)
            
            // Make window visible
    
            window?.makeKeyAndVisible()
            
            return true
        }
        
        func application(
            _ application: UIApplication,
            continue userActivity: NSUserActivity,
            restorationHandler: @escaping ([Any]?) -> Void
        ) -> Bool {
            return SingularCordovaSdk.startSession(with: userActivity)
        }
    }
    
  3. コード内でSingular SDKを初期化する前に、Singular configオブジェクトに.withSingularLinkを 追加し、リンクハンドラ関数を指定してください:

    JavaScript
    var singularConfig = new
      cordova.plugins.SingularCordovaSdk.SingularConfig("<SDK KEY>", "<SDK SECRET>");
    
    var linkHandler = function(data){
      var deeplink = data.deeplink;
      var passthrough = data.passthrough;
      var isDeferred = data.isDeferred;
      // Add link handling logic here
    
    
    }
    
    singularConfig.withSingularLink(linkHandler);
    
    cordova.plugins.SingularCordovaSdk.init(singularConfig);
    

SKAdNetworkサポートの追加

SingularプラグインはSKAdNetworkフレームワークをサポートしています。以下の設定オプションを使って、アプリのSKAdNetworkトラッキングを有効にすることができます。

マネージドモード(推奨)

マネージドモードでは、Singularプラットフォームで設定できるお好みのコンバージョンモデルに基づいて、Singularが自動的にSKAdNetworkのコンバージョン値を管理します。

詳しくは、 Singularのコンバージョンバリュー管理についてと SKAdNetworkモデル設定FAQをご覧ください。SingularでSKAdNetworkを使用するためのステップバイステップガイドは、 SKAdNetworkの始め方をご覧ください。

マネージドモードで SKAdNetwork を有効にするには、以下のコードを使用してください:

JavaScript
var singularConfig = new
  cordova.plugins.SingularCordovaSdk.SingularConfig("", "");

// Enable SKAdNetwork (in managed mode by default)


singularConfig.withSkAdNetworkEnabled(true);

cordova.plugins.SingularCordovaSdk.init(singularConfig);

マニュアルモード

SKAdNetwork のコンバージョン値を管理するための独自の戦略とツールを既にお持ちの場合は、SKAdNetwork をマニュアルモードで使用することができます。

マニュアルモードでSKAdNetworkを有効にするには、以下のコードを使用します:

JavaScript
var singularConfig = new
  cordova.plugins.SingularCordovaSdk.SingularConfig("<SDK KEY>", "<SDK SECRET>");

// Enable SKAdNetwork


singularConfig.withSkAdNetworkEnabled(true);

// Select SKAdNetwork manual mode


singularConfig.withManualSkanConversionManagement();

// Optional: define handler to track changes to the conversion value


var conversionHandler = function(updatedConversionValue){
  // Do something with updatedConversionValue


}

singularConfig.withConversionValueUpdatedHandler(conversionHandler);

// Initialize the Singular SDK


cordova.plugins.SingularCordovaSdk.init(singularConfig);

変換値を更新するには、以下のコードを使用します:

JavaScript
cordova.plugins.SingularCordovaSdk.skanUpdateConversionValue(
  newConversionValue,
  function(isSuccess){
    // isSuccess == true if the update was successful


  }
)

現在の変換値を取得するには、以下のコードを使用します:

JavaScript
cordova.plugins.SingularCordovaSdk.skanGetConversionValue(
  function(conversionValue){
    // Do something with conversionValue


  }
)

その他のオプション

アンインストールのトラッキング

Singularにアプリのアンインストールを追跡させるには、以下のコードを使用してAPNS/FCMトークンをSingularに送信します:

Android

JavaScript
cordova.plugins.SingularCordovaSdk.setUninstallToken(fcmToken)

iOS

JavaScript
cordova.plugins.SingularCordovaSdk.setUninstallToken(apnsToken)

短いリファラーリンクの作成

ショートリンクを使うと、パラメータだらけの長いSingularリンクを、共有に便利な短くて安全なリンクに変換できます。

通常、短いリンクを動的に作成して、アプリのユーザーが友達と共有してアプリを使うように招待できるようにします。

ショートリンクを作成するには

  • アプリのダウンロードにつながるシンギュラーリンク シンギュラーリンクのFAQを参照)。
  • リンクに動的に追加したいパラメータ(オプションの一覧は トラッキングリンクパラメータをご覧ください)。
  • リンクを共有したユーザーをさかのぼって新しいアプリのインストールを追跡できるようにしたい場合は、参照元ユーザーの名前とID

ショートリンクを作成するには、以下のコードを使用してください:

JavaScript
cordova.plugins.SingularCordovaSdk.createReferrerShortLink(
    longLinkURL, 
    referrerName,
    referrerID,
    {
        // Tracking link parameters to add to the short link, e.g. "channel":"sms"


        param1: value1,
        param2: value2,
        ...
    },
    {
        onSuccess: function (shortLinkURL) {
        // Do something with shortLinkURL


        },
        onError: function (error) {
        // Handle error


        }
    }
)

データプライバシー法の遵守

Singularは、GDPRやCCPA(カリフォルニア州消費者プライバシー法)のような消費者プライバシー法を遵守している可能性のあるパートナーと協力できるよう、プライバシー保護機能を提供しています。このようなパートナーは、エンドユーザーが個人情報を共有することに同意した場合に通知されることを望んでいます。

ユーザーに情報共有の同意を求める方法を実装している場合は、limitDataSharingメソッドを使ってユーザーの選択をSingularに通知します:

SingularCordovaSdk.limitDataSharing(false)を使用して、ユーザが情報の共有に同意した(オプトインした)ことを示します。

ユーザーが同意しなかった場合は、SingularCordovaSdk.limitDataSharing(true)を使用します。

Singularは"ユーザープライバシーのポストバック"でLimitDataSharingを使用し、関連する規制を遵守するために必要なパートナーにこの情報を渡します。詳しくは「ユーザーのプライバシーとデータ共有の制限」をご覧ください。

注意: このメソッドの使用は任意ですが、ユーザーがオプトインしたことが特に通知された場合のみ、パートナーがSingularと共有する属性情報があるかもしれません。

SingularCordovaSdk.limitDataSharing メソッド
シグネチャ SingularCordovaSdk.limitDataSharing(booleanshouldLimitDataSharing)
説明 個人データの共有に関するユーザーの同意(opt-in)をSingularに通知します。Limit Data Sharingメソッドは、アプリが第三者にユーザーデータを送信するかどうかを制御するオプションを提供します。これは、ユーザーの好みやプライバシー要件に基づいてデータ共有を制限したい場合に便利です。
使用例
// User has opted into sharing data


cordova.plugins.SingularCordovaSdk.limitDataSharing(false);

GDPR準拠のための追加メソッド

Singular SDKは、GDPRポリシーに準拠し、トラッキングに対するユーザーの同意または非同意についてSingularに知らせるためのメソッドをいくつか提供しています。

SingularCordovaSdk.trackingOptIn メソッド
説明 トラッキングに対するユーザーの同意(オプトイン)をSingularに通知します。TrackingOptIn()メソッドは、Singularのサーバーに "gdpr "イベントを送信するために使用されます。このメソッドを呼び出さない場合、アプリはユーザーが同意したかのようにトラッキングを続けますが、特にGDPRオプトインとしてマークされることはありません。アプリがGDPR(一般データ保護規則)に準拠する必要がある場合は、ユーザーの同意が適切に記録されるように、この関数を呼び出す必要があります。
使用例
cordova.plugins.SingularCordovaSdk.trackingOptIn();
SingularCordovaSdk.stopAllTrackingメソッド
説明

このアプリにおけるこのユーザーのすべてのトラッキングを停止します。

注意:このメソッドを呼び出すと、アプリが再起動した後でも、SDKは効果的に無効になります(状態は持続します)!トラッキングを再度有効にする唯一の方法は、resumeAllTracking()を呼び出すことです。
使用例
cordova.plugins.SingularCordovaSdk.stopAllTracking();
SingularCordovaSdk.resumeAllTrackingメソッド
説明 このアプリのこのユーザーのトラッキングを再開します。
使用例
cordova.plugins.SingularCordovaSdk.resumeAllTracking();
SingularCordovaSdk.isAllTrackingStoppedメソッド
説明 このアプリのこのユーザーのトラッキング状況を確認します。StopAllTracking()を使用してトラッキングが停止され、再開されていない場合、trueを返します。
使用例
cordova.plugins.SingularCordovaSdk.isAllTrackingStopped();