- Run enhanced app campaigns.
- Import all your ad campaigns (app and web).
- Enable Appstack to audit Meta’s reporting capabilities.
- Allow Appstack to send in-app events, postbacks (signals) back to Meta.
To successfully connect Meta Ads, you must:
- Have Full/Admin control access to the right ad business portfolio (including Business Manager and Meta for Developers). Partial access is not enough to make the integration work.
- Ensure the app used in Appstack (it must be created in Meta for Developers) is connected to the correct ad account.
Available metrics and definitions
Available metrics and definitions
Available in-app events and definitions
Available in-app events and definitions
Connect to Meta Ads
The first step is to connect your Meta Ads account with Appstack. Follow these steps:- In Appstack, from the side menu, select Integrations > Meta Ads
- Click on Connect to Meta Ads
- In Meta’s access integration flow, select the correct business portfolio that contains the proper ad accounts and apps
- Ensure that you click on Select all ad accounts
- Accept the requested permissions and click on Save
- Click on Got it and then you will get redirected to Appstack’s integration page
Installs and the Lead event
Appstack maps app installs to meta’s standard Lead event. This is automatic, you don’t need to map anything yourself for installs to be sent. Because Lead is one of meta’s standard events, installs show up under the Leads column in Ads Manager as soon as your integration is active, without needing to launch a placeholder campaign first. To optimize a campaign toward installs, the campaign objective is different from the general enhanced app campaign flow below. Follow these steps instead:- Create a Leads campaign (not Sales).
- At the ad set level, under the ‘Conversion’ section, select Website only as the ‘Conversion location’.
- Select the correct dataset (same as in Appstack).
- For the ‘Conversion event’, select Lead.
Configure the Conversion API
Configuring the Conversion API with Appstack will allow you to run enhanced app campaigns using the assigned ads link.1
Configure the dataset and Conversion API access token
The dataset receives only Appstack-attributed events. Choosing the wrong dataset will cause your app’s events to be sent to the wrong destination.
How to create a new dataset
How to create a new dataset
Follow these steps if you don’t have an existing dataset:
- In the ‘Connect your data’ pop-up, click on Create a new web dataset.
- On the next screen, leave the CAPI toggle on, and don’t select any category. Click on Create.
- Choose the ad accounts you want to connect to this dataset and click on Next.
- Close the pop-up.
InformationFor additional information on how to get the Conversion API access token, follow the official instructions: Get access token
- Once the connection shows as Active, select the correct dataset ID from the dropdown in Appstack.
- To generate the Conversion API access token, follow these steps:
- Go to your Meta Events Manager.
- Select the correct dataset from the drop-down.
- Click on Settings in the right sidebar.
- Scroll down to the Conversions API section.
- Click Generate Access Token.
- When prompted to select the dataset(s) the token will have access to, make sure to select at least the same dataset you’re using in Appstack (you can select additional ones too, but the Appstack dataset must be included).
- Copy the generated token.
- Paste the access token in the Conversion API access token field.
- Click on Save to confirm the dataset ID and access token, enabling the integration.
2
Sending events
To successfully send in-app events to Meta Ads, select the in-app events from the dropdown button under the ‘Appstack SDK events’ column, and map each one to the corresponding Meta standard event.Appstack will send the mapped standard event to Meta Ads (to the selected dataset) via the Conversion API, and this event will be used as the optimization goal when setting up the ad campaign.
All events vs. attributed-only
Under In-app event postbacks, below Which events to send, choose between all events or attributed-only.- All events sends both attributed and organic events to meta. Organic events (installs or in-app events with no matching campaign click) don’t carry a click or browser id, so they don’t contribute to your event match quality score.
- Attributed-only sends only events matched to a click on one of your campaigns. Since every one of these events carries a click or browser id, they all contribute to your event match quality score.
Information
- To complete this step successfully, you first need to receive an install event from the Appstack SDK.
- Once the in-app events are selected, they will take between 30 and 90 minutes to appear in your dataset in the Meta Events Manager.
- Appstack sends only the attributed events to the Meta Events Manager. If you haven’t launched a campaign yet, or just reconnected the integration, it’s expected to see little or no activity at first, events will start flowing in once you have a campaign running and generating attributed installs.
- Events sent by Appstack are mapped to Meta’s standard events, so they’ll be recognized automatically in Meta Events Manager alongside any standard events already flowing into your dataset from other sources.
3
Verify the Appstack domain
Follow these instructions to verify the Appstack domain in Meta Events Manager:
- Inside the proper dataset, go to Settings and scroll down to the Traffic Permissions - Websites section.
- Click on Create an allow list.
- Look for the domain appstack.tech and click Add to allow list.
- Click on Confirm.
You must wait for the in-app events to arrive before doing this step.
4
Create your first enhanced app campaign
- Copy the ad link from the Appstack’s integration page (located at the bottom of the page).
- Inside Meta Ads Manager, click on + Create to start the campaign creation flow.
- Select Sales (recommended) as the campaign objective.
- At the ad set level, under the ‘Conversion’ section, select Website only as the ‘Conversion location’, select the correct dataset (same as in Appstack), and for the ‘Conversion event’ select the event you want the campaign to optimize for.
- At the ad set level, under the ‘Placements’ section, click on ‘Show more settings’ and select only Mobile and the correct operating system depending on the advertised app. Also, you must disable ‘Audience Network’ as a platform.
- At the ad level, paste the ad link into the ‘Website URL’ box. Don’t paste the URL parameters in the ‘Tracking’ section; copy them from the first step.
Information
- Remember to always select mobile-only and the correct operating system in the ‘Placements’ section at the ad set level.
- If you optimize for value (ROAS) and your events include trials, Meta Events Manager will flag a “Send higher quality price data for more accurate ROAS calculation” notice saying the value field is missing on some events. This is expected. Trials have no purchase value, so they’re sent without one, while value optimization expects a value greater than 0, and none of this breaks attribution or your campaign.
- The same “value field missing” notice can also show up tied to install events specifically. This is expected too, installs don’t carry a purchase value by definition.
- If you’re only sending attributed events and have low volume or a single subscription price point, Meta may flag your event values as looking artificially uniform or averaged, even though every event carries its real, per-transaction value. This is a known false positive and doesn’t indicate a configuration issue.
Event match quality
Meta gives every event it receives an event match quality score from 0 to 10. The score reflects how well the customer information sent with an event lets Meta match it to one of its users. A higher score gives Meta more signal to attribute and optimize your campaigns.
Attributed events carry Meta’s click ID and browser ID from the Appstack ad link, so a score below 6 usually points to a setup issue rather than normal behavior.
Where to see the score
In Events Manager, select your dataset and scroll down to the events table. The event match quality column sits between Integration and Total events.How to improve the score
- Send attributed events only. Only attributed events carry Meta’s click ID and browser ID (
fbcandfbp), because those come from the click on an Appstack ad link. Events Appstack did not attribute are sent without them, which lowers the average score. In one case the score rose by around 8 points after switching. - Send customer information. Email, name, phone number and date of birth are optional but can improve matching. Send them with the
user_attributesevent in the Appstack SDK. Send the full name as a single string with the keyname, for example"firstName lastName".
What to expect with attributed events only
- Appstack keeps sending the last normal event until it detects attributed events.
- The event is refreshed every 20 days.
- The score of the first event can be lower than the scores that follow. This is expected.
Pre-Launch EAC Checklist
1. SDK
1. SDK
- SDK installed and app update released (if connecting a Subscription Platform, the update must include the SDK + snippet)
- Events confirmed as flowing through the Appstack SDK page
2. Subscription Platform (if applicable)
2. Subscription Platform (if applicable)
- Code snippet pasted following the docs instructions
- Credentials copied and pasted
- Update rolled out and Appstack ID coverage has reached 50% of events received
3. Ads Integration
3. Ads Integration
- Meta Ads connected
- Dataset ID and Conversion API access token configured
- Selected in-app events mapped to Meta standard events
- Appstack domain verified in Meta Events Manager
4. Setup your first EAC
4. Setup your first EAC
- New campaign created with ‘Sales’ selected as the objective
- At the ad set level, Website selected as ‘Conversion location’ and correct dataset chosen
- In-app event selected as the ‘Conversion event’
- At the ad set level, only Mobile and the correct operating system selected in Placements, with Audience Network disabled
- Appstack ad link pasted ONLY into the ‘Website URL’ box at the ad level

