Mintegral Integration
In adstage, you can collect cost, impressions, clicks, and conversions from Mintegral (AppGrowth) ads using the API key shown in the Mintegral console, and report clicks, installs, and events arriving through a tracking link under the mintegral.ads channel. S2S postbacks that send installs and events back to Mintegral are configured per link.
Beta
The Mintegral integration is still being verified with real advertiser accounts. If the numbers differ from the Mintegral console, please let the adstage support team know.
1. Integration Overview
| Feature | Supported | Description |
|---|---|---|
| Cost collection | Yes | Spend, impressions, clicks, and conversions per offer, collected automatically every 4 hours. Set up in Integrations > Ad Channel Integration > Mintegral |
| Click attribution | Yes | Clicks, installs, and events arriving through a tracking link are reported under the mintegral.ads channel |
| Conversion sending | Yes (network postback preset) | Installs and events attributed to the link are sent to the Mintegral S2S postback endpoint |
Mintegral needs no OAuth sign-in and no account manager approval. The Access Key and API Key you find in the console are all it takes.
2. Finding Your Access Key and API Key
-
Sign in to the Mintegral advertiser dashboard. Register first if you do not have an advertiser account.
-
Open Account (Account Management) > Basic Information.
-
Copy the API Key and the Access Key. They are two different values, and adstage needs both.
The same guidance (How to get your Mintegral key) and an Open Mintegral key page button are shown in the adstage Cost Integration tab and in the add-account dialog.
3. Setting Up Cost Integration
-
In the adstage dashboard, open Integrations > Ad Channel Integration > Mintegral and select the
Cost Integrationtab. -
Turn on the
Mintegral Cost Integrationswitch. TheAdd Integration Accountbutton stays disabled while it is off. -
Click
Add Integration Accountand fill in the following.
| Field | Description |
|---|---|
Account Label | A name to identify this account in adstage. Any name works |
Access Key | The Access Key from Mintegral Basic Information |
API Key | The API Key from Mintegral Basic Information |
-
Click
Integrate. Before saving, adstage calls the Mintegral API once to verify the key (Verifying...), and both keys are stored encrypted. -
The account appears in the list as
Preparingand the first collection (last 30 days) starts right away. Mintegral generates reports asynchronously, so it can take a few minutes before the status changes toSuccess.
Please note
- If you see "The key was rejected by Mintegral", check that the Access Key and API Key are not swapped and that no spaces were copied along with them.
- "Could not reach Mintegral to verify the key" means a temporary problem on Mintegral's side. Try again in a moment.
- The same Access Key can be registered only once per organization. Registering it again shows "This account is already registered".
Managing Connected Accounts
The account list shows the Account Name, Status, Last Data Update, and Management (delete) columns.
- Preparing: the first collection is running right after the account was added.
- Success: Mintegral API calls are working. The status stays Success even when no ads are running and zero rows come back.
- Failed: Mintegral rejected the request because the key changed or lacks permission. Hover over the badge to see the reason. Every update retries, so the status returns to Success automatically once the cause is fixed.
Even with a Success status, a ⚠️ warning and an Action Required note appear when no cost data has been stored for more than 3 days. Check the integration unless you simply have no ads running.
Deleting an account stops collection for that account. Data already collected stays in adstage. If the key has changed, delete the account and add it again with the new key.
4. Creating Tracking Links
-
In Deep Links > Create, choose a tracking link and select
MintegralunderSelect Ad Channel. -
The
Ad Groupfield is preset with{offer_name}andCreativewith{creative_name}. Leave them as they are and Mintegral replaces them with real values at click time. -
The
Campaignfield has no macro, so enter it yourself. Because cost is collected per offer and the offer name appears in the campaign position of reports, we recommend entering{offer_name}in the campaign field as well. A single link then merges cost and conversions for every offer under the same name. If you do not need a per-campaign breakdown, leave it empty and view reports at the channel level (mintegral.ads). -
To break results down by the publisher the ad ran on, click
Add Channel Details. TheMediafield is filled with{affiliate_id}. -
Set the redirect options, save, and copy the generated tracking link.
The link carries the following macros. The click ID, promotion ID, and the campaign, offer, and creative IDs are always appended regardless of what you enter.
| adstage parameter | Mintegral macro | Value |
|---|---|---|
click_id | {click_id} | Mintegral click ID (assigned per click; the key for attribution and postbacks) |
campuuid | {uuid} | Mintegral promotion ID. Required by the postback, so always appended |
campaign_id | {adv_campaign_id} | Mintegral campaign ID (app level) |
ad_group / ad_group_id | {offer_name} / {adv_offer_id} | Offer name / offer ID |
ad_creative / ad_creative_id | {creative_name} / {creative_id} | Creative name / creative ID |
sub_channel | {affiliate_id} | Sub-channel (publisher) ID, only when the Media field is filled |
campaign | None | Entered manually ({offer_name} recommended) |
Example:
Placing the Link in Mintegral
When creating an offer in the Mintegral console, paste the link into the click URL field on the Tracking URL screen, validate it, and save. Then enter a test device's advertising ID (IDFA on iOS, GAID on Android outside China) and click Test to generate a QR code; scanning it sends a test click to adstage. For the exact menu location, see the reference documents below or ask your Mintegral account manager.
Please note
- Use the full tracking link with macros, not the short
adg.im/{link_path}address.- Do not remove or edit the macros in the link. In particular, if
campuuid={uuid}is missing, the postback sent to Mintegral lacks a required value and the conversion is not credited.- Cost is collected down to the offer (campaign in reports) level only. Splitting reports by ad group or creative splits conversions while cost stays on the campaign row.
5. Sending Conversions to Mintegral
Mintegral publishes an S2S postback specification that an advertiser's own server can call. This is configured per link in the tracking link's Network Postback section, not in the integration screen. For shared behavior such as deduplication and retries, see Network Postback.
-
On the create or detail screen of the Mintegral tracking link, turn on the
Send install postback to ad networkswitch. For links whose ad channel isMintegral, the Mintegral preset is filled in the moment you turn it on. If the fields are empty, pickMintegral — Install & events (S2S)fromNetwork Preset. -
Review the values. Installs and events use different endpoints, so both
Install Postback URL TemplateandEvent Postback URL Templateare filled in,Click ID Parameteris set toclick_id, andTrigger Eventstoinstall.
| Mintegral parameter | adstage macro | Value |
|---|---|---|
campuuid | {campuuid} | Echoes the campuuid value that arrived on the click |
clickid | {click_id} | Mintegral click ID |
idfa, gaid | {idfa}, {gaid} | Advertising identifier. Only idfa on iOS and gaid on Android is filled; the other stays empty |
install_time, event_time | {timestamp} | Time of the install or event, in seconds since epoch |
event_name | {event} | Event name (event postback only) |
event_value, currency | {revenue}, {currency} | Purchase amount and currency code, filled for purchase events only |
- Choose the
Trigger Events. The default isinstallonly. To also send post-install events such as purchases, add them, and if the name agreed with Mintegral differs from the adstage event name (for examplepurchasevs.Purchase), enter it inEvent Name Mapping.
Good to know
- adstage sends only installs and events attributed to that link, and the same event for one click is sent once.
installandfirst_openare treated as one.- Mintegral's parameter table marks
attribu_typeandapp_idas required, but neither appears in Mintegral's own example template or in the adstage preset. Before launch, confirm with a test click and install that the conversion shows up in the Mintegral console; if it does not, ask your Mintegral account manager whether those two values are needed.- It has not been confirmed whether Mintegral requires allow-listing to accept links from a measurement tool that is not on its official partner list (including adstage). We recommend checking with your Mintegral account manager before the first campaign.
6. Collected Data
Cost integration stores the values reported by Mintegral, per day and per offer. In reports, metric names carry the (Channel) suffix to indicate values reported by the ad network.
| Item | Description |
|---|---|
| Collection interval | Every 4 hours (1, 5, 9, 13, 17, and 21 o'clock, Korea Standard Time) |
| Update range | Last 30 days excluding the day of the update (D-30 to D-1), re-fetched every cycle and refreshed to the latest values |
| First collection | Starts automatically right after the account is registered |
| Data level | Offer level. The offer name and ID appear in the campaign position of reports |
| Metrics | Spend, Impression, Click, and the Conversion count reported by Mintegral, shown as Installs (Channel) |
| Currency | Received in the Mintegral report currency (USD or CNY) and stored converted into your organization's base currency |
| Timezone | Fixed to UTC+8. The previous day becomes collectable after 02:00 UTC+8 (03:00 KST), so it usually appears from the 05:00 KST update |
| Available range | Within the last 180 days (about 6 months) and after your Mintegral account sign-up date |
| Channel name | mintegral.ads |
7. Cautions
- Rows with zero cost, impressions, clicks, and conversions are not stored. Periods without active ads appear empty, which is expected.
- Numbers may differ between Mintegral and adstage because of UTC+8 aggregation, currency conversion, and Mintegral's conversion definition.
- Today's data is not collected. Only data up to yesterday is available.
- A custom link whose channel is simply
mintegralis also reported undermintegral.ads.
8. Troubleshooting
The account cannot be added
- Check the keys: copy the Access Key and API Key again from Basic Information and make sure each is in the right field
- Check the switch: make sure the
Mintegral Cost Integrationswitch is on - Check for duplicates: make sure the same Access Key is not already in the list
No data is collected
- Check the status: if it is Failed, hover to see the reason. For authentication errors, delete the account and register it again with a new key
- Check the finalization time: the previous day is reflected only after the early hours (KST). Today's data is not collected
- Check the period: data older than 180 days or from before the account sign-up date cannot be fetched
- Check the warning: if a ⚠️ appears next to the status, see how many days have passed without data
Conversions do not appear in Mintegral
- Check the link: make sure
click_id={click_id}andcampuuid={uuid}are still present in the click URL placed in Mintegral - Check the postback settings: make sure
Send install postback to ad networkis on for that link with the preset URLs filled in, and that the event you want to send is inTrigger Events - Check attribution: confirm in adstage reports that the install was attributed to
mintegral.ads. Unattributed events are not sent - Allow for delay: Mintegral states that postbacks received from measurement tools normally take no longer than an hour to be reflected
If you need further assistance, contact the adstage support team.
9. FAQ
Can I integrate without a Mintegral account manager? For cost collection, yes. All you need are the Access Key and API Key shown in the advertiser dashboard, and the postback is a public specification as well. Registering the offer's Tracking URL and running the click test still happen in the Mintegral console.
There is no conversion sending tab. Where do I turn it on?
Mintegral has no conversion sending tab in the integration screen. Turn it on by choosing the preset in the tracking link's Network Postback section.
Reports show offers instead of Mintegral campaigns under campaign.
This is intended. A Mintegral "campaign" is an app (package) level object and the unit you actually operate is the offer, so cost is stored per offer. The app-level campaign ID is also recorded through the link's campaign_id.
Can I import data from before the integration? The last 30 days are fetched automatically right after the integration. If you need earlier data within the 180 days the Mintegral API provides, contact the adstage support team.

