Skip to content

Latest commit

 

History

History
460 lines (349 loc) · 20.3 KB

TAGGINGPLAN_EN.md

File metadata and controls

460 lines (349 loc) · 20.3 KB

Our SDK has been designed to help its integration by offering an easy structure and a detailed documentation.

The parameters and possibilities are the exact same as for our tag collector. Therefore, you will be able to follow the different navigation routes and to compare them to your classic website, integrating the same variables.

The calls generated by these tags are very similar to the calls generated by the classic collectors, and they have been conceived to be as light as possible so they do not disturb the functioning of the app.

Some parameters of our collector are specific to a mobile app tracking. To know more about this, you can check [this documentation] (https://eulerian.wiki/doku.php?id=en:collect:technical_implementation:parameters_list).

Note: Also, our SDK is able to gather an unlimited number of offline interactions and to send them when the user is online. This process allows us to keep tracking of the user even if they are using the app offline. The navigation is registered and reassigned a posteriori through the parameter ereplay-time.

Traffic assignation rule

In a classic website, out system identifies and assigns the traffic according to the calling URL. However, in the case of an app we do not have access to this information.

Therefore, to define the traffic attribution rule, we will take into account the tracking subdomain used and passed as a parameter init on the Eulerian Analytics page:

 useEffect(() => {
    EAnalytics.init("dem.eulerian.net", true);
  }, []);G)

It is also important to know that the absence of a URL means also the absence of the name page by default. The parameter [path] (https://eulerian.wiki/doku.php?id=en:collect:technical_implementation:parameters_list) is not optional but obligatory for the tracking of an app.

Downloads and updates

Associated parameters:

  • ea-appname: NOM_APPLICATION , it is the name of the app. It must not change
  • ea-appversion: VERSION_APPLICATION, it is the version of the app
  • ea-appinstalled: 1, This parameter indicates that no new installation is counted for this call. It is used to manage the initialization of users who already have the application before the integration of Eulerian. This parameter can be supplied permanently, in parallel with appversion and appname, as long as the application considers that it has already been launched previously on this device/user.

The presence of the parameter ea-appname triggers a treatment of the system.

The system will feed the metric download if:

  • The user has never been exposed to the value of the parameter ea-appname upon launching the app and the parameter ea-appinstalled is not present in the call

The system will feed the metric update if:

  • The user has already been exposed to the parameter ea-appname and its value is identical to the parameter in the last launch of the app. However, the value of the parameter ea-appversion is different.

List of pages

  • Generic page
  • Product page
  • Category page
  • Search engine page
  • Error page
  • Cost estimate page
  • Cart page
  • Order page

Generic page

The marker below is generic and must be implemented in every page of the site except the product sheet, order, cost estimate and initiated cart ones. This includes particularly the homepage and the pages of the conversion tunnel between the cart and the order confirmation.

It allows you to include all the site-centric traffic, the viewed pages and the visits, as well as the origin through natural channels such as direct access, natural indexing or referents.

We manage all the actions to be implemented. Like this, you do not need to change de code of your site to benefit from supplementary functionalities.

You may add the parameters below to the generic format or to the collector markers described in this documentation in order to get more interesting reports.

List of parameters

  • path: (Mandatory) This parameter allows you to name the page in order to identify it in the reports.
  • uid: (Optional) This parameter must be fulfilled with your internal ID when the user is logged in in order to consolidate the history data gathered from different devices. You may also reconcile a click with the download of the app.
  • email: (Optional) The email should be hashed in SHA256LC
  • pagegroup: (Optional)
  • profile: (Optional) this is the user profile
  • **custom parameter:(Optional) use the method .set("key", "value") if you want a customized parameter.

Implementation

  const onClickProperties = () => {    

    let properties = new EAProperties.Builder("page_path")
      .setEmail("email_sha256")
      .setPageGroup("page_group")
      .setProfile("user_profile")
      .setUID("user_id")
      .set("key", "value")
      .set("key", "value")
      .set("key", "value")
      .build();

    EAnalytics.track(properties);
  };

To add an action to you page, when page is loaded you can use this:

  const onClickProperties = () => {    

   let properties = new EAProperties.Builder("page_path")
      .setEmail("email_sha256")
      .setPageGroup("page_group")
      .setProfile("user_profile")
      .setUID("user_id")
      .set("key", "value")
      .setAction(new Action.Builder()
        .setName("action_name") //mandatory
        .setReference("action_ref")
        .setMode("in/out/neat")
        .setLabel("label1,label2,label3,label4,label5")
        .setParam("key", "value")
        .setParam("key", "value")
        .build())
      .build();

    EAnalytics.track(properties);
  };

To add an action following a click on an element of your page, or following the validation of a form, you should use this implementation

let properties = new EaGeneric.Builder()
    .setStandalone()
      .putAction(new Action.Builder()
      .setName("action_name") //mandatory
        .setReference("action_ref")
        .setMode("in/out/neat")
        .setLabel("lb1,lb2,lb3")
        .setParams(new Params.Builder()
          .setParam("key", "value")
          .setParam("key2", "value2")
          .build())
        .build())
      .build();

    EAnalytics.track(properties);
  };

