{"id":1068,"date":"2026-05-13T13:00:00","date_gmt":"2026-05-13T18:00:00","guid":{"rendered":"https:\/\/tolinku.com\/blog\/?p=1068"},"modified":"2026-03-07T03:34:39","modified_gmt":"2026-03-07T08:34:39","slug":"ab-testing-referral-incentives","status":"publish","type":"post","link":"https:\/\/tolinku.com\/blog\/ab-testing-referral-incentives\/","title":{"rendered":"A\/B Testing Referral Incentives"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">The right referral incentive can multiply your viral coefficient. The wrong one wastes budget on low-quality users or fails to motivate sharing at all. A\/B testing referral incentives tells you exactly which reward type, amount, and structure drives the most high-quality referrals for your app.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For referral reward fundamentals, see <a href=\"https:\/\/tolinku.com\/blog\/referral-rewards-strategies\/\">Referral Reward Strategies: Finding the Right Incentive<\/a>. For A\/B testing deep links, see <a href=\"https:\/\/tolinku.com\/blog\/ab-testing-deep-links-landing-pages\/\">A\/B Testing Deep Links and Landing Pages<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img decoding=\"async\" src=\"https:\/\/tolinku.com\/blog\/wp-content\/uploads\/2026\/03\/platform-ab-test-form.png\" alt=\"Tolinku A\/B test creation form with type, goal, and variant configuration\">\n<em>The A\/B test creation form with test type, goal metric, route picker, and variant builder.<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What to Test<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Incentive Variables<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Variable<\/th>\n<th>Options<\/th>\n<th>Impact<\/th>\n<\/tr>\n<\/thead>\n<tbody><tr>\n<td>Reward type<\/td>\n<td>Cash, credit, free month, feature unlock<\/td>\n<td>High<\/td>\n<\/tr>\n<tr>\n<td>Reward amount<\/td>\n<td>$5 vs. $10 vs. $20<\/td>\n<td>High<\/td>\n<\/tr>\n<tr>\n<td>Reward structure<\/td>\n<td>Single-sided vs. double-sided<\/td>\n<td>High<\/td>\n<\/tr>\n<tr>\n<td>Reward timing<\/td>\n<td>Immediate vs. after action<\/td>\n<td>Medium<\/td>\n<\/tr>\n<tr>\n<td>Reward visibility<\/td>\n<td>Prominent vs. subtle<\/td>\n<td>Medium<\/td>\n<\/tr>\n<tr>\n<td>Referral limit<\/td>\n<td>Unlimited vs. capped<\/td>\n<td>Low<\/td>\n<\/tr>\n<tr>\n<td>Expiration<\/td>\n<td>None vs. 30 days vs. 7 days<\/td>\n<td>Medium<\/td>\n<\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Test Priority<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Reward type<\/strong>: Cash vs. credit vs. feature unlock (biggest impact)<\/li>\n<li><strong>Double-sided vs. single-sided<\/strong>: Does rewarding the invitee improve conversion?<\/li>\n<li><strong>Reward amount<\/strong>: Find the minimum effective amount<\/li>\n<li><strong>Timing<\/strong>: Immediate reward vs. after the invitee&#39;s first purchase<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Reward Type Tests<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Cash vs. Credit vs. Feature<\/h3>\n\n\n\n<pre><code class=\"language-javascript\">const rewardTypeExperiment = {\n  id: &#39;referral_reward_type_v2&#39;,\n  variants: [\n    {\n      id: &#39;cash&#39;,\n      weight: 25,\n      config: {\n        referrerReward: { type: &#39;cash&#39;, amount: 10, currency: &#39;USD&#39; },\n        inviteeReward: { type: &#39;cash&#39;, amount: 10, currency: &#39;USD&#39; },\n        displayText: &#39;Give $10, Get $10&#39;,\n      },\n    },\n    {\n      id: &#39;credit&#39;,\n      weight: 25,\n      config: {\n        referrerReward: { type: &#39;credit&#39;, amount: 15, currency: &#39;USD&#39; },\n        inviteeReward: { type: &#39;credit&#39;, amount: 15, currency: &#39;USD&#39; },\n        displayText: &#39;Give $15, Get $15 in credit&#39;,\n      },\n    },\n    {\n      id: &#39;feature&#39;,\n      weight: 25,\n      config: {\n        referrerReward: { type: &#39;feature&#39;, feature: &#39;premium_month&#39;, value: 9.99 },\n        inviteeReward: { type: &#39;feature&#39;, feature: &#39;premium_month&#39;, value: 9.99 },\n        displayText: &#39;Give a free month, Get a free month&#39;,\n      },\n    },\n    {\n      id: &#39;points&#39;,\n      weight: 25,\n      config: {\n        referrerReward: { type: &#39;points&#39;, amount: 500, value: 5 },\n        inviteeReward: { type: &#39;points&#39;, amount: 500, value: 5 },\n        displayText: &#39;Give 500 points, Get 500 points&#39;,\n      },\n    },\n  ],\n  primaryMetric: &#39;referral_sent&#39;,\n  secondaryMetrics: [&#39;referral_converted&#39;, &#39;invitee_d30_retention&#39;, &#39;reward_cost_per_acquisition&#39;],\n};\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Typical results by app type:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>App Type<\/th>\n<th>Best Reward Type<\/th>\n<th>Why<\/th>\n<\/tr>\n<\/thead>\n<tbody><tr>\n<td>E-commerce<\/td>\n<td>Cash or credit<\/td>\n<td>Direct purchasing power<\/td>\n<\/tr>\n<tr>\n<td>SaaS\/Subscription<\/td>\n<td>Free month<\/td>\n<td>Aligns with the product<\/td>\n<\/tr>\n<tr>\n<td>Gaming<\/td>\n<td>In-game currency<\/td>\n<td>Matches user motivation<\/td>\n<\/tr>\n<tr>\n<td>Fintech<\/td>\n<td>Cash<\/td>\n<td>Users are money-motivated<\/td>\n<\/tr>\n<tr>\n<td>Social<\/td>\n<td>Feature unlock<\/td>\n<td>Status\/access is the currency<\/td>\n<\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Amount Sensitivity<\/h3>\n\n\n\n<pre><code class=\"language-javascript\">const rewardAmountExperiment = {\n  id: &#39;referral_amount_v1&#39;,\n  variants: [\n    {\n      id: &#39;low&#39;,\n      weight: 33,\n      config: {\n        referrerReward: { type: &#39;credit&#39;, amount: 5 },\n        inviteeReward: { type: &#39;credit&#39;, amount: 5 },\n        displayText: &#39;Give $5, Get $5&#39;,\n      },\n    },\n    {\n      id: &#39;medium&#39;,\n      weight: 33,\n      config: {\n        referrerReward: { type: &#39;credit&#39;, amount: 10 },\n        inviteeReward: { type: &#39;credit&#39;, amount: 10 },\n        displayText: &#39;Give $10, Get $10&#39;,\n      },\n    },\n    {\n      id: &#39;high&#39;,\n      weight: 34,\n      config: {\n        referrerReward: { type: &#39;credit&#39;, amount: 20 },\n        inviteeReward: { type: &#39;credit&#39;, amount: 20 },\n        displayText: &#39;Give $20, Get $20&#39;,\n      },\n    },\n  ],\n  primaryMetric: &#39;referral_converted&#39;,\n  secondaryMetrics: [&#39;referral_sent&#39;, &#39;cost_per_acquisition&#39;, &#39;invitee_ltv&#39;],\n};\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Important: Don&#39;t just look at referral volume. Calculate cost per acquired user:<\/p>\n\n\n\n<pre><code class=\"language-javascript\">function calculateReferralROI(variantResults) {\n  const { referralsSent, referralsConverted, rewardAmount, inviteeLTV } = variantResults;\n\n  const conversionRate = referralsConverted \/ referralsSent;\n  const totalRewardCost = referralsConverted * rewardAmount * 2; \/\/ Both sides\n  const costPerAcquisition = totalRewardCost \/ referralsConverted;\n  const roi = (inviteeLTV - costPerAcquisition) \/ costPerAcquisition;\n\n  return {\n    conversionRate: (conversionRate * 100).toFixed(1) + &#39;%&#39;,\n    costPerAcquisition: &#39;$&#39; + costPerAcquisition.toFixed(2),\n    roi: (roi * 100).toFixed(0) + &#39;%&#39;,\n    isPositiveROI: roi &gt; 0,\n  };\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Higher rewards increase volume but also increase cost. The optimal amount is the one that maximizes <code>(referrals x LTV) - (referrals x reward cost)<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Structure Tests<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Double-Sided vs. Single-Sided<\/h3>\n\n\n\n<pre><code class=\"language-javascript\">const structureExperiment = {\n  id: &#39;referral_structure_v1&#39;,\n  variants: [\n    {\n      id: &#39;referrer_only&#39;,\n      weight: 33,\n      config: {\n        referrerReward: { type: &#39;credit&#39;, amount: 10 },\n        inviteeReward: null,\n        displayText: &#39;Get $10 for every friend you invite&#39;,\n        shareMessage: &#39;Check out [App]!&#39;,\n      },\n    },\n    {\n      id: &#39;invitee_only&#39;,\n      weight: 33,\n      config: {\n        referrerReward: null,\n        inviteeReward: { type: &#39;credit&#39;, amount: 10 },\n        displayText: &#39;Give your friends $10 off&#39;,\n        shareMessage: &#39;Here\\&#39;s $10 off [App]!&#39;,\n      },\n    },\n    {\n      id: &#39;double_sided&#39;,\n      weight: 34,\n      config: {\n        referrerReward: { type: &#39;credit&#39;, amount: 10 },\n        inviteeReward: { type: &#39;credit&#39;, amount: 10 },\n        displayText: &#39;Give $10, Get $10&#39;,\n        shareMessage: &#39;We both get $10 when you join [App]!&#39;,\n      },\n    },\n  ],\n  primaryMetric: &#39;referral_converted&#39;,\n  secondaryMetrics: [&#39;referral_sent&#39;, &#39;invitee_d7_retention&#39;, &#39;cost_per_acquisition&#39;],\n};\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Typical results:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Structure<\/th>\n<th>Referrals Sent<\/th>\n<th>Conversion Rate<\/th>\n<th>Best For<\/th>\n<\/tr>\n<\/thead>\n<tbody><tr>\n<td>Referrer only<\/td>\n<td>High<\/td>\n<td>Lower<\/td>\n<td>Driving volume<\/td>\n<\/tr>\n<tr>\n<td>Invitee only<\/td>\n<td>Lower<\/td>\n<td>Higher<\/td>\n<td>Quality conversions<\/td>\n<\/tr>\n<tr>\n<td>Double-sided<\/td>\n<td>Highest<\/td>\n<td>Highest<\/td>\n<td>Most apps (standard)<\/td>\n<\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Double-sided programs outperform single-sided by 25-40% on total conversions in most categories.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Asymmetric Rewards<\/h3>\n\n\n\n<pre><code class=\"language-javascript\">const asymmetricExperiment = {\n  id: &#39;asymmetric_reward_v1&#39;,\n  variants: [\n    {\n      id: &#39;equal&#39;,\n      weight: 33,\n      config: {\n        referrerReward: 10,\n        inviteeReward: 10,\n        displayText: &#39;Give $10, Get $10&#39;,\n      },\n    },\n    {\n      id: &#39;referrer_more&#39;,\n      weight: 33,\n      config: {\n        referrerReward: 15,\n        inviteeReward: 5,\n        displayText: &#39;Earn $15 for each friend ($5 for them)&#39;,\n      },\n    },\n    {\n      id: &#39;invitee_more&#39;,\n      weight: 34,\n      config: {\n        referrerReward: 5,\n        inviteeReward: 15,\n        displayText: &#39;Give friends $15, you get $5&#39;,\n      },\n    },\n  ],\n  primaryMetric: &#39;referral_converted&#39;,\n};\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Invitee-weighted rewards typically produce higher conversion rates (the invitee has more motivation to complete signup). Referrer-weighted rewards produce more shares (the referrer is more motivated to send). For most apps, equal rewards perform best overall.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Timing Tests<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Immediate vs. Delayed Rewards<\/h3>\n\n\n\n<pre><code class=\"language-javascript\">const timingExperiment = {\n  id: &#39;reward_timing_v1&#39;,\n  variants: [\n    {\n      id: &#39;immediate&#39;,\n      weight: 50,\n      config: {\n        referrerRewardTrigger: &#39;invitee_signup&#39;,\n        inviteeRewardTrigger: &#39;signup&#39;,\n        displayText: &#39;Get $10 instantly when your friend signs up&#39;,\n      },\n    },\n    {\n      id: &#39;after_action&#39;,\n      weight: 50,\n      config: {\n        referrerRewardTrigger: &#39;invitee_first_purchase&#39;,\n        inviteeRewardTrigger: &#39;first_purchase&#39;,\n        displayText: &#39;Get $10 when your friend makes their first purchase&#39;,\n      },\n    },\n  ],\n  primaryMetric: &#39;referral_sent&#39;,\n  secondaryMetrics: [&#39;referral_converted&#39;, &#39;invitee_first_purchase&#39;, &#39;fraud_rate&#39;],\n};\n<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Timing<\/th>\n<th>Shares<\/th>\n<th>Conversions<\/th>\n<th>Fraud Risk<\/th>\n<th>User Quality<\/th>\n<\/tr>\n<\/thead>\n<tbody><tr>\n<td>Immediate (on signup)<\/td>\n<td>Higher<\/td>\n<td>Higher<\/td>\n<td>Higher<\/td>\n<td>Lower<\/td>\n<\/tr>\n<tr>\n<td>Delayed (on first purchase)<\/td>\n<td>Lower<\/td>\n<td>Lower volume, higher quality<\/td>\n<td>Lower<\/td>\n<td>Higher<\/td>\n<\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Delayed rewards reduce fraud significantly but also reduce volume. For subscription apps, rewarding on &quot;completed first billing cycle&quot; produces the highest quality referrals.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Deep Link Configuration for Referral Tests<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Referral Link with Experiment Data<\/h3>\n\n\n\n<pre><code class=\"language-javascript\">async function generateReferralLink(referrerId, experimentId) {\n  const variant = assignVariant(referrerId, experimentId);\n\n  const deepLink = await createDeepLink({\n    path: &#39;\/referral&#39;,\n    params: {\n      ref: referrerId,\n      experimentId,\n      variantId: variant.id,\n      reward: JSON.stringify(variant.config.inviteeReward),\n    },\n    fallbackUrl: `https:\/\/example.com\/invite?ref=${referrerId}`,\n  });\n\n  return {\n    url: deepLink,\n    shareMessage: variant.config.shareMessage.replace(&#39;[App]&#39;, &#39;AppName&#39;),\n    displayText: variant.config.displayText,\n  };\n}\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Invitee Landing Page<\/h3>\n\n\n\n<pre><code class=\"language-javascript\">function ReferralLandingPage({ params }) {\n  const variant = getVariantConfig(params.experimentId, params.variantId);\n\n  return (\n    &lt;Page&gt;\n      &lt;Heading&gt;\n        {params.referrerName} invited you to join\n      &lt;\/Heading&gt;\n\n      {variant.inviteeReward &amp;&amp; (\n        &lt;RewardBanner&gt;\n          {formatReward(variant.inviteeReward)}\n        &lt;\/RewardBanner&gt;\n      )}\n\n      &lt;CTAButton\n        href={appStoreLink}\n        onClick={() =&gt; trackReferralClick(params)}\n      &gt;\n        {variant.ctaText || &#39;Get the App&#39;}\n      &lt;\/CTAButton&gt;\n    &lt;\/Page&gt;\n  );\n}\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Tracking and Analysis<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Event Schema<\/h3>\n\n\n\n<pre><code class=\"language-javascript\">\/\/ Referral link shared\nanalytics.track(&#39;referral_shared&#39;, {\n  experimentId,\n  variantId,\n  referrerId,\n  shareMethod: &#39;whatsapp&#39;, \/\/ or &#39;sms&#39;, &#39;email&#39;, &#39;copy_link&#39;, &#39;twitter&#39;\n});\n\n\/\/ Invitee clicked referral link\nanalytics.track(&#39;referral_clicked&#39;, {\n  experimentId,\n  variantId,\n  referrerId,\n  inviteeDevice: deviceType,\n});\n\n\/\/ Invitee signed up\nanalytics.track(&#39;referral_signup&#39;, {\n  experimentId,\n  variantId,\n  referrerId,\n  inviteeId,\n  timeFromClick: timeDeltaMs,\n});\n\n\/\/ Reward earned\nanalytics.track(&#39;referral_reward_earned&#39;, {\n  experimentId,\n  variantId,\n  userId, \/\/ Could be referrer or invitee\n  rewardType: &#39;credit&#39;,\n  rewardAmount: 10,\n  side: &#39;referrer&#39;, \/\/ or &#39;invitee&#39;\n});\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Full Funnel Analysis<\/h3>\n\n\n\n<pre><code class=\"language-javascript\">async function referralFunnelAnalysis(experimentId) {\n  for (const variant of getVariants(experimentId)) {\n    const eligible = await countUsers({ experimentId, variantId: variant.id });\n    const shared = await countEvents(&#39;referral_shared&#39;, { variantId: variant.id });\n    const clicked = await countEvents(&#39;referral_clicked&#39;, { variantId: variant.id });\n    const signedUp = await countEvents(&#39;referral_signup&#39;, { variantId: variant.id });\n    const purchased = await countEvents(&#39;referral_first_purchase&#39;, { variantId: variant.id });\n    const rewardCost = await sumField(&#39;referral_reward_earned&#39;, &#39;rewardAmount&#39;, { variantId: variant.id });\n    const inviteeLTV = await avgField(&#39;user_ltv&#39;, { referralVariant: variant.id });\n\n    console.log(variant.id, {\n      shareRate: (shared \/ eligible * 100).toFixed(1) + &#39;%&#39;,\n      clickRate: (clicked \/ shared * 100).toFixed(1) + &#39;%&#39;,\n      signupRate: (signedUp \/ clicked * 100).toFixed(1) + &#39;%&#39;,\n      purchaseRate: (purchased \/ signedUp * 100).toFixed(1) + &#39;%&#39;,\n      costPerAcquisition: &#39;$&#39; + (rewardCost \/ signedUp).toFixed(2),\n      avgInviteeLTV: &#39;$&#39; + inviteeLTV.toFixed(2),\n      roi: (((inviteeLTV * signedUp) - rewardCost) \/ rewardCost * 100).toFixed(0) + &#39;%&#39;,\n    });\n  }\n}\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Common Pitfalls<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1. Optimizing for Volume Instead of Quality<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A $50 reward will generate more referrals than a $5 reward, but many of those referred users will only sign up for the reward and never return.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Track invitee D30 retention and LTV, not just signup count.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Ignoring Fraud<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">High-value rewards attract fraud (self-referrals, fake accounts):<\/p>\n\n\n\n<pre><code class=\"language-javascript\">function detectReferralFraud(referral) {\n  const signals = [];\n\n  \/\/ Same device fingerprint\n  if (referral.referrerDevice === referral.inviteeDevice) {\n    signals.push(&#39;same_device&#39;);\n  }\n\n  \/\/ Same IP address\n  if (referral.referrerIP === referral.inviteeIP) {\n    signals.push(&#39;same_ip&#39;);\n  }\n\n  \/\/ Rapid completion (clicked and signed up in &lt; 30 seconds)\n  if (referral.timeToSignup &lt; 30000) {\n    signals.push(&#39;too_fast&#39;);\n  }\n\n  \/\/ Referrer has many referrals with low retention\n  if (referral.referrerReferralCount &gt; 10 &amp;&amp; referral.referrerInviteeRetention &lt; 0.1) {\n    signals.push(&#39;low_quality_referrer&#39;);\n  }\n\n  return {\n    isSuspicious: signals.length &gt;= 2,\n    signals,\n  };\n}\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">3. Not Testing the Share Message<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The incentive matters, but so does how it&#39;s communicated:<\/p>\n\n\n\n<pre><code class=\"language-javascript\">const shareMessageTest = {\n  id: &#39;share_message_v1&#39;,\n  variants: [\n    {\n      id: &#39;generic&#39;,\n      shareMessage: &#39;Check out this app!&#39;,\n    },\n    {\n      id: &#39;reward_focused&#39;,\n      shareMessage: &#39;Use my link and we both get $10!&#39;,\n    },\n    {\n      id: &#39;personal&#39;,\n      shareMessage: &#39;I\\&#39;ve been using this app and thought you\\&#39;d like it. We both get $10 if you sign up.&#39;,\n    },\n  ],\n  primaryMetric: &#39;referral_clicked&#39;,\n};\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Best Practices<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Test reward type before amount<\/strong>: Whether you offer cash, credit, or features matters more than the dollar value.<\/li>\n<li><strong>Default to double-sided<\/strong>: Start with equal rewards for both sides unless you have data suggesting otherwise.<\/li>\n<li><strong>Track LTV, not just signups<\/strong>: A $20 reward that attracts users with $100 LTV is better than a $5 reward that attracts users with $10 LTV.<\/li>\n<li><strong>Delay rewards to reduce fraud<\/strong>: Rewarding on first purchase or first week of activity filters out low-quality referrals.<\/li>\n<li><strong>Run for at least 30 days<\/strong>: Referral experiments need time for invitees to sign up, activate, and show retention patterns.<\/li>\n<li><strong>Segment by referrer behavior<\/strong>: Power referrers (5+ referrals) may respond differently to incentive changes than casual sharers.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">For A\/B testing features, see <a href=\"https:\/\/tolinku.com\/features\/ab-testing\">Tolinku A\/B testing<\/a>. For referral setup, see the <a href=\"https:\/\/tolinku.com\/docs\/user-guide\/referrals\/\">referral docs<\/a> and the <a href=\"https:\/\/tolinku.com\/docs\/user-guide\/ab-testing\/\">A\/B testing docs<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Test referral incentives to find the reward structure that maximizes invites and conversions. Compare reward types, amounts, timing, and double-sided vs. single-sided programs.<\/p>\n","protected":false},"author":2,"featured_media":1067,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"rank_math_title":"A\/B Testing Referral Incentives","rank_math_description":"Test referral incentives to find the reward structure that maximizes invites and conversions. Compare reward types, amounts, and timing.","rank_math_focus_keyword":"A\/B testing referral incentives","rank_math_canonical_url":"","rank_math_facebook_title":"","rank_math_facebook_description":"","rank_math_facebook_image":"https:\/\/tolinku.com\/blog\/wp-content\/uploads\/2026\/03\/og-ab-testing-referral-incentives.png","rank_math_facebook_image_id":"","rank_math_twitter_title":"","rank_math_twitter_description":"","rank_math_twitter_image":"https:\/\/tolinku.com\/blog\/wp-content\/uploads\/2026\/03\/og-ab-testing-referral-incentives.png","footnotes":""},"categories":[13],"tags":[60,191,20,225,113,256,45,26],"class_list":["post-1068","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-growth","tag-ab-testing","tag-conversions","tag-deep-linking","tag-experimentation","tag-growth","tag-optimization","tag-referrals","tag-user-acquisition"],"_links":{"self":[{"href":"https:\/\/tolinku.com\/blog\/wp-json\/wp\/v2\/posts\/1068","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tolinku.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tolinku.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tolinku.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/tolinku.com\/blog\/wp-json\/wp\/v2\/comments?post=1068"}],"version-history":[{"count":2,"href":"https:\/\/tolinku.com\/blog\/wp-json\/wp\/v2\/posts\/1068\/revisions"}],"predecessor-version":[{"id":2234,"href":"https:\/\/tolinku.com\/blog\/wp-json\/wp\/v2\/posts\/1068\/revisions\/2234"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tolinku.com\/blog\/wp-json\/wp\/v2\/media\/1067"}],"wp:attachment":[{"href":"https:\/\/tolinku.com\/blog\/wp-json\/wp\/v2\/media?parent=1068"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tolinku.com\/blog\/wp-json\/wp\/v2\/categories?post=1068"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tolinku.com\/blog\/wp-json\/wp\/v2\/tags?post=1068"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}