Enviar evento a Google Analytics utilizando el lado del servidor API

5 minutos de lectura

avatar de usuario de aokozlov
aokozlov

Tengo un sitio web donde envío eventos a Google Analytics usando la función javascript:

ga('send', 'event', 'showphone', 'feedback', 'result');

Sin embargo, también necesito enviar algunos eventos similares desde server-side utilizando PHP. Probé este tutorial de inicio rápido: API Hello Analytics: inicio rápido de PHP para cuentas de servicio y los informes funcionan de maravilla, pero no tengo idea de cómo enviar un evento.

¿Podría mostrarme paso a paso qué debo codificar para enviar exactamente el mismo evento como se mencionó anteriormente?

  • Ok, lo sé, pero de todos modos no he encontrado ningún método en esa API de GA para enviar eventos y necesito la ayuda del maestro.

    – aokozlov

    25 de agosto de 2015 a las 9:20

  • no es que sea un profesional con GA, pero que yo sepa, los eventos en GA solo se manejan con JS (ya que la mayoría de ellos son acciones de front-end). Esto se explica bastante paso a paso aquí: desarrolladores.google.com/analytics/devguides/collection/…

    – Auris

    25 de agosto de 2015 a las 9:21

  • Conozco los métodos JS (como mencioné anteriormente), pero tiene que haber una forma de enviar la misma información usando el lado del servidor.

    – aokozlov

    25 de agosto de 2015 a las 9:25

  • @DaImTo: siéntase libre de hacerlo, pero OP solicitó un “paso a paso”. Y aunque le diría si va por el camino equivocado, es necesario que yo sepa que, de hecho, va por el camino equivocado;)

    – Epodax

    25 de agosto de 2015 a las 9:41

  • @DaImTo No estoy de acuerdo, pero no voy a discutir mi punto en la sección de comentarios de una pregunta 🙂

    – Epodax

    25 de agosto de 2015 a las 9:44

API Hello Analytics: inicio rápido de PHP para cuentas de servicio no te va a ayudar en nada. Ese código usa la API central de informes, la API central de informes es para solicitar datos de Google Analytics no envía datos a Google analitico.

Para enviar datos a Google Analytics utilizamos el Protocolo de medición. El protocolo de medición se usa para enviar información a Google Analytics, el fragmento de JS que publicaste también usa el protocolo de medición.

Puede usar el protocolo de medición desde cualquier idioma que admita la publicación HTTP o Http Get. Dicho esto, no existe una biblioteca específica de PHP para enviar información a Google Analytics, tendrá que formatear su publicación usted mismo. Un consejo sería usar Validación de visitas para verificarlo antes de enviarlo a Google mientras está desarrollando esto.

Probablemente se verá algo como esto

http://www.google-analytics.com/collect?v=1&tid=UA-XXX-Y&cid=35009a79-1a05-49d7-b876-2b884d0f825b&an=My%20Awesom%20APP&aid=com.daimto.awesom.app&av=1.0.0&aiid=come.daimto.awesom.installer &t=event&ec=list&ea=accounts&userclicked&ev=10

  • ¡Gracias! Lo he visto, pero pensé que hay algunos métodos en la API mencionada para enviar. Entonces, ¿necesito solo POST u GET URL y eso es todo? Pero, ¿qué hacer con la autorización? ¿O eso debería enviarse solo desde un servidor registrado?

    – aokozlov

    25 de agosto de 2015 a las 9:28


  • No, el protocolo de medición es la única forma de enviar datos de seguimiento a Google Analytics. Las otras API son solo para solicitar datos y administración de cuentas.

    – Linda Lawton – DaImTo

    25 de agosto de 2015 a las 9:30

  • bueno, no es su URL, pero sí, puede ver la fuente del sitio web de alguien, obtener la identificación de seguimiento de Google Analytics y enviar datos basura a la cuenta de Google Analytics utilizando el protocolo de medición. Ya hay bots que hacen esto, se llama spam de referencia. Google está trabajando en el problema.

    – Linda Lawton – DaImTo

    25 de agosto de 2015 a las 9:32


  • Ahora lo estoy intentando pero no obtuve nada… Hice una carga útil: v=1&t=event&tid=UA-XXXXXXXX-1&cid=b5d9730e-59bf-4d21-aef7-fe415f64e7eb&ec=test_category&el=test_label&ev=9999&ea=test_action usando la herramienta ga-dev-tools.appspot.com/hit-builder. Después de eso, estoy tratando de enviarlo (desde la página del creador) pero no tengo ningún evento en mi análisis de Google.

    – aokozlov

    25 de agosto de 2015 a las 9:43


  • Recuerde comprobar que los eventos de los informes en tiempo real no aparecerán en los informes estándar durante 24 horas.

    – Linda Lawton – DaImTo

    25 de agosto de 2015 a las 9:47

Hay una biblioteca PHP protocolo de medición php-ga por theiconic en github que se puede usar para enviar datos usando Protocolo de medición.

use TheIconic\Tracking\GoogleAnalytics\Analytics;

// Instantiate the Analytics object
// optionally pass TRUE in the constructor if you want to connect using HTTPS
$analytics = new Analytics(true);

// Build the GA hit using the Analytics class methods
// they should Autocomplete if you use a PHP IDE
$analytics
    ->setProtocolVersion('1')
    ->setTrackingId('UA-26293728-11')
    ->setClientId('12345678')
    ->setDocumentPath('/mypage')
    ->setIpOverride("202.126.106.175");

// When you finish bulding the payload send a hit (such as an pageview or event)
$analytics->sendPageview();

Avatar de usuario de Basj
bajo

Aquí hay un ejemplo de cómo hacerlo con PHP.

Primero construye tu solicitud con Creador de hits de Google Analyticspruebalo con https://google-analytics.com/debug/collect?_query_aquíy luego enviarlo con file_get_contents (mira aquí).

$options = array(
    'http' => array(
        'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
        'method'  => 'POST',
        'content' => 'v=1&t=transaction&tid=UA-xxxxxxx-x&cid=xxxxxx&ti=abcdef&tr=100&in=productname'
    )
);
$context  = stream_context_create($options);
$result = file_get_contents('https://www.google-analytics.com/collect', false, $context);

  • ¿Cómo debemos configurar el CID?

    – Felipe

    3 de julio de 2022 a las 20:35

¿Ha sido útil esta solución?