コンテンツにスキップ

アプリ内メッセージのカスタマイズ

アプリ内メッセージのコールバックを受け取る

コールバッククラスを利用することで、アプリ内メッセージの処理をアプリ側で受け取ることができます。

コールバッククラスの詳細は「SDK の特定動作のタイミングをアプリ側で把握したい」をご確認ください。

画面遷移のサンプル

アプリ内メッセージのボタンが押された際に受け取った URL から画面を遷移するサンプルです。

このサンプルでは PopinfoInappMessageView をカスタマイズした MyPopinfoInappMessageView というクラスを使用しています。

各画面のカスタマイズ方法については 「こちら」をご確認ください。

なお、アプリ独自の遷移を行う際は事前にカスタムURIスキームの設定が必要となります。

public class MyPopinfoInappMessageView extends PopinfoBaseInappMessageView {

    ・・・

    /**
     * アプリ内メッセージのボタンが押された際の動作
     *
     * @param actionUrl 設定されている URL
     */
    @Override
    protected void onInappMessageTapAction(String actionUrl) {
        try {
            Uri uri = Uri.parse(actionUrl);
            Intent intent = new Intent(Intent.ACTION_VIEW, uri);
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(intent);
        } catch (ActivityNotFoundException e) {
        }
    }

    ・・・
}

独自判断のサンプル

アプリ側で独自の要素を含むユーザーに対し、アプリ内メッセージを表示させないようにするというサンプルです。
このアプリ内メッセージは作成する際にカテゴリを指定しております。

public boolean onInappMessageAppeared(Context context, String event, String category, PopinfoInappMessage inappMessage) {
    // アプリで独自に保存している要素を取得
    // ※サンプルのため、仮の文字列です
    String originalCategory = "xxxxxxx";

    // 該当カテゴリに合致するユーザーにはアプリ内メッセージを表示させないようにする
    if (originalCategory.equals(category)) {
            return false;
    }

    return true;
}

メッセージ校閲のサンプル

アプリ内メッセージを表示する直前に、メッセージ内容の校閲を行うサンプルです。
このサンプルではアプリ内メッセージに {$user} という内容を指定し、アプリ側で置換をする処理を行っております。

public boolean onInappMessageAppeared(Context context, String event, String category, PopinfoInappMessage inappMessage) {
        // アプリで実際に表示をさせる要素を取得
        // ※サンプルのため、仮の文字列を入れております
        String name = "xxxxxxx";
        inappMessage.htmlString = inappMessage.htmlString.replace("{$user}", name);

        return true;
}

デバッグモードについて

AndroidManifest.xml の meta-data に POPINFO_EVENTACTION_DEBUG を追加することで、イベントトラッキングが付与された際にキー名を Toast で画面上に表示します。
詳細は「SDKの設定項目一覧」よりご確認ください。

<meta-data
    android:name="POPINFO_EVENTACTION_DEBUG"
    android:value="true" />

Toast 表示形式例

<キー名> matched. (現在の1日の表示回数,1日の最大表示回数)(トータル表示回数、トータル最大表示回数)

イベントキー名 app.top がマッチした際の例として、下記のように表示され、- は無制限を表します。

<app.top> matched. (1,5)(1,-)