WEB担当者の備忘録 https://liapoc.com Sat, 28 Dec 2024 00:41:47 +0000 ja hourly 1 https://wordpress.org/?v=6.7.1 https://liapoc.com/_CMS/wp-content/uploads/2016/01/cropped-logo_kihon-75x75.png WEB担当者の備忘録 https://liapoc.com 32 32 Meta広告をGASで自動でGoogleスプレッドシートに記入 https://liapoc.com/meta_api_gas.html https://liapoc.com/meta_api_gas.html#comments <![CDATA[MITSUI]]> Thu, 24 Oct 2024 08:36:51 +0000 <![CDATA[広告]]> https://liapoc.com/?p=4490 <![CDATA[

Google Apps Script(GAS)を使ってFacebook広告の費用などをGoogleスプレッドシートに自動転記する手順について、詳細に解説します。以下は、GASでFacebook Ads APIとGoogl […]]]>
<![CDATA[

Google Apps Script(GAS)を使ってFacebook広告の費用などをGoogleスプレッドシートに自動転記する手順について、詳細に解説します。以下は、GASでFacebook Ads APIとGoogle Sheets APIを利用する流れです。

Facebook Ads APIのセットアップ

Facebook Developerアカウントの作成

Facebook for Developersにアクセスして、開発者アカウントを作成します(未作成の場合)。

アプリの作成

  1. Facebook for Developersのダッシュボードで「Create App」(アプリを作成)をクリック。
  2. 「Manage Business Integrations」を選択し、アプリの名前や目的を設定して作成します。

Facebook Ads APIの有効化

  1. アプリ作成後、アプリのダッシュボードで「アプリの製品」から「Marketing API」を追加します。
  2. 「マーケティングAPI」を追加したら、アプリ内でアクセストークンを取得する必要があります。

今回取得するトークンは短期有効のトークンのため、後ほど長期有効なトークンへ変更します。

Facebook Ads APIのアクセストークン取得

  1. アプリの設定から「ツール」に移動し、「アクセス トークンツール」を開きます。
  2. Facebook広告アカウントに対する権限を持つユーザーアクセストークンを生成します。
  3. 必要なパーミッション(例: ads_read)を設定し、トークンをコピーします。

GASの設定

Googleスプレッドシートの準備

  • Googleスプレッドシートを作成し、広告データを格納するシートを用意します。

Google Apps Scriptの設定

  1. Googleスプレッドシートのメニューから「拡張機能」 > 「Apps Script」を開きます。
  2. 新しいスクリプトプロジェクトを作成し、以下のようなコードを入力します。
  3. トークンは直接コードに記入せず、スプレッドシートに記入します。自動更新する際に便利なためです。
// スプレッドシートからアクセストークンを取得する関数
function facebook_getAccessToken() {
  var sheet = SpreadsheetApp.openById('スプレッドシートID').getSheetByName('トークン管理');
  return sheet.getRange(1, 1).getValue(); // 1行目1列目からトークンを取得
}

// 前日のデータを取得するために日付を取得
function facebook_getYesterdayDate() {
  var yesterday = new Date();
  yesterday.setDate(yesterday.getDate() - 1);
  var year = yesterday.getFullYear();
  var month = ('0' + (yesterday.getMonth() + 1)).slice(-2);  // 月を2桁に
  var day = ('0' + yesterday.getDate()).slice(-2);  // 日を2桁に
  return year + '-' + month + '-' + day;
}

// Facebook Ads APIからすべてのキャンペーンIDを取得する関数
function facebook_getCampaignIds() {
  var accessToken = facebook_getAccessToken();  // スプレッドシートからアクセストークンを取得
  var adAccountId = 'Facebook広告アカウントID';  // Facebook広告アカウントID
  var apiVersion = 'v21.0';  // 使用するAPIのバージョン

  var url = `https://graph.facebook.com/${apiVersion}/act_${adAccountId}/campaigns?fields=id,name&access_token=${accessToken}`;

  var response = UrlFetchApp.fetch(url);
  var jsonData = JSON.parse(response.getContentText());

  return jsonData.data;
}

// キャンペーンごとに広告データを取得する関数
function getFacebookAdsDataForCampaign(campaignId) {
  var accessToken = facebook_getAccessToken();  // スプレッドシートからアクセストークンを取得
  var apiVersion = 'v21.0';  // 使用するAPIのバージョン
  var yesterday = facebook_getYesterdayDate();  // 前日の日付を取得

  // 指定されたキャンペーンIDのデータを取得するURL
  var url = `https://graph.facebook.com/${apiVersion}/${campaignId}/insights?fields=campaign_name,clicks,spend,impressions,ctr,cpc,actions&time_range[since]=${yesterday}&time_range[until]=${yesterday}&access_token=${accessToken}`;
  
  var response = UrlFetchApp.fetch(url);
  var jsonData = JSON.parse(response.getContentText());

  return jsonData.data;
}

// 取得した広告データをスプレッドシートにキャンペーンごとに書き込む関数
function facebook_writeFacebookAdsDataToSheet() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('facebook'); // '広告レポート' シートを指定
  var lastRow = sheet.getLastRow();  // 最終行を取得

  // ヘッダー行を設定(必要に応じてカスタマイズ)
  if (lastRow === 0) {
    sheet.getRange(1, 1).setValue('Day');
    sheet.getRange(1, 2).setValue('Campaign name');
    sheet.getRange(1, 3).setValue('Clicks (all)');
    sheet.getRange(1, 4).setValue('Results');
    sheet.getRange(1, 5).setValue('Amount spent');
    sheet.getRange(1, 6).setValue('Impressions');
    sheet.getRange(1, 7).setValue('CTR (all)');
    sheet.getRange(1, 8).setValue('CPC (All)');
    lastRow = 1;  // ヘッダーの次からデータを書き込む
  }

  // 全キャンペーンIDを取得
  var campaigns = facebook_getCampaignIds();

  // 各キャンペーンのデータを取得して書き込む
  for (var c = 0; c < campaigns.length; c++) {
    var campaignId = campaigns[c].id;
    var campaignName = campaigns[c].name;  // ここで campaignName を取得
    var adsData = getFacebookAdsDataForCampaign(campaignId);

    for (var i = 0; i < adsData.length; i++) {
      var clicks = adsData[i].clicks;
      var spend = adsData[i].spend;
      var impressions = adsData[i].impressions;
      var ctr = adsData[i].ctr;
      var cpc = adsData[i].cpc;
      var actions = adsData[i].actions || [];  // コンバージョンや結果データ
      var results = '';  // 結果が複数ある場合の処理

      // actions に複数の結果が含まれている場合、そのうちの"conversion"などを探す
      for (var j = 0; j < actions.length; j++) {
        if (actions[j].action_type === 'offsite_conversion') {
          results = actions[j].value;
          break;
        }
      }

      // 日付を取得
      var yesterday = facebook_getYesterdayDate();

      // 新しい行にデータを追加
      lastRow++;
      sheet.getRange(lastRow, 1).setValue(yesterday);  // 日付
      sheet.getRange(lastRow, 2).setValue(campaignName);  // キャンペーン名
      sheet.getRange(lastRow, 3).setValue(clicks);  // クリック数
      sheet.getRange(lastRow, 4).setValue(results);  // 結果(コンバージョンなど)
      sheet.getRange(lastRow, 5).setValue(spend);  // 費用
      sheet.getRange(lastRow, 6).setValue(impressions);  // インプレッション数
      sheet.getRange(lastRow, 7).setValue(ctr);  // CTR
      sheet.getRange(lastRow, 8).setValue(cpc);  // CPC
    }
  }
}

トリガー設定

上記のコードをトリガーで日時指定すれば完了です。

Facebookのアクセストークンには、短期トークン長期トークンがあり、長期トークンを取得することで、APIの呼び出しを長期的に利用できます。以下は、Facebookのアクセストークンを長期有効なトークンに更新するための手順です。

長期有効なアクセストークンの取得手順

  1. Facebook Developerアカウントでアプリ作成
    • まず、Facebook for Developersにアクセスし、必要なアプリを作成しておく必要があります。これは、既に設定している場合は省略できます。
  2. 短期アクセストークンの取得
    • 短期のアクセストークンは有効期限が短く(通常は1〜2時間)、これを使って長期トークンを取得するためのステップです。
    短期トークンの取得方法:
    1. Graph API Explorerにアクセスします。
    2. 使用するFacebookアプリを選択し、ads_readbusiness_managementなど、必要な権限を選択します。
    3. 「アクセストークンを取得」ボタンをクリックし、短期アクセストークンを生成します。
    4. 生成されたトークンをメモしておきます(後で使用)。
  3. 短期トークンを長期トークンに変換
    • 短期トークンを取得したら、それを長期トークンに変換します。長期トークンの有効期限は最大60日です。
    長期トークンに変換するためのURL(APIリクエスト):makefileコードをコピーする
  4. https://graph.facebook.com/v21.0/oauth/access_token? grant_type=fb_exchange_token& client_id={app-id}& client_secret={app-secret}& fb_exchange_token={short-lived-token}
    • client_id: アプリのID(Facebook for Developersで確認可能)
    • client_secret: アプリのシークレット(Facebook for Developersの「アプリ」 > 「設定」 > 「基本情報」で確認可能)
    • fb_exchange_token: 取得した短期トークン
    https://graph.facebook.com/v21.0/oauth/access_token? grant_type=fb_exchange_token& client_id=123456789012345& client_secret=your_app_secret& fb_exchange_token=your_short_lived_token
    • このURLにアクセス(ブラウザまたはAPIツールを使用)すると、長期アクセストークンが返されます。返されるレスポンスには以下のような内容が含まれます。
    { "access_token": "your_long_lived_token", "token_type": "bearer", "expires_in": 5184000 }
    • access_tokenが新しい長期アクセストークンです。
  5. 長期アクセストークンの保存・管理
    • 長期アクセストークンは約60日間有効ですが、期限が切れる前に再取得する必要があります。自動化する場合は、このトークンを適切に管理し、トークンの更新をスクリプトで定期的に行うのが理想です。

トークンの更新方法(自動化)

トークンの有効期限が60日程度なので、スクリプトを自動化して、トークンの期限が切れる前に新しいトークンを取得する仕組みを作成することができます。たとえば、以下のようなフローで実現できます。

  • トークン管理用のスプレッドシートを作成し、シート名「トークン管理」を作成
  • A1に長期トークンを貼り付ける
  • 以下のGASをセットする

以下のコードのdailyCheckAndRefreshTokenを週1で確認することでトークンが14日前になると自動で更新されます。


function saveAccessToken(token) {
  var sheet = SpreadsheetApp.openById('スプレッドシートID').getSheetByName('トークン管理');
  sheet.getRange(1, 1).setValue(token); // 1行1列目にトークンを保存
}

function loadAccessToken() {
  var sheet = SpreadsheetApp.openById('スプレッドシートID').getSheetByName('トークン管理');
  return sheet.getRange(1, 1).getValue(); // 1行1列目からトークンを取得
}


function checkTokenExpiration(token) {
  var appId = 'アプリID';  // アプリIDを指定
  var appSecret = 'アプリシークレット';  // アプリシークレットを指定
  
  var url = `https://graph.facebook.com/debug_token?input_token=${token}&access_token=${appId}%7C${appSecret}`;

  var response = UrlFetchApp.fetch(url);
  var json = JSON.parse(response.getContentText());

  if (!json.data || !json.data.expires_at) {
    Logger.log('有効期限が取得できませんでした。トークンが無効な可能性があります。');
    throw new Error('トークンの有効期限を取得できませんでした。');
  }
  
  var expirationTime = json.data.expires_at; 
  var expirationDate = new Date(expirationTime * 1000); 

  Logger.log('トークンの有効期限: ' + expirationDate);
  return expirationDate;
}

function refreshAccessToken() {
  var clientId = 'アプリID';
  var clientSecret = 'アプリシークレット';
  var shortLivedToken = loadAccessToken(); // 現在のトークンを取得

  var url = `https://graph.facebook.com/v21.0/oauth/access_token?grant_type=fb_exchange_token&client_id=${clientId}&client_secret=${clientSecret}&fb_exchange_token=${shortLivedToken}`;

  try {
    var response = UrlFetchApp.fetch(url);
    var json = JSON.parse(response.getContentText());

    if (!json.access_token) {
      Logger.log('新しいトークンを取得できませんでした。レスポンス: ' + JSON.stringify(json));
      throw new Error('新しいトークンを取得できませんでした。');
    }
    
    var newToken = json.access_token;
    saveAccessToken(newToken);
    Logger.log('新しいトークンを取得しました: ' + newToken);
  } catch (e) {
    Logger.log('トークンの更新中にエラーが発生しました: ' + e.message);
    throw e; // 必要に応じて再スロー
  }
}

function dailyCheckAndRefreshToken() {
  try {
    var token = loadAccessToken();
    var expirationDate = checkTokenExpiration(token);
    
    var now = new Date();
    var daysUntilExpiration = (expirationDate - now) / (1000 * 60 * 60 * 24);

    if (daysUntilExpiration < 14) {
      Logger.log('トークンの有効期限が近づいています。トークンを更新します。');
      refreshAccessToken();
    } else {
      Logger.log('トークンはまだ有効です。');
    }
  } catch (e) {
    Logger.log('トークンの確認または更新中にエラーが発生しました: ' + e.message);
  }
}

]]>
https://liapoc.com/meta_api_gas.html/feed 2
Meta広告の動的なパラメーター https://liapoc.com/meta_parameter.html https://liapoc.com/meta_parameter.html#respond <![CDATA[MITSUI]]> Thu, 24 Oct 2024 08:17:23 +0000 <![CDATA[広告]]> https://liapoc.com/?p=4487 <![CDATA[

