AppsFlyer

使用する Cordova のバージョンにより、AppsFlyer の使用方法が異なります。バージョン別の使用方法がこのページに記載されていますので、サービスをご利用になる前に、内容をご確認ください。

AppsFlyer は、モバイル広告に関する宣伝効果の測定 ( アトリビューション ) および収集したデータの分析 ( アナリティクス ) において、業界における標準のツールになりつつあります。AppsFlyer が提供する正確な測定・分析結果に基づき、広告の提供元は、広告のターゲットの絞り込み、投資額の見直しなどを行え、よって、投資対効果 ( ROI ) を最適化できます。

AppsFlyer を使用すれば、アプリのインストール状況、ダウンロード状況、コンバージョン情報 ( conversion/目的達成の成否 ) などを監視・追跡できます。また、AppsFlyer 提供の API を使用すれば、他のアプリ/プラットフォームと連携することができます。

事前準備

AppsFlyer を使用した監視・追跡を行う前に、次の情報が必要となります。

  1. devKey: AppsFlyer 提供の devKey です。
  2. appId: ( iOS の場合 ) App Store で使用する App ID です。

Monaca プロジェクトに AppsFlyer を追加する方法

  1. Monaca クラウド IDE から、 設定 → 外部サービス連携 を選択します。

  2. AppsFlyer サービスの 詳細を見る ボタンをクリックします。

  3. インストール ボタンをクリックします。

  4. インストールを継続するか確認する画面が表示されます。 OK をクリックして、インストールを開始します。

AppsFlyer の使用方法 ( Cordova バージョン 6.2 以降の場合 )

設定

次の記述を追加します。devKey ( および appID ) を渡して、監視・追跡処理を初期化します。

document.addEventListener("deviceready", function(){

    var options = {
        devKey:  'xxXXXXXxXxXXXXxXXxxxx8'  // your AppsFlyer devKey
    };

    var userAgent = window.navigator.userAgent.toLowerCase();

    if (/iphone|ipad|ipod/.test(userAgent)) {
        options.appId = "123456789";       // your ios app id in app store
    }

    window.plugins.appsFlyer.initSdk(options);

}, false);

使い方

SDK の初期化

SDK を初期化します。

initSdk(options, onSuccess, onError): void

パラメーター

名前 解説
options オブジェクト SDK の設定を行います ( 設定値に関しては、下の 「 オプション 」 表をご確認ください )。
onSuccess (message: 文字列) => void 成功時のコールバック : SDK の初期化が成功したときに呼ばれます ( 任意 )。
onError (message: 文字列) => void 失敗時のコールバック : SDK の初期化時に、エラーが発生した場合に呼ばれます ( 任意 )。

options オブジェクト

名前 デフォルト値 解説
devKey 文字列 Dev key の解説 ( AppsFlyer のサイト )
appId 文字列 ( iOS のみ ) App Store で使用する App ID です。
isDebug 真偽値 false デバッグモード ( 任意 )
onInstallConversionDataListener 真偽値 false アトリビューション/コンバージョン データに、SDK 経由でアクセスします ( ディファード ディープリンク/Deferred DeepLinking )。AppsFlyer プラグインでは、アトリビューション データを、onSuccess コールバックに返します。詳細は、次のリンク先をご確認ください。

initSdk() 関数の使用例を、次に記します。

var onSuccess = function(result) {
    //handle result
};

function onError(err) {
    // handle error
}

var options = {
    devKey:  'd3Ac9qPardVYZxfWmCspwL',
    appId: '123456789',
    isDebug: false,
    onInstallConversionDataListener: true
};

window.plugins.appsFlyer.initSdk(options, onSuccess, onError);

アプリ内イベントトラッキング API

trackEvent メソッドを使用して、AppsFlyer の分析メカニズム ( AppsFlyer analytics ) 側に、アプリ内イベントの収集データを渡します。また、このメソッドを使用すれば、監視対象のイベントを、コードに直接追加して、動的に追加できるようになります。アプリ内イベントを使用すると、ユーザーの動向を分析できます。また、各種キャンペーンおよびメディアソースへの関連付けもできます ( ユーザーの操作と、そのきっかけとなったキャンペーンなどを対応付けできます )。ROI ( 投資対効果 ) と LTV ( 顧客生涯価値 ) の計算に必要となる、データ収集対象のイベントに関しては、慎重に選択する必要があります。

trackEvent(eventName, eventValues): void (optional)

パラメーター

名前 解説
eventName 文字列 イベント名 ( カスタム可能 )。ダッシュボード上に表示されます。
eventValue オブジェクト イベントの詳細

trackEvent() 関数の使用例を、次に記します。

var eventName = "af_add_to_cart";

var eventValues = {
    "af_content_id": "id123",
    "af_currency":"USD",
    "af_revenue": "2"
};

window.plugins.appsFlyer.trackEvent(eventName, eventValues);

通貨コードの設定

通貨コードを変更できます。

setCurrencyCode(currencyId): void

パラメーター

名前 デフォルト値 解説
currencyId 文字列 USD 使用できる通貨コードに関しては、こちら ( ISO 4217 ) をご確認ください。

