Skip to main content

Set up SDK signature

SDK Signature lets you separate Adtrace traffic by install source or app store, analyze statistics per signature, and (optionally) strengthen fraud detection. Each signature gets its own secret values. You define signatures in the panel, embed one set in each store build, and filter reports by signature in the panel.

Activation required

SDK Signature is enabled on a client-by-client basis. Contact Adtrace support at info@adtrace.io if you want to use this feature.

What SDK signature does

Use caseDescription
Separate stores / sourcesUse a different signature per store (for example App Store, TestFlight, enterprise, or regional stores). Installs, events, and revenue for that build are attributed under that signature.
Analytics filteringIn the panel, open StatisticsUser Acquisition and enable Show by SDK Signature to break down data by signature.
Fraud detectionWith Fraud Detection enabled for a signature, installs from builds without the matching signature can be flagged as fraud. Enable only when every production build includes a signature.

Adtrace supports SDK Signature on native mobile SDKs (iOS, Android, etc.). It is not available for Web.

Before you begin

RequirementDetails
Account activationSDK Signature enabled by Adtrace (contact info@adtrace.io)
Panel accessApp Secrets visible in the Adtrace panel after activation
One build per signatureEach store or source release should embed one signature. Multiple signatures = multiple release builds.

Step 1: Define signatures in the panel

  1. Open the Adtrace panelSettings.
  2. Open the SDK Signature section and choose Add SDK Signature.
  3. Fill in:
FieldDescription
NameLabel for the store or install source (for example App Store, Enterprise, Regional Store).
App VersionSDK signature version (not your app's marketing version). Used to tell signatures apart when you need multiple. One signature version can cover several app versions.
App Store TypeStore type (for example App Store, Play Store, or your distribution channel).
  1. Select Add. Repeat for each store or source you need.
  2. Copy the values Adtrace shows for each signature:
    • Secret ID (also called Security ID)
    • Four numeric secret fields (info1info4)

Optional: turn on Fraud Detection for a signature only if all builds you ship for that channel include that signature.

Step 2: Integrate in the SDK

Call setAppSecret:info1:info2:info3:info4: on your ADTConfig instance before [Adtrace appDidLaunch:] / Adtrace.appDidLaunch(...).

Method signature

- (void)setAppSecret:(NSUInteger)secretId
info1:(NSUInteger)info1
info2:(NSUInteger)info2
info3:(NSUInteger)info3
info4:(NSUInteger)info4;
ParameterDescription
secretIdSecret ID (Security ID) from the panel for this signature
info1First secret value from the panel
info2Second secret value from the panel
info3Third secret value from the panel
info4Fourth secret value from the panel

Use the values from one panel signature per build. Do not mix secrets from different signatures in the same app binary.

Example

AppDelegate.m
NSString *appToken = @"{YourAppToken}";
NSString *environment = ADTEnvironmentProduction;
ADTConfig *adtraceConfig = [ADTConfig configWithAppToken:appToken
environment:environment];
[adtraceConfig setAppSecret:secretId
info1:info1
info2:info2
info3:info3
info4:info4];

[Adtrace appDidLaunch:adtraceConfig];

Replace secretId, info1, … info4 with the numbers from the panel for the store you are building.

Protect secrets in release builds

Plain numeric literals in source can be extracted from a binary. Consider loading appToken and signature values from secure storage, obfuscation, or build-time configuration per distribution target.

Multiple signatures and store builds

Typical pattern for multi-store apps:

  1. Define one signature per store in the panel (for example App Store and an enterprise channel).
  2. Build separate release IPAs, each with one setAppSecret configuration (for example separate Xcode schemes or build configurations).
  3. Upload each build to its store or distribution channel.

Example: two signatures → two release builds (swap secret values between builds, or automate with build configurations).

All installs and events from a build are recorded under that build's signature. Filter by signature in the panel to compare stores.

Test before release

You can test signatures before production release:

  1. Create test signatures in the panel (or use production signatures in internal builds).
  2. For each signature you want to verify, produce a separate installable build with that signature set in code.
  3. Perform a fresh install on a test device (not an upgrade from another signed build).
  4. Trigger installs and events, then check Statistics with Show by SDK Signature enabled.
  5. Confirm installs and events appear under the expected signature.

If you reuse the same device to test another signature:

  1. Delete the app from the device.
  2. In the panel Testing Console, open the device → Forget Device (same flow as integration testing).
  3. Install the next signature build and repeat.
One signature per install

Each installed build should contain exactly one signature configuration. Testing signature A, then installing signature B on the same device without a reset can produce misleading attribution.

Common questions

What is Secret ID? The identifier Adtrace assigns when you create a signature in the panel. Pass it as the first argument to setAppSecret. It ties SDK traffic to that signature for reporting and fraud checks.

What is App Version in the panel? The SDK signature version, not your app's CFBundleShortVersionString. One signature version can cover multiple app releases.

Can I test before App Store release? Yes. Create signatures in the panel, embed matching values in TestFlight or internal builds, and verify in Statistics with Show by SDK Signature enabled.

When should I enable Fraud Detection? Only when every production build for that channel includes the correct setAppSecret values. Otherwise legitimate installs may be flagged.