Conversion Explained

Best Binary Options Brokers 2020:
  • Binarium

    The Best Binary Options Broker 2020!
    Perfect Choice For Beginners!
    Free Demo Account!
    Free Trading Education!
    Get Your Sing-Up Bonus Now!

  • Binomo

    Only For Experienced Traders!

Conversion Windows explained: Comparing Facebook and Google

Tracking tools are tricky and require a lot of attention, in spite of analytical thinking. To avoid gray hair, follow these step-by-step instructions to success.

Collecting and analyzing data is one of the many important keys to setting up a beneficial promotional campaign. No one wants to leave money on the table in the form of online platforms. It is crucial for every business to know what they are paying. Since many purchasers decide on a product over days, weeks or even months during the customer buying cycle , it’s important to understand attribution of media which influence purchase (or leads).

A conversion window is the period of time after a customer clicks your ad during which a conversion, such as a purchase, is recorded in AdWords. In AdWords, you can edit the conversion window setting for any of the webpage, import, in-app action, or phone call conversions you’re tracking.

Synchronization of Facebook and Google Conversion Windows – actual implementation in the campaign

The conversion windows tools, offered by Google and Facebook are free data collectors who help analysts to find the weak business aspects and strengthen them. The only question is how? How can a one make conclusions on the data about clients retrieved from ads? How do you find the right time frame and correct conversion type? How do you synchronize Facebook and Google data to receive the most helpful set of information for your business and how can the chaotic traffic be analyzed?

Here are some tips and tricks on how to use these tools to increase the number of clicks to your ads and also conversions. Understanding the principle and differences between two tracking systems will allow you to create your own. It is important not to confuse notions and beliefs. Spending some time for education is a good option before starting experiments with real information.

Another important aspect of your promotion campaign is the ad itself. To correctly track conversions for your clients, you have to understand that the quality of the ads themselves must be on a high level. They are not only to catch the attention of your audience, but also to offer what the customer needs, even if they don’t know yet. If the results received aren’t as high as expected, it can mean that there is something wrong with the ad itself.

It’s important to understand that there is a lot of information to learn, which takes time and effort. It is not necessary to use all the advantages of the tracking systems. Find the optimal variant for your business and track your data accordingly. For small businesses, there is no need for tracking tools or tagging campaigns if you don’t have one. This set of information offers a basic understanding of the most important principles and provides tricks, which can be used for the best results.

General overview of Google AdWords conversion windows

Google and Facebook conversion windows will help you better understand how your digital ads work, how often it leads to purchasing, and how long it takes for the client to make a decision. Conversion Window, provided free by Google AdWords, shows a period of the last 30 days after a click during which all of the conversions are recorded. This time can be set up and is useful, such as when you are running a 14-day promo and want to collect all purchases made. You can also compare activity between a regularly priced promo and one to figure out how profitable they are.

Conversion can be represented as various actions. For example, a purchase, a phone call, or app download can be considered actions. Each separate window can be set up for a particular action. This option is helpful when you want to know separately how many app downloads took place and how many people reached the company over the phone.

There are a few ways to track conversions:

  • Online sales
  • Phone calls
  • App downloads
  • In-app actions
  • In-store purchases

To track a purchase, you only have to copy a javascript code to your confirmation page, which a customer sees after making a purchase. This tracking helps to find out which product is profitable and which is not.

A free Google forwarding phone number will help to track phone calls. Instead of using your business phone number, you set up a Google number, which redirects all phone, calls to you and collects information. The Google form on the search result, which allows calling directly, is also recorded in the report.

Another feature is the ability to check the lag time represented in another report to find out which window works the best. There is a risk that if it is too short it may not record any conversions. On the time lag report, you can find out the average lag times, a period from the last click to the conversion. This information is represented in percentages. With this option, you will not lose time with a wrong window, ensuring yourself that window was set up correctly.

