コンテンツにスキップ

管理者マニュアル: カスタムスクリプト

概要

管理者は、外部サービスのスクリプトタグをCAMPUSに埋め込むことができます。Google Analytics、チャットボット、A/Bテストツールなど、さまざまな外部サービスを統合可能です。

対象ユーザー: 管理者のみ 対象プラン: Standard / Tester プラン(Freeプランでは利用不可) 登録上限: 5件まで


1. カスタムスクリプトとは

1.1 機能概要

カスタムスクリプトは、外部サービスから提供されるJavaScriptコードをCAMPUSのページに埋め込む機能です。

活用例:

  • Google Analytics - アクセス解析
  • Channel Talk / Intercom - チャットサポート
  • Hotjar - ヒートマップ分析
  • Google Tag Manager - タグ一元管理
  • Optimizely - A/Bテスト

1.2 プランによる制限

プラン カスタムスクリプト
Free 利用不可(0件)
Standard 5件まで
Tester 5件まで

詳細は プラン別機能 を参照してください。


2. カスタムスクリプトの管理ページを開く

2.1 アクセス方法

  1. チーム編集ページを開く(/teams/チーム名/edit
  2. 「カスタムスクリプト管理」セクションまでスクロール(Standard / Tester プランのみ表示されます)
  3. セクション内にカスタムスクリプト一覧が表示される(このセクション内で作成・編集・削除・有効化/無効化ができます)

または、直接以下のURLにアクセスすると、専用のカスタムスクリプト管理ページが開きます:

/teams/チーム名/custom-scripts

3. カスタムスクリプトの作成

3.1 新規作成手順

  1. チーム編集ページの「カスタムスクリプト管理」セクション(または専用の管理ページ)で 「新規作成」ボタンをクリック
  2. 入力フォームが表示される
  3. 以下の項目を入力:

3.1.1 入力項目

項目 必須 説明
名前 スクリプトの識別名(最大100文字) Channel Talk
説明 - 用途や目的(最大500文字) カスタマーサポート用チャット
埋め込み位置 <head>内 or </body>直前 </body>直前(推奨)
スクリプトコード 外部サービスから提供されたコード(最大10,000文字) <script>...</script>
有効化 - チェックを入れると即座に有効化

3.1.2 埋め込み位置の選択

位置 説明 推奨ケース
<head> ページの読み込み時に最初に実行 Google Tag Manager、メタタグ系
</body>直前 ページの表示後に実行(推奨) Google Analytics、チャットボット

推奨: 迷った場合は </body>直前 を選択してください。ページの読み込み速度に影響しません。

  1. 「作成」ボタンをクリック
  2. スクリプトが作成され、有効化した場合は即座に全ページに埋め込まれる

4. カスタムスクリプトの編集・削除

4.1 編集手順

  1. カスタムスクリプト一覧から対象スクリプトの 「編集」ボタンをクリック
  2. 入力内容を変更
  3. 「更新」ボタンをクリック

4.2 有効化/無効化

スクリプトを削除せずに一時的に無効化できます。

  1. カスタムスクリプト一覧から対象スクリプトの 「無効化」ボタンをクリック
  2. 即座に無効化され、ページへの埋め込みが停止される

再有効化: 「有効化」ボタンをクリックすると、再びページに埋め込まれます。

4.3 削除手順

  1. カスタムスクリプト一覧から対象スクリプトの 「削除」ボタンをクリック
  2. 確認ダイアログが表示される:
    本当に削除しますか?
    
    ※ 専用の管理ページ(/teams/チーム名/custom-scripts)から削除する場合は「[スクリプト名]を削除してもよろしいですか?」と表示されます
  3. 「OK」をクリック
  4. スクリプトが削除され、ページへの埋め込みが停止される

注意: 削除は取り消せません。


5. カスタムスクリプトの具体例

5.1 Google Analytics 4(GA4)

<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag() {
    dataLayer.push(arguments);
  }
  gtag('js', new Date());
  gtag('config', 'G-XXXXXXXXXX');
</script>
  • 埋め込み位置: </body>直前(推奨)
  • 用途: アクセス解析、ページビュー計測

5.2 Channel Talk(チャットサポート)

<script>
  (function () {
    var w = window;
    if (w.ChannelIO) {
      return w.console.error('ChannelIO script included twice.');
    }
    var ch = function () {
      ch.c(arguments);
    };
    ch.q = [];
    ch.c = function (args) {
      ch.q.push(args);
    };
    w.ChannelIO = ch;
    function l() {
      if (w.ChannelIOInitialized) {
        return;
      }
      w.ChannelIOInitialized = true;
      var s = document.createElement('script');
      s.type = 'text/javascript';
      s.async = true;
      s.src = 'https://cdn.channel.io/plugin/ch-plugin-web.js';
      var x = document.getElementsByTagName('script')[0];
      x.parentNode.insertBefore(s, x);
    }
    if (document.readyState === 'complete') {
      l();
    } else {
      w.addEventListener('DOMContentLoaded', l);
      w.addEventListener('load', l);
    }
  })();

  ChannelIO('boot', {
    pluginKey: 'YOUR_PLUGIN_KEY',
  });
</script>
  • 埋め込み位置: </body>直前
  • 用途: カスタマーサポート、チャット

5.3 Google Tag Manager(GTM)

<!-- Google Tag Manager -->
<script>
  (function (w, d, s, l, i) {
    w[l] = w[l] || [];
    w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' });
    var f = d.getElementsByTagName(s)[0],
      j = d.createElement(s),
      dl = l != 'dataLayer' ? '&l=' + l : '';
    j.async = true;
    j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
    f.parentNode.insertBefore(j, f);
  })(window, document, 'script', 'dataLayer', 'GTM-XXXXXXX');
</script>
<!-- End Google Tag Manager -->
  • 埋め込み位置: <head>
  • 用途: タグ一元管理

6. セキュリティ上の注意

6.1 信頼できるサービスのみ使用

カスタムスクリプトはそのまま実行されるため、以下に注意してください:

  • 公式サイトから提供されたコードのみ使用
  • 信頼できる外部サービスのみ統合
  • 出所不明のスクリプトは絶対に使用しない
  • 個人情報を送信するスクリプトには注意

6.2 動作確認

スクリプトを追加した後は、必ず以下を確認してください:

  1. ページが正常に表示される
  2. コンソールエラーが出ていない
  3. 外部サービスが正しく動作している

確認方法:

  1. ブラウザのデベロッパーツールを開く(F12キー)
  2. Consoleタブでエラーがないか確認
  3. Networkタブでスクリプトが読み込まれているか確認

7. よくある質問

Q1: カスタムスクリプトが動作しない

A: 以下を確認してください:

  1. 有効化されているか? - 一覧ページで「有効」と表示されているか
  2. 埋め込み位置は正しいか? - サービスのドキュメントを確認
  3. コードに誤りがないか? - 公式サイトからコピペし直す
  4. ブラウザキャッシュをクリア - Ctrl+Shift+Deleteでキャッシュ削除

Q2: 5件以上のスクリプトを追加したい

A: 現在の仕様では5件が上限です。代わりに以下の方法を検討してください:

  • Google Tag Manager(GTM)を使用 - GTM経由で複数のタグを一元管理
  • 不要なスクリプトを削除 - 使っていないスクリプトを削除して枠を確保

Q3: Freeプランでカスタムスクリプトを使いたい

A: Freeプランではカスタムスクリプト機能は利用できません。StandardプランまたはTesterプランにアップグレードしてください。

詳細は プラン別機能 を参照してください。

Q4: スクリプトがすべてのページに表示される?

A: はい、有効化されたカスタムスクリプトはチーム内のすべてのページに埋め込まれます。特定のページだけに表示することはできません。

Q5: スクリプトの実行順序を制御したい

A: カスタムスクリプトは作成日時の古い順に実行されます。順序を変更したい場合は、一度削除して再作成してください。

Q6: スクリプトコードが長すぎてエラーになる

A: スクリプトコードは最大10,000文字です。それ以上の場合は、外部ファイルを読み込む形式に変更してください。

:

<script src="https://example.com/your-script.js"></script>

8. トラブルシューティング

8.1 「カスタムスクリプトは5件まで登録できます」と表示される

原因: 既に5件のスクリプトが登録されている

対処法: 不要なスクリプトを削除してから再度作成してください

8.2 ページの読み込みが遅くなった

原因: <head>内に重いスクリプトを埋め込んでいる

対処法: 埋め込み位置を</body>直前に変更してください

8.3 他のスクリプトとの競合

原因: 複数のスクリプトが干渉している

対処法:

  1. 一度すべてのスクリプトを無効化
  2. 1つずつ有効化して、どのスクリプトが原因か特定
  3. 競合するスクリプトを削除または設定を調整

9. ベストプラクティス

9.1 スクリプト管理のコツ

  • わかりやすい名前をつける - 「スクリプト1」ではなく「Google Analytics」
  • 説明を記入する - 後から見返したときに用途がわかるように
  • 必要なものだけ有効化 - 使っていないスクリプトは無効化または削除
  • GTMを活用 - 複数のタグはGoogle Tag Managerで一元管理

9.2 パフォーマンス最適化

  • 非同期読み込みを推奨 - async属性をつける
  • </body>直前を優先 - ページの表示速度を優先
  • 不要なスクリプトは削除 - 使っていないサービスのスクリプトは削除

9.3 セキュリティ対策

  • 公式サイトからコピー - 必ず公式ドキュメントからコードを取得
  • 定期的に見直し - 使っていないサービスのスクリプトは削除
  • 権限管理 - 管理者のみがスクリプトを追加できるようにする

次のステップ