To add a context flag

  const onClickProperties = () => {    

    let properties = new EAProperties.Builder("page_path")
      .setEmail("email_sha256")
      .setPageGroup("page_group")
      .setProfile("user_profile")
      .setUID("user_id")
      .set("key", "value")
      .setCFlag(new SiteCentricCFlag.Builder()
        .set("key", "value1,value2,...")
        .set("key2", "value")
        .set("key3", "value")
        .build())
      .build();

    EAnalytics.track(properties);
  };

Product page

This marker allows you to retrieve the viewed pages and the visits to the products in the catalog.

List of parameters

  • path: (Mandatory) This parameter allows you to name the page in order to identify it in the reports.
  • uid: (Optional) This parameter must be fulfilled with your internal ID when the user is logged in in order to consolidate the history data gathered from different devices. You may also reconcile a click with the download of the app.
  • prdref: (Mandatory) This parameter must be fulfilled with the references of the product checked by the user.
  • prdname: (optional) You can give a product reference a more legible name to make your reports easier.
  • prdparam-xxxxx : (optional) This parameter allows you to associate a category to a product reference. You must precise the name of the category after the prefix prdparam-. Examples: prdparam-universe, prdparam-size, etc. You can add as many categories as you want.

Implementation page signle product

const product1 = new Product.Builder("product_ref")
  .setName("product_name")
  .setGroup("product_group")
  .setParams(new Params.Builder()
    .addParam("product_param1", "value")
    .addParam("product_param2", "value")
    .addParam("product_param3", "value")
    .addParam("product_param4", "value")
    .build())
  .build();

const onClickProducts = () => {
    var products = new EAProducts.Builder("page_path")
      .setEmail("email_sha256")
      .addProduct(product1)
      .build();

    EAnalytics.track(products);
  };

Implementation page with multiple products

const product1 = new Product.Builder("product_ref1")
  .setName("product_name")
  .setGroup("product_group")
  .setParams(new Params.Builder()
    .addParam("product_param1", "value")
    .addParam("product_param2", "value")
    .addParam("product_param3", "value")
    .addParam("product_param4", "value")
    .build())
  .build();

const product2 = new Product.Builder("product_ref2")
  .setName("product_name")
  .setGroup("product_group")
  .setParams(new Params.Builder()
    .addParam("product_param1", "value")
    .addParam("product_param2", "value")
    .addParam("product_param3", "value")
    .addParam("product_param4", "value")
    .build())
  .build();

const onClickProducts = () => {
    var products = new EAProducts.Builder("page_path")
      .setEmail("email_sha256")
      .addProduct(product1)
      .addProduct(product2)
      .build();

    EAnalytics.track(products);
  };

Internal search page

This marker allows you to include in your interface queries made by users as well as an unlimited number of additional parameters. All the information is compared to the sales and the acquisition channels activated during the session.

The marker of the search engine is not exclusive. If you add a product reference with the parameter prdref for instance, the marker will be considered a product page.

