> For the complete documentation index, see [llms.txt](https://help.impact.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.impact.com/partner/what-would-you-like-to-learn-about/getting-started/migrate-your-rakuten-advertising-tracking-to-impact.com.md).

# Migrate Your Rakuten Advertising Tracking to impact.com

This article shows partners how to migrate their tracking infrastructure from Rakuten Advertising (LinkShare) to impact.com. Use it to map dynamic parameters, configure audience segmentation payloads, and prevent tracking gaps. For questions about linking accounts, existing link redirects, and payouts, see the [Rakuten Advertising to impact.com: Partner Migration FAQ](/partner/what-would-you-like-to-learn-about/getting-started/rakuten-advertising-to-impact.com-partner-migration-faq.md).

## Link structure comparison

Here's how a legacy Rakuten Advertising tracking link translates into its native impact.com equivalent:

```
Legacy Rakuten Link 
https://click.linksynergy.com/fs-bin/click?id=[SID]&offerid=[MID]&type=3&subid=ABC&u1=QWERTYQWERTY&u5=eyI0MSI6ICIxMjMsNDU2NyJ9

Native impact.com Equivalent Link 
https://brand.sjv.io/c/[MPID]/[AdID]/[CampaignID]?sharedid=ABC&subId1=QWERTYQWERTY&audiences=WyIxMjMiLCI0NTY3Il0
```

## Parameter mapping reference

| Rakuten Advertising parameter | impact.com parameter          | Purpose and description                                                                           | Reporting visibility                                         |
| ----------------------------- | ----------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ |
| `subid`                       | `sharedid` *(or `subacctid`)* | Sub-partner ID: Identifies downstream sub-partners or sub-network sources.                        | Visible to brand and partner (supports custom payout rules). |
| `u1`                          | `subId1`                      | Partner click or member ID: Used for unique loyalty member IDs, click tokens, or transaction IDs. | Private to partner (visible in partner performance reports). |
| `u5`                          | `audiences`                   | Audience segment: Targeted customer metadata (see detailed formats below).                        | Visible to brand and partner.                                |

To learn more about how `sharedid` and `subId1` work, see [Sub ID & Shared ID Parameters Explained for Partners](/partner/what-would-you-like-to-learn-about/platform-features/tracking/tracking-links/link-parameters/sub-id-and-shared-id-parameters-explained-for-partners.md).

## Audience parameter configuration (`u5` → `audiences`)

On impact.com links, audience metadata goes in the `audiences` parameter (plural). Because the two platforms handle metadata differently, copying your legacy payloads directly breaks your tracking.

The core difference:

* **Rakuten Advertising (`u5`):** Expects a standard base64-encoded JSON *object*, for example `{"41": "123,4567"}`.
* **impact.com (`audiences`):** Expects a JSON *array*, for example `["123","4567"]`, using either base64url encoding or a raw URL-encoded payload.

Use one of these two formats to map your legacy `u5` payloads to `audiences`:

{% tabs %}
{% tab title="Method A: base64url encoding (recommended)" %}
impact.com supports the base64url alphabet (RFC 4648 Section 5), *not* standard base64.

* Why use it: Standard base64 uses characters like `+`, `/`, and `=`, which web servers can strip or misinterpret during redirects. base64url replaces these characters, so tracking stays clean.
  {% endtab %}

{% tab title="Method B: URL-encoded JSON (simpler code integration)" %}
If your engineering team wants to avoid refactoring standard base64 libraries, you can pass the JSON array directly, as long as it’s percent-encoded (URL-encoded) exactly once.
{% endtab %}
{% endtabs %}

## Supported payload conversion examples

Use these examples to map legacy payloads to the `audiences` parameter:

| Target stored data   | Raw JSON array   | Legacy Rakuten Advertising method (u5) | Mapped impact.com parameter (audiences)                                                                     |
| -------------------- | ---------------- | -------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| 123,4567             | `["123","4567"]` | `&u5=eyI0MSI6ICIxMjMsNDU2NyJ9`         | `&audiences=WyIxMjMiLCI0NTY3Il0` *(base64url)* or `&audiences=%5B%22123%22%2C%224567%22%5D` *(URL-encoded)* |
| 98765                | `["98765"]`      | `&u5=eyI0MSI6ICI5ODc2NSJ9`             | `&audiences=WyI5ODc2NSJd` *(base64url)*                                                                     |
| 123,4567 (*numeric*) | `[123,4567]`     | `&u5=eyI0MSI6WzEyMyw0NTY3XX0=`         | `&audiences=WzEyMyw0NTY3XQ` *(base64url, stripped padding)*                                                 |

## Configurations to avoid

Your validation scripts must flag and prevent these common formatting errors:

| Query parameter example            | Why it's unsupported or breaks tracking                                                                       |
| ---------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| `audiences=123,4567`               | *Bare comma list.* This isn't valid JSON.                                                                     |
| `audiences=123`                    | *JSON number.* Parses as a JSON number, which is neither an array nor an object.                              |
| `audiences=WyJhw77DvsO%2BIl0%3D`   | *Standard base64.* Contains standard base64 characters like `+`, which the base64url decoder doesn't support. |
| `audiences=%255B%252212%2522%255D` | *Double percent-encoded.* Decodes to `%5B%2212%22%5D` instead of a clean string. Encode exactly once.         |

## Developer code blueprint

This JavaScript example shows how to update your link generation logic from Rakuten Advertising to impact.com:

```javascript
// ❌ LEGACY RAKUTEN LINK LOGIC (u5)
const legacyAudience = {"41": "123,4567"};
const standardBase64 = btoa(JSON.stringify(legacyAudience)); // eyI0MSI6ICIxMjMsNDU2NyJ9
const rakutenLink = `https://click.linksynergy.com/fs-bin/click?id=AysPbYF8&u5=${encodeURIComponent(standardBase64)}`;

// NATIVE IMPACT.COM LINK LOGIC (audiences)
const audienceArray = ["123", "4567"];
const jsonArrayString = JSON.stringify(audienceArray); // '["123","4567"]'

// Convert standard base64 to base64url (replaces +, / and strips trailing =)
const base64UrlPayload = btoa(jsonArrayString)
  .replace(/\+/g, '-')
  .replace(/\//g, '_')
  .replace(/=+$/, ''); // WyIxMjMiLCI0NTY3Il0

const impactLink = `https://brand.sjv.io/c/123456/789012/3456?sharedid=ABC&subId1=QWERTYQWERTY&audiences=${base64UrlPayload}`;
```

## Additional resources

* [Rakuten Advertising to impact.com: Partner Migration FAQ](/partner/what-would-you-like-to-learn-about/getting-started/rakuten-advertising-to-impact.com-partner-migration-faq.md) — Get answers about linking accounts, link redirects, payouts, and reporting during the migration.
* [Rakuten to impact.com Terminology Reference](/partner/what-would-you-like-to-learn-about/getting-started/rakuten-to-impact.com-terminology-reference.md) — Find the impact.com feature that matches each Rakuten term.
* [Sub ID & Shared ID Parameters Explained for Partners](/partner/what-would-you-like-to-learn-about/platform-features/tracking/tracking-links/link-parameters/sub-id-and-shared-id-parameters-explained-for-partners.md) — Learn how Sub IDs and Shared IDs work, and common ways to use them for tracking.
* [Create Tracking Links](/partner/what-would-you-like-to-learn-about/platform-features/tracking/tracking-links/create-and-manage-links/create-tracking-links.md) — Get impact.com tracking links for a brand's assets and append tracking parameters.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://help.impact.com/partner/what-would-you-like-to-learn-about/getting-started/migrate-your-rakuten-advertising-tracking-to-impact.com.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