Meta広告(旧Facebook広告)で、広告のリンク先URLに動的な変数(パラメーター)を追加して、ユーザーやキャンペーンに関する情報をトラッキングすることが可能です。 これは、動的URLパラメーターまたはUTMパラメ […]]]>
<![CDATA[

Meta広告(旧Facebook広告)で、広告のリンク先URLに動的な変数(パラメーター)を追加して、ユーザーやキャンペーンに関する情報をトラッキングすることが可能です。

これは、動的URLパラメーターまたはUTMパラメーターとして知られ、Google Analyticsやその他の解析ツールと組み合わせて広告の効果を計測するために活用されます。

Meta広告で使える主な変数としては、以下のようなものがあります:

1. 動的パラメーター(Dynamic URL Parameters)

Meta広告は以下の動的パラメーターをサポートしています。

  • {{campaign.name}}: 広告キャンペーン名
  • {{campaign.id}}: 広告キャンペーンID
  • {{adset.name}}: 広告セット名
  • {{adset.id}}: 広告セットID
  • {{ad.name}}: 広告名
  • {{ad.id}}: 広告ID
  • {{placement}}: 広告が表示された配置(例: フィード、ストーリーズ)
  • {{site_source_name}}: 広告の表示場所(Facebook、Instagramなど)

これらの変数を広告リンクのURLに挿入することで、クリックが発生したときにその情報がURLパラメーターとして自動的に追加されます。

2. 使用例

例えば、以下のようなURLを設定することで、トラッキングに使用できます。

https://example.com?campaign_name={{campaign.name}}&adset_name={{adset.name}}&ad_id={{ad.id}}&placement={{placement}}

クリックされた場合、実際のURLは次のような形に展開されます:

https://example.com?campaign_name=Campaign1&adset_name=AdsetA&ad_id=123456789&placement=feed

3. UTMパラメーターと組み合わせる

UTMパラメーター(Google Analyticsでトラフィックを分析するためのパラメーター)も使えます。例えば、以下のように設定できます:

https://example.com?utm_source=facebook&utm_medium=cpc&utm_campaign={{campaign.name}}&utm_content={{ad.id}}&utm_term={{placement}}

これにより、Google Analyticsでどの広告がどのキャンペーンからトラフィックをもたらしているかを簡単に追跡することができます。

まとめ

Meta広告では、キャンペーン名や広告IDなどを動的にURLに埋め込むことが可能です。これにより、広告のパフォーマンスを詳細にトラッキングでき、より効果的な広告運用が実現できます。

]]>
https://liapoc.com/meta_parameter.html/feed 0
Googleフォームで募集枠を自動で締め切る!応募者数制限のGAS https://liapoc.com/formautoclose.html https://liapoc.com/formautoclose.html#respond <![CDATA[MITSUI]]> Tue, 02 Apr 2024 16:44:22 +0000 <![CDATA[Googleフォーム]]> https://liapoc.com/?p=4399 <![CDATA[