setCurrencyCode() 関数の使用例を、次に記します。

window.plugins.appsFlyer.setCurrencyCode("USD");
window.plugins.appsFlyer.setCurrencyCode("GBP"); // British Pound

カスタマーユーザー ID の設定 ( 詳細 )

カスタム ID をセットします。AppsFlyer 提供の ID 群 ( 端末 ID、ユーザー ID など ) と、このカスタム ID を紐づけすれば、各種情報を、カスタム ID 下に集約できるようになります。このカスタム ID ( AppsFlyer 側とユーザー側で使用している ID の紐づけに使用 ) は、AppsFlyer が提供する CSV レポートを出力時、および、PostBack 系の API の使用時にも使用できます。

この ID の設定は、アプリを初めて起動するときに行う必要があります ( SDK の初期化時 )。実装方法としては、deviceready イベントの処理時に、この API を呼び出すことを推奨します。
setAppUserId(customerUserId): void

パラメーター

名前 解説
customerUserId 文字列 独自のカスタム ID

setAppUserId() 関数の使用例を、次に記します。

window.plugins.appsFlyer.setAppUserId(userId);

GCM プロジェクト番号の設定

GCM のプロジェクト番号をセットします。この番号を使用して、アプリのアンインストールを監視・追跡します ( Android プラットフォーム向け )。

setGCMProjectID(GCMProjectNumber): void

パラメーター

名前 解説
GCMProjectNumber 文字列 GCM のプロジェクト番号。Google Developer Console 上で確認できます。詳細は、アンインストール計測 ページをご確認ください。

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

アプリのアンインストールを監視・追跡するため、iOS のデバイストークンをセットします ( iOS プラットフォーム向け )。

registerUninstall(token): void

パラメーター

名前 解説
token 文字列 iOS のデバイストークン。 UnityEngine.iOS.NotificationServices.deviceToken を使用すれば、デバイストークンを取得できます。詳細は、Unity の解説、および、iOS アンインストールの計測 をご確認ください。

AppsFlyer のデバイスIDを取得する

この API を使用すれば、AppsFlyer 側で独自に割り振っている端末 ID を取得できます。この端末 ID は、各種レポートの出力時、および、各種 API で使用されます。

getAppsFlyerUID(getUserIdCallbackFn): void

パラメーター

名前 解説
getUserIdCallbackFn () => void 成功時のコールバック

getAppsFlyerUID() 関数の使用例を、次に記します。

var getUserIdCallbackFn = function(id) {
    alert('received id is: ' + id);
}
window.plugins.appsFlyer.getAppsFlyerUID(getUserIdCallbackFn);

ディープリンク トラッキング

AppsFlyer のアトリビューション データを使用して、ディープリンクを追跡します。

Android バージョン 4.2.5 以降では、ディープリンク関連のメタデータ ( scheme、host ) は 、自動的に送付されます。
handleOpenUrl(url): void

パラメーター

名前 解説
url 文字列 Url

The following snippet shows how to use handleOpenurl() function:

var handleOpenURL = function(url) {
    window.plugins.appsFlyer.handleOpenUrl(url);
}

AppsFlyer の使用方法 ( Cordova バージョン 5.2以下の場合 )

設定

Monaca プロジェクトへ AppsFlyer を追加したあと、実際にプラグインを使用する前に、いくつかの設定を行う必要があります。次の手順に従います。

  1. プロジェクトの www フォルダーのルートディレクトリー下の config.xml へ、次の記述を追加します ( Monaca 上での処理 )。

    <!-- for iOS -->
    <feature name="AppsFlyerPlugin">
        <param name="ios-package" value="AppsFlyerPlugin" />
    </feature>
    <!-- for Android -->
    <feature name="AppsFlyerPlugin">
        <param name="android-package" value="com.appsflyer.cordova.plugin.AppsFlyerPlugin" />
    </feature>
  2. Android の場合には、AndroidManifest.xml へ、次の記述を追加します ( Monaca 上での処理 )。

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
  3. AppsFlyer へログインして、アプリを登録します ( AppsFlyer 上での処理 )。アプリの登録時に入力する情報とマニフェストに登録する ( または、登録している ) 情報は、一致する必要があります。App Store/Google Play ストア/Microsoft ストアを経由しない Android アプリのインストールの監視・追跡に関しては、こちら をご確認ください。[ 翻訳者メモ : 上記ストアを経由しないでインストールするアプリを、AppsFlyer では、Out of Store アプリと呼称しています ]

  4. 次の記述を、コードに追加します ( Monaca 上での処理 )。実際の使用時には、適当な DEV KEY を渡して、監視・追跡処理を初期化します。

    document.addEventListener("deviceready", function(){
        var args = [];
        var devKey = "xxXXXXXxXxXXXXxXXxxxx8";   // your AppsFlyer devKey
        args.push(devKey);
        var userAgent = window.navigator.userAgent.toLowerCase();
    
        if (/iphone|ipad|ipod/.test( userAgent )) {
            var appId = "123456789";            // your ios app id in app store
            args.push(appId);
        }
        window.plugins.appsFlyer.initSdk(args);
    }, false);
    
  5. Google Play/App Store に提出する前に、Android/iOS 端末で、アプリを検証することを推奨します。

