Skip to main content
bchic Analytics automatically captures all visitors coming from Instagram or Facebook Ads to your website. With the right URL parameters, you’ll track not just traffic sources, but also campaign names, ad sets, creatives, and placements (Stories, Feed, Reels).

Automatic Tracking

bchic automatically recognizes all visitors with UTM parameters in the URL and categorizes them as Paid Traffic. You’ll see these visits in the dashboard under Traffic Sources → UTM Campaigns.

Standard UTM Parameters

The most important UTM parameters for Meta Ads:
ParameterDescriptionExample
utm_sourceTraffic sourceinstagram, facebook
utm_mediumMarketing mediumpaid_social, social_paid
utm_campaignCampaign namesummer_sale_2026
utm_contentAd name/creativecarousel_product_a
utm_termAd set/targeting (optional)women_25-34_berlin
Example URL:
https://yourdomain.com/?utm_source=instagram&utm_medium=paid_social&utm_campaign=summer_sale_2026&utm_content=carousel_product_a

Meta Ads Configuration

1

Set URL parameters at campaign level

Meta Ads (formerly Facebook Ads Manager) offers dynamic URL parameters that are automatically filled with campaign data.
  1. Open Meta Ads Manager (business.facebook.com).
  2. Select the desired Campaign.
  3. Click Edit.
  4. Scroll down to TrackingURL Parameters.
  5. Add the following parameters:
utm_source={{site_source_name}}&utm_medium=paid_social&utm_campaign={{campaign.name}}&utm_content={{ad.name}}&utm_term={{adset.name}}
  1. Click Publish.
{{site_source_name}} automatically returns Instagram or Facebook – so you can cover both channels with one template.
2

Dynamic parameters explained

Meta offers numerous dynamic placeholders you can use:
ParameterWhat it tracksExample output
{{site_source_name}}PlatformInstagram, Facebook
{{campaign.name}}Campaign namesummer_sale_2026
{{campaign.id}}Campaign ID120247774987700538
{{adset.name}}Ad set namewomen_25-34_berlin
{{adset.id}}Ad set ID120247771712260538
{{ad.name}}Ad namecarousel_product_a
{{ad.id}}Ad ID120247775752120538
{{placement}}PlacementInstagram_Stories, feed, Instagram_Reels
Important: Use {{campaign.name}}, not {{campaign.id}}. Otherwise you’ll see only numbers like 120247774987700538 in the dashboard instead of readable campaign names.
Recommended template with all important data:
utm_source={{site_source_name}}&utm_medium=paid_social&utm_campaign={{campaign.name}}&utm_content={{ad.name}}&utm_term={{adset.name}}&placement={{placement}}
3

Set URL parameters at ad level (optional)

If you need different parameters for individual ads:
  1. Open the desired Ad in Ads Manager.
  2. Click Edit.
  3. Scroll to TrackingURL Parameters.
  4. Set individual parameters (overrides campaign settings).
Example for Instagram Stories ad:
utm_source=instagram&utm_medium=stories&utm_campaign={{campaign.name}}&utm_content=story_swipe_up
4

Set URL parameters at account level (for all campaigns)

To automatically set URL parameters for all future campaigns:
  1. Go to Business SettingsData SourcesPixels.
  2. Select your pixel.
  3. Scroll to Event Setup ToolURL Parameters.
  4. Add your default template.
This setting only applies to new campaigns. Existing campaigns must be adjusted manually.

Verify Tracking

After setup, you can verify that URL parameters are being passed correctly:
  1. Meta Ads Manager Preview: Click Ad Preview and check the URL in the preview browser.
  2. bchic Dashboard: Go to Traffic Sources → UTM Campaigns and see if new campaigns appear.
  3. Browser DevTools: After clicking an ad, open DevTools (F12) → Network → check URL parameters.
Example of a correctly tagged URL:
https://yourdomain.com/landing?utm_source=Instagram&utm_medium=paid_social&utm_campaign=summer_sale_2026&utm_content=carousel_product_a&utm_term=women_25-34_berlin&placement=Instagram_Stories

Analysis in bchic