ブログ運営やイベント開催で、Googleフォームを活用する機会は多いですよね。しかし、募集人数に達した時点でフォームを閉め忘れると、想定以上の参加申し込みを受け付けてしまい、大変なことになりかねません。 そこで今回は、G […]]]>
<![CDATA[

ブログ運営やイベント開催で、Googleフォームを活用する機会は多いですよね。しかし、募集人数に達した時点でフォームを閉め忘れると、想定以上の参加申し込みを受け付けてしまい、大変なことになりかねません。

そこで今回は、Googleフォームで指定の送信数を超えたら自動でフォームを締め切る方法をご紹介します。

Googleフォームで募集枠を自動で締め切る必要手順

  1. Googleフォームを開き、右上の「…」をクリック
  2. 「スクリプトエディタ」を選択
  3. GASを記述
  4. 「保存」し「実行」をクリック
  5. トリガー設定画面で「編集」をクリック
  6. 「イベントのソース」で「フォーム送信」を選択
  7. 「保存」をクリック

フォーム側での設定

Googleフォームを開き、右上の「…」をクリック

「スクリプトエディタ」を選択

GASを記述

以下をコピペしてください

function onFormSubmit(e) {
  let form = FormApp.getActiveForm();
  let formResponses = form.getResponses();
  if (formResponses.length >= 100) {
    form.setAcceptingResponses(false);
  }
}

100の部分が申し込み上限数です。50枠にしたい場合は100の部分を変更してください。

  1. FormApp.getActiveForm()を使用して、現在アクティブなフォームを取得します。
  2. form.getResponses()を使用して、フォームのすべての回答を取得します。
  3. formResponses.lengthをチェックして、フォームにすでに100件以上の回答があるかどうかを確認します。
  4. もし100件以上の回答があれば、form.setAcceptingResponses(false)を使用して、以降の回答を受け付けないようにフォームを設定


「保存」し「実行」をクリック

以下のような承認が必要とでたら、権限を確認で先に進めてください。

トリガー設定画面

「イベントのソース」で「フォーム送信」を選択、「保存」をクリック

この機能を使えば、指定の送信数に達した時点で自動的にフォームを閉鎖できます。

もう締め切り忘れの心配はありません!

]]>
https://liapoc.com/formautoclose.html/feed 0
.htaccessのリダイレクト 書き方・設置場所・設定方法 https://liapoc.com/htaccess.html https://liapoc.com/htaccess.html#respond <![CDATA[MITSUI]]> Tue, 09 May 2023 13:24:02 +0000 <![CDATA[サーバー]]> https://liapoc.com/?p=4315 <![CDATA[

.htaccessとは .htaccessとは、Apacheサーバーで動作するWebサイトの設定ファイルの一種です。.htaccessを使うと、Webサイトの動作や表示を細かくカスタマイズすることができます。 例えば、U […]]]>
<![CDATA[

.htaccessとは

.htaccessとは

.htaccessとは、Apacheサーバーで動作するWebサイトの設定ファイルの一種です。.htaccessを使うと、Webサイトの動作や表示を細かくカスタマイズすることができます。

例えば、URLの書き換えやリダイレクト、アクセス制限、エラーページの設定などが可能です。

.htaccessファイルで設定できること

  1. リダイレクトの設定
  • 特定のURLを別のURLにリダイレクトすることができます。例えば、古いページを新しいページにリダイレクトすることができます。
  1. ディレクトリアクセスの制御
  • 特定のディレクトリへのアクセスを制御することができます。例えば、Basic認証を設定することで、ユーザー名とパスワードを必要とするようにできます。
  1. MIMEタイプの設定
  • MIMEタイプは、Webサーバーがファイルをどのように処理するかを示す情報です。.htaccessファイルを使用して、MIMEタイプを設定することができます。
  1. キャッシュコントロールの設定
  • キャッシュコントロールを設定することで、Webページの読み込み速度を向上させることができます。例えば、Expiresヘッダーを設定することで、ブラウザーがファイルをキャッシュする時間を指定することができます。
  1. URLの書き換え
  • URLの書き換えを使用することで、特定のURLをより短く、親しみやすくすることができます。例えば、/products?id=1のような長いURLを/products/1のような短いURLに書き換えることができます。

.htaccessファイルの設置場所と注意点

.htaccessファイルの設置場所と注意点

htaccessファイルは、Webサイトのルートディレクトリやサブディレクトリに置くことができます。.htaccessファイルの名前は、先頭にドットが付いており、拡張子がありません。

この名前は変更することができません。また、.htaccessファイルはテキストファイルであり、編集する際にはテキストエディタを使用します。

  1. 設置場所:
  • .htaccessファイルは、その設定が適用されるディレクトリに直接配置する必要があります。つまり、ディレクトリ内にあるファイルやサブディレクトリにも影響を与えます。
  1. 設定の優先度:
  • .htaccessファイルによって設定された値は、Webサーバーの設定ファイルよりも優先されます。つまり、.htaccessファイルで定義された設定が優先されます。
  1. セキュリティに関する注意点:
  • .htaccessファイルには、Webサイトのアクセス制御やセキュリティ関連の設定が含まれることがあります。そのため、.htaccessファイルは、機密性の高い情報を含まないようにする必要があります。
  1. 設定可能なファイルの種類:
  • .htaccessファイルは、Webサーバーが認識するファイルタイプに適用されます。通常、.htaccessファイルは、HTML、PHP、CSS、Javascriptなどのウェブコンテンツに使用されます。
  1. 複数のファイルがある場合の注意点:
  • 複数の.htaccessファイルが存在する場合、設定がどのファイルから読み込まれるかに注意する必要があります。通常、Webサーバーは、.htaccessファイルのルールを上から下へ順番に読み込んでいきます。

.htaccessのメリット

.htaccessのメリット

.htaccessファイルを使用するメリットは、Webサーバーのメイン設定ファイル(httpd.conf)を変更する必要がないことです。

これにより、Webサイトの管理者は、自分のWebサイトに対して柔軟に設定を行うことができます。また、.htaccessファイルを変更した場合は、Webサーバーを再起動する必要がありません。

ただし、.htaccessファイルを使用するデメリットもあります。それは、.htaccessファイルが多くなると、Webサーバーのパフォーマンスに影響を与える可能性があることです。

また、.htaccessファイルの設定は、メイン設定ファイルや他の.htaccessファイルと競合する場合があります。そのため、.htaccessファイルを使用する際には、注意深く設定を行う必要があります。

.htaccessを使用したリダイレクト

.htaccessを使用したリダイレクト

今回は、.htaccessを使ってWebサイトのURLをリダイレクトする方法について解説します。リダイレクトとは、あるURLにアクセスしたときに、別のURLに自動的に転送することです。リダイレクトには様々な理由がありますが、主なものは以下のようなものです。

  • Webサイトのドメインや構造を変更したときに、旧URLから新URLへ誘導するため
  • Webサイトのセキュリティを高めるために、httpからhttpsへ強制的に移行するため
  • Webサイトのコンテンツを統合や削除したときに、関連するURLへ案内するため
  • WebサイトのSEO(検索エンジン最適化)を向上させるために、重複するURLや不要なパラメーターを排除するため

.htaccessでリダイレクトを設定するには、まず.htaccessファイルを作成してWebサイトのルートディレクトリ(通常はpublic_htmlやwwwなど)にアップロードします。

.htaccessファイルはテキストエディタで作成できますが、ファイル名の先頭にドット(.)があることに注意してください。また、.htaccessファイルは非常に強力な設定ファイルなので、間違った記述をするとWebサイトが正常に動作しなくなる可能性があります。

そのため、.htaccessファイルを編集する前に必ずバックアップを取っておくことをおすすめします。

.htaccessファイルを作成したら、次にリダイレクトの種類と書き方を決めます。

リダイレクトには大きく分けて2種類あります。一つは301リダイレクトで、恒久的なリダイレクトです。もう一つは302リダイレクトで、一時的なリダイレクトです。301リダイレクトはWebサイトのドメインや構造を変更した場合や、httpからhttpsへ移行した場合などに使います。

302リダイレクトはWebサイトのコンテンツを一時的に別のURLへ移動した場合や、メンテナンス中やキャンペーン期間中などに使います。

301リダイレクト

301リダイレクトとは、ウェブサイトのURLが恒久的に変更された場合に、古いURLから新しいURLへと自動的に移動させる方法です。これにより、ユーザーや検索エンジンに対して、ウェブサイトの最新の情報を提供することができます。また、301リダイレクトは、古いURLの検索エンジンのランキングやリンクの価値を新しいURLに引き継ぐことができるため、SEOにも有効です。

302リダイレクト

302リダイレクトとは、ウェブサイトのURLが一時的に変更された場合に、古いURLから新しいURLへと自動的に移動させる方法です。これは、メンテナンスやキャンペーンなどの期間限定の目的で、ウェブサイトの内容を変更したい場合に便利です。しかし、302リダイレクトは、古いURLの検索エンジンのランキングやリンクの価値を新しいURLに引き継ぐことができないため、SEOには不利です。

301リダイレクトと302リダイレクトの書き方は、ウェブサーバーの種類や設定方法によって異なりますが、一般的な例を紹介します。

301リダイレクトの詳しい方法

301リダイレクトの詳しい方法

詳細は以下の記事に記載しています

https://liapoc.com/htaccess_redirect.html

wwwありなしを統一する方法は以下の記事に記載しています。

https://liapoc.com/htaccess_301.html

.htaccessでよくある質問

.htaccessでよくある質問
Q
.htaccessとは何ですか?
A

.htaccessは、Apache Webサーバーで使用される設定ファイルの1つで、ウェブサイトの設定を変更するために使用されます。例えば、リダイレクト、認証、圧縮、キャッシュなどが設定できます。

Q
.htaccessファイルをどこに配置すればよいですか?
A

.htaccessファイルは、ウェブサイトのルートディレクトリに配置する必要があります。このファイルは、そのディレクトリ以下のすべてのファイルに影響を与えます。

Q
リダイレクトを設定するにはどうすればよいですか?
A

リダイレクトを設定するには、以下のようなコードを.htaccessファイルに追加します。

Redirect 301 /oldpage.html https://example.com/newpage.html

この例では、古いページ「oldpage.html」を新しいページ「newpage.html」にリダイレクトしています。こちらの記事にも詳しく記載していますのでご覧ください。

Q
Basic認証を設定するにはどうすればよいですか?
A

Basic認証を設定するには、以下のようなコードを.htaccessファイルに追加します。

AuthType Basic
AuthName "Restricted Area"
AuthUserFile /path/to/.htpasswd
Require valid-user

この例では、「Restricted Area」という名前で保護された領域を作成し、ユーザー名とパスワードを.htpasswdファイルで指定します。

Q
キャッシュを設定するにはどうすればよいですか?
A

キャッシュを設定するには、以下のようなコードを.htaccessファイルに追加します。

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresDefault "access 1 month"
</IfModule>

この例では、画像やCSSなどのファイルタイプごとにキャッシュの有効期間を設定しています。

]]>
https://liapoc.com/htaccess.html/feed 0
Web技術は未来を担う不可欠なツール https://liapoc.com/web-technology.html https://liapoc.com/web-technology.html#respond <![CDATA[MITSUI]]> Tue, 18 Apr 2023 09:43:24 +0000 <![CDATA[Web担当者]]> https://liapoc.com/?p=4266 <![CDATA[

