OneLink impression URLs need a template ID and pid
View-through impression URLs are impressions.onelink.me/{template_id}. The template ID is the same value as the long OneLink. pid is the media source the impression is reported under. api3.appsflyer.com/inappevent is vendor/appsflyer.
What this pack matches
Rules
Codes are stable. A finding in CI, MCP, or the playground lands on the same id.
| Field | Required | What it checks | Rule ids | Source |
|---|---|---|---|---|
template_id |
required | Long impression URL template ID. The current OneLink FAQ says the template ID is always four characters. This does not apply the editable short-URL ID limit to template IDs. Minimum decoded characters: 4. Maximum decoded characters: 4. Fix: Copy the template ID from the OneLink long URL so the path is /{template ID}. | vendor.appsflyer-onelink-impression.param.template_id.missingvendor.appsflyer-onelink-impression.param.template_id.emptyvendor.appsflyer-onelink-impression.param.template_id.invalid |
docs |
pid |
required | Required media-source identifier. The published link table limits its decoded value to150 characters. Reserved partner agreement requires account context. Maximum decoded characters: 150. Fix: Set pid to the media source name from the OneLink. | vendor.appsflyer-onelink-impression.param.pid.missingvendor.appsflyer-onelink-impression.param.pid.emptyvendor.appsflyer-onelink-impression.param.pid.invalid |
docs |
c |
optional | Optional campaign name. AppsFlyer replaces names longer than100 characters with c_name_exceeded_max_length; the limit is a warning because this is accepted input with altered reporting. Value diagnostic severity: warning. Maximum decoded characters: 100. | vendor.appsflyer-onelink-impression.param.c.emptyvendor.appsflyer-onelink-impression.param.c.invalid |
docs |
af_viewthrough_lookback |
optional | View-through ID matching uses 1 to 24 hours. OneLink also documents the equivalent 1d form. Value diagnostic severity: warning. | vendor.appsflyer-onelink-impression.param.af_viewthrough_lookback.emptyvendor.appsflyer-onelink-impression.param.af_viewthrough_lookback.invalid |
docs |
af_prt |
optional | The published attribution link parameter table specifies this decoded character limit. Maximum decoded characters: 50. | vendor.appsflyer-onelink-impression.param.af_prt.invalid |
docs |
af_siteid |
optional | The published attribution link parameter table specifies this decoded character limit. Maximum decoded characters: 24. | vendor.appsflyer-onelink-impression.param.af_siteid.invalid |
docs |
af_c_id |
optional | The published attribution link parameter table specifies this decoded character limit. Maximum decoded characters: 24. | vendor.appsflyer-onelink-impression.param.af_c_id.invalid |
docs |
af_adset |
optional | The published attribution link parameter table specifies this decoded character limit. Maximum decoded characters: 100. | vendor.appsflyer-onelink-impression.param.af_adset.invalid |
docs |
af_adset_id |
optional | The published attribution link parameter table specifies this decoded character limit. Maximum decoded characters: 24. | vendor.appsflyer-onelink-impression.param.af_adset_id.invalid |
docs |
af_ad |
optional | The published attribution link parameter table specifies this decoded character limit. Maximum decoded characters: 100. | vendor.appsflyer-onelink-impression.param.af_ad.invalid |
docs |
af_ad_id |
optional | The published attribution link parameter table specifies this decoded character limit. Maximum decoded characters: 24. | vendor.appsflyer-onelink-impression.param.af_ad_id.invalid |
docs |
af_ad_type |
optional | Published naming conventions and24-character maximum. The raw-data dictionary also uses footer, so unlisted conventions are warnings. Value diagnostic severity: warning. Maximum decoded characters: 24. | vendor.appsflyer-onelink-impression.param.af_ad_type.emptyvendor.appsflyer-onelink-impression.param.af_ad_type.invalid |
docs |
af_channel |
optional | The published attribution link parameter table specifies this decoded character limit. Maximum decoded characters: 20. | vendor.appsflyer-onelink-impression.param.af_channel.invalid |
docs |
af_engagement_destination |
optional | The published attribution link parameter table specifies this decoded character limit. Maximum decoded characters: 50. | vendor.appsflyer-onelink-impression.param.af_engagement_destination.invalid |
docs |
af_keywords |
optional | The published attribution link parameter table specifies this decoded character limit. Maximum decoded characters: 100. | vendor.appsflyer-onelink-impression.param.af_keywords.invalid |
docs |
af_cost_model |
optional | The published attribution link parameter table specifies this decoded character limit. Maximum decoded characters: 20. | vendor.appsflyer-onelink-impression.param.af_cost_model.invalid |
docs |
af_partner_account_id |
optional | The published attribution link parameter table specifies this decoded character limit. Maximum decoded characters: 100. | vendor.appsflyer-onelink-impression.param.af_partner_account_id.invalid |
docs |
af_og_title |
optional | The published attribution link parameter table specifies this decoded character limit. Maximum decoded characters: 40. | vendor.appsflyer-onelink-impression.param.af_og_title.invalid |
docs |
af_og_description |
optional | The published attribution link parameter table specifies this decoded character limit. Maximum decoded characters: 300. | vendor.appsflyer-onelink-impression.param.af_og_description.invalid |
docs |
advertising_id |
optional | The published attribution link parameter table specifies this decoded character limit. Maximum decoded characters: 40. | vendor.appsflyer-onelink-impression.param.advertising_id.invalid |
docs |
android_id |
optional | The published attribution link parameter table specifies this decoded character limit. Maximum decoded characters: 20. | vendor.appsflyer-onelink-impression.param.android_id.invalid |
docs |
idfa |
optional | The link specification requires an uppercase IDFA and a40-character maximum. Device ownership and platform selection require context. Maximum decoded characters: 40. | vendor.appsflyer-onelink-impression.param.idfa.emptyvendor.appsflyer-onelink-impression.param.idfa.invalid |
docs |
af_sub1 |
optional | Optional subscriber parameter with the published100-character limit. Maximum decoded characters: 100. | vendor.appsflyer-onelink-impression.param.af_sub1.invalid |
docs |
af_sub2 |
optional | Optional subscriber parameter with the published100-character limit. Maximum decoded characters: 100. | vendor.appsflyer-onelink-impression.param.af_sub2.invalid |
docs |
af_sub3 |
optional | Optional subscriber parameter with the published100-character limit. Maximum decoded characters: 100. | vendor.appsflyer-onelink-impression.param.af_sub3.invalid |
docs |
af_sub4 |
optional | Optional subscriber parameter with the published100-character limit. Maximum decoded characters: 100. | vendor.appsflyer-onelink-impression.param.af_sub4.invalid |
docs |
af_sub5 |
optional | Optional subscriber parameter with the published100-character limit. Maximum decoded characters: 100. | vendor.appsflyer-onelink-impression.param.af_sub5.invalid |
docs |
af_mp |
optional | Optional published attribution field. No closed value catalog or additional length is invented. | docs | |
clickid |
optional | Optional published attribution field. No closed value catalog or additional length is invented. | docs | |
af_sub_siteid |
optional | Optional published attribution field. No closed value catalog or additional length is invented. | docs | |
af_ua |
optional | Optional published attribution field. No closed value catalog or additional length is invented. | docs | |
af_os_version |
optional | Optional published attribution field. No closed value catalog or additional length is invented. | docs | |
af_model |
optional | Optional published attribution field. No closed value catalog or additional length is invented. | docs | |
deep_link_value |
optional | Optional published attribution field. No closed value catalog or additional length is invented. | docs | |
imei |
optional | Optional published attribution field. No closed value catalog or additional length is invented. | docs | |
oaid |
optional | Optional published attribution field. No closed value catalog or additional length is invented. | docs | |
fire_advertising_id |
optional | Optional published attribution field. No closed value catalog or additional length is invented. | docs | |
af_android_store_csl |
optional | Optional published attribution field. No closed value catalog or additional length is invented. | docs | |
af_ios_store_cpp |
optional | Optional published attribution field. No closed value catalog or additional length is invented. | docs | |
af_ref |
optional | Optional published attribution field. No closed value catalog or additional length is invented. | docs | |
af_source_platform |
optional | Optional published attribution field. No closed value catalog or additional length is invented. | docs | |
af_source_device_category |
optional | Optional published attribution field. No closed value catalog or additional length is invented. | docs | |
deep_link_sub1 |
optional | Optional app-defined deep-link metadata. The app selects the business semantics. | docs | |
deep_link_sub2 |
optional | Optional app-defined deep-link metadata. The app selects the business semantics. | docs | |
deep_link_sub3 |
optional | Optional app-defined deep-link metadata. The app selects the business semantics. | docs | |
deep_link_sub4 |
optional | Optional app-defined deep-link metadata. The app selects the business semantics. | docs | |
deep_link_sub5 |
optional | Optional app-defined deep-link metadata. The app selects the business semantics. | docs | |
deep_link_sub6 |
optional | Optional app-defined deep-link metadata. The app selects the business semantics. | docs | |
deep_link_sub7 |
optional | Optional app-defined deep-link metadata. The app selects the business semantics. | docs | |
deep_link_sub8 |
optional | Optional app-defined deep-link metadata. The app selects the business semantics. | docs | |
deep_link_sub9 |
optional | Optional app-defined deep-link metadata. The app selects the business semantics. | docs | |
deep_link_sub10 |
optional | Optional app-defined deep-link metadata. The app selects the business semantics. | docs | |
af_force_deeplink |
optional | The documented URL flag uses literal true/false. Retargeting and redirect behavior depend on engagement context. | vendor.appsflyer-onelink-impression.param.af_force_deeplink.emptyvendor.appsflyer-onelink-impression.param.af_force_deeplink.invalid |
docs |
is_incentivized |
optional | The documented URL flag uses literal true/false. Retargeting and redirect behavior depend on engagement context. | vendor.appsflyer-onelink-impression.param.is_incentivized.emptyvendor.appsflyer-onelink-impression.param.is_incentivized.invalid |
docs |
af_param_forwarding |
optional | The documented URL flag uses literal true/false. Retargeting and redirect behavior depend on engagement context. | vendor.appsflyer-onelink-impression.param.af_param_forwarding.emptyvendor.appsflyer-onelink-impression.param.af_param_forwarding.invalid |
docs |
af_base_params_forward |
optional | The documented URL flag uses literal true/false. Retargeting and redirect behavior depend on engagement context. | vendor.appsflyer-onelink-impression.param.af_base_params_forward.emptyvendor.appsflyer-onelink-impression.param.af_base_params_forward.invalid |
docs |
redirect |
optional | The documented URL flag uses literal true/false. Retargeting and redirect behavior depend on engagement context. | vendor.appsflyer-onelink-impression.param.redirect.emptyvendor.appsflyer-onelink-impression.param.redirect.invalid |
docs |
is_retargeting |
optional | The documented URL flag uses literal true/false. Retargeting and redirect behavior depend on engagement context. | vendor.appsflyer-onelink-impression.param.is_retargeting.emptyvendor.appsflyer-onelink-impression.param.is_retargeting.invalid |
docs |
af_xplatform |
optional | The documented URL flag uses literal true/false. Retargeting and redirect behavior depend on engagement context. | vendor.appsflyer-onelink-impression.param.af_xplatform.emptyvendor.appsflyer-onelink-impression.param.af_xplatform.invalid |
docs |
af_cost_currency |
optional | Optional current ISO4217 currency. USD is the vendor default, so cost values do not require an explicit currency. | vendor.appsflyer-onelink-impression.param.af_cost_currency.emptyvendor.appsflyer-onelink-impression.param.af_cost_currency.invalid |
docs |
af_cost_value |
optional | Only numerical digits and an optional decimal point are allowed; at most four fractional digits. | vendor.appsflyer-onelink-impression.param.af_cost_value.emptyvendor.appsflyer-onelink-impression.param.af_cost_value.invalid |
docs |
af_media_type |
optional | The published placement category is app or web. | vendor.appsflyer-onelink-impression.param.af_media_type.emptyvendor.appsflyer-onelink-impression.param.af_media_type.invalid |
docs |
af_ad_format |
optional | Published naming conventions are checked as a reporting advisory, without claiming this is a closed ingestion enum. Value diagnostic severity: warning. | vendor.appsflyer-onelink-impression.param.af_ad_format.emptyvendor.appsflyer-onelink-impression.param.af_ad_format.invalid |
docs |
af_click_lookback |
optional | Published click window syntax. The vendor explicitly ignores this setting for impression URLs. Value diagnostic severity: warning. | vendor.appsflyer-onelink-impression.param.af_click_lookback.emptyvendor.appsflyer-onelink-impression.param.af_click_lookback.invalid |
docs |
af_reengagement_window |
optional | The full parameter table permits1..90days,1..36hours or lifetime. Another OneLink page says hours up to23; preserve the broader documented branch and report the conflict. Value diagnostic severity: warning. | vendor.appsflyer-onelink-impression.param.af_reengagement_window.emptyvendor.appsflyer-onelink-impression.param.af_reengagement_window.invalid |
docs |
af_xplatform_vt_lookback |
optional | Cross-platform impressions use a1..72hour window, with24h default. | vendor.appsflyer-onelink-impression.param.af_xplatform_vt_lookback.emptyvendor.appsflyer-onelink-impression.param.af_xplatform_vt_lookback.invalid |
docs |
af_ip |
optional | Optional device IP for S2S impressions. C2S applicability, X-Forwarded-For fallback and matching header require HTTP context. | vendor.appsflyer-onelink-impression.param.af_ip.emptyvendor.appsflyer-onelink-impression.param.af_ip.invalid |
docs |
af_video_total_length |
optional | Published numeric viewability field, in seconds or percentage. No source-unspecified duration equality or business floor is inferred. | vendor.appsflyer-onelink-impression.param.af_video_total_length.emptyvendor.appsflyer-onelink-impression.param.af_video_total_length.invalid |
docs |
af_video_played_length |
optional | Published numeric viewability field, in seconds or percentage. No source-unspecified duration equality or business floor is inferred. | vendor.appsflyer-onelink-impression.param.af_video_played_length.emptyvendor.appsflyer-onelink-impression.param.af_video_played_length.invalid |
docs |
af_playable_played_length |
optional | Published numeric viewability field, in seconds or percentage. No source-unspecified duration equality or business floor is inferred. | vendor.appsflyer-onelink-impression.param.af_playable_played_length.emptyvendor.appsflyer-onelink-impression.param.af_playable_played_length.invalid |
docs |
af_ad_time_viewed |
optional | Published numeric viewability field, in seconds or percentage. No source-unspecified duration equality or business floor is inferred. | vendor.appsflyer-onelink-impression.param.af_ad_time_viewed.emptyvendor.appsflyer-onelink-impression.param.af_ad_time_viewed.invalid |
docs |
af_ad_displayed_percent |
optional | Published numeric viewability field, in seconds or percentage. No source-unspecified duration equality or business floor is inferred. | vendor.appsflyer-onelink-impression.param.af_ad_displayed_percent.emptyvendor.appsflyer-onelink-impression.param.af_ad_displayed_percent.invalid |
docs |
af_audio_total_length |
optional | Published numeric viewability field, in seconds or percentage. No source-unspecified duration equality or business floor is inferred. | vendor.appsflyer-onelink-impression.param.af_audio_total_length.emptyvendor.appsflyer-onelink-impression.param.af_audio_total_length.invalid |
docs |
af_audio_played_length |
optional | Published numeric viewability field, in seconds or percentage. No source-unspecified duration equality or business floor is inferred. | vendor.appsflyer-onelink-impression.param.af_audio_played_length.emptyvendor.appsflyer-onelink-impression.param.af_audio_played_length.invalid |
docs |
af_r |
optional | Redirect targets must be full publicly accessible HTTPS URLs. Fragment identifiers are unsupported; public reachability and account allowlisting require external context. | vendor.appsflyer-onelink-impression.param.af_r.emptyvendor.appsflyer-onelink-impression.param.af_r.invalid |
docs |
af_web_dp |
optional | Redirect targets must be full publicly accessible HTTPS URLs. Fragment identifiers are unsupported; public reachability and account allowlisting require external context. | vendor.appsflyer-onelink-impression.param.af_web_dp.emptyvendor.appsflyer-onelink-impression.param.af_web_dp.invalid |
docs |
af_android_url |
optional | Redirect targets must be full publicly accessible HTTPS URLs. Fragment identifiers are unsupported; public reachability and account allowlisting require external context. | vendor.appsflyer-onelink-impression.param.af_android_url.emptyvendor.appsflyer-onelink-impression.param.af_android_url.invalid |
docs |
af_ios_url |
optional | Redirect targets must be full publicly accessible HTTPS URLs. Fragment identifiers are unsupported; public reachability and account allowlisting require external context. | vendor.appsflyer-onelink-impression.param.af_ios_url.emptyvendor.appsflyer-onelink-impression.param.af_ios_url.invalid |
docs |
af_og_image |
optional | Optional Open Graph preview image URL. | vendor.appsflyer-onelink-impression.param.af_og_image.emptyvendor.appsflyer-onelink-impression.param.af_og_image.invalid |
docs |
af_dp |
optional | A valid URI scheme is recommended. The application determines its default activity/base path, so custom schemes remain supported. Value diagnostic severity: warning. | vendor.appsflyer-onelink-impression.param.af_dp.emptyvendor.appsflyer-onelink-impression.param.af_dp.invalid |
docs |
idfv |
optional | The link specification requires uppercase IDFV; no undocumented length bound is added. | vendor.appsflyer-onelink-impression.param.idfv.emptyvendor.appsflyer-onelink-impression.param.idfv.invalid |
docs |
sha1_advertising_id |
optional | Published hashed identifier. The digest must contain the exact hexadecimal width of its named algorithm. Original source normalization and network support are external. | vendor.appsflyer-onelink-impression.param.sha1_advertising_id.emptyvendor.appsflyer-onelink-impression.param.sha1_advertising_id.invalid |
docs |
sha1_android_id |
optional | Published hashed identifier. The digest must contain the exact hexadecimal width of its named algorithm. Original source normalization and network support are external. | vendor.appsflyer-onelink-impression.param.sha1_android_id.emptyvendor.appsflyer-onelink-impression.param.sha1_android_id.invalid |
docs |
sha1_imei |
optional | Published hashed identifier. The digest must contain the exact hexadecimal width of its named algorithm. Original source normalization and network support are external. | vendor.appsflyer-onelink-impression.param.sha1_imei.emptyvendor.appsflyer-onelink-impression.param.sha1_imei.invalid |
docs |
sha1_oaid |
optional | Published hashed identifier. The digest must contain the exact hexadecimal width of its named algorithm. Original source normalization and network support are external. | vendor.appsflyer-onelink-impression.param.sha1_oaid.emptyvendor.appsflyer-onelink-impression.param.sha1_oaid.invalid |
docs |
sha1_idfa |
optional | Published hashed identifier. The digest must contain the exact hexadecimal width of its named algorithm. Original source normalization and network support are external. | vendor.appsflyer-onelink-impression.param.sha1_idfa.emptyvendor.appsflyer-onelink-impression.param.sha1_idfa.invalid |
docs |
sha1_idfv |
optional | Published hashed identifier. The digest must contain the exact hexadecimal width of its named algorithm. Original source normalization and network support are external. | vendor.appsflyer-onelink-impression.param.sha1_idfv.emptyvendor.appsflyer-onelink-impression.param.sha1_idfv.invalid |
docs |
sha1_mac |
optional | Published hashed identifier. The digest must contain the exact hexadecimal width of its named algorithm. Original source normalization and network support are external. | vendor.appsflyer-onelink-impression.param.sha1_mac.emptyvendor.appsflyer-onelink-impression.param.sha1_mac.invalid |
docs |
md5_advertising_id |
optional | Published hashed identifier. The digest must contain the exact hexadecimal width of its named algorithm. Original source normalization and network support are external. | vendor.appsflyer-onelink-impression.param.md5_advertising_id.emptyvendor.appsflyer-onelink-impression.param.md5_advertising_id.invalid |
docs |
md5_android_id |
optional | Published hashed identifier. The digest must contain the exact hexadecimal width of its named algorithm. Original source normalization and network support are external. | vendor.appsflyer-onelink-impression.param.md5_android_id.emptyvendor.appsflyer-onelink-impression.param.md5_android_id.invalid |
docs |
md5_imei |
optional | Published hashed identifier. The digest must contain the exact hexadecimal width of its named algorithm. Original source normalization and network support are external. | vendor.appsflyer-onelink-impression.param.md5_imei.emptyvendor.appsflyer-onelink-impression.param.md5_imei.invalid |
docs |
md5_oaid |
optional | Published hashed identifier. The digest must contain the exact hexadecimal width of its named algorithm. Original source normalization and network support are external. | vendor.appsflyer-onelink-impression.param.md5_oaid.emptyvendor.appsflyer-onelink-impression.param.md5_oaid.invalid |
docs |
md5_idfa |
optional | Published hashed identifier. The digest must contain the exact hexadecimal width of its named algorithm. Original source normalization and network support are external. | vendor.appsflyer-onelink-impression.param.md5_idfa.emptyvendor.appsflyer-onelink-impression.param.md5_idfa.invalid |
docs |
md5_idfv |
optional | Published hashed identifier. The digest must contain the exact hexadecimal width of its named algorithm. Original source normalization and network support are external. | vendor.appsflyer-onelink-impression.param.md5_idfv.emptyvendor.appsflyer-onelink-impression.param.md5_idfv.invalid |
docs |
sha1_el |
optional | Published SHA1 email identifier for desktop-to-mobile attribution. | vendor.appsflyer-onelink-impression.param.sha1_el.emptyvendor.appsflyer-onelink-impression.param.sha1_el.invalid |
docs |
mac |
optional | Published device MAC field. Source gives no normalization spelling, so no guessed separator format is enforced. | docs | |
af_os |
deprecated | Deprecated but still supported, so presence is an advisory rather than a rejection. | vendor.appsflyer-onelink-impression.param.af_os.deprecated |
docs |
af_ios_fallback |
deprecated | Deprecated but still supported, so presence is an advisory rather than a rejection. | vendor.appsflyer-onelink-impression.param.af_ios_fallback.deprecated |
docs |
af_esp |
optional | Optional documented email-service-provider URI scheme flag. Opening behavior needs app/browser context. | vendor.appsflyer-onelink-impression.param.af_esp.emptyvendor.appsflyer-onelink-impression.param.af_esp.invalid |
docs |
af_inactivity_window |
optional | Optional documented retargeting inactivity window in days. The published page gives no concrete URL token syntax or range, so no guessed d-suffix grammar or floor is enforced. | docs | |
af_custom_android_url |
optional | The FAQ identifies this alternate Android redirect parameter. Apply the shared published HTTPS redirect contract; account targeting and WebView behavior require context. | vendor.appsflyer-onelink-impression.param.af_custom_android_url.emptyvendor.appsflyer-onelink-impression.param.af_custom_android_url.invalid |
docs |
https_required |
required | AppsFlyer accepts only HTTPS incoming engagement traffic. | vendor.appsflyer-onelink-impression.https_required |
docs |
url_length |
required | The complete attribution URL must not exceed2000 characters. | vendor.appsflyer-onelink-impression.url_length |
docs |
pid_legal_characters |
required | These PID characters prevent attribution and deep linking. | vendor.appsflyer-onelink-impression.pid_legal_characters |
docs |
campaign_edge_whitespace |
recommended | Campaign names should not begin or end with whitespace because reporting may disagree. | vendor.appsflyer-onelink-impression.campaign_edge_whitespace |
docs |
redirect_fragments |
required | URI fragments are unsupported in redirection URLs. | vendor.appsflyer-onelink-impression.redirect_fragments |
docs |
partner_site_id |
recommended | Ad-network links should carry the publisher site ID. Custom owned-media impression examples omit it. | vendor.appsflyer-onelink-impression.partner_site_id |
docs |
af_og_title_preview_fields |
recommended | A customized OneLink social preview uses title, description and image together. | vendor.appsflyer-onelink-impression.af_og_title_preview_fields |
docs |
af_og_description_preview_fields |
recommended | A customized OneLink social preview uses title, description and image together. | vendor.appsflyer-onelink-impression.af_og_description_preview_fields |
docs |
af_og_image_preview_fields |
recommended | A customized OneLink social preview uses title, description and image together. | vendor.appsflyer-onelink-impression.af_og_image_preview_fields |
docs |
Validate a payload
pixellint validate url "$ARTIFACT" --rulepack vendor/appsflyer-onelink-impression
Try this failing payload in the playground. OneLink impression missing pid.
https://impressions.onelink.me/j7rN?c=Spring
cargo install pixellint
·
npm install pixellint