Reddit Ads Troubleshooting & Debugging | Blue Frog Docs

Reddit Ads Troubleshooting & Debugging

Troubleshooting playbook for Reddit Pixel and Conversions API issues.

Symptom Library

  • Reddit Pixel not firing or not detected
  • Events not appearing in Events Manager
  • Conversion tracking discrepancies
  • Low conversion counts or attribution gaps
  • Pixel firing multiple times (duplicate events)
  • Event parameters missing or incorrect
  • Conversions API errors and failed requests
  • Advanced matching not working
  • Cross-domain tracking issues
  • Mobile app event attribution problems

Investigation Workflow

Step 1: Verify Pixel Installation

  1. Open your website in browser
  2. Open browser developer console (F12)
  3. Go to Network tab and filter by "rdt"
  4. Refresh page and look for requests to alb.reddit.com
  5. Check that pixel ID matches your Events Manager pixel

Step 2: Check Events Manager

  1. Navigate to Reddit Ads Manager > Events Manager
  2. Select your pixel from the list
  3. Review "Activity" tab for recent events
  4. Check event count trends over last 24 hours, 7 days
  5. Look for error messages or warnings

Step 3: Browser Extension Validation

  1. Install Reddit Pixel Helper (if available) or use browser console
  2. Visit pages where pixel should fire
  3. Verify pixel detected and events triggered
  4. Check event parameters are correct
  5. Review any warnings or errors

Step 4: Test Event Tracking

  1. In Events Manager, use "Test Events" feature
  2. Generate test events on your site
  3. Verify they appear in real-time test view
  4. Confirm event names and parameters match expectations
  5. Check advanced matching data if configured

Step 5: Review Event Quality

  1. Check Event Match Quality scores in Events Manager
  2. Review parameter completeness for key events
  3. Verify required parameters (value, currency for purchases)
  4. Ensure event_id deduplication working correctly
  5. Validate advanced matching data (hashed email, phone)

Tools & Logs

Browser Developer Console

Check Pixel Load:

// Open browser console and check if rdt is defined
if (typeof rdt !== 'undefined') {
  console.log('Reddit Pixel loaded');
} else {
  console.error('Reddit Pixel not loaded');
}

// Check pixel queue
console.log(window.rdt ? 'Pixel initialized' : 'Pixel not initialized');

Manual Event Test:

// Fire test event in console
rdt('track', 'Purchase', {
  value: 1.00,
  currency: 'USD',
  transactionId: 'TEST_' + Date.now()
});

Check Network Requests:

  • Open Network tab in DevTools
  • Filter by "rdt" or "reddit"
  • Look for POST requests to alb.reddit.com/rp.gif
  • Inspect request payload for event data

Reddit Events Manager

Activity Dashboard:

  • View events received in last hour, 24 hours, 7 days
  • Break down by event type (PageView, Purchase, etc.)
  • Check event volume trends
  • Review top events by count

Test Events:

  • Real-time event validation tool
  • Generate test events from your browser
  • View event payloads and parameters
  • Test before production deployment

Diagnostics:

  • Error logs for failed events
  • Warning messages for parameter issues
  • Pixel status (active/inactive)
  • Last event received timestamp

Google Tag Manager Debug

If using GTM for pixel deployment:

  1. Enable GTM Preview Mode
  2. Visit your website with preview active
  3. Check that Reddit Pixel tags fire on correct triggers
  4. Review dataLayer values being passed to pixel
  5. Verify tag firing sequence (base pixel before events)

Conversions API Testing

cURL Test:

curl -X POST https://ads-api.reddit.com/api/v2.0/conversions/events/YOUR_ACCOUNT_ID \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "events": [{
      "event_at": "2024-01-15T12:00:00Z",
      "event_type": {
        "tracking_type": "Purchase"
      },
      "user": {
        "email": "test@example.com",
        "external_id": "user_123"
      },
      "event_metadata": {
        "item_count": 1,
        "value": 99.99,
        "currency": "USD"
      }
    }]
  }'

Check Response:

  • 200 status code indicates success
  • Error codes: 400 (bad request), 401 (auth error), 429 (rate limit)
  • Review error messages for specific issues

Common Issues & Solutions

Pixel Not Firing

Symptoms:

  • No network requests to Reddit domains
  • Events Manager shows no activity
  • Pixel Helper doesn't detect pixel

Potential Causes:

  1. Pixel code not installed or removed
  2. JavaScript errors preventing pixel load
  3. Ad blockers or privacy extensions blocking pixel
  4. Incorrect pixel ID in code
  5. Script loading after page events trigger