Web技術は、現代社会において不可欠な存在となりました。私たちの日常生活はもちろん、ビジネスや社会インフラなどあらゆる分野で活用されています。 特に、COVID-19の影響でオンライン化が進んだことで、Web技術の重要性 […]]]>
<![CDATA[

Web技術は、現代社会において不可欠な存在となりました。私たちの日常生活はもちろん、ビジネスや社会インフラなどあらゆる分野で活用されています。

特に、COVID-19の影響でオンライン化が進んだことで、Web技術の重要性は一層高まりました。この記事では、Web技術の基礎から応用までを分かりやすく解説し、Web技術が今後ますます重要性を増していく理由について考察します。

Web技術とは何か?

Web技術とは、インターネットを通じて情報を配信するための技術のことです。具体的には、Webページを作成するためのHTMLやCSS、Webサイトを動的に操作するためのJavaScript、Webサーバーを構築するためのPHPやRubyなどが挙げられます。これらの技術を総称してWeb技術と呼びます。

Web技術の応用例

Web技術は、私たちの生活に身近な存在となっています。以下に、その代表的な応用例を紹介します。

  • オンラインショッピング
  • ソーシャルメディア
  • オンライン学習
  • クラウドサービス
  • オンラインゲーム
  • デジタルマーケティング

これらの応用例は、Web技術があってこそ実現できるものばかりです。特に、オンラインショッピングやオンライン学習は、COVID-19の影響で需要が急増しました。今後も、Web技術の応用範囲は拡大すると予想されています。

Web技術の未来性

Web技術の未来性は非常に高いと言えます。今後ますますオンライン化が進むことが予想されるため、Web技術を理解し活用できる人材はますます需要が高まっていくでしょう。

また、Web技術の発展によって、新しいビジネスモデルやサービスが生まれる可能性もあります。

Web技術の中でも、特に注目すべきはAI技術やIoT技術です。これらの技術が組み合わされることで、新たなビジネスモデルやサービスが生まれる可能性があります。例えば、AIを活用した自動翻訳サービスや、IoTを活用したスマートシティの実現などが挙げられます。

また、Web技術は教育分野においても重要性を増しています。オンライン学習の普及によって、地理的な制限を受けずに高品質な教育を受けることができるようになりました。

さらに、Web技術を活用したeラーニングシステムやオンラインコミュニティなどが生まれ、学びの場を拡大しています。

Web技術の課題と解決策

Web技術には、以下のような課題があります。

  • セキュリティの脆弱性
  • バグやエラーの発生
  • パフォーマンスの低下

これらの課題に対しては、以下のような解決策が考えられます。

セキュリティの脆弱性に対しては、SSLやTLSなどの暗号化技術を利用した通信の暗号化や、Webアプリケーションファイアウォールの導入などが有効です。

  • バグやエラーの発生に対しては、テスト工程の強化やコードレビューの実施などが有効です。
  • パフォーマンスの低下に対しては、Webサーバーの最適化や、CDNの導入などが有効です。

Web技術を学ぶメリットとデメリット

Web技術を学ぶメリットとしては、以下のようなものが挙げられます。

  • 就職に有利なスキルを身につけることができる
  • 自分のアイデアをWebサイトやアプリケーションとして実現できるようになる
  • インターネット上にある情報やサービスを理解し、自分の利益に生かせるようになる
  • 一方、Web技術を学ぶデメリットとしては、以下のようなものが挙げられます。
  • 技術の更新が早く、常に学び続ける必要がある
  • 技術が多岐にわたり、専門的な知識が必要になることがある
  • 自己学習が必要なため、時間や労力が必要になる

これらのメリット・デメリットを踏まえ、自分にとってWeb技術を学ぶ意義を考えることが大切です。

FAQ

Q
Web技術を学ぶために必要な知識は何ですか?
A

Web技術を学ぶためには、HTMLやCSS、JavaScript、PHPやRubyなどのプログラミング言語の基礎知識が必要です。

Q
Web技術を学ぶためにどのような方法がありますか?
A

オンラインコースや書籍、動画チュートリアルなどを利用することができます。また、Web開発の実務経験を積むことも有効です。

Q
Web技術を学ぶことで得られるスキルはどのようなものがありますか?
A

Web技術を学ぶことで、Webサイトやアプリケーションの制作や、Webマーケティングのスキル、Webサーバーの構築などのスキルが身につきます。

Q
Web技術には何があるのですか?
A

Web技術には、HTMLやCSS、JavaScript、PHPやRubyなどのプログラミング言語、Webサーバーやデータベースなどがあります。

まとめ

Web技術は、現代社会において不可欠な存在となっています。COVID-19の影響でオンライン化が進み、Web技術の重要性はますます高まっています。

Web技術は、AIやIoT技術と組み合わされることで、新たなビジネスモデルやサービスが生まれる可能性があります。一方で、セキュリティやバグ、パフォーマンスなどの課題もありますが、それらに対しては適切な対策があるため、Web技術は今後ますます発展していくことが予想されます。

Web技術を学ぶことで得られるスキルやメリット、デメリットを考慮し、自分にとってWeb技術を学ぶ意義を見出してみてはいかがでしょうか。

]]>
https://liapoc.com/web-technology.html/feed 0
Web担当者のためのSEO戦略 成功の秘訣とは? https://liapoc.com/web-manager-seo.html https://liapoc.com/web-manager-seo.html#respond <![CDATA[MITSUI]]> Tue, 18 Apr 2023 09:25:38 +0000 <![CDATA[Web担当者]]> https://liapoc.com/?p=4255 <![CDATA[

