For generating dynamic links, check this article

Email personalization is not just about adding "first name" to the subject line or using "Hi {fname}" as a greeting -- you can do that easily using merge fields

Personalization is also about delivering relevant content to your contacts that they are interested in. Using dynamic content helps you achieve just that. 

Emails that are personalized using dynamic content are more engaging, receive more clicks and result in fewer unsubscribes. 

How to add dynamic content

For each content block in the message editor you can choose the interest or subscription your contacts need to be tagged with in order to see that content.

When dynamic content is applied to a content block you'll see the following notice so you can easy tell apart static content from dynamic elements:

How to test dynamic content

Populate the relevant fields in your own contact record -- that contact record is used for previews. Your contact record is the one associated with your user login.
For example if your user login is associated with and you want to test the merge field for company name then be sure the company field is filled for the record.

Test emails:
Be sure that the email you send the test message(s) to have the interest or subscription that is used to control dynamic content.

Did this answer your question?