You may also wonder how many people have seen your ads somewhere in the interim and ended up buying your product, downloading your app, and talking to your representative on the telephone. This is also possible with a view-through conversion window. In contrast to standard conversion tracking, where the period between the last click and action is indicated, you will find out the time between ad impression and action. You should also know that the default window for the view-through conversion is only one day, which may show nothing in many cases. You will have to customize a window if you want to receive this information.

Best Binary Options Brokers 2020:
  • Binarium

    The Best Binary Options Broker 2020!
    Perfect Choice For Beginners!
    Free Demo Account!
    Free Trading Education!
    Get Your Sing-Up Bonus Now!

  • Binomo

    Only For Experienced Traders!


In comparison to the Google AdWords tool, Facebook provides something a little different. Conversion windows determine which data they use to find the correct audience for the ads. The aspects are the same though: a period and type of action.

There are two different conversion types distinguished. The first one is lead directly to the ads (casual), the second one has nothing to do with the ads (coincident). Unfortunately, the delivery system of Facebook doesn’t distinguish these two.

The more conversions you have per week, the better adaptation Facebook can provide. They require at least 15 actions per week. If you find that there is no way to get 15 purchases per week, then it is reasonable to change the action to a download app or add-to-cart.

A user of Facebook tracker can experience the same problems as the user of Google AdWords. For example, the tricky task is to find the right window. Because of this, it is recommended to run identical ads with different windows and compare the result.

Conversion window options are set:

  • Click + 7 days
  • Click + 1 day
  • Click or view + 1 day
  • View + 1 day and click + 7 days

For app installs and in-app purchases it is a little different:


  • Click + 1 day
  • Click or view + 1 day

In-app activity:

The numbers can be changed to 1, 7, or 28 days in some cases. Since Facebook used to show much bigger numbers than Google Analytics, it won’t be a problem to reach the number of 15 conversions per week. The question is how useful they are for business.

How Not to be Confused?

Both systems are efficient and must be implemented in the promotion campaign. Some differences may need attention, but when everything is setup correctly, you will receive valuable information in accordance with your product to client’s needs.

Take some time for education and experimentation. The process can last up to a few months until you find the perfect tracking solution. Don’t overload yourself and your team with knowledge. Find the reliable system that works for your campaign and stick with it.

Comparison and Synchronization

Most advertisers prefer using Google AdWords to track their activity. Adwords is simple, free, and efficient. Facebook, for some reason, shows more actions in a report then Google AdWords. This may be because AdWords can’t work with cross-platforms, takes into account only last paid clicks regardless channels, and can’t track view-through conversion on Facebook.

The Last Click

There are problems in tracking, however. For example, if a user has found their dream dress on Facebook and clicked on it she may realize that it was too expensive and decided to wait a few days to save money. In two days she googles the dress and buys it. In this case, the conversion will be shown in both reports because for Google only the last click is necessary, in contrast to Facebook.

Avoiding Huge Numbers by Facebook Tracker

Another problem is impressions. Google Analytics can’t track Facebook impressions. Somehow, Facebook counts everyone who saw an ad as a conversion in a report. This will cause a lot of differences between the two reports. To avoid this, customize the Facebook tracker to show only after-conversion actions.


On this point, Facebook has a big privilege because it collects data due to the user’s accounts’, not just cookies. It means that no matter what device, platform, browser, or app the user shows activity, everything will be tracked and shown in the report. Google relies only on cookies, which decrease chances to follow all the activity correctly.

How to Synchronize Efficiently

Unfortunately, there is no standard template scheme which will be useful for every type of business. You have to experiment and adjust your attribution models. The most common models are represented by Google, and while adjusting your profitable scheme is tricky and knowing all the specifics, it is a powerful instrument of optimizing ads and business.

Tracking Tools

Some advertisers prefer using Adform or DoubleClick by Google. For Facebook, there is Atlas management tool that doesn’t require tagging manually all ad resources. This little option may become decisive in the sense of time-consuming for some agencies.

Tag your Facebook Campaign

It is another important point to receive correct data on your Google Analytics report. Google reporting system recognizes tagged Facebook campaigns. As long as the process of tagging is tricky, there is a guide provided by Google and also URL builder tips.