SEOとは、検索エンジン最適化の略称であり、ウェブサイトの可視性を高め、オンライン上でのビジネス成功に欠かせないものです。しかし、SEO戦略の世界は常に変化し続けており、Web担当者は常に最新の情報を把握する必要がありま […]]]>
<![CDATA[

SEOとは、検索エンジン最適化の略称であり、ウェブサイトの可視性を高め、オンライン上でのビジネス成功に欠かせないものです。しかし、SEO戦略の世界は常に変化し続けており、Web担当者は常に最新の情報を把握する必要があります。

本記事では、ウェブ担当者がSEO戦略で成功するための秘訣について詳しく解説します。

SEO戦略の重要性

SEO戦略は、オンライン上でビジネスを展開する上で不可欠な要素です。以下に、その重要性を紹介します。

  • 検索エンジン最適化により、ウェブサイトの検索結果上位表示が可能になります。これにより、多くのユーザーにアクセスされやすくなり、ビジネスの認知度を高めることができます。
  • SEO戦略により、ウェブサイトのコンテンツが最適化されます。これにより、ユーザーが求める情報を的確に提供できるようになり、ユーザーエクスペリエンスの向上につながります。
  • SEO戦略は、コスト効率の高いマーケティング手法の1つです。広告費をかけずに、多くのユーザーにアプローチすることができます。

以上のように、SEO戦略はビジネス成功に欠かせない要素です。

Web担当者がSEO戦略で成功するための秘訣

Web担当者がSEO戦略で成功するためには、以下のポイントに注意する必要があります。

キーワードの選定

キーワードの選定は、SEO戦略の中でも最も重要な要素の1つです。キーワードは、ユーザーが検索エンジンで検索する際に入力する言葉のことであり、ウェブサイトのコンテンツに適切なキーワードを含めることで、検索結果上位表示が可能になります。

以下に、キーワードの選定のポイントを紹介します。

  • ユーザーが求める情報に合わせたキーワードを選定することが重要です。
  • 競合が少なく、かつユーザーが多く検索するキーワードを選定することが望ましいです。
  • 長尾のキーワードを選定することで、より具体的な検索に対応できるようになります。

コンテンツの最適化

コンテンツの最適化は、ウェブ担当者がSEO戦略で成功するために欠かせないポイントです。以下に、コンテンツの最適化のポイントを紹介します。

  • キーワードを適切に配置することが重要です。ただし、キーワードスタッフィングは避けるようにしましょう。
  • メタタグを適切に設定することで、検索結果のタイトルやディスクリプションが表示されるようになります。
  • ユーザーエクスペリエンスを意識したコンテンツを作成しましょう。読みやすく、分かりやすいコンテンツは、ユーザーからの信頼を得ることができます。

リンクの構築

リンクの構築は、SEO戦略の中でも重要な要素の1つです。以下に、リンクの構築のポイントを紹介します。

  • 外部サイトからのリンクを獲得することが重要です。ただし、品質の低いサイトからのリンクは避けましょう。
  • 内部リンクを適切に設定することで、ウェブサイト内のコンテンツの関連性を高めることができます。
  • ソーシャルメディアなどを活用して、ウェブサイトへのアクセス数を増やすことができます。

モバイルフレンドリーなウェブサイトの作成

現在、モバイル端末からのウェブサイトアクセスは、PC端末からのアクセスを上回っています。そのため、モバイルフレンドリーなウェブサイトの作成が必須となっています。以下に、モバイルフレンドリーなウェブサイトの作成のポイントを紹介します。

  • レスポンシブデザインを採用することで、モバイル端末に最適化されたウェブサイトを作成することができます。
  • ページの読み込み速度を速めることが重要です。画像の最適化や、不要なJavaScriptの削除などにより、ページの読み込み速度を向上させましょう。
  • ユーザーがスムーズにウェブサイトを利用できるように、ナビゲーションやボタンの配置などを工夫しましょう。

アナリティクスの活用

SEO戦略の成果を測定するためには、アナリティクスツールを活用することが重要です。以下に、アナリティクスの活用方法を紹介します。

  • アクセス数やPV数などの基本的な情報だけでなく、コンバージョン率や直帰率なども把握しましょう。
  • ユーザーがどのようなキーワードでウェブサイトにアクセスしているか、どのようなコンテンツが人気なのかなどを把握し、SEO戦略の改善に役立てましょう。
  • 定期的にレポートを作成し、成果を分析することで、SEO戦略の改善点を把握しましょう。

最新のトレンドに対応

SEO戦略の世界は常に変化し続けており、最新のトレンドに対応することが重要です。以下に、最新のトレンドに対応する方法を紹介します。

  • Googleのアルゴリズムの変更に対応することが重要です。Googleは定期的にアルゴリズムを変更しており、その変更に対応することがSEO戦略の成功に欠かせません。
  • ローカルSEOにも対応することが望ましいです。地域に特化したキーワードや地図検索など、ローカルSEOに対応することで、地域密着型のビジネスにも効果的なSEO戦略を実施することができます。

FAQ

Q
SEO戦略の効果はいつ頃現れますか?
A

SEO戦略の効果は、実施後すぐに現れるわけではありません。ウェブサイトの規模や競合状況によって異なりますが、一般的には3ヶ月から6ヶ月程度の期間が必要です。

Q
SEO戦略において、キーワードの重要性は何ですか?
A

SEO戦略において、キーワードは非常に重要な要素の1つです。適切なキーワードを選定し、コンテンツ内に適切に配置することで、検索エンジンのランキングを上げることができます。

Q
SEO戦略に失敗した場合、どのような原因が考えられますか?
A

SEO戦略に失敗した場合、以下のような原因が考えられます。

  • キーワードの選定やコンテンツの最適化が不十分であったこと。
  • リンクの構築が不十分であったこと。
  • ウェブサイトのページ速度が遅かったこと。
  • アナリティクスの活用が不十分であったこと。

まとめ

SEO戦略は、ウェブサイトの可視性を高め、ビジネス成功に欠かせない要素です。

Web担当者は、キーワードの選定やコンテンツの最適化、リンクの構築、モバイルフレンドリーなウェブサイトの作成、アナリティクスの活用など、様々なポイントに注意しながら、最新のトレンドに対応したSEO戦略を実施することが重要です。

成功するためには、常に最新の情報を把握し、改善を続けることが欠かせません。

]]>
https://liapoc.com/web-manager-seo.html/feed 0
Web担当者の役割と責任について https://liapoc.com/web-manager.html https://liapoc.com/web-manager.html#respond <![CDATA[MITSUI]]> Tue, 18 Apr 2023 09:22:24 +0000 <![CDATA[Web担当者]]> https://liapoc.com/?p=4258 <![CDATA[