Liste des paramètres

  • path: (Mandatory) This parameter allows you to name the page in order to identify it in the reports.
  • uid: (Optional) This parameter must be fulfilled with your internal ID when the user is logged in in order to consolidate the history data gathered from different devices. You may also reconcile a click with the download of the app.
  • isearchengine: (Mandatory) This parameter will name the internal search engine and allows you to differentiate it from other search fields, in case you have more than one in your site.
  • isearchresults: (Mandatory) This parameter must contain the number of search results generated by the user.
  • isearchkey: (Optional) This parameter must contain the key of the additional fields you want to integrate in your internal search marker.
  • isearchdata : (Optional) This parameter must contain the value of the isearchkey field named above. Every supplementary search field requires we add the parameters isearchkey and isearchdata.

Implementation

const onClickSearch = () => {
    var search = new EASearch.Builder("page_path")
      .setName("seach_engine_name")
      .setParams(new Params.Builder()
        .addParam("search_key", "search_value")
        .addParam("search_key", "search_value")
        .build())
      .setResults(432) //numbers of results
      .build();

    EAnalytics.track(search);
  };

Estimate page

This marker count up the cost estimates and the information related to this type of conversion:

  • The products in it.
  • The type of estimate.
  • The total sum
  • Contextual information

Every new estimate is provided with the details of all the channels and the navigation history that led to its generation.

Note: Duplicates will be removed according to the references provided by the marker.

If you use twice the same reference for the same two estimates, the second call will be ignored in virtue of the principle of uniqueness conversion.\

Eulerian Analytics allows you to cancel or validate estimates to measure the real performance of your campaigns in time.

Note: Every marker containing the parameters ref and estimate will be considered a cost estimate page.

List of parameters

  • path: (Mandatory) This parameter allows you to name the page in order to identify it in the reports.
  • uid: (Optional) This parameter must be fulfilled with your internal ID when the user is logged in in order to consolidate the history data gathered from different devices. You may also reconcile a click with the download of the app.
  • ref: (MAndatory) This is a unique reference of the estimate allowing you to identify it and find it in our system.
  • amount: (Optional) This parameter must contain the total sum with taxes. Decimals will be separated by a point.
  • type: (Optional) This parameter allows you categorize the cost estimate according to you reference document.
  • prdref: (Optional) This parameter must be fulfilled with the references of the product checked by the user.
  • prdamount: (Optional) This parameter allows you to specify the total of each product in the cost estimate.
  • prdquantity: (Optional) This parameter allows you to specify the quantity of each product in the cost estimate.

Implementation

const product1 = new Product.Builder("product_ref1")
  .setName("product_name")
  .setGroup("product_group")
  .setParams(new Params.Builder()
    .addParam("product_param1", "value")
    .addParam("product_param2", "value")
    .addParam("product_param3", "value")
    .addParam("product_param4", "value")
    .build())
  .build();

const product2 = new Product.Builder("product_ref2")
  .setName("product_name")
  .setGroup("product_group")
  .setParams(new Params.Builder()
    .addParam("product_param1", "value")
    .addParam("product_param2", "value")
    .addParam("product_param3", "value")
    .addParam("product_param4", "value")
    .build())
  .build();

 const onClickEstimate = () => {
    const myEstimate = new EAEstimate.Builder("page_path")
        .setRef("estimate_ref")
        .setAmount("amount")
        .setCurrency("currency")
        .setType("estimate_type")
        .addProduct(product1, 32.111, 1) //product , amount , quantity
        .addProduct(product2, 3.99, 21)  //product , amount , quantity
        .build();
    EAnalytics.track(myEstimate);
  };

Cart page

This marker counts up the initiated carts and allows you to calculate the conversion and quitting rate in relation to the sale marker.

You may also move products and categories associated to the visitor’s cart by specifying the respective sums and quantities.

The cart lifespan is 30 minutes, according to [[fr:glossary|our definition]].

List of parameters

  • scartcumul : (Optional) The value of this parameter shows the way to count up the products in the cart. When it equals 0, our system considers the products passed by the marker as part of the cart. When it equals 1, le products passed by the marker will be added to every successive call.
  • path: (Mandatory) This parameter allows you to name the page in order to identify it in the reports.
  • uid: (Optional) This parameter must be fulfilled with your internal ID when the user is logged in in order to consolidate the history data gathered from different devices. You may also reconcile a click with the download of the app.
  • prdref: (Optional) This parameter must be fulfilled with the references of the product checked by the user.
  • prdamount: (Optional) This parameter allows you to specify the total of each product in the cost estimate.
  • prdquantity: (Optional) This parameter allows you to specify the quantity of each product in the cost estimate.

