GoogleビジネスプロフィールのMEO対策で実績が出ている事例・記事をまとめました。プロフィール充実 / 口コミ返信 / 口コミ増加の3つの施策別に整理しています。
最終更新: 2026-05-15
| # app/controllers/concerns/track_events.rb | |
| module TrackEvents | |
| extend ActiveSupport::Concern | |
| included do | |
| helper_method :render_data_layer_events | |
| delegate :tag, to: :view_context, private: true | |
| end | |
| def data_layer_events = flash[:data_layer_events] ||= [] |
| module HtmlTagHelper | |
| NORMAL_TAGS = %i[ | |
| a abbr address article aside audio b bdi bdo blockquote body button canvas caption | |
| cite code colgroup data datalist dd del details dfn dialog div dl dt em fieldset figcaption figure | |
| footer form h1 h2 h3 h4 h5 h6 header hgroup html i iframe ins kbd label legend li main map mark menu | |
| meter nav noscript object ol optgroup option output p picture pre progress q rp rt ruby s samp script | |
| section select small span strong style sub summary sup table tbody td template textarea tfoot th thead | |
| time title tr u ul var video | |
| ] |
| { | |
| "version": "0.2.0", | |
| "configurations": [ | |
| { | |
| "type": "node", | |
| "request": "launch", | |
| "name": "Zenn Preview", | |
| "runtimeExecutable": "npx", | |
| "runtimeArgs": ["zenn", "preview"], | |
| "cwd": "${workspaceFolder}", |
| module GtmHelper | |
| GTM_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','%s');".freeze | |
| GTM_IFRAME_URL = "https://www.googletagmanager.com/ns.html?id=%s".freeze | |
| def gtm_key = @gtm_key ||= Rails.application.config_for(:gtm)["key"] || "SET_GTM_KEY" | |
| def render_gtm_head = tag.script(GTM_SCRIPT % gtm_key, escape: false) |
| #!/bin/bash | |
| REPO="yapr/taskhub" | |
| temp_file=$(mktemp) | |
| gh issue list --repo "$REPO" --state open > "$temp_file" | |
| random_issue=$(shuf -n 1 "$temp_file") | |
| rm "$temp_file" | |
| issue_number=$(echo "$random_issue" | awk '{print $1}') | |
| gh issue view "$issue_number" --repo "$REPO" --web |
| $(document).one 'turbolinks:load', -> | |
| if document.documentElement.hasAttribute('data-turbolinks-preview') | |
| return | |
| headers = {} | |
| csrfTokenElement = document.querySelector('meta[name="csrf-token"]') | |
| headers['X-CSRF-Token'] = csrfTokenElement.content if csrfTokenElement | |
| $('div[data-render-async-path]').each (_i, div) -> | |
| $.ajax( | |
| url: $(this).data('render-async-path') | |
| method: 'GET' |
| # frozen_string_literal: true | |
| module Gretel | |
| module ViewHelpers | |
| delegate :breadcrumbs_json_ld, to: :gretel_renderer | |
| end | |
| class Renderer | |
| # rubocop:disable Rails/OutputSafety | |
| def breadcrumbs_json_ld |