Web担当者とは、ウェブサイトの管理、運営、更新などを担当する人のことを指します。彼らの仕事は、企業や組織がオンラインで存在し、成長し続けることを支援することです。 ウェブサイトは企業の顔として重要な役割を果たすため、W […]]]>
<![CDATA[

Web担当者とは、ウェブサイトの管理、運営、更新などを担当する人のことを指します。彼らの仕事は、企業や組織がオンラインで存在し、成長し続けることを支援することです。

ウェブサイトは企業の顔として重要な役割を果たすため、Web担当者の役割はますます重要になっています。

この記事では、Web担当者が果たすべき役割や責任、成功するために必要なスキルや知識について詳しく説明します。

Web担当者の役割と責任

Web担当者は、ウェブサイトの管理と運営を通じて、企業のオンラインでの存在感を確立し、成長を支援する重要な役割を担っています。具体的には、以下のような役割や責任があります。

ウェブサイトの管理と更新

Web担当者は、企業や組織のウェブサイトの管理と更新を担当します。ウェブサイトのデザイン、コンテンツ、機能の改善や更新、セキュリティ対策などを行います。

また、ウェブサイトの分析や改善のためのデータ収集や分析も行います。

オンラインマーケティング

Web担当者は、ウェブサイトを通じて企業や組織のオンラインマーケティングを担当します。具体的には、SEO対策やコンテンツマーケティング、SNSの活用などを行います。

オンライン広告やメールマーケティングなどの戦略の立案や実行も行います。

セキュリティ管理

Web担当者は、ウェブサイトのセキュリティ管理も担当します。ハッカーからの攻撃やウイルス感染、データの漏洩などを防ぐために、セキュリティ対策を行います。ウェブサイトのバックアップや復旧策の準備も行います。

コミュニケーション

Web担当者は、企業や組織とのコミュニケーションを重視することが重要です。ウェブサイトの改善や更新のために、社内の関係者や外部の協力会社との連携が必要です。

また、顧客とのコミュニケーションも重要であり、問い合わせへの返信やフィードバックの収集などを行います。

成功するために必要なスキルや知識

Web担当者が成功するためには、以下のようなスキルや知識が必要です。

ウェブ技術

Web担当者は、ウェブサイトのデザインや開発に関する知識が必要です。HTML、CSS、JavaScriptなどのウェブ技術について理解しておくことが大切です。また、CMSやツールの使い方にも精通しておくことが重要です。

データ分析

Web担当者は、ウェブサイトの分析や改善のために、データ分析のスキルが必要です。Google Analyticsなどのツールを使い、ウェブサイトのアクセス解析やコンバージョン率の向上などを行います。

マーケティング

Web担当者は、オンラインマーケティングに関する知識やスキルが必要です。SEO対策やコンテンツマーケティング、SNSの活用など、オンラインでのプロモーションに関する戦略を立て、実行することが重要です。

コミュニケーション

Web担当者は、コミュニケーション能力が必要です。社内の関係者や外部の協力会社とのコミュニケーションや、顧客とのコミュニケーションが円滑に行われるようにするために、コミュニケーション能力を高めることが重要です。

Web担当者によくあるFAQs

以下は、Web担当者によくあるFAQsです。

Q
Web担当者の仕事内容は何ですか?
A

Web担当者は、企業や組織のウェブサイトの管理と運営、オンラインマーケティング、セキュリティ管理、コミュニケーションなどを担当します。

Q
Web担当者になるにはどうすればいいですか?
A

Web担当者になるには、ウェブ技術やオンラインマーケティングに関する知識やスキルが必要です。ウェブデザインやプログラミングのスキルを身につけることが重要です。また、インターンシップやアルバイトなどの経験を積むことも役立ちます。

Q
Web担当者の責任は何ですか?
A

Web担当者は、ウェブサイトの管理と運営、オンラインマーケティング、セキュリティ管理、コミュニケーションなどを担当します。企業や組織のオンラインでの存在感を確立し、成長を支援するための責任があります。

Q
Web担当者に求められるスキルは何ですか?
A

Web担当者に求められるスキルは、ウェブ技術、データ分析、マーケティング、コミュニケーションなどです。ウェブ技術に関する知識やデータ分析のスキルが必要です。また、オンラインマーケティングに関する知識やコミュニケーション能力も重要です。

まとめ

Web担当者は、企業や組織のオンラインでの存在感を確立し、成長を支援する重要な役割を担っています。

ウェブサイトの管理と運営、オンラインマーケティング、セキュリティ管理、コミュニケーションなどを担当し、企業や組織の成功に貢献します。

Web担当者になるには、ウェブ技術やオンラインマーケティングに関する知識やスキルを身につけることが必要です。成功するためには、データ分析やマーケティング、コミュニケーション能力などのスキルも必要です。Web担当者は、常に最新のウェブ技術やトレンドに注意を払い、ウェブサイトの改善や更新を行い、企業や組織のオンラインでの存在感を向上させることが求められます。

Web担当者がコミュニケーション能力を高め、関係者や顧客との良好な関係を築くことで、ウェブサイトの改善や更新がスムーズに進み、企業や組織の成功に繋がることもあります。

Web担当者としての役割と責任を理解し、必要なスキルや知識を身につけることで、オンラインでの存在感を確立し、企業や組織の成長を支援することができます。

]]>
https://liapoc.com/web-manager.html/feed 0
GTMを利用し、GA4のCV重複カウントを回避 https://liapoc.com/prevent-ga4-cv-duplicates-gtm.html https://liapoc.com/prevent-ga4-cv-duplicates-gtm.html#respond <![CDATA[MITSUI]]> Fri, 31 Mar 2023 20:22:19 +0000 <![CDATA[Google Analytics]]> <![CDATA[Googleタグマネージャー]]> https://liapoc.com/?p=4066 <![CDATA[

GA4はイベント単位での計測のため、従来のGAの数値に比べて多く出てしまう事があります。 よく相談いただくのは、コンバージョンが多く出てしまうです(サンクスページをCV対象としている場合)。 従来のGAでは同一セッション […]]]>
<![CDATA[

GA4はイベント単位での計測のため、従来のGAの数値に比べて多く出てしまう事があります。

よく相談いただくのは、コンバージョンが多く出てしまうです(サンクスページをCV対象としている場合)。

従来のGAでは同一セッションでは、最初の1回だけカウントするということができましたが、GA4では同一ページでは一回のみという選択か、イベント毎に発火が選択となります。

同一ページで1回を選択していた場合でも、ページをリロードされた場合は、もう一度CVカウントされてしまいます。

GA4を適切に設定するためには、より詳細な設定やカスタマイズが必要となります。

GA4のCV重複カウントを避けるためにできること

3つほど回避策があるので、使いやすいのを採用してください。

  1. 同一セッションではCVをカウントさせない方法
  2. ページリロードではCVタグ発火させない方法
  3. CV対象をサンクスページにしない

GTMを利用し同一セッションではCVをカウントさせない方法

CVしたらCookieの値に1を書込み、CVしていない状態であれば値に0をいれるファーストパーティCookieを作成します。

GTM左メニュー > 変数 > ファーストパーティ Cookie を選択

ここで入力した名称を後で使用します。今回はFireable_ga4_cvとしています。

Cookie名もFireable_ga4_cvしています。

「null」 を次の値に変換、「undefined」を次の値に変換、「false」を次の値に変換は0を入力します。

トリガーは全ページを選択します。これで、サイトにアクセスしたユーザーはCookieにFireable_ga4_cvという名称で、値に0が入ったものが生成されます。

トリガーを作成

GTM左メニュー > トリガー > ページビュー を選択

名称は何でも良いです。ここでは、CV_ga4としています。

一部のページビューを選択し、先ほど作成した変数の、Fireable_ga4_cv 等しい 0 を入力してください。

また、thanksページのURLも指定してください。

このトリガーは、Fireable_ga4_cvに0が入っていて、Thanksページに到達したら発火するトリガーになります。このトリガーをCVタグに紐付けてください。

カスタムHTML タグ

CV時にFireable_ga4_cv Cookieの値を1に変更するカスタムHTMLを作成します。

GTM左メニュー > タグ > カスタムHTML を選択

トリガーは先程作成した、CV_ga4を選択します。

HTMLに入力するコード

<script>
// Fireable_ga4_cvの値を取得
var fireableGA4CV = parseInt({{Fireable_ga4_cv}});

// ドメインとパスを定義
//example.comを使用しているドメインに書き換えてください
var domain = ".example.com";
var path = "/";

// Cookieの値を設定する関数
function setCookie(key, value) {
	document.cookie = key + "=" + value + "; domain=" + domain + "; path=" + path;
}

// Fireable_ga4_cvの値が0だった場合、1を設定
if (fireableGA4CV === 0) {
	setCookie("Fireable_ga4_cv", "1");
}

// Fireable_ga4_cvの値が0より大きい場合、そのままの値を維持
if (fireableGA4CV > 0) {
	setCookie("Fireable_ga4_cv", fireableGA4CV);
}
</script>

GTMを利用し、リロード・ブラウザバックではCVタグ発火させない方法

リロード・ブラウザバックされたかどうかを把握する変数の作成

カスタムJavaScript変数で、ナビゲーションのタイプが’navigate’の時はtrue、それ以外の場合はfalseを返す変数を作成します。

GTM左メニュー > 変数 > カスタムJavaScript変数 を選択

変数名はisNavigationValidとします。

function checkNavigationValidity() {
  var navigationEntries = performance.getEntriesByType('navigation');
  var isNavigationValid = true;
  
  navigationEntries.forEach(function(navigationObj) {
    if (navigationObj.type !== "navigate") {
      isNavigationValid = false;
    }
  });
  
  return isNavigationValid;
}

PerformanceNavigationTiming.typeは、PerformanceNavigationTimingインターフェースで定義されているプロパティの1つで、ナビゲーションの種類を表します。具体的には、以下のいずれかの値を取ります。

“navigate” ブラウザのアドレスバーにURLを入力したり、リンクをクリックしたり、フォームを送信したり、reloadやback_forwardを除くスクリプト操作で初期化されたときに開始されたナビゲーション。

“reload” ブラウザのリロード操作、location.reload()、または <meta http-equiv=”refresh” content=”300″> のようなRefreshプラグマディレクティブによるナビゲーション。

“back_forward” ブラウザの履歴トラバーサル操作によるナビゲーション。

“prerender” プリレンダーヒントによってナビゲーションが開始されたもの。

トリガーで、isNavigationValid 等しい true にします。

あとはこのトリガーをCVタグと紐付ければ完了です。

フォーム送信をトリガーにしCV重複カウントを回避

サンクスページをCV対象にすると、リロードや直接そのページに再度アクセス(ブックマークなど)される際に、CVがカウントされてしまいます。

そこで、フォーム送信が成功したら、CVを発火させることで、上記に記載した同一セッションではCVをカウントさせない方法、ページリロードではCVタグ発火させない方法が不要になります。

GTM左メニュー > トリガー > ユーザー エンゲージメントのフォームの送信 を選択

フォームにidがあれば Form ID 等しい フォームのID を入力します。フォームにclassしか無い場合は、Form Classesを使用します。

プルダウンで、Form ID Form Classesが選択肢にない場合、プルダウンの組み込み変数を選択から選択可能です。

後はこのトリガーをCVタグに紐付ければ完了です。

このフォームのトリガーの、デメリットはフォーム送信時にうまくCVタグが発火しないことがあります。 フォームの遷移を遅らせる(タグの配信を待つにチェックを入れる)ことで、発火しない可能性を下げることが可能です(ユーザー体験としてはマイナスポイントですが)。

]]>
https://liapoc.com/prevent-ga4-cv-duplicates-gtm.html/feed 0
reCAPTCHA v3 を5分で実装 https://liapoc.com/recaptcha-v3.html https://liapoc.com/recaptcha-v3.html#comments <![CDATA[MITSUI]]> Wed, 29 Mar 2023 06:08:16 +0000 <![CDATA[Google]]> https://liapoc.com/?p=4023 <![CDATA[

