web-dev-qa-db-fra.com

Suivre le formulaire d'abonnement qui redirige vers une URL externe avec Google Tag Manager

J'ai actuellement un formulaire d'abonnement au formulaire Gravity que je suis en train de suivre en déclenchant un message sur la page de confirmation à l'aide de Google Tag Manager. Cependant, très bientôt, ce formulaire sera redirigé vers une page d'un autre domaine avec quelques paramètres passés dans l'URL. Cela signifie que je devrais suivre l'événement à la place. J'ai essayé le programme d'écoute de soumission de formulaire, cliquez sur le programme d'écoute et cliquez sur le lien, le programme d'écoute et rien ne semble fonctionner. Je pense que je pourrais attraper le mauvais identifiant/classe. Je veux également m'assurer que l'événement ne soit déclenché qu'après la validation du formulaire. Vous trouverez ci-dessous le code complet du formulaire:

<div class="gf_browser_ie gf_browser_ie8 gform_wrapper" id="gform_wrapper_1">
<form method="post" enctype="multipart/form-data" id="gform_1" action="/">
    <div class="gform_body">
        <ul id="gform_fields_1" class="gform_fields top_label description_below">
            <li id="field_1_2" class="gfield">
                <label class="gfield_label" for="input_1_2">Name</label>
                <div class="ginput_container">
                    <input name="input_2" id="input_1_2" type="text" value="" class="large" tabindex="1">
                </div>
            </li>
            <li id="field_1_1" class="gfield">
                <label class="gfield_label" for="input_1_1">Email</label>
                <div class="ginput_container">
                    <input name="input_1" id="input_1_1" type="email" value="" class="large" tabindex="2">
                </div>
            </li>
            <li id="field_1_3" class="gfield     gform_hidden">
                <input name="input_3" id="input_1_3" type="hidden" class="gform_hidden" value="17/07/2014">
            </li>
            <li id="field_1_4" class="gfield     gform_hidden">
                <input name="input_4" id="input_1_4" type="hidden" class="gform_hidden" value="Home">
            </li>
            <li id="field_1_5" class="gfield     gform_hidden">
                <input name="input_5" id="input_1_5" type="hidden" class="gform_hidden" value="http://example.com/">
            </li>
        </ul>
    </div>
    <div class="gform_footer top_label"> 
        <input type="submit" id="gform_submit_button_1" class="button gform_button" value="Submit" tabindex="3" onclick="if (window[ & quot; gf_submitting_1 & quot; ]){return false; }  if (!jQuery( & quot; #gform_1 & quot; )[0].checkValidity || jQuery( & quot; #gform_1 & quot; )[0].checkValidity()){window[ & quot; gf_submitting_1 & quot; ] = true; }"> 
        <input type="hidden" class="gform_hidden" name="is_submit_1" value="1"> 
        <input type="hidden" class="gform_hidden" name="gform_submit" value="1"> 
        <input type="hidden" class="gform_hidden" name="gform_unique_id" value=""> 
        <input type="hidden" class="gform_hidden" name="state_1" value="WyJbXSIsImYzNmQxM="> 
        <input type="hidden" class="gform_hidden" name="gform_target_page_number_1" id="gform_target_page_number_1" value="0"> 
        <input type="hidden" class="gform_hidden" name="gform_source_page_number_1" id="gform_source_page_number_1" value="1"> 
        <input type="hidden" name="gform_field_values" value="">
    </div>
</form>
jQuery(document).ready(function(){jQuery(document).trigger('gform_post_render', [1, 1]) }); 
2
dasickle

Pour appeler l'événement uniquement lors d'une validation positive, vous devez l'appeler dans le script de validation lui-même.

Je me débarrasserais personnellement de la méthode de validation inline onclick et le ferais plutôt via jQuery.

$( "#gform_1" ).submit(function( event ) {
   // Your validation script here
});

C'est alors un code plus ordonné, et plus facile à lire ce que vous faites.

Vous pouvez ensuite appeler un événement Google Analytics dans le cadre de votre validation (c.-à-d. L'envoyer avant qu'une validation positive retourne la valeur true, mais ne l'appelez pas si elle renvoie la valeur false.)

1
Richard B