Implementation

const product1 = new Product.Builder("product_ref1")
  .setName("product_name")
  .setParams(new Params.Builder()
    .addParam("product_param1", "value")
    .addParam("product_param2", "value")
    .addParam("product_param3", "value")
    .addParam("product_param4", "value")
    .build())
  .build();

const product2 = new Product.Builder("product_ref2")
  .setName("product_name")
  .setParams(new Params.Builder()
    .addParam("product_param1", "value")
    .addParam("product_param2", "value")
    .addParam("product_param3", "value")
    .addParam("product_param4", "value")
    .build())
  .build();

  const onClickCart = () => {
    var monPanier = new EACart.Builder("path-cart")
    .setCartCumul(true)
    .addProduct(product1, 2.52, 42) //product , amount , quantity
    .addProduct(product2, 2.123, 4) //product , amount , quantity
.build();


EAnalytics.track(monPanier);
  };

Order page

This marker counts up the conversions and helps estimating the ROI for all your marketing channels. In addition to the total sum of the order, you can include the products, the type of payment, the currency and the type of sale. These priorities enrich the detail level of your reportings and may be exploited in our product. Every new conversion includes all details about the channels and the navigation history.

Note: Duplicates will be removed according to the references provided by the marker.

If you use twice the same reference for the same two estimates, the second call will be ignored in virtue of the principle of unique order.

Eulerian DDP allows you to cancel orders to measure the real performance of your campaigns. We recommend you to implement the order tag as soon as possible in the buying process if the information to set the call is available (reference, sum, type of payment, etc.).

In fact, if the payment platform does not require the user goes back to the site to validate their order, a market after the payment platform will not always be called.

Note: Beside the order status (pending, valid or invalid), it is not possible to define the content of an order after it is registered. We cannot add or delete a product, but we can modify the total sum of the order.

Note: Every marker containing the parameters ref and amount and not containing the parameters scart and estimate will be considered a confirmation page.

List of parameters

  • path: (Mandatory) This parameter allows you to name the page in order to identify it in the reports.
  • uid: (Optional) This parameter must be fulfilled with your internal ID when the user is logged in in order to consolidate the history data gathered from different devices. You may also reconcile a click with the download of the app.
  • ref: (Mandatory) This is a unique reference of the estimate allowing you to identify it and find it in our system.
  • amount: (Mandatory) This parameter must contain the total sum with taxes. Decimals will be separated by a point.
  • payment: (Optional) This parameter allows you to include the type of payment used by the buyer.
  • type: (Optional) This parameter allows you categorize the cost estimate according to you reference document.
  • currency: (Optional) This parameter allows you to convert the total indicated in the parameter amount if it is in a different currency than the one used in the interface.
  • newcustomer: (Optional) This parameter is used in the order marker to differentiate new buyers from loyal customers.
  • prdref: (Optional) This parameter must be fulfilled with the references of the product checked by the user.
  • prdamount: (Optional) This parameter allows you to specify the total of each product in the cost estimate.
  • prdquantity: (Optional) This parameter allows you to specify the quantity of each product in the cost estimate.

Implementation

const product1 = new Product.Builder("product_ref1")
  .setName("product_name")
  .setParams(new Params.Builder()
    .addParam("product_param1", "value")
    .addParam("product_param2", "value")
    .addParam("product_param3", "value")
    .addParam("product_param4", "value")
    .build())
  .build();

const product2 = new Product.Builder("product_ref2")
  .setName("product_name")
  .setParams(new Params.Builder()
    .addParam("product_param1", "value")
    .addParam("product_param2", "value")
    .addParam("product_param3", "value")
    .addParam("product_param4", "value")
    .build())
  .build();

const onClickSale = () => {
    var maVente = new EAOrder.Builder("page_path")
      .setRef("conversion_ref")
      .setAmount("conversion_amount")
      .setCurrency("currency")
      .setType("conversion_type")
      .setPayment("conversion_payment_type")
      .addProduct(product1, 32.32, 1) //product , amount , quantity
      .addProduct(product2, 3.01, 21) //product , amount , quantity
      .build();

    EAnalytics.track(maVente);
  };