In the bchic dashboard, you’ll find Instagram & Facebook Ads traffic under:
  • Traffic Sources → UTM Campaigns: Overview of all campaigns with sessions, conversions, bounce rate.
  • Traffic Sources → UTM Source/Medium: Filter by Instagram / paid_social or Facebook / paid_social.
  • UTM Content: Compare performance of different ads/creatives.
  • UTM Term: See which ad sets (targeting) perform best.

Placement analysis

If you use placement={{placement}}, you can analyze:
  • Instagram Stories vs. Feed vs. Reels
  • Facebook Feed vs. Marketplace vs. Audience Network
You’ll find this data under Custom Parameters (if you set placement= as a separate parameter) or in the URL details.

Track custom events

If you want to track conversions like purchases, leads, or video views:
// Example: Conversion after button click
document.getElementById('cta-button').addEventListener('click', function() {
    if (window.bchic) {
        window.bchic.track('click_cta', { source: 'instagram_stories' });
    }
});
You’ll see these events under Events in the dashboard and can link them to UTM parameters.

Common Issues

Only numbers instead of campaign names in dashboard

  • Problem: You see 120247774987700538 instead of summer_sale_2026.
  • Solution: You’re using {{campaign.id}} instead of {{campaign.name}}. Change the URL parameters:
❌ utm_campaign={{campaign.id}}
✅ utm_campaign={{campaign.name}}
If you need both, combine them:
utm_campaign={{campaign.name}}&campaign_id={{campaign.id}}

URL parameters not being transferred

  • Problem: You see traffic but no UTM data in the dashboard.
  • Solution: Check if URL parameters are saved in the campaign. Meta Ads only applies parameters if they were set before publishing.

Placeholders not being replaced

  • Problem: URL literally shows {{campaign.name}}.
  • Solution: You probably entered parameters in the destination URL instead of the URL parameters field. Meta only replaces placeholders in the dedicated field.

Instagram and Facebook traffic not separated

  • Problem: You only see utm_source=facebook for both channels.
  • Solution: Use {{site_source_name}} instead of a hardcoded value:
❌ utm_source=facebook
✅ utm_source={{site_source_name}}

Special characters in campaign names

  • Problem: Campaign name contains spaces or special characters (e.g., Summer Sale 2026!).
  • Solution: Meta encodes URLs automatically. In bchic, the name will appear as Summer%20Sale%202026%21. Better: Use underscores instead of spaces in campaign names (summer_sale_2026).

Best Practices

Consistent naming convention

Use consistent names for campaigns and ads:
  • utm_campaign=summer_sale_instagram_stories
  • utm_content=carousel_v1
  • utm_campaign=Summer Sale 2026! (spaces, special chars)

Set source and medium correctly

For Instagram:
utm_source=instagram&utm_medium=paid_social
For Facebook:
utm_source=facebook&utm_medium=paid_social
Or use {{site_source_name}} for both:
utm_source={{site_source_name}}&utm_medium=paid_social

Ad sets as utm_term

Use utm_term for targeting/ad sets to see which audience performs best:
utm_term={{adset.name}}
Example output: women_25-34_berlin, men_35-44_munich

Placement as separate parameter

If you want to analyze placements in detail:
&placement={{placement}}
Then you’ll see exactly whether Stories, Feed, or Reels convert better.

Instagram Shopping & Reels

Instagram Shopping Posts

For shopping posts, you can set URL parameters directly in the product link:
  1. Open Instagram → Profile → Settings → Business.
  2. Go to ShoppingCatalog Products.
  3. Edit the product URL and add parameters:
https://yourdomain.com/product?utm_source=instagram&utm_medium=shopping&utm_campaign=organic_post

Instagram Reels Ads

Reels ads are automatically marked with {{placement}} as Instagram_Reels:
utm_source=instagram&utm_medium=paid_social&utm_campaign={{campaign.name}}&placement={{placement}}

Privacy

UTM parameters contain no personal data and are GDPR-compliant. Campaign names, ad sets, and placements are technical information, not user identifiers. bchic stores UTM data aggregated and anonymized – just like all other analytics data.

Support

If you need help setting up Instagram/Meta Ads tracking or have questions about specific dynamic parameters: We’re happy to help with configuration and show you how to get the most out of your campaign data.