AppsFlyer の使用に関する詳細は、 AppsFlyer ドキュメント ( 日本語あり ) をご確認ください。

使い方

ここまでの手順で、プラグインの準備が整いました。ここからは、AppsFly が提供する API をいくつか紹介します。

カスタマーユーザー ID の設定 ( 詳細 )

カスタム ID をセットします。AppsFlyer 提供の ID 群 ( 端末 ID、ユーザー ID など ) と、このカスタム ID を紐づけすれば、各種情報を、カスタム ID 下に集約できるようになります。このカスタム ID ( AppsFlyer 側とユーザー側で使用している ID の対応付けに使用 ) は、AppsFlyer が提供する CSV レポートを出力時、および、PostBack 系の API の使用時にも使用できます。

window.plugins.appsFlyer.setAppUserId(userId);
この ID の設定は、アプリを初めて起動するときに行う必要があります ( SDK の初期化時 )。実装方法としては、deviceready イベントの処理時に、この API を呼び出すことを推奨します。

通貨コード設定 ( オプション )

デフォルトでは、通貨コード ( Currency Code ) は、USD ( 米ドル ) に設定されています。設定は、次のようにすれば変更できます。

//For example, you want to change to British Pound
window.plugins.appsFlyer.setCurrencyCode("GBP");
使用可能な通貨コードに関しては、 ISO 4217 Currency Codes をご確認ください。

In-App イベントトラッキング API

アプリ内イベントを使用すると、ユーザーの動向を分析できます。また、特定のキャンペーンまたはメディアソースへの関連付けもできます ( ユーザーの操作と、そのきっかけとなったキャンペーンなどを対応付けできます )。ROI ( 投資対効果 ) と LTV ( 顧客生涯価値 ) の計算に必要となる、データ収集対象のイベントに関しては、慎重に選択する必要があります。

trackEvent メソッドを使用して、AppsFlyer の分析メカニズム ( AppsFlyer analytics ) 側に、アプリ内イベントの収集データを渡します。また、このメソッドを使用すれば、監視対象のイベントを、コードに直接追加して、動的に追加できるようになります。

// eventName - any string to define the event name. For example: “registration” or “purchase”
// eventValue - the sales value. For example: 0.99 or 0.79
window.plugins.appsFlyer.sendTrackingWithEvent(eventName, eventValue);
// window.plugins.appsFlyer.sendTrackingWithEvent(eventName, "");

Rich In-App イベントトラッキング API

AppsFlyer 提供の 「 リッチ アプリ内イベント 」 では、アプリのインストール後に起こりうる、すべてのイベントを監視・追跡でき、加えて、メディアソースまたはキャンペーンと、発生したイベントを関連付けることができます。各アプリ内イベントは、イベント名 ( event name )、および、関連するイベント パラメーター群で構成されます。

var eventName = "af_add_to_cart";
var eventValues = {"af_content_id": "id123", "af_currency":"USD", "af_revenue": "2"};
window.plugins.appsFlyer.trackEvent(eventName, eventValues);

AppsFlyer のデバイス ID を取得する ( 詳細 )

この API を使用すれば、AppsFlyer 側で独自に割り振っている端末 ID を取得できます。この端末 ID は、各種レポートの出力時、および、各種 API で使用されます。

// getUserIdCallbackFn - callback function
window.plugins.appsFlyer.getAppsFlyerUID(getUserIdCallbackFn);

この API の使用例を、次に記します。

var getUserIdCallbackFn = function(id) {
    alert('received id is: ' + id);
}
window.plugins.appsFlyer.getAppsFlyerUID(getUserIdCallbackFn);

AppsFlyer アトリビューション/コンバージョンデータへのアクセス ( Deferred Deep-linking )

AppsFlyer では、アトリビューション データへ、SDK レベルで、リアルタイムにアクセスできます。このデータを使用して、アプリの新規インストール・初回起動時、ユーザー側に最初に表示されるページをカスタマイズできます。このような処理は、「 ディファード ディープリンク 」 ( Deferred DeepLinking ) と呼ばれています。Web の分野では、一般的な処理ですが、、モバイルアプリのエコシステム下で、このような処理を実現することは、技術的に難しいとされています。AppsFlyer は、プラットフォームの種類および状況にかかわらず、この処理を行ってくれます。

詳細は、ディファードディープリンク - コンバージョンデータの取得 をご確認ください。

AppsFlyer プラグインでは、アトリビューションデータを使用して、 onInstallConversionDataLoaded イベントを実行します。なお、データの取得するため、イベントリスナーを設定する必要があります。
document.addEventListener('onInstallConversionDataLoaded', function(e){
    var attributionData = (JSON.stringify(e.detail));
    alert(attributionData);
}, false);

Monaca から AppsFlyer を削除する方法

  1. Monaca クラウド IDE から、 設定 → Cordova プラグインの管理 を選択します。

  2. 有効なプラグイン 項目へ移動し、AppsFlyer プラグイン上にカーソルを置き、 無効 ボタンをクリックします。