Пользовательский атрибут Google Analytics на Facebook - PullRequest
4 голосов
/ 02 сентября 2010

Я пытаюсь отслеживать некоторые нестандартные действия в нашем приложении Facebook Canvas.Мне нужно отправить пользовательские переменные в Google Analytics, но тег fb: google-analytics слишком ограничен.

Знаете ли вы, как обойти это?но мне также нужно отслеживать вызовы Ajax и пользовательские переменные.

Спасибо, Diogo

1 Ответ

1 голос
/ 11 сентября 2010

Хорошо, основываясь на предложении Дениса, но учитывая тот факт, что мы не можем полностью переключить наше приложение для запуска в качестве iFrame, мы решили проблему с помощью «невидимых» iFrames в начале страницы.

Код очень похож на этот:

<?php

$variable = $_GET[ 'var' ];
$value = $_GET[ 'value' ];
$slot = array_key_exists( 'slot', $_GET ) ? $_GET[ 'slot' ] : 1;
$level = array_key_exists( 'level', $_GET ) ? $_GET[ 'level' ] : 3;

if ( empty( $variable ) || empty( $value ) )
{
    $variable = 'BadRequest';
    $value = '1';
    $slot = 1;
    $level = 3;
}

assert( 'is_string( $variable )' );
assert( 'is_numeric( $slot )' );
assert( 'is_numeric( $level )' );

$customParamStr = "'$slot', '$variable', '$value', '$level'";

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <title>Analytics Frame</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script type="text/javascript">
            var _gaq = _gaq || [];
            _gaq.push(['_setAccount', 'UA-XXXXXXXX-X']);
            _gaq.push(['_setCustomVar', <?php echo $customParamStr ?>]);
            _gaq.push(['_trackPageview']);

            (function() {
            var ga = document.createElement('script');
            ga.type = 'text/javascript';
            ga.async = true;
            ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';

            var s = document.getElementsByTagName('script')[0];
            s.parentNode.insertBefore(ga, s);
            })();
        </script>
    </head>
    <body>
    </body>
</html>

И чтобы использовать его, мы добавляем этот iFrame на страницу холста, используя:

<iframe class="analyticsFrame" id="analyticsCode" 
        src="???/analyticsFrame.php?var=varname&value=valuename&slot=1&level=3" ?>" width="0px" height="0px" />

Нам все еще нужно улучшить код, например, мы могли бы добавить поддержку нескольких переменных в одном и том же iFrame ...

Я надеюсь, что это кому-то поможет, и я надеюсь, что мы сможем полностью перейти на iFrame очень скоро:)

p.s. Вы можете использовать эту технику для запуска практически любого javascript, но имейте в виду, что, если вам это сильно нужно, вы должны полностью переключиться на iFrame прямо сейчас:)

Еще раз спасибо за вашу помощь:)

Ура, Диого

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...