簡単にまとめると以下の4つの作業になります。 reCAPTCHAのサイトキーとシークレットキーを取得 https://www.google.com/recaptcha/about/へアクセスします。 v3 Admin C […]]]>
<![CDATA[

簡単にまとめると以下の4つの作業になります。

  1. Google reCAPTCHAの管理者コンソールにログインし、新しいサイトを登録してreCAPTCHAのサイトキーとシークレットキーを取得。
  2. フォーム内にhiddenを追加
  3. ユーザーがフォームを送信する前に、reCAPTCHAのトークンを取得するためのJavaScript追加。
  4. 送信されたフォームデータをサーバーで処理するとき、reCAPTCHAトークンを検証するPHPコードを追加。

reCAPTCHAのサイトキーとシークレットキーを取得

https://www.google.com/recaptcha/about/へアクセスします。

v3 Admin Console をクリックします

v3 Admin Console をクリックします

ラベルは分かりやすいものを入力

ここではサイトドメイン名の “liapoc”をいれています。

ラベルは分かりやすいものを入力します。ここではサイトドメイン名の "liapoc"をいれています。

reCAPTCHA v3タイプを選択

スコアに基づいてリクエストを検証します を選択

Click on reCAPTCHA v3: スコアに基づいてリクエストを検証します を選択

ドメインを入力

reCAPTCHを利用したいドメインを入力します。

ドメインはrecaptchを利用したいドメインを入力します。

reCAPTCHA 利用条件に同意

reCAPTCHA 利用条件に同意するにチェック

送信をクリックします

送信をクリックします

reCAPTCHA v3を利用するために必要なサイトキーと、シークレットキー

サイトキーと、シークレットキーをコピーしておきます。

サイトキーと、シークレットキーをコピーしておきます。

フォーム内にhiddenを追加

以下のHTMLをフォーム内に記入します。

<input type="hidden" name="recaptcha_response" id="recaptchaResponse">

reCAPTCHAのトークンを取得するためのJavaScript追加

ユーザーがフォームを送信する前に、reCAPTCHAのトークンを取得するためのJavaScript追加します。

以下のコードを対象のフォームがあるページに記載します。

<script src="https://www.google.com/recaptcha/api.js?render=ここにサイトキーを入れる"></script>
<script>
grecaptcha.ready(function() {
    grecaptcha.execute('ここにサイトキーを入れる', {action: 'submit'}).then(function(token) {
        var recaptchaResponse = document.getElementById('recaptchaResponse');
        recaptchaResponse.value = token;
    });
});
</script>

サーバー側での処理

送信されたフォームデータをサーバーで処理するため、reCAPTCHAトークンを検証するPHPコードを追加します。

$recaptcha_response = $_POST['recaptcha_response'];
$recaptcha_secret = 'ここにシークレットキーを入れる';

$recaptch_url = 'https://www.google.com/recaptcha/api/siteverify';
$recaptcha_params = [
    'secret' => $recaptcha_secret,
    'response' => $recaptcha_response,
];
$recaptcha = json_decode(file_get_contents($recaptch_url . '?' . http_build_query($recaptcha_params)));

if ($recaptcha->score >= 0.5) {
    // ここに成功時の処理を書く
} else {
    // ここに失敗時の処理を書く 基本的には何もしなくて良い
}

0.5の部分を0.7などに上げることでよりボット判定が厳しくできます。0.5でもspamが来る場合は0.7にあげてみてください。

]]>
https://liapoc.com/recaptcha-v3.html/feed 2
Google広告の品質スコアが低い?今すぐ改善するためのアクションプラン! https://liapoc.com/post-4014.html https://liapoc.com/post-4014.html#respond <![CDATA[MITSUI]]> Tue, 28 Mar 2023 17:59:32 +0000 <![CDATA[Google Ads]]> https://liapoc.com/?p=4014 <![CDATA[