Solutions:

  • Verify pixel base code in HTML source
  • Check browser console for JavaScript errors
  • Test in incognito mode to bypass extensions
  • Confirm pixel ID matches Events Manager
  • Place pixel code in <head> tag, not bottom of page
  • Use async loading to prevent blocking
  • Ensure GTM container published if using tag manager

Events Not Appearing

Symptoms:

  • Pixel fires but events don't show in Events Manager
  • Delayed event reporting (>1 hour)
  • Some events missing while others work

Potential Causes:

  1. Incorrect event name or format
  2. Missing required event parameters
  3. Events blocked by consent management
  4. Event triggered before pixel initialized
  5. Rate limiting or duplicate event filtering

Solutions:

  • Use exact event names: PageView, Purchase, ViewContent (case-sensitive)
  • Include required parameters: value, currency for purchases
  • Check consent management allows Reddit tracking
  • Ensure pixel loads before events fire
  • Wait up to 30 minutes for event processing
  • Check for duplicate event_id causing deduplication

Low Conversion Counts

Symptoms:

  • Fewer conversions in Reddit than expected
  • Discrepancy vs. Google Analytics or other platforms
  • Conversions tracked but attribution missing

Potential Causes:

  1. Attribution window too short
  2. Users clearing cookies between ad click and conversion
  3. Cross-device conversions not tracked
  4. ITP (Intelligent Tracking Prevention) on Safari/iOS
  5. Events firing but not attributed to Reddit ads

Solutions:

  • Extend attribution window in campaign settings (7-day or 28-day)
  • Implement Conversions API for server-side tracking
  • Use advanced matching with hashed user identifiers
  • Add external_id for logged-in users
  • Compare click timestamps with conversion timestamps
  • Check that conversion events have proper event_id

Duplicate Events

Symptoms:

  • Same event appearing multiple times
  • Inflated conversion counts
  • Multiple pixel fires on single page load

Potential Causes:

  1. Pixel code installed multiple times
  2. Event triggered on every page load instead of once
  3. GTM firing duplicate tags
  4. Single-page app (SPA) re-triggering events

Solutions:

  • Search HTML source for multiple pixel instances
  • Use browser find (Ctrl+F) to search for pixel ID
  • Implement event_id for deduplication
  • Use GTM trigger conditions to limit firing
  • For SPAs, only fire events on actual navigation changes
  • Add guards to prevent double-firing in code

Parameter Issues

Symptoms:

  • Events fire but missing data in reports
  • Value-based optimization not working
  • Custom parameters not captured

Potential Causes:

  1. Parameters not included in event call
  2. Incorrect parameter names or format
  3. Values not properly typed (string vs. number)
  4. Null or undefined values passed

Solutions:

  • Review Reddit Pixel documentation for parameter names
  • Use correct data types: value as number, currency as string
  • Validate parameters before sending: value: parseFloat(totalValue)
  • Check browser console for parameter values
  • Test with hardcoded values first, then dynamic
  • Use dataLayer in GTM for reliable parameter passing

Conversions API Errors

Symptoms:

  • CAPI requests failing
  • 400, 401, or 500 error responses
  • Events not appearing in Events Manager

Common Error Codes:

401 Unauthorized:

  • Invalid or expired access token
  • Missing Authorization header
  • Incorrect token format

Solution: Regenerate access token in Reddit Ads Manager

400 Bad Request:

  • Malformed JSON payload
  • Missing required fields
  • Invalid event type or parameter names
  • Incorrect timestamp format

Solution: Validate JSON structure, check required fields

429 Rate Limit Exceeded:

  • Too many requests per minute
  • Batch size exceeds limits

Solution: Implement request throttling, reduce batch size

500 Internal Server Error:

  • Reddit API temporary issue
  • Retry with exponential backoff

Solutions for CAPI:

  • Log full request and response for debugging
  • Validate JSON with online validator
  • Check timestamp is ISO 8601 format
  • Ensure event_at is within 7 days of current time
  • Hash email/phone with SHA256 lowercase
  • Implement retry logic with exponential backoff
  • Monitor CAPI health in Events Manager diagnostics

Advanced Matching Not Working

Symptoms:

  • Low event match quality scores
  • Attribution lower than expected
  • User data parameters not improving matching

Potential Causes:

  1. PII not hashed correctly (wrong algorithm, case sensitivity)
  2. Email/phone format incorrect
  3. Advanced matching parameters not sent
  4. Users not logged in or identifiable

Solutions:

  • Hash with SHA256 (not MD5 or other algorithms)
  • Lowercase and trim email before hashing
  • Format phone as E.164: +15551234567
  • Include external_id for logged-in users
  • Test hashing in console:
