バージョン選択

フォーラム

メニュー

オンライン状況

59 人のユーザが現在オンラインです。 (50 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 59
もっと...

サイト内検索

質問 > 管理機能 > GoogleAnalytics eコマーストラッキング導入のやり方

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
poporin
投稿日時: 2013/12/25 17:32
対応状況: −−−
常連
登録日: 2012/6/6
居住地:
投稿: 68
GoogleAnalytics eコマーストラッキング導入のやり方
GoogleAnalytics eコマーストラッキングをECCUBEに導入したいのですが
計測がされない状態です。

決済会社にペイジェント様を利用しております。
決済を入れた際に、LC_Page_Shopping_Complete_Ex.php が上書きされるようでしたので
ペイジェントモジュールのディレクトリにある、LC_Page_Shopping_Complete_Ex.phpの

unset($_SESSION['paygent_order_id']); 

↑の前に色々調べてみて下記コードをいれてみました。


//Google Analytics Ecommerce Start
$sql_item = "SELECT product_name,product_code,price,quantity FROM dtb_order_detail WHERE order_id = ?";
\$arrItems = $objQuery->getall($sql_item, array($order_id));
$this->arrItems = $arrItems;
$sql_order = "SELECT total,tax,deliv_fee,order_pref FROM dtb_order WHERE order_id = ?";
$arrOrder = array_shift($objQuery->getall($sql_order, array($order_id)));

$this->orderId = $order_id;
$this->total = $arrOrder['total'];
$this->tax = $arrOrder['tax'];
$this->deliv_fee = $arrOrder['deliv_fee'];
$this->order_pref = $objQuery->get("mtb_pref", "pref_name", "pref_id = ? ", array($arrOrder['order_pref']));
//Google Analytics Ecommerce End


テスト購入をして、1日待って見てみましたが計測はされていませんでした。


記述するファイルが違うのか、他にも記述しなければいけないファイルなどありますでしょうか?


通常のトラッキングはフッターにいれており、計測はされております。


分かる方いらっしゃいましたらご教授お願い致します。


EC-CUBEバージョン 2.12.6
PHPバージョン PHP 5.3.3
DBバージョン PostgreSQL 8.4.13
サーバー  wadax


casa
投稿日時: 2013/12/26 10:37
対応状況: −−−
長老
登録日: 2011/10/3
居住地:
投稿: 210
Re: GoogleAnalytics eコマーストラッキング導入のやり方
こんにちわ。

通常のトラッキング用タグの他に、eコマーストラッキング用の記述もテンプレートに追加する必要がありますが、こちらは追加されていますでしょうか?

ご質問の内容から、以下のサイトを参考にされたものと思いますが、
「コンバージョンタグを設置」の項目にテンプレートへの記述方法が記載されていますので、
こちらも合わせて実施する必要があります。
http://www.kiteretsu-so.com/archives/1955
casa
投稿日時: 2013/12/26 10:39
対応状況: −−−
長老
登録日: 2011/10/3
居住地:
投稿: 210
Re: GoogleAnalytics eコマーストラッキング導入のやり方
連投すみません。

Google Analyticsの設定ページから、eコマースの設定を「オン」にする必要もありますので、こちらも念のためご確認ください。
https://support.google.com/analytics/answer/1009612?hl=ja
poporin
投稿日時: 2013/12/26 14:14
対応状況: 確認中
常連
登録日: 2012/6/6
居住地:
投稿: 68
Re: GoogleAnalytics eコマーストラッキング導入のやり方
casa様
ご返答ありがとうございます。

教えて頂きましたリンク先を参考にphpファイルとテンプレートファイルに記述をいたしました。

テスト購入をしてみましたので数日後にどうなっているかを確認できると思います。

eコマースの設定は「オン」にしてあります。

また結果の方をご報告させて頂きたいと思います。

どうもありがとうございました。
poporin
投稿日時: 2013/12/28 12:11
対応状況: 確認中
常連
登録日: 2012/6/6
居住地:
投稿: 68
Re: GoogleAnalytics eコマーストラッキング導入のやり方
その後の経過報告になります。

結果としては計測されませんでした(涙)

ペイジェント決済は商品購入時にいくつかペイジェント決済用に作られた
別ディレクトリのファイルが存在します。

その1つにLC_Page_Shopping_Complete_Ex があります。

そこのファイルの内容は下記になります。

// Eコマーストラックング用 追加
$sql_item = “SELECT product_name,product_code,price,quantity FROM dtb_order_detail WHERE order_id = ?”;
$arrItems = $objQuery->getall($sql_item, array($order_id));
$this->arrItems = $arrItems;
$sql_order = “SELECT total,tax,deliv_fee,order_pref FROM dtb_order WHERE order_id = ?”;
$arrOrder = array_shift($objQuery->getall($sql_order, array($order_id)));
$this->orderId = $order_id;
$this->total = $arrOrder['total'];
$this->tax = $arrOrder['tax'];
$this->deliv_fee = $arrOrder['deliv_fee'];
$this->order_pref = $objQuery->get(“mtb_pref”, “pref_name”, “pref_id = ? “, array($arrOrder['order_pref']));
unset($_SESSION['paygent_order_id']);

parent::process();
}

