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.
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 case | Description |
|---|---|
| Separate stores / sources | Use 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 filtering | In the panel, open Statistics → User Acquisition and enable Show by SDK Signature to break down data by signature. |
| Fraud detection | With 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
| Requirement | Details |
|---|---|
| Account activation | SDK Signature enabled by Adtrace (contact info@adtrace.io) |
| Panel access | App Secrets visible in the Adtrace panel after activation |
| One build per signature | Each store or source release should embed one signature. Multiple signatures = multiple release builds. |
Step 1: Define signatures in the panel
- Open the Adtrace panel → Settings.
- Open the SDK Signature section and choose Add SDK Signature.
- Fill in:
| Field | Description |
|---|---|
| Name | Label for the store or install source (for example App Store, Enterprise, Regional Store). |
| App Version | SDK 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 Type | Store type (for example App Store, Play Store, or your distribution channel). |
- Select Add. Repeat for each store or source you need.
- Copy the values Adtrace shows for each signature:
- Secret ID (also called Security ID)
- Four numeric secret fields (
info1…info4)
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;
| Parameter | Description |
|---|---|
secretId | Secret ID (Security ID) from the panel for this signature |
info1 | First secret value from the panel |
info2 | Second secret value from the panel |
info3 | Third secret value from the panel |
info4 | Fourth 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
- Objective-C
- Swift
- WebView
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];
let appToken = "{YourAppToken}"
let environment = ADTEnvironmentProduction
let adtraceConfig = ADTConfig(appToken: appToken, environment: environment)
adtraceConfig?.setAppSecret(secretId, info1: info1, info2: info2, info3: info3, info4: info4)
Adtrace.appDidLaunch(adtraceConfig)
let adtraceConfig = new AdtraceConfig(yourAppToken, AdtraceConfig.EnvironmentProduction);
adtraceConfig.setAppSecret(secretId, info1, info2, info3, info4);
Adtrace.appDidLaunch(adtraceConfig);
Replace secretId, info1, … info4 with the numbers from the panel for the store you are building.
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:
- Define one signature per store in the panel (for example App Store and an enterprise channel).
- Build separate release IPAs, each with one
setAppSecretconfiguration (for example separate Xcode schemes or build configurations). - 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:
- Create test signatures in the panel (or use production signatures in internal builds).
- For each signature you want to verify, produce a separate installable build with that signature set in code.
- Perform a fresh install on a test device (not an upgrade from another signed build).
- Trigger installs and events, then check Statistics with Show by SDK Signature enabled.
- Confirm installs and events appear under the expected signature.
If you reuse the same device to test another signature:
- Delete the app from the device.
- In the panel Testing Console, open the device → Forget Device (same flow as integration testing).
- Install the next signature build and repeat.
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.