async function hashValue(value) {
  const encoder = new TextEncoder();
  const data = encoder.encode(value.toLowerCase().trim());
  const hashBuffer = await crypto.subtle.digest('SHA-256', data);
  const hashArray = Array.from(new Uint8Array(hashBuffer));
  return hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
}

// Test email hashing
hashValue('user@example.com').then(console.log);

Cross-Domain Tracking Issues

Symptoms:

  • Sessions break when users navigate between domains
  • Conversion attribution lost on checkout domain
  • Separate pixel tracking on each domain

Potential Causes:

  1. Pixel ID not consistent across domains
  2. Cookies not shared between domains
  3. Click ID not passed in cross-domain links

Solutions:

  • Use same pixel ID on all domains
  • Implement linker parameter for cross-domain tracking
  • Preserve rdt_cid cookie value in URL parameters
  • Update links between domains to include click ID
  • Test full user journey across domains

Mobile App Attribution

Symptoms:

  • App installs not attributed to Reddit ads
  • In-app events not tracked
  • Install count discrepancies

Potential Causes:

  1. MMP integration not configured
  2. Postback URLs incorrect
  3. Deep linking not working
  4. Store attribution delay

Solutions:

  • Verify MMP (AppsFlyer, Adjust, etc.) integration active
  • Check postback URLs in MMP dashboard
  • Test attribution with test campaigns
  • Allow 24-48 hours for store attribution data
  • Review MMP logs for Reddit attribution

Escalation & Communication

Reddit Support Channels

  1. Reddit Ads Help Center - Self-service articles and guides
  2. Reddit Ads Support - Email support for technical issues
  3. Reddit Account Manager - For managed accounts (high spend)
  4. Reddit Ads Community - r/RedditAds subreddit for peer support

When to Escalate

  • Persistent pixel issues after trying all solutions
  • API errors that don't resolve with retry
  • Suspected Reddit platform bug
  • Account access or billing issues
  • Missing conversions with verified implementation

Information to Provide

When contacting support:

  • Reddit Ads Account ID
  • Pixel ID or Advertiser ID
  • Description of issue and symptoms
  • Steps already taken to troubleshoot
  • Screenshots of errors or Events Manager
  • Example event payloads or API requests
  • Timeline of when issue started
  • Affected campaigns or events

Documentation for Tickets

  • Browser console logs showing pixel activity
  • Network tab HAR file export
  • Events Manager screenshots
  • GTM container export (if applicable)
  • Sample API requests and responses
  • Test event results

Preventive Maintenance

Weekly Monitoring

  • Check Events Manager for event volume trends
  • Review error logs for new issues
  • Monitor conversion counts vs. expectations
  • Validate key events still firing (PageView, Purchase)
  • Check Event Match Quality scores

Monthly Audits

  • Review pixel implementation across all pages
  • Test conversion funnel end-to-end
  • Audit GTM container for outdated tags
  • Verify access token validity for CAPI
  • Check for pixel code duplicates
  • Review user permissions and access

Quarterly Reviews

  • Evaluate attribution window settings
  • Review custom event taxonomy
  • Audit advanced matching implementation
  • Test cross-domain tracking paths
  • Document any platform changes from Reddit
  • Update runbooks with new learnings

Testing Checklist

Before major site updates:

  • Test pixel loads on new pages
  • Verify events fire on new conversion flows
  • Check GTM changes don't break pixel tags
  • Test in multiple browsers (Chrome, Firefox, Safari)
  • Validate mobile pixel implementation
  • Confirm CAPI still functioning
  • Review Events Manager for new errors

Alert Setup

Configure monitoring alerts for:

  • Zero events received in 6+ hours
  • Conversion count drops >50% day-over-day
  • CAPI error rate >10%
  • Event Match Quality drops below 5.0
  • New errors in Events Manager

Best Practices for Debugging

  1. Start Simple - Test with hardcoded values before dynamic implementation
  2. Isolate Variables - Change one thing at a time when troubleshooting
  3. Use Test Events - Validate before production deployment
  4. Check Browser Compatibility - Test across Chrome, Firefox, Safari, Edge
  5. Document Findings - Keep runbook of issues and solutions
  6. Version Control - Track pixel code changes via Git or GTM versions
  7. Test Privacy Modes - Verify tracking in incognito/private browsing
  8. Monitor After Changes - Watch Events Manager for 24-48 hours post-deployment
  9. Maintain Logs - Server-side logging for CAPI requests and responses
  10. Stay Updated - Follow Reddit Ads updates for platform changes
// SYS.FOOTER