Both tools are useful and helpful when setup correctly. It takes time to find out which options are the best for your business type and how to improve current positions. It is also important to set initial goals for guidance. The original purpose of every business is to generate profits. This is exactly the orientation of every promotion campaign. Promoting your product or service correctly by adjusting it to your customers’ needs and providing them with exactly what they need, you will be able to no only to control the number of clicks and actions, but also know how to use this information in order to benefit.

Tracking systems takes time and money. With proper investments and deep analytics, the process is much easier than it may seem. There are no 100% successful templates, which is why you have to adjust the system to your goals by experimenting and finding the best solutions.

What kind of difficulties have you experienced while setting up a tracking system? Did you find out any new information about motivation? Is necessary information about the systems helpful for understanding and setting up your process? Share your experience and additional tips in comments.

By Expert commentator

This is a post we’ve invited from a digital marketing specialist who has agreed to share their expertise, opinions and case studies. Their details are given at the end of the article.

This blog post has been tagged with:

Turbocharge your results with this toolkit containing 7 resources


The problem of existing of conversion in Old English is a very contradictional one. In the Middle English period approximately before the XV-th century verb formation from nouns and adjectives was considerably reduced for the reason that a great deal of the French loan-nouns and loan-verbs appeared. But backformation, analogy and homonymy played a great role in the further development of conversion and soon (since the XVIII-th century) it became one of the characteristic features of English. Modern English vocabulary is exceedingly rich in conversional pairs. As the way of forming new words conversion is extremely productive and new conversion pairs make their appearance in fiction, newspaper articles, in the process of oral communication and in all spheres of human activity gradually forcing their way into the existing vocabulary and in the dictionaries as well. Conversion is non-affixal, morphological-syntactical way of word-building which leads to the morphological, lexical, semantic and syntactic changes of a derived word.

There are 5 patterns of conversion:

l. Noun > Verb (display, n > display, v; pin, n > pin, v; brake, n > brake, v);

2. Verb > Noun (slip, v > slip, n; call, v >call, n; walk, v > walk, n);

3. Noun >Adjective (lemon, n >lemon, adj; ice, n > ice, adj; nut, n > nut, adj);

4. Adjective >Verb (dull, adj > dull, v; narrow, adj >narrow, v; cool, adj > cool, v);
5. Adjective > Noun (tall, adj > tall, n; rich, adj > rich, n; dear, adj > dear, n).

Conversion is especially productive in the formation of verbs; it is, as a matter of fact, the principal way of forming verbs in Modern English. The XX-th century neologisms include a great many verbs formed by conversion, e. g. to can (=put into can); to microfilm (= produce a microfilm of); to motor (=travel by car); to phone (= use the telephone; to wire (=send a telegram), etc.

There are two types of conversion: complete(a word is included in a new paradigm and is characterized by new grammatical categories, accepts another syntactic function and a new lexical-grammatical meaning) and partial(at first a noun is formed by conversion from a verbal stem, and then this noun is combined with such verbs as: give, make, have, take and a few others to form a verbal phrase: to have a smoke; to take a walk; to give a ride)

The classification of lexical units according to the semantic relation in conversional pairs includes the following semantic relations, for example in the pattern N > V: 1. to do with N: to knife; to brake; to brush; 2. to put in / on N: to bottle, to bag, to can; 3. to be (act as) N: to captain, to witness, to nurse; 4. to make, change into N: to arch, to parcel, to knight.

The structural classification includes the following types of stems:

1. Simple (non-derivating) stems consisting of only one root morpheme which
is indivisible (a key, a mask, a glass, a mop, a wall);

2. Affixal (derivative) stems consisting of a root morpheme and one or more
affixal morphemes (a telegraph, a volunteer);

3. Compound stems consisting of two or more simple stems (side-track, v;
lushcarpet, v);

4. Abbreviation stems (V-8, UN).

Nevertheless there are factors which limit the productivity of conversion. They are:

1) The lexical meaning of the stem. In English there are verbs like sit from which converted nouns can’t be formed because an action denoted by the verb can’t be regarded as a number of single actions;

