> For the complete documentation index, see [llms.txt](https://documentation.pushly.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://documentation.pushly.com/pushly-ja/integration/webpusshu/sdk/methods.md).

# SDKメソッド

## オプトインプロンプトを手動で発動する

プラットフォーム経由でオプトインプロンプトの自動発動を無効にすることもできます。この場合、独自の基準（例: 訪問者が特定のリンクをクリックした後、特定のページを訪問した後、など）に基づいてプロンプトを発動します。

プロンプトの発動は、次を呼び出すだけです `show_prompt` 訪問者が目的のアクションを実行したときのイベント。

```javascript
pushly('show_prompt', { checkEligibility: true })
```

現在の購読状況や頻度制限に関係なくプロンプトを表示したい場合（つまり、ベルやカスタムプロンプトを手動で表示する場合）は、次のコードに簡略化できます。

```javascript
pushly('show_prompt')
```

## サブスクライバーのプロフィールに属性を追加する

サブスクライバーのプロフィールに属性を追加し、後でその属性に基づいてセグメント化できます。たとえば、特定の種類のニュース（例: 政治、スポーツ）に関心のある訪問者にタグを付けて、特定の通知を送れるようにしたい場合があります。

```javascript
pushly('profile', {
  'is_paying_subscriber': true,
  'interests': ['政治', 'ニュース']
});
```

{% hint style="info" %}
プロパティ値は、スカラー値またはスカラー値の配列にできます。
{% endhint %}

プロパティの値を配列として保存している場合は、次を使用できます。 `profile_append` と `profile_remove` 値を追加または削除するメソッド。

```javascript
// サブスクライバーの興味に「sports」を追加する
pushly('profile_append', {
  'interests': ['sports']
});

// サブスクライバーの興味から「fashion」と「news」を削除する
pushly('profile_remove', {
  'interests': ['fashion', 'news']
});
```

{% hint style="warning" %}
次を使用するプロパティは `profile_append` 提供された最新の 20 個の値のみを保存します。
{% endhint %}

## サブスクライバーのプロフィールにページキーワード / タグを追加する

訪問したすべてのページについて、ページキーワード / タグをサブスクライバーのプロフィールに追加できます。これらのタグは、訪問回数と最近性に基づいて、特定のタグを訪問したサブスクライバーのコホートを作成するセグメント化に使用できます。たとえば、「過去 30 日間に少なくとも 4 回、「Astrology」タグの付いたページを訪問したサブスクライバー」のようにできます。

```javascript
pushly('page_tag_visit', ['Tag1', 'Tag2', 'Tag3']);
```

## サブスクライバーのユーザーIDを取得する

{% hint style="warning" %}
このメソッドは、SDK が完全に読み込まれた後にのみ使用できます。この SDK メソッドは、次の中でラップしてください。 `on_ready` イベント。
{% endhint %}

次のコードを実行して、ユーザーの Pushly ID を取得します。これは一時的な ID で、頻繁に変わる可能性があるため、長期的な訪問者識別には使用しないでください。

```javascript
pushly('on_ready', function() {
    PushlySDK.getUser().getId();
});
```

## サブスクライバーの外部IDを設定する

サブスクライバーに一意のユーザーIDを提供すると、後で API 経由でそのサブスクライバーとやり取りできるようになります。

外部IDを指定する方法は 2 つあります:

#### SDK 初期化時

可能であれば、SDK の初期化時に外部IDを指定してください。これには、次の処理にコードを 1 行追加する必要があります。 `load` 関数。新しい `externalId` 下のスクリプト内の行に注目してください:

```javascript
<script src="https://cdn.p-n.io/pushly-sdk.min.js?domain_key=DOMAIN_KEY" async></script>
<script>
  var PushlySDK = window.PushlySDK || [];
  function pushly() { PushlySDK.push(arguments) }
  pushly('load', {
    domainKey: 'DOMAIN_KEY',
    externalId: 'REPLACE_WITH_USER_ID'
  });
</script>
```

#### 別のメソッド呼び出しで

あるいは、SDK の読み込み後であれば、次のコードでいつでも外部IDを指定できます:

```javascript
pushly('external_id', 'h7bwKwuE3');
```

サブスクライバーの外部IDが設定されたら、双方向の自動データ同期を設定するために当社チームと連携できます。以下のユースケースは、パブリッシャーがサーバー間リクエストを通じて外部IDを利用する一般的な方法です:

* 個々のサブスクライバーに通知をプログラムで送信する
* 登録解除リクエストを処理する
* サブスクライバーに対してプロフィール属性とイベントを追加・削除する

{% hint style="info" %}
訪問者がオプトアウトしている間は（次を参照 [訪問者をオプトアウトさせる](#opting-a-visitor-out)）、そのブラウザ内には SDK は外部IDを保存しません。これは、それが次に渡されても `load` または次で設定されても同様です: `external_id`。同様に、同意が `保留中` または `拒否` （次を参照 [同意とプライバシー](/pushly-ja/integration/webpusshu/sdk/topuraibash.md)).
{% endhint %}

## サブスクライバーの外部IDを削除する

外部IDをサブスクライバーから切り離したい場合は、次の JavaScript を実行してください:

```javascript
pushly('deregister_external_id');
```

## 訪問者がすでに購読済みかどうかを判定する

{% hint style="warning" %}
このメソッドは、SDK が完全に読み込まれた後にのみ使用できます。この SDK メソッドは、次の中でラップしてください。 `on_ready` イベント。
{% endhint %}

訪問者がすでにプッシュ通知を購読しているかどうかを確認する必要がある場合は、次の JavaScript を使用できます:

```javascript
pushly('on_ready', function() {
    await PushlySDK.isUserSubscribed();
});
```

この呼び出しの結果はブール値になります `true` または `false` 訪問者の購読ステータスを表します。これは常に `false` このブラウザでオプトアウトした訪問者、またはデータが削除された訪問者に対しては `false` です。また、同意が `保留中` または `拒否`のページでは、既存のサブスクライバーであっても同様です。これは、SDK が同意を得るまで購読情報を読み取らないためです。

{% hint style="info" %}
次の使用に注意してください: `on_ready` SDK が操作可能な状態であることを保証するためのイベント。
{% endhint %}

## 訪問者がプロンプト表示の対象かどうかを判定する

{% hint style="warning" %}
このメソッドは、SDK が完全に読み込まれた後にのみ使用できます。この SDK メソッドは、次の中でラップしてください。 `on_ready` イベント。
{% endhint %}

訪問者がプッシュ権限のプロンプト表示条件をすべて満たしているかを確認する必要がある場合は、次の JavaScript を実行してください:

```javascript
pushly('on_ready', function() {
    await PushlySDK.isUserEligibleToPrompt();
});
```

この呼び出しの結果はブール値になります `true` または `false` 訪問者に権限ダイアログを表示できるかどうかを示します。

{% hint style="info" %}
次の使用に注意してください: `on_ready` SDK が操作可能な状態であることを保証するためのイベント。
{% endhint %}

## プロンプトの抑制と許可

自動プロンプト表示を使用しているが、実行時に一時的にプロンプトをブロックする必要がある場合、たとえばチェックアウト、ペイウォール、またはその他のモーダルフローがアクティブな間などは、必要に応じてプロンプト表示を抑制し、その後再度有効化できます。自動プロンプト表示の設定自体は通常どおり維持され、抑制は実行時に一時停止するだけです。

フローが始まったときにプロンプト表示を抑制します（例: チェックアウト用モーダルが開く）:

```javascript
pushly('suppress_prompts')
```

フローが終了したら再びプロンプト表示を許可します（例: モーダルが閉じる、または完了する）:

```javascript
pushly('allow_prompts')
```

現在プロンプト表示が抑制されているかどうかを確認するには:

```javascript
pushly('get_prompting_suppressed_state', (isSuppressed) => { ... })
```

抑制中は、プロンプトは表示されません。自動プロンプトも手動のものも `show_prompt` 呼び出しも表示されません。\`suppress\_prompts\` を呼び出した時点で画面にすでに表示されていたプロンプトは `suppress_prompts` 取り下げられ、閉じられたとは記録されません。ブラウザ自身の権限ダイアログは Web サイトから閉じることはできないため、すでに表示されているものは訪問者が応答するまでそのままです。

{% hint style="info" %}
抑制状態はメモリに保持されます。単一ページアプリ（SPA）のナビゲーション間でも維持され、フルページの再読み込み時に自動的に解除されるため、\`allow\_prompts\` の呼び出しを逃しても `allow_prompts` 訪問者が永久にプロンプトを表示できない状態になることはありません。
{% endhint %}

次を呼び出すと `allow_prompts`、プロンプトに設定された表示遅延がすでに経過していれば、対象のプロンプトはまもなく表示されます。そうでない場合は、遅延が満たされた時点で表示されます。抑制されていた時間も遅延に加算されます。

SDK がページ上で動作を停止した場合、たとえば Web Push 非対応のブラウザやオプトアウトした訪問者の場合、そのページの残りの間はプロンプト表示が抑制され、 `get_prompting_suppressed_state` は `true`.

{% hint style="warning" %}
`suppress_prompts` / `allow_prompts` と同じではありません `pause_notifications` / `resume_notifications`。プロンプト抑制はオプトイン **プロンプト** が表示されるかどうかを制御します。通知の一時停止はソフトな登録解除であり、プッシュ **配信** 既に購読している訪問者に対する配信を制御します。
{% endhint %}

## 同意の報告

サイトで同意管理プラットフォーム（CMP）を使用している場合は、訪問者の同意を次の方法で報告します: `consent` オプションと `load` および `consent` コマンド。次を参照してください [同意とプライバシー](/pushly-ja/integration/webpusshu/sdk/topuraibash.md) 各値の動作、一般的な同意管理プラットフォーム向けのレシピ、SDK のプライバシー制御との比較について。

```javascript
pushly('consent', 'granted'); // 'pending', 'granted' または 'denied'
```

## ユーザーの通知を一時停止 / 再開する（ソフト登録解除）

ユーザーの通知は、次のメソッドを呼び出すことで一時停止できます:

```javascript
pushly('pause_notifications')
```

ユーザーの通知を再開する場合は、次のメソッドを呼び出します:

```javascript
pushly('resume_notifications')
```

ユーザーの通知が現在一時停止されているかどうかを確認するには:

```javascript
pushly('get_notifications_paused_state', (isPaused) => { ... })
```

{% hint style="info" %}
一時停止は配信を止めるだけで、SDK は訪問者のトラッキングを継続します。訪問者の通知とトラッキングに対する同意を撤回するには、次を使用してください: [`opt_out`](#opting-a-visitor-out) を使用してください。
{% endhint %}

## 訪問者をオプトアウトさせる

訪問者がプッシュ通知とトラッキングへの同意を撤回したら、次を呼び出します: `opt_out`:

```javascript
pushly('opt_out')
```

あるいは、オブジェクト API からは:

```javascript
pushly('on_ready', function() {
    await PushlySDK.UserProfile.optOut()
});
```

オプトアウトすると:

* このブラウザ内の訪問者のプッシュ購読を削除し、それ以降の通知は届かなくなり、画面上にある通知も閉じます。
* このブラウザでの SDK のすべてのトラッキングとプロンプト表示を停止します。
* このブラウザから訪問者の外部IDを削除します。
* Pushly に通知し、サブスクライバーを登録解除済みとしてマークし、進行中のキャンペーンと予約送信から削除します。

オプトアウトがすぐに Pushly に届かない場合（例: 訪問者がオフラインの場合）、SDK はそれを保持し、訪問者の次回ページ読み込み時に再送します。

オプトアウトは、訪問者が再びオプトインするか、ブラウザでこのサイトのデータを削除するまで有効です。これは、イベント専用サブドメインを含め、SDK のストレージを共有するサイト内のすべてのページに適用されます。報告の `consent: 'granted'` 後で行っても、これを取り消すことはできません。

{% hint style="info" %}
オプトアウトは現在のブラウザにのみ適用されます。訪問者が複数のブラウザを使っている場合は、次を `opt_out` 同意を撤回した各ブラウザで呼び出してください。
{% endhint %}

## 訪問者を再びオプトインさせる

オプトアウトした訪問者が再度通知を受け取りたい場合は、次を呼び出します: `opt_in`:

```javascript
pushly('opt_in')
```

あるいは、オブジェクト API からは:

```javascript
pushly('on_ready', function() {
    await PushlySDK.UserProfile.optIn()
});
```

オプトインは訪問者の **次回ページ読み込み時**に反映されるため、呼び出した後にページを再読み込みしてください（または次のナビゲーションを待ってください）。ブラウザがまだサイトの通知を許可している場合、訪問者は自動的に再び購読されます。そうでない場合は、設定どおりにプロンプトが表示されます。

{% hint style="info" %}
`opt_in` オプトアウトを元に戻すだけです。次は取り消しません: `request_user_deletion`。サイトで外部IDを使用している場合は、訪問者が再オプトインした後に外部IDを再設定してください。オプトアウトするとブラウザから削除されます。
{% endhint %}

## 訪問者のデータを削除する

訪問者がデータの削除を求めたら、次を呼び出します: `request_user_deletion` 彼らのブラウザで:

```javascript
pushly('request_user_deletion');
```

SDK はまずこのブラウザ内のすべてを停止します。プッシュ購読を削除し、画面上の通知を閉じ、すべてのトラッキングとプロンプト表示を停止します。その後、削除リクエストを Pushly に送信します。

Pushly は、このドメイン上でこの訪問者について保持しているデータ—プロフィール、購読情報、このブラウザに紐づく識別子—を消去します。消去は永久です。訪問者が後で再度購読した場合、消去済みデータとは関係のない新しいサブスクライバーとして扱われます。

{% hint style="info" %}
削除はリンクからも要求できます。次を参照してください: [削除リンク](/pushly-ja/integration/webpusshu/sdk/topuraibash.md#deletion-links).
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://documentation.pushly.com/pushly-ja/integration/webpusshu/sdk/methods.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