品質スコアとは?Google広告のランキングに与える影響とは? 品質スコアとは、Google広告のランキングシステムで使用される指標の1つです。 広告主が設定したキーワードと広告の品質(関連性)、クリック率、ランディング […]]]>
<![CDATA[

品質スコアとは?Google広告のランキングに与える影響とは?

品質スコアとは、Google広告のランキングシステムで使用される指標の1つです。

広告主が設定したキーワードと広告の品質(関連性)、クリック率、ランディングページの品質などを総合的に評価し、スコア化されます。品質スコアは、広告主がクリックあたりの単価(CPC)や広告の表示順位に影響を与えるため、非常に重要な指標の1つとなっています。

広告主がより高い品質スコアを獲得するには、広告の品質を向上させ、クリック率を増加させ、ランディングページの品質を向上させることが重要です。広告主が品質スコアを向上させることによって、CPCが低下するため、効率的な広告運用が可能となります。

品質スコアを改善するための具体的なアクションプランを紹介

キーワード選定の改善

正確なキーワードを選定し、マッチタイプを調整することによって、クリック率を向上させることができます。

広告運用において、正確なキーワードを選定することは、広告の効果を高める上で非常に重要なポイントの1つです。正確なキーワード選定は、広告が表示されるユーザーの検索意図を的確に把握することができ、その結果、クリック率の向上につながります。

キーワード選定においては、まず自社のビジネスに関連するキーワードをリサーチし、それらを広告に組み込むことが必要です。たとえば、オンラインストアを運営する企業の場合、自社の商品やサービス名、商品カテゴリー、競合他社のブランド名、業界用語などをキーワードとして選定することができます。

また、キーワードのマッチタイプを調整することで、より効果的な広告配信が可能となります。マッチタイプには、部分一致、フレーズ一致、完全一致の3種類があり、それぞれのマッチタイプによって、どのような検索クエリに対して広告が表示されるかが異なります。

例えば、完全一致の場合は、完全に一致するキーワードのみに対して広告を表示するため、より正確なターゲティングが可能となります。一方で、フレーズ一致の場合は、キーワードが含まれるフレーズを検索したユーザーにも広告が表示されるため、より幅広いターゲット層にアプローチすることができます。

キーワードのマッチタイプを調整することで、正確なターゲティングができるため、クリック率を向上させることができます。ただし、マッチタイプを調整しすぎると、広告が表示される回数が減少し、アクセス数が減少する可能性があるため、適切なバランスを考慮することが重要です。

広告の品質向上

広告の品質は、広告運用の成果に大きく影響するため、高品質な広告を作成することは非常に重要です。広告文の魅力的なコピーを作成し、正確で明確なメッセージを伝えることで、ユーザーの注目を集めることができます。

広告文の作成においては、商品やサービスの特徴を明確に伝えることが必要です。また、ユーザーのニーズや関心に合わせて、コピーを最適化することが重要です。例えば、価格や特別なオファーを強調することで、ユーザーに興味を持ってもらうことができます。また、独自の価値提供や特徴をアピールすることで、競合他社と差別化を図ることができます。

例えば、オンラインショッピングサイトであれば、特定の商品やセール情報を強調することが効果的です。また、SNS広告であれば、ユーザーが関心を持ちそうなテーマやトレンドを取り入れることが必要です。さらに、ターゲット層に合わせた言葉遣いや表現を使うことで、より効果的な広告を作成することができます。

広告の品質向上には、広告画像やデザインの最適化も重要です。広告画像は商品やサービスの特徴をユーザーにわかりやすく伝えるために、高品質で魅力的な画像を使用することが必要です。また、広告画像とテキストの相性を考慮し、デザインを最適化することが重要です。

例えば、ファッションアイテムを販売するオンラインショップの広告であれば、モデルが着用している服をより魅力的に見せるために、クリエイティブな写真加工を行うことができます。また、飲食店の広告であれば、料理の美味しさを強調するために、色鮮やかな写真を使用することが効果的です。

広告の品質向上には、広告文や広告画像、デザインの最適化など様々な要素が関わっています。

ランディングページの品質向上

ランディングページが正確で、使いやすく、関連性が高いことを確認することによって、ユーザーの満足度を向上させ、サイトからの離脱率を低下させることができます。

ランディングページの品質を向上させることは、広告運用の成果に大きく影響するため、広告主はランディングページにも力を入れることが重要です。ランディングページの品質向上には、以下のような方法があります。

  1. ユーザーのニーズに合わせたページ作成:ランディングページは、ユーザーのニーズに合わせたページ作成が必要です。ユーザーが検索したキーワードやクリックした広告と、ランディングページの内容が一致していることが重要です。また、ランディングページの内容は、商品やサービスの特徴やメリットをわかりやすく伝えることが必要です。
  2. レスポンシブデザインの採用:ユーザーが異なるデバイスからランディングページにアクセスすることを考慮し、レスポンシブデザインを採用することが重要です。レスポンシブデザインを採用することで、ユーザーがスマートフォンやタブレットからランディングページにアクセスした場合でも、表示が最適化されます。
  3. 読み込み速度の高速化:ランディングページの読み込み速度を高速化することは、ユーザーの満足度を向上させる上で非常に重要なポイントの1つです。読み込み速度を向上させるためには、画像の最適化やコンテンツの圧縮などの対策が必要です。
  4. ユーザビリティの向上:ランディングページは、ユーザーが簡単に操作できるようにすることが重要です。ナビゲーションやCTA(コール・トゥ・アクション)を明確に表示することで、ユーザーの利便性を高めることができます。また、ユーザーが求めている情報をすばやく見つけられるよう、レイアウトを最適化することも大切です。
  5. A/Bテストの実施:ランディングページの品質を向上させるためには、A/Bテストを行うことが重要です。異なるランディングページのバージョンを作成し、どちらがより効果的かをテストすることで、ランディングページの品質を向上させることができます。

ディングページの品質向上には、多くの方法がありますが、それらを組み合わせることで、ユーザーの満足度を向上させ、サイトからの離脱率を低下させることができます。

ランディングページの品質向上は、広告の品質スコアやランキングにも大きく影響するため、最適なページ作成に取り組むことが必要です。

キャンペーンの構造改善

キャンペーンのグループ化を正確に行うことで、より的確な広告の配信が可能となり、品質スコアを向上させることができます。キャンペーンの構造改善には、以下のようなポイントがあります。

  1. キャンペーンのテーマごとにグループ化:キャンペーンをテーマごとにグループ化することで、広告の配信先を細かく設定することができます。例えば、あるショッピングサイトの場合、Tシャツ、ジャケット、パンツなどのアイテムごとにキャンペーンを作成し、それぞれのキャンペーンで最適なキーワードや広告を設定することができます。
  2. キーワードの適切なマッチタイプ設定:キーワードのマッチタイプは、広告が表示される範囲を設定する重要な要素です。キャンペーンのグループ化と合わせて、正確なマッチタイプの設定が必要です。例えば、完全一致マッチタイプを設定した場合、キーワードが完全に一致した場合のみ広告が表示されます。このように、マッチタイプの設定を正確に行うことで、広告の表示がより的確になり、品質スコアを向上させることができます。
  3. 広告グループの作成:キャンペーン内で複数の広告グループを作成することが重要です。広告グループを作成することで、各広告グループに適切なキーワードや広告を設定し、より効果的な広告運用が可能となります。
  4. ランディングページの最適化:キャンペーンのグループ化と合わせて、ランディングページの最適化も必要です。ランディングページは、キャンペーンと一致していることが重要であるため、キャンペーンごとにランディングページを作成し、それぞれに適したランディングページを設定することが重要です。また、ランディングページの品質向上にも力を入れることで、より効果的な広告運用が可能となります。

以上のように、キャンペーンの構造改善は、広告の配信精度や品質スコア向上につながるため、広告主はキャンペーンのグループ化やマッチタイプの設定などを正確に行い、最適な広告運用を目指す必要があります。

具体的な例を挙げると、ある飲食店が「ランチ」というテーマでキャンペーンを作成した場合、以下のようなグループ化が考えられます。

  • 「カフェランチ」グループ:カフェメニューのランチを提供している場合
  • 「和食ランチ」グループ:和食メニューのランチを提供している場合
  • 「洋食ランチ」グループ:洋食メニューのランチを提供している場合

それぞれのグループで、最適なキーワードと広告を設定することで、より的確な広告をユーザーに届けることができます。また、キャンペーンに関連するランディングページも、各グループに合わせた最適なランディングページを作成し、それぞれに設定することが重要です。

キャンペーンの構造改善に加えて、広告配信の定期的な見直しも必要です。配信している広告が古くなってしまった場合や、競合他社の広告と比較して劣っている場合は、広告の更新や修正を行うことで、広告の品質向上につながります。

以上のように、キャンペーンのグループ化やマッチタイプの設定などを正確に行うことで、広告の配信精度や品質スコアを向上させることができます。広告主は、定期的な見直しや最適化に努め、より効果的な広告運用を目指す必要があります。

まとめ

また、広告運用を成功させるためには、常にデータ分析を行い、キャンペーンの成果を評価し改善することが重要です。広告費を最適化するためには、CTR(クリックスルーレート)やCVR(コンバージョン率)などの指標を分析し、改善の余地があるところを見つけ出すことが必要です。

さらに、広告の配信タイミングや地域、デバイスなども重要な要素の1つです。ユーザーの行動やニーズに合わせて、最適な広告配信を行うことができれば、より多くのユーザーを獲得することができます。

総合的に考えると、広告運用には多くの要素が関わっています。広告主は、広告運用のために必要な知識やスキルを身につけ、常に最新のトレンドや情報にアンテナを張り、常に改善を意識して取り組むことが重要です。

]]>
https://liapoc.com/post-4014.html/feed 0