このガイドでは、OneSignal HTMLエディターで作成されたHTMLアプリ内メッセージのJavaScript APIについて説明します。
トリガーの設定、アプリ内クリックイベントの処理、またはアプリ内ライフサイクルの管理のためのSDKメソッドをお探しの場合は、モバイルSDKリファレンスを参照してください。
1. クリック追跡にdata-onesignal-unique-labelを使用する
すべてのクリック可能な要素には、一意の値を持つdata-onesignal-unique-label属性が必要です。これにより、OneSignalは次のことができます:
- クリック分析を追跡する
- 関連するアクションを正しくトリガーする
<button id="tag-user-button" data-onesignal-unique-label="my-tag-user-button">
Tag User
</button>
2つの要素が同じdata-onesignal-unique-labelを共有している場合、クリックが正しくログに記録されないか、アクションが発火しない可能性があります。
2. イベントリスナーをアタッチする
OneSignalアプリ内アクションをトリガーするには、JavaScriptイベントリスナーを明示的にアタッチする必要があります。
document.getElementById("tag-user-button")
.addEventListener("click", function(e) {
OneSignalIamApi.tagUser(e, { fiz: "baz" });
});
例:
<button id="tag-user-button" data-onesignal-unique-label="my-tag-user-button">
Tag User
</button>
<script>
document.getElementById("tag-user-button").addEventListener("click", function(e) {
OneSignalIamApi.tagUser(e, { fiz: "baz" });
});
</script>
利用可能な関数
ブロックエディターのすべてのクリックアクションは、HTMLアプリ内メッセージでも利用できます。
プッシュ権限プロンプト
ネイティブのプッシュ通知権限プロンプトを表示します。クリックイベントは自動的に追跡されます。
プッシュ権限のプロンプトを参照してください。
<button id="push-prompt-button" data-onesignal-unique-label="push-permission">
Enable Push
</button>
<script>
document.getElementById("push-prompt-button").addEventListener("click", function(e) {
OneSignalIamApi.triggerPushPrompt(e);
});
</script>
位置情報権限プロンプト
ネイティブの位置情報権限プロンプトを表示します。クリックイベントは自動的に追跡されます。
位置情報権限プロンプトを参照してください。
<button id="location-prompt-button" data-onesignal-unique-label="location-permission">
Enable Location
</button>
<script>
document.getElementById("location-prompt-button").addEventListener("click", function(e) {
OneSignalIamApi.triggerLocationPrompt(e);
});
</script>
アプリ内メッセージを閉じる
現在のアプリ内メッセージを閉じます。クリックイベントは自動的に追跡されます。
<button id="close-button" data-onesignal-unique-label="close-message">
Close
</button>
<script>
document.getElementById("close-button").addEventListener("click", function(e) {
OneSignalIamApi.close(e);
});
</script>
ユーザーをタグ付けする
タグを設定します。クリックイベントは自動的に追跡されます。
<button id="tag-user-button" data-onesignal-unique-label="tag-user">
Tag User
</button>
<script>
document.getElementById("tag-user-button").addEventListener("click", function(e) {
OneSignalIamApi.tagUser(e, { fiz: "baz" });
});
</script>
URLを開く
デバイスのブラウザでURLを開き、アプリ内メッセージを閉じます。クリックイベントは自動的に追跡されます。
ディープリンクをサポートしています。
<button id="open-url-button" data-onesignal-unique-label="open-website">
Visit Site
</button>
<script>
document.getElementById("open-url-button").addEventListener("click", function(e) {
OneSignalIamApi.openUrl(e, "https://example.com");
});
</script>
クリック名
アプリ内メッセージクリックリスナーで読み取ることができるクリック名を割り当てます。クリックイベントは自動的に追跡されます。
ディープリンクをサポートしています。
<button id="click-name-button" data-onesignal-unique-label="named-click">
Click Me
</button>
<script>
document.getElementById("click-name-button").addEventListener("click", function(e) {
OneSignalIamApi.addClickName(e, "test_click_name");
});
</script>
クリックを追跡する
他のクリック可能なAPIメソッドを使用していないときにクリックイベントを追跡します。
<button id="track-click-button" data-onesignal-unique-label="custom-track">
Track Click
</button>
<script>
document.getElementById("track-click-button").addEventListener("click", function(e) {
OneSignalIamApi.trackClick(e);
});
</script>
アウトカムを送信する
未帰属のカスタムアウトカムを追跡し、アウトカム名 : trueの形式でユーザーにタグを設定します。クリックイベントは自動的に追跡されます。
<button id="send-outcome-button" data-onesignal-unique-label="bonus-claim">
Claim Bonus
</button>
<script>
document.getElementById("send-outcome-button").addEventListener("click", function(e) {
OneSignalIamApi.sendOutcome(e, "bonus_claimed");
});
</script>
HTMLアプリ内メッセージをパーソナライズする
ブロックエディターと同じように、HTMLアプリ内メッセージでタグ置換を使用できます。
タグ置換は<script>タグ内では機能しません。
タグ置換が機能する場所:
- インラインテキスト(
<h1>、<p>、<li>など)
<style>ルール:
body { background-color: "{{ favorite_color | default: '#fff' }}"; }
- URLを含む属性:
href
src
<form action>
<object data>
openUrl()とaddClickName()でタグを使用する
<script>タグは置換をサポートしていないため、次のいずれかの方法を使用します:
1. liquidPlayerTagsですべてのタグにアクセスする
このグローバルオブジェクトはDOMContentLoaded後に利用可能になります。
<div class="my-tags">--test checking all tags--</div>
<button id="open-url-button" data-onesignal-unique-label="promo-link">
Personalized Offer
</button>
<script>
document.addEventListener("DOMContentLoaded", function() {
if (liquidPlayerTags) {
// liquidPlayerTags becomes available afterthe DOMContentLoaded event confirm
// by checking that the div with --replace with all tags-- is replaced with JSON
document.querySelector(".my-tags").innerHTML = JSON.stringify(liquidPlayerTags);
}
});
document.addEventListener("DOMContentLoaded", function() {
document.getElementById("open-url-button").addEventListener("click", function(e) {
OneSignalIamApi.openUrl(e, "https://shop.com?coupon=" + liquidPlayerTags["coupon"]);
});
});
</script>
2. href属性にタグを保存する
<a
id="open-url-button"
href="app://deeplink?code={{ coupon | default: '10OFF' }}"
data-onesignal-unique-label="promo-link"
>
Redeem Offer
</a>
<script>
document.getElementById("open-url-button").addEventListener("click", function(e) {
e.preventDefault();
OneSignalIamApi.openUrl(e, e.currentTarget.href);
});
</script>
次のステップ