/**
* デストラクタ.
*
* @return void
*/
function destroy() {
parent::destroy();
}



complete.tpl

こちらのテンプレートファイルに関しましてはペイジェント決済側では使われないと
思っていますのでECCUBEのデフォルトを使用していると判断しております。
(ペイジェント決済ディレクトリにcompleate.tplファイルがないため。)


/data/Smarty/templates/default/shopping/complete.tpl
こちらのファイルの中身は下記になります。


</div>
↑一番最後の記述部分

↓ここからeコマースの記述をしました。

<!-- Google Analytics eコマーストラッキング start -->
<script type=”text/javascript”>
var gaJsHost = ((“https:” == document.location.protocol) ? “https://ssl.” : “http://www.”);
document.write(unescape(“%3Cscript src=’” + gaJsHost + “google-analytics.com/ga.js’ type=’text/javascript’%3E%3C/script%3E”));
</script>
<script type=”text/javascript”>
try {
var pageTracker = _gat._getTracker(“UA-自分の番号を記載”);
pageTracker._trackPageview();
pageTracker._addTrans(
“<!–{$orderId}–>”, // Order ID
“”, // Affiliation
“<!–{$total}–>”, // Total
“<!–{$tax}–>”, // Tax
“<!–{$deliv_fee}–>”, // Shipping
“”, // City
“<!–{$order_pref}–>”, // State
“JP” // Country
);
//ここから各商品情報のループ
<!–{section name=cnt loop=$arrItems}–>
pageTracker._addItem(
“<!–{$orderId}–>”, // Order ID
“<!–{$arrItems[cnt].product_code}–>”, // SKU
“<!–{$arrItems[cnt].product_name}–>”, // Product Name
“”, // Category
“<!–{$arrItems[cnt].price}–>”, // Price
“<!–{$arrItems[cnt].quantity}–>” // Quantity
);
<!–{/section}–>
pageTracker._trackTrans(); // 取引と商品の内容をGAに通知
<!– eコマース用タグ end –>
} catch(err) {}
// –>
</script>
<!– Google Analytics eコマーストラッキング end –>


検索をして調べてみると基本的にはこの2ファイルの記述で良いみたいですが
私のようにペイジェント決済モジュールをいれている場合はやり方が違うのでしょうか?

商品購入時に、いったんモジュール側へ推移してからcomplete.tplに戻ってくるという流れだと思いますので
銀行振り込みや代引きなどのモジュールと関係ない決済は計測されて、クレジットカードやコンビニ払いのように
決済モジュールを使用する場合は計測されないのか・・・・仕組みが理解できていない状態です。


本件とは関係ないと思いますが、フッターにいれている通常の解析はできています。
フッターにいれている場合、決済完了画面においてcompleate.tplとフッターにスクリプトが存在することになりますが、
これは問題ありますでしょうか?
問題があるようでしたら、通常のトラッキングコードはECCUBEの場合どこにいれるのが良いでしょうか?


決済モジュールを入れている方で情報をお持ちの方がいらっしゃいましたら情報を頂けますと幸いです。



casa
投稿日時: 2014/1/6 16:44
対応状況: −−−
長老
登録日: 2011/10/3
居住地:
投稿: 210
Re: GoogleAnalytics eコマーストラッキング導入のやり方
こんにちわ。

買い物完了ページまで進んだところで、ブラウザの開発ツール(大抵はF12を押すと表示されます)を使い、eコマースのJavaScriptが正しく出力されているか確認してみてください。

以下、気になる点を挙げます。

▼ペイジェントの設定反映
ペイジェントのphpファイルを編集されていますが、このファイルはペイジェントの設定画面(管理画面の「オーナーズストア>モジュール管理」からペイジェントの「設定」をクリックした画面)で、「この内容で登録する」をクリックしたときにEC-CUBE本体側にコピーされるものです。
EC-CUBE本体のLC_Page_Shopping_Complete_Ex.phpがペイジェントのフォルダ内のものと同じになっているかどうかご確認ください。
もしなっていない場合は、設定画面から登録ボタンを押すか、EC-CUBE本体側のファイルをペイジェント側のもので更新してください。

引用:
本件とは関係ないと思いますが、フッターにいれている通常の解析はできています。
フッターにいれている場合、決済完了画面においてcompleate.tplとフッターにスクリプトが存在することになりますが、
これは問題ありますでしょうか?
問題があるようでしたら、通常のトラッキングコードはECCUBEの場合どこにいれるのが良いでしょうか?


どちらもまとめてフッターなどに記載してしまい、購入完了画面の場合のみeコマース部分の処理が動くようにすることがよくあります。
参考サイトにも「■一つのフィルにまとめる場合とか」として記載されていますよ。
完了画面かどうかの判断方法も記述がありますので参考にしてみてください。
poporin
投稿日時: 2014/1/6 20:27
対応状況: −−−
常連
登録日: 2012/6/6
居住地:
投稿: 68
Re: GoogleAnalytics eコマーストラッキング導入のやり方
casa様
お返事どうもありがとうございます。


>>EC-CUBE本体のLC_Page_Shopping_Complete_Ex.phpがペイジェントのフォルダ内のものと同じになっているかどうかご確認ください。

上記につきましては全く同じ内容でしたので問題はないと思われます。



http://www.kiteretsu-so.com/archives/1955

上記サイトを参考にそのままコピペ記述して、テスト購入をしてみたところ
購入管理画面で下記のようなエラーがでて、システムエラーとなりました。

ECCUBEの管理画面には注文が入っています。


エラー内容
USER_AGENT: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
Fatal error(E_PARSE): syntax error, unexpected T_STRING on [/home/mydomain/data/class/pages/shopping/LC_Page_Shopping_Complete.php(69)]

このエラーは記述ミスによるものでしょうか?
コピペしているので、記述する場所が違うのかもしれませんが
下記の場所で大丈夫でしょうか?


記述場所は133行目までありませんでしたので下記にしております。

/**
* Page のアクション.
*
* @return void
*/
function action() {

$this->arrInfo = SC_Helper_DB_Ex::sfGetBasisData();

// Eコマーストラックング用 追加
$sql_item = “SELECT product_name,product_code,price,quantity FROM dtb_order_detail WHERE order_id = ?”;
$arrItems = $objQuery->getall($sql_item, array($order_id));
$this->arrItems = $arrItems;
$sql_order = “SELECT total,tax,deliv_fee,order_pref FROM dtb_order WHERE order_id = ?”;
$arrOrder = array_shift($objQuery->getall($sql_order, array($order_id)));
$this->orderId = $order_id;
$this->total = $arrOrder['total'];
$this->tax = $arrOrder['tax'];
$this->deliv_fee = $arrOrder['deliv_fee'];
$this->order_pref = $objQuery->get(“mtb_pref”, “pref_name”, “pref_id = ? “, array($arrOrder['order_pref']));
// Eコマーストラックング用 終了

unset($_SESSION['order_id']);


}





購入完了画面でJavaScriptは下記のように出力されておりました。

/data/Smarty/templates/default/site_main.tpl


<!--–{if $tpl_mainpage==”shopping/complete.tpl”}–-->
<!-- Google Analytics eコマーストラッキング start -->
<script type="”text/javascript”">
var gaJsHost = ((“https:” == document.location.protocol) ? “https://ssl.” : “http://www.”);
document.write(unescape(“%3Cscript src=’” + gaJsHost + “google-analytics.com/ga.js’ type=’text/javascript’%3E%3C/script%3E”));
</script>


<script type="”text/javascript”">
try {
var pageTracker = _gat._getTracker(“UA-********”); //←実際には番号が入っております
pageTracker._trackPageview();
pageTracker._addTrans(
“<!–{$orderId}–>”, // Order ID
“”, // Affiliation
“<!–{$total}–>”, // Total
“<!–{$tax}–>”, // Tax
“<!–{$deliv_fee}–>”, // Shipping
“”, // City
“<!–{$order_pref}–>”, // State
“JP” // Country
);
//ここから各商品情報のループ
<!–{section name=cnt loop=$arrItems}–>
pageTracker._addItem(
“<!–{$orderId}–>”, // Order ID
“<!–{$arrItems[cnt].product_code}–>”, // SKU
“<!–{$arrItems[cnt].product_name}–>”, // Product Name
“”, // Category
“<!–{$arrItems[cnt].price}–>”, // Price
“<!–{$arrItems[cnt].quantity}–>” // Quantity
);
<!–{/section}–>
pageTracker._trackTrans(); // 取引と商品の内容をGAに通知
<!– eコマース用タグ end –>
} catch(err) {}
// –>
</script>
<!--– Google Analytics eコマーストラッキング end –-->
<!--–{/if}–-->


原因はわかりますでしょうか?

どうぞよろしくお願いいたします。


EC-CUBEバージョン 2.12.6
PHPバージョン PHP 5.3.3
DBバージョン PostgreSQL 8.4.13
casa
投稿日時: 2014/1/7 10:46
対応状況: −−−
長老
登録日: 2011/10/3
居住地:
投稿: 210
Re: GoogleAnalytics eコマーストラッキング導入のやり方
エラーが起きているのは、ダブルクォートが全角になっているからだと思います。

また、購入完了画面表示時のJavaScriptには、受注番号や金額、商品名などが出力されていなければなりませんが、「$orderId」などがそのまま表示されています。

いずれも以下のように、記述内容に不備があるのが原因です。
・ダブルクォートが全角の箇所がある
 →全般的に。

・ダブルクォートが全半角で2つ記述されている箇所がある
 → <script type="”text/javascript”"> の箇所

・シングルクォートが全角の箇所がある

・Smartyタグに誤りがある
 → Smartyのタグは <!--{xxx}-->という形式です。
   <!–{xxx}–> や <!--–{xxx}–--> は誤りです。
   ハイフン文字自体も「–」ではなく「-」をご利用ください。

本スレッドの最初の投稿ではこのような誤りはありませんでしたが、その後の投稿ではなぜかダブルクォートが全角に変わっているようです。

上記以外にもおかしな点がないか、一度ひと通りご確認ください。

参考にされたサイトでは、記事投稿時に記号類が自動的に変換されるなどして、全角になっているのではないでしょうか。
割とよくあることなので、ブログなどからコードをコピーする場合はご注意ください。
poporin
投稿日時: 2014/1/10 20:15
対応状況: 解決済
常連
登録日: 2012/6/6
居住地:
投稿: 68
Re: GoogleAnalytics eコマーストラッキング導入のやり方
お返事遅くなりました。
コピペをすると変わってしまうことがあるのですね。

色々試してみましたが、エラーは回避できませんでした。

プログラムの基礎がわかっていないからだと思います。

一度書き方などを勉強してからまた挑戦したいと思います。

どうもありがとうございました。

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,722名です
総投稿数は109,953件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1638
8
red
1570
9
mcontact
1286
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.