Repository
odoo/odoo · module folder
Module version
1.1
Category
Marketing
Folder size
0.9 MB
License
LGPL-3
Application
No
Auto-installable
No
Website
None
Last tracking update
2026-08-15 22:44:15
Authors
Odoo S.A.
Maintainers
Odoo S.A.
Committers
Xavier Morel, Raphael Collet, Odoo Translation Bot, Julien Castiaux, Xavier-Do, std-odoo, Tiffany Chang (tic), Gorash, William Braeckman, Florian Charlier, alsh-odoo, Victor Piryns (pivi), amdi-odoo, Dylan Kiss (dyki), Louis (loti), reka-odoo, guce, yagp-odoo, Anton Romanova (roan), Krzysztof Magusiak (krma), saurabh, Haroune Hassine (Hahas)
Odoo dependencies
odoo/odoo:
- utm
- web
- bus
Python dependencies
None
System dependencies
None
Required by
marketing_card, mass_mailing, pos_self_order, website_links
Description
Shorten URLs and use them to track clicks and UTMs

Code Analysis

Views touched (10)
XML IDNameModelTypeStatus
link_tracker_click_view_form link.tracker.click.view.form link.tracker.click form New
link_tracker_click_view_graph link.tracker.click.view.graph link.tracker.click graph New
link_tracker_click_view_search link.tracker.click.view.search link.tracker.click search New
link_tracker_click_view_tree link.tracker.click.view.list link.tracker.click list New
link_tracker_view_form link.tracker.view.form link.tracker form New
link_tracker_view_graph link.tracker.view.graph link.tracker graph New
link_tracker_view_search link.tracker.view.search link.tracker search New
link_tracker_view_tree link.tracker.view.list link.tracker list New
utm_campaign_view_form utm.campaign.view.form utm.campaign form Inherits utm.utm_campaign_view_form
utm_campaign_view_kanban utm.campaign.view.form utm.campaign form Inherits utm.utm_campaign_view_kanban
HTTP endpoints (1)
Route(s)HandlerAuthTypeMethodsFlags
/r/<string:code> LinkTracker.full_url_redirect public http ALL sudo website
Models touched (5)

New fields (14)
  • absolute_url Char
    compute='_compute_absolute_url' args: 'Absolute URL'
  • campaign_id Many2one
    ondelete='set null'
  • code Char
    compute='_compute_code' inverse='_inverse_code' readonly=False string='Short URL code'
  • count Integer
    compute='_compute_count' store=True string='Number of Clicks'
  • label Char
    string='Button label'
  • link_click_ids One2many → link.tracker.click
    string='Clicks' args: 'link.tracker.click', 'link_id'
  • link_code_ids One2many → link.tracker.code
    string='Codes' args: 'link.tracker.code', 'link_id'
  • medium_id Many2one
    ondelete='set null'
  • redirected_url Char
    compute='_compute_redirected_url' string='Redirected URL'
  • short_url Char
    compute='_compute_short_url' search='_search_short_url' string='Tracked URL'
  • short_url_host Char
    compute='_compute_short_url_host' string='Host of the short URL'
  • source_id Many2one
    ondelete='set null'
  • title Char
    store=True string='Page Title'
  • url Char
    required=True string='Target URL'
Public methods (7)
  • action_view_statistics(self)
  • action_visit_page(self)
  • convert_links(self, html, vals, blacklist=None)
    @api.model
  • create(self, vals_list)
    @api.model_create_multi
  • get_url_from_code(self, code)
    @api.model
  • recent_links(self, filter, limit)
    @api.model
  • search_or_create(self, vals_list)
    @api.model
    Get existing or newly created records matching vals_list items in preserved order supporting duplicates.

New fields (4)
  • campaign_id Many2one → utm.campaign
    index='btree_not_null' ondelete='set null' related='link_id.campaign_id' store=True args: 'utm.campaign', 'UTM Campaign'
  • country_id Many2one → res.country
    args: 'res.country', 'Country'
  • ip Char
    string='Internet Protocol'
  • link_id Many2one → link.tracker
    index=True ondelete='cascade' required=True args: 'link.tracker', 'Link'
Public methods (1)
  • add_click(self, code, **route_values)
    @api.model
    Main API to add a click on a link.

New fields (2)
  • code Char
    required=True store=True string='Short URL Code'
  • link_id Many2one → link.tracker
    index=True ondelete='cascade' required=True args: 'link.tracker', 'Link'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • click_count Integer
    compute='_compute_clicks_count' string='Number of clicks generated by the campaign'
Public methods (0)

No public methods.

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…