2) The structural peculiarities of the word. They can be explained by etymology and the main point is that units converted from compounds and acronyms are very rare.

3) The social need for a converted unit, i. e. the creation of a new word due to the language needs of social groups. The presence in language of noun-and-verb pairs in the language created by other ways of word-formation also limits conversion because such creation of parallel words isn’t aroused by the necessity and is not justified by a society. It is very important to take into account that not all the converted words are accepted by the language. There are the words which are created not for the needs of the society but for gaining new or oriental effect. E. g.: to rubbish somebody – „to assert persistently that whatever somebody says or writes is rubbish”; to host a luncheon – „to act as host at luncheon party”.

The analysis of conversional pairs in different historical periods has shown that conversion as one of the types of word-building was productive at every stage of development of the English language and it is still productive nowadays.

4. Syntactical word-building: Syntactic compounding

Syntactic compounding is the process of semantic isolation and structural integration of free word-groups. These words are formed from segments of speech preserving articles, prepositions, adverbs, etc. E.g.: forget-me-not, lily-of-the-valley, Jack-of-all-trades, good-for-nothing, man-of-war (военный корабль), pick-me-up, milk-and-water (безвкусный; безвольный), tongue-in-cheek (неискренний), mums-to-be, hit-or-miss (случайный, сделанный кое-как), stay-at-home, know-all, know-nothing, passer-by, son-in-law, cool-to-the-touch, melt-in-the-mouth, etc. This type belongs to syntactical way of word-building in English.

5. Minor types of word-building: Sound-imitation

The great majority of motivated words in present-day language are motivated by reference to other words in the language, to the morphemes that go to compose them and to their arrangement. Therefore, even if one hears the noun wage-earner for the first time, one understands it, knowing the meaning of the words wage and earn and the structural pattern noun stem + verbal stem + -er as in bread-winner, skyscraper, strike-breaker. Sound imitating or onomatopoeic words are on the contrary motivated with reference to extra-linguistic reality, they are echoes of natural sounds. Sound imitation (onomatopoeia or echoism) is consequently the naming of an action or thing by a more or less exact reproduction of a sound associated with it. It would, however, be wrong to think that onomatopoeic words reflect the real sounds directly, irrespective of the laws of the language, because the same sounds are represented differently in different languages. Compare the English word соск-a-doodle-do and the French cocorico. Onomatopoeic words adopt the phonetic features of English and fall into the combinations peculiar to it.

This becomes obvious when one compares onomatopoeic words crow and twitter and the words flow and glitter with which they are rhymed in the following poem:

The cock is crowing,

The stream is flowing,

The small birds twitter,

The lake does glitter,

The green fields sleep in the sun (Wordsworth).

The majority of onomatopoeic words serve to name sounds or movements. Most of them are verbs easily turned into nouns: bang, boom, bump, hum, rustle, smack, thud, etc. Sound-imitative words form a considerable part of interjections. Cf. bang! hush! pooh!

Semantically, according to the source of sound, onomatopoeic words fall into a few very definite groups. Many verbs denote sounds produced by human beings in the process of communication or in expressing their feelings: babble, chatter, giggle, grunt, grumble, murmur, mutter, titter, whine, whisper and many more. Then there are sounds produced by animals, birds and insects, e. g. buzz, croak, crow, hiss, honk, howl, moo, mew, neigh, purr, roar and others. Some birds are named after the sound they make, these are the cuckoo, the whipoorwill and a few others. There are also verbs imitating the sound of water such as bubble or splash, and others imitating the noise of metallic things: clink, tinkle.

R. Soutliey’s poem “Does the Water Come Down at Lodore?” is a classical example of the stylistic possibilities offered by onomatopoeia: the words in it sound an echo of what the poet sees and describes.

Here it comes sparkling,

And there it lies darkling.

Eddying and whisking,

Spouting and frisking,

And whizzing and hissing,

And rattling and battling,

And giggling and struggling,

And bubbling and troubling and doubling,

And rushing and flushing and brushing and gushing,

And flapping and rapping and clapping and slapping.

And thumping and pumping and bumping and jumping,

And dashing and flashing and splashing and clashing.

And at once and all o’er, with a mighty uproar,

And this way the water comes down at Lodore.

Once being coined, onomatopoeic words lend themselves easily to further word-building and to semantic development. They readily develop figurative meanings. Croak, for instance, means „to make a deep harsh sound ” . In its direct meaning the verb is used about frogs or ravens. Metaphorically it may be used about a hoarse human voice. A further transfer of meaning makes the verb synonymous to such expressions as „to protest dismally”, „to grumble dourly”, „to predict evil”.

| следующая лекция ==>
Lexicalization of the pural of nouns | Тема 1. Предмет дисциплины «Менеджмент знаний». Знание как основной ресурс предприятия

Дата добавления: 2020-01-11 ; Просмотров: 2762 ; Нарушение авторских прав?

Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет

JavaScript type coercion explained

by Alexey Samoshkin

JavaScript type coercion explained

Know your engines

[Edit 2/5/2020]: This post is now available in Russian. Claps to Serj Bulavyk for his efforts.

Type coercion is the process of converting value from one type to another (such as string to number, object to boolean, and so on). Any type, be it primitive or an object, is a valid subject for type coercion. To recall, primitives are: number, string, boolean, null, undefined + Symbol (added in ES6).

As an example of type coercion in practice, look at the JavaScript Comparison Table, which shows how the loose equality == operator behaves for different a and b types. This matrix looks scary due to implicit type coercion that == operator does, and it’s hardly possible to remember all those combinations. And you don’t have to do that — just learn the underlying type coercion principles.

This article goes in-depth on how type coercion works in JavaScript, and will arm you with the essential knowledge, so you can feel confident explaining what following expressions calculate to. By the end of the article I’ll show answers and explain them.

Yes, this list is full of pretty silly things you can do as a developer. In 90% of use cases it’s better to avoid implicit type coercion. Consider this list as a learning exercise to test your knowledge on how type coercion works. If you’re bored, you can find more examples on

By the way, sometimes you might face such questions on the interview for a JavaScript developer position. So, keep reading ?

Implicit vs. explicit coercion

Type coercion can be explicit and implicit.

When a developer expresses the intention to convert between types by writing the appropriate code, like Number(value) , it’s called explicit type coercion (or type casting).

Since JavaScript is a weakly-typed language, values can also be converted between different types automatically, and it is called implicit type coercion. It usually happens when you apply operators to values of different types, like
1 == null , 2/’5′ , null + new Date() , or it can be triggered by the surrounding context, like with if (value) <…>, where value is coerced to boolean.

One operator that does not trigger implicit type coercion is === , which is called the strict equality operator. The loose equality operator == on the other hand does both comparison and type coercion if needed.

Implicit type coercion is a double edge sword: it’s a great source of frustration and defects, but also a useful mechanism that allows us to write less code without losing the readability.

Three types of conversion

The first rule to know is there are only three types of conversion in JavaScript:

Secondly, conversion logic for primitives and objects works differently, but both primitives and objects can only be converted in those three ways.

Let’s start with primitives first.

String conversion

To explicitly convert values to a string apply the String() function. Implicit coercion is triggered by the binary + operator, when any operand is a string:

All primitive values are converted to strings naturally as you might expect:

Symbol conversion is a bit tricky, because it can only be converted explicitly, but not implicitly. Read more on Symbol coercion rules.

Boolean conversion

To explicitly convert a value to a boolean apply the Boolean() function.
Implicit conversion happens in logical context, or is triggered by logical operators ( || && ! ) .

Note: Logical operators such as || and && do boolean conversions internally, but actually return the value of original operands, even if they are not boolean.

As soon as there are only 2 possible results of boolean conversion: true or false , it’s just easier to remember the list of falsy values.

Any value that is not in the list is converted to true , including object, function, Array , Date , user-defined type, and so on. Symbols are truthy values. Empty object and arrays are truthy values as well:

Numeric conversion

For an explicit conversion just apply the Number() function, same as you did with Boolean() and String() .

Implicit conversion is tricky, because it’s triggered in more cases:

  • comparison operators ( > , , , >= )
  • bitwise operators ( | & ^


  • arithmetic operators ( – + * / % ). Note, that binary + does not trigger numeric conversion, when any operand is a string.
  • unary + operator
  • loose equality operator == (incl. != ).
    Note that == does not trigger numeric conversion when both operands are strings.
  • Here is how primitive values are converted to numbers:

    When converting a string to a number, the engine first trims leading and trailing whitespace, \n , \t characters, returning NaN if the trimmed string does not represent a valid number. If string is empty, it returns 0 .

    null and undefined are handled differently: null becomes 0 , whereas undefined becomes NaN .

    Symbols cannot be converted to a number neither explicitly nor implicitly. Moreover, TypeError is thrown, instead of silently converting to NaN , like it happens for undefined . See more on Symbol conversion rules on MDN.

    There are two special rules to remember:

    1. When applying == to null or undefined , numeric conversion does not happen. null equals only to null or undefined , and does not equal to anything else.

    2. NaN does not equal to anything even itself:

    Type coercion for objects

    So far, we’ve looked at type coercion for primitive values. That’s not very exciting.

    When it comes to objects and engine encounters expression like [1] + [2,3] , first it needs to convert an object to a primitive value, which is then converted to the final type. And still there are only three types of conversion: numeric, string and boolean.

    The simplest case is boolean conversion: any non-primitive value is always
    coerced to true , no matter if an object or an array is empty or not.

    Objects are converted to primitives via the internal [[ToPrimitive]] method, which is responsible for both numeric and string conversion.

    Here is a pseudo implementation of [[ToPrimitive]] method:

    [[ToPrimitive]] is passed with an input value and preferred type of conversion: Number or String . preferredType is optional.

    Both numeric and string conversion make use of two methods of the input object: valueOf and toString . Both methods are declared on Object.prototype and thus available for any derived types, such as Date , Array , etc.

    In general the algorithm is as follows:

    1. If input is already a primitive, do nothing and return it.

    2. Call input.toString() , if the result is primitive, return it.

    3. Call input.valueOf() , if the result is primitive, return it.

    4. If neither input.toString() nor input.valueOf() yields primitive, throw TypeError .

    Numeric conversion first calls valueOf (3) with a fallback to toString (2). String conversion does the opposite: toString (2) followed by valueOf (3).

    Most built-in types do not have valueOf , or have valueOf returning this object itself, so it’s ignored because it’s not a primitive. That’s why numeric and string conversion might work the same — both end up calling toString() .

    Different operators can trigger either numeric or string conversion with a help of preferredType parameter. But there are two exceptions: loose equality == and binary + operators trigger default conversion modes ( preferredType is not specified, or equals to default ). In this case, most built-in types assume numeric conversion as a default, except Date that does string conversion.

    Here is an example of Date conversion behavior:

    You can override the default toString() and valueOf() methods to hook into object-to-primitive conversion logic.

    Notice how obj + ‘’ returns ‘101’ as a string. + operator triggers a default conversion mode, and as said before Object assumes numeric conversion as a default, thus using the valueOf() method first instead of toString() .

    ES6 Symbol.toPrimitive method

    In ES5 you can hook into object-to-primitive conversion logic by overriding toString and valueOf methods.

    In ES6 you can go farther and completely replace internal [[ToPrimitive]] routine by implementing the [Symbol.toPrimtive] method on an object.


    Armed with the theory, now let’s get back to our examples:

    Below you can find explanation for each the expression.

    Binary + operator triggers numeric conversion for true and false

    Arithmetic division operator / triggers numeric conversion for string ‘6’ :

    Operator + has left-to-right associativity, so expression “number” + 15 runs first. Since one operand is a string, + operator triggers string conversion for the number 15 . On the second step expression “number15” + 3 is evaluated similarly.

    Expression 15 + 3 is evaluated first. No need for coercion at all, since both operands are numbers. On the second step, expression 18 + ‘number’ is evaluated, and since one operand is a string, it triggers a string conversion.

    Comparison operator & gt; triggers numeric conversion f or [1] a nd n ull .

    Unary + operator has higher precedence over binary + operator. So +’bar’ expression evaluates first. Unary plus triggers numeric conversion for string ‘bar’ . Since the string does not represent a valid number, the result is NaN . On the second step, expression ‘foo’ + NaN is evaluated.

    == operator triggers numeric conversion, string ‘true’ is converted to NaN, boolean true is converted to 1.

    == usually triggers numeric conversion, but it’s not the case with null . null equals to null or undefined only, and does not equal to anything else.

    !! operator converts both ‘true’ and ‘false’ strings to boolean true , since they are non-empty strings. Then, == just checks equality of two boolean true’s without any coercion.

    == operator triggers a numeric conversion for an array. Array’s valueOf() method returns the array itself, and is ignored because it’s not a primitive. Array’s toString() converts [‘x’] to just ‘x’ string.

    + operator triggers numeric conversion for [] . Array’s valueOf() method is ignored, because it returns array itself, which is non-primitive. Array’s toString returns an empty string.

    On the the second step expression ” + null + 1 is evaluated.

    Logical || and && operators coerce operands to boolean, but return original operands (not booleans). 0 is falsy, whereas ‘0’ is truthy, because it’s a non-empty string. <> empty object is truthy as well.

    No coercion is needed because both operands have same type. Since == checks for object identity (and not for object equality) and the two arrays are two different instances, the result is false .

    All operands are non-primitive values, so + starts with the leftmost triggering numeric conversion. Both Object’s and Array’s valueOf method returns the object itself, so it’s ignored. toString() is used as a fallback. The trick here is that first <> is not considered as an object literal, but rather as a block declaration statement, so it’s ignored. Evaluation starts with next +[] expression, which is converted to an empty string via toString() method and then to 0 .

    This one is better explained step by step according to operator precedence.

    – operator triggers numeric conversion for Date . Date.valueOf() returns number of milliseconds since Unix epoch.

    + operator triggers default conversion. Date assumes string conversion as a default one, so toString() method is used, rather than valueOf() .


    I really want to recommend the excellent book “Understanding ES6” written by Nicholas C. Zakas. It’s a great ES6 learning resource, not too high-level, and does not dig into internals too much.

    And here is a good book on ES5 only – SpeakingJS written by Axel Rauschmayer.

    (Russian) Современный учебник Javascript — Especially these two pages on type coercion.

    wtfjs — a little code blog about that language we love despite giving us so much to hate —

    If this article was helpful, tweet it.

    Learn to code for free. freeCodeCamp’s open source curriculum has helped more than 40,000 people get jobs as developers. Get started

    freeCodeCamp is a donor-supported tax-exempt 501(c)(3) nonprofit organization (United States Federal Tax Identification Number: 82-0779546)

    Our mission: to help people learn to code for free. We accomplish this by creating thousands of videos, articles, and interactive coding lessons – all freely available to the public. We also have thousands of freeCodeCamp study groups around the world.

    Donations to freeCodeCamp go toward our education initiatives, and help pay for servers, services, and staff.

    Blog | EN | smec – Smarter Ecommerce

    smec – Smarter Ecommerce

    Google’s Delayed Conversions Explained

    Have you ever heard about delayed conversions? If not, you definitely should keep on reading! Imagine you have to do an ad-hoc report about the latest figures of your Google AdWords or Shopping account. This blog post will help you to prevent misleading comparisons between time ranges by explaining Google’s “last click wins” concept and how you can do it in two easy steps.

    Tl, dr:

    • This blog post helps you to understand Google’s “last-click-wins” concept and the 30 days cookie lifetime.
    • Learn to create you own estimate based on Google AdWords attribution data.
    • Use your new knowledge when making ad-hoc reports including last 30 days.

    Step 1: How Google cookies work and what delayed conversions are

    To understand delayed conversions, we will have to understand what happens technically during the online shopping process. When a customer clicks on an ad, a cookie is saved on the customer’s device. This cookie helps Google to be informed if a customer has clicked on an ad in the past. The lifetime of this cookie is 30 days (you can adjust that in your Google Adwords Account), but the cookie can be updated and the lifetime starts from day zero when the customer clicks on another ad.

    Thus, like an airplane or bus, conversions can be delayed.

    Why does that matter to my Google AdWords and/or Shopping data? Say you want to analyze your data from the weekend on Monday or Tuesday. You will miss conversions and revenue in your Google reports when analyzing too soon.

    Take this example: A potential customer clicks on your Google Shopping ad on Friday. If the potential customer converts to an active customer and purchases the product or some other products. In general, if the customer converts, the following three cases can occur:

    Case A: The customer purchases right on Friday

    This case should be clear, the conversion happened on the same day as the click. It doesn’t matter if the customer buys the advertised product or another product or even more products given it happens the same day. The conversion and the order value will be assigned to Friday.

    Case B: The customer comes back later and purchases within 30 days (the lifetime of the Google Shopping cookie)

    This conversion will also be attributed to Friday. As it not happened on Friday but later, it is called a delayed conversion. If no other ad from your AdWords Account is clicked until the customer purchases and the transaction takes place within 30 days, this click wins. Thus, the order value will also be assigned to Friday. Remember Google AdWords counts on a “last-click-wins”-basis. If there is already a conversion on Friday and another one on Sunday (with no additional ad click), both will be attributed to Friday.

    Case C: The customer searches again via Google and clicks (at least) one more time on a Google Shopping Ad. The actual purchase happens after the second click.

    This case isn’t a Friday conversion anymore. Google now updates the cookie after the second click on Sunday and the cookie will live for another 30 days from that day. According to the “last cookie wins” concept of Google Shopping, the conversion as well as the order value will be assigned to the day of the last search query including an ad click before the purchase. If that would be the case on Sunday it is a direct conversion, if it happens later than Sunday like in the illustration above it is also a delayed conversion.

    Remember: if you compare different time ranges make sure that the latest used data is at least 30 days in the past. Otherwise you underestimate the past 30 days as delayed conversions can still occur. Or, you can estimate your delayed conversions using step 2.

    Have you already tried Whoop! ?

    Step 2: How to create your own estimate based on Google AdWords Attribution Data

    You are able to get a pretty good estimate of the delayed conversions following up during the 30 day cookie lifetime right in the Google AdWords Interface.

    To accomplish this, just log in to your account and select “attribution” via “tools” in the main navigation bar of Google AdWords (as you can see in the screenshot below).

    Then choose “time lag” at the navigation panel on the left and choose a timeframe for your analysis. We strongly recommend using a timeframe between 3-6 months or even more to get more robust results.

    Please select “from last click” to get the needed data. In our example 84.53% of the conversion value happens on the day of the last click. That means 15.47 % of the total conversion value will be recorded on the succeeding 29 days. To make an assumption about the final conversion value after 30 days cookie lifetime just divide 15.47% by 84.53% to get your factor for the follow up conversion value. In our case that would be 18.3%. So if you record 1.000 Dollars of conversion value for yesterday you can expect about 1.180 Dollars of conversion value after expiration of the cookie lifetime.

    See our other Blog posts on this topic here (Black Friday Race 1), here (Black Friday Race 2) and here (Black Friday Race 3).

    Stay tuned for more interesting news from our “Whoop!” Data Science department. Keep following us!

    Best Binary Options Brokers 2020:
    • Binarium

      The Best Binary Options Broker 2020!
      Perfect Choice For Beginners!
      Free Demo Account!
      Free Trading Education!
      Get Your Sing-Up Bonus Now!

    • Binomo

      Only For Experienced Traders!

    Like this post? Please share to your friends:
    Binary Options Trading For Beginners
    Leave a Reply

    ;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: