시작하기

간편한 InMobi SDK를 활용하여 사용자에게 풍부한 광고 경험을 제공함으로써 iOS와 Android 앱을 수익화할 수 있습니다.

간단한 단계를 통해 시작해 보십시오.

1단계: InMobi 계정 생성

InMobi 계정 설정 방법:

  1. 퍼블리셔로 가입합니다.
  2. 이메일 인증을 완료합니다.

2단계: 앱 등록

  1. Add an App을 클릭한 다음 아래 보이는 링크를 클릭합니다.
  2. 앱 이름을 기재한 다음 플랫폼을 선택합니다.
  3. `
  4. 13세 미만 아동을 대상으로 한 앱 관련 조항을 읽고 해당하는 경우 확인란을 선택합니다.

    참고: URL이 없는 앱의 경우 테스트 모드가 기본으로 활성화됩니다. 앱이 정식으로 출시되면 링크를 클릭하여 아래 보이는 대시보드에서 URL을 입력할 수 있습니다.
    이제 앱 수익화 준비가 완료되었습니다.

3단계: 배치 ID 생성

  1. 적합한 광고 형식을 선택하여 광고 배치를 결정합니다.
  2. (선택 사항) 보다 나은 수익화를 위해서, 앱 내 광고의 위치와 상황에 맞게 배치를 태그합니다.

4단계: 정산 정보 입력

수익을 지급받으려면 지급 프로필을 생성, 인증, 활성화해야 합니다. InMobi의 정산 주기는 60일입니다. 다시 말해 한 달간의 수익은 60일 이후에 지급됩니다. PayPal이나 전신 송금/RTGS 등을 통해 수익을 지급받을 수 있습니다.

지급 약관에 관한 자세한 정보는 여기를 참고하십시오.

5단계: 필터를 통한 광고 차단

광고 콘텐츠를 차단하여 사용자에게 보이는 광고를 선별할 수 있습니다. InMobi는 광고를 차단할 수 있는 3단계의 광고 필터를 지원합니다.

  • 도메인 필터:

    특정 도메인의 광고를 차단합니다. 예를 들어, InMobi 광고를 차단하고 싶다면 도메인 'inmobi.com'을 추가합니다. inmobi.com, inmobi.co.jp와 같이 InMobi의 모든 도메인을 차단하려면 'inmobi'를 추가합니다.

  • 카테고리 필터:

    카테고리를 기반으로 광고를 차단합니다. 특정 카테고리를 차단하면 해당 카테고리로 분류된 광고는 사이트나 앱에 제공되지 않습니다. 예를 들어, 아동용 앱의 경우 '정치'나 '도박' 카테고리로 분류된 광고를 차단할 수 있습니다.

  • URL 또는 키워드 필터:

    광고 텍스트나 랜딩 페이지 URL에 포함된 특정 문구를 기반으로 광고를 차단합니다. 예를 들어, '무기'나 '바이러스'와 같은 텍스트가 포함된 광고를 사이트나 앱에 제공되지 않도록 차단할 수 있습니다.

수익화를 시작해 보십시오!

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 16 Sep, 2020

미디에이션 가이드라인

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 07 Jun, 2020

Monetize

이 페이지가 도움이 되었나요?

미디에이션 가이드라인

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 07 Jun, 2020

MoPub

MoPub과 InMobi SDK를 통합하는 것이 쉽습니다. 연동 방법은 다음 링크를 참고하십시오.

MoPub 미디에이션은 다음 광고 유형을 지원합니다.

  • 배너 광고
  • 중간 크기 - 배너 광고
  • 전체 화면(전면, 전체 화면 동영상 광고)
  • 보상형 동영상 광고
  • 네이티브 광고
  • 사용자 정의 크기

참고: InMobi는 사용자 정의 크기를 제외한 위의 모든 광고를 지원합니다. 퍼블리셔가 사용자 정의 크기로 얻을 수 있는 결과는 다른 형식을 통해서도 쉽게 얻을 수 있습니다.

InMobi SDK 최신 버전은 iOS 9 이상을 지원합니다. 또한, 이 버전의 iOS SDK에는 XCode 9.3 이상이 필요합니다.

InMobi SDK 최신 버전은 Android OS 버전 4.0.3 (API 레벨 15) 이상을 지원합니다.

버전 iOS - 8.2.0
Android - 8.2.1
iOS - 7.3.2
Android - 7.3.0
크기 iOS - 953 KB (.IPA 인플레이션)
Android - 415 KB (.APK 인플레이션)
iOS - 650 KB (.IPA 인플레이션)
Android - 395 KB (.APK 인플레이션)
SDK 링크
어댑터

MoPub에 연동한 적이 없는 경우 MoPub 문서를 참고할 수 있습니다.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 03 Sep, 2020

Advanced Configurations & Customization

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 22 Apr, 2025

Implementing CMP via Code1

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 22 Apr, 2025

Using the Portal (No-Code Setup)1

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 22 Apr, 2025

General

1. Why is it important to have an IAB compliant and Google certified CMP?

Since November 20th, 2023, CMPs are required to implement IAB’s new policies and specifications (TCF v2.2). From January 16th, 2024, if a publisher does not adopt a Google-certified CMP, no Ads from Google AdSense, Ad Manager, or AdMob will be eligible to serve on EEA and UK traffic. Having a Google and IAB-compliant CMP is crucial for the following reasons:

  • It adheres to industry standards and evolving data privacy regulations.
  • It allows publishers to build user trust through transparent data practices.
  • It mitigates risks of non-compliance, avoiding potential penalties.
  • It empowers publishers to monetize their properties

2. What are the benefits of this CMP for me as a publisher?

Our free CMP enables you to maintain compliance with data privacy regulations (like GDPR, CCPA, and many others), helping you to foster user trust whilst elevating Ad revenue. By using our CMP, you can leverage TCF v2.2 strings, aligning with the preferences of advertisers and enhancing your monetization potential. Some of our publishers have observed up to 35% uplift in eCPM in certain regions.

3. Is this solution free?

At present, the InMobi CMP is a free solution for both existing and new customers.

4. How do I add a user to my InMobi CMP account?

Currently, InMobi CMP does not support user management directly.

  • To add a user, Contact Us.
  • Provide your p-code and the user’s email.
  • Ensure the user has already created an InMobi CMP account before requesting access.
  • The new user will get access to all features of that account.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 22 Apr, 2025

Features and Capabilities

1. What are the customization options available?

InMobi CMP offers a wide array of customization options, allowing you to personalize elements such as button colors, backgrounds, and fonts. You can see the complete list of customization features available for iOS here and Android here.

2. Does the platform support multiple languages?

The InMobi CMP currently supports 25 languages, with more coming in the future.

Bulgarian Croatian Finnish Italian Portuguese
English Estonian Irish Polish Spanish
Greek Hungarian Norwegian Slovenian  
Lithuanian Maltese Slovak Dutch  
Romanian Russian Danish French  
Swedish Czech Flemish Latvian  

3. What kind of reporting and analytics does the CMP provide for consent management?

InMobi CMP provides reporting and analytics on user consent-related data. This data can help you monitor and optimize your compliance efforts. In its current state, the publisher can track the following metrics:

  • Total consent pop-up views
  • Consent acceptance rate
  • Bounce rate
  • Trends in user responses to the consent pop-up

4. Can I configure the CMP to allow users to change their consent preferences at any time?

Yes, we strongly believe that users should always have complete control over the data they choose to disclose. Our CMP is designed to offer users the flexibility to adjust their consent preferences at any point, ensuring a high level of control over their decisions related to data sharing. This can be done via the Themes tab.

5. Why can’t I re-add a previously deleted site property?

InMobi CMP does not currently allow re-adding a site property with a previously deleted URL for data integrity reasons.

Contact Us and we can restore the deleted site property from the backend if necessary.

Once the site property is restored, check:

  • Site compatibility with the latest CMP version. If not, update it.
  • GBC is enabled.
  • Universal tags are updated for seamless integration.
  • Theme configurations are retained.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 22 Apr, 2025

Integration and Implementation

1. What is the integration process?

The integration process is composed of 3 simple steps:

  1. Create your account and log in via https://choice.inmobi.com/login.
  2. Set up your app(s) and/or site(s) via the interface.
  3. Integrate the SDK or Web Tag following the instructions on this support portal.

We recommend watching the video below for a visual overview of the entire process. You can also explore the comprehensive details available on this support portal, where each step is thoroughly outlined.

2. Is this available on both Android and iOS?

InMobi CMP is designed to be applicable to  Android and iOS, in-app and web. It offers seamless integration and consent management capabilities for both mobile operating systems, ensuring comprehensive coverage across different devices and providing a consistent user experience for all your app users.​​​​​

3. Is the CMP compatible with Unity?

Yes, we have a Unity package available here. Please note, whilst UI customization for Unity is not currently supported, it is currently on our roadmap to be available in Q2 2024.

4. Is the CMP a standalone SDK for in-app?

At present, it is a standalone SDK for in-app consent management. In our ongoing efforts to enhance the experience for our publishers, we plan to seamlessly integrate the CMP into our monetization SDK in the first half of 2024. This integration will allow you to effortlessly enable or disable the CMP module, providing you with greater flexibility and control over your app’s consent management approach.

5. How does the integration with Google Mobile Ads or other Ad providers work?

Integration with Google Mobile Ads and other Ad providers through InMobi CMP requires publishers to configure consent preferences and vendors within the CMP interface. The CMP SDK handles user consent collection, TCF string generation, and storage. Ad providers can access the TCF string either through their SDK's API, with publishers passing the consent string, or by retrieving it from shared storage. This string helps Ad providers determine whether to display personalized Ads, ensuring compliance with user consent choices and data protection regulations.

6. Why do I see CMP warnings in the browser console?

If you're seeing CMP warning in the browser, check the following:

  • Ensure you're using the latest CMP tags or GTM container file (if integrated via GTM).
  • Test with the latest CMP version to rule out outdated configurations.

7. Why is the CMP pop-up not appearing on my site?

If the CMP pop-up is missing despite setup, check the following:

  • Site URL Match: Ensure the CMP site URL matches your actual site URL exactly (e.g.,"www.example.com" vs. "example.com").
  • User Location & Consent Scope: If consent is set for specific regions (e.g., "EEA"), the pop-up will not show for users outside those locations.
  • Complete essential post-implementation checks for Android, iOS, and Web.

8. Why is my Google Analytics (GA4) data incorrect or missing consent signals? 

If you're experiencing issues with Google Analytics data or missing consent signals, check whether Google Basic Consent is enabled. This issue typically occurs when it is disabled.

If enabled, verify that all required consent signals are correctly configured. For more information, see Google Basic Consent with InMobi CMP.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 22 Apr, 2025

MSPA

These are some common questions that publishers may have while implementing MSPA.

1. How does the mapping happen if the publisher selects the state framework and the end-user travels to a different state?

If the end-user changes state, there is no mapping of the consents between different sections. Instead, the InMobi CMP will signal to the publisher (via an API) that the end-user has changed states and needs to be re-shown the consent screen. The publisher is responsible for then re-triggering the consent screen. To see the APIs to check user location and trigger the consent screen, see iOS APIs, Android APIs, and Web APIs.

2. What happens if the end-user travels from the US to EEU/UK or vice-versa?

If the end-user travels from the US to EEU/UK, then the GPP string for the US will not be deleted. Instead, the GDPR consent screen for EEU/UK will be shown. Similarly, if the user travels from the EEU/UK to the US, then the GDPR will not be deleted and the MSPA consent popup will be shown for the U.S region.

3. What happens if the user has a CCPA string and the publisher enables GPP?

If a user has a CCPA string and the publisher enables GPP, the US Privacy consent string will not be deleted. Depending on whether the publisher has set the auto-display of the consent screen, the MSPA consent popup will be shown to the user.

4. Why is GDPR not applicable in the US and only US regulations are applicable in the US?

To understand why GDPR is not applicable in the US and why US regulations are applicable only in the US, see Why doesn’t InMobi CMP support GDPR in the U.S?

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 22 Apr, 2025

Compliance and Legal

1. What data privacy regulations and standards does the platform comply with?

InMobi CMP complies with GDPR (General Data Protection Regulation), CCPA (California Consumer Privacy Act), ePrivacy, as well as Google’s and IAB's new policies and specifications (TCF v2.2). Read more about how we comply with these regulations and standards here.

We plan to support new regulations and standards in Q1 2024 such as the Digital Personal Data Protection Act (DPDPA) or IAB's Global Privacy Platform (GPP).

2. Is InMobi CMP Google and IAB certified?

Yes, our CMP is IAB TCF 2.2 and Google-certified. Click here for more information.

3. Do you support GPP, DPDPA and other frameworks/regulations?

As part of our roadmap for 2024, we are focusing on being compliant with global regulations and frameworks such as GPP and DPDPA.

4. Is your CMP a neutral solution? Does your SSP access my data if I am not using your services for monetization?

InMobi CMP is completely neutral and strictly adheres to privacy protocols, only transmitting consent strings to partners whitelisted in the vendor tab of our customer interface. Its certification by Google and the IAB ensures a trustworthy handling of your data. You can rely on InMobi CMP for secure and compliant data processing.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 22 Apr, 2025

Troubleshooting and Support

1. How can I request technical support and troubleshooting help?

InMobi CMP is self-serve, so you should find all the information and guides you need on this support portal. If this is not the case, you can raise a ticket via the support portal.

2. As a former Quantcast Choice customer, I am facing login issues on the InMobi CMP portal.

To access InMobi CMP, log in to the InMobi CMP portal and enter the email address associated with your account. You will then be prompted to reset your password. If you encounter any issues, you can submit a ticket via the support portal.

3. Why does the CMP pop-up appear every time a user visits the site?

If the CMP pop-up shows on every visit, it is likely due to local storage or cookies being cleared every time the site is reloaded or after a user logs in. Ensure that local storage/cookies are not being cleared automatically, as CMP relies on them to retain user consent data.

4. Why am I not seeing personalized ads, or why is my ad revenue low (TCF Error 10.1)?

If personalized ads are missing, revenue is low, or you see errors like: "We received a request from the EEA, UK, or Switzerland, but it lacks TCF signals", it likely means the consent string is missing from the ad request.

To troubleshoot, check the following:

  • Ensure the CMP is correctly storing the consent string in cookies.
  • If the consent string is present but ads are still non-personalized, this could be a race condition (Ads request being initiated before user consent is provided).
  • Use an Asynchronous Callback from CMP to confirm user consent before making the ad request. For more information, see Adding Asynchronous Callback to the CMP.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 22 Apr, 2025

General

1. I am a publisher, how do I create my first ad with InMobi? 

Getting started with InMobi is quick and easy. Here’s a step-by-step walkthrough to begin with.

You might come across the following terms while you set up an account on the InMobi platform. We would recommend that you go through the same so that you are comfortable navigating our platform.

  • Username: Any name that can uniquely identify you to your InMobi account.
  • Account ID: A unique identifier for your account with InMobi. Select the drop-down next to your username to view your account id.
  • Placement ID: A unique identifier for the placement unit you create on the InMobi platform. To find your app Placement Id: select Monetize from the top navigation header, then select the relevant app from your list. The placement Id will be available to you in a dialog box.
  • Payment ID: A unique ID generated at the account level after payment details are updated. To locate, select the drop-down next to your user name.

2. Why am I being redirected to create a new account or sign a contract even though I already have an account? 

If you have created a Google Open Bidding or Direct account and want to switch, you must create a new one. However, you cannot create a new account with the same email address. Additionally, signing a contract only applies to Google Open Bidding accounts (Google Open Bidding SDK connections don't require new accounts).

3. Why do I see blank ads in my campaigns? 

Blank ads may appear due to issues with ad creatives, targeting criteria, or ad-serving limitations. Ensure the setup is correct and Contact Us in case of any issues. 

4. How does test mode work, and when can I see live ads? 

You can enable your placement for Test Mode without affecting the live app. Global means the test ad can be served across all your Live apps with InMobi, while Device means the test ad can be served across the Test Devices added as per the Integration Tab section. 

5. How can I add more users to my account?

To add more users, go to your account settings and select "Manage Users." Add details such as first and last names, designation, email ID, etc to invite additional users. For more details, follow the steps in the My Account tab.

6. Why is it necessary to manually add the app?

Manually adding the app is only applicable in cases where the system cannot fetch the app's details through the URL. In such cases, you need to manually add the URL, Category, Rating, and other details to add the app to your inventory. 

7. How can I locate my account ID? 

You can find your account ID by logging into your account and navigating to the My Account tab. Here, you can view your profile and account details.

8. How can I delete my account?

You cannot delete your account from the platform. To delete your account, Contact Us.

9. Can I change or merge accounts?

Currently, changing or merging accounts is not supported. If you need assistance, Contact Us.

10. Why am I not receiving the verification link?

Check your spam or junk folder; the link might be there. Ensure you’ve entered the correct email address and your inbox is not full. If the issue persists, request the link again or, Contact Us.

11. Why can't I reset my account password?

If you're unable to reset your password, it may be due to an incorrect email or username, a locked account, or a temporary system issue. Double-check your details, ensure your account isn't locked, and try again later. If the problem persists, Contact Us.

If you have additional queries or need further assistance, Contact Us

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 06 Mar, 2025

App Approval Process and Compliance

1. How much time does it take for app approval?

The standard time for app approval is 24 working hours.

2. What are the content guidelines and policies at InMobi?

InMobi's content guidelines and policies ensure that all ads comply with legal standards, protect user experience, and avoid prohibited content, such as adult material, illegal activities, and misleading claims.

3. Why was my inventory rejected or flagged?

Your inventory may be rejected or flagged due to non-compliance with platform guidelines, quality issues, or discrepancies in the provided data. Refer to our content guidelines and policies for more details.

4. Why is the approval of my inventory taking longer than expected?

We usually take 24 working hours for app approval. However, if your app/website belongs to a sensitive category, our team may take longer than expected to review.

5. What does "Under Review" mean?

"Under Review" indicates that your submission is being evaluated and hasn't been approved or rejected yet.

6. Why is data privacy important?

Data privacy enables organizations to stay compliant with legal and regulatory standards, reducing risks, enhancing trust, and ensuring ethical operations. InMobi Publisher Platform is compliant with multiple regulations such as COPPA, CCPA, GDPR, and LGPD. You can follow the steps on the Compliance Declaration page to set your compliance settings.

7. Is InMobi a Data controller, Joint Controller, or Data Processor?

InMobi is a Joint Controller with the Publisher.

8. How will InMobi collect the data?

InMobi does not gather user consent directly and will rely on the publisher to obtain appropriate consent from data subjects and pass that on to InMobi.

9. What will InMobi do in cases where user consent is not present?

InMobi will never collect or pass user data to an advertiser or a publisher without user consent.

10. What happens if the user withdraws the consent?

Publishers must notify InMobi where consent is withdrawn or revoked, and accordingly, InMobi will honor such data subject’s request.

11. What happens if I am not compliant with InMobi’s GDPR solution?

For all requests originating from users who have not given consent, InMobi will serve non-targeted ads to these users. To comply with GDPR, upgrade your SDK today.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 11 Mar, 2025

Monetization

1. Why can't I add price points to the platform?

You can now set the floor price yourself, but this is an access-only feature, Contact Us to get your access.

2. How do I select the right ad format based on the Adslot size I want?

To choose the correct ad format, ensure the size aligns with standard industry dimensions such as banners (320x50), medium rectangles (300x250), or interstitials (320x480). Each format serves specific ad placement needs like banners for mobile screens and interstitials for immersive experiences.

3. What ad formats should I choose based on my desired ad slot size?

Select ad formats that match the dimensions of your ad slot, such as 320x50 for banners, 300x250 for medium rectangles, and 320x480 for interstitial ads.

4. Does InMobi support Outstream video ads? If yes, what format should be created on the Creative Intelligence (CI) platform?

Yes, InMobi supports Outstream video ads. You can create a video ad in the format compatible with the CI platform, ensuring it meets standard dimensions and specifications for seamless integration.

5. Why is my sellers.json not updated on the InMobi domain?

Your sellers.json may not be updated due to: Pending Verification: Your account details are still under review. Incomplete Information: Ensure your payment and business details are accurate.

6. What ad formats would be supported by InMobi for web supply?

Banner (display), In-stream (video), and Native.

7. How will InMobi handle the Ads.txt and Sellers. Json file?

Publishers will need to list InMobi.com as DIRECT in the ads.txt file and InMobi will list the publisher as PUBLISHER in the Sellers.Json file. Note that there is no change required vis-a-vis the in-app flow.

8. Does InMobi honor all the category and domain blocks in the oRTB request?

We do not support category and domain blocks sent to us via the oRBT request. Publishers will need to add blocks while creating the placement field in the Media UI setup.

If you have additional queries or need further assistance, Contact Us.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 11 Mar, 2025

Finance & Payments

1. Why has my payment been delayed?

Payments may be delayed for the following reasons: Publishers registered in Singapore and India are required to send GST invoices. If exempted from GST, they must provide a declaration via email to bd-finance@inmobi.com. Incorrect bank details. Please ensure your bank details are updated correctly.

2. How can I upload my invoice?

You can upload your invoice directly through your account's dashboard on the platform or Contact Us for further assistance.

3. How can I upload an invoice, and what is the required format? 

To upload an invoice, ensure that the file is in PDF format. Follow the guidelines provided on the InMobi platform for invoice submission, including any mandatory details such as invoice number, date, and corresponding campaign ID. For specific instructions, reach out to support@inmobi.com.

4. When can I expect my payment?

InMobi processes publisher payments every month, provided your account meets the minimum payout threshold. Payments are initiated within 60 days after the end of the month in which your earnings are generated. For example, earnings from January will be processed and paid by the end of March, and you can expect to receive the payment by the first week of April.

Here are a few key points to keep in mind:

  • Minimum Payout Threshold: $300 for wire and $ 50 for PayPal, $50 for India publisher. Ensure your account has met the minimum threshold for payouts, which varies depending on your chosen payment method (e.g., wire transfer, PayPal).   
  • Payment Delays: Payments may be delayed if your payment information, such as bank account details, is incomplete or if any discrepancies are identified during the payment verification process. 
  • Verification Process: Ensure your tax and banking details are up to date in your InMobi account to avoid any delays.  

For more information or to track the status of your payments, visit the Payments section in your InMobi account dashboard. If you experience any delays or have further questions, Contact Us.

5. What is the payment cycle?

InMobi processes payments 60 days after the end of the month in which earnings are generated. For example, January earnings are paid by the end of March and payment is received by the first week of April. Ensure your account meets the minimum payout threshold ($300 for wire and $ 50 for PayPal, $50 for India publisher) and that your payment details are up to date to avoid delays.  

6. What are the bank charges?

Bank charges vary based on your payment method and bank policies. InMobi does not cover these charges, so ensure you check with your bank for applicable fees, such as wire transfers or currency conversion charges. 

7. Why is there a discrepancy in my final payout?

Discrepancies in your payout may occur due to: 

  • Bank Charges: Fees deducted by your bank for processing payments. 
  • Currency Conversion: Fluctuations in exchange rates if payments are made in a different currency. 
  • Adjustments: Deductions for invalid traffic, fraud detection, or policy violations. 

For detailed information, review the Payments section in your dashboard or Contact Us.

8. Why I am unable to update my bank details?

You may be unable to update your bank details due to: 

  • Verification Pending: Updates are restricted until your previous information is verified. 
  • Payment Processing: Changes are blocked while a payment is being processed. 
  • Incomplete Information: Ensure all required fields are correctly filled. 

For further assistance, Contact Us.

9.How do I view my earnings history?

Please follow the below steps to view your earning history

  • Login to your account.
  • Click on the drop-down next to your username.
  • Select Finance Tab > My Earnings.
  • Earnings History is available for daily, month-to-date, and year-to-date time periods.
  • Download Transaction History to a CSV or Excel file by clicking the export icon.

Note

The maximum amount you can enter here is the value of your current pending earnings.

If you have additional queries or need further assistance, Contact Us

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 06 Mar, 2025

Ads.txt/sellers. json

1. Why has my ads.txt not been verified yet?

Your ads.txt may not be verified due to:

  • Incorrect Implementation: Ensure the file is hosted at the root of your domain.
  • Propagation Delay: Verification can take up to 72 hours.
  • Syntax Errors: Check for formatting issues in the file.

For guidance, see InMobi Support Portal or Contact Us.

2. I reached 10k ad requests, still not verified?

Verification requires both 10k ad requests and the correct implementation of your ads.txt file. Ensure:

  • The ads.txt file is correctly hosted at the root of your domain.
  • There are no syntax or formatting errors.

If the issue persists, Contact Us.

3. Why should I update the reseller or ads.txt lines?

Updating reseller or ads.txt lines ensures: Ad Authorization: Advertisers can verify you as an authorized seller. Higher Revenue: Proper implementation improves demand and fill rates. Policy Compliance: Aligns with industry standards like Ads.txt and App-ads.txt. For more information, see App.ads.txt.

4. Which lines are mandatory?

For ads.txt, ensure you include all lines provided by InMobi exactly as instructed. These lines authorize InMobi to sell your inventory and comply with industry standards. Missing or incorrect lines may impact monetization.

5. Why is my sellers.json not updated on the InMobi domain?

Your sellers.json may not be updated due to:

  • Pending Verification: Your account details are still under review.
  • Incomplete Information: Ensure your payment and business details are accurate.

If you have additional queries or need further assistance,  Contact Us.  

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 06 Mar, 2025

Mediation

1. Unable to add InMobi as a Bidder? Why?

You may be unable to add InMobi as a bidder due to:

  1. Integration Issues: Ensure your mediation platform supports InMobi.
  2. Incorrect Credentials: Verify your InMobi account details and API keys.
  3. Pending Setup: Complete all required steps in the integration process.

For more information, see Third Party Mediation Platforms or Contact Us.

2. What is the difference between Admob Bidding and Admob Waterfall? How do I set it up?

  • AdMob Bidding: A real-time auction where all demand sources, including AdMob, compete simultaneously for ad space, leading to higher fill rates and revenue.
  • AdMob Waterfall: A sequential setup where demand sources are prioritized, and each network is given a chance to fill the ad space in order. It may result in lower revenue as higher-paying bids might be missed.
  • Setting Up:
    • For AdMob Bidding
      1. Integrate the AdMob SDK with your app.
      2.  Add InMobi as a bidder and configure the setup in the mediation platform
    • For AdMob Waterfall
      1. In your AdMob account, go to the Mediation section.
      2. Create a new Waterfall and set priorities for each network.

3. Why is my GOB account not approved yet?

Your GOB account may not be approved due to:

  1. Incomplete Information: Ensure all required details on your profile are correctly filled in.
  2. Pending Review: Approval can take up to a few business days, depending on the verification process.
  3. Policy Violations: Ensure your account complies with InMobi's policies and guidelines.

For assistance, Contact Us.

4. Where can I find my GOB publisher id?

Your GOB publisher ID can be found in your InMobi account dashboard. To locate it:

  1. Log in to your InMobi account.
  2. Navigate to the GOB section.
  3. Your publisher ID will be listed in the Account Settings or Integration Settings area.

For more information, see Google’s Open Bidding, or for assistance, Contact Us.

5. Can I add InMobi to other mediation platforms?

Oh yes, Absolutely! InMobi supports major mediation platforms like Google AdMob, AppLovin's MAX, Unity LevelPlay, and Digital Turbine, to name the major ones. For directions on integrating each mediation provider, see our integration guidelines page.

6. What are the best practices for ad mediation?

Here’s a quick guide on some of the best practices in ad mediation.

7. Where can I download the InMobi SDK required to work with Google, MoPub, or other mediation platforms?

Visit the Download SDK page to get the latest iOS or Android SDK or learn more about third-party ad mediation platforms supported by InMobi here.

If you have additional queries or need further assistance, Contact Us.   

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 06 Mar, 2025

SDK

1. What are the benefits of integrating InMobi SDK?

  • Featherlight, robust SDK with the largest brand and performance demand connections
  • Built-in Header Bidding (Audience Bidding) and Unified Auction technology
  • Easy plug-and-play integration
  • Crash analytics with proactive logging
  • Built-in ad quality controls
  • Integrated with MOAT and OM SDK viewability
  • True HD buffer-free video viewing experience

2. Which devices does InMobi support?

InMobi supports only Android and iOS devices.

3. Where can I download the InMobi SDK?

You can download the InMobi SDK for Android and iOS devices from here.

4. How do I sign up with InMobi?

You can sign up with InMobi here. If you face trouble signing up, please sign out of the account, clear your browsing data and try again. If you still face any issues, please contact sales@inmobi.com

5. I need help with integrating the SDK, what do I do?

Our team is here for you 24/7. Feel free to write to sales@inmobi.com or to your dedicated InMobi

6. What is the size of InMobi SDK?

InMobi’s latest SDK is robust and featherlight ensuring that your app remains unbloated and performs efficiently to deliver the best user experience. Details on the SDK specifications including its size can be found here.

7. Which frameworks does InMobi support?

InMobi currently supports Cocos2dX and Unity. Please note that we no longer support Cordova.

8. Does InMobi support VAST?

VAST is an IAB specification which defines the mechanism to render a video in a publishing environment. InMobi currently supports VAST 4.0 on different platforms.

9. Does InMobi have app guidelines that I must adhere to?

Yes, publishers who choose to work with InMobi are required to adhere to the following InMobi guidelines. If you fail to comply with these guidelines, we may disable your InMobi account.

This contract shall commence on the date on which you accept these conditions upon your registration with InMobi and shall remain in full force and effect unless and until terminated by either Party in accordance with the terms of the Contract.

10. Why is the InMobi SDK being released in Kotlin and Swift over Java and Objective C?

We have explained the reasons for opting for Kotlin and Swift in our blog.

11. What is the benefit of moving to the InMobi SDK in Kotlin and Swift?

We will be releasing our latest monetization and addressability features only on the InMobi SDK available in Kotlin and Swift SDKs from September 2023 onwards. You will not be able to access our latest features if you are on the InMobi 10.1.X SDK versions.

12. How do I migrate to the InMobi SDK 1.5.X in Kotlin and Swift?

If you are integrated with InMobi via a mediation platform, upgrade to the latest adapter provided by your mediation platform. You can find more details on our blog. If you are integrated with the InMobi SDK via direct integration, follow our migration guide for iOS and Android.

13. What is the benefit of moving to the InMobi SDK in Kotlin and Swift?

We will be releasing our latest monetization and addressability features only on the InMobi SDK available in Kotlin and Swift SDKs from September 2023 onwards. You will not be able to access our latest features if you are on the InMobi 10.1.X SDK versions.

14. How Do I Find My Publisher Reporting API Key?

To find your Publisher Reporting API key:

  1. Log in to your InMobi account.
  2. Go to the APIs section under Account Settings.
  3. Select Reporting API and your API key will be displayed there.

If you don't have access, ensure your account has the required permissions or Contact Us for assistance.

15. What ad formats does my SDK support?

The InMobi SDK supports a variety of ad formats, including:

  • Interstitial Ads
  • Banner Ads
  • Native Ads
  • Rewarded Video Ads

To integrate these formats, ensure you have the latest version of the InMobi SDK in your app.

16. Why are my fill rates not improving?

Low fill rates may be due to:

  • Insufficient Demand: Ensure your ad units are set up correctly and targeting high-demand regions.
  • Ad Unit Size: Consider using larger ad formats to increase ad availability.
  • Mediation Setup: If using mediation, check if InMobi is correctly integrated and prioritized.
  • Invalid Traffic: Check for invalid or non-human traffic that may be affecting fill rates.

17. Do I have to finish SDK integration to finish up the setting up, so that I can do third-party mediation?

Yes, the SDK integration must be completed before setting up third-party mediation. The InMobi SDK is essential to enable the flow of ad requests and responses, allowing third-party networks to be integrated into your mediation setup. Once the SDK is integrated, you can proceed with configuring mediation to maximize revenue from multiple demand sources.

18. What are the common error reasons and when to reach out to support?

  • Invalid Ad Unit ID: Double-check that your ad unit IDs are correctly implemented in the code.
  • SDK Integration Issues: Ensure you're using the latest version of the InMobi SDK and have completed all integration steps.
  • Low Fill Rates: Check your ad targeting settings, ad unit size, and network priorities in mediation.
  • Payment Discrepancies: Verify your account details and payment settings.
  • Ads Not Showing: Ensure there’s sufficient demand, and check for issues with your network integration or ad inventory.

If you have additional queries or need further assistance, Contact Us.    

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 06 Mar, 2025

API

1. What is the currency unit of earnings?

The earnings are reported in US dollars.

2. What is the upper limit on the number of requests per session?

There is no limit on the number of requests per session.

3. What is the upper limit on the number of sessions in a day?

You can fetch a maximum of 15 sessions in a day.

4. In case of issues or downtime, what is the usual ETA for accessing the repaired data?

Once the issue is detected, the usual ETA is 24-48 hours.

5. What is the time period of data delay?

The usual data delay is 4-5 hours. Also, InMobi follows the GMT.

6. How far back can publishers retrieve data?

6 months.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 11 Mar, 2025

Prebid.js

Introduction

InMobi provides a transparent bidding adapter for Prebid.js (client-side integration) and Prebid Server (server-to-server integration). As a Prebid-approved bidder, InMobi continuously updates its adapter with new features and enhancements.

Prerequisites

  • InMobi's Prebid.js adapter is available on Prebid.js v9.20 and above.
  • Your website must be integrated with Prebid.js. For setup details, see the Prebid.js documentation.
  • Download the InMobi Prebid.js Adapter:
    1. Go to Customize and Download Prebid.js page.
    2. Select InMobi as the Bidder Adapter.
    3. Click Get Prebid.js to download the file.

Configure InMobi for Prebid.js

  1. Create an InMobi Account: Sign up for an InMobi Supply Side Platform (SSP) account. For more information, see Create InMobi Account. If you already have an InMobi account, use the same credentials to monetize your web properties.
  2. Add Your Website: Add your website(s) to the InMobi platform. For more information, see Add Inventory.
  3. Create Placements:
    1. Search for the website where you want to create a placement.
    2. Click +Add a Placement.
    3. Select the ad unit (e.g., Banner, Video, or Native).
    4. Name your placement.
    5. Enable Audience Bidding by turning the toggle ON.
    6. From the Partner dropdown, select Prebid.
    7. Click Create Placements.

Note

For each website, create at least one placement per ad unit (Banner, Video, and Native).

Add InMobi to Your Prebid Setup

To configure InMobi in your Prebid.js setup:

  1. Configure the placement ID on InMobi’s adapter. For more information, see InMobi Prebid Bidder Page.
  2. Map the InMobi Placement ID to the corresponding ad format and website in your Prebid.js configuration. Start sending requests from your Prebid.js setup to InMobi.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 12 Feb, 2025

Analytics - Definitions and Core Concepts

This topic explains dimensions, metrics and filters such as visits, sessions/consent screen displays, and consent status on the InMobi CMP Analytics dashboard. 

Session/Consent Screen Display

Session/Consent Screen Display is an instance where a user is prompted through a popup screen to manage their data privacy preferences when they access a website or application. This screen typically appears during the initial visit or when a new consent action is required due to policy changes, regulatory updates, or session expiry.

For example, when a user visits a website for the first time. The CMP displays a consent screen to manage privacy settings. It would be counted as one session/consent screen display. 

Visit

A Visit occurs whenever a user interacts with a website or application. 

For example, a visit begins when a user accesses a website or app for the first time. 

Additionally, if a user visits a website or an app, and comes back after 30 mins of inactivity, this would count as another visit.

In a third scenario, if a user visits a website or app, leaves, and returns the next day (UTC) of their previous visit, this would also be counted as a separate visit.

Consent States

Consent States are reflected differently for each regulation such as GDPR, CCPA, and GBC in InMobi CMP. The following table shows how you can select consent states for each regulation for analytics purposes.

  GDPR CCPA GBC
Accept All

Under Dimension, select Regulation GDPR.

Under Metric, select Accept All.

Under Dimension, select Regulation CCPA.

Under Metric, select Accept All.

Under Dimension, select GBC.
Reject All

Under Dimension, select Regulation GDPR.

Under Metric, select Reject All.

Under Dimension, select Regulation CCPA.

Under Metric, select RejectAll.

Under Dimension, select GBC.
Partial Accept

Under Dimension, select Regulation GDPR.

Under Metric, select Partial Accept.

Under Dimension, select Regulation CCPA.

Under Metric, select Partial Accept.

Under Dimension, select GBC.
Bounce

Under Dimension, select Regulation GDPR.

Under Metric, select Bounce.

Under Dimension, select Regulation CCPA.

Under Metric, select Bounce.

Under Dimension, select GBC.

 Consent or Pay Enabled

Consent or Pay Enabled is a dimension and filter provided by InMobi CMP allowing you to view analytics only for the sites for which Consent or Pay has been enabled by you. This is a convenient option as it saves you the time of selecting each site while generating reports. 

Paid User

Paid user is a metric enabling you to view analytics for only paid users and understand their user behavior and patterns for your site. 

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 20 Jan, 2025

Android

This document outlines common errors encountered during Android SDK implementation, along with their causes and solutions. It aims to help developers troubleshoot issues quickly and ensure seamless integration.

1. Errors in oncmpError callback

One of the callbacks within ChoiceCMPCallback is onCmpError, which gets fired whenever there’s an issue in CMP. This function has a parameter: error which contains information about the error that has occurred.

Here’s a list of error messages that error can have:

Message Possible Reasons Actions
No connection found to load CMP There is no internet connection on the device. Check internet connection on the device. Make sure the app is given permission to use the network.
Given pCode is invalid The PCode is invalid. Look for any spaces. Make sure the PCode is copied from the portal without the “p-”.
Could not find configuration for this packageId. Have you set it up in InMobi Choice web portal? The combination of pcode and packageId is not found on the portal. Either pcode or packageId is invalid. Check pcode and packageId provided during initialization. Check the spaces in packageId. Make sure packageId is a valid entry in portal.
SDK must be initialized first by calling startChoice method Trying to call cmp api before initializing sdk.   Initialise SDK first by calling startChoice method. Wait for the onCmpLoaded callback before calling any API.
An error has occurred when CMP tried to execute a network call Some exception occured while doing a network call. If the issue persists, contact InMobi
An invalid json format has been found when CMP tried to read the data There is some issue with the json response format returned after doing a network call. If the issue persists, contact InMobi
Couldn't load publisher logo, url is empty or it doesn't return an image The logo on the GDPR screen was not loaded. Either the URL was empty or there was no image on the given URL. If the logo is to be displayed on the GDPR consent screen, make sure the image URL on the portal is not empty and the URL is valid.
An error has occurred when a TCModel property was tried to be set There was some error while setting TCModel property. Make sure cmp is initialized properly. If the issue persists, contact InMobi.
An unexpected value was received from GeoIp service Occurs while setting default CCPA consent. Value received for location from geoip is invalid. If the issue persists, contact InMobi.
An unexpected error has occurred when CMP tried to do a network call Unknown exception occured while trying to do a network call. Some unknown exception occurred during network call. If the issue persists, contact InMobi.
CFileNotFoundException has been captured when CMP tried to do a network call FileNotFound Exception occured while trying to do a network call. If the issue persists, contact InMobi
An invalid URL has been passed The URL passed to the privacy policy link of the GDPR screen is invalid Make sure that the URL given for the privacy policy link under the GDPR section is valid, check for spaces in the field.
Some error occurred while saving consent There was some issue in saving MSPA consent. If the issue persists, contact InMobi
Init screen texts are missing Some screen texts are missing and not configured properly on the portal. Check all the fields are filled and saved properly on the portal.

 2. Errors that appear in console

Debug and Error Logs are logged in the console to track any misbehavior or errors in SDK. Here's a list of Error Logs and their description:

Message Possible Reasons Actions
The value is too large to be encode into the number of bits passed Internal system behaviour related log caused due to long encoding failure Report to InMobi
Invalid bit length Internal system behaviour related log caused due to decoding failure Report to InMobi
Some unknown error occurred Some unknown error occurred while saving MSPA consent. Check the network connection and try again. If the issue still persists, contact InMobi.
Some error occurred while saving consent There was some error while saving MSPA consent. Check the network connection and try again. If the issue still persists, contact InMobi.

3. Info messages that appear in console

Info messages are logged in console to convey meaningful messages in SDK. Here is a list of those messages and description:

Message Possible Reasons
Either US Privacy is not applicable or disabled for the current location Either US privacy is not applicable for current region or is disabled from portal.
This consent is not available for the given country Regulation applied is not valid for the current country.
GDPR is not applicable for this scenario Either GDPR is not applicable for current country or is disabled from portal.
Either GBC is not applicable or disabled for the current location GBC is not applicable for current region or is disabled from portal.
Auto pop-up is disabled and not applicable for this region because CCPA is enabled for this region Auto pop-up is disabled and will not be applicable even if enabled as CCPA is applicable for this region. Auto pop-up is shown if MSPA/GDPR is applicable.
Auto pop-up is not applicable for this region as CCPA is enabled CCPA is applicable for the current region so auto pop up will not be displayed. Auto pop-up is shown if MSPA/GDPR is applicable.
Auto pop-up is disabled so no dialog will be shown MSPA auto pop-up is disabled from the portal so no dialog will be shown automatically.
MSPA is applicable but no need to re-trigger the screen MSPA is applicable and consent is present

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 20 Jan, 2025

iOS

This document outlines common errors encountered during iOS SDK implementation, along with their causes and solutions. It aims to help developers troubleshoot issues quickly and ensure seamless integration.

1. Errors in cmpDidError delegate

One of the delegate functions within ChoiceCMPDelegate delegate is cmpDidError which gets fired whenever there’s an issue with the initialisation due to any reason. This function has a parameter: error which contains information about the error occurred.

Here’s a list of error messages that error.localizedDescription with have:

Message Possible Reasons Actions
The data couldn’t be read because it is missing. There’s an issue in the configuration on the portal. Check all the fields are filled and saved properly. Also check if the same bundle identifier is used in the App and on the portal.
Malformed portal configuration URL, check pCode and bundleIdentifier Either PCode or bundle identifier is not correct. Look for any spaces. Make sure the PCode is copied from the portal without the “p-”.
Malformed app-config.json file at NewPremiumUILabels level Some of the key data is missing or incorrect in translations If the issue persists, contact InMobi
It is not known yet if GDPR Applies so this value may be misleading.  Always check `gdprAppliesIsKnown` first If you are using doesGdprApply (in Objc) before initialisation, you may encounter this error. Check if the initialisation is done by implementing the cmpDidLoad delegate and then check this value.
Unsupported language The selected language or device language is not supported. If the issue persists, contact InMobi
Could not find rootView controller. Make sure your rootViewController is attached to a keywindow before starting CMP CMP couldn’t find the ViewController. Make sure the SDK is properly setup and configured before initialisation.
CMP has not loaded yet, run startChoice with the pCode first. ForceDisplayUI is called before initialisation. Wait for the cmpDidLoad callback before calling the API
US Regulation is not configured in the portal showUSRegulations has been called but CCPA / MSPA not configured properly on the portal Make sure the configurations are correct from the portal
CCPA is not configured in the portal. ShowCCPA is called but not configured from the portal Make sure CCPA is configured properly from the portal
Could not find rootView controller. Make sure your rootViewController is attached to a keywindow before starting CCPA CMP couldn’t find the ViewController. Make sure the SDK is properly setup and configured before initialisation.
Could not find rootView controller. Make sure your rootViewController is attached to a keywindow before showing Google Basic Consent CMP couldn’t find the ViewController. Make sure the SDK is properly setup and configured before initialisation.
Color named: {key} is malformed with value: {color string provided}.  Color must start with #") The colour string value provided during the initialisation is incorrect. Check for all the provided colour values on initialisation. The colour values string must start with “#” character followed by three or six digits colour code.
Could not find MSPA Viewcontroller CMP couldn’t find the ViewController. Make sure the SDK is properly setup and configured before initialisation.

 2. Errors that appear in console

Debug and Error Logs are logged in console in order to track any misbehaviour or errors in SDK. Here's a list of Error Logs and their description:

Message Possible Reasons Actions
Error encoding the object Internal system behaviour related log caused due to data encoding failure Report to InMobi
MSPA Jurisdiction not found Missing values in configuration file Check the MSPA related values in the portal and save properly.
Region not found Missing values in configuration file Check the network connection and if the issue still persists, report to InMobi
Error loading iabgpp Internal error in GPP encoding Report to InMobi
Failed to decode GoogleVendor data Invalid google vendor format encountered while retrieving from storage. If occurred during testing, reinstall the app and if the issue persists, report to InMobi
Could not find the geo location One of the internal configurations failed to download Check the network connection and try again
Error downloading GVL version. Using Cache Global vendor list failed to download. Check the network connection and try again. If the issue still persists, contact InMobi
Error decoding global vendor list There’s some inconsistencies with the newly downloaded GVL Report to InMobi
No locations found Missing values in configuration file Check the MSPA related values in the portal and save properly.
Current geo location not found One of the internal configurations failed to download Check the network connection and try again
Failed to load custom font There’s some issue when using the custom font provided during the initialisation. Check if the font is properly added to the bundle and in Info.plist as per the Apple documentation. Also check if the correct font name is passed in the initialisation

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 20 Jan, 2025

Overview

This topic explains the concept of Concept or Pay and how publishers can honor end-user consent preferences by giving them a free opt-out option to limit data tracking.

What is Consent or Pay?

“Consent or Pay" is a concept where users are given a choice to either provide consent for data collection or pay to access content without consenting to data tracking or advertising. The three main options are:

  • Consent: This is the option for users to allow the collection, processing, and sharing of their personal data in exchange for free access to a website or service. CMPs typically collect and store users' consent choices for compliance with privacy regulations, such as GDPR or CCPA. By providing consent, users allow consent for different data processing purposes as selected by the publisher on their and their vendor’s behalf. 
  • Pay: This option is an alternative for users who prefer to completely opt out of any data processing. Instead of consenting to data collection, users can choose to pay a fee for an ad-free experience or access to premium content without any data tracking. This allows users more control over their privacy.
  • Free Partial Accept: The European Data Protection Board (EDPB) has released an opinion citing that publishers must provide a “Free alternative to opt-out of personalized advertising”. Under this, InMobi CMP enables a Free partial accept option which allows end-users to opt out of personalized ads if they so choose. This way, InMobi’s solution remains compliant with EDPB's opinion on this topic.

Developments so far 

In November 2023, Meta introduced a paid subscription for Instagram and Facebook users who don't want to be tracked. This was referred to as the 'Pay or okay' model. ​

In response to this, the European Data Protection Board (EDPB) has published an opinion stating the following:​

“In most cases, it will not be possible for large online platforms to confront users only with a binary choice”.​

A free alternative should be given without behavioral advertising, e.g. involving the processing of less or no personal data.​

The scope of this opinion is for “large online platforms“ (evaluated on a case-by-case basis)​.

Consent or Pay 2.0

Consent or Pay 2.0 emerged after the EDPB's guidance to offer users a free opt-out of personalized ads.

Consent or Pay 2.0 Checklist 

  • Partial Accept is mandatory (Reject all will be behind pay-wall). Users will be able to opt out of personalised ads.​ This is the main differentiator from the 1.0 version of Consent or Pay which only had a binary choice.
  • At least one non-personalized purpose should be available to empower users to opt out of personalized ads​. This is also a check maintained by InMobi CMP on behalf of publishers. 
  • Multiple implementation options for publishers:​
    • Option 1: Publishers can use CMP’s consent call-backs to re-direct the user themselves based on the consent state (Accept All, Reject All, etc).​
    • Option 2: Publishers can simply provide the re-direction URLs (web) in the CMP which does the re-direction​
  • Balance publisher control vs. standardization for button copy (button labels), consent screen text, and language translations.​
  • Provide publishers control to implement consent or pay in only certain countries but not in other countries.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 20 Dec, 2024

Implementation

This documentation outlines implementing the Consent or Pay model with InMobi CMP. InMobi CMP enables publishers to provide a free option to opt out of data tracking and receiving personalized ads with the Partial Accept option. For more information on Consent or Pay, see Overview.

Portal Configuration

  1. To start, login to your InMobi CMP account here.
  2. On the Properties page, select the property you wish to enable Consent or Pay for, and click the edit icon.

  3. On the General Settings page, scroll down to ENABLE CONSENT AND PAY and select Yes.

  4. On the pop up, select the countries where you want to implement Consent or Pay and the redirection URL settings.

    Note

    Consent or Pay will only be implemented for the selected countries. For the remaining countries, GDPR will apply.

  5. Select OK to save your settings.

Themes 

Configuring Themes settings allows you to manage the look and feel of the consent screen.

  1. Navigate to the Themes tab on the top of the page and click the edit icon next to the desired property.

  2. Under Configure your theme, go to Consent and Pay Settings.

  3. Choose the languages in which you wish to translate the consent screen and button texts.

  4. Next, select the layout for your screen and buttons. InMobi CMP offers two layouts with the 'Subscribe' and the 'Subscribe and Login' buttons respectively.

  5. Edit the button and consent screen texts as per the languages chosen earlier.

    Note

    Certain sections of the CMP banner text (L1, L2, L3, and L4) must remain unchanged to ensure compliance with IAB-TCF guidelines. However, you can add content before, after, or between these sections without requiring approval. If you attempt to edit these sections, a structured review request process will be triggered to ensure flexibility for you to have desired content but as per IAB guidelines.

  6. To request a text change, click Need Changes? Request here. Add details of the required text changes and reason for change. 

    Note

    Once the request is raised:

    • You will receive an acknowledgment via email and a unique Ticket ID will be generated.
    • You cannot raise another request while one is in progress.
    • If they text is approved, you cannot raise another request for the next 15 days.
    • The advanced customizations will remain unaffected during the review process and will continue to have default text/settings.
    • You will see the updated consent banner text once it is updated from the backend after approval.
  7. Click View Submitted Requests to view requests and their status.

  8. Add your required footer links in the Custom Footer Links field.

  9. Click Save Theme on the top of the page to save your settings.

SDK Implementation

 Android

For Android implementation and SDK-related changes, see Android.

iOS

For iOS implementation and SDK-related changes, see iOS

Web

For Web APIs, see Handling Consent APIs.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 22 Apr, 2025

APIs

This document details the APIs to enable Consent or Pay on your app or website.

Android

  1. To provide the login/subscription status to the CMP, use the following API with the appropriate value:

    Kotlin

    ChoiceCmp.setUserSubscriptionStatus(SUBSCRIPTION_STATE)
    

    Java

    ChoiceCmp.setUserSubscriptionStatus(SUBSCRIPTION_STATE);
    

     

    Note

    We recommend you use this API:

    • Just before initialising the SDK.
    • Once the login/subscription process is completed through the CMP. This enables the CMP to know the new status.
  2. The method onActionButtonClicked will be triggered when the user clicks any of the Action buttons. The parameter actionButton will contain the info about whether it’s ActionButton1 or ActionButton2.

    Kotlin

    override fun onActionButtonClicked(actionButton: ActionButton) {
       /* code */
    }
    

    Java

    @Override
    public void onActionButtonClicked(@NonNull ActionButton actionButton) {
        // code
    }
    

iOS

Note

Ensure consent or pay is enabled in the portal and applicable for the country. To know more about Consent or Pay, see Overview.

  1. To provide the login/subscription status to the CMP, use the following API with the appropriate value: 

    Objective-C

    [[ChoiceCmp shared] setUserLoginOrSubscriptionStatus:(BOOL)];
    

    Swift

    ChoiceCmp.shared.setUserLoginOrSubscriptionStatus(Bool)
    

     

    Note

    This API is recommended to be used:

    • Just before initialising the SDK (calling startChoice API).
    • Once the login/subscription process is completed through the CMP. This updates the status to the CMP.

    Objective-C

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        // Initialise InMobiCMP
        [[ChoiceCmp shared] setUserLoginOrSubscriptionStatus:true];
        [self startChoice];
        return YES;
    } 
    

    Swift

    @main
    class AppDelegate: UIResponder, UIApplicationDelegate, ChoiceCmpDelegate, CCPADelegate {
        func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
            ChoiceCmp.shared.setUserLoginOrSubscriptionStatus(true)
            ChoiceCmp.shared.startChoice(pcode: "< YOUR PCODE >", delegate: self)
            return true
        }
    } 
    
    

     

  2. Implement the following delegate function to receive the ActionButtons update.

    Objective-C

    (void) didReceiveActionButtonTapWithAction:(enum ActionButtons)action {  
      switch (action) { 
        case ActionButtonsAction1: 
        // Your implementation here.. 
        break;
        
        case ActionButtonsAction2: 
        // Your implementation here.. 
        break; 
        
        default:
        break; 
        } 
    } 
    

    Swift

    func didReceiveActionButtonTap(action: ActionButtons) {
      switch action {
        case .action1: 
        // Your implementation here..
        
        case .action2:
        // Your implementation here.. 
        } 
       } 
    
    
  3. The method didReceiveActionButtonTap will be triggered when the user clicks any of the Action buttons. The parameter actionButton will contain the info about whether it’s ActionButton1 or ActionButton2.

    Objective-C

    (void) didReceiveActionButtonTapWithAction:(enum ActionButtons)action {  
      switch (action) { 
        case ActionButtonsAction1: 
        // Your implementation here.. 
        break;
        
        case ActionButtonsAction2: 
        // Your implementation here.. 
        break; 
        
        default:
        break; 
        } 
    } 
    

    Swift

    func didReceiveActionButtonTap(action: ActionButtons) {
      switch action {
        case .action1: 
        // Your implementation here..
        
        case .action2:
        // Your implementation here.. 
        } 
       } 
    

     

    Note

    If the user has consent or pay enabled, moves to more options screen, then rejects all the consents, and then saves and exits, it will be treated as action button 1 press, and the same delegate will be called with ActionButton value as action1.

Web

Signaling User Subscription Status to the CMP

To indicate whether the user is subscribed, the publisher can set a JavaScript variable in the global window object. This can be used by the Consent Management Platform (CMP) to determine whether or not to display the consent popup.

Method:

window.__user_status = 'subscribed';
  • If the user is subscribed, the CMP will detect this signal and will not display the consent popup.
  • Additionally, the CMP will automatically store the consent status as reject since the user has already made a subscription decision.

Workflow:

  1. The publisher sets window.__user_status = 'subscribed'; when a user is confirmed to be subscribed.
  2. The CMP reads this signal upon initialization.
  3. If the user is subscribed (i.e., window.__user_status === 'subscribed'), the CMP skips the consent popup display.
  4. The CMP registers the consent status as "reject" (no further consent required).

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 22 Apr, 2025

Advanced Customization

Advanced customization lets you modify the text for your GDPR consent screen and buttons in different languages.

Advanced Customization Settings

  1. Login to your InMobi CMP account here
  2. Navigate to the Themes tab on the top of the page and click the edit icon next to the desired property.

  3. Under Configure your theme, go to Advanced Customization.

  4. Choose the languages in which you wish to translate the consent screen and button texts.

  5. Under Customise Content, edit the button and consent screen texts as per the languages chosen earlier.

    Note

    Certain sections of the CMP banner text (L1, L2, L3, and L4) must remain unchanged to ensure compliance with IAB-TCF guidelines. However, you can add content before, after, or between these sections without requiring approval. If you attempt to edit these sections, a structured review request process will be triggered to ensure flexibility for you to have desired content but as per IAB guidelines.

  6. To request a text change, click Need Changes? Request here. Add details of the required text changes and reason for change. 

    Note

    Once the request is raised:

    • You will receive an acknowledgment via email and a unique Ticket ID will be generated.
    • You cannot raise another request while one is in progress.
    • If they text is approved, you cannot raise another request for the next 15 days.
    • The advanced customizations will remain unaffected during the review process and will continue to have default text/settings.
    • You will see the updated consent banner text once it is updated from the backend after approval.
  7. Click View Submitted Requests to view requests and their status.

  8. Add your required footer links in the Custom Footer Links field.

  9. Click Save Theme on the top of the page to save your settings.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 09 Apr, 2025

Introduction

Ads.txt (Authorized Digital Sellers) is an IAB Tech Lab initiative. It is a simple, flexible, and secure method that you can use to publicly declare the companies you authorize to sell your digital inventory. 

During the real-time bidding process, the ad monetization space saw fraud in ad inventory offered to buyers with a misrepresented label and account. Typically, the webpage's domain, or the mobile app's ID, has been falsified to look like a site or app they do not have authorization to sell. Ads.txt and App-ads.txt enable buyers to spend only programmatic dollars through channels explicitly trusted and authorized by the originating publisher.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 18 Nov, 2024

Set up An Ads.txt File for Your Website

Create ads.txt File at the Root level of Your Website

Create your ads.txt file using the following file format and data record:

File Format

Data encoding details:

  • Use 'text/plain' as the HTTP content type; treat other types as errors.
  • Core syntax: Comma-separated format with three fields per line.
  • Records are separated by an end-of-line marker.
  • Records follow a specific line format.
    • &lt;FIELD #1&gt;, &lt;FIELD #2&gt;, &lt;FIELD #3&gt;, &lt;FIELD #4&gt;
      placeholder.example.com, placeholder, DIRECT, placeholder
Field Name Mandatory/Optional Description
Field #1 Domain name of the advertising system Mandatory The canonical domain name of the SSP, Exchange, Header Wrapper, and so on that bidders connect to.
Field #2 Publisher’s Account ID Mandatory The identifier associated with the seller or reseller account within the advertising system in field #1.
Field #3 Type of Account/Relationship Mandatory Indicates the type of account.
‘DIRECT’ indicates that the Publisher directly controls the account. This means a direct business contract between the Publisher and the advertising system.
‘RESELLER’ indicates that the Publisher has authorized another entity to control their account and resell their ad space.
Field #4 Certification Authority ID Optional An ID that uniquely identifies the advertising system within a certification authority (this ID maps to the entity listed in field #1).

Add Your Personalized Code Snippet

For the ads.txt setup, you must ensure to:

  • Add business/payment info to generate entries. For more information, see Payment Settings.
  • Use InMobi's personalized ads.txt entries.
    • Inmobi's line: This a mandatory line to be included in your ads.txt file to authorize Inmobi to sell your inventory.
    • Priority lines: This list includes the above mandatory line and the reseller lines to help you achieve optimal monetisation through Inmobi.
    • Maximum lines: This list includes Inmobi's line and all the reseller lines suggested by Inmobi to maximize your earning potential on Inmobi's platform.
  • Append entries to your ads.txt file.

Follow the instructions below to get your personalized ads.txt entries, which include your InMobi payment ID:

  1. Log in to InMobi.
  2. Navigate to Inventory &gt;&gt; ads.txt.
  3. Scroll down and download the ads.txt file.
  4. Post the file in your website's root directory.
  5. Ensure correct formatting and line breaks after updating InMobi’s entries into your ads.txt file.

Publish ads.txt File on your Website

InMobi's ads.txt crawler locates your file using the website URL provided for that inventory on the dashboard. Per ads.txt specs, the crawler checks the file at:

  • https://&lt;&lt;hostname&gt;&gt;/ads.txt
  • http://&lt;&lt;hostname&gt;&gt;/ads.txt

Determine the hostname from your website URL. It's the website's root domain, as explained below.

Refer to the table for examples where the InMobi crawler checks for an ads.txt file based on different website root domains.

If the website is: Crawler looks in the following order:
https://example.com/game https://example.com/ads.txt
http://example.com/ads.txt
http://help.example.com/game https://example.com/ads.txt
http://example.com/ads.txt

The ads.txt specification outlines rules for root domains and subdomains. Crawlers will explore up to five redirections within a root domain and one outside the root domain.

To verify correct publication, ensure the ads.txt URL displays its content when accessed through your web browser. If it is visible in your browser, crawlers will probably locate it successfully.

Ensure Crawlable ads.txt File

Ensure the ads.txt is accessible via both HTTP and HTTPS.

Check Verification Status of ads.txt File

Monitor your ads.txt files in your InMobi account:

  1. Log in at https://publisher.inmobi.com/.
  2. Navigate to Inventory on the left menu.
  3. Select ads.txt.
  4. After you add the ads.txt with seller information, you can view the verification status loading below.

If your file wasn't located or verified, review the details in your InMobi account or explore troubleshooting tips for ads.txt issues.

Note

If you've recently updated your ads.txt file, it may take at least 24 hours for the crawler to display the latest verification status.

First-time Setup Process

Upon creating your account on InMobi and establishing your inventory, access the verification status through Inventory &gt;&gt; ads.txt. Activation of the InMobi crawler occurs once any of the added apps has generated 10 thousand bid requests.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 26 Nov, 2024

Troubleshooting

Verification Status Action Required
X of X sellers are authorized.
The ads.txt file is found and verified. InMobi crawled and verified your ads.txt file.
No action needed
X-Y of X sellers are authorized.
Please include the missing seller entries in your ads.txt file to sell inventory with all of InMobi’s authorized sellers.
Please include the missing seller entries in your ads.txt file to sell inventory with all of InMobi’s authorized sellers. Ads.txt helps prevent ad fraud by making it harder for malicious actors to sell fake ad inventory. Most buyers verify whether the reseller is legitimate and may reject the ad request if the reseller ID is missing in the website's ads.txt file.
0 of X sellers are authorized.
Please include the missing seller entries in your ads.txt file to avoid unintentional revenue loss.
Please include the missing seller entries in your ads.txt file to avoid unintentional revenue loss. Ads.txt helps prevent ad fraud by making it harder for malicious actors to sell fake ad inventory. Most buyers verify whether the reseller is legitimate and may reject the ad request if the reseller ID is missing in the website's ads.txt file.
The redirection URL did not respond properly.
Please ensure that the redirection URL is working properly and the ads.txt file is reachable from root domain.
Please ensure that the format of the headers in the response is correct and the response is sent within 1.5 sec.
The redirection URL did not respond properly.
Ensure that the redirection URL is working properly and the ads.txt file is reachable from root domain.
Ensure that the format of the headers in the response is correct and the response is sent within 1.5 sec.
File not found, the URL responded with invalid MIME type.
The URL responded with an unsupported MIME type in the header.
Please verify that the ‘content-type’ key in header contains ‘text/plain’ as part of it's value.
The URL responded with invalid MIME type. The redirection URL responded with headers in incorrect format.
This issue generally happens when the header (i.e., Content-Type) for any 200 OK response doesn’t contains text/plain As a resolution, please check the headers being returned in response to contain Content-Type one of a headers which returns text/plain as a value for this header.
The ads.txt file was not found because it uses too many redirects.
The IAB recommends no more than five redirects from the ads.txt page on the root domain. (Example: domain.com/ads.txt)
Please move the ads.txt file to within five redirects from domain.com/ads.txt.
InMobi crawler supports upto 5 redirections within the root domain and upto 1 redirection outside the root domain.
Check the number of redirections happening from the initial URL.
Ensure that your web server hosts your ads.txt file or redirects to the correct location when you enter the ads.txt URL shown in your InMobi account. The ads.txt URL shown in your account is the URL InMobi uses to find your file. 
The ads.txt file was not found because it uses too many redirects away from the root domain.
ads.txt files are typically hosted on the root domain. (Example: domain.com/ads.txt)
However, redirects can be common. IAB recommends no more than one redirect away from the root domain.
Please move the ads.txt file to within one redirect from domain.com/ads.txt.
InMobi crawler supports upto 5 redirections within the root domain and upto 1 redirection outside the root domain.
Check the number of redirections happening from the initial URL.
Ensure that your web server hosts your ads.txt file or redirects to the correct location when you enter the ads.txt URL shown in your InMobi account. The ads.txt URL shown in your account is the URL InMobi uses to find your file.

An ads.txt file was not found on the root domain.

Please ensure the ads.txt file is hosted in the correct place on your root domain and setup as per InMobi’s guidelines. Example: https://yourwebsite.com/ads.txt

This usually resembles to a situation when InMobi crawler gets 200 OK response upon crawling, but the body of the response is empty.
To rectify this,

  1. Please validate the response body being returned from the ads txt url.
  2. Set up an ads.txt file and publish it on your website root domain.

Note: If you’ve recently added the ads.txt file in your root domain, allow up to 24 hours for InMobi to detect these changes.

Something went wrong. Please raise a ticket to InMobi support.
The ads.txt file could not be crawled due to an unexpected error.
Something unexpected happened and the file could not be crawled. Please raise a ticket for InMobi support

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 18 Nov, 2024

GPP

This topic explains GPP, its relevance for publishers to stay compliant with different regulations, and how InMobi Ad Exchange supports GPP through SDK and API integrations.

What is GPP?

The Global Privacy Platform (GPP) by the Interactive Advertising Bureau (IAB) is a standardized global framework for managing user consent in digital advertising. For more information, see GPP.

Why is it relevant to U.S. Privacy?

The GPP aims to simplify the conveyance of privacy, consent, and consumer choice signals from websites and applications to ad tech vendors. It empowers advertisers, publishers, and technology vendors to align with regulatory requirements globally. 

The GPP centralizes the management of diverse consent signals from various global privacy jurisdictions and additionally accommodates the Global Privacy Control (GPC), a browser-level signal enabling individuals to opt out of information sale or sharing. The GPP currently supports consent strings for the US Privacy and IAB Europe TCF.

The US Privacy String has been deprecated as of April 30, 2024. The legacy US Privacy signal does not support the four US states privacy signals —VA, CO, CT, and UT. For CCPA, only a few of the required consents are supported. In contrast, the new state signals for the other four states will only be supported by the GPP. 

How does InMobi support GPP?

InMobi Ad Exchange now supports GPP through InMobi SDK and API integrations. 

For SDK integrations, the app can store the GPP strings in Shared Preferences for Android and Managed under the key names for iOS, prescribed by IAB: The key names are : IABGPP_HDR_Version, IABGPP_HDR_Sections, IABGPP_HDR_GppString, IABGPP_GppSID. For more details, see In-App Key Names.

For API integration, you can now send GPP strings via regs → ext → gpp or directly under regs: regs → gpp.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 06 Dec, 2024

InMobi Performance Solution Overview

InMobi Performance Solutions offers machine learning-powered end-to-end mobile performance advertising solutions through: 

  • Programmatic buying on the open internet via InMobi DSP 
  • Direct buying on InMobi’s owned and operated consumer platform, Glance 

The platform supports managed media buying and trading services, offering features such as ad serving, bidding, user signal enrichment, fraud prevention, brand safety, as well as comprehensive reporting and tracking. These services leverage unified audiences across InMobi’s owned and operated content platform, Glance, along with major ad exchanges like Google Ad Exchange, InMobi Exchange, AppLovin, Unity, Vungle, Digital Turbine, PubMatic, Chartboost, BidMachine, and others. 

Glance provides consumer content inventories on the lock screens of popular Android devices, including those from Xiaomi, Realme, Samsung, Vivo, Motorola, and more. 

The InMobi DSP supports the latest attribution frameworks, including SKAN, and integrates with leading Mobile Measurement Partners (MMPs) such as AppsFlyer, Adjust, Branch, Kochava, Singular, Airbridge, and Tenjin. Glance also offers integration with top MMPs to enhance attribution accuracy. 

In addition, the InMobi DSP provides a reporting dashboard and Cost API integration, allowing you to customize and access reports according to your specific needs. 

Note:

Glance performance campaigns are currently available in India and Indonesia.

InMobi DSP topics

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 18 Oct, 2024

Test- GTM Implementation

This page offers comprehensive instructions for implementing the InMobi CMP on a website using Google Tag Manager (GTM). This process uses a custom HTML GTM tag and additional GTM variables and triggers/trigger groups. Before finalizing your GTM setup, complete the site and consent configurations. 

Assumptions

  • You have an InMobi CMP account with your website added and configured.
  • The website where InMobi CMP will be added has GTM installed.
  • This guide assumes that you import the provided GTM container file into your GTM environment to import the custom HTML tag and necessary variables and example triggers. We recommend that you import and merge the provided container into your existing container, creating a new workspace.

Method 1: Add InMobi CMP with GTM (JSON Container Import)

Importing the GTM InMobi Choice TCFv2 container is the most reliable way to add the custom HTML tag, all of the necessary variables, and sample triggers you can use to configure your container for consent management easily.

Download the GTM Container Import - Tag and Variables. Store it in a local directory on your computer.

  1. On the Google Tag Manager user interface, click Admin in the top navigation.
  2. In the Container column, click Import Container.

  3. In the view that opens, click Choose container file.
  4. In the file selector, browse the GTM-CONTAINER-IMPORT.json file in your local directory and select it for importing.
  5. Choose to create a New workspace with the import or to merge it into an existing workspace. It is recommended to create a new workspace for this import.
  6. In the overlay that opens, give the workspace a descriptive name.
  7. Click Save in the top right corner to save the new workspace.
  8. Choose Merge as the import option, and select Overwrite conflicting tags, triggers, and variables.
  9. Verify that the import options are all fine. You can click View detailed changes to see what will happen when you confirm the integration.
  10. Click Confirm when ready to import the container to the new workspace you created.

You have now added all the necessary tags, triggers, and variables to get you started. You will have to configure some variables, and you will have to create new triggers to enable consent management in the container. The next chapter will explain this process in more detail. 

InMobi CMP GTM Configuration

Here are the steps you need to take to configure the InMobi CMP web tag, and to create and modify the triggers and variables you’ll need for the integration to work.

  1. Set the InmobiChoice - UTID constant value. Browse Variables in your container, and open up the InmobiChoice - UTID variable. Set the value to your UTID (pCode).
  2. If subdomains are not selected, this value is False by default. Otherwise, a valid domain should be entered.

Google Advanced Mode Implementation

For publishers using our GTM implementation, there is an option to load default consents immediately after consent initialisation without waiting for page load event. To enable the same, follow the steps below:

  1. Download the updated GTM Container Import file.
  2. Follow the steps to upload this updated GTM container file into your GTM (See Add Choice with GTM (JSON Container Import). If you wish to add this change to your existing InMobi CMP GTM implementation, merge it to your existing workspace as described in step 5. If you overwrite it, you must define the UTID and datalayer push variables again.
  3. Go to Tags Configuration. Open Inmobi Choice GBC Template tag and edit the consent values.
  4. Move the purposes under Granted Consent Types or Denied Consent Types as per your choice and separate them by a comma. Save these values and then the Tag.
  5. Preview the changes and see the default consents defined as in the screenshot below:

     

    Note

    These default values are set by you separately at the GTM level. If you make changes to the default values in the UI, you need to change them here as well.

    Once set, your default consents will load immediately upon consent initialisation without waiting for page load event.

    Note

    This feature is available for only those sites which are using InMobi CMP’s GTM integration. For other integrations, default consents will load only after page load event.

Method 2: Add InMobi CMP with GTM Template

Prerequisites

  • An existing website on the InMobi CMP portal and Google Consent Mode enabled.
  • Google Tag Manager should be integrated into your website.
  1. Navigate to Template in Google Tag Manager. Click Search Gallery inside Tag Templates. Type in InMobi CMP Template. Add to your GTM workspace.

  2. Once you add the template, go to Tags and click New. Select Tag Configuration and choose Inmobi CMP Template under Custom.

  3. Fill in the details required by the CMP Template. If you wish to override the template values with the portal values, select the "Do you wish to override the portal default consents with GTM template?" checkbox.

  4. Once you fill in all the details, add the GTM trigger (Consent initialization – All Pages).
  5. Preview the changes before publishing them.

Enable CCPA Support

  • You must have CCPA enabled on the website add at choice.inmobi.com/protect.
  • You need an html container with a unique ‘id’ attribute set (likely in the footer) where the CCPA message will be appended to on the page.
  • You can learn more about the html id attribute here.
  • This html id can be anything you choose (valid html id value) as long as the container id (on the page) matches the InmobiChoice - CCPA msg id value in GTM. In the screenshot below the container in the footer of the website has the id of ‘choice-footer-msg’ and since we also set the value of InmobiChoice - CCPA msg id in GTM the CCPA footer message was appended to the container with JavaScript. You may need to have your dev team add an empty container (with a unique html id) to the footer of your website where the CCPA message can be appended.
  • Add the InmobiChoice - CCPA msg id constant value. This is the html id of the footer dom element where the CCPA message/popup link will be appended. (See the explanation above about how to find/get an HTML id attribute).
  • Set the InmobiChoice - CCPA constant to true to enable, false to disable.
  • If CCPA is successfully enabled on your website you will see the CCPA msg with a link Do Not Sell My Data link in the footer (or wherever your html id div from step 2 a is located on the page). 
  • When clicking on the Do Not Sell My Data link in the CCPA footer message a modal should pop up.

Push consent signals to the data layer

Set the InmobiChoice DataLayer Push constant to true to automatically push consent signals for IAB Vendors, Non-IAB Vendors, Legitimate Interests, and Publisher Consents. 

Find Your P-CODE

To initialize the SDK, you must provide your account's p-code for proper identification. After you log in to the InMobi CMP portal, you can see the p-code at the top right corner of the screen. However, as shown below, you must omit the initial two characters ("p-") when copying the code for use elsewhere.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 02 Oct, 2024

Test- Blended in-game Ads specs

Banner Ads

  • Recommended formats: PNG, JPEG
  • Supported formats: PNG, JPEG, DDS, GNF, KTX, GIF, TIFF, BMP, TGA
  • Recommended aspect ratios: 4:3, 3:4, 3:2, 2:3, 6.4:1, 16:9, 6:5, 8.09:1​
Aspect Ratio Size
3:2 480x320​
2:3 320x480​
6:4:1 320x50​
4:3 1024x768​
3:4 768x1024​
16:9 1920x1080​
6:5 300x250​
8.09:1 728x90​

CBA restricted ad formats

  • No flashing animated ads​ 
  • No call to action/ad interaction e.g. “click here” For more information about the Coalition for Better Ads Standards, see The Better Ads Standards.

Video Ads

  • Recommended format: MP4 using H.264 codec is the most optimal format. In addition,  the formats below are supported as well:​
    • Android: mp4, m1v, m2v, mp2, mpg, mpeg, m4v, mov, qt, 3gp, 3gpp, sdv, 3g2, 3gp2​
    • Apple (iOS/osx/tvos): mp4, m1v, m2v, mp2, mpg, mpeg, m4v, mov, qt, 3gp, 3gpp, sdv,  3g2, 3gp2​
    • Windows/Xbox/UWP: wmv, mp4, asf, mov​
    • PS4: m4v, mp4, mov​
  • Video Length: 3 to 30 seconds (6-15 seconds has the best results)​
  • Video file size: 15 MB or less (bigger sizes are supported but not recommended)​
  • Supported video frame rate: 30 frames per second or less​
  • Recommend audio sample rate: 48KHz or less​
  • Recommend audio codecs: PCM / MP3 / AAC​
  • Supported Video layout:  Horizontal and vertical​
  • Recommended aspect ratios: 16:9, 4:3, 9:16, 3:4​
  • CBA restricted ad formats:​
    • No use of sound in videos​
    • No countdown to ad start​
    • No call to action/ad interaction e.g. “click here” For more information about the  Coalition for Better Ads Standards, see The Better Ads Standards.

Note

  • Aspect ratio requirements vary per game; please confirm the available options per game in the advertiser catalog​.
  • Creative Resolution limits (calculated by ad height X ad width in pixels)​
    • On mobile platforms, video creatives with pixel count greater than  307,000 don't work​
    • On other platforms, video creatives with pixel count greater than  2,304,000 don't work​.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 02 Oct, 2024

Test- Getting Started

Welcome to InMobi

Your go-to resource center for effortlessly monetizing your apps and websites with InMobi is here. This comprehensive guide will take you through every step of the onboarding process—from creating and configuring your account to maximizing your earnings potential. You'll also find essential information on compliance initiatives and key guidelines to ensure successful and sustainable monetization as an InMobi publisher. 

Here is your onboarding checklist:

  1. Create InMobi Account
  2. Add Inventory
  3. Configure Payments
  4. Integration
  5. Test Your Integration

For any assistance, contact us through the Chatbox or reach out to your Customer Success Manager.

Now, let's get started.

Create InMobi Account

Sign up

  1. Click here to visit the Sign-Up page.

  2. Select Create Account and fill in details such as your name, company name, email address, etc.

  3. Click Create Account. You will receive a verification email from InMobi to same the email address you provided.

    Note

    If you are unable to find the verification email in your inbox, check your Spam folder. If you haven’t received it, click Resend Email on the Sign-Up page and enter your email address.

  4. Click Get Started in the verification email. Your browser directs you to set your password.

  5. Enter your new password and click Set password. Your browser redirects you to the InMobi Login/SignUp page.

You have successfully signed up with InMobi. You can now login to your account with your new credentials.

Log in

  1. Click here to visit the InMobi Login/Signup page.
  2. Click Log In.
  3. Enter your email address and click Next.

  4. Enter your password and click Log In. You will be redirected to the homepage outlining the main steps you need to follow to set up your account.

Add Inventory

You must add at least one placement and ad unit for your apps or websites to generate ad revenue. A placement is a place and time displayed on the ad in your app, and the ad unit is the ad format. It is recommended to create multiple ad units to provide a varied user experience and sell more impressions.

Add Your App/Website

To register your published app, website, or unpublished app with InMobi, follow the instructions below.

  1. Select Inventory Inventory Settings from the left navigation panel.
  2. Click Add Inventory and select an inventory channel from the drop-down menu.

    • Mobile App: Enter your app's App Store or Google Play Store URL.

    • Unpublished App: Click the link next to 'App not published on Google Play Store or Apple App Store?' on the app details page.Enter details such as the App Name, Operating System, Category, and Rating.

    • Mobile Website: Enter details such as website URL, Name, Category, and Rating.

    • CTV App: Enter details such as App URL, Name, Bundle ID, Operating System, Category, and Rating.

  3. Click Continue.
  4. In the Compliance and Privacy section, select an appropriate setting to declare your app’s audience and update your Child Privacy Compliance setting. For more information, see Children’s Privacy Compliance.
  5. To allow InMobi to collect and use the location data of your users, select Yes under the Location Permission section. 

    Note

    If you need help editing your compliance settings, contact support@inmobi.com.

  6. Click Save and Create Placements.

You have successfully added your app or website.

Create Placements and Ad Units

To create a new placement, follow the instructions below.

  1. Once you've added your inventory, you need to add a new placement. 
  2. Select the Ad Unit and enter Placement Details. For more information about ad unit types, see Ad Units.

  3. Click Create Placement. Once done, you can view the respective ad unit down below the page. Click Edit to make changes to the placement.

You have successfully created an ad unit and placement. Repeat the above steps to create multiple ad units.

Configure Payments

Update company and billing information

You must update your company details and payment information to receive payments from InMobi. Follow the steps below to configure payments.

  1. Select Finance Payment Settings Payment Information, from the left navigation panel.
  2. Enter the required details.

    screenshot-

  3. Click Proceed.

You have successfully updated your company and billing information.

Select a preferred mode of payment and manage payouts

For payments to be made to you, you must add a mode of payment. You can receive your payouts via Electronic Fund Transfer or PayPal. To add your preferred mode of payment, follow the instructions below.

  1. Select Finance Payment Settings Payout Settings.
  2. Before you add a payment account, select a payment country.
  3. Click Add a payment account and select your desired payment method from PayPal or Electronic Funds Transfer.
  4. You can add multiple payment accounts. However, you can set only one of the payment accounts as your primary bank account for the payouts. The modes of payment vary based on the payment country selected.

Note

InMobi follows a payout cycle of 60 days meaning your earnings for a given month will be credited to you at the end of the 60-day payout cycle.

Upload Tax Documents

You must upload the tax forms depending on the payment country.

  • India: You should upload the GST details if the Payment Country is India.
  • Japan/South Korea: In the case of Japan or South Korea as the Payment Country, you should enter the VAT/TIN details.
  • USA: In the case of the USA, you must enter the IRS tax details.

To know more about the IRS tax form types, refer to the following table below:

Form Type Intended Use
W-9 An entity or individual resident in the US for tax purposes.
W-8BEN Not relevant for entities. Only for individual who is not tax resident in the US and is the beneficial owner of income.
w-8BEN-E An entity that is not a resident within the US for tax purposes.

Set a minimum payment threshold

We can process payments once your cumulative earnings exceed the minimum payment threshold set. The threshold range must be between $300 - $10000.

Integration

Method 1: Via InMobi SDK

Since you have already set up your account, first placements, and ad units on the InMobi UI, your next step is integrating the InMobi SDK into your app. It gives you access to InMobi’s exchange and ad network technology to serve in-app ads.

It is recommended that you always update to the latest version of our SDK to take advantage of newly launched features or performance fixes we might introduce.

Click here to download the latest InMobi SDKs (iOS and Android). You can review our integration guidelines for iOS and Android.

Method 2: Third-party Mediation

Mediation is a monetization solution that allows app developers to manage and optimize multiple advertising partners with just one SDK integration. Mediation gives publishers access to demand through multiple ad networks, creating an arena where the networks compete to serve their ads.

To integrate InMobi as a demand source on third-party mediation platforms, you must integrate the InMobi SDK adapter. You can integrate InMobi with:

  • Unity
  • Mopub
  • Google Admob
  • AppLovin MAX
  • Unity LevelPlay
  • Fyber

For more information about our integrations and the available formats, see Third-party Mediation Platform.

If you wish to use InMobi as your primary mediation platform, we recommend you to see Getting Started.

Audience Bidding

Header bidding goes by many names. At InMobi, we call it Audience Bidding. Essentially, Audience Bidding is in-app header bidding. It allows publishers to sell their inventory in a unified auction where ad sources bid for each impression in real time.

Publishers can enable Audience Bidding with InMobi as a demand source using all major header bidding solutions in the market, including:

  • Amazon Publisher Services via Transparent Ad Marketplace (TAM)
  • Prebid (via oRTB endpoint)
  • Applovin Max (via SDK)
  • Mopub (via SDK)
  • Unity LevelPlay (via SDK)
  • Fyber (via SDK)

For more information, see our Audience Bidding integrations.

For more information on the Open RTB integrations, see oRTB integrations.

Test your integration

Testing your integration is an important step for successful onboarding. We recommend testing your integration to ensure that placements and ad units are correctly displaying across your app without affecting the live traffic. To start testing using our Sandbox Testing tool, follow the instructions below.

  1. Select Integration Integration Testing.
  2. Click Add Test Device.

  3. Enter the required information such as device type, platform, name, and advertising ID. Click Add Device.

You have successfully added a device for testing your integration. If you come across any issues, contact our support team to start troubleshooting your integration.

Best Practices

To maximize your monetization with InMobi, it is strongly recommended that you implement our best practices listed below.

  • Adding InMobi as an authorized seller to your app-ads.txt file is recommended to protect your inventory and let your buyer know which sellers have legitimate access to selling your in-app inventory. The same applies to mobile web with ads.txt. Not completing this step will limit the number of DSPs able to buy your inventory.
  • Additionally, ensure that you add your Domain when registering your App or Website, as highlighted in Step 2 above.
  • Make your inventory compliant with all the privacy initiatives:
    • GDPR: Use a Consent Management Platform (CMP) to manage consent for your EEA users and safely transmit user preferences through the Transparency Consent Framework 2.0 (TCF 2.2). Learn more about our GDPR Guide for Publishers.
    • Update to iOS 14.5 and above and ATT: For more information, see Surviving and Thriving in a Post-IDFA World.
  • If you have already configured your block settings, select your desired settings from the Block Settings drop-down list. For more information on how to configure your block settings, see Block Settings.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 02 Oct, 2024

Granular Analytics

InMobi CMP offers granular analytics to help you optimize and maximize your consent rate. You can view consent data for different regulations such as GDPR, CCPA and MSPA, and their opt-in rates according to countries for your apps and websites.

The granular analytics feature can be found under the Reports tab with two sections: Dashboard and Analytics.

  1. To start, login to your InMobi CMP account.
  2. Navigate to Reports and select the property for which you want to view the analytics.

Now let’s take a detailed look at each section.

Dashboard

The dashboard offers a pre-built set of comprehensive trends and metrics. These are not customizable. 

The Summary allows you to view and compare data between specific periods of your choice.

You can use Filters to view in-depth data for a specific regulation, site, device type, OS and country during a particular time.

  1. Select the start date and end date and click More Filters.

  2. Choose your desired filters and click Apply Filter.
  3. Once done, you can view graphs based on regulation and region-wise traffic, opt-in rates, and page-wise display count.

Country-wise Traffic and Consent

You can view country-wise traffic and consent rates during a specific period to understand which countries generate the most traffic and opt-ins.

Regulation-wise Consent Distribution

The two pie charts at the bottom of the dashboard reflect the regulation-wise consent distribution data between GDPR and CCPA. 

Analytics

The Analytics offers a visualization into custom reports generated after selecting dimensions, filters, and metrics of your choice. 

Dimensions

Dimensions are attributes by which you filter and group data. 

InMobi CMP supports the following dimensions:

  • Regulation
  • Country
  • Page format
  • OS
  • Device Type
  • Consent or Pay Enabled
  • GBC Enabled

Filters 

Filters allow you to query data only for specific values/attributes of the Dimensions. Furthermore, you can also select a particular timeframe to run reports for deeper granularity. 

Metrics

Metrics is the quantifiable measure that you wish to see. InMobi CMP offers the following metrics:

  • Total traffic
  • Total session
  • Total opt-in
  • Total opt-out
  • Bounce rate
  • Partial opt-in
  • Paid User

To understand better, let’s take an example. If you want to generate a report showing the opt-in rates of mobile devices in the USA in the last 30 days, it will look something like this. 

Here, Country and Device Type are the Dimensions, 30 days is the Time, Mobile is the Device Type filter, US is the Country filter, and opt-in rates is the metric.

Generate and Schedule Reports

You can view all your saved reports by clicking View All Reports.

  1. To generate a custom report, select the dimensions, metrics and filters of your choice.
  2. Click Run Report. If you wish to save the same report, name it and click Save Report

  3. To download a report, click Export Report. Reports can be downloaded in CSV format.

You can also schedule recurring reports. These will be automatically sent at regular intervals to specific email addresses listed by you. Currently, InMobi CMP can scheduled reports on a custom, daily, weekly, and monthly basis.

  1. To start run a report with the dimensions, filters and metrics of your choice. 
  2. Click Schedule Report. Add the Report Name, Frequency, Time period, Start and End dates, and time.

  3. To add recipients, click +Add New and list out the email addresses to which you wish to send the report. Click OK.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 20 Jan, 2025

Overview

InMobi’s Ad Management APIs help you manage your inventory i.e., apps and placements you are monetizing or interested in monetizing through InMobi easily and efficiently. They reduce the manual effort of managing huge inventory individually through our platform. 

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 13 Sep, 2024

Authentication and Request Protocol

Authentication

For authentication, you need the following values in the header: 

Key  Value 
x-client-secret  You need to generate an API key. To know how to generate a new API key or access an existing API key, see Reporting API
x-account-id  You need to enter the Account ID. You can find the Account ID in Payment Settings under the Finance tab on InMobi platform. 
x-client-id  You need to enter the email ID of the account. 

List of Available APIs

The APIs are available for the following functionalities: 

Manage Apps

  • Get the list of apps
  • Get the details of a specific app
  • Create a new app
  • Update an existing app

Manage Placements

  • Get the list of placements in an app
  • Get the details of a specific placement
  • Create a new placement in an app
  • Update a placement in an app

Request Protocol

The request protocol of all APIs is https. 

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 13 Nov, 2024

API Details

Manage Apps

  1. Get the list of apps 

    • Request URL: https://publisher.inmobi.com/rest/api/v2/apps
    • Request method: GET 
    • Request parameters (query): 
      Name  Description  Required  Type  Sample/Available values 
      pageNum   page number  Optional  Integer  1, 2, 3 etc. 
      pageLength   number of records per page  Optional  Integer

      1, 2, 3 etc. 

      Default number of results: 10 

      status   status of the app  Optional  String 

      Available values : ACTIVE, DRAFT, ARCHIVE, FLAGGED 

      Default value: ACTIVE 

    • Request body: NA
    • Response format
      • Response body:
        { 
          "success": true, 
          "data": { 
            "totalRecords": 281, 
            "records": [ 
              { 
                "storeUrl": "string", 
                "appName": "string", 
                "platform": "string", 
                "bundleId": "string", 
                "childDirected": 1, 
                "appRating": "string", 
                "appId": 0 
              } 
            ] 
          } 
        } 
        			
      • Response body values:
        Name  Description  Type  Sample/Possible values 
        Success Determines success of the response Boolean

        true – request successful

        false – request unsuccessful with some error(s)

        storeUrl App store/Play store URL of the app String (url) URL
        appName Name of the app String Sample App
        Platform Platform of the app String Android or iPhone (iOS)
        bundleId Bundle of the apps as registered in the store String Com.org.app
        childDirected Determines the audience type of the app Integer

        1 – App is not directed towards children

        2 – App is directed towards children and requires parental consent

        3 – App is directed partially towards children and towards adults

        appRating Content Rating of the app String  
        appId ID of the app on InMobi dashboard Numeric  
  2. Get the details of a specific app

    • Request URL: https://publisher.inmobi.com/rest/api/v2/apps/{appId} (App ID should be mentioned in the request URL)
    • Request method: GET
    • Request parameters (query): NA
    • Request body: NA
    • Response format
      • Response body:
        
        { 
          "success": true, 
          "data": { 
            "storeUrl": "string", 
            "appName": "string", 
            "platform": "string", 
            "bundleId": "string", 
            "childDirected": 0, 
            "appRating": "string", 
            "appId": 0 
          }, 
          "status": "string", 
          "createdOn": "string" 
        } 
         
        			
      • Response body values:
        Name  Description  Type  Sample/Possible values 
        Success Determines success of the response Boolean

        true – request successful

         

        false – request unsuccessful with some error(s)

        storeUrl App store/Play store URL of the app String (url) URL
        appName Name of the app String Sample App
        Platform Platform of the app String Android or iOS
        bundleId Bundle of the apps as registered in the store String Com.org.app
        childDirected Determines the audience type of the app Integer

        1 – App is not directed towards children

        2 – App is directed towards children and requires parental consent

        3 – App is directed partially towards children and towards adults

        appRating Content Rating of the app String  
        appId ID of the app on InMobi dashboard Numeric  
        status Current status of the app on platform String PENDING REVIEW, ACTIVE, FLAGGED, REJECTED, ARCHIVED
        createdOn Date of app creation on platform String  
  3. Create a new app

    • Request URL: https://publisher.inmobi.com/rest/api/v2/apps
    • Request method: POST
    • Request parameters (query): NA
    • Request body:
      • Schema:
        { 
          "storeUrl": "string", 
          "childDirected": 0, 
          "locationAccess": true, 
          "appName": "string" 
        } 
        			
      • Request body values:
        Name  Description  Required  Type  Sample/Possible values 
        storeUrl App store/Play store URL of the app Required String (url) URL
        locationAccess Specify if InMobi can access the location details Required Boolean

        true – InMobi will be able to use the location data collected by this app.

        false – InMobi will not be able to access the location data collected by this app.

        childDirected Specify the audience type of the app Required Integer

        1 – App is not directed towards children

        2 – App is directed towards children and requires parental consent

        3 – App is directed partially towards children and towards adults

        appName Name of the app Optional String Sample App
      • Response format:
        • Response body:
          { 
            "success": true, 
            "data": { 
              "storeUrl": "string", 
              "appName": "string", 
              "platform": "string", 
              "bundleId": "string", 
              "childDirected": 0, 
              "appRating": "string", 
              "appId": 0 
            }, 
            "status": "string", 
            "createdOn": "string" 
          } 
          
          				
        • Response parameters:
          Name  Description  Type  Sample/Possible values 
          Success Determines success of the response Boolean true – request successful
          storeUrl App store/Play store URL of the app String (url) URL
          appName Name of the app String Sample App
          Platform Platform of the app String Android or iOS
          bundleId Bundle of the apps as registered in the store String Com.bundle.app
          childDirected Determines the audience type of the app Integer

          1 – App is not directed towards children

          2 – App is directed towards children and requires parental consent

          3 – App is directed partially towards children and towards adults

          appRating Content Rating of the app String  
          appId ID of the app on InMobi dashboard Numeric  
          status Current status of the app on platform String PENDING REVIEW, ACTIVE, FLAGGED, REJECTED, ARCHIVED
          createdOn Date of app creation on platform String  
  4. Update an existing app

    • Request URL: https://publisher.inmobi.com/rest/api/v2/apps/{appId} (App ID should be mentioned in the request URL)
    • Request method: PATCH
    • Request parameters (query): NA
    • Request body:
      • Schema:
        { 
        
          "childDirected": 0, 
        
          "locationAccess": true, 
        
          "appName": "string" 
        
        }
        			
      • Request body values:
        Name  Description  Required  Type  Sample/Possible values 
        locationAccess Specify if InMobi can access the location details Required Boolean

        true – InMobi will be able to use the location data collected by this app.

        false – InMobi will not be able to access the location data collected by this app.

        childDirected Specify the audience type of the app Required Integer

        1 – App is not directed towards children

        2 – App is directed towards children and requires parental consent

        3 – App is directed partially towards children and towards adults

        appName Name of the app Optional String Sample App
      • Response format:
        • Response body:
          { 
            "success": true, 
            "data": { 
              "storeUrl": "string", 
              "appName": "string", 
              "platform": "string", 
              "bundleId": "string", 
              "childDirected": 0, 
              "appRating": "string", 
              "appId": 0 
            }, 
            "status": "string", 
            "createdOn": "string" 
          } 
          
          				
        • Response parameters:
          Name  Description  Type  Sample/Possible values 
          Success Determines success of the response Boolean true – request successful
          storeUrl App store/Play store URL of the app String (url) URL
          appName Name of the app String Sample App
          Platform Platform of the app String Android or iOS
          bundleId Bundle of the apps as registered in the store String Com.bundle.app
          childDirected Determines the audience type of the app Integer

          1 – App is not directed towards children

          2 – App is directed towards children and requires parental consent

          3 – App is directed partially towards children and towards adults

          appRating Content Rating of the app String  
          appId ID of the app on InMobi dashboard Numeric  
          status Current status of the app on platform String PENDING REVIEW, ACTIVE, FLAGGED, REJECTED, ARCHIVED
          createdOn Date of app creation on platform Optional   

Manage Placements

  1. Get the list of placements in an app 

    • Request URL: https://publisher.inmobi.com/rest/api/v1/placements 
    • Request method: GET 
    • Request parameters (query): 
      Name  Description  Required  Type  Sample/Available values 
      pageNum   page number  Optional  Integer  1, 2, 3 etc. 
      pageLength   number of records per page  Optional  Integer

      1, 2, 3 etc. 

      Default number of results: 10 

      appId    The ID of an app   Required   Integer  

       

      placementType  The type of placement  Optional  String  Available values : INTERSTITIAL, BANNER, REWARDED_VIDEO, NATIVE 
    • Request body: NA
    • Response format
      • Response body:
        { 
          "success": true, 
          "data": { 
            "totalRecords": 281, 
            "records": [ 
              { 
                "storeUrl": "string", 
                "appName": "string", 
                "platform": "string", 
                "bundleId": "string", 
                "childDirected": true, 
                "appRating": "string", 
                "appId": 0 
              }, 
              { 
                "placementId": 0, 
                "placementName": "string", 
                "placementType": "string", 
                "testMode": "string", 
                "status": "string", 
                "appId": 0, 
                "cpmFloor": 0, 
                "isAudienceBiddingEnabled": true, 
                "audienceBiddingPartner": "string", 
                "a9TagId": "string", 
                "a9AppId": "string", 
                "isFallbackPlacement": true, 
                "createdOn": "string" 
              } 
            ] 
          } 
        } 
        
        			
      • Response parameters:
        Name  Description  Type  Sample/Possible values 
        Success Determines success of the response Boolean

        true – request successful

        false – request unsuccessful with some error(s)

        storeUrl App store/Play store URL of the app String (url) URL
        appName Name of the app String  
        Platform Platform of the app String Android or iPhone (iOS)
        bundleId Bundle of the apps as registered in the store String Com.org.app
        childDirected Determines the audience type of the app Integer

        1 – App is not directed towards children

        2 – App is directed towards children and requires parental consent

        3 – App is directed partially towards children and towards adults

        appRating Content Rating of the app String  
        appId App key on InMobi platform  Integer   
        placementId  ID of the placement as on InMobi platform  Integer   
        placementName  Placement name as on InMobi platform  String   
        placementType  Type of placement  String  Available values : INTERSTITIAL, BANNER, REWARDED_VIDEO, NATIVE 
        testMode  Test mode of the placement  String 

        On – Test mode is on for specific devices as mentioned in the integration testing in InMobi platform 

        Global – Test mode is on for all devices with this app 

        Off – Test mode is off for all devices with this app 

        status  Current status of the placement  String  Available values : ACTIVE, DRAFT, ARCHIVE, FLAGGED 
        cpmFloor  eCPM floor set on the InMobi platform  Number   
        isAudienceBiddingEnabled  Determines if Audience Bidding is enabled for this placement  Boolean 

        true – Audience Bidding is on 

        false – Audience Bidding is off 

         audienceBiddingPartner 

        Audience Bidding Partner (applicable only if Audience Bidding is enabled)  String  Available values: MAX, AMAZON_TAM, GOOGLE_OPEN_BIDDING, CUSTOM_MEDIATION, IRONSOURCE, SPRINGSERVE, PREBID, FYBER, ADMOST, AEQUUS, GAMEANALYTICS_HYPERBID, CHARTBOOST, GOOGLE_SDK_BIDDING 
        a9TagId  Tag ID (applicable only in case of Amazon TAM as Audience Bidding partner)  String   
        A9AppId App ID (applicable only in case of Amazon TAM as Audience Bidding partner)  String   
        createdOn  Creation date of the placement  String   
  2. Get the details of a specific placement in an app

    • Request URL: https://publisher.inmobi.com/rest/api/v1/placements/{placementId} (Placement ID should be mentioned in the request URL)
    • Request method: GET
    • Request parameters (query): NA
    • Request body: NA
    • Response format
      • Response body:
        { 
        
          "success": true, 
        
          "data": { 
        
            "placementId": 0, 
        
            "placementName": "string", 
        
            "placementType": "string", 
        
            "testMode": "string", 
        
            "status": "string", 
        
            "appId": 0, 
        
            "cpmFloor": 0, 
        
            "isAudienceBiddingEnabled": true, 
        
            "audienceBiddingPartner": "string", 
        
            "a9TagId": "string", 
        
            "a9AppId": "string", 
        
            "isFallbackPlacement": true, 
        
            "createdOn": "string" 
        
          } 
        
        }
        
        
        			
      • Response parameters:
        Name  Description  Type  Sample/Possible values 
        Success Determines success of the response Boolean

        true – request successful

        false – request unsuccessful with some error(s)

        appId App key on InMobi platform  Integer   
        placementId  ID of the placement as on InMobi platform  Integer   
        placementName  Placement name as on InMobi platform  String   
        placementType  Type of placement  String  Available values : INTERSTITIAL, BANNER, REWARDED_VIDEO, NATIVE 
        testMode  Test mode of the placement  String 

        On – Test mode is on for specific devices as mentioned in the integration testing in InMobi platform 

        Global – Test mode is on for all devices with this app 

        Off – Test mode is off for all devices with this app 

        status  Current status of the placement  String  Available values : ACTIVE, DRAFT, ARCHIVE, FLAGGED 
        cpmFloor  eCPM floor set on the InMobi platform  Number   
        isAudienceBiddingEnabled  Determines if Audience Bidding is enabled for this placement  Boolean 

        true – Audience Bidding is on 

        false – Audience Bidding is off 

         audienceBiddingPartner 

        Audience Bidding Partner (applicable only if Audience Bidding is enabled)  String  Available values: MAX, AMAZON_TAM, GOOGLE_OPEN_BIDDING, CUSTOM_MEDIATION, IRONSOURCE, SPRINGSERVE, PREBID, FYBER, ADMOST, AEQUUS, GAMEANALYTICS_HYPERBID, CHARTBOOST, GOOGLE_SDK_BIDDING 
        a9TagId  Tag ID (applicable only in case of Amazon TAM as Audience Bidding partner)  String   
        A9AppId App ID (applicable only in case of Amazon TAM as Audience Bidding partner)  String   
        createdOn  Creation date of the placement  String   
  3. Create a new placement in an app

    • Request URL: https://publisher.inmobi.com/rest/api/v1/placements
    • Request method: POST
    • Request parameters (query): NA
    • Request body:
      • Schema:
        { 
        
          "appId": 0, 
        
          "placementName": "string", 
        
          "placementType": "INTERSTITIAL", 
        
          "cpmFloor": 0, 
        
          "isAudienceBiddingEnabled": true, 
        
          "audienceBiddingPartner": "string", 
        
          "a9TagId": "string", 
        
          "a9AppId": "string", 
        
          "isFallbackPlacement": true 
        
        }
        
        
      • Request body values:
        Name  Description  Required  Type  Sample/Possible values 
        appId App key on InMobi platform Required Integer  
        placementName Placement name as on InMobi platform Required String  
        placementType Type of placement Required String Available values : INTERSTITIAL, BANNER, REWARDED_VIDEO, NATIVE
        cpmFloor eCPM floor set on the InMobi platform Optional (not appicable in case isAudienceBiddingEnabled is "true") Number  
        isAudienceBiddingEnabled Determines if Audience Bidding is enabled for this placement Required Boolean true – Audience Bidding is on false – Audience Bidding is off
        audienceBiddingPartner Audience Bidding Partner (applicable only if Audience Bidding is enabled) Required (only if isAudienceBiddingEnabled is “true”) String Available values: MOPUB, MAX, AMAZON_TAM, GOOGLE_OPEN_BIDDING, CUSTOM_MEDIATION, IRONSOURCE, SPRINGSERVE, PREBID, FYBER, ADMOST, AEQUUS, GAMEANALYTICS_HYPERBID, CHARTBOOST, GOOGLE_SDK_BIDDING
        a9TagId Tag ID of Amazon TAM placement Required (only in case of Amazon TAM as Audience Bidding partner) String  
        A9AppId App ID of Amazon TAM placement Required (only in case of Amazon TAM as Audience Bidding partner) String  
      • Response format:
        • Response body schema:
          { 
            "success": true, 
            "data": { 
              "placementId": 0, 
              "placementName": "string", 
              "placementType": "string", 
              "testMode": "string", 
              "status": "string", 
              "appId": 0, 
              "cpmFloor": 0, 
              "isAudienceBiddingEnabled": true, 
              "audienceBiddingPartner": "string", 
              "a9TagId": "string", 
              "a9AppId": "string", 
              "isFallbackPlacement": true, 
              "createdOn": "string" 
            } 
          } 
          
          				
        • Response values:
          Name  Description  Type  Sample/Possible values 
          Success Determines success of the response Boolean

          true – request successful 

          false – request unsuccessful with some error(s) 

          placementId  ID of the placement as on InMobi platform  Integer   
          placementName  Placement name as on InMobi platform  String  
          placementType  Type of placement  String Available values : INTERSTITIAL, BANNER, REWARDED_VIDEO, NATIVE 
          testMode  Test mode of the placement  String ON – Test mode is on for specific devices as mentioned in the integration testing in InMobi platform 

          GLOBAL – Test mode is on for all devices with this app 

          OFF – Test mode is off for all devices with this app

          cpmFloor  eCPM floor set on the InMobi platform  Number 

           

          isAudienceBiddingEnabled  Determines if Audience Bidding is enabled for this placement  Boolean 

          true – Audience Bidding is on 

          false – Audience Bidding is off 

          audienceBiddingPartner  Audience Bidding Partner (applicable only if Audience Bidding is enabled)  String 

          Available values: MOPUB, MAX, AMAZON_TAM, GOOGLE_OPEN_BIDDING, CUSTOM_MEDIATION, IRONSOURCE, SPRINGSERVE, PREBID, FYBER, ADMOST, AEQUUS,  GAMEANALYTICS_HYPERBID, CHARTBOOST, GOOGLE_SDK_BIDDING 

          appId App key on InMobi platform  Integer  
          a9TagId  Tag ID (applicable only in case of Amazon TAM as Audience Bidding partner)  String   
          A9AppId  App ID (applicable only in case of Amazon TAM as Audience Bidding partner)  String   
          status Current status of the placement  String Available values : ACTIVE, DRAFT, ARCHIVE, FLAGGED 
          createdOn Creation date of the placement  String  
  4. Update an existing placement in an app

    • Request URL: https://publisher.inmobi.com/rest/api/v1/placements/{placementId} (Placement ID should be mentioned in the request URL)
    • Request method: PATCH
    • Request parameters (query): NA
    • Request body:
      • Schema:
        { 
        
          "placementName": "string", 
        
          "cpmFloor": 0, 
        
          "isAudienceBiddingEnabled": true, 
        
          "audienceBiddingPartner": "string", 
        
          "a9TagId": "string", 
        
          "a9AppId": "string", 
        
        }
        
        
        			
      • Request body values:
        Name  Description  Required  Type  Sample/Possible values 
        placementName Placement name as on InMobi platform Required String  
        cpmFloor eCPM floor set on the InMobi platform Optional (not appicable in case isAudienceBiddingEnabled is "true") Number  
        isAudienceBiddingEnabled Determines if Audience Bidding is enabled for this placement Optional Boolean true – Audience Bidding is on false – Audience Bidding is off
        audienceBiddingPartner Audience Bidding Partner (applicable only if Audience Bidding is enabled) Required (only if isAudienceBiddingEnabled is “true”) String Available values: MOPUB, MAX, AMAZON_TAM, GOOGLE_OPEN_BIDDING, CUSTOM_MEDIATION, IRONSOURCE, SPRINGSERVE, PREBID, FYBER, ADMOST, AEQUUS, GAMEANALYTICS_HYPERBID, CHARTBOOST, GOOGLE_SDK_BIDDING
        a9TagId Tag ID of Amazon TAM placement Required (only in case of Amazon TAM as Audience Bidding partner) String  
        A9AppId App ID of Amazon TAM placement Required (only in case of Amazon TAM as Audience Bidding partner) String  
      • Response format:
        • Response body:
          { 
            "success": true, 
            "data": { 
              "placementId": 0, 
              "placementName": "string", 
              "placementType": "string", 
              "testMode": "string", 
              "status": "string", 
              "appId": 0, 
              "cpmFloor": 0, 
              "isAudienceBiddingEnabled": true, 
              "audienceBiddingPartner": "string", 
              "a9TagId": "string", 
              "a9AppId": "string", 
              "isFallbackPlacement": true, 
              "createdOn": "string" 
            } 
          } 
          				
        • Response body values:
          Name  Description  Type  Sample/Possible values 
          Success Determines success of the response Boolean

          true – request successful 

          false – request unsuccessful with some error(s) 

          placementId  ID of the placement as on InMobi platform  Integer   
          placementName  Placement name as on InMobi platform  String  
          placementType  Type of placement  String Available values : INTERSTITIAL, BANNER, REWARDED_VIDEO, NATIVE 
          testMode  Test mode of the placement  String ON – Test mode is on for specific devices as mentioned in the integration testing in InMobi platform 

          GLOBAL – Test mode is on for all devices with this app 

          OFF – Test mode is off for all devices with this app

          cpmFloor  eCPM floor set on the InMobi platform  Number 

           

          isAudienceBiddingEnabled  Determines if Audience Bidding is enabled for this placement  Boolean 

          true – Audience Bidding is on 

          false – Audience Bidding is off 

          audienceBiddingPartner  Audience Bidding Partner (applicable only if Audience Bidding is enabled)  String 

          Available values: MOPUB, MAX, AMAZON_TAM, GOOGLE_OPEN_BIDDING, CUSTOM_MEDIATION, IRONSOURCE, SPRINGSERVE, PREBID, FYBER, ADMOST, AEQUUS, GAMEANALYTICS_HYPERBID, CHARTBOOST, GOOGLE_SDK_BIDDING 

          appId App key on InMobi platform  Integer  
          a9TagId  Tag ID (applicable only in case of Amazon TAM as Audience Bidding partner)  String   
          A9AppId  App ID (applicable only in case of Amazon TAM as Audience Bidding partner)  String   
          status Current status of the placement  String Available values : ACTIVE, DRAFT, ARCHIVE, FLAGGED 
          createdOn Creation date of the placement  String  

Possible errors 

Following are the possible error scenarios that might arise while using these APIs:

Error code  Type  Description 
400  Bad request response  Please check the values passed in the request body for correct values in correct formats
401  Unauthorized request response  Please check the values passed in the header and auth for correct values 
500  Internal server error response  There is an internal issue. Please try again after some time or contact InMobi CSM or support (email us at support@inmobi.com

 Rate limits 

The rate of requests for each publisher is capped to 500 requests in an interval of 15 minutes. 

In case of any unresolved queries, please reach out to your CSM or reach out to us at support@inmobi.com. You can also raise a ticket here: https://support.inmobi.com/mytickets

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 19 Jan, 2025

Best practices for Glance campaigns

Even though Glance Smart Lock Screen is a managed-serve platform for buying ads on ad exchanges, you also need to follow some best practices to ensure you get the best possible Return on Ad Spent (RoAS). 

Creative best practices 

Read Glance Creative best practices

Measurement and attribution best practices 

For accurate measurement and attribution, it’s essential to fulfill the onboarding requirements

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 16 Oct, 2024

Glance MMP Integration Overview

Mobile Measurement Partners (MMPs) are third-party attribution platforms that capture campaign data and attribute every user action. Advertisers use MMPs to track and analyze campaign performance across multiple ad partners.

To enable this tracking, advertisers need to embed the MMP’s software development kit (SDK) in their app. This SDK captures and receives user events (e.g., clicks, installs) using tracking links provided by Glance.

Because Glance is an appless content consumption platform on phone lock screens, the user journey differs from that of standard Android apps. To accommodate this unique flow, Glance has collaborated with leading MMPs to develop custom integrations. Follow all the specified steps to integrate your preferred MMP with Glance effectively.

How Glance-MMP integrations work

Glance and MMP integrations help advertisers validate the campaign attribution numbers on their MMP dashboards. 
1.    Sign a campaign contract with Glance Sales after providing all the required onboarding information.
2.    Configure your preferred MMPs for Glance. 
3.    Share the tracking URL with the Glance team.
4.    The Glance team adds those URLs to their campaign management tool and publishes the campaign.
5.    Find the campaign performance reports on your MMP dashboard.

Supported MMPs

Glance supports integration with the following MMPs:

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 16 Oct, 2024

Integrate AppsFlyer with Glance

If AppsFlyer is your preferred MMP, you need to integrate it with Glance before the campaign starts. 

Note:

Glance and AppsFlyer are exclusive Pre-load Referrer Attribution partners and offer seamless integration.

The integration starts with activating Glance as your partner on your AppsFlyer account, followed by changing the required configuration and enabling the pre-load attribution option. You can generate and share the attribution links with the Glance team.

Pre-requisites 

Before the integration, make sure you have: 

  • An active advertiser account with AppsFlyer. 
  • Received an advertiser ID from the Glance team. 

Integration steps

Follow the steps to integrate Glance and AppsFlyer to enable attribution for Android app campaigns:

Step 1: Activate Glance as a partner

The integration starts with the activation of the Glance on your AppsFlyer dashboard using the following steps:

  1. Log in to your AppsFlyer advertiser account.
  2. Go to Collaborate &gt; Partner Marketplace in the left menu bar.

    ad-exchange-appsflyer-menubar

  3. In the search bar, search for Glance and select it. You move to the Integration setup page.

  4. Click Set up Integration.
  5. In the Integration tab, select the app for the integration and turn Activate partner on.

Step 2: Configure Integration settings

After you activate Glance, you need to configure the integration setting for InMobi DSP as follows:

  1. In the Integration tab, turn off Advanced Privacy.
  2. In Advertiser Id, enter the Advertiser ID value provided by the Glance team. &lt;Add screenshot&gt;
  3. In the Install attribution section, turn on the Install view-through attribution toggle.
    ad-exchange-appsflyer-attribution
  4. Enable the Preload attribution toggle and keep the Preload lookback window to 90 days.&lt;Add screenshot&gt;

  5. In the Default postbacks section, select All media sources, including organic against Install (Event Name) in the for users from drop-down.

    Note:

    Organic refers to the advertiser’s unattributed data.

  6. Under the In-app event settings section, enter the Advertiser ID value provided by the Glance team, which is the same as in General settings.

  7. Enable the In-app event postbacks toggle. Glance recommends the value to be Lifetime. The minimum value is 6 months.

  8. Click Add event to add postbacks for in-app events. Add all the funnel events and their details.

  9. Click Save integration.

Step 3: Generate attribution links

For user-acquisition campaign

You can generate the attribution link for UA campaigns, which the Glance team uses while creating the campaign, as follows:

  1. Go to the Attribution Link tab. The Parameter name and Value fields are auto-populated.
  2. Enable the Retargeting settings toggle for re-marketing campaigns.
  3. Set the CTA and VTA values mentioned as follows:
    • CTA: 7 days
    • VTA: 24 hours
      
  4. Share the CTA and VTA links with the Glance team.

For remarketing campaign

You can generate the attribution link for REM campaigns, which the Glance team uses while creating the campaign, as follows:

  1. In the Attribution link tab, select Use Onelink in Choose your attribution link type. Refer to Appsflyer’s Help Center to learn how to create an Onelink template.
  2. Select an Onelink template.
  3. Check Deep linking.
  4. Enter a value in Deep link value.
  5. Add the required values of Parameter name and Value in the Attribution link parameters section.
  6. Enable the Retargeting settings toggle.
  7. Enter a value in the URI scheme, which is a raw deep link URL that directs users to the specific page you want them to land on within the app.
  8. Toggle on Ignore active users for retargeting only when you need to set an inactivity window to filter out active users. Keep this option toggled off if not required, as leaving it on can negatively impact campaign performance.
  9. In Re-engagement window, select lifetime.

Step 4: Enable permissions

You need to provide the following permissions to Glance on the AppsFlyer dashboard:

  1. Go to the Permissions tab.
  2. Switch on the Ad network permissions toggle.

  3. Enable the following permission toggles:

    ad-exchange-appsflyer-permission

Step 5: Save the integration

Check the settings done in the previous steps and click Save.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 16 Oct, 2024

Integrate Adjust with Glance

If you use Adjust as MMP, you need to integrate it with Glance before the campaign starts.

Pre-requisites

Before the integration starts, make sure you have 

  • An active advertiser account with Adjust.
  • Received your Advertiser ID from the Glance team.

Integration Steps 

Integrating Adjust and Glance is a one-time process applicable to all further campaigns.

Step 1: Enable Glance as the partner

Enable Glance on your Adjust account as follows:

  1. Log in to your Adjust account.
  2. Go to Campaign Lab &gt; Partners from the left menu bar. You reach the Partner Selection page.
  3. In the search bar, search for Glance and select it.
  4. Click Next. You reach the App selection page.

Step 2: Select your app 

Select the app you want to run the campaign for as follows:

  1. On the App selection page, find the name of your app and select it. You can also use 
  2. Click Next. You reach the Data sharing page.

Step 3: Enable data sharing 

Enable data sharing between Glance and your Adjust account as follows:

  1. On Enable data sharing for Glance card, click Edit.
  2. Enter the Advertiser ID shared by the Glance team. Click Enable.
  3. Check the Data from all attribution sources box. This option enables you to leverage Glance's Data science models, as the unattributed data enhances the DS models to target higher-quality audiences.
  4. Check the Sessions box to enable Glance to collect the campaign session activities.
  5. (Optional) Check the In-app revenue (from in-app purchases) box to share your revenue event data with Glance.
  6. (Optional) Check the Parameters box to share the custom parameters you have created for the campaign. Read how to create custom parameters on the Adjust Help Center.
  7. Click Map event in the Map your events section to collect the campaign results of each event. Make sure you map all the events you want to the campaign for.
  8. In the Adjust event drop-down, select the event you want to map.
  9. Enter the name of the event.
  10. Click Apply.
  11. (Optional) If you have configured custom parameters, click Map parameters. Read more on the mapping event on the Adjust Help Center.
  12. Click Next. You reach the Link Structure page.

Step 4: Generate a tracking URL 

You need to generate an Adjust Ad tracking URL, which the Glance team uses while configuring the campaign on Glance. Generate the URL as follows:

  1. On the Link Structure page, enter a name for the tracker in Link name.
  2. In Campaign parameters, click Edit to add any parameter.
  3. Click Next. You can find the tracker URL for all the events you have configured.

Step 5: Share the tracking URL 

Share the Adjust tracking URL with the Glance team. 

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 16 Oct, 2024

Integrate Branch with Glance

If you use Branch as MMP for your campaigns, you need to integrate it with Glance before your first campaign. 

Pre-requisites

Before you can start the integration, make sure you have:

  • An active advertiser account with Branch. 
  • Received your Advertiser ID from the Glance team. 

Integration steps  

Integrating Branch and Glance is a one-time process applicable to all the further campaigns. The integration steps are: 

Step 1: Enable Glance 

You need to enable Glance as a partner as the first step in the integration. 

  1. Log in to your Branch Dashboard.
  2. In the left menu bar, go to Ads &gt; Partner Management.
  3. In the Ad Partners drop-down, search for Glance and select it.

    Note:

    Do not select InMobi or InMobi DSP.

  4. Under the Account Settings tab, enter the values of your Advertiser ID provided by the Glance team.
  5. Click Save & Enable.

Step 2: Configure Postbacks 

Enabling Glance automatically enables the following postbacks: 

  • INSTALL
  • OPEN
  • PURCHASE

Note:

Select ALL EVENTS for every pre-configured and configured event.

You can add new postbacks using the following steps:

  1. Click Add New Postback on the Ad Partner Settings page.
  2. Select the event you want to create the postback for and click Save. The Branch app automatically generates the POSTBACK URL.

  3. Click Save on the Ad Partner Settings page.

Note:

Refer to the Custom Postback topic in Branch Help if you want to add a custom postback.

Step 3: Configure the attribution window  

An Attribution window is a period for capturing the valid attribution for an event. Branch has industry-standard attribution window values pre-set in the Attribution Windows tab.

Note:

Do not change the pre-set attribution window values to avoid any discrepancies in the data.

Enable the attribution window as follows:

  1. Go to the Attribution Windows tab.
  2. Enable the Use ad partner attribution settings toggle.
  3. Click Save.

Step 4: Generate Branch Ad Link 

The Glance team uses the Branch Ad Link you generate. The link allows you to receive the attribution data from Glance, which you can use to validate the campaign performance. Share the link with them after you generate it.

Read the Generate Branch Ad Link topic on the Branch Help to know the steps of generating the link.

Step 5: Verify the integration

When the campaign launches, the data exchange starts between Glance and your Branch account. Enable Glance data on your Branch Dashboard as follows: 

  1. Go to Tools &gt; Liveview in the left menu bar.
  2. Click the WEBHOOK RECORDS tab.
  3. Click Add Filter.
  4. Search ad partner (3p) and select it.
  5. Select equals.
  6. Enter a_glance and press Enter/return on your keyboard.
  7. Click Update Session. You can see the data in the WEBHOOK RECORDS tab.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 16 Oct, 2024

Integrate Singular with Glance

If you use Singular as your preferred MMP, you need to integrate it with Glance before your first campaign starts.

Pre-requisites 

Before starting the integration, make sure you have

  • An active advertiser account with Singular. 
  • Received your Advertiser ID from the Glance team.

Integration Steps 

Integrating Singular and Glance is a one-time process applicable to all further campaigns. 

Step 1: Select Glance as the partner

Select Glance as the partner of Singular for your campaigns as follows: 

  1. Log in to your Singular account.
  2. In the left menu bar, click Attribution &gt; Partner Configuration.
  3. Search for Glance and select it. You can also use the search bar at the top if you don’t see Glace on the list.
  4. Click + Add Partner.

Step 2: Add your App and Site

Add the app and site (app version) you want to run the campaign for as follows:

  1. On the Partner Configuration page, click + Add App Site.
  2. In the App drop-down, select the app you want to run the campaign for.
  3. In the Site drop-down, select the version of the app. You must select the latest version of the app.
  4. Mark the Include View Through Attributions box, if not selected. This option enables the attribution of impressions.
  5. Mark the Enable Fraud Postbacks box, if not selected by default.
  6. Mark the Send Postbacks to Glance on all installs box. This option enables you to optimize the Glance Data Science models for precise targeting by sharing the unattributed data.
  7. Keep the Click-through attribution lookback window to the default value (7 days). This is an industry-standard value, and changing it may result in inaccurate reporting.
  8. In the Send in-app events to Glance drop-down, select On. This option enables you to capture the attribution of all the events that happened through the Glance campaign.

Step 3: Configure postbacks

Stay on the same page and configure the postbacks on Singular as follows:

  1. Scroll down to the Install & Re-engagement Postbacks section.
  2. Select the required option based on your campaign goal in the Install or Re-engagement drop-down.
  3. Enter a name for the tracker in Tracker Campaign Name Filter. Singular automatically populates the Postback URL.

    Note:

    Share the URL with the Glance team only after completing all the configuration.

  4. Mark the Send View-Through Postbacks box.
  5. Mark the Send postbacks to Glance on all installs box.
  6. Scroll down to the Event Postbacks section.
  7. Check if all the events planned for the campaign are configured in the Event Postbacks section. If not, configure the required event values. Make sure the Lookback value for all events is None.
  8. Mark Send View-Through Postbacks and Send All on each event. Singular automatically generates the Postback URL, which you can share with the Glance team.
  9. Click Done.

Step 4: Share the Postback URL

Share the Postback URLs you get while configuring Install & Re-engagement Postbacks and Event Postbacks with the Glance team.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 16 Oct, 2024

Integrate Kochava with Glance

If Kochava is your preferred MMP, you need to integrate Kochava with Glance before the campaign starts. 

Pre-requisites 

Before starting the integration, make sure you have: 

  • An active advertiser account with Kochava. 
  • Received your Advertiser ID from the Glance team.

Integration steps  

The integration of Kochava and Glance is a one-time process and applicable to all the further campaigns. The integration steps are: 

Step 1: Set up 

  1. Log in to your Kochava account. 
  2. On the right side of the header, select your required account. Then, select the app for which you want to run the campaign.

Step 2: Create a tracker

You need to create a tracker link and share it with the Glance team. The team uses the Kochava tracker in your campaigns, which allows data postback from Glance to your Kochava account. 

  1. Go to Links &gt; Campaign Manager in the left menu bar. 
  2. Click Add a Tracker. The New Tracker page opens. 
  3. Under the Tracker & Network Set Up section, enter a tracker name.

    Note:

    The Tracker Name field fills up with a system-generated name when you click Add a Tracker. It’s suggested you change the name to your preferred name.

  4. Select  Acquisition in the TRACKER TYPE drop-down. For the Re-engagement campaign, select Reengagement.

  5. Select Glance in the MEDIA PARTNER drop-down.
  6. (Optional) Select an option in the AGENCY PARTNER if applicable.
  7. Under the Destination URL section, select Landing Page.

    Note:

    Refer to Kochava’s Landing Page Creation and Maintenance Support documentation for more information on creating and using Landing Pages.

  8. (Optional) Enter required values in Custom Parameters.
  9. Click Save & Create Postback to navigate directly to the Partner Configuration page.
    Alternatively, you can click Save and navigate to the Partner Configuration by going to Apps & Assets &gt; Partner Configuration in the left menu bar.

Step 3: Configure Postbacks  

A postback—also called a callback—is data communication between two servers (Kochava and Glance in the current scenario) following an in-app event, such as an app installation or user activity. This system enables the Glance team to get real-time updates on user interactions, drops, or any issues regarding the campaign. Configure the postbacks for Glance as follows: 

  1. Go to Apps & Assets &gt; Partner Configuration in the left menu bar.

  2. Click Add a Configuration.
  3. In the MEDIA PARTNER drop-down, select Glance.
  4. Click Go.

  5. Click  Install &gt; Postback Tools  (  

      ) &gt;  Edit. The Edit Postback Install page opens.

  6. Enter or select the Glance-recommended values in the following fields:

    Field Glance recommended value Description
    PROPERTY NAME advertiser_id Identifier for the Glance campaigns.
    IMPRESSION CONVERSION DELIVERY - Determines if impression-matched install postbacks are limited.
    PACKAGE NAME/BUNDLE ID -  
    DELIVERY DELAY Realtime Delivery Enables real-time postback delivery to Glance.
    RETRY ATTEMPTS 3 Configures the number of attempts for redelivery in case of a failure.
    DELIVERY METHOD Deliver All Provides unattributed data access to the Glance.
  7. Save the postbacks.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 16 Oct, 2024

Glance Smart Lock Screen Performance Campaigns

Glance is a user-first content discovery platform developed in partnership with leading Android OEMs. It delivers an app-less experience on the Lock Screen, reaching over 400 million users globally. Glance offers full-screen ad inventory on the Lock Screen and Feed Screen, enhancing engagement with seamless content discovery. 

Note:

Glance Smart Lock Screen does not allow user-generated content and only features Glance curated or moderated content and ads.

Unlike traditional app inventories, Glance delivers non-intrusive, native, fresh, high-quality, serendipitous, and contextual ad experiences. This approach creates lasting impressions and improves users’ Lifetime Value (LTV).

Read more about Glance ad inventories.

Glance creatives follow strict guidelines and specifications defined by the Glance team and integrated OEMs. These guidelines ensure a consistent, accessible user experience while promoting app discovery, user safety, and brand safety. They also enhance user interaction and simplify development, maintenance, and updates, leading to improved quality control and more efficient rollouts of new features and fixes. 

Glance offers user acquisition and re-marketing campaign capabilities backed by first-party data from Glance and other InMobi platforms. You can also leverage the Glance's machine learning models effectively by sharing your unattributed data with the Glance team.

Once you have signed the campaign contract with the Glance team, you need to fulfill the onboarding requirements for Glance. These requirements are necessary to run the campaign efficiently and achieve the campaign goals.

Before the campaign starts, you need to integrate your preferred Mobile Measurement Partner (MMP) with Glance to enable third-party measurement and validation. During and after the campaign, you can find campaign performance reports on your preferred MMP dashboard.

Glance performance campaign flows

Glance Smart Lock Screen performance campaigns can be of two types based on the user flow:

One-click Install (OCI) campaigns

Users can initiate app installation with one click on the CTA, without unlocking the phone and getting redirected to the Google Play Store or other OEM app marketplaces. The OCI flow has the following user flow

  1. The user sees an ad on the Glance Lock screen with an Install CTA.
  2. The app download queues in the background.
  3. The user continues engaging with Glance content, such as news, games, or other cards.
  4. The user unlocks the phone.
  5. The app installs automatically, and the status is visible in the notification bar. If the internet is not available on the device, the download starts the moment the device gets the internet.

Note:

For Xiaomi and Realme (Indonesia) devices, advertisers must host the latest app on the GetApps store. For Samsung devices, advertisers need to provide the latest universal SDK.

Playstore flow

The CTA of the ad leads the user to unlock their device and redirects them to Google Play Store or any other app source.

Benefits of opting for Glance OCI over Play Store flow

Glance OCI provides several key advantages compared to the traditional Play Store flow:

  • Frictionless flow: The OCI flow simplifies user acquisition by removing unnecessary steps, making the CTIT (Click to install time) shorter. Users install apps directly from the Lock Screen with a single click, avoiding the need to navigate through the Play Store. This streamlined process boosts immediate app engagement.
  • Install rejection: Glance ensures a privacy-safe, on-device attribution system. It is a deterministic attribution partner to AppsFlyer and Adjust, thus driving precise and fraud-free attributions.

  • Access to alternate marketplaces: For advertiser apps facing stricter regulations on the Play Store, Glance OCI offers direct access to alternative marketplaces and direct APK downloads for app distribution, reducing dependency on Google Play Store policies.
  • Distraction-free Installation: When users are redirected to the Play Store, they may encounter competing apps within the same category. Glance OCI prevents this by keeping the entire process on the Lock Screen, allowing conversions to happen in one click without distractions.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 16 Oct, 2024

Glance Performance Ad Inventories

You can buy Glance Smart Lock Screen Inventories through direct deals with Glance to reach 400 million Glance users. The following inventories are available for performance ads on Glance:

  • Lock Screen: Glance Lock Screen is the first screen of over one-third of Android mobile phones, visible when users pick up their phones. This screen is meant for premium static display ads, thus driving the fastest discoverability of advertisers’ products and services. 
  • Feed: Glance Feed is another user destination of the Glance Smart Lock Screen platform which users can access after clicking the CTA on the Lock Screen, offering capabilities to run more engaging formats (full-screen display and video ads), thus driving additional conversions. 

OEM availability

Glance is available on the following mobile OEMs:

  • Xiaomi
  • RealMe
  • Samsung
  • Oppo
  • Vivo
  • Motorola

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 16 Oct, 2024

Audience Targeting for Glance Performance Campaigns

Glance, a consumer-first content platform, has access to over 400 million users worldwide. Every third Android device has Glance. These users consume diverse content on Glance, including news, health, lifestyle, food, sports, entertainment, automobiles, etc. This extensive user base provides valuable first-party data for targeted campaigns.

For performance campaigns, the Glance team uses these rich first-party data from its platform and other InMobi platforms as the foundation for the Glance Machine Learning models. Additionally, Glance also leverages advertisers’ data, real-time events, and past campaign data (advertiser-specific) to enhance targeting efficiency. The models dynamically create audience segments to target the right set of users.

Note:

Glance ads strictly follow data policies to safeguard advertisers’ data. The advertisers' and campaigns’ data are only used to scale their future Glance campaigns and are not shared with or used for other advertisers’ campaigns.

The data required to improve the efficiency of the models comes from the following sources:

User acquisition campaigns

For UA campaigns, Glance uses first-party and advertisers’ data to dynamically build the targeting rules and audiences:

  • Glance first-party data signals:
    • Consented data from Glance users and other InMobi platforms provide high-quality user behavioral, content consumption, and ad interaction data.
    • Real-time events data captured during the campaign (installs, post-install events, and user engagement) dynamically improves the targeting.
    • Past Glance campaigns provide insights into how users interact with various content and ad categories to precisely target high-value users.

      Note:

      Your data is only used to scale your future campaigns and is not shared with or used for other advertiser’s campaigns.

  • Advertisers’ unattributed data: You can leverage robust Glance ML models more efficiently if the models are trained on your unattributed data.  The data helps make the campaign targeting more precise, efficient, and compliant with user privacy regulations. Read more on how sharing unattributed data with Glance helps advertisers

Remarketing campaigns

For REM campaigns, Glance uses first-party and advertisers’ data signals to dynamically build the targeting rules and audiences:

  • Glance first-party data signals:
    • Consented data from Glance users and other InMobi platforms provide high-quality user behavioral, content consumption, and ad interaction data.
    • Past Glance campaigns provide insights into how users interact with various content and ad categories to precisely target high-value users.

      Note:

      Your data is only used to scale your future campaigns and is not shared with or used for other advertiser’s campaigns.

  • Advertiser’s first-party data signals:
    • Unattributed data can be used to train Glance ML models to target your preferred audience.  The data helps make the campaign targeting more precise, efficient, and compliant with user privacy regulations. Read more on how sharing unattributed data with Glance helps advertisers
    • Advertiser audiences are the set of audiences acquired by advertisers. Glance can show personalized ads to encourage re-engagement and conversions. Contact the Glance team to learn more about audience sharing.

Importance of unattributed audience data  

Although Glance first-party data are the primary source for building targeting rules and audiences, you must share unattributed data with the Glance team for the following reasons:

Improves ML model training and accuracy 

Unattributed data provide abundant information about user behavior and preferences and are not limited to ad-driven interaction. By enabling unattributed data on your MMP dashboards, you allow Glance to access a broader spectrum of data points. These include organic installs and user actions within the app, which contribute to more comprehensive training samples for Glance ML models.   

With more robust data sets, models predict user behavior more accurately and optimize ad placements effectively. 

Reduces exploration time on the open internet 

In the absence of unattributed data, Glance may allocate some campaign period and budget to identify potential conversion opportunities across various app categories. This process is costly and inefficient due to the high variance in conversion probabilities and the sparsity of conversion events. 

Instead, the Glance team can utilize the historical unattributed data patterns to make informed bidding decisions and allocate budget efficiently, thus, improving RoAS. 

Overcomes data sparsity challenges 

In scenarios where pre-historic data is sparse, unattributed data provides additional contexts and user interaction signals, even if it’s not directly linked to a conversion. This broader data view allows Glance internal systems to identify and learn from subtle patterns, user drops, and other signals that precede conversions, enriching the training dataset and enabling more precise targeting. 

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 18 Oct, 2024

Glance Performance Creative Specifications and Guidelines

Glance Lock Screen and Feed ad creatives are non-intrusive, native, high-quality, and contextual. Unlike standard mobile app ads, Glance ad creatives are moderated by Glance Creative Labs—a team of creative designers leveraging Glance Generative AI capabilities.

Once you sign a campaign contract with the Glance team, you share your existing creatives’ open files (.ai or .psd) with them. The Glance Creative Labs does a quality analysis of the creative and converts it into the Glance-compatible format for the campaign.

Based on the available inventories, Glance publishes full-screen display and video ads, which follow the Glance creative specifications and guidelines.

Glance creatives follow strict guidelines and specifications defined by the Glance team and integrated OEMs. These guidelines ensure a consistent, accessible user experience while promoting app discovery, user safety, and brand safety. They also streamline development, maintenance, and updates, allowing for quality control and efficiency in rolling out new features and fixes.

OEM-wise creatives

Glance has some basic differences in UI across OEMs. These differences are due to OEM partnerships and do not change the user experience. Here are some examples: 

Display ads

Glance offers premium full-screen display ad inventories on Lock Screen and Feed. 

Lock Screen

Advertiser’s requirements

Share the creative open files and copy of the ad (.ai or .psd format) with the following specifications:

  • Format: .png or .jpeg
  • Size: 1440x2560 pixels
  • File size: Maximum 1 MB
  • Advertiser name: Maximum 15 characters

Feed

Glance Feed is another user destination of the Glance Smart Lock Screen platform which users can access after clicking the CTA on the Lock Screen, offering capabilities to run more engaging formats (full-screen display and video ads), thus driving additional conversions.

Advertiser’s requirements

Share the creative open files and copy of the ad (.ai or .psd format) with the following specifications:

  • Format: .png or .jpeg
  • Size: 1440x2560 pixels
  • File size: Maximum 1 MB
  • Advertiser name: Maximum 15 characters

Video ads

Glance offers premium full-screen video ad inventories on Feed.

Advertiser’s requirements

Share the creative open files and copy of the ad with the following specifications:

  • Format: .mp4
  • Resolution:
    • 9:16 (recommended)
    • 16:9
  • File size: Maximum 10 MB
  • Advertiser name: Maximum 15 characters

Creative guidelines

Glance follows these creative guidelines to ensure effective and engaging ad experiences:

  • Ensure the hero product, person, or text is centered on the screen to improve visual composition and user engagement.
  • Lock Screen ad content should be limited within the following margins:
    • Top: 725 pixels
    • Bottom: 725 pixels
    • Left: 200 pixels
    • Right: 200 pixels

       
  • Feed ad content should be limited within the following margins:
    • Top: 460 pixels
    • Bottom: 480 pixels
    • Left: 195 pixels
    • Right: 195 pixels
  • Keep the design and the visuals minimalistic to reduce any clutter. Avoid a lighter background.
    • Avoid text if it’s not a must. Use minimal text on impactful visuals to create compelling stories. Leverage the space around the Lock Screen Title for any additional text.
  • Do not add more than three focus visual elements in Lock Screen creative, to ensure effective brand message delivery.
  • Use visuals that depict the ad or brand’s core message for better user attention.
  • Create intriguing content for the Lock Screen, encouraging the users to explore more branded content on Glance Feed.
  • The image composition should communicate the brand’s voice or benefits.
  • Avoid explicit display of meats, religious symbols, blood, cuss words, calling out other rival OEMs and brands, sharp objects, skin shows, maps, and geopolitical conflicts.

Restricted categories

Glance ensures complete brand safety by adopting a rigorous approach to content evaluation. The Lock Screen serves as a personal and exclusive space to Glance users. Glance has restricted the following content categories in ads:

  • Adult, obscene, or sexual content 
  • Arms, ammunition, or military conflicts
  • Death and injury
  • Online piracy
  • Illegal and spam content
  • Hate speech or acts of aggression
  • Terrorism, crime, or violent acts
  • Sensitive social issue or human rights violation
  • Illicit drugs, tobacco, cigarettes, or vaping

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 16 Oct, 2024

Ensuring Fraud-Free Campaigns with Glance

Glance is inherently safe and fraud-free because of strict content regulations, no user-generated content, OEM guidelines, SDK integration with the OEMs, and most importantly it can’t be downloaded as an app and only present on genuine devices. The ad content moderation and publishing on Glance inventories are managed directly by the Glance team.

Glance also offers third-party fraud safety and campaign measurement integrations for advertisers.

Third-party fraud safety and campaign measurement

Glance supports the following third-party fraud-safety and campaign measurement tools:

Key actions for advertisers

You can take the following actions to avoid any fraud and maximize return on ad spend and get accurate attribution:

  • Complete all the Glance onboarding requirements
  • Keep your MMP SDKs updated to benefit from the latest security updates from Glance and your preferred fraud detection partners.
  • Glance’s unique user flows are mostly supported on all fraud and measurement partners but check if Glance flows are whitelisted on your preferred third-party partners.  

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 16 Oct, 2024

Pricing Model for Glance Campaigns

Glance offers flexible pricing models to advertisers depending on the campaign goals, target audience, verticals, etc. Please contact the Glance team to understand more about pricing for your campaign.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 16 Oct, 2024

Overview

InMobi recognizes and affirms the pivotal role of Data Subject Requests (DSR) in upholding individuals' privacy rights. Following global data protection laws, any individual who wishes to exercise their rights, including but not limited to, rectifying, erasing, restricting, or objecting to the processing of their personal or sensitive information can make a DSR. In line with our unwavering commitment to protecting the privacy of data subjects, InMobi undertakes to respond to all data subject requests within the prescribed timeframe. 

If you are partnering with InMobi or any of its affiliates(s), whereby you provide us with personal or sensitive personal information of data subjects for advertising purposes (such as IP address, advertising IDs, and precise location), you can use this InMobi Data Subject Rights (DSR) Request Form. This webform enables you to submit the following DSR(s) regarding the information that InMobi Exchange processes: 

  • Right to erasure; 
  • Right to opt out of sell or share of personal information; 
  • Right to limit use/disclosure of sensitive personal information; 
  • Right to opt out of processing

For more details and information about how we use and protect personal or sensitive information, please review your 'Agreement' with us. 

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 03 Oct, 2024

DSR Request Form

The purpose of this document is to help navigate publishers through the functioning of InMobi Data Subject Rights (DSR) Request Form.

Ingress Point

Follow these steps to access the InMobi Data Subject Rights (DSR) Request Form via the Data Subject Rights tab through the ⁠Publisher Dashboard.

  1. Log in to the Publisher Dashboard using your credentials.
  2. Navigate to Compliance on the left-side menu and select Data Subject Rights. On the right, a page will open explaining the purpose and importance of DSR.
  3. Click Go to DSR Request Form.

Login

  1. Upon redirecting, you will land on a page where the publisher ID will be automatically filled. Click Get OTP via Email. This will open a page where a message will display with the partial email ID where the OTP has been sent.

     

  2. Once you receive the OTP, enter it and click Submit. This will open the user page where the DSR form is available.

    Note

    The admin email ID linked to the publisher account will receive the OTP. To check the email ID that will receive the OTP or to update your DSR email IDs, please raise a ticket at https://support.inmobi.com/mytickets. To do this, select InMobi Publisher Platform and choose Data Subject Rights as Category. 

    The support center is not meant to raise DSR Requests.

Fill in DSR Form

You can share your DSR data using the DSR form.

  1. Once the DSR Form opens, enter the details in the following mandatory fields:
    • Select the OS type: Select as per your requirement of Android/iOS/Both.
    • Select the DSR Type: Choose user rights from the drop-down. Currently, only RTO and RTF are enabled through the portal.
    • Download Sample File: As per your selection in OS type, a preset format file will be downloaded. Use this file to upload the list of GPIDs/IDFAs back to the portal.
    • Upload CSV File with Device IDs: Click Choose File to upload the list back to the portal. The file format must be CSV and the schema should be as same as the sample file.
      • Sample in case of OS chosen as Android/iOS
        deviceId
        0f90686e-2153-4e37-933d-f06c01877cee
        e6cb0cbc-25d5-4257-9fce-750e66a70af7
      • Sample in case of OS chosen as both
        deviceId deviceSubType
        0f90686e-2153-4e37-933d-f06c01877cee IDFA
        e6cb0cbc-25d5-4257-9fce-750e66a70af7 GPID
  2. [Optional] Select Privacy Law: Choose an applicable region from the drop-down with the privacy law under which uploaded DSRs are raised.
  3. Once the file is uploaded, click Submit. When the upload is successful, you will receive the following message.

    The Request ID received here will be unique and can be tracked under the Request History tab.

Request History 

Select Request History from the left navigation to view and track all the requests with their status, type, and unique Request ID.

Status

  • ACCEPTED: Status of your Request ID will change to Accepted with the successful submission of the DSR file.
  • ACKNOWLEDGED: Status of the Request ID will change to Acknowledged when the submitted file becomes part of the central compliance table. Upon acknowledgment, you will receive an email to your registered email id.
  • SUCCESS: Status of the Request ID will change to Success when your request has been executed completely. You will receive an email to your registered email id.
  • DELAYED: Status of the Request ID will change to Delayed if due to technical issues we are unable to execute your request within 30 days from the date of submission. You will receive an email to your registered email id.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 03 Oct, 2024

InMobi DSP Overview

InMobi DSP allows advertisers to buy mobile in-app performance ad inventories across InMobi Ad Exchange and other leading ad exchanges. InMobi is integrated with the following ad exchanges:

  • InMobi Exchange
  • Google Ad Exchange
  • AppLovin
  • Unity
  • IronSource
  • PubMatic
  • BidMachine
  • Vungle Exchange
  • Digital Turbine
  • Chartboost
  • BidSwitch
  • Criteo
  • Ad Generation
  • Magnite
  • LoopMe
  • Ogury
  • Smaato
  • Media.net

 

Platform interoperability between InMobi DSP and Ad Exchanges

The DSP is integrated with multiple ad exchanges via APIs, enabling real-time bidding (RTB) and data exchange.

  • User synchronization: To ensure accurate targeting, the DSP often synchronizes user data with ad exchanges. This involves matching identifiers (device and users), and other relevant signals.
  • Real-Time Bidding (RTB) protocols: The DSP adheres to RTB protocols, such as OpenRTB, which standardizes the auction process. These protocols define how bid requests and bid responses should be formatted and processed.
  • Ad creatives: The ad exchanges and SSPs programmatically receive the creatives from the DSP after winning a bid.
  • Bid management and optimization: The DSP uses algorithms and machine learning models to determine how much to bid on each impression based on various factors, such as user data, past campaign performance, and Key Performance Indicators (KPIs).

Ads buying lifecycle on InMobi DSP

The ad buying process on InMobi DSP involves the following steps:

  1. Receiving bid requests: When a user visits an app, the ad slot raises an ad request through an SSP. The SSP creates a bid request and forwards it to an ad exchange. The exchange optimizes the request and forwards it to the DSP. This request includes information about the user, the context of the ad placement, and other user-relevant details.
  2. Ad slot request: Simultaneously, advertisers create an ad slot request (ad campaign) with InMobi DSP and share success metrics and creatives.
  3. Processing bid requests: The DSP processes bid requests from the ad exchanges. It filters out fraud and invalid requests and analyzes the data using InMobi machine learning models to determine whether the user matches the target audience for the ad slot request.
  4. Bid decision and submission: If the user is deemed a good match for the advertiser goal, the DSP calculates an optimal bid price and submits the bid response back to the ad exchange. This process happens in milliseconds.
  5. Auction and winning bid: The ad exchange conducts an auction with all the bids it receives from various sources.
  6. Ad delivery: Once the DSP wins the bid, it instructs the ad exchange to deliver the ad creative to the user as the ad response.
  7. Tracking and reporting: InMobi DSP has partnered with the leading MMPs to track and validate the ad's performance in real-time, gathering data on impressions, clicks, conversions, and other metrics. Advertisers can use any of the InMobi-partnered MMPs for tracking and reporting.

How InMobi DSP’s bidding optimization works

InMobi DSP uses AI/ML-based bidding technology to improve user acquisition and re-marketing using the following processes:

  • Target KPIs: The bidding process starts by identifying the target Key performance indicators (KPI), for example, Return on Ad Spent (RoAS) and Cost per Install (CPI).
  • Compute bids: InMobi's AI/ML algorithms dynamically modify bids for each request. This process considers over 50 different attributes, moving beyond traditional metrics such as Click-Through Rate (CTR) for more accurate predictions and better outcomes.
  • Calculating bids: Bids are calculated based on various factors, ensuring optimal spending. The AI/ML models consider attributes related to the user, the requirement, and the inventory:
    • Requirement-based: Factors include category grouping and product collection, which help tailor ads to specific product categories or collections.
    • User-based: User profiles, location, locality, and purchase frequency are analyzed to determine the user's value and conversion likelihood.
    • Inventory-based: The platform evaluates supply bundles, exchanges, device types, carriers, ad types, and the hour of the day to optimize ad placement and timing.
  • User segmentation: The technology segments users based on their Lifetime Value (LTV) into high, medium, and low. This segmentation helps prioritize spending on high-value users while managing budget allocations for medium and low-value users.
  • Optimization: By continuously analyzing user behavior and adjusting bids, InMobi DSP ensures that spending is optimized for conversions, achieving the best possible performance for the given KPIs.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 16 Oct, 2024

Audience Targeting on InMobi DSP

InMobi DSP's Machine Learning models dynamically create and update audiences for precise targeting, ensuring advertising efforts are directed toward the most relevant user groups and optimizing engagement and conversion rates. The data required to improve the efficiency of the models comes from the following sources:  

  • For user acquisition campaigns: 
    • InMobi’s first-party data from the Glance and other InMobi platforms 
    • Unattributed data shared by the advertisers 
    • Real-time ad events  
    • Integrated Ad Exchanges, including InMobi Exchange, Vungle, Google Ad Exchange, etc. 
  • For remarketing campaigns: 
    • Advertiser’s audience  
    • Custom audience

User acquisition campaigns

The audience data required for training the models for the UA campaigns are: 

  • InMobi’s first-party data from the Glance and other InMobi platforms provide high-quality user behavioral, content consumption, and ad interaction data.  
  • Unattributed data from advertisers improves the accuracy and efficiency of ad targeting and aligns with cost-effective strategies and compliance with evolving privacy regulations.  Read more on how sharing unattributed data with InMobi DSP helps advertisers.
  • Real-time events data captured during the campaign, including metrics such as installs, post-install events, and user engagement dynamically improves the targeting. 
  • Integrated Ad Exchanges, including InMobi Exchange, Vungle, Google Ads, etc. also provide quality data for InMobi DSP bidder. 

Remarketing campaigns

The audience data required for training the models for the REM campaigns are: 

  • Advertiser’s audience: For a remarketing campaign, InMobi DSP targets advertisers’ audiences by showing them personalized ads to encourage re-engagement and conversions. These data have device IDs and other required information. Importantly, these segments cannot be shared across different advertisers. You can ingest your Audience data into InMobi DSP using the Audience Segmentation and Ingestion process
  • Custom audience: If required for a campaign, InMobi DSP can also build custom audiences. The DSP creates and utilizes custom audiences for campaigns by combining rule-based data with various event-driven data sources. 

Importance of unattributed audience data   

Although InMobi DSP has access to quality first-party and third-party data, the advertisers’ unattributed data helps the campaign in the following ways:

Improves InMobi machine learning model training and accuracy  

Unattributed data sets provide abundant information about user behavior and preferences and are not limited to ad-driven interaction. Enabling unattributed data on your MMP dashboards allows the DSP to access a broader spectrum of data points. These include organic installs and user actions within the app, which contribute to more comprehensive training samples for the ML models.    

With more robust data sets, models predict user behavior more accurately and optimize ad placements effectively.  

Reduces exploration time on the open internet  

In the absence of unattributed data, InMobi DSP may allocate some campaign period and budget to identify potential conversion opportunities across various app categories. This process is costly and inefficient due to the high variance in conversion probabilities and the sparsity of conversion events.   

Instead, InMobi team can utilize the historical unattributed data patterns to make informed bidding decisions and allocate budget efficiently, thus, improving ROAS for advertisers.  

Overcomes data sparsity challenges  

In scenarios with sparse pre-historic data, unattributed data provides additional contexts and user interaction signals, even if it’s not directly linked to conversion. This broader data view allows InMobi internal systems to identify and learn from subtle patterns, user drops, and other signals that precede conversions, enriching the training dataset and enabling more precise targeting.

Facilitates comprehensive performance analysis  

By tracking all events leading up to conversions, the InMobi team can better understand the customer journey and identify which interactions are most likely to lead to conversions. This insight is vital for optimizing campaign strategies and allocating resources more effectively.  

Importance of unattributed audience data for iOS campaigns

Apple's App Tracking Transparency (ATT) framework emphasizes user privacy by requiring explicit consent for tracking. Despite this, the relevance and importance of unattributed first-party data still exist. InMobi DSP remains effective in driving performance for advertisers by leveraging first-party data responsibly and in compliance with ATT. The data comes from the following sources: 

  • The Identifier for Advertisers (IDFA): For users who have opted in  
  • The Identifier for Vendors (IDFV): Strictly follows Apple's guidelines, ensuring it is not used for cross-publisher user identification.  

For example, for a gaming studio with multiple apps, the DSP leverages unattributed data from various bundle IDs that have enabled IDFA and IDFV. The availability of the opted-in IDFA and the publisher-specific IDFV in the first-party data allows the identification of similar users in the supply stream, serving as positive conversion labels for the models. 

The presence of crucial contextual signals, including OS version, handset type, city, carrier, and the precise timing of conversion events within the unattributed data, provides valuable contextual data to fine-tune the optimization engine.

Note:

Advertisers must enable the tracking of all event streams that precede a purchase. This allows the InMobi DS models to understand the correlations between various events.When purchase event data is limited, InMobi DSP uses upper-funnel event data to improve the model accuracy.

Benefits of InMobi DSP audience segments

The InMobi DSP audience segments have the following benefits:

Enhanced targeting

By using advanced machine learning-backed segments, InMobi DSP allows advertisers to target their ads more precisely, increasing the relevance of the ads to the users.

Improved ad performance

Targeted advertising based on well-defined segments leads to higher engagement and conversion rates, as ads are more relevant to the users' interests and behaviors.

Data-driven insights

The categorization of audiences provides valuable insights into user behaviors and preferences, helping advertisers refine their strategies and improve campaign effectiveness.

Optimized budget allocation

 Advertisers can allocate their budgets more efficiently by focusing on high-performing segments, thereby maximizing RoAS.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 16 Oct, 2024

MMP Integration Overview

Before the campaign can go live on InMobi DSP, advertisers must integrate their Mobile Measurement Partner (MMP) with the DSP. MMPs are third-party attribution platforms that capture campaign data and attribute every user action. Advertisers can track and analyze campaign performance across multiple ad partners on an MMP. 

Advertisers need to embed the MMP’s software development kit (SDK) in their app and capture and receive user events (Clicks, installs, etc.) using tracking links advertisers collect from InMobi DSP. Read more about MMP.

Note:

For the current version, MMP integration for InMobi DSP is available only for Andorind campaigns excpet for AppsFlyer. For iOS campaigns, the integration guides will be added soon for the other MMPs.

How InMobi DSP-MMP integrations work 

The DSP and MMP integrations help advertisers validate the campaign attribution numbers on their MMP dashboards.

  1. Advertisers sign a campaign contract with InMobi Sales after providing all the required onboarding information.
  2. Advertisers configure their MMPs for the DSP.
  3. They share the tracking URL with the InMobi team. 
  4. The InMobi team adds those URLs to their campaign management tool and publishes the campaign.
  5. Advertisers can find the report on their MMP dashboard. 

Supported MMPs  

InMobi DSP supports integration with the following MMPs: 

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 16 Oct, 2024

Integrate AppsFlyer with InMobi DSP

If AppsFlyer is your preferred MMP, you need to integrate it with InMobi DSP before the campaign starts. 

For iOS campaigns 

For running campaigns on iOS devices, the integration starts with activating InMobi DSP as a partner and changing the required configuration on the advertiser’s AppsFlyer dashboard. Post configuration, enable Probabilistic attribution. Advertisers need to generate and share the attribution links with InMobi account managers. Considering InMobi's recommendation, advertisers must enable and configure SKAN (Store Kit Ad Network) for their campaigns. 

Pre-requisites 

Before the integration, make sure you have: 

  • An active advertiser account with AppsFlyer. 
  • Received a gpm_id from your InMobi Account Manager. 

Integration steps 

Follow the steps to integrate the InMobi DSP and AppsFlyer to enable attribution (Probabilistic and Deterministic) for iOS app campaigns:

Step 1: Activate InMobi DSP as a partner

The integration starts with the activation of the InMobi DSP on your AppsFlyer account using the following steps: 

  1. Log in to your AppsFlyer advertiser account.
  2. Go to Collaborate &gt; Partner Marketplace in the left menu bar.

    ad-exchange-appsflyer-menubar

  3. In the search bar, search for InMobi DSP and select it. You move to the Integration setup page.

  4. Click Set up Integration.
  5. In the Integration tab, select the app for the integration and turn on the Activate partner toggle.

Step 2: Configure Integration settings 

After you activate InMobi DSP, you need to configure the integration settings for InMobi DSP as follows: 

  1. In the Integration tab, turn off Advanced Privacy
  2. In gpm_id, enter the GPMID value provided by your InMobi Account Manager.

    ad-exchange-appsflyer-gpmid

  3. In the Install attribution section, turn on the Install view-through attribution toggle.

    ad-exchange-appsflyer-attribution

  4. In the Default postbacks section, select All media sources, including organic* against Install (Event Name) in the for users from drop-down.

    ad-exchange-appsflyer-postback

    Note:

    *Organic refers to the advertiser’s unattributed data.

  5. Under the In-app event settings section, enter the GPMID value provided by your InMobi account manager, which is the same as in General settings.

  6. Enable the In-app event postbacks toggle. InMobi recommends Lifetime as the value of the In-app event postback window. The minimum value is 6 months. 

  7. Click Add event to add postbacks for in-app events. Add all the funnel events and their details. 

  8. Click Save integration

Step 3: Enable Probabilistic attribution 

Enabling probabilistic attribution as follows: 

  1. Go to Settings &gt; App Settings in the left menu bar. 
  2. Switch on the Enable view-through attribution via probabilistic modeling toggle.

    ad-exchange-appsflyer-prob-view

Step 4: Generate attribution links

You can generate the attribution link, which your InMobi Account Manager uses while creating the campaign, as follows:

  1. Go to the Attribution Link tab. The Parameter name and Value fields are auto-populated.  
  2. Enable the Retargeting settings toggle for re-marketing campaigns. 
  3. Set the CTA and VTA values mentioned as follows:
    • CTA: 7 days
    • VTA: 24 hours

    ad-exchange-appsflyer-cta

Step 5: Enable permissions

You need to provide the following permissions to InMobi DSP on the AppsFlyer dashboard:

  1. Go to the Permissions tab.
  2. Enable the following permission toggles:

    ad-exchange-appsflyer-permission

Step 6: Set up SKAN

You can activate the SKAN for your iOS campaigns as follows:

  1. Go to Settings &gt; SKAN Conversion Studio in the left menu. 
  2. Click  

      and turn on the  SKAN measurement toggle.

  3. Select one of the following measurement modes based on your requirement and click Continue:
    • SKAN: Measures fine and coarse-grained metrics across retention, revenue, and engagement.
    • Custom: Measures multiple metrics across retention, revenue, and engagement.
    • Revenue: Measures revenue ranges.
    • Conversion: Measures users' in-app events such as installs, registrations, and purchases.
    • Engagement: Measures users' in-app user interactions, such as likes, comments, and reviews.
  4. After selecting the measurement mode, decide which in-app events you want to capture for campaigns. Select in-app events and their range.

    Note:

    You can add a maximum of six unique in-app events.

    ad-exchange-appsflyer-mode

  5. Click the Download mapping file to save the Conversion Value mapping locally.

  6. (Optional) You can upload your custom Conversion Values by clicking Upload Custom Decode Mapping File.

    Note:

    Learn more about Custom Decode. Refer to AppsFlyer’s SKAN Conversion Studio help for more details on setting up SKAN.

Step 7: Save the integration  

Check the settings done in the previous step and click Save. 

InMobi’s recommendations for SKAN

InMobi recommends you set up SKAN Conversion Values as follows for the best attribution results: 

  • Select Conversion or Custom model while selecting the measurement mode.
    • For the Conversion model, configure all events (recommended six) starting from the app open to your final KPI.
    • For the Custom model, click + Add measurement to add the six events.
  • Configure Activity Window to measure the users' activity during an interval. This step is necessary for capturing attribution because the activity window may expire before the user performs a specific action. Read more about Activity Window for SKAN versions.
  • In the Activity Window section, set the highest interval value for the in-app events (recommended six events). 

For Android  

The integration for the Android campaigns starts with activating InMobi DSP as your partner on your AppsFlyer dashboard and changing the required configuration. You can then generate and share the attribution links with your InMobi account manager.  

For any queries related to the integration, please contact your InMobi Account manager. 

Pre-requisites 

Before starting the integration, make sure: 

  • You have an active advertiser account with AppsFlyer. 
  • You have received a gpm_id from your InMobi Account Manager. 

Integration steps

Follow the steps to integrate the InMobi DSP and AppsFlyer to enable attribution for Android app campaigns:

Step 1: Activate InMobi DSP as a partner

The integration starts with the activation of the InMobi DSP on your AppsFlyer dashboard using the following steps:

  1. Log in to your AppsFlyer advertiser account.
  2. Go to Collaborate &gt; Partner Marketplace in the left menu bar.

    ad-exchange-appsflyer-menubar

  3. In the search bar, search for InMobi DSP and select it. You move to the Integration setup page.

  4. Click Set up Integration.
  5. In the Integration tab, select the app for the integration and turn Activate partner on.

Step 2: Configure Integration settings

After you activate InMobi DSP, you need to configure the integration setting for InMobi DSP as follows:

  1. In the Integration tab, turn off Advanced Privacy.
  2. In gpm_id, enter the GPMID value provided by your InMobi Account Manager.

    ad-exchange-appsflyer-gpmid

  3. In the Install attribution section, turn on the Install view-through attribution toggle.

    ad-exchange-appsflyer-attribution

  4. In the Default postbacks section, select All media sources, including organic against Install (Event Name) in the for users from drop-down.

  5. Under the In-app event settings section, enter the GPMID value provided by your InMobi account manager, which is the same as in General settings

  6. Enable the In-app event postbacks toggle. Do not change the default value of the In-app event postback window.

  7. Click Add event to add postbacks for in-app events. Add all the funnel events and their details.

    ad-exchange-appsflyer-add-event

  8. Click Save integration.

Step 3: Generate attribution links

You can generate the attribution link your InMobi Account Manager uses while creating the campaign as follows:

  1. Go to the Attribution Link tab. The Parameter name and Value fields are auto-populated.
  2. Enable the Retargeting settings toggle for re-marketing campaigns.
  3. Set the CTA and VTA values mentioned as follows:
    • CTA: 7 days
    • VTA: 24 hours

    ad-exchange-appsflyer-cta

Step 4: Enable permissions

You need to provide the following permissions to InMobi DSP on the AppsFlyer dashboard:

  1. Go to the Permissions tab.
  2. Enable the following permission toggles:

    ad-exchange-appsflyer-permission

Step 5: Save the integration

Check the settings done in the previous steps and click Save.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 16 Oct, 2024

Integrate Singular with InMobi DSP

If you use Singular as your preferred MMP, you need to integrate it with InMobi DSP before your first campaign starts.

Pre-requisites 

Before starting the integration, make sure you have

  • An active advertiser account with Singular. 
  • Received your gpm_id from the InMobi team. 

Note:

These integration steps are valid for Android campaigns. The integration steps for iOS campaigns will be updated soon.

Integration Steps 

Integrating Singular and DSP is a one-time process applicable to all further campaigns. 

Step 1: Select InMobi as the partner

Select InMobi DSP as the partner of Singular for your campaigns as follows: 

  1. Log in to your Singular account.
  2. In the left menu bar, click Attribution &gt; Partner Configuration.
  3. Search for InMobi DSP and select it. You can also use the search bar at the top if you don’t see InMobi DSP on the list.
  4. Click + Add Partner.

Step 2: Add your App and Site

Add the app and site (app version) you want to run the campaign for as follows:

  1. On the Partner Configuration page, click + Add App Site.
  2. In the App drop-down, select the app you want to run the campaign for.
  3. In the Site drop-down, select the version of the app. You must select the latest version of the app.
  4. Mark the Include View Through Attributions box, if not selected. This option enables the attribution of impressions.
  5. Mark the Enable Fraud Postbacks box, if not selected by default.
  6. Mark the Send Postbacks to InMobi DSP on all installs box. This option enables you to optimize the InMobi Data Science models for precise targeting by sharing the unattributed data.
  7. Keep the Click-through attribution lookback window to the default value (7 days). This is an industry-standard value, and changing it may result in inaccurate reporting.
  8. In the Send in-app events to InMobi DSP drop-down, select On. This option enables you to capture the attribution of all the events that happened through the DSP campaign.

Step 3: Configure postbacks

Stay on the same page and configure the postbacks on Singular as follows:

  1. Scroll down to the Install & Re-engagement Postbacks section.
  2. Select the required option based on your campaign goal in the Install or Re-engagement drop-down.
  3. Enter a name for the tracker in Tracker Campaign Name Filter. Singular automatically populates the Postback URL.

    Note:

    Share the URL with the InMobi team only after completing all the configuration.

  4. Mark the Send View-Through Postbacks box.
  5. Mark the Send postbacks to InMobi DSP on all installs box.
  6. Scroll down to the Event Postbacks section.
  7. Check if all the events planned for the campaign are configured in the Event Postbacks section. If not, configure the required event values. Make sure the Lookback value for all events is None.
  8. Mark Send View-Through Postbacks and Send All on each event. Singular automatically generates the Postback URL, which you can share with the InMobi team.
  9. Click Done.

Step 4: Share the Postback URL

Share the Postback URLs you get while configuring Install & Re-engagement Postbacks and Event Postbacks with the InMobi team.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 16 Oct, 2024

InMobi DSP Creative Specifications and Guidelines

On Ad exchanges, InMobi DSP supports all popular mobile in-app ad formats. You can buy the following ad formats through InMobi DSP on ad exchange inventories:

Display ads

Display ads are static or animated images with standard dimensions. InMobi DSP supports the following sizes: Small banners, Medium banners, Interstitials, and Native Display. 

Small banners

Small banners are small-sized rectangular ads placed at the top, between paragraphs, and at the bottom of an article or a page. They are nonintrusive, cost-effective, frequent, contextual, and efficient formats that can reach a wider audience with minimal loading time and precise measurement.

The specifications of small banners are: 

  • Dimensions: 640 x 100 pixels
  • Media format: .jpg or .gif
  • Maximum file size: 500 KB

ad-exchange-creative-spec-600x100

 

Medium rectangle banners

Medium banners are rectangular ads of medium size. These ads can be placed between the content, loading page, reward pages, etc. They are nonintrusive, cost-effective, frequent, contextual, and efficient formats that can reach a wider audience with minimal loading time and precise measurement.  

The specifications of small banners are: 

  • Dimensions: 600 x 500 pixels
  • Media format: .jpg or .gif
  • Maximum file size: 500 KB

ad-exchange-creative-spec-600x500

 

Interstitials

Interstitials are rectangular ads that cover the screen on which they are displayed. These are high-impact ads.  The specifications of interstitials are: 

  • Dimensions: 640 x 960, 960 x 640, 640 x 1136, and 1136 x 640 pixels
  • Media format: .jpg or .gif
  • Maximum file size: 500 KB

Note:

Refer to the InMobi Ads Creative Handbook for creative references.

Native ads

Native ads blend in with the content on which they appear, providing a more seamless and less intrusive user experience. These ads mimic the look, feel, and function of the media format in which they are seen, such as articles, videos, or other media. These ads offer higher engagement rates, improved CTRs, stronger brand affinity, reduced ad fatigue, and better ad rendering, along with contextual and personalized targeting.

There are three types of native: Rich display, Rich video, and Icons.

Rich display ads

These are medium rectangle, fullscreen portrait, and wide rectangle ads. You can provide the ad creatives for the rich display ads based on the following specifications:

  • Primary asset type (Mandatory): Image (1200 x 628 pixels)
  • Secondary Asset (Mandatory): Icon (300 x 300)
  • Text character limits:
    • Title: 20
    • CTA: 20
    • Sponsored By text: 20
    • Description: 140 characters

Rich video ads

These are medium rectangle, full-screen portrait, and wide rectangle video ads. You can provide the ad creatives for the rich video ads based on the following specifications:

  • Primary asset type (Mandatory): Video
    • Full-screen landscape:
      • Aspect ratio: 4:3 to 16:9
      • Video resolution: 1080p or 720p
    • Full-screen portrait:
      • Aspect ratio: 9:16 to 3:4
      • Video resolution: 1080p, 720p
  • Secondary asset (mandatory): Image
    • Wide rectangle: 1200 x 628 pixels
    • Square: 300 x 300 pixels
  • Text character limits:
    • Title: 20
    • CTA: 20
    • Sponsored By text: 20
    • Description: 140

Icon ads

Icon ads in mobile apps are small, square-shaped, visually appealing ads typically displayed as icons within the app interface. These often appear in menus, navigation bars, or as part of a feed. You can provide the ad creatives for the icon ads based on the following specifications:

  • Primary asset type (Mandatory): Icon image (300 x 300 pixels)
  • Text character limits:
    • Title: 20
    • CTA: 20
    • Sponsored By text: 20
    • Description: 140 characters

Note:

Refer to the InMobi Ads Creative Handbook for creative references.

Video with end cards

Video ads with end cards are short video ads displayed over the content or a page and followed by a static or animated display CTA card. The specifications of video ads are:

  • Dimensions: 1920 x 1080 (16:9) and 1080 x 1920 (9:16)
  • Media format: .mp4 or .mov
  • Maximum file size: 100 MB
  • Recommended range: &lt;20 seconds

Note:

The end cards are mandatory for video ads.

Note:

Refer to the InMobi Ads Creative Handbook for creative references.

Playable ads

Playable ads are interactive micro-game formats in which users can interact and play game previews. After the game ends, users can click the CTA to install the app. These games are meant to engage users and motivate them to install the app for the complete experience. These ads are best suited for gaming advertisers but can also be incorporated into other verticals. The specifications of playable ads are:

  • Dimensions: Portrait and landscape full-screen
  • Recommended: Responsive
  • Media format: HTML5 and JS tags
  • Maximum file size: 5 MB

Note:

Refer to the InMobi Ads Creative Handbook for creative references.

Important components of an ad unit

The important components of an ad unit are as follows:

  • App icon or brand logo: Ensure clear visibility of your brand.
  • Product showcase: Highlight key features or products.
  • Primary tagline: Deliver a concise and compelling message.
  • Secondary messaging: Provide additional information supporting the primary message.
  • Call to Action (CTA): Make the CTA clear and prominent to drive user action.
  • Background: Use a background that complements the overall design without distracting from the main content.
  • Sub-headline: Offer additional supporting information.

Creative best practices

Adhere to the following creative best practices to ensure the DSP campaign leverages high-quality ad creatives that drive user engagement and deliver effective results.

Content must have the highest priority

The ad content is the most critical element of an ad campaign, as it directly engages the audience, conveys the brand message, and drives user actions. Make sure you:

  • Keep copy short and concise, suitable for mobile consumption.
  • Use images that are relevant to the content and context of the ad to enhance engagement.
  • Ensure branding is clear and persistent throughout the creative.
  • Use animation and bright colors to draw user attention and enhance recall if the creative format allows.
  • Make icons and buttons distinct, large enough to be readable, and easy to tap.
  • Include trust builders such as App or Play store ratings, review numbers, and logos.

Clear call-to-action

A clear call to action (CTA) directs users to what to do next, driving conversions and ensuring the ad achieves its intended goal.

  • Ensure the CTA is prominent, with contrasting colors and enough white space to stand out.
  • Use strong, action-oriented language in the CTA (For example, Order Now, Install Now).
  • Make the CTA button similar to Play or App Store controls to increase familiarity and ease of use.

Effective video strategy

Optimum video length and effective content benefit a video campaign by maximizing viewer engagement and completion rates, ensuring the message is effectively delivered within the audience's attention span.

  • Videos of 7-15 seconds typically achieve a 90% completion rate.
  • Hook users within the first 2-3 seconds to maintain engagement.
  • Focus on one main objective to guide creative execution.
  • Use clear and concise messaging to prompt quick actions.

Interactive zones

  • Place the most interactive elements or CTA in areas of the screen that are within reach of the thumb.

Format performance

  • The 320x50 slot size is the best performer, offering cost efficiency and scalability.
  • Static interstitials (320x480, 480x320, 320x568, 568x320) and medium rectangles (300x250) drive strong clicks and are effective for re-engagement efforts.
  • Videos with end cards drive high clicks and are excellent for re-engagement.
  • Users prefer vertical videos, as 94% of users hold their phones vertically. Horizontal videos disrupt user experience.

Note:

Refer to the InMobi Ads Creative Handbook for creative references.

InMobi content guidelines

Refer to InMobi content guidelines to learn about what type of content you can run through ads.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 16 Oct, 2024

Portal Configuration and SDK Changes

Enabling GPP and MSPA for Existing and New Signatories

Note

For existing app properties, users must explicitly save the property for the first time to activate the GPP functionality.

  1. Before you begin enabling GPP and MSPA, upgrade to v54 or latest.
  2. For GDPR, select TCF, GPP, or Both (recommended).

  3. Applicable only for Websites: Enabling both GPP and TCF doesn't work for AMP sites where only the GPP string will be stored. To extract the TCF string from GPP, use the code below:
    /**  
     * 1. Get the key from localStorage which start with amp-store
     * 2. Parse the value and convert into JSON.
     * 3. Once parsed, access the property 'amp-consent:inmobi'
     * 4. Split the GPP string, and retrieve the TCF string which you can use.
     * 5. Add proper handling and test before pushing the below code to production
     * 6. For more details on how to access local storage, please look at amp-script documentation (https://amp.dev/documentation/components/amp-script)
    */
    let consent = JSON.parse(atob(localStorage.getItem('<key-from-domain-local-storage>'))); //looks like this amp-store:https://deranged-humorr.surge.sh
    if (consent && consent.vv) {
        const gppString = consent.vv['amp-consent:inmobi'].v.r;
    
        const gppStringArray = gppString.split('~');
        
        for(let i = 0; i < gppStringArray.length; i++) {
            if (gppStringArray[i].startsWith('CP')) {
                console.log('TCF String is ', gppStringArray[i]);
            }
        }
    }
    	
  4. To implement MSPA, update your signatory status and regulatory path.

    Note

    Only MSPA signatories can mark transactions as Covered. You can check your signatory status and sign the MSPA here.

  5. Select the relevant opt-outs among personal, sensitive, and child data consents.

  6. The end-user is shown the consent screen based on the consents selected by you.

  7. The GPP string is stored under the key name (IABGPP_HDR_GppString).

SDK Integration Changes

Android

For Android Implementation and SDK-related changes, see Android.

iOS

For iOS Implementation and SDK-related changes, see iOS.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 22 Apr, 2025

iOS APIs

Portal Configuration and Setup for MSPA

To configure MSPA in the InMobi CMP portal, see Portal Configuration and SDK Changes.

APIs to Trigger MSPA Consent Screen

This section outlines the various APIs and callbacks that publishers can use to trigger the MSPA consent screen once they are integrated with GPP.

Display MSPA Screen

After initializing the SDK, you can present the MSPA screen by invoking the following method from ChoiceCmp class and pass in the delegate object for registering CCPA callback.

ChoiceCmp.shared.showUSRegulations(ccpaDelegate: self)

Note

If you select US Privacy string from the portal, the MSPA consent screen will be presented and the corresponding consent will be taken.

Once the user has given the consent, didReceiveUSRegulationsConsent(usRegData: USRegulationsData) delegate will be fired.

Note

The showCCPAScreen callback is deprecated. It is recommended to use MSPA showUSRegulationScreen for obtaining consent in the U.S.

Callbacks

Manage MSPA consent

The callback didReceiveUSRegulationsConsent is triggered when the user gives consent to MSPA. You will get consent details in usRegulationsData.

func didReceiveUSRegulationsConsent(usRegData: USRegulationsData) { 
   print("\(#function), gppString: \(usRegData.gppString)") 
} 

User Location Changed

The callback userDidMoveToOtherState is triggered when the user changes location accompanied by the change in regulations. You can retrigger the MSPA popup if you want to retrieve new consent as per the new location.

Note

To check whether US Regulations are applicable for the user, leverage usRegulationApplies flag as part of the PingResponse object. The PingResponse object can be accessed within the cmpDidLoad callback. The same object is returned by the ChoiceCmp.shared.ping() method.

func userDidMoveToOtherState() { 
    print(#function) 
}

You can retrieve MSPA related strings in the following keys:

Attribute Description
IABGPP_HDR_Version GPP Version
IABGPP_HDR_Sections

List of Section IDs

IABGPP_HDR_GppString

Full consent string in its encoded form

IABGPP_GppSID Section ID(s) considered to be in force. Multiple IDs are separated by an underscore, e.g. “2_3”
IABGPP_[SectionID]_String

String representation of each section. E.g. IAB TCF EU v2 String will be found at IABGPP_2_String

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 13 Sep, 2024

InMobi DSP Reporting Dashboard

InMobi performance reporting dashboard gives you a comprehensive view of your performance campaign on InMobi DSP. You can monitor your campaign performance using different combinations of metrics, countries, and media costs. You can also download overall and event-wise reports in CSV format. Any campaign event update takes 1 day to reflect on the Dashboard, and the updating happens in the UTC time zone.

Note:

For Japanese advertisers, the dashboard updates the Japan campaigns in the JST time zone. They can also switch between Dollars and Yen.

Pre-requisites

  • You have an active campaign on InMobi DSP. 
  • You have received the invitation link from the InMobi team. 

Access

You can create an account as follows: 

  1. Click the Dashboard invitation link shared by the InMobi team to reach the login page. 
  2. Click Login Now.
  3. If you are logging in for the first time, enter the email ID you provided to the InMobi team. Click Next.

    Note:

    If you use a different email ID, you don’t receive any response after clicking Next.

  4. Enter your password. 
  5. Click Log In. The Dashboard landing page opens with the list of the apps for which you have run a campaign on the DSP.  

Notes:

  • After you access the dashboard for the first time, you can browse https://dashboard.inmobi.com/ to open it.
  • Use the Google Chrome browser for the best dashboard experience.

Generate reports

You can generate reports for past or existing campaigns as follows: 

  1. Log in to your DSP Dashboard. You reach the Advertiser List page.
  2. Search for the advertiser.

  3. Click your app. You land on the Overview page.

    Note:

    The dashboard view is for Android Campaigns by default. If an advertiser is not running Android campaigns, the dashboard shows No Campaigns are Live on Android for this Advertisers. It shows a similar message if the advertiser does not have an iOS campaign.

  4. In the filters section, apply filters to generate the report accordingly.
    1. Select the campaign for which you want to view the performance report. You can select multiple campaigns.
    2. Select the data range for the report.
    3. Switch the toggle to Android and iOS based on the campaign’s target OS.

      Notes:

      For Japan,

      • The toggle has Non-SKAN and SKAN options.
      • You can switch the currency to Yen from Dollars.
    4. Click Apply Filter to see the intended report.
  5. You can find the following report views:
    • Performance:  Generates a report by combining  Campaign Name,  Country, and  Creative Type  with  Impressions,  Clicks, and  Installs. You can download the report in SVG, PNG, and CSV format by clicking  
      —.

    • Country Vs Install: Displays a pie chart showing the country-wise installs throughout the campaign. This is visible only for Android campaigns.
    • Country Vs MMP Installs: Displays a pie chart showing the country-wise MMP installs throughout the campaign. This is visible only for iOS campaigns.
    • Media Cost vs Campaign: Provides the billable cost of the campaign. You can download the report in SVG, PNG, and CSV format by clicking  

    • Overview report: Provides comprehensive data of all the performance metrics based on OS and Country. The available metrics are Clicks, Impressions, Media Cost, SKAN Installs (For iOS), MMP Installs (For iOS), Installs (For Android), CTR, eCPC, and eCPM.

      overview-report-dsp-dashboard

      • You can filter the data by selecting the columns, applying operators, and entering a value, if any.
      • You can export the data in CSV or PDF format by clicking Export.

        campaign-name-dashboard

    • Event report: Provides KPI events data, which helps to understand the campaign performance based on user events. The available columns are Campaign Name, Event Name, Country, OS, and Total Events (Number of times users complete an event).

      event-report-dsp-dashboard

       

      Note:

      You can also sort and filter by clicking the ellipsis on the column header.

      sort-dsp-dashboard

      • You can filter the data by selecting the columns, applying operators, and entering a value, if any.
      • You can export the data in CSV or PDF format by clicking Export.

Generate Publisher Report

Publisher report provides you with a list of the top publishers (a maximum of 500) of your campaign. These publishers are sorted based on the number of installs. You can see which app bundles (apps where DSP published the ads) give you the best performance and scale in a date range. You can work with the InMobi team to optimize your campaign based on the publisher data.

You can generate the Publisher Report as follows: 

  1. In the left menu bar, click Publisher App Report.

    pub-app-report

  2. In the filters section, apply filters to generate the report accordingly.
    1. Select the campaign for which you want to view the Publisher report. You can select multiple campaigns.
    2. Select the data range for the report.
    3. Switch the toggle to iOS or Android based on the inventory (OS) for the campaign.

      Notes:

      For Japan,

      • The toggle has Non-SKAN and SKAN options.
      • You can switch the currency to Yen from Dollars.
    4. Click Apply Filter to get the intended report.
      • The publishers' reports are segregated into the following columns: Campaign Name, App Bundle (refers to the publisher app), Country, OS, Clicks, Impressions, Media Cost, Installs, CTR, eCPM, and eCPC.

        filter-pub-dashboard

      • You can filter the data by selecting the columns, applying operators, and entering a value, if any.
      • You can export the data in CSV or PDF format by clicking Export.
      • You can also sort and filter by clicking the ellipsis on the column header.

        order-report

Generate Creative Report

This report provides insights into the top-performing creatives for your campaign. These creatives are sorted based on the number of installs through their ad slots. You can view the creative type (creative formats such as Banner, Video, etc.) that gives the best perfrmance and scale in a date range. Work with the InMobi team to further optimize your campaigns based on the Creative report insights.

You can generate the Creative Report as follows:

  1. In the left menu bar, click Creative Report.

    creative-report

  2. In the filters section, apply filters to generate the report accordingly.
    1. Select the campaign you want to see the performance for. You can add multiple campaigns.
    2. Select the data range for the report.
    3. Switch the toggle to iOS or Android based on the inventory (OS) for the campaign.

      Note:

      For Japan,

      • The inventory toggle has Non-SKAN and SKAN options.
      • You can switch the currency to Yen from Dollars.
    4. Click Apply Filter.
      • The publishers' reports are segregated into the following columns: Campaign Name, Creative Name, Creative Type, Country, OS, Clicks, Impressions, Media Cost, Installs, CTR, eCPM, and eCPC.

        filter-creative-dashboard

      • You can filter the data by selecting the columns, applying operators, and entering a value, if any.
      • You can export the data in CSV or PDF format by clicking Export.
      • You can also sort and filter by clicking the ellipsis on the column header.

        order-report

       

      Note:

      Every time you change the filter values, click Apply Filter to bring the intended report.

Generate Raw Event Report

Raw Event Reports provide information on all the raw events in a live campaign. The raw events are the non-KPI events, which advertisers can refer to optimize their KPIs and understand user behavior.

You can generate the Raw Event Report as follows:

Note:

Every time you change the filter values, click Apply Filter to bring the intended report.

  1. In the left menu bar, click Raw Event Report.
  2. In the filters section, apply filters to generate the report accordingly.
    1. Select the campaign you want to see the performance for. You can add multiple campaigns.
    2. Select the data range for the report.
    3. Switch the toggle to iOS or Android based on the inventory (OS) for the campaign.

      Notes:

      For Japan,

      • The toggle has Non-SKAN and SKAN options.
      • You can switch the currency to Yen from Dollars.
  3. Click Apply Filter.
    • The Raw event reports are segregated into the following columns: Campaign Name, Country, Raw Event Name, and Raw Attributed Events.
    • You can filter the data by selecting the columns, applying operators, and entering a value, if any.
    • You can export the data in CSV or PDF format by clicking Export.
    • You can also sort and filter by clicking the ellipsis on the column header.
    • You can also sort and filter by clicking the ellipsis on the column header.
      order-report

     

    Note:

    Every time you change the filter values, click Apply Filter to bring the intended report.

Generate Week-on-Week (WoW) Report

Week-on-week (WoW) reports provide weekly insights into the campaigns. The weekly insights help you understand the campaign's current performance and if any strategy change is required to uplift the performance.

You get two types of WoW reports:

  • Week-On-Week Detail Report: It has detailed numbers and an option to filter and export.
  • Week-On-Week Overview: It has a graphical overview of the weekly campaign performance based on metrics such as Clicks, Installs, Impressions, and KPI Event Count.

You can generate the WoW report as follows:

  1. In the left menu bar, click WoW report.
  2. In the filters section, apply filters to create the report accordingly.
    1. Select the campaign for which you want to see the performance. You can add multiple campaigns.
    2. Select the quarter and the year for which you want the weekly report.
    3. Switch the toggle to iOS or Android based on the inventory (OS) for the campaign. 

      Note:

      For Japan,

      • The inventory toggle has Non-SKAN and SKAN options.
      • You can switch the currency to Yen from dollars
  3. Click Apply Filter.
    • The WoW reports are segregated into the following columns:
      • For iOS and SKAN campaigns: Campaign Name, Country, Impression, Clicks, MMP Installs, SKAN Installs, MMP Events, Media Cost, OS, Week Number, and Year.
      • For Android and Non-SKAN campaigns: Campaign Name, Country, Impression, Clicks, Installs, KPI Event Count, Media Cost, OS, Week Number, and Year.
    • You can filter the data by selecting the columns, applying operators, and entering a value, if any.
    • You can export the data in CSV or PDF format by clicking Export.
    • You can also sort and filter by clicking the ellipsis on the column header.
      order-report

Generate Day-on-Day (DoD) Report

Day-on-Day (DoD) reports provide daily insights into the campaigns. The daily insights help you understand the campaign's performance at a more granular level and adjust ad spending or strategy if required.

You can generate the DoD report as follows:

  1. In the left menu bar, click DoD Report.
  2. In the filters section, apply filters to create the report accordingly.
    1. Select the campaign for which you want to see the performance. You can add multiple campaigns.
    2. Select the date range for which you want the daily report.
    3. Switch the toggle to iOS or Android based on the inventory (OS) for the campaign.

      Notes:

      For Japan,

      • The toggle has Non-SKAN and SKAN options.
      • You can switch the currency to Yen from Dollars.
    4. Click Apply Filter.
      • The DoD report are segregated into the following columns:
        • For iOS and SKAN campaigns: Campaign Name, Date, Country, OS, Clicks, Impression, Media Cost($), MMP Installs, SKAN Installs, CTR, Total eCPE, Total eCPI, MMP MMP eCPI, SKAN eCPE, SKAN eCPI, eCPC, and eCPM.
        • For Android and Non-SKAN campaigns: Campaign Name, Date, Country, OS, Clicks, Impression, Media Cost($), CTR, eCPC, eCPM, eCPE, and eCPI.
      • You can filter the data by selecting the columns, applying operators, and entering a value, if any.
      • You can export the data in CSV or PDF format by clicking Export.
      • You can also sort and filter by clicking the ellipsis on the column header.
        order-report

       

      Note:

      Every time you change the filter values, click Apply Filter to bring the intended report.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 27 Jan, 2025

Ensuring Fraud-Free Campaigns on InMobi DSP

When managing ad campaigns on InMobi DSP and collaborating with a Mobile Measurement Partner (MMP), it is crucial to adopt industry best practices that protect your investment and optimize performance. InMobi DSP employs a comprehensive approach to fraud prevention, ensuring campaigns reach authentic users.

Key considerations for advertisers

You need to adhere to the following considerations to keep your campaigns fraud-free:

Choose your partners wisely

You need to choose your partner based on which stage you need their service.

Note:

Before the campaign starts, inform the DSP team which fraud-prevention partner you have employed.

Stage 1: Ad request

In the initial stage of ad buying on a DSP, the ad request is filtered to ensure it is genuine and safe. This stage has the following processes:

  • IVT filtering: This step filters out invalid traffic (IVT) and ensures that only genuine ad requests are processed, reducing the chances of fraud. The DSP supports mFilterIt for IVT filtering.  
  • Fraud detection: This step identifies and blocks fraudulent activities right at the beginning. 

Note:

If you use any other fraud tools for IVT filtering and fraud detection, please confirm with the InMobi team if InMobi DSP supports them.

Stage 2: Ad placement

Once the ad request is verified, the next stage involves placing the ad in viewable slots. The DSP supports DoubleVerify (DV) and Integral Ad Science (IAS) for verifying the viewability of ads. These tools ensure that ads are placed in locations where they are likely to be seen by users, enhancing their effectiveness and reducing the risk of ad fraud. 

Note:

If you use any other fraud tools for viewability, please confirm with the InMobi team that the DSP supports them.

Stage 3: Post ad rendering

After the ad is placed, the focus shifts to measuring its performance and ensuring accurate attribution.

  • Audience measurement: The DSP supports Comscore and Nielsen to measure audience engagement and the impact of ads post-rendering. This stage helps in understanding the reach and effectiveness of the ads.
  • Attribution partner: InMobi DSP supports integration with AppsFlyer, Adjust, Kochava, Singular, and Branch to accurately track and attribute ad interactions and conversions. You can use these MMPs to ensure that ad campaign performance is correctly measured and reported. 

Note:

If you use any other fraud tools for measurement and attribution, please confirm with the InMobi team that the DSP supports them.

Understand mobile ad fraud types

Awareness of common mobile ad fraud types helps in securing campaigns:

  • Click spam: Generates fake clicks to steal attribution.
  • Click injection: Injects clicks during app installation to claim last-click attribution.
  • SDK spoofing: Mimics SDK communications to fake app installations.
  • Fake installs: Uses bots and emulators to simulate non-existent app installs.

Implement robust fraud detection mechanisms

You should implement strong fraud detection mechanisms (or tools like mFilterIt) and continuously monitor campaign metrics beyond installs, focusing on post-install behaviors.

Some of the common fraud behaviors are:

  • Scenario 1: The overzealous fraudster
    High-quality user traffic outperforming reliable sources by a large margin can be a fraud.
  • Scenario 2: The flat funnel
    Significant discrepancies in the events or installs funnel from standard patterns can be a fraud.
  • Scenario 3: The limits of in-app engagement
    Bots relying on a weak SDK authentication often show imbalanced engagement, signaling non-human traffic.

Key actions for advertisers

You can take the following actions to avoid any fraud and maximize return on ad spend and accurate attribution:

  • Set clear fraud terms: To ensure accountability, define explicit fraud terms with all media sources and discuss those terms with the InMobi team prior to launching a campaign.
  • Monitor engagement patterns: Regularly analyze in-app engagement and raw data reports for anomalies.  InMobi regularly checks for anomalies, but please flag any that you find.
  • Use secure SDK providers: Choose SDK providers known for robust security measures.
  • Update measurement SDKs: Keep your measurement SDKs updated to benefit from the latest security updates of InMobi DSP and your fraud detection partners.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 25 Nov, 2024

InMobi DSP Pricing Model

InMobi DSP offers a dynamic pricing structure that caters to your campaign requirements. The campaign starts with the Dynamic Cost-Per-Mille (dCPM) model. dCPM adjusts the cost of the campaign based on real-time optimizations, user engagements, and performance.   

The benefits of using the dCPM model are: 

  • Flexibility: Offers flexible pricing adapting to various campaign stages.
  • Efficiency: InMobi DS models continuously optimize the campaign to achieve optimal costs and Customer Acquisition Cost (CAC).

Note:

Consult the InMobi team to know more about the pricing.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 16 Oct, 2024

Integrate Adjust with InMobi DSP

If you use Adjust as MMP, you need to integrate it with InMobi DSP before the campaign starts.

Pre-requisites

Before the integration starts, make sure you have 

  • An active advertiser account with Adjust.
  • Received your gpm_id from the InMobi team.

Note:

These integration steps are valid for Android campaigns. The integration steps for iOS campaigns will be updated soon.

Integration Steps 

Integrating Adjust and DSP is a one-time process applicable to all further campaigns.

Step 1: Enable InMobi DSP as the partner

Enable InMobi DSP on your Adjust account as follows:

  1. Log in to your Adjust account.
  2. Go to Campaign Lab &gt; Partners from the left menu bar. You reach the Partner Selection page.
  3. In the search bar, search for InMobi DSP and select it.
  4. Click Next. You reach the App selection page.

Step 2: Select your app 

Select the app you want to run the campaign for as follows:

  1. On the App selection page, find the name of your app and select it. You can also use 
  2. Click Next. You reach the Data sharing page.

Step 3: Enable data sharing 

Enable data sharing between the DSP and your Adjust account as follows:

  1. On Enable data sharing for InMobi DSP card, click Edit.
  2. Enter the gpm_id shared by the DSP team. Click Enable.
  3. Check the Data from all attribution sources box. This option enables you to leverage InMobi’s Data science models, as the unattributed data enhances the DS models to target higher-quality audiences.
  4. Check the Sessions box to enable the DSP to collect the campaign session activities.
  5. (Optional) Check the In-app revenue (from in-app purchases) box to share your revenue event data with the DSP.
  6. (Optional) Check the Parameters box to share the custom parameters you have created for the campaign. Read how to create custom parameters on the Adjust Help Center.
  7. Click Map event in the Map your events section to collect the campaign results of each event. Make sure you map all the events you want to the campaign for.
  8. In the Adjust event drop-down, select the event you want to map.
  9. Enter the name of the event.
  10. Click Apply.
  11. (Optional) If you have configured custom parameters, click Map parameters. Read more on the mapping event on the Adjust Help Center.
  12. Click Next. You reach the Link Structure page.

Step 4: Generate a tracking URL 

You need to generate an Adjust Ad tracking URL, which the InMobi team uses while configuring the campaign on the DSP. Generate the URL as follows:

  1. On the Link Structure page, enter a name for the tracker in Link name.
  2. In Campaign parameters, click Edit to add any parameter.
  3. Click Next. You can find the tracker URL for all the events you have configured.

Step 5: Share the tracking URL 

Share the Adjust tracking URL with the InMobi team. 

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 16 Oct, 2024

InMobi DSP Onboarding Requirements

The InMobi team requires specific information and actions from advertisers before they take any media campaign live. These onboarding requirements allow the Account Managers to run the campaigns seamlessly and efficiently, providing advertisers with the best possible ROAS (Return on Ad Spend). 

Onboarding checklist for advertisers

Advertisers need to provide specific information and take actions as listed:

Requirement What's needed Why it's needed Impact if not provided
Funnel events Enable Install and other funnel events on the advertiser’s MMP dashboard. To observe, analyze, and optimize any drop-off in the user journey Less efficient campaign performance, leading to higher CAC and lower RoAS
Unattributed data Enable the advertiser’s unattributed data on their MMP dashboard. To train InMobi ML models and leverage them to optimize the campaigns Absence of unattributed data impacts precise targeting as the InMobi ML models can’t be trained on the relevant data. This results in a longer duration to improve campaign performance. Read more on Unattributed data.
Validation rules Provide the list and details of the validation rules and third-party tools. To avoid any campaign challenges or blockers, as some validation rules hamper a campaign's performance. The uncertainty of any validation rule leads to poor campaign results.
View-through attribution (VTA) Enable VTA on the advertiser’s MMP and set it to 24 hours.

To train the InMobi ML models on the data for improved campaign performance. 

To attribute the VTA event that happened through InMobi DSP ads. 

Limited dynamic viewability data can impact campaign performance and lead to inaccurate attribution results. 
Click-through attribution Share the CTA URL from the advertiser’s MMP account.

Set the Click-through attribution window to 7 days on the advertiser’s MMP dashboard.
To capture click-through installs and events. The uncertain visibility on CTA leads to incorrect attribution data.
Fraud suite Whitelist InMobi DSP on the advertiser’s fraud suits if any. To avoid incorrect fraud-listing and get true attribution The uncertain visibility on the fraud suits leads to incorrect fraud listing.
Pilot campaigns Advertiser’s current organic scale, channel split, duration of the campaign, and budget range

Note: The minimum duration to run a pilot campaign is 4-5 weeks.
To evaluate the initial performance of the campaign and optimize the campaign set-up. InMobi DSP may not have sufficient data points and duration to provide the desired advertiser’s KPIs.
CRM Share the name and the logic of the CRM the advertiser is using along with daily reports.

Share the mapping information of CRM with the MMP event available in postbacks.
To avoid any challenges or blockers as some CRM hamper campaign performance No post backs from CRM to InMobi DSP leads to inefficient performance
Conversion Values (iOS campaigns only)  Share all the Conversion Values (CV) mapping events configured on the advertiser’s MMP.  To map the same CV events on the InMobi DSP Unmapped CV values result in unoptimized KPIs and reduced campaign performance. 

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 23 Oct, 2024

Integrate Branch with InMobi DSP

If you use Branch as MMP for your campaigns, you need to integrate it with InMobi DSP before your first campaign. 

Pre-requisites

Before you can start the integration, make sure you have:

  • An active advertiser account with Branch. 
  • Received your gpm_id from the InMobi team. 

Note:

These integration steps are valid for Android campaigns. The integration steps for iOS campaigns will be updated soon.

Integration steps  

Integrating Branch and DSP is a one-time process applicable to all the further campaigns. The integration steps are: 

Step 1: Enable InMobi DSP 

You need to enable InMobi DSP as a partner as the first step in the integration. 

  1. Log in to your Branch Dashboard.
  2. In the left menu bar, go to Ads &gt; Partner Management.
  3. In the Ad Partners drop-down, search for InMobi DSP and select it.

    Note:

    Ignore any other InMobi suggestions in the drop-down other than InMobi DSP.

    ad-exchange-branch-ad-partner

  4. Under the Account Settings tab, enter the values of your gpm_id provided by the InMobi team.
  5. Click Save & Enable.

    ad-exchange-branch-save

Step 2: Configure Postbacks 

Enabling InMobi automatically enables the following postbacks: 

  • INSTALL
  • OPEN
  • PURCHASE

Note:

Select ALL EVENTS for every pre-configured and configured event.

ad-exchange-branch-events

You can add new postbacks using the following steps:

  1. Click Add New Postback on the Ad Partner Settings page.
  2. Select the event you want to create the postback for and click Save. The Branch app automatically generates the POSTBACK URL.

  3. Click Save on the Ad Partner Settings page.

Note:

Refer to the Custom Postback topic in Branch Help if you want to add a custom postback.

Step 3: Configure the attribution window  

An Attribution window is a period for capturing the valid attribution for an event. Branch has industry-standard attribution window values pre-set in the Attribution Windows tab.

Note:

Do not change the pre-set attribution window values to avoid any discrepancies in the data.

Enable the attribution window as follows:

  1. Go to the Attribution Windows tab.
  2. Enable the Use ad partner attribution settings toggle.
  3. Click Save.

Step 4: Generate Branch Ad Link 

The InMobi team uses the Branch Ad Link you generate. The link allows you to receive the attribution data from InMobi DSP, which you can use to validate the campaign performance. Share the link with them after you generate it.

Read the Generate Branch Ad Link topic on the Branch Help to know the steps of generating the link.

Step 5: Verify the integration

When the campaign launches, the data exchange starts between the DSP and your Branch account. Enable the DSP data on your Branch Dashboard as follows: 

  1. Go to Tools &gt; Liveview in the left menu bar.
  2. Click the WEBHOOK RECORDS tab.
  3. Click Add Filter.
  4. Search ad partner (3p) and select it.
  5. Select equals.
  6. Enter a_inmobidsp and press Enter/return on your keyboard.
  7. Click Update Session. You can see the data in the WEBHOOK RECORDS tab.

ad-exchange-branch-records

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 16 Oct, 2024

Best Practices for InMobi DSP Campaigns

Even though the InMobi DSP is a managed-serve platform for buying ads on ad exchanges, you also need to follow some best practices to ensure you get the best possible Return on Ad Spent (RoAS).

Creative best practices

Read InMobi DSP creative best practices. 

Measurement and attribution best practices

For accurate measurement and attribution, it’s essential to fulfill the onboarding requirements.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 17 Oct, 2024

Glance Reporting

You can find all your campaign reports on your preferred MMP. For custom reports, consult the Glance team.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 16 Oct, 2024

Integrate Kochava with InMobi DSP

If Kochava is your preferred MMP, you need to integrate Kochava with InMobi DSP before the campaign starts. 

Pre-requisites 

Before starting the integration, make sure you have: 

  • An active advertiser account with Kochava. 
  • Received your advertiser_id from your InMobi Account Manager. 

Integration steps  

The integration of Kochava and DSP is a one-time process and applicable to all the further campaigns. The integration steps are: 

Step 1: Set up 

  1. Log in to your Kochava account. 
  2. On the right side of the header, select your required account. Then, select the app for which you want to run the campaign.

    ad-exchange-kochava-acc

Step 2: Create a tracker

You need to create a tracker link and share it with your InMobi Account Manager. The InMobi team uses the Kochava tracker in your campaigns, which allows data postback from InMobi DSP to your Kochava account. 

  1. Go to Links &gt; Campaign Manager in the left menu bar. 
  2. Click Add a Tracker. The New Tracker page opens. 
  3. Under the Tracker & Network Set Up section, enter a tracker name.

    Note:

    The Tracker Name field fills up with a system-generated name when you click Add a Tracker. It’s suggested you change the name to your preferred name.

  4. Select  Acquisition in the TRACKER TYPE drop-down. For the Re-engagement campaign, select Reengagement.

    ad-exchange-kochava-tracker

  5. Select InMobi DSP — Android in the MEDIA PARTNER drop-down.
  6. (Optional) Select an option in the AGENCY PARTNER if applicable.
  7. Under the Destination URL section, select Landing Page.

    Note:

    Refer to Kochava’s Landing Page Creation and Maintenance Support documentation for more information on creating and using Landing Pages.

  8. (Optional) Enter required values in Custom Parameters.
  9. Click Save & Create Postback to navigate directly to the Partner Configuration page.
    Alternatively, you can click Save and navigate to the Partner Configuration by going to Apps & Assets &gt; Partner Configuration in the left menu bar.

Step 3: Configure Postbacks  

A postback—also called a callback—is data communication between two servers (Kochava and InMobi DSP in the current scenario) following an in-app event, such as an app installation or user activity. This system enables the InMobi team to get real-time updates on user interactions, drops, or any issues regarding the campaign. Configure the postbacks for InMobi DSP as follows: 

  1. Go to Apps & Assets &gt; Partner Configuration in the left menu bar.

    ad-exchange-kochava-partner

  2. Click Add a Configuration.
  3. In the MEDIA PARTNER drop-down, select InMobi DSP - Android.
  4. Click Go.

    ad-exchange-kochava-config

  5. Click  Install &gt; Postback Tools  (  

      ) &gt;  Edit. The Edit Postback Install page opens.

  6. Enter or select the DSP recommended values in the following fields:

    Field DSP recommended value Description
    PROPERTY NAME advertiser_id Identifier for the DSP campaigns.
    IMPRESSION CONVERSION DELIVERY - Determines if impression-matched install postbacks are limited.
    PACKAGE NAME/BUNDLE ID -  
    DELIVERY DELAY Realtime Delivery Enables real-time postback delivery to InMobi DSP.
    RETRY ATTEMPTS 3 Configures the number of attempts for redelivery in case of a failure.
    DELIVERY METHOD Deliver All Provides unattributed data access to the DSP.
  7. Save the postbacks.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 16 Oct, 2024

MMP Integrations for Glance

 

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 28 Aug, 2024

Glance Performance Onboarding Requirements

The Glance team requires specific information and actions from advertisers before they take any media campaign live. These onboarding requirements allow the team to run the campaigns seamlessly and efficiently, providing you with the best possible ROAS (Return on Ad Spend). 

Onboarding checklist for advertisers

Advertisers need to provide specific information and take actions as listed:

Requirement What's needed Why it's needed Impact if not provided
Funnel events Enable Install and other funnel events on the advertiser’s MMP dashboard. To observe, analyze, and optimize any drop-off in the user journey Less efficient campaign performance, leading to higher CAC and lower RoAS
Unattributed data Enable the advertiser’s unattributed data on their MMP dashboard. To boost the targeting preciseness and efficiency by training Glance ML models on the unattributed data Absence of unattributed data results in sub-optimal targeting as the Glance ML models are not optimized towards advertiser’s target audience. Read more on Unattributed data.
Updated APK on OCI Updated APK available on
  • GetApp (Xiaomi)
  • App Market (Realme)
  • Universal APK for Samsung
To avoid app download failures and incorrect fraud-listing due to older versions or third-party APKs, which also impact user experience Advertisers may expect lower CVRs and misrepresented fraud.
Validation rules Provide the list and details of the validation rules and third-party tools. To avoid any challenges and blockers, as some validation rules may hinder a campaign performance given Glance’s unique inventory and user flows The uncertainty of any validation rule that doesn’t recognize the unique Glance user journey leads to poor campaign results.
Pre-load attribution Enable the preload attribution on AppsFlyer (SDK v6.9+) and Adjust (SDK v4.23.0+) and set it to 90 days.  To correctly attribute the install that happened through Glance Advertisers and Glance may get incorrect campaign attribution results. 
View-through attribution (VTA) Enable VTA on the advertiser’s MMP and set it to 24 hours. To attribute the VTA event that happened through Glance. Glance inventories have industry leading viewability metrics The uncertain visibility on VTA leads to incorrect attribution data. 
Click-through attribution Share the CTA URL from your preferred MMP account.
CTA window is 7 days.
To capture click-through installs and events The uncertain visibility on CTA leads to incorrect attribution data. 
Fraud suites Whitelist Glance on your preferred fraud suits if any. To avoid incorrect fraud-listing due to unique Glance flows The uncertain visibility of fraud suites leads to incorrect fraud listing.
Pilot campaigns Current Scale, Channel Split, Duration of campaign, and budget range. 
Generally pilot campaign duration is between 3-4 weeks, and budget range between $5K to $10K
To evaluate the initial performance of the campaign For lesser duration and spends, Glance may not have sufficient data points to deliver the desired KPIs.
CRM Name and logic of the CRM that advertiser uses, along with daily reports To avoid any challenges or blockers as some CRM settings may hamper the campaign's performance No post backs from CRM to Glance leads to lower performance.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 16 Oct, 2024

Android APIs

Portal Configuration and Setup for MSPA

To configure MSPA in the InMobi CMP portal, see Portal Configuration and SDK Changes.

APIs to Trigger MSPA Consent Screen

This section outlines the various APIs and callbacks that publishers can use to trigger the MSPA consent screen once they are integrated with GPP.

Display MSPA Screen

To display MSPA screen, call the following method:

Example

Kotlin

ChoiceCmp.showUSRegulationScreen(this)

Java

ChoiceCmp.showUSRegulationScreen(this);

Note

If you have enabled auto-trigger MSPA, MSPA screen will be shown automatically after initialization.

Callbacks

Manage MSPA consent

The callback onReceiveUSRegulationsConsent is triggered when the user gives consent to MSPA. The callback is also triggered when the consent changes as it is opt-out by default. You will get consent details in usRegulationData.

Kotlin

override fun onReceiveUSRegulationsConsent(usRegulationData: USRegulationData) {
    // use usRegulationData to retrieve info related to MSPA
}

Java

@Override
public void onReceiveUSRegulationsConsent(USRegulationData usRegulationData) { 
    // use usRegulationData to retrieve info related to MSPA 
}

User Location Changed

The callback onUserMovedToOtherState is triggered when the user changes location due to which the applicable MSPA consent changes. You can retrigger MSPA if you want new consent according to the new location.

Kotlin

override fun onUserMovedToOtherState() {
	//use this to retrigger MSPA to renew consent
}

Java

@Override
public void onUserMovedToOtherState() { 
    // Use this to retrigger MSPA to renew consent 
}


You can retrieve MSPA related strings in the following keys:

Attribute Description
IABGPP_HDR_Version GPP Version
IABGPP_HDR_Sections

List of Section IDs

IABGPP_HDR_GppString

Full consent string in its encoded form

IABGPP_GppSID Section ID(s) considered to be in force. Multiple IDs are separated by an underscore, e.g. “2_3”
IABGPP_[SectionID]_String

String representation of each section. E.g. IAB TCF EU v2 String will be found at IABGPP_2_String

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 06 Sep, 2024

Audience segmentation and ingestion for InMobi DSP

InMobi DSP’s (Demand-side platform) Segment Creation API enables advertisers to transfer their audience to InMobi DSP with minimal manual intervention. Data ingestion significantly improves campaign targeting by leveraging the InMobi DSP Data Science models along with your audience.

You can configure the TTL (Time-to-Live) values, which determine how long your audience data remains in the DSP.You can use the integration to target your audience positively and negatively on the InMobi DSP.

The process starts with integrating your server with InMobi DSP and creating the audience segment on the DSP. After the segment creation, you have to ingest those audience data into the DSP. You can do the segment ingestion in two ways:

  • Single-user ingestion: Uses a GET endpoint to create a single user on InMobi DSP. This ingestion process ingests one user at a time and is not recommended for large groups of audiences. 
  • Batch ingestion: Uses a POST endpoint to transfer the bulk audience data stored in a compressed CSV file (.csv.gz) with a maximum file size of 10 MB.

After completing the segment ingestion, you can target the audience through InMobi DSP.  For any queries regarding the integration process, contact the InMobi team.

Pre-requisites

Ensure you have an active account with the InMobi DSP.

Create Audience Segment on InMobi DSP

Before ingesting your audience segment in your InMobi DSP account, you must integrate the DSP Segment Creation API into your server. The integration automatically creates the audience segments on your DSP account.

Follow the steps to create an audience segment on InMobi DSP:

  1. Use the following API URL to start creating the audience segment on InMobi DSP:http://advertiser.inmobiapis.com/tpce/v1/segment?segmentName=&propertyId=&membershipTtl=<MEMBER_SHIP_TTL_IN_DAYS>.
  2. Replace the value of the following API parameters with the required values:
    • SEGMENT_NAME: Refers to the name of your audience segment. The value should be in all capitals with no space and special character.
    • INMOBI_ADVERTISER_ID: Refers to the advertiser ID assigned to you by InMobi.
    • MEMBER_SHIP_TTL_IN_DAYS: Refers to the TTL for user IDs tagged to the audience segment. The value should be a number.
  3. Check the API response. The response should be as follows:

    {
        "status": "OK",
        "message": "success",
        "code": 200,
        "segmentId": "64d9e0bb-ad9c-4235-8b6e-2d1e6ad40cb3"
    }
    
    Value Data type Description
    OK String The API call was processed without any error.
    success String Message for successful integration.
    200 Number Refers to the https status code.
    64d9e0bb-ad9c-4235-8b6e-2d1e6ad40cb3 String The ID of the segment created in the InMobi DSP
  4. Confirm with your InMobi Account Manager if the audience segment is visible on the DSP dashboard.

Ingest Segment Data to InMobi DSP

After you create the audience segment on the InMobi DSP, you can ingest your audience data to the DSP in two ways:

Single-user ingestion

Single-user ingestion uses a GET endpoint to create a single user on InMobi DSP. Follow the steps to implement the Real-time DSP Ingestion:

  1. Use the following API for the single-user ingestion: http://advertiser.inmobiapis.com/tpce/v1/usersegment?propertyId=&gpId=&segmentIds=&action=&ida=<ios_device_id></ios_device_id>
  2. Replace the following API parameters with the required values:
    • INMOBI_ADVERTISER_ID: Refers to the advertiser ID assigned to you by InMobi.
    • ANDROID_DEVICE_ID: Refers to your advertiser GPID. This parameter is applicable only if you are targeting Android devices.
    • SEGMENT_ID: Refers to the ID of the audience segment.
    • ACTION: Adds or deletes the data from the InMobi DSP. Enter add or delete based on the requirement.
    • IOS_DEVICE_ID: Refers to your advertiser IDA. This parameter is applicable only if you are targeting IOS devices.
  3. Check the API response. The response should be as follows:
    {
        "status": "OK",
        "message": "success",
        "code": 200,
    }
    
    Key Value Data type Description
    status OK String The API call was processed without any error.
    message success String Message for successful API call.
    code 200 Number Refers to the https status code.
  4. Confirm with the InMobi team if the audience segment data are visible on the DSP dashboard. The data should be visible on the dashboard after 2-3 hours once you complete the ingestion steps.

Batch ingestion

Batch ingestion uses a POST endpoint to transfer the data stored in a compressed CSV file (.csv.gz) with a maximum file size of 10 MB. The file name format is filename.csv.gz, with no space between the words if the filename has more than one word. Follow the steps to implement the CSV file Ingestion:

  1. Use the following API for Batch ingestion of your audience data:
    curl -X POST -H 'Content-Type: multipart/form-data' -H 'Accept-Encoding: gzip' -H 'Content-Disposition: attachment; filename="@sample.csv.gz"' -H 'Content-Transfer-Encoding: binary' -F "file=@sample.csv.gz" -H 'User-Agent: python-requests/2.14.2' https://advertiser-content.inmobiapis.com/tpce/v1/upload/usersegment?propertyId=<inmobi_advertiser_id>&segmentNames=<segment_names>&segmentIds=<segment_ids>&action=<action> </action></segment_ids></segment_names></inmobi_advertiser_id>
    
  2. Replace the following API parameters with the required values:
    • INMOBI_ADVERTISER_ID: Refers to the advertiser ID assigned to you by InMobi.
    • SEGMENT_NAMES: Refers to the list of the segment names separated by semicolons. For example, Segment_1; Segment_2; Segment_3.
    • SEGMENT_IDS: Refers to the list of the segment IDs separated by semicolons. For example, SegmentID_1; SegmentID_2; SegmentID_3.
    • ACTION: Helps to add or delete the data from the InMobi DSP. Enter add or delete based on the requirement.
  3. Check the file ingestion API response. The response should be as follows:

    {
        "status": "OK",
        "message": "check the jobStatus via GET call of given jobUrl",
        "code": 200,
        "jobUrl": "https://advertiser-content.inmobiapis.com/tpce/v1/upload/jobs/file?job_id=sample.csv.gz_j2358cd64-63c0-4d8d-8104-5812dc09a5f2"
    }         

     

    Key Value Data type Description
    status OK String The API call was processed without any error.
    message  check the jobStatus via GET call of given jobUrl String Message for checking the status of the ingestion.
    code 200 Number Refers to the https status code.
    jobUrl https://advertiser-content.inmobiapis.com/tpce/v1/upload/jobs/file?job_id=sample.csv.gz_j2358cd64-63c0-4d8d-8104-5812dc09a5f2 String The URL to check the status of a job
  4. Check the job status by clicking the jobUrl value you get in step 3.
  5. Check the job status response. The response should be as follows:
    {
        "status": "OK",
        "message": "File processed successfully",
        "code": 200,
    }           

     

    Key Value Data type Description
    status OK String The API call was processed without any error.
    message File processed successfully String Message for successful job status check.
    code 200 Number Refers to the https status code.

    Note:

    If the propertyId or advertiserId used in the segment creation or segment ingestion is not InMobi DSP compliant, you may see the following error:

    {
        "status": "BAD_REQUEST",
        "message": "Invalid parameter(s) : Rejected due to error: CVM-X",
        "code": 1001,
        "segmentId": "-1"
    }       

     

  6. Confirm with the InMobi team if the audience segment data are visible on the DSP dashboard. It takes at least 24 hours to reflect the audience data on the DSP after execution.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 16 Oct, 2024

USA Article4 Level1

USA Article4 Level1

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 29 Apr, 2024

USA Article3 Level1

USA Article3 Level1

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 29 Apr, 2024

USA Article2 Level1 Overview

USA Article2 Level1 Overview

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 16 Oct, 2024

USA Article1 Level1

USA Article1 Level1

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 29 Apr, 2024

InMobi DSP Cost API

The InMobi Cost API enables you to access the cost metrics (billable amount) for your campaigns running on the InMobi DSP. You can use the data to calculate your Return on Ad Spent (RoAS).

Pre-requisites 

Before you start the integration, make sure you have:

  • An active or paused campaign on InMobi DSP. 
  • Got Cost API Authentication credentials from the InMobi team. 

The API Keys and API Secret authorize access to the InMobi Cost API and generate a temporary access token. The base URL for all API requests is https://api.cdr.inmobi.com/api/v3.

Note

If you are an existing InMobi DSP customer, the base URL https://dashboard.dsp.inmobi.com/api/v2 remains active and redirects you to the base URL https://api.cdr.inmobi.com/api/v2.

However, to leverage new DSP CostAPI features, use https://api.cdr.inmobi.com/api/v3.

Integrate Cost API

You can integrate the InMobi Cost API using the following four APIs:

  • Authentication API: Generates a temporary token using the client API key for authorization. 
  • Report creation API: Requests the media cost report by specifying a date range, custom dimension (or measure), and filtering on dimension (if required).
  • Report status API: Check for report status. 
  • Report download API: Download the report once it is available. 

Data query guidelines 

The API data query guidelines are as follows: 

Value Data type Description
OK String The API call was processed without any error.
success String Message for successful integration.
200 Number Refers to the https status code.
64d9e0bb-ad9c-4235-8b6e-2d1e6ad40cb3 String The ID of the segment created in the InMobi DSP

Dimensions and Measures

InMobi Cost API keys have been categorized among Dimensions and Measures

  • Dimensions refer to the keys that identify the attributes of the DSP campaigns, for example, Date, InMobi Account ID, Advertiser Name, Campaign ID, Campaign Name, Country, etc. 
  • Measures refer to the campaign's metrics, for example, Impressions, Clicks, Installs, Events, Media Cost, Click-through Rate (CTR), Conversion Rate (CR), Install per mille (IPM), etc. 

API endpoints  

You must add Cost API endpoints at the end of the API Base path to initiate API calls. The Cost API offers the following endpoints: 

/programmatic & /network

Use this endpoint for Android and iOS (non-SKAN) campaigns. The dimensions and measures for /programmatic & /network are as follows:

Type Fields Data type Description
Dimension date String Date (YYYY-MM-DD) of reporting data
Dimension inmobi_account_id String Unique ID for the advertiser on InMobi Platform
Dimension advertiser_name String Name of the advertiser
Dimension campaign_id String Unique ID for the campaign on InMobi Platform
Dimension campaign_name String Name of the campaign
Dimension country String The country where the ad rendered, for example, India
Dimension os String The user's device operating system. The value can be android or iOS.
Dimension publisher_app_bundle String Bundle ID of the publisher app where the ad rendered. For example, com.kiloo.com
Dimension publisher_app_name String Name of the publisher app where the ad rendered. For example, Subway Surfers
Dimension advertiser_app_bundle String Bundle ID of the advertiser app for which the ad rendered. For example, com.domain_name.com
Dimension advertiser_app_name String Name of the app for which the ad was rendered. For example, Subway Surfers
Dimension exchange String Programmatic exchange source where the media was bought. For example, AppLovin, Vungle, etc.
Dimension event_name String The user action as a primary or secondary event. For example, registrations,add_to_cart, etc.
Dimension device_type String Type of the user's device. For example, Smartphone, tablet, UNKNOWN, etc.
Dimension channel String InMobi Channel via which the advertiser bought the media
Dimension ad_id String Unique ID for the ad
Dimension ad_name String Ad name in the platform
Dimension ad_type String Type of the ad rendered
Measure impressions Integer Number of ads renders
Measure clicks Integer Number of clicks on the ads
Measure installs Integer Number of app downloads
Measure events Integer Number of user actions driven by the ad
Measure media_cost Double An indicative billable amount
Measure ctr Double Click Through Rate = (Clicks / Impressions) * 100
Measure cr Double Conversion Rate = (Installs / Clicks) * 100
Measure ipm Double Install Per Mille = (Installs / Impressions) * 1000
Measure ecpm Double Cost Per Thousand Impressions = (Media Cost / Impressions) * 1000
Measure ecpc Double Cost Per Click = Media Cost / Clicks
Measure ecpi Double Cost Per Install = Media Cost / Installs
Measure ecpe Double Cost Per Event = Media Cost / Events

Note:

If you don’t provide any dimensions or measures value, the API returns a default report with the following fields:

  • Dimensions: date, inmobi_account_id, advertiser_name, campaign_id, campaign_name, country, os, publisher_app_bundle, exchange, event_name, device_type, and channel.
  • Measures: impressions, clicks, installs, events, media_cost, ctr, cr, ipm, ecpm, ecpc, ecpi,and ecpe.

/skan

Use this endpoint for iOS SKAN & Probabilistic Attribution campaigns. The dimensions and measures for /skan are as follows:

Type Fields Data type Description
Dimension date String Date (YYYY-MM-DD) of reporting data
Dimension inmobi_account_id String Unique ID for the advertiser on InMobi Platform
Dimension advertiser_name String Name of the advertiser
Dimension campaign_id String Unique ID for the campaign on InMobi Platform
Dimension campaign_name String Name of the campaign
Dimension country String The country where the ad was rendered. For example, India
Dimension os String The user's device operating system, the value is iOS by default.
Dimension publisher_app_bundle String Bundle ID of the publisher app where the ad rendered.
Dimension publisher_app_name String Name of the publisher app where the ad rendered. For example, Call of Duty.
Dimension advertiser_app_bundle String Bundle ID of the advertiser app.
Dimension advertiser_app_name String Name of the advertiser app. For example, Call of Duty
Dimension exchange String Programmatic exchange from where the media was bought. Supported only for probabilistic attribution campaigns. For example, AppLovin, Vungle, etc.
Dimension event_name String The user action to be tracked as a primary or secondary event. Example: registrations, add_to_cart, etc.
Dimension ad_id String Unique ID for the ad. Supported only for probabilistic attribution campaigns.
Dimension ad_name String Ad name in the platform. Supported only for probabilistic attribution campaigns.
Dimension ad_type String Type of the ad rendered. Supported only for probabilistic attribution campaigns.
Measure impressions Integer Number of ads renders
Measure clicks Integer Number of clicks on the ads
Measure skan_installs Integer Number of app downloads through SKADNetwork attribution
Measure installs Integer Number of app downloads through Probabilistic attribution
Measure skan_events Integer Number of user actions driven by the ad through SKADNetwork attribution
Measure probabilistic_events Integer Number of user actions driven by the ad through Probabilistic attribution
Measure media_cost Double An indicative billable amount
Measure ctr Double Click Through Rate = (Clicks / Impressions) * 100
Measure ecpm Double Cost Per Thousand Impressions = (Media Cost / Impressions) * 1000
Measure ecpc Double Cost Per Click = Media Cost / Clicks

Note:

If you don’t provide any dimensions or measures value, the Cost API returns a default report with the following fields:

  • Dimensions: date, inmobi_account_id, advertiser_name, campaign_name, country, os, publisher_app_bundle, exchange, and event_name.
  • Measures: impressions, clicks, skan_installs, installs, skan_events, probabilistic_events, media_cost, ctr, ecpm, and ecpc.

Call APIs

After adding the required API endpoints, you can call the Cost APIs as follows: 

Step 1: Call the Authentication API. 

The Authentication API generates a temporary token using the client API key for authorization. The token is valid for 8 hours only.  

  1. Provide the token in the authorization field for subsequent calls to the API endpoint. 
  2. Generate a token to call APIs. Contact your InMobi account manager to access the client ID-key pair. 

You can call the API using a POST or a cURL request 

Sample POST request  

POST URL: https://api.cdr.inmobi.com/api/v3/auth/token

Request body: 

{

clientId : string,

clientSecret : string

} 

Request field details:

Request Field Value Mandatory
Body clientId placeholder_ID Yes
Body clientSecret placeholder_key Yes

Sample POST response 

{

“status”: “SUCCESS”,

“code”: 200,

“data”:

 {

 “token”:string,

 “validTill”: YYYY-MM-DDTHH:MM:SS

 },

“message”: "Request processed successfully"

} 

Response field details:

Fields Description
status
  • The status of the API call.
code
  • The code for the status.
    • 200: SUCCESS
    • 500: error
    • 400: Bad Request
data
  • Provides authorization token and validity details
token
  • The temporary token for the API call.
  • Valid for 8 hours only
  • Provide this token in the authorization field for subsequent API calls.
validTill
  • Expiry timestamp of the token
message
  • Final message for the confirmation of the status of the API call.

cURL Request

You can also call the Authentication API using the following cURL request:

curl --location --request POST 'https://api.cdr.inmobi.com/api/v3/auth/token' \ 
--header 'Content-Type: application/json' \ 
--data-raw '{ 
"clientId": "<YOUR-CLIENT-ID>", "clientSecret": "<YOUR-CLIENT-SECRET>" 
}' 

Step 2: Call the Report Creation API.

The Report Creation API requests the report by specifying a date range, custom attributes (dimension or measure), and filtering on dimension (if required). You can call the API using a POST or a cURL request.

Sample POST request

POST URL:

Notes:

  • *PA refers to Probabilistic attribution. Probabilistic attribution uses statistics and machine learning to guess how likely it is that an event led to a conversion or revenue. It's often used in mobile marketing when device IDs are not available.
  • To avoid duplicate data retrieval for iOS probabilistic attribution campaigns when using both the /programmatic and /skan endpoints, include the "os":["Android"] filter in the /programmatic endpoint API call. This filter helps streamline data extraction and ensures accuracy across platforms.

Header:

{ 
 clientId : string, 
 clientSecret : string 
} 

Body:

{ 
“startDate”: “<YYYY-MM-DD>”, 
“endDate”: “<YYYY-MM-DD>”, 
"dimensions": ["campaign_name", "country", "publisher_app_bundle"], 
"measures": ["impressions", "clicks", "installs", "media_cost"], 
"filters": 
 { 
 "os": ["Android"] 
 } 
} 

Request field details:

Request Field Value Mandatory
Header Authorization The token generated in the Authentication API response. Yes
Body startDate The start date for the report in the YYYY-MM-DD format. Yes
Body endDate The end date for the report in the YYYY-MM-DD format. Yes
Body dimensions The name of the Dimension you want to include in the report. Find Dimensions based on your end points. No
Body measures The name of the Measures you want to include in the report. Find Measures based on your end points. No
Body filters Add array values to the Dimensions if any. No

Sample POST response

{ 
 "status": "SUCCESS",
 "code": 200,
 "data": {
 "reportID": "<string>",
 "report_status": "available",
 "report_message": "Report available for download."
 }
 "message": "Report processed successfully"
} 

Response field details:

Field Description
status
  • The status of the API call.
code
  • The code for the status.
    • 200: SUCCESS
    • 500: ERROR
    • 400: Bad Request
data
  • Provides report details
reportID
  • Unique ID for each query
reportStatus
  • The status of the request.
    • SUBMITTED: Query successfully submitted.
    • FAILED: Query failed.
message
  • Final message for the confirmation of the status of the API call

cURL request

curl --location --request POST 'https://api.cdr.inmobi.com/api/v3/reports/network' \
--header 'Authorization: <YOUR-AUTH-TOKEN>' \
--header 'Content-Type: application/json' \
--data-raw '{ "startDate": "<START_DATE>",
"endDate": "<END_DATE>", "dimensions": ["<DIMENSION_NAME>"], "measures": ["<MEASURE_NAME>"], "filters": 
{"<DIMENSION_NAME>": ["<DIMENSION_VALUE>", "<DIMENSION_VALUE>"]}
}'

You can also call the Report Creation API using the following cURL request:

Step 3: Call the Check Report Status API.

You can check the status of the report you called using the Report Creation API. You can call the API using a GET or cURL request.

Sample GET request

GET URL: https://api.cdr.inmobi.com/api/v3/reports//status

Header:

{
`Authorization: YOUR_TOKEN`
}

Request field details:

Request Field Value Mandatory
Path Variable (in GET URL) reportID The ID of the report Yes
Header Authorization The token generated in the Authentication API response. Yes

Sample response

{
"status": "SUCCESS",
"code": 200,
"data":
 {
 "reportStatus": "report.status.available",
 "reportStatusDescription": "Report available for download.",
 "message": "Request processed successfully"
 }
}

Response field details:

Field Description
status
  • The status of the API call.
code
  • The code for the status.
    • 200: SUCCESS
    • 500: ERROR
    • 400: Bad Request
data
  • Provides authorization token and validity details
reportStatus
  • The status of the request.
    • Available: The report ran successfully and available to download
    • Running: The report generation is in process
    • submitted: query successfully submitted by the user
    • failed: query failed
reportStatusDescription
  • Shows report status description.
message
  • Final message for the confirmation of the status of the API call

cURL

curl --location --request GET 'https://api.cdr.inmobi.com/api/v3/reports/<YOUR-REPORT-ID>/status' \
--header 'Authorization: <YOUR-AUTH-TOKEN>'

You can also call the Check Report Status API using the following cURL request:

Step 4: Call Report Download API

You can download the final CostAPI report using a GET or cURL request.

Sample GET Request

GET URL: https://api.cdr.inmobi.com/api/v3/reports//download

Header:

{
`Authorization: YOUR_TOKEN`
}

Request field details:

Request Field Value Mandatory
Path Variable (in GET URL) reportID The ID of the report Yes
Header Authorization The token generated in the Authentication API response. Yes

Sample GET Response

The CSV file of the report starts downloading on your system.

cURL Request

You can also call the Download Report API using the following cURL request:

curl --location --request GET 'https://api.cdr.inmobi.com/api/v3/reports/<YOUR-REPORT-ID>/status' \
--header 'Authorization: <YOUR-AUTH-TOKEN>'

Common API Errors

You may get the following errors during an API call. Based on the description provided, you can troubleshoot the errors.

Error Description
client.cred.invalid The provided credentials are invalid. Check your clientId and clientSecret and try again.
token.generation.failed There is an error while generating the token. Try again later.
authentication.token.invalid The provided token is invalid. Regenerate the token and try again.
request.date.format_invalid The startDate and/or endDate parameter in your request have an invalid format. Update the format for startDate and/or endDate field and try again.
client.bad_request The data can be fetched only for the last 90 days.
client.bad_request The start date must be less than or equal to the end date.
client.bad_request Check the startDate and endDate of the report and try again.
client.bad_request Use the v3 API for custom dimensions and measures.
client.bad_request Measures are not supported in filters. Invalid filters found: [filter_name].
client.bad_request Invalid attributes found: Dimensions: [dimension_name], Measures: [measure_name], Filters: [filter_name].
reportId.missing The report you are trying to access doesn't exist. Check the report ID and try again.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 16 Oct, 2024

Overview

This document provides instructions for integrating InMobi CMP (Consent Management Platform) into your AMP pages. InMobi CMP supports IAB's TCFv2 and USP frameworks for collecting user consent and do-not-sell choices.

InMobi CMP uses the <amp-consent> component to implement our CMP on AMP-powered sites following the standard AMP implementation guidelines. For more details, see amp-consent.

The InMobi CMP is included using an <amp-consent id="inmobi"> component, and configured via a child <script type="application/json"> JSON block. When consent is required from the user, the CMP UI is shown in an iframe. The loading or display of other AMP components such as <amp-ad> can be blocked until consent is given. <script type="application/json"> JSON block. When consent is required from the user, the CMP UI is shown in an iframe. The loading or display of other AMP components such as <amp-ad></amp-ad> can be blocked until consent is given.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 23 Apr, 2025

Integrate InMobi CMP in your AMP Page

Requirements

The AMP integration is only supported for InMobi CMP version 20 or later.

Include the (and , if used) scripts in the of your AMP page for the InMobi CMP to properly function:

<script async custom-element="amp-consent" src="https://cdn.ampproject.org/v0/amp-consent-0.1.js"></script>
<script async custom-element="amp-geo" src="https://cdn.ampproject.org/v0/amp-geo-0.1.js"></script>

There must be only one instance of <amp-geo></amp-geo> and <amp-consent></amp-consent> present on the page.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 07 Mar, 2025

Configure InMobi CMP Tag

  1. Navigate to General Settings in the Create/edit a site page. Configure your site as an AMP Site.

  2. To configure a site with both regular HTML and AMP pages, you must create two sites in the portal, with the "AMP site" formed by adding an "/amp" path to the URL. For example: my-site.com (regular website) and my-site.com/amp (AMP-powered site).
  3. After you configure your AMP site, get the AMP tag by selecting the Get AMP Tag on the More Options menu of your site entry in the properties list:

    This will display "Your Choice AMP" modal from where you can copy the complete AMP tag (<amp-consent> tag, including the configuration JSON, and the <amp-geo> configuration, if applicable). You can paste this at the top of the &lt;body&gt; section of your AMP page.

    Note

    The entire configuration for the CMP is contained within this tag. If you update the configuration, you must update the tag on the AMP page. Future versions of the CMP will support portal configuration of AMP pages, eliminating this copy-paste operation.

<!-- INMOBI CMP -->
<amp-consent id="inmobi" layout="nodisplay">
  <script type="application/json">
    {
      "consentInstanceId": "inmobi",
      "checkConsentHref": "https://api.cmp.inmobi.com/amp/check-consent",
      "consentRequired": "remote",
      "promptUISrc": "https://cmp.inmobi.com/tcfv2/amp.html",
      "clientConfig": {
        "coreConfig": {
          "vendorPurposeLegitimateInterestIds": [
            2,
            7,
            8,
            10,
            9,
            11
          ],
          "publisherPurposeIds": [],
          "publisherSpecialPurposesIds": [],
          "publisherFeaturesIds": [],
          "stacks": [
            1,
            42
          ],
          "publisherLIRestrictionIds": [],
          "inmobiAccountId": "8F9Dnv0Zkrjf5",
          "vendorSpecialPurposesIds": [
            1,
            2
          ],
          "initScreenBodyTextOption": 1,
          "publisherConsentRestrictionIds": [],
          "vendorPurposeIds": [
            2,
            4,
            6,
            7,
            9,
            10,
            1,
            3,
            5,
            8,
            11
          ],
          "totalVendors": 1420,
          "lang_": "en",
          "privacyMode": ["GDPR"],
          "publisherPurposeLegitimateInterestIds": [],
          "hashCode": "SVn/kb0mxZsHKQ597ZCqoQ",
          "vendorSpecialFeaturesIds": [
            1,
            2
          ],
          "displayUi": "always",
          "publisherSpecialFeaturesIds": [],
          "googleEnabled": false,
          "vendorListUpdateFreq": 30,
          "publisherCountryCode": "GB",
          "vendorFeaturesIds": [
            1,
            2,
            3
          ],
          "gvlVersion": 3
        },
        "coreUiLabels": {},
        "theme": {},
        "tagVersion": "V3"
      }
    }
  </script>
</amp-consent>
<!--END INMOBI CMP -->  

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 05 May, 2024

Persistent Consent Link for GDPR

  1. When you select the GDPR persistent consent link, a "postPromptUI": "postPromptUI" key is included in the JSON configuration and a persistent consent link and styling is included in the tag:
    <div id="postPromptUI"> <button role="button" on="tap:inmobi.prompt()"> <svg style="height:20px"> <g fill="none"> <g fill="#FFF"> <path d="M16 10L15 9C15 9 15 8 15 8L16 7C16 7 16 6 16 6 16 5 15 4 14 3 14 2 13 2 13 3L12 3C12 3 11 3 11 2L11 1C11 1 10 0 10 0 9 0 7 0 6 0 6 0 5 1 5 1L5 2C5 3 4 3 4 3L3 3C3 2 2 2 2 3 1 4 0 5 0 6 0 6 0 7 0 7L1 8C1 8 1 9 1 9L0 10C0 10 0 11 0 11 0 12 1 13 2 14 2 15 3 15 3 14L4 14C4 14 5 14 5 15L5 16C5 16 6 17 6 17 7 17 9 17 10 17 10 17 11 16 11 16L11 15C11 14 12 14 12 14L13 14C13 15 14 15 14 14 15 13 16 12 16 11 16 11 16 10 16 10ZM13 13L12 13C11 13 11 13 9 14L9 16C9 16 7 16 7 16L7 14C5 14 5 13 4 13L3 13C2 13 1 12 1 11L3 10C2 9 2 8 3 7L1 6C1 5 2 4 3 4L4 4C5 4 5 3 7 3L7 1C7 1 9 1 9 1L9 3C11 3 11 4 12 4L13 4C14 4 15 5 15 6L13 7C14 8 14 9 13 10L15 11C15 12 14 13 13 13ZM8 5C6 5 5 7 5 9 5 10 6 12 8 12 10 12 11 10 11 9 11 7 10 5 8 5ZM8 11C7 11 6 10 6 9 6 7 7 6 8 6 9 6 10 7 10 9 10 10 9 11 8 11Z" /> </g> </g> </svg> PRIVACY </button> </div>
    	
  2. To change persistent consent styling, target #postPromptUi button in your CSS. This example adds the persistent consent button to the lower right of your page:
    #postPromptUI button {
               background: #368bd6;
               color: white;
               padding: 5px 15px;
               border: none;
               outline: none;
               display: flex;
               align-items: center;
               position: fixed;
               right: 0;
               bottom: 0;
               border-radius: 3px 0 0 3px;
               max-height: 30px;
               max-width: 110px;
               cursor: pointer;
    }
    

geo-location for CCPA or GDPR in EEA

An <amp-geo>  block will be included in the InMobi CMP AMP Tag if you configure GDPR (TCFv2) consent collection to apply only to EEA (European Economic Area) users, or if you have CCPA configured. A geoOverride key will also be present in the JSON configuration to properly customize the CMP based on the user's location.

  1. For these cases, an <amp-geo> component is included that defines the region(s) where CCPA and/or GDPR are applicable:
    <amp-geo layout="nodisplay">
      <script type="application/json">
        {
          "ISOCountryGroups": {
            "usca": ["preset-us-ca"]  // target California only
            // "us": ["us"]           // target entire US
          }
    } </script>
    </amp-geo>
    

    The amp-geo component provides country-level geolocation.

  2. Since AMP provides geo-location, the InMobi CMP will not use its internal geo-location functionality. The CMP will assume that the user has been successfully geo-located by the amp-geo component.

    This improves the AMP CMP performance by avoiding the check-consent HTTP call in areas where it is not necessary.

CCPA (USP) functionality

The check-consent API endpoint determines that CCPA applies for users geo-located to California (or the US). If no previously given USP string (indicating the user's Do-Not-Sell choice) has been set, the CMP will set the default USP string (as the regular web CMP does) and trigger the accept consentState.

The CCPA UI will not be shown automatically (as it does when GDPR applies), but instead, the user must click on the Do Not Sell link included on the page to make a do-not-sell choice. If the user chooses "DoNotSellMyInformation" in the UI, the consentState will be set to reject.

A link to bring up the CCPA UI needs to be included:

<!-- Privacy Disclaimer -->
      <p id="disclaimer_example">
        We use cookies and other data collection technologies to provide the
        best experience for our customers. You may request that your data not be
        shared with third parties here:
        <a role="button" on="tap:inmobi.prompt()">
          Do Not Sell My Personal Information </a>
      </p>
      <!-- Privacy Disclaimer -->

If desired, this link will be hidden when CCPA is not applicable using the amp-geo-group-XXclass which is automatically set by <amp-geo> as documented here.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 23 Apr, 2025

AMP Blocking Behaviors

AMP components can block their loading until consent is accepted, until any consent choice is made (if required), or if consent is required but unknown. In addition, you can configure timeout with fallback behaviors

The following table indicates what InMobi CMP sends for consent required and the consent states, based on InMobi CMP configuration, location, and user behavior.

Getting the TCF Consent String

RTC Vendors

Certain ad vendors support real-time configuration (for the full list of supported vendors, see Supported Vendors. If you’re using amp-ad and your vendor is one of these listed vendors, you can use the CONSENT_STRING and CONSENT_STATE macros to add that information to the request URL. For more information on how to do that, see AMP Consent Integration.

Non-RTC Vendor

If your vendor needs access to the consent string but doesn’t support real-time configuration, you can check the window.context.initialConsentValue key that stores the full TCString, or check the window.context.initialConsentState which stores the AMP consent state value (either 1 or 0) within your JavaScript code.

Basic Blocking behavior example

To block components, either add the data-block-on-consent attribute to the AMP component or add the amp-consent-blocking meta tag with the list of extensions to block. 

Blocking the analytics until user accepts consent 

Example 1

<amp-analytics data-block-on-consent type="googleanalytics"> </amp-analytics>

Example 2

<meta name="amp-consent-blocking" content="amp-analytics,amp-ad" />

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 23 Apr, 2024

Limitations

The following are a few limitations/caveats that you may encounter during AMP implementation.

  • AMP Consent Framework
    • When users consent or reject, the consentState is sent as either accept or reject (dismiss is not used by InMobi CMP). InMobi CMP treats partial consent as an accept action. The consentString contains the TCF consent string.
    • The TCString is passed to AMP as consentString but support of the string itself depends on the vendor's <amp-ad></amp-ad> implementation.
    • TCString is currently available only to amp-ad and amp-iframe components. AMP Project issue #30385 details an in-development feature to expose the postMessage API of TCFv2 to other components in AMP, which we intend to support when released.
    • consentMetadata is NOT currently exposed to amp-ad, therefore vendors cannot read it even though we’re setting it. This limitation is tracked as issue #30786.
    • IE11 is not supported. There are several open issues in the AMP project on this.
  • InMobi CMP AMP configuration limitations
    • InMobi CMP AMP does not yet support WordPress.
    • Non-IAB Vendors' consent is not available in InMobi CMP AMP.
    • Group-level consent storage is not supported. We use the built-in AMP consent-string storage mechanism which is always site-local.
    • The InMobi CMP AMP UI always uses the summary page (displayed in the "bottom tray" position) as the first screen.
    • InMobi CMP AMP does not support configuring custom CSS for AMP through the portal. Basic CMP styling can be done through the Customize UI feature within our portal, and other styling can be done through style CSS on the AMP page.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 05 May, 2024

GDPR Regulation under GPP

This topic explains GDPR and its principles, and how it protects the rights of users while sharing data. 

The GDPR is a strict data privacy and security law and it came into effect on May 25th, 2018. It grants consumers rights to determine how their personal data is processed. For more information, see GDPR.

What is a Consent String Format?

A consent string format is a coded character string that stores information about the consumer’s consent choices. It enables publishers, advertisers and downstream partners to decode which consents end-users have agreed to.

Difference Between Regulation and Consent String Format

Regulation refers to the law and guidelines established by governing bodies to control the collection, sharing, and selling of personal information. Examples of regulations are GDPR, CCPA, VCPA, etc.

The consent string format is the encoded data string with a specific structure that communicates user consent preferences to publishers in digital advertising. Some consent string format examples are TCF, US Privacy String, and GPP.

Next, we will learn about two consent string formats that support GDPR, namely GPP and TCF.

GPP and TCF

The Global Privacy Platform (GPP) by the Interactive Advertising Bureau (IAB) is a standardized global framework for managing user consent in digital advertising. For more information, see GPP.

The TCF (Transparency and Consent Framework) String, an IAB Europe initiative, is an EU-specific format for conveying user consent and publisher transparency in the digital advertising ecosystem. For more information, see TCF.

TCF was launched on April 25, 2018, while GPP was launched more recently on June 1, 2022.

What does the development of GPP mean for TCF?

Since TCF v2, the use of the Transparency and Consent Framework has changed. There are more publisher restrictions and many new vendors have been added to the IAB's Global Vendor List. This results in the consent string getting larger and becoming more problematic.

Many regions, not just Europe, have progressed to a point where a standardized consent norm is necessary. The GPP is part of a suite of solutions addressing global privacy challenges. With GPP, there's a new, more unified way for publishers to understand and comply with user consent preferences.

Regulation Existing Consent String Format New Consent String Format
GDPR EU TCF v2 GPP & TCF v2
US CCPA USP (deprecated) GPP
US VCPA, CPA, CTPA, UCPA No format available GPP

Note

The shift to GPP doesn't mean TCF is getting deprecated. TCF can be used separately for GDPR and under GPP as well.

Applicability of GDPR in EEA

The General Data Protection Regulation (GDPR) is applicable throughout the European Economic Area (EEA), which includes all European Union (EU) member states along with Norway, Iceland, and Liechtenstein. 

Key points regarding GDPR applicability in the EEA:

  • GDPR applies to entities (businesses, organizations, public authorities) processing personal data within the EEA, covering both data controllers and processors.
  • It protects the rights and privacy of individuals in the EEA, including citizens, residents, and visitors.
  • GDPR has extraterritorial reach, affecting non-EEA organizations if they process data of EEA individuals, especially when offering goods/services or monitoring behavior.
  • It establishes standards for data protection, including principles like lawfulness, fairness, transparency, purpose limitation, data minimization, accuracy, storage limitation, integrity, and confidentiality.
  • GDPR grants individuals rights like access, rectification, erasure, and data portability, and the right to object to certain processing.
  • For data transfer outside the EEA, GDPR requires adequate safeguards (e.g., Standard Contractual Clauses, Binding Corporate Rules) to ensure data protection.

Applicability of GDPR to US-based Businesses

Under certain circumstances, the GDPR can have implications for businesses or entities outside the EU, including those in the United States. These are:

  • If a business or organization in the United States processes the personal data of individuals who are in the EEA, the GDPR may apply to that processing.
  • If a U.S.-based business offers goods or services to individuals in the EEA, it may be subject to the GDPR, even if the processing occurs outside the EU.
  • If a U.S. organization monitors individuals' online behavior in the EEA, the GDPR may apply, regardless of the organization's location.
  • If a U.S. company receives personal data from organizations in the EEA, there may be GDPR implications, and the transfer of data must comply with GDPR requirements for international data transfers.

In summary, GDPR applies only to U.S-based businesses if they collect information from EEA/UK residents in any way.

Why doesn’t InMobi CMP support GDPR for U.S. users?

InMobi CMP doesn’t support GDPR in the U.S. because mentioning GDPR in conjunction with U.S. regulations might create confusion to users in the U.S. region because these legal frameworks have distinct scopes, requirements, and approaches to data protection.

Here are a few reasons why GDPR consents and US regulation consents are not collected simultaneously from the end-user:

  • GDPR is a European Union regulation, and its scope is specific to the protection of personal data of individuals within the European Economic Area (EEA). On the other hand, U.S. regulations primarily address data protection within the United States.
  • When discussing U.S. regulations, it is more pertinent to focus on the specific state laws, such as CCPA, rather than an EU regulation like GDPR. Failure to comply with these can lead to legal consequences, fines, and reputational damage. Compliance with GDPR alone doesn't cover state-specific laws, which could result in non-compliance and customer dissatisfaction.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 29 May, 2024

US Regulations under GPP

This topic discusses the five US state data privacy laws and their usage within the Multi-State Privacy Agreement (MSPA) national framework, supported by the Global Privacy Platform (GPP).

MSPA supports privacy laws for five states, namely - California, Virginia, Colorado, Utah, and Connecticut. MSPA also provides a national framework encompassing all the consents covered in the five individual state laws. 

Why does IAB recommend shifting from U.S. Privacy String to GPP?

The GPP's goal is to simplify the conveyance of privacy, consent, and consumer choice signals from websites and applications to ad tech vendors. It empowers advertisers, publishers, and technology vendors to align with regulatory requirements globally. 

This framework facilitates the use of a consent management platform (CMP) for capturing and conveying consent signals throughout the digital advertising supply chain. The GPP centralizes the management of diverse consent signals from various global privacy jurisdictions and additionally accommodates the Global Privacy Control (GPC), a browser-level signal enabling individuals to opt out of information sale or sharing. Currently, the GPP supports consent strings for both the US Privacy and IAB Europe TCF.

The US Privacy String will be deprecated by April 30, 2024. The legacy US Privacy signal does not support the four US states privacy signals —VA, CO, CT, and UT. For CCPA, only a few of the required consents are supported. In contrast, the new state signals for the other four states will only be supported by the GPP. 

The next section will cover the five state laws in detail. Post that, we will explain the two regulatory paths for enforcing MSPA in the United States, namely the state + national approach and the national approach. 

California Consumer Privacy Act - CCPA

The California Consumer Privacy Act (CCPA) came into force on January 1, 2020. It grants California consumers increased authority over the personal information collected by businesses. 

These are the opt-out signals collected from end-users under CCPA: 

  1. Opt-Out of the Sale of the Consumer's Personal Information
  2. Opt-Out of the Sharing of the Consumer's Personal Information

Who does the CCPA apply to?

The CCPA applies to for-profit enterprises engaging in the collection, sharing, or sale of personal information belonging to California residents. The business may or may not be based in California; it must comply with CCPA if it meets one or more of the following criteria:

  • Have an annual gross revenue totaling $25 million or higher and operate within California.
  • Engage in the purchase, receipt, or sale of the personal information of 50,000 or more California residents, households, or devices.
  • Generate 50% or more of their annual revenue through the sale of personal information belonging to California residents.

Fines on Non-Compliance

In case any business is subject to CCPA and found to be non-compliant, they could face a fine in the following range: 

  • Up to $7,500 for each intentional violation. 
  • Up to $2,500 for each unintentional violation.  

The Virginia Consumer Data Protection Act - VCDPA

The Virginia Consumer Data Protection Act (VCDPA) came into effect on January 1, 2023. 

These are the opt-out signals collected from end-users under VCDPA: 

  1. Opt-Out of the Sale of the Consumer's Personal Information
  2. Opt-Out of Processing the Consumer's Personal Data for Targeted Advertising

Who does the VCDPA apply to?

The VCDPA applies to businesses or entities based in Virginia or those that sell products and services to Virginia residents, and meet one or more of the following criteria:

  • Control or process personal data of at least 100,000 Virginia residents.
  • Derive over 50% of gross revenue from the sale of personal data (the VCDPA does not clarify if the revenue threshold applies to Virginia residents only).
  • Control or process personal data of at least 25,000 Virginia residents.

Fines on Non-Compliance

If a business is found to be non-compliant with the VCDPA, it could face a fine of up to $7,500 per violation.

Colorado Data Privacy Act - CPA

The Colorado Privacy Act (CPA) was enacted on July 8, 2021. It applies to entities engaged in business within Colorado or serving its residents. 

These are the opt-out signals collected from end-users under CPA: 

  1. Opt-Out of Processing the Consumer's Personal Data for Targeted Advertising
  2. Opt-Out of the Sale of the Consumer's Personal Information

Who does the CPA apply to?

The CPA applies to businesses operating within the state or those catering to Connecticut residents, and in the preceding year:

  • Managed or processed personal data for 100,000 or more consumers (excluding data solely for payment transactions); or
  • Managed or processed personal data for a minimum of 25,000 consumers and garnered over 25% of their gross revenue from personal data sales.

Fines on Non-Compliance

The CPA imposes a significant $20,000 per violation and sets a maximum penalty of $500,000.

Utah Consumer Privacy Act - UCPA

On 24th March 2022, Utah became the fourth state to pass a data privacy law. The Utah Consumer Privacy Act (UCPA) is also considered by experts as being more business-friendly as compared to the other privacy regulations in the U.S., including the CCPA, VCDPA, and CPA.

These are the opt-out signals collected from end-users under CPA: 

  1. Opt-Out of Processing the Consumer's Personal Data for Targeted Advertising
  2. Opt-Out of the Sale of the Consumer's Personal Information
  3. Opt-out of Processing Consumers' Sensitive Data

Who does the UCPA apply to?

Companies with annual revenues exceeding $25 million must adhere to the UCPA if they operate in Utah or offer products or services aimed at Utah residents. Additionally, businesses must meet one of the following thresholds to fall under the purview of the UCPA:

  • Processing of personal data for 100,000 or more Utah consumers annually.
  • 50% or more of their gross revenue is derived from the sale of personal data, and they manage or process the personal data of 25,000 or more Utah consumers.

Fines on Non-Compliance

A violation of UCPA can cost business fines in actual damages + $7,500 per violation.

Why is the UCPA considered more business-friendly?

The Utah Consumer Privacy Act (UCPA) distinguishes itself from other data privacy laws by offering a more business-friendly approach with a narrower scope, excluding many companies from compliance. 

The UCPA defines a "consumer" as an individual in a personal or household context, explicitly excluding those in employment or commercial, leaving employee data unprotected. Unlike CCPA, UCPA focuses on the sale of personal data and targeted advertising, defining a sale as the exchange of personal data for monetary consideration. 

UCPA's broad definition of "data" includes information reasonably linkable to an identifiable individual, with exceptions for aggregated and de-identified data. 

Connecticut Data Privacy Act - CTDPA

Enacted on May 10, 2022, the CTDPA empowers Connecticut residents with increased control over their data. In contrast to states like California, the act defines a consumer as a state resident acting on an individual basis, not within a commercial or employment context. 

These are the opt-out signals collected from end-users under CTDPA: 

  1. Opt-Out of Processing the Consumer's Personal Data for Targeted Advertising
  2. Opt-Out of the Sale of the Consumer's Personal Information

Who does the CTDPA apply to?

Businesses within the state or those catering to Connecticut residents, and who, in the preceding year:

  • Processed personal data for 100,000 or more consumers, except for data exclusively for payment transactions.
  • Processed personal data for a minimum of 25,000 consumers while garnering over 25% of their gross revenue from the sale of personal data.

Fines on Non-Compliance

A violation of CTDPA can result in a fine of $5,000 per violation.

How are Opt-outs covered under MSPA?

For details on how opt-outs are covered under the MSPA, see Consents Covered Under MSPA.

What is the MSPA national framework?

The MSPA, inspired by the IAB's limited-service provider agreement, is a contractual framework designed to assist companies in exchanging Global Privacy Platform consent signals with their partners in the online advertising supply chain. It was introduced on December 1, 2022.

It ensures compliance with various state privacy laws, including the CCPA in California and others taking effect in Colorado (CPA), Virginia (VCPA), Connecticut (CTDPA), and Utah (UCPA).

What are the Opt-outs covered under MSPA?

For transactions covered under MSPA, First Parties (publishers and advertisers) have the option to operate either in Service Provider Mode or Opt-Out Option Mode. Service Provider Mode is for signatories refraining from "selling," "sharing," or processing personal information for "targeted advertising." 

For more information on each Mode, see Technicalities of MSPA.

How is it different from state laws?

As numerous state privacy laws come into effect, publishers face the decision of whether to navigate compliance on a state-by-state basis or implement the strictest data usage standards across their entire business nationally. The MSPA guides both approaches.

State-specific privacy laws are applicable based on the consumer's residence, not the location of the company or its partners. Implementing processes on a state-by-state basis can be challenging, making a national approach organizationally simpler.

Opting for a national approach eliminates the need to determine a consumer's location. The MSPA's national approach adheres to the highest common denominator for compliance. for more details on the national and state approaches, see What is a Regulatory Path?

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 28 May, 2024

Technicalities of MSPA

In this topic, we will aim to understand certain technicalities of the MSPA and the rules that publishers need to follow to implement the MSPA properly.

What is a Covered Transaction?

In the MSPA framework, a First Party (a publisher) is responsible for deciding if a consumer's personal information, whether handled directly or by others downstream, falls under MSPA's rules as a Covered Transaction.

Action Required

If a Publisher opts for a Covered Transaction, it must designate the Are Your Transaction Covered Under MSPA Framework? field as Yes. If a Publisher wishes to exempt a specific transaction from MSPA applicability, it should set the MSPA Transaction Signal to No

Note

To indicate your transactions are covered, you are required to be an MSPA signatory. You can check your signatory status and sign the MSPA here.

Implication for consent string

In the GPP string sections allocated for residents of various states (and U.S. National Consumers), as discussed in section 3.3, there is a field called MspaCoveredTransaction. Selecting Yes to the above question sets a value of 1 for this field (indicating it is a Covered Transaction) or 2 in case No is selected (indicating it is not a Covered Transaction).

What is a Regulatory Path?

Apart from choosing the mode for the covered transaction, the MSPA also mandates the publisher to identify the “Applicable Jurisdiction” governing the processing of a specific consumer's personal information. 

The publisher is granted flexibility in this regard. It can ascertain the state residency of the consumer, determine the Applicable State Privacy Law, and adhere to the specific requirements of that state. 

National Approach

If the publisher can't decide or doesn't want to provide different privacy choices to users, it can choose to handle the consumer's personal information using the National Approach.

The national approach identifies the highest common denominator in privacy requirements among the five new state laws. In the national approach, MSPA collects the opt-outs required in all the states in the US together. GPP will incorporate signaling for the national approach.

Adopting a national standard approach reduces the complexity of implementing five distinct legal frameworks simultaneously to some extent.

Note

According to IAB, only MSPA signatories can use the National section to encode and signal user opt-out preferences. You can check your signatory status and sign the MSPA here.

National + State Approach

If the Publisher establishes that a consumer is not a resident of any Applicable Jurisdiction, it retains the freedom to abstain from processing digital ad transactions for that consumer as Covered Transactions.

In that case, the publisher can opt for a national + state approach. In this approach, consent will be collected based on the national approach in all other states of the U.S. apart from California, Virginia, Colorado, Utah, and Connecticut. In the five states, their specific data privacy laws will apply.

This approach allows publishers to collect only necessary consents be compliant with both the national and state laws. It enables them to reach a wider audience without worrying about being non-compliant.

Difference Between Opt-Out Mode and Service Provider Mode

Note

InMobi CMP supports only opt-out mode.

If a publisher chooses to apply the MSPA for a specific Covered Transaction, it must use a technical Signal developed by the IAB Tech Lab and opt for one of two operational modes: 

  • Opt-Out Option Mode 
  • Service Provider Mode

The mode selection depends on the publisher's intentions regarding the Personal Information processed under that Covered Transaction. 

Opt-Out Option Mode

If the publisher intends to "Sell" or "Share" personal information or partake in "Targeted Advertising," it will opt for Opt-Out Option Mode, necessitating the provision of specified Opt-Out rights to Consumers. 

Service Provider Mode

If the publisher aims to exclusively engage in Covered Transactions with Signatories acting as "Service Providers" (i.e., refraining from Selling or Sharing Personal Information or participating in Targeted Advertising), it will choose to operate in Service Provider Mode.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 29 May, 2024

Web APIs

Portal Configuration and Setup for MSPA

To configure MSPA in the InMobi CMP portal, see Portal Configuration and SDK Changes.

APIs to Trigger MSPA Consent Screen

This section outlines the various APIs and callbacks that publishers can use to trigger the MSPA consent screen once they are integrated with GPP.

For more information on APIs that a CMP must support, as specified by IAB, see CMP API Specification.

isUserLocationChanged

This callback aims to know if the user has changed the location and retrigger the MSPA consent screen based on the new location.

Parameters

Attribute Data Type Description
locationChanged Boolean Whether user has changed the location or not.
previousLocation String

Two letter region string like ca, va, ct, co, etc.

currentLocation String

Two letter region string like ca, va, ct, co, etc.

Example


window.__uspapi(isUserLocationChanged, 1, (result) => {
    console.log(result); // { locationChanged: true, previousLocation: ‘va’, currentLocation: ‘ca’}
});

displayUspUi

This will display the U.S Privacy UI (modal dialog). It will inherit style and style overrides given in the config object.

Example


window.__uspapi('displayUspUi', 1, function(data, status) { console.log(data, status); })

ping

The ping command can be used to determine the state of the CMP. The callback shall be called with a PingReturn object as the value of the data parameter. A value of false will be passed as the argument to the success parameter if the CMP fails to process this command.

Attributes

Argument Data Type Value
command String "ping"
callback function

function (data: PingReturn, success: boolean)

Example


__gpp('ping', myFunction);

addEventListener

The addEventListener command can be used to define a callback function that can be used to detect changes in the CMP. The callback shall be called with an EventListener object immediately. The GPP script will then call the callback function and return a new EventListener object every time the CMP detects a change (see events below). A value of false will be passed as the argument to the success parameter if the CMP fails to process this command.

Attributes

Argument Data Type Value
command String "addEventListener"
callback function

function (data: EventListener, success: boolean)

Example

__gpp('addEventListener', myFunction);

removeEventListener

The removeEventListener command can be used to remove an existing event listener. The callback shall be called with false as the argument for the data parameter if the listener could not be removed (e.g. the CMP cannot find a registered listener corresponding to listenerId). A value of false will be passed as the argument to the success parameter if the CMP fails to process this command.

Attributes

Argument Data Type Value
command String "removeEventListener"
callback function

function (data: boolean, success: boolean)

parameter number ID of the listenerId property that was returned from addEventListener command

Example

__gpp('removeEventListener', myFunction, listenerId);

hasSection

The hasSection command can be used to detect if the CMP has generated a section of a certain specification. The callback shall be called with true as the argument for the data parameter if the CMP has generated a section for the requested API prefix string. The data parameter may be null when the CMP is not yet loaded. A value of false will be passed as the argument to the success parameter if the CMP fails to process this command.

Attributes

Argument Data Type Value
command String "hasSection"
callback function

function (data: boolean, success: boolean)

parameter String API Prefix string

Example

A client wants to ask the CMP if there is data for IAB TCF CA v1.0:

__gpp('hasSection', myFunction, "tcfcav1");

getSection

The getSection command can be used to receive the (parsed) representation of a section of a certain specification. The callback shall be called with the (parsed) representation as the argument for the data parameter. The parsed representation of a section is an array of objects, where each object represents one sub-section of this section in the order that is given by the section specification. For example, the data parameter for the TCF Canada will be an array with one or two objects (Core sub-section plus optional publisher purposes sub-section). Each object is composed of the fields defined by the section specification.

The data parameter may be null for sections that don't allow accessing the section data object outside an event handler. It may also be null when the CMP is not yet loaded.

Attributes

Argument Data Type Value
command String "getSection"
callback function

function (data: array of objects or null, success: boolean)

parameter String API Prefix string

Example

For example, client can ask the CMP to get the IAB TCF CA v1.0 TCData:

__gpp('getSection', myFunction, "tcfcav1"); 

Example value of data passed to the callback:

[
 /* Core Sub-section */
 {
  Version:1, 
  Created: Date (Thu Apr 13 2023 18:07:12 GMT+0200),
  LastUpdated: Date (Thu Apr 13 2023 18:07:12 GMT+0200),
  CmpId: 31, 
  CmpVersion: 123,
  ConsentScreen: 5,
  ...
  }, 
  /* Publisher Purposes Sub-section (optional) */
 {
  subsectionType:3, 
  PubPurposesExpressConsent : [1,2,3,4,5],
  PubPurposesImpliedConsent  : [6,7,8,9],
  ...
  } 
 ]

getField

The getField command can be used to receive a specific field out of a certain section. The callback shall be called with the value of the requested field as the argument for the data parameter. The data parameter may be null for fields in sections that don't allow accessing the section data object outside an event handler. It may also be null when the CMP is not yet loaded.

Attributes

Argument Data Type Value
command String "getField"
callback function

function (data: mixed or null, success)

parameter String API Prefix string + "." (dot) + fieldname

Example

For example, a client can ask the CMP to get the last updated field from the IAB TCF CA v1.0 TCData.

__gpp('getField', myFunction, "tcfcav1.LastUpdated");

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 23 Jul, 2024

Global Privacy Control

This topic explains the birth of Global Privacy Control (GPC) as an initiative reflecting the growing awareness and concern about digital privacy, offering users greater control over how their data is handled in the online ecosystem.

GPC is a significant development in the realm of online privacy, aiming to provide users with a streamlined and standardized way to assert their preferences regarding the use of their personal information by websites and online services. 

Understanding Global Privacy Control (GPC)

The GPC initiative came into effect in late 2020, with the release of the GPC specification and the introduction of GPC browser extensions. 

At its core, GPC is about empowering users to easily communicate their privacy choices. It operates as a browser-level signal, allowing users to set their preferences globally, which are then transmitted to websites they visit. This browser-level approach simplifies the process for users, offering a more convenient and centralized way to manage their privacy settings.

The primary function of GPC is to enable users to opt out of the sale or sharing of their personal information for targeted advertising. By activating GPC, users are essentially signaling their desire to maintain greater control over how their data is used. This opt-out mechanism aligns with the broader trend of providing users with more agency and transparency in handling their digital identities.

Why GPC?

GPC's implementation addresses several key objectives:

Simplified Privacy Management 

GPC aims to simplify the process for users to manage their privacy preferences online. By providing a standardized and browser-based mechanism, GPC enables users to easily communicate their privacy choices without having to navigate complex settings on individual websites.

Enhanced User Control

Users gain greater control over how their personal information is used by online entities. By signaling their preferences through GPC, users can opt out of the sale or sharing of their data for targeted advertising, thereby exercising greater agency over their digital identities.

Standardization of Privacy Preferences

GPC seeks to establish a common language for privacy preferences, making it easier for users and online services to understand and implement these choices consistently. By standardizing privacy preferences, GPC aims to create a more user-friendly and interoperable privacy landscape.

Alignment with Privacy Regulations

GPC aligns with the principles of privacy regulations such as the California Consumer Privacy Act (CCPA). Recognizing GPC as a valid method for users to communicate their privacy preferences reinforces its importance in the broader context of data privacy regulations.

Overall, GPC was implemented to address the growing need for simplified and standardized privacy controls in the digital ecosystem. By providing users with a convenient and effective way to assert their privacy preferences, GPC aims to enhance user control, promote transparency, and contribute to a more privacy-conscious online environment.

Implementing Global Privacy Control

Here are some important parameters to implement GPC successfully:

Standardization

One key aspect of GPC is its emphasis on standardization. GPC seeks to establish a common language for privacy preferences, making it easier for users and online services to understand and implement these choices consistently. This standardization is crucial in creating a more user-friendly and interoperable privacy landscape.

Legal Backing

The legal landscape plays a significant role in the implementation of GPC. For instance, the California Consumer Privacy Act (CCPA) recognizes GPC as a valid method for users to communicate their preference to opt out of the sale of their personal information. This legal backing lends credibility to GPC and reinforces its importance in the broader context of data privacy regulations.

Browser Support

The success of GPC relies heavily on its adoption by web browsers. Users need browsers that support GPC, allowing them to easily enable or disable this feature. As more browsers incorporate GPC into their settings, users gain greater accessibility to this privacy tool.

Website Adoption

For GPC to be effective, websites and online services must respect and honor the signals sent by users through this mechanism. Website operators need to implement systems that recognize and comply with GPC preferences. The adoption of GPC by a diverse range of websites is crucial for its impact on user privacy.

Impact of GPC on Opt-Outs and User Privacy

These are some of the key areas where GPC has a direct impact:

Targeted Advertising

One of the primary areas where GPC has a direct impact is in the realm of targeted advertising. Users opting out through GPC communicate their reluctance to have their personal information used for targeted ads. This aligns with the growing demand for more control over the ads users encounter, reducing the reliance on personalized data for ad targeting.

Data Sharing Practices

GPC's influence extends beyond advertising to encompass broader data sharing practices. Users leveraging GPC are expressing a preference for greater privacy not just in the context of targeted ads but in how their data is shared with third parties. This can influence the data-sharing practices of websites and platforms, encouraging more responsible and transparent handling of user information.

Privacy Transparency

As users opt out through GPC, there is an increased expectation for transparency from online services. Websites need to provide clear information on how they handle user data and whether they adhere to the privacy preferences communicated through GPC. This emphasis on transparency enhances user trust and reinforces the principles of informed consent.

How Does InMobi CMP implement GPC?

Users signal GPC through user agent headers (Sec-GPC) and a JavaScript API (globalPrivacyControl). Entities creating GPP strings can check whether GPC is set and transfer the discovered value (from headers or the JavaScript API) in the GPC subsection for all applicable sections. The potential values in the user agent API are boolean (0/1 for headers and true/false for the JavaScript API). 

Field Name GPP Field Type Description
SubsectionType Int(2)

0 Core

1 GPC
Gpc Boolean

0 false

1 true

As of now, true signifies opting out of the sale of personal information under CCPA ("Do not sell my personal information").

InMobi CMP honors users' Global Privacy Control (GPC) signals, ensuring compliance with CCPA legislation requirements. When an end-user activates the GPC flag in their browser and does not communicate any preferences through the consent banner, the system sets the Opt-out signal in the US privacy string to Yes, effectively opting the user out.

Conversely, if an end-user enables the GPC flag and communicates an opt-out preference via the consent banner, the system prioritizes the user's explicitly shared preference over the GPC signal. If the GPC flag is not set or not supported by the browser, the string remains unchanged.

Similar to California, Colorado and Connecticut are required to activate GPC as per their states’ legislative requirements.

Challenges and Future Directions

While GPC’s implementation aims to bring about a positive change in data usage by online services, there are some challenges in implementing it fully. 

The effectiveness of GPC faces challenges related to adoption. Not all browsers may support GPC, and not all websites may integrate mechanisms to respect the signals sent through this privacy control. Achieving widespread adoption requires collaboration among browser developers, website operators, and regulatory bodies.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 28 May, 2024

Android

This topic outlines various InMobi CMP Android SDK callbacks, designed to empower publishers with the information needed for seamless integration and consent details retrieval. 

onCmpLoaded

Purpose

The onCmpLoaded notifies the publishers that the CMP has been intialised successfully and also provides some information in the PingReturn object.

Parameters

Attribute Data Type Description
info`(PingReturn) Object Information related to cmp version, cmp status etc.

Example

Kotlin

override fun onCmpLoaded(info: PingReturn) {
    Log.i("InmobiCmpSampleApp", "Cmp loaded successfully")
    Log.i("InmobiCmpSampleApp", "Cmp Id: ${info.cmpId}")
}

Java

@Override
public void onCmpLoaded(PingReturn info) {
 Log.i("InmobiCmpSampleApp", "Cmp loaded successfully");
 Log.i("InmobiCmpSampleApp", "Cmp Id: " + info.getCmpId()); 
}

onCMPUIStatusChanged

Purpose

The onCMPUIStatusChanged notifies when the CMP UI status is changed. Whenever there is any change made to the CMP UI, this callback will be called.

Parameters

Attribute Data Type Description
`status`(DisplayInfo) Object Provides information related to CMP UI and the regulation shown.

Example

Kotlin

override fun onCMPUIStatusChanged(status: DisplayInfo) {
    //Use onCMPUIStatusChanged to know the information related to CMP UI.
    Log.i("InmobiCmpSampleApp", status.displayStatus)
}

Java

@Override
public void onCMPUIStatusChanged(DisplayInfo displayInfo) {
    //Use onCMPUIStatusChanged to know the information related to CMP UI.
    Log.i("InmobiCmpSampleApp", displayInfo.getDisplayStatus());
}

onReceiveUSRegulationsConsent

Purpose

The onReceiveUSRegulationsConsent notifies that the user has finished giving or updating consent to an MSPA regulation.

Parameters

Attribute Data Type Description
`usRegulationData`(USRegulationData) Object Provides consent information related to MSPA regulation.

Example

Kotlin

override fun onReceiveUSRegulationsConsent(usRegulationData: USRegulationData) {
    //Use USRegulationData to know the consent information related to MSPA regulation.
    Log.i("InmobiCmpSampleApp", usRegulationData.gppString)
}

Java

@Override
public void onReceiveUSRegulationsConsent(USRegulationData usRegulationData) {
    //Use USRegulationData to know the consent information related to MSPA regulation.
    Log.i("InmobiCmpSampleApp", usRegulationData.getGppString());
}

onUserMovedToOtherState

Purpose

The onUserMovedToOtherState notifies that the applicable regulation is MSPA and user moved to another state due to which the applicable regulation is changed

Example

Kotlin

override fun onUserMovedToOtherState() {
    // Use onUserMovedToOtherState to know when the user has moved to another US state.
}

Java

@Override
public void onUserMovedToOtherState() {
    // Use onUserMovedToOtherState to know when the user has moved to another US state.
}

onActionButtonClicked

Purpose

The onActionButtonClicked notifies when the user has clicked any of the action buttons related to Consent or Pay on the CMP UI.

Parameters

Attribute Data Type Description
`actionButton`(ActionButton) Object Provides information related to action buttons of Consent or Pay.

Example

Kotlin

override fun onActionButtonClicked(actionButton: ActionButton) {
    //Use onActionButtonClicked to know the information related to action buttons of Cosnent or Pay.
    Log.i("InmobiCmpSampleApp", "onActionButtonClicked: $actionButton")
}

Java

@Override
public void onActionButtonClicked(ActionButton actionButton) {
    //Use onActionButtonClicked to know the information related to action buttons of Cosnent or Pay.
    Log.i("InmobiCmpSampleApp", "onActionButtonClicked: "+actionButton);
}

onIABVendorConsentGiven

Purpose

This callback is triggered upon obtaining user consent for IAB-compliant vendors.

Parameters

Attribute Data Type Description
`tcData`TCData String Provides the consent information related to IAB vendors.

Example

Kotlin

override fun onIABVendorConsentGiven(tcData: TCData) {
// Use TCData to know the consent information related to IAB vendors
    Log.i("onIABVendorConsentGiven", tcData.gdprApplies.toString())
    Log.i("onIABVendorConsentGiven", tcData.tcString ?: "")
}

Java

@Override 
public void onIABVendorConsentGiven(TCData tcData) { 
// Use TCData to know the consent information related to IAB vendors Log.i("onIABVendorConsentGiven", String.valueOf(tcData.getGdprApplies())); Log.i("onIABVendorConsentGiven", tcData.getTcString() != null ? tcData.getTcString() : ""); 
}

`onNonIABVendorConsentGiven`

Purpose

The onNonIABVendorConsentGiven callback pertains to vendors configured in the InMobi CMP and do not automatically validate consent.

Parameters

Attribute Data Type Description
`nonIABData`NonIABData String Provides the consent information related to non- IAB vendors.

Example

Kotlin

override fun onNonIABVendorConsentGiven(nonIABData: NonIABData) {
    //Use NonIABData to know the consent information related to Non-IAB vendors
    Log.i("onNonIABVendorConsent", nonIABData.toString())
    // Use nonIabData.nonIabVendorConsents to checkout the vendor consents
    Log.i("onNonIABVendorConsent", nonIABData.nonIabVendorConsents.toString())
    Log.i("onNonIABVendorConsent", nonIABData.gdprApplies.toString())
}

Java

@Override 
public void onNonIABVendorConsentGiven(NonIABData nonIABData) { 
// Use NonIABData to know the consent information related to Non-IAB vendors Log.i("onNonIABVendorConsent", nonIABData.toString()); 
// Use nonIABData.getNonIabVendorConsents() to check out the vendor consents Log.i("onNonIABVendorConsent", nonIABData.getNonIabVendorConsents().toString()); Log.i("onNonIABVendorConsent", String.valueOf(nonIABData.getGdprApplies())); 
}

onCmpError

Purpose

The onCmpError notifies the publisher that some error has occurred and also provides information about the error in the `error` object.

Parameters

Attribute Data Type Description
`error`(ChoiceError) Object Information related to error.

Example

Kotlin

override fun onCmpError(error: ChoiceError) {
    Log.i("InmobiCmpSampleApp", "An error occurred during initialisation")
    Log.i("Error", error.message)
}

Java

@Override
public void onCmpError(ChoiceError error) {
    Log.i("InmobiCmpSampleApp", "An error occurred during initialization");
    Log.i("Error", error.getMessage());
}

onGoogleVendorConsentGiven

Purpose

The onGoogleVendorConsentGiven callback is specifically invoked if you have enabled Google Vendors in the portal.

Parameters

Attribute Data Type Description
`acData`(ACData) Object Provides consent information related to Google vendors.

Example

Kotlin

override fun onGoogleVendorConsentGiven(acData: ACData) {
    //Use ACData to know the consent information related to Google vendors
    Log.i("InmobiCmpSampleApp", acData.acString ?: "")
}

Java

@Override
public void onGoogleVendorConsentGiven(ACData acData) {
    // Use ACData to know the consent information related to Google vendors
    Log.i("InmobiCmpSampleApp", acData.getAcString() != null ? acData.getAcString() : "");
}

onCCPAConsentGiven

Purpose

The onCCPAConsentGiven notifies when the user has finished giving consent to a CCPA regulation.

Parameters

Attribute Data Type Description
`consentString`(String) String Represents the CCPA consent information received.

Example

Kotlin

override fun onCCPAConsentGiven(consentString: String) {
    // Use the string for CCPA consent
    Log.i("onCCPAConsentGiven", consentString)
}

Java

@Override
public void onCCPAConsentGiven(String consentString) {
    // Use the string for CCPA consent
    Log.i("onCCPAConsentGiven", consentString);

}

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 17 Feb, 2025

iOS

This topic outlines various InMobi CMP Android SDK callbacks, designed to empower publishers with the information needed for seamless integration and consent details retrieval. 

didReceiveIABVendorConsent

Purpose

This callback is triggered upon obtaining user consent for IAB-compliant vendors.

Parameters

Attribute Data Type Description
TCData Boolean Provides the consent information related to IAB vendors.
gdprApplies String Indicates if the GDPR applies or not.
tcData.vendor.consents String Provides information on vendor consents.

Example

Objective-C

-(void)didReceiveIABVendorConsentWithTcData:(TCData * _Nonnull)tcData updated:(BOOL)updated { 
    // Use TCData to know the consent information related to IAB vendors
         
    // Use gdprApplies to check if the gdpr applies or not
    NSLog(@"%d", tcData.doesGdprApply);

    // Use tcData.vendor.consents to checkout the vendor consents
    NSLog(@"%@", tcData.vendor.consents);
}

Swift

func didReceiveIABVendorConsent(tcData: TCData, updated: Bool) {
    // Use TCData to know the consent information related to IAB vendors
    
    // Use gdprApplies to check if the gdpr applies or not
    print(tcData.gdprApplies)
    
    // Use tcData.vendor.consents to checkout the vendor consents
    print(tcData.vendor.consents)
}

didRecieveNonIABVendorConsent

Purpose

The didRecieveNonIABVendorConsent callback pertains to vendors configured in the InMobi CMP and do not automatically validate consent.

Parameters

Attribute Data Type Description
NonIABData Boolean Provides the consent information related to non- IAB vendors.
gdprApplies String Indicates if the GDPR applies or not.
nonIabData.nonIabVendorConsents String Provides information on vendor consents.

Example

Objective-C

-(void)didReceiveNonIABVendorConsentWithNonIabData:(NonIABData * _Nonnull)nonIabData updated:(BOOL)updated { 
    //Use NonIABData to know the consent information related to Non-IAB vendors
    
    // Use gdprApplies to check if the gdpr applies or not
    NSLog(@"%@", nonIabData.gdprApplies);

    // Use nonIabData.nonIabVendorConsents to checkout the vendor consents
    NSLog(@"%@", nonIabData.nonIabVendorConsents);
}

Swift

func didReceiveNonIABVendorConsent(nonIabData: NonIABData, updated: Bool) {
    //Use NonIABData to know the consent information related to Non-IAB vendors
    
    // Use gdprApplies to check if the gdpr applies or not
    print(nonIabData.gdprApplies)
    
    // Use nonIabData.nonIabVendorConsents to checkout the vendor consents
    print(nonIabData.nonIabVendorConsents)
}

didReceiveAdditionalConsent

Purpose

The didReceiveAdditionalConsent callback is specifically invoked if you have enabled Google Vendors in the portal.

Parameters

Attribute Data Type Description
ACData Boolean Provides consent information related to Google vendors.
gdprApplies String Indicates if the GDPR applies or not.
acData.additionalVendorConsent String Provides information on vendor consents.

Example

Objective-C

-(void)didReceiveAdditionalConsentWithAcData:(ACData * _Nonnull)acData updated:(BOOL)updated { 
    //Use ACData to know the consent information related to Google vendors
        
    // Use gdprApplies to check if the gdpr applies or not
    NSLog(@"%d", acData.gdprApplies);

    // Use acData.additionalVendorConsent to checkout the vendor consents
    NSLog(@"%@", acData.additionalVendorConsent);
}

Swift

func didReceiveAdditionalConsent(acData: ACData, updated: Bool) {
    //Use ACData to know the consent information related to Google vendors
    
    // Use gdprApplies to check if the gdpr applies or not
    print(acData.gdprApplies)
    
    // Use acData.additionalVendorConsent to checkout the vendor consents
    print(acData.additionalVendorConsent)
    
 }

cmpDidLoad

Purpose

The cmpDidLoad notifies the publishers that the CMP has been intialised successfully and also provides some information in the PingResponse object.

Parameters

Attribute Data Type Description
`info`(PingResponse) Object Information related to cmp version, cmp status etc.

Example

Objective-C

-(void)cmpDidLoadWithInfo:(PingResponse * _Nonnull)info { 
    NSLog(@"%@", NSStringFromSelector(_cmd));
    NSLog(@"%ld", info.cmpId);
    NSLog(@"%ld", info.cmpVersion);
}

Swift

func cmpDidLoad(info: PingResponse) {
        print("CMP loaded successfully")

        print("cmpId: \(info.cmpId)")
        print("cmp version: \(info.cmpVersion)")
    }

cmpDidShow

Purpose

The cmpDidShow notifies the GDPR consent screen has been shown to publisher and also provides some information in the PingResponse object.

Parameters

Attribute Data Type Description
`info`(PingResponse) Object Information related to cmp version, cmp status etc.

Example

Objective-C

-(void)cmpDidShowWithInfo:(PingResponse * _Nonnull)info { 
    NSLog(@"%@", NSStringFromSelector(_cmd));
    NSLog(@"%ld", info.cmpId);
    NSLog(@"%ld", info.cmpVersion);
}

Swift

func cmpDidShow(info: PingResponse) {
        print("GDPR popup shown successfully")

        print("cmpId: \(info.cmpId)")
        print("cmp version: \(info.cmpVersion)")
}

cmpDidError

Purpose

The cmpDidError notifies the publisher that some error has occurred and also provides information about the error in the error object.

Parameters

Attribute Data Type Description
`error`(Error) Object Information related to error.

Example

Objective-C

-(void)cmpDidErrorWithError:(NSError * _Nonnull)error { 
    NSLog(@"%@, error: %@", NSStringFromSelector(_cmd), error.localizedDescription);
}

Swift

func cmpDidError(error: Error) {
        print("Some error occurred during cmp initialisation")
        print("error: " + error.localizedDescription)
    }

didReceiveCCPAConsent

Purpose

The didReceiveCCPAConsent notifies the GDPR consent screen has been shown to publisher and also provides some information in the PingResponse object.

Parameters

Attribute Data Type Description
`string`:String String Represents the CCPA consent information received.

Example

Objective-C

-(void)didReceiveCCPAConsentWithString:(NSString *)string {
    // Use the string for CCPA consent
}

Swift

func didReceiveCCPAConsent(string: String) {
    // Use the string for CCPA consent
}


이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 27 Mar, 2024

Android

Overview

Google Analytics introduces Consent Mode v2, providing a streamlined approach to adjust your SDK's behavior based on user consent status. This feature lets you easily indicate whether consent has been granted for Analytics and Ads cookies. To implement Consent Mode v2 for your apps, follow these straightforward steps:

  • Utilize Google Analytics for Firebase SDK to set default consent values.
  • Employ the setConsent method programmatically to update these values based on in-app user consent.

For more information, see Consent mode on websites and mobile apps.

Consent Types and Impact

Consent Types Consent Mode V2 InMobi CMP (Web) Description
ad_storage Mandatory Supported Enables storage for advertising, like web cookies or app device identifiers.
analytics_storage Mandatory Supported Enables storage for analytics, e.g., visit duration cookies or app device identifiers.
ad_user_data Mandatory Supported Consent is required to send user data to Google for online advertising.
ad_personalization Mandatory Supported Consents to personalized advertising.

Prerequisites

  • By default, the Google basic consent feature is disabled within the portal. Enable it manually to activate.

Configure Google Consent Mode in InMobi CMP

  1. Log in to the InMobi CMP portal.
  2. Navigate to your Property settings:
    • For new apps: Under the Properties tab, click PROTECT AN APP for your sites, and enter all the necessary information. For more information, see Protect An App.
    • For existing apps: Under the Properties tab and from the list of properties, click the edit icon for the desired site and enter all the information required on the Edit an App page.
  3. In the ENABLE GOOGLE BASIC CONSENT field, select Yes, and a popup window appears.

  4. Select the target location in the WHICH USERS SHOULD BE ASKED FOR CONSENT field.
  5. Select the purpose(s) and default value(s).
  6. Click SAVE PROPERTY.

    Note

    After selecting GBC on the portal for AMP sites and saving it, you should copy the final AMP tag and update it on your AMP site. Unlike the non-AMP sites, you should manually update the AMP sites' tags after any configuration changes.

GBC Implementation

Configure Default Consent Value

To enable GBC for your Android app, you need to first set the default consent state and values.

  1. Set the default consent state in AndroidManifest.xml file. Update the consent state based on the user interaction with the consent settings.
  2. To set the default consent state, open your app's AndroidManifest.xml file since no consent mode values are pre-configured by default.
  3. Add the consent mode key-value pairs. The key describes the consent type, and the value indicates the consent state. You can set the value for the following as true (consent granted) or false (consent denied):
    • google_analytics_default_allow_analytics_storage
    • google_analytics_default_allow_ad_storage
    • google_analytics_default_allow_ad_user_data
    • google_analytics_default_allow_ad_personalization_signals
  4. Save your changes and update the consent values similarly as shown in the example below:
    <meta-data android:name="google_analytics_default_allow_analytics_storage" android:value="true" />
    <meta-data android:name="google_analytics_default_allow_ad_storage" android:value="true" />
    <meta-data android:name="google_analytics_default_allow_ad_user_data" android:value="true" />
    <meta-data android:name="google_analytics_default_allow_ad_personalization_signals" android:value="true" />
    

Implement Update Parameter

  1. Google basic consent can be part of the GDPR or CCPA popup and it can be shown separately. Use the showGBCScreen(activity: Activity) API to show the standalone popup:

    Kotlin

    fun showGoogleConsent() {
      // Show Google basic consent
      ChoiceCmp.showGBCScreen(this)
    }
    
    

    Java

    public void showGoogleConsent() {
        // Show Google basic consent
        ChoiceCmp.showGBCScreen(this);
    }
    
    
  2. Implement the callback onGoogleBasicConsentChange(consents: GoogleBasicConsents):

    Kotlin

    override fun onGoogleBasicConsentChange(consents: GoogleBasicConsents) {
        Log.i("Ad Storage", consents.adStorage.value)
        Log.i("AdUserData", consents.adUserData.value)
        Log.i("AdPersonalization", consents.adPersonalization.value)
        Log.i("AnalyticsStorage", consents.analyticsStorage.value)
    }
    
    

    Java

    @override
    public void onGoogleBasicConsentChange(GoogleBasicConsents consents) {
        Log.i("Ad Storage", consents.getAdStorage().getValue());
        Log.i("AdUserData", consents.getAdUserData().getValue());
        Log.i("AdPersonalization", consents.getAdPersonalization().getValue());
        Log.i("AnalyticsStorage", consents.getAnalyticsStorage().getValue());
    }
    
    
  3. Update consent using the above callback. To update the Consent Type values, retrieve the consent values from the onGoogleBasicConsentChange(consents: GoogleBasicConsents) callback and set the consent using the setConsent method of Google’s Analytics API. The callback will be called only when Google consent is enabled in the portal and consent is given by the user. It won’t be called during the consecutive app launches.

    Note

    You need to call the setConsent method to set the consent provided by the callback API. InMobi CMP will NOT automatically set the setConsent method.

    The following example shows the setConsent method updating values for Analytics, Ad storage, Ad user data and Ad personalization to granted or denied:

    Kotlin

    override fun onGoogleBasicConsentChange(consents: GoogleBasicConsents) {
        Firebase.analytics.setConsent {
            adStorage = getFirebaseAnalyticsConsentValue(consents.adStorage == GBCConsentValue.GRANTED)
            adUserData = getFirebaseAnalyticsConsentValue(consents.adStorage == GBCConsentValue.GRANTED)
            adPersonalization = getFirebaseAnalyticsConsentValue(consents.adStorage == GBCConsentValue.GRANTED)
            analyticsStorage = getFirebaseAnalyticsConsentValue(consents.adStorage == GBCConsentValue.GRANTED)
        }
    }
    
    fun getFirebaseAnalyticsConsentValue(value: Boolean): FirebaseAnalytics.ConsentStatus {
            return if (value)
                FirebaseAnalytics.ConsentStatus.GRANTED
            else
                FirebaseAnalytics.ConsentStatus.DENIED
        }
    

    Java

    @override
    public void onGoogleBasicConsentChange(GoogleBasicConsents consents) {
    // Set consent types.
    Map<ConsentType, ConsentStatus> consentMap = new EnumMap<>(ConsentType.class);
    consentMap.put(ConsentType.ANALYTICS_STORAGE, consents.getAnalyticsStorage() == GBCConsentValue.GRANTED ?
            ConsentStatus.GRANTED : ConsentStatus.DENIED);
    consentMap.put(ConsentType.AD_STORAGE, consents.getAdStorage() == GBCConsentValue.GRANTED ?
            ConsentStatus.GRANTED : ConsentStatus.DENIED);
    consentMap.put(ConsentType.AD_USER_DATA, consents.getAdUserData() == GBCConsentValue.GRANTED ?
            ConsentStatus.GRANTED : ConsentStatus.DENIED);
    consentMap.put(ConsentType.AD_PERSONALIZATION, consents.getAdPersonalization() == GBCConsentValue.GRANTED ?
            ConsentStatus.GRANTED : ConsentStatus.DENIED);
    
    mFirebaseAnalytics.setConsent(consentMap);
    }
    

    The value set by the setConsent method persists across app executions and overrides the default values configured through the AndroidManifest.xml file. The value remains in that state until setConsent is called again, even if a user closes and reopens the app.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 28 Oct, 2024

Consents Covered Under MSPA

This topic deep dives into the different MSPA signals and how to understand them. The MSPA consists of privacy-protective terms that activate among a group of signatories and accompany the data as it moves through the digital advertising supply chain. For more information, see Technicalities of MSPA.

How Does the MSPA Work?

The IAB Multi-State Privacy Agreement (MSPA) is an industry contractual framework designed to assist advertisers, publishers, agencies, and ad tech intermediaries in complying with five state privacy laws that took effect in 2023 (in California, Virginia, Colorado, Connecticut, and Utah). The MSPA collaborates with the IAB Tech Lab’s Global Privacy Platform, a uniform privacy signaling specification that enables companies to communicate and honor consumer choices throughout the ad ecosystem.

The MSPA collaborates with the IAB Tech Lab’s Global Privacy Platform, a standardized privacy signaling specification enabling companies to communicate and respect consumer choices across the advertising ecosystem.

The MSPA complements commercial contracts among signatories with necessary privacy terms. In cases where no commercial contracts are in place, the MSPA sets forth the essential privacy terms mandated by law. 

Additionally, while publishers and advertisers can utilize the MSPA to encompass all their digital ad transactions, it also allows them the flexibility to engage in separate agreements with their ad tech vendors for other transactions using distinct privacy terms. These transactions would simply fall outside the scope of MSPA and not be ‘Covered Transactions’

In the next sections, you will find the different consents covered under MSPA.

Consents Covered Under MSPA

CCPA

Businesses must include a 'do not sell my personal information' link on their homepage and all web pages collecting data. The opt-out link should provide comprehensive details about consumer rights and enable them to decline the sale and sharing of their personal information.

 
Field name GPP Field Type Description What happens in Auto-display consent screen scenario? What happens in Do not Auto-display consent screen scenario?
SaleOptOutNotice Int(2)

Notice of the Opportunity to Opt Out of the Sale of the Consumer's Personal Information

0 Not Applicable. The Business does not sell personal data.

1 Yes, notice was provided

2 No, notice was not provided
This field will be set as 1 - Notice shown as soon as the consent screen auto-triggers successfully. This field will be set as 2- Notice was not provided unless the user clicks on the opt-out link.
SharingOptOutNotice Int(2)

Notice of the Opportunity to Opt Out of the Sharing of the Consumer's Personal Information

0 Not Applicable. The Business does not Share Personal Data.

1 Yes, notice was provided

2 No, notice was not provided
This field will be set as 1. This field will be set as 2 till the user clicks on the opt-out link.
SensitiveDataLimitUseNotice Int(2)

Notice of the Opportunity to Limit Use or Disclosure of the Consumer's Sensitive Personal Information

0 Not Applicable. The Business does not use or disclose Sensitive Data.

1 Yes, notice was provided

2 No, notice was not provided
This field will be set as 1. This field will be set as 2 till the user clicks on the opt-out link.
SaleOptOut Int(2)

Opt-Out of the Sale of the Consumer's Personal Information

0Not Applicable. SaleOptOutNotice value was not applicable or no notice was provided

1 Opted Out

2 Did Not Opt Out
Once the consent screen auto-triggers, based on the opt-out value updated by the user, this field is updated accordingly.

This field will be set as 0 - No notice provided till the consent screen is triggered by the end-user.

Once the screen is triggered successfully, based on the user's opt-out value, this field is updated accordingly.

SharingOptOut Int(2)

Opt-Out of the Sharing of the Consumer's Personal Information

0 Not Applicable. SharingOptOutNotice value was not applicable or no notice was provided.

Opted Out

Did Not Opt Out

This field is updated as per user input. This field will be set as 0 - till the consent screen is triggered.
SensitiveDataProcessing N-Bitfield(2,9)

Two bits for each Data Activity:

0 Not Applicable. SensitiveDataLimitUseNotice value was not applicable or no notice was provided.

1 Opted Out

2 Did Not Opt Out

Two bits for each Data Activity:

0 Not Applicable. SensitiveDataLimitUseNotice value was not applicable or no notice was provided.

1 Opted Out

2 Did Not Opt Out

Data Activities:

(1) Opt-Out of the Use or Disclosure of the Consumer's Sensitive Personal Information Which Reveals a Consumer's Social Security, Driver's License, State Identification Card, or Passport Number.

(2) Opt-Out of the Use or Disclosure of the Consumer's Sensitive Personal Information Which Reveals a Consumer's Account Log-In, Financial Account, Debit Card, or Credit Card Number in Combination with Any Required Security or Access Code, Password, or Credentials Allowing Access to an Account.

(3) Opt-Out of the Use or Disclosure of the Consumer's Sensitive Personal Information Which Reveals a Consumer's Precise Geolocation.

(4) Opt-Out of the Use or Disclosure of the Consumer's Sensitive Personal Information Which Reveals a Consumer's Racial or Ethnic Origin, Religious or Philosophical Beliefs, or Union Membership.

(5) Opt-Out of the Use or Disclosure of the Consumer's Sensitive Personal Information Which Reveals the contents of a Consumer's Mail, Email, and Text Messages unless You Are the Intended Recipient of the Communication.

(6) Opt-Out of the Use or Disclosure of the Consumer's Sensitive Personal Information Which Reveals a Consumer's Genetic Data.

(7) Opt-Out of the Use or Disclosure of the Consumer's Sensitive Personal Information Consisting of Biometric Information for the Purpose of Uniquely Identifying a Consumer.

(8) Opt-Out of the Use or Disclosure of the Consumer's Sensitive Personal Information Consisting of Personal Information Collected and Analyzed Concerning a Consumer's Health.

(9) Opt-Out of the Use or Disclosure of the Consumer's Sensitive Personal Information Consisting of Personal Information Collected and Analyzed Concerning a Consumer's Sex Life or Sexual Orientation.

This field is set as opted-out by default.

It will update immediately based on the end-user's preference.

This field is set as opted-out by default.

It will update based on the end-user's preference.

PersonalDataConsents Int(2)

Consent to Collection, Use, Retention, Sale, and/or Sharing of the Consumer's Personal Data that Is Unrelated to or Incompatible with the Purpose(s) for which the Consumer's Personal Data Was Collected or Processed

0 Not Applicable. The Business does not use, retain, Sell, or Share the Consumer's Personal Data for advertising purposes that are unrelated to or incompatible with the purpose(s) for which the Consumer's Personal Data was collected or processed.

1 No Consent

2 Consent

This field is updated as per user input.

This field will be set as 0 - till the consent screen is triggered.

KnownChildSensitiveDataConsents

N-Bitfield(2,2)

Two bits for each Data Activity:

0 Not Applicable. The Business does not have actual knowledge that it Processes Personal Information of Consumers Less Than 16 years of Age.

1 No Consent

2 Consent

Data Activities:

(1) Consent to Sell the Personal Information of Consumers Less Than 16 years of Age

(2) Consent to Share the Personal Information of Consumers Less Than 16 years of Age

This field is set as opted-out by default.

It will update immediately based on the end-user's preference.

This field is set as opted-out by default.

It will update based on the end-user's preference.

VCDPA

Businesses may obtain consent by getting consumers to check a blank checkbox or by typing a written statement.

 
Field name GPP Field Type Description Auto-display consent screen Do not Auto-display consent screen
SaleOptOutNotice Int(2)

Notice of the Opportunity to Opt Out of the Sale of the Consumer's Personal Information

0 Not Applicable. The Business does not sell personal data.

1 Yes, notice was provided

2 No, notice was not provided

This field will be set as 1 - Notice shown as soon as the consent screen auto-triggers successfully.

This field will be set as 2- Notice was not provided unless the user clicks on the opt-out link.

SharingNotice Int(2)

Notice of the Sharing of Personal Data with Third Parties

0 Not Applicable. The Controller does not share Personal Data with Third Parties.

1 Yes, notice was provided

2 No, notice was not provided

This field will be set as 1. This field will be set as 2 till the user clicks on the opt-out link.
TargetedAdvertisingOptOutNotice Int(2)

Notice of the Opportunity to Opt-Out of Processing of the Consumer's Personal Data for Targeted Advertising

0 Not Applicable.The Controller does not Process Personal Data for Targeted Advertising.

1 Yes, notice was provided

2 No, notice was not provided

This field will be set as 1. This field will be set as 2 till the user clicks on the opt-out link.
SaleOptOut Int(2)

Opt-Out of the Sale of the Consumer's Personal Information

0Not Applicable. SaleOptOutNotice value was not applicable or no notice was provided

Opted Out

2 Did Not Opt Out
Once the consent screen auto-triggers, based on the opt-out value updated by the user, this field is updated accordingly.

This field will be set as 0 - No notice provided till the consent screen is triggered by the end-user.

Once the screen is triggered successfully, based on the user's opt-out value, this field is updated accordingly.

TargetedAdvertisingOptOut Int(2)

Opt-Out of Processing the Consumer's Personal Data for Targeted Advertising

0 Not Applicable. TargetedAdvertisingOptOutNotice value was not applicable or no notice was provided

1 Opted Out

2 Did Not Opt Out
Once the consent screen auto-triggers, based on the opt-out value updated by the user, this field is updated accordingly. This field will be set as 0 - till the consent screen is triggered.
SensitiveDataProcessing N-Bitfield(2,8)

Two bits for each Data Activity:

0 Not Applicable. The Controller does not Process the specific category of Sensitive Data.

1 No Consent

2 Consent

(1) Consent to Process the Consumer's Sensitive Data Consisting of Personal Data Revealing Racial or Ethnic Origin.

(2) Consent to Process the Consumer's Sensitive Data Consisting of Personal Data Revealing Religious Beliefs.

(3) Consent to Process the Consumer's Sensitive Data Consisting of Personal Data Revealing a Mental or Physical Health Diagnosis.

(4) Consent to Process the Consumer's Sensitive Data Consisting of Personal Data Revealing Sexual Orientation.

(5) Consent to Process the Consumer's Sensitive Data Consisting of Personal Data Revealing Citizenship or Immigration Status.

(6) Consent to Process the Consumer's Sensitive Data Consisting of Genetic Data for the Purpose of Uniquely Identifying a Natural Person.

(7) Consent to Process the Consumer's Sensitive Data Consisting of Biometric Data for the Purpose of Uniquely Identifying a Natural Person.

(8) Consent to Process the Consumer's Sensitive Data Consisting of Precise Geolocation Data.

This field is set as opted-out by default.

It will update immediately based on the end-user's preference.

This field is set as opted-out by default.

It will update based on the end-user's preference.

KnownChildSensitiveDataConsents

Int(2)

Consent to Process Sensitive Data from a Known Child

0 Not Applicable. The Controller does not Process Sensitive Data of a known Child.

1 No Consent

2 Consent

This field is set as opted-out by default.

It will update immediately based on the end-user's preference.

This field is set as opted-out by default.

It will update based on the end-user's preference.

CPA

Companies are obligated to provide consumers the choice to opt-out of the sale or targeted advertising use of their personal data. Consumers can express their preferences through a Universal Opt-Out Mechanism (UOOM).

 
Field name GPP Field Type Description Auto-display consent screen Do not Auto-display consent screen
SaleOptOutNotice Int(2)

Notice of the Opportunity to Opt Out of the Sale of the Consumer's Personal Information

0 Not Applicable. The Business does not sell personal data.

1 Yes, notice was provided

2 No, notice was not provided

This field will be set as 1 - Notice shown as soon as the consent screen auto-triggers successfully.

This field will be set as 2- Notice was not provided unless the user clicks on the opt-out link.

SharingNotice Int(2)

Notice of the Sharing of Personal Data with Third Parties

0 Not Applicable. The Controller does not share Personal Data with Third Parties.

1 Yes, notice was provided

2 No, notice was not provided

This field will be set as 1. This field will be set as 2 till the user clicks on the opt-out link.
TargetedAdvertisingOptOutNotice Int(2)

Notice of the Opportunity to Opt Out of Processing of the Consumer's Personal Data for Targeted Advertising

0 Not Applicable.The Controller does not Process Personal Data for Targeted Advertising.

1 Yes, notice was provided

2 No, notice was not provided

This field will be set as 1. This field will be set as 2 till the user clicks on the opt-out link.
SaleOptOut Int(2)

Opt-Out of the Sale of the Consumer's Personal Information

Not Applicable. SaleOptOutNotice value was not applicable or no notice was provided

1 Opted Out

2 Did Not Opt Out
Once the consent screen auto-triggers, based on the opt-out value updated by the user, this field is updated accordingly.

This field will be set as 0 - No notice provided till the consent screen is triggered by the end-user.

Once the screen is triggered successfully, based on the user's opt-out value, this field is updated accordingly.

TargetedAdvertisingOptOut Int(2)

Opt-Out of Processing the Consumer's Personal Data for Targeted Advertising

0 Not Applicable. TargetedAdvertisingOptOutNotice value was not applicable or no notice was provided

1 Opted Out

2 Did Not Opt Out
Once the consent screen auto-triggers, based on the opt-out value updated by the user, this field is updated accordingly. This field will be set as 0 - till the consent screen is triggered.
SensitiveDataProcessing N-Bitfield(2,7)

Two bits for each Data Activity:

0 Not Applicable. The Controller does not Process the specific category of Sensitive Data.

1 No Consent

2 Consent

(1) Consent to Process the Consumer's Sensitive Data Consisting of Personal Data Revealing Racial or Ethnic Origin.

(2) Consent to Process the Consumer's Sensitive Data Consisting of Personal Data Revealing Religious Beliefs.

(3) Consent to Process the Consumer's Sensitive Data Consisting of Personal Data Revealing a Mental or Physical Health Condition or Diagnosis.

(4) Consent to Process the Consumer's Sensitive Data Consisting of Personal Data Revealing Sex Life or Sexual Orientation.

(5) Consent to Process the Consumer's Sensitive Data Consisting of Personal Data Revealing Citizenship or Citizenship Status.

(6) Consent to Process the Consumer's Sensitive Data Consisting of Genetic Data that May Be Processed for the Purpose of Uniquely Identifying an Individual.

(7) Consent to Process the Consumer's Sensitive Data Consisting of Biometric Data that May Be Processed for the Purpose of Uniquely Identifying an Individual.

This field is set as opted-out by default.

It will update immediately based on the end-user's preference.

This field is set as opted-out by default.

It will update immediately based on the end-user's preference.

KnownChildSensitiveDataConsents

Int(2)

Consent to Process Sensitive Data from a Known Child

0 Not Applicable. The Controller does not Process Sensitive Data of a known Child.

1 No Consent

2 Consent

This field is set as opted-out by default.

It will update immediately based on the end-user's preference.

This field is set as opted-out by default.

It will update based on the end-user's preference.

UCPA

The UCPA does not prescribe specific opt-out methods. In contrast to the CCPA, which mandates an opt-out link, the UCPA grants flexibility for organizations to establish their preferred methods for enabling consumers to opt out of data sales or targeted advertising.

 
Field name GPP Field Type Description Auto-display consent screen Do no Auto-display consent screen
SaleOptOutNotice Int(2)

Notice of the Opportunity to Opt Out of the Sale of the Consumer's Personal Information

0 Not Applicable. The Business does not sell personal data.

1 Yes, notice was provided

2 No, notice was not provided

This field will be set as 1 - Notice shown as soon as the consent screen auto-triggers successfully.

This field will be set as 2- Notice was not provided unless the user clicks on the opt-out link.

 

SharingNotice Int(2)

Notice of the Sharing of Personal Data with Third Parties

0 Not Applicable. The Controller does not share Personal Data with Third Parties.

1 Yes, notice was provided

2 No, notice was not provided

This field will be set as 1. This field will be set as 2 till the user clicks on the opt-out link.
TargetedAdvertisingOptOutNotice Int(2)

Notice of the Opportunity to Opt Out of Processing of the Consumer's Personal Data for Targeted Advertising

0 Not Applicable.The Controller does not Process Personal Data for Targeted Advertising.

1 Yes, notice was provided

2 No, notice was not provided

This field will be set as 1. This field will be set as 2 till the user clicks on the opt-out link.

SensitiveDataProcessingOptOutNotice

Int(2)

Notice of the Opportunity to Opt Out of the Processing of the Consumer's Sensitive Data

0 Not Applicable. The Controller does not Process Sensitive Data.

1 Yes, notice was provided

2 No, notice was not provided

This field will be set as 1. This field will be set as 2 till the user clicks on the opt-out link.
SaleOptOut Int(2)

Opt-Out of the Sale of the Consumer's Personal Information

0 Not Applicable. SaleOptOutNotice value was not applicable or no notice was provided

1 Opted Out

2 Did Not Opt Out
Once the consent screen auto-triggers, based on the opt-out value updated by the user, this field is updated accordingly.

This field will be set as 0 - No notice provided till the consent screen is triggered by the end-user.

Once the screen is triggered successfully, based on the user's opt-out value, this field is updated accordingly.

TargetedAdvertisingOptOut Int(2)

Opt-Out of Processing the Consumer's Personal Data for Targeted Advertising

0 Not Applicable. TargetedAdvertisingOptOutNotice value was not applicable or no notice was provided

1 Opted Out

2 Did Not Opt Out
Once the consent screen auto-triggers, based on the opt-out value updated by the user, this field is updated accordingly. This field will be set as 0 - till the consent screen is triggered.
SensitiveDataProcessing N-Bitfield(2,8)

Two bits for each Data Activity:

0 Not Applicable. The Controller does not Process the specific category of Sensitive Data.

1 Opted Out

2 Did Not Opt Out

(1) Opt-Out of the Processing of the Consumer's Sensitive Data Consisting of Personal Data Revealing Racial or Ethnic Origin.

(2) Opt-Out of the Processing of the Consumer's Sensitive Data Consisting of Personal Data Revealing Religious Beliefs.

(3) Opt-Out of the Processing of the Consumer's Sensitive Data Consisting of Personal Data Revealing Sexual Orientation.

(4) Opt-Out of the Processing of the Consumer's Sensitive Data Consisting of Personal Data Revealing Citizenship or Immigration Status.

(5) Opt-Out of the Processing of the Consumer's Sensitive Data Consisting of Personal Data Revealing Medical History, Mental or Physical Health Condition, or Medical Treatment or Diagnosis by a Health Care Professional.

(6) Opt-Out of the Processing of the Consumer's Sensitive Data Consisting of Genetic Data for the Purpose of Identifying a Specific Individual.

(7) Opt-Out of the Processing of the Consumer's Sensitive Data Consisting of Biometric Data for the Purpose of Identifying a Specific Individual.

(8) Opt-Out of the Processing of the Consumer's Sensitive Data Consisting of Specific Geolocation Data.

This field is set as opted-out by default.

It will update immediately based on the end-user's preference.

This field is set as opted-out by default.

It will update based on the end-user's preference.

KnownChildSensitiveDataConsents

Int(2)

Consent to Process Sensitive Data from a Known Child

0 Not Applicable. The Controller does not Process Sensitive Data of a known Child.

1 No Consent

2 Consent

This field is set as opted-out by default.

It will update immediately based on the end-user's preference.

This field is set as opted-out by default.

It will update based on the end-user's preference.

CTDPA

As per the law, data controllers must provide "clear and conspicuous" opt-out links on their websites.

 
Field name GPP Field Type Description Auto-display consent screen Do not Auto- display consent screen
SaleOptOutNotice Int(2)

Notice of the Opportunity to Opt Out of the Sale of the Consumer's Personal Information

0 Not Applicable. The Business does not sell personal data.

1 Yes, notice was provided

2 No, notice was not provided

This field will be set as 1 - Notice shown as soon as the consent screen auto-triggers successfully.

This field will be set as 2- Notice was not provided unless the user clicks on the opt-out link.

SharingNotice Int(2)

Notice of the Sharing of Personal Data with Third Parties

0 Not Applicable. The Controller does not share Personal Data with Third Parties.

1 Yes, notice was provided

2 No, notice was not provided

This field will be set as 1. This field will be set as 2 till the user clicks on the opt-out link.
TargetedAdvertisingOptOutNotice Int(2)

Notice of the Opportunity to Opt Out of Processing of the Consumer's Personal Data for Targeted Advertising

0 Not Applicable.The Controller does not Process Personal Data for Targeted Advertising.

1 Yes, notice was provided

2 No, notice was not provided

This field will be set as 1. This field will be set as 2 till the user clicks on the opt-out link.
SaleOptOut Int(2)

Opt-Out of the Sale of the Consumer's Personal Information

0 Not Applicable. SaleOptOutNotice value was not applicable or no notice was provided

1 Opted Out

2 Did Not Opt Out
This field will be set as 2 - Did Not opt-out as soon as the consent screen auto-triggers successfully. Based on the opt-out value updated by the user, this field is updated accordingly.

This field will be set as 0 - No notice provided till the consent screen is triggered by the end-user.

Once the screen is triggered successfully, based on the user's opt-out value, this field is updated accordingly.

TargetedAdvertisingOptOut Int(2)

Opt-Out of Processing the Consumer's Personal Data for Targeted Advertising

0 Not Applicable. TargetedAdvertisingOptOutNotice value was not applicable or no notice was provided

1 Opted Out

2 Did Not Opt Out
This field will be set as 2. This field will be set as - till the consent screen is triggered..
SensitiveDataProcessing N-Bitfield(2,8)

Two bits for each Data Activity:

0 Not Applicable. The Controller does not Process the specific category of Sensitive Data.

1 Opted Out

2 Did Not Opt Out

(1) Opt-Out of the Processing of the Consumer's Sensitive Data Consisting of Personal Data Revealing Racial or Ethnic Origin.

(2) Opt-Out of the Processing of the Consumer's Sensitive Data Consisting of Personal Data Revealing Religious Beliefs.

(3) Opt-Out of the Processing of the Consumer's Sensitive Data Consisting of Personal Data Revealing Sexual Orientation.

(4) Opt-Out of the Processing of the Consumer's Sensitive Data Consisting of Personal Data Revealing Citizenship or Immigration Status.

(5) Opt-Out of the Processing of the Consumer's Sensitive Data Consisting of Personal Data Revealing Medical History, Mental or Physical Health Condition, or Medical Treatment or Diagnosis by a Health Care Professional.

(6) Opt-Out of the Processing of the Consumer's Sensitive Data Consisting of Genetic Data for the Purpose of Identifying a Specific Individual.

(7) Opt-Out of the Processing of the Consumer's Sensitive Data Consisting of Biometric Data for the Purpose of Identifying a Specific Individual.

(8) Opt-Out of the Processing of the Consumer's Sensitive Data Consisting of Specific Geolocation Data.

This field is set as opted-out by default.

It will update immediately based on the end-user's preference.

This field is set as opted-out by default.

It will update based on the end-user's preference.

KnownChildSensitiveDataConsents

N-Bitfield(2,3)

Two bits for each Data Activity:

0 Not Applicable. The Controller does not Process Sensitive Data of a known Child.

1 No Consent

2 Consent

(1) Consent to Process Sensitive Data from a Known Child.

(2) Consent to Sell the Personal Data of Consumers At Least 13 Years of Age but Younger Than 16 Years of Age.

(3) Consent to Process the Personal Data of Consumers At Least 13 Years of Age but Younger Than 16 Years of Age for Purposes of Targeted Advertising.

This field is set as opted-out by default.

It will update immediately based on the end-user's preference.

This field is set as opted-out by default.

It will update based on the end-user's preference.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 29 May, 2024

Introduction

Google Consent Mode (GCM) bridges the gap between data privacy regulations and digital advertising efficiency. It modifies the functionality of Google tags based on users' consent preferences, ensuring compliance without compromising valuable insights for campaign optimization and ad monetization.

Key Features

  • Respect for User Consent: GCM adjusts the operation of Google tags to align with users' consent decisions regarding ads and analytics cookies.
  • Insight Collection: It enables advertisers to gather crucial data on campaign conversions and other metrics while adhering to consent choices.
  • Ad and Analytics Cookie Management: GCM dynamically alters tag behavior based on the consent status for advertising and analytics purposes.

Consent Status Impact

  • Consent Granted: When users consent to cookies, Google measurement tools operate typically, allowing full tracking and data collection capabilities.
  • Consent Withheld: Without consent, Google tags will not utilize ad cookies. Instead, they resort to alternative measurement methodologies that aggregate data at a higher level, ensuring privacy compliance.

Consent Types and Impact

Consent Types Consent Mode Consent Mode V2 InMobi CMP (Web) Description
ad_storage Mandatory Mandatory Supported Enables storage for advertising, like web cookies or app device identifiers.
analytics_storage Mandatory Mandatory Supported Enables storage for analytics, e.g., visit duration cookies or app device identifiers.
ad_user_data Optional Mandatory Supported Consents to send user data to Google for online advertising.
ad_personalization Optional Mandatory Supported Consents to personalized advertising.
functionality_storage Optional Optional Supported Enables storage supporting website/app functionality, such as language settings.
personalization_storage Optional Optional Supported Enables storage for personalization, e.g., video recommendations.
security_storage Optional Optional Supported Enables storage for security, covering authentication, fraud prevention, and user protection.

Consent Mode Tag Support

Google offers tags and SDKs for different products equipped with integrated consent verifications. These tags adapt their functionality and behavior according to consent statuses. Here are some of the supported products:

  • Google tag
  • Google Analytics (comprising Google Analytics for Firebase SDK)
  • Google Ads (encompassing Conversion Tracking and Remarketing)
  • Floodlight
  • Conversion Linker

You can incorporate checks within Tag Manager when tags lack inherent consent verifications.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 07 Mar, 2024

iOS

Overview

Google Analytics introduces Consent Mode v2, providing a streamlined approach to adjust your SDK's behavior based on user consent status. This feature lets you easily indicate whether consent has been granted for Analytics and Ads cookies. To implement Consent Mode v2 for your apps, follow these straightforward steps:

  • Utilize Google Analytics for Firebase SDK to set default consent values.
  • Employ the setConsent method programmatically to update these values based on in-app user consent.

For more information, see Consent mode on websites and mobile apps.

Consent Types and Impact

Consent Types Consent Mode V2 InMobi CMP (Web) Description
ad_storage Mandatory Supported Enables storage for advertising, like web cookies or app device identifiers.
analytics_storage Mandatory Supported Enables storage for analytics, e.g., visit duration cookies or app device identifiers.
ad_user_data Mandatory Supported Consent is required to send user data to Google for online advertising.
ad_personalization Mandatory Supported Consents to personalized advertising.

Prerequisites

By default, the Google basic consent feature is disabled within the portal. Enable it manually to activate.

Configure Google Consent Mode

  1. Log in to the InMobi CMP portal.
  2. Navigate to your Property settings:
    • For new Apps: Under the Properties tab, click PROTECT AN APP for your sites, and enter all the necessary information. For more information, see Protect An App.
    • For existing Apps: Under the Properties tab and from the list of properties, click the edit icon for the desired site and enter all the information required on the Edit a App page.
  3. In the ENABLE GOOGLE BASIC CONSENT field, select Yes, and a popup window appears.

  4. Select the target location in the WHICH USERS SHOULD BE ASKED FOR CONSENT field.
  5. Select the purpose(s) and default value(s).
  6. Click SAVE PROPERTY.

GBC Implementation

Configure Default Consent Value

To configure Google Consent Mode, follow the instructions below:

  1. To set the default consent state, open your app's Info.plist file since no consent mode values are pre-configured by default.
  2. Add the consent mode key-value pairs. The key describes the consent type, and the value indicates the consent state. You can set the value for the following as true (consent granted) or false (consent denied):
    • GOOGLE_ANALYTICS_DEFAULT_ALLOW_ANALYTICS_STORAGE
    • GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_STORAGE
    • GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_USER_DATA
    • GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_PERSONALIZATION_SIGNALS
  3. Save your changes and update the consent values similarly as shown below:
    <key>GOOGLE_ANALYTICS_DEFAULT_ALLOW_ANALYTICS_STORAGE</key> <true/> 
    <key>GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_STORAGE</key> <true/> 
    <key>GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_USER_DATA</key> <true/> 
    <key>GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_PERSONALIZATION_SIGNALS</key> <true/>
    

Update Parameter

  1. Include the gbcDelegate parameter in the startChoice method to facilitate the retrieval of GBC callbacks.

    Swift

    func startChoice() { 
      // Use the ChoiceStyle class to set the light and dark themes 
      let style = ChoiceStyle(preferredThemeMode: .auto, lightThemeStyleSheet: "LightStyleSheet", darkThemeStyleSheet: "DarkStyleSheet") 
       
      // Initialise InMobi CMP 
      ChoiceCmp.shared.startChoice(pcode: "<YOUR PCODE>", delegate: self, gbcDelegate: self, style: style) 
    }
    
    

    Objective-C

    -(void) startChoice { 
      // Use the ChoiceStyle class to set the light and dark themes 
      ChoiceStyle *style = [[ChoiceStyle alloc] initWithPreferredThemeMode: CMPUserInterfaceStyleAuto lightThemeStyleSheet: @"LightStyleSheet" darkThemeStyleSheet:@"DarkStyleSheet"]; 
       
      // Initialise InMobi CMP 
      [[ChoiceCmp shared] startChoiceWithPcode:@"<YOUR PCODE>" delegate: self ccpaDelegate: self gbcDelegate: self shouldDisplayIDFA:true style: style]; 
    }
    
    
  2. The Google basic consent feature may be included in the GDPR or CCPA popup or displayed independently. Use the showGoogleBasicConsent(delegate:) API to present the standalone popup.

    Swift

    func showGoogleConsent() { 
      // Show Google basic consent 
      ChoiceCmp.shared.showGoogleBasicConsent(delegate: self) 
    }
    
    

    Objective-C

    -(void) showGoogleConsent { 
      // Show Google basic consent 
      [[ChoiceCmp shared] showGoogleBasicConsentWithDelegate: self]; 
    }
    
    
  3. Ensure the appropriate delegate is assigned for the class.

    Swift

    import InMobiCMP 
     
    @UIApplicationMain 
    class AppDelegate: UIResponder, UIApplicationDelegate, ChoiceCmpDelegate, CCPADelegate, GoogleBasicConsentDelegate { 
      … 
    }
    
    

    Objective-C

    #import "AppDelegate.h" 
    @import InMobiCMP; 
     
    @interface AppDelegate ()<ChoiceCmpDelegate,CCPADelegate, GoogleBasicConsentDelegate> 
     
    @end
    
    
  4. Implement didReceiveGoogleBasicConsentChange(consents:) callback function.

    Swift

    func didReceiveGoogleBasicConsentChange(consents: GoogleBasicConsents) { 
      print(AdStorage value: \(consents.adStorage)") 
      print("AdUserData value: \(consents.adUserData)") 
      print("AdPersonalization value: \(consents.adPersonalization)") 
      print("AnalyticsStorage value: \(consents.analyticsStorage)") 
    }
    
    

    Objective-C

    -(void) didReceiveGoogleBasicConsentChangeWithConsents:(GoogleBasicConsents * _Nonnull)consents { 
      NSLog(@"Ad storage value: %ld", consents.adStorage); 
      NSLog(@"Ad user data value: %ld", consents.adUserData); 
      NSLog(@"Ad personalization value: %ld", consents.adPersonalization); 
      NSLog(@"Analytics storage value: %ld", consents.analyticsStorage); 
    }
    
    
  5. Update consent using the above callback: The example below demonstrates the functionality of the setConsent method, illustrating the value update for Analytics, Ad storage, Ad user data, and Ad personalization to either granted or denied status. To update the Consent Type, retrieve the consent values from the didReceiveGoogleBasicConsentChange(consents: ) callback and set the consent using the setConsent method of Google’s Analytics API. The callback will be initiated only when you enable Google consent in the portal, and the user gives consent. You will be unable to initiate it during the consecutive app launches. 

    Note

    You must use the setConsent method to set the consent provided by the callback API as InMobi CMP doesn't automatically set it.

    Swift

    func didReceiveGoogleBasicConsentChange(consents: GoogleBasicConsents) { 
            Analytics.setConsent([ 
                .analyticsStorage: consents.analyticsStorage == .granted ? .granted : .denied, 
                .adStorage: consents.adStorage == .granted ? .granted : .denied, 
                .adUserData: consents.adUserData == .granted ? .granted : .denied, 
                .adPersonalization: consents.adPersonalization == .granted ? .granted : .denied 
            ]) 
        }
    
    

    Objective-C

    - (void)didReceiveGoogleBasicConsentChangeWithConsents:(GoogleBasicConsents * _Nonnull)consents {  
        [FIRAnalytics setConsent:@{ 
            FIRConsentTypeAnalyticsStorage :  
                [consents analyticsStorage] == GoogleBasicConsentValueGranted ? FIRConsentStatusGranted : FIRConsentStatusDenied, 
        FIRConsentTypeAdStorage :  
                [consents adStorage] == GoogleBasicConsentValueGranted ? FIRConsentStatusGranted : FIRConsentStatusDenied, 
        FIRConsentTypeAdUserData :  
                [consents adUserData] == GoogleBasicConsentValueGranted ? FIRConsentStatusGranted : FIRConsentStatusDenied, 
        FIRConsentTypeAdPersonalization :  
                [consents adPersonalization] == GoogleBasicConsentValueGranted ? FIRConsentStatusGranted : FIRConsentStatusDenied, 
        }]; 
    }
    
    

    The value set by the setConsent method persists across app executions and overrides the default values configured through the Info.plist file. The value remains in that state until you call the setConsent method again, even if a user closes and reopens the app.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 28 Mar, 2024

Web

This topic provides detailed instructions for implementing Google Basic Consent using the InMobi CMP. By integrating Google Basic Consent, you can manage user preferences compliantly and enhance ad personalization based on user consent status.

Compatibility Requirement

GCM is compatible exclusively with gtag.js. Advertisers must ensure the use of gtag.js for tag management. Legacy tags such as ga.js, analytics.js, or conversion.js are not supported.

Prerequisites

  • Google Tag installation for all your websites (for more information, see Set up your Google tag),
  • An active account with InMobi CMP,
  • Basic understanding of Google Consent Mode and its functionalities,
  • Access to your website's codebase for integration purposes.

Configure Google Consent Mode in InMobi CMP

  1. Log in to the InMobi CMP portal.
  2. Navigate to your Property settings:
    • For new sites: Under the Properties tab, click PROTECT A SITE for your sites, and enter all the necessary information. For more information, see Protect A Site.
    • For existing sites: Under the Properties tab and from the list of properties, click the edit icon for the desired site and enter all the information required on the Edit a Site page.
    • Bulk Update: Under the Properties tab, click BULK UPDATE, and select Yes in the Google Basic Consent field to enable GBC. For more information, see Bulk Update.

    Note

    You must mention version 52 or above in the CMP VERSION field to view the ENABLE GOOGLE BASIC CONSENT field.

  3. In the ENABLE GOOGLE BASIC CONSENT field, select Yes, and a popup window appears.

  4. Select the target location in the WHICH USERS SHOULD BE ASKED FOR CONSENT field.
  5. Select the purpose(s) and default value(s).
  6. Click SAVE PROPERTY.

    Note

    After selecting GBC on the portal for the AMP sites and saving it, you should copy the final AMP tag and update it on your AMP site. Unlike the non-AMP sites, you should manually update the AMP sites' tags after any configuration changes.

Verify Google Consent Mode

There are two methods to verify your Google consent mode.

Method 1

  1. Navigate to Preview Mode: In your GTM interface, navigate to the relevant container and click the Preview button in the top right corner, and it will activate the Preview mode.

  2. Connect Tag Assistant to your site and give consent: In the GTM preview mode interface, enter the URL of your website containing GTM tags and initiate the connection process. Upon successful connection, your website will automatically launch. Subsequently, engage with your website in the capacity of an end-user and proceed to provide consent as needed.
  3. Verify Consent Status: Utilize the GTM preview mode interface to inspect the functionality of the desired tag. If the consent tags are successfully activated (as shown below), it depicts the accurate capture of consent data.

Method 2

To verify your Google Consent mode setup, open your browser's console and use window.dataLayer = window.dataLayer || [];.You should find the consent and update.

{
    "0": "consent",
    "1": "update",
    "2": {
        "ad_storage": "granted",
        "ad_user_data": "granted",
        "analytics_storage": "granted",
        "functionality_storage": "granted",
        "personalization_storage": "granted",
        "ad_personalization": "granted",
        "security_storage": "granted"
    }
}

Additional Events

Event-1: cookie_consent_update

Whenever a user updates or modifies their consents, the InMobi CMP generates a new event called cookie_consent_update. This event serves as a custom trigger that publishers can utilize to trigger other events.

To implement this trigger, follow the instructions:

  1. Copy the trigger name cookie_consent_update.
  2. Navigate to Triggers &gt; New Trigger &gt; Custom event.
  3. In the Event Name field, enter cookie_consent_update.
  4. Provide a specific name for this custom event trigger and click Save.
  5. Navigate to Tags &gt; Select the checkbox for relevant tags and click Edit Tags &gt; Add a new trigger &gt; select "cookie_consent_update" trigger.
  6. Click Save.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 22 Apr, 2025

Android

Version 2.2.2

[24/April/2025]

  • Bug Fixes:
    • Fixed the USP string for Non-California States.

Version 2.2.1

[04/March/2025]

  • Feature Enhancement:
    • Added support for Colour customisation from Themes section in the portal.
  • Bug Fixes:
    • Fixed a minor issue on Advanced text customisation.

Version 2.2.0

[17/February/2025]

  • Feature Enhancement:
    • Added “Consent or Pay” feature for GDPR regulation.
    • Added GDPR support for countries like India, Vietnam, Hong kong, Thailand, Malaysia, Singapore, and the Philippines.
    • Added support for Hindi, Thai, Malay, and Vietnamese languages.
  • Bug Fixes:
    • Fixed few issues regarding Visit and Session events in Analytics.

Version 2.1.1

[27/January/2025]

  • Feature Enhancement:
    • Added support for GDPR in USA using the API `ChoiceCmp.forceDisplayUI()`.
    • Added GDPR support for all the countries listed on the portal.
    • Added support for Japanese, Mandarin, Korean, and Bahasa languages.

Version 2.1.0

[24/Oct/2024]

  • Feature Enhancement:
    • 13 months expiry for GDPR consent.

Version 2.0.2

[11/Sept/2024]

  • Feature Enhancement:
    • Removed auto pop-up for CCPA flow.
    • Added versioning for sdk. Use getSDKVersion() to get current sdk version.
    • Removed the onCmpUIShown(info: PingReturn) callback and added a callback onCMPUIStatusChanged(status: DisplayInfo) to inform when the CMP UI status is changed.
    • Added support for Ukranian and Turkish languages.
    • Added usRegulationApplies flag in the PingReturn model to inform whether the US regulations is applicable at any point of time.
  • Bug Fixes:
    • Fixed the issue where Accept all button in MSPA change preferences screen is taking theme color
    • Fixed the issue where onUserMovedToOtherState callback in MSPA is triggering when the user is moving to another state and regulation is changing.

Version 2.0.1

[10/July/2024]

  • Deprecation:
    • Deprecated getTCData(). Use getGDPRData() instead.
      ChoiceCmp.getGDPRData()
      
  • Bug Fixes:
    • Fixed saving user consent choices after app is killed.

Version 2.0.0

[02/July/2024]

  • Feature Enhancement:
    • Added support for MSPA. 
    • Added callback for retrieving MSPA consent after the user has given consent or consent is saved.
      override fun onReceiveUSRegulationsConsent(usRegulationData: USRegulationData) {}
      
    • Added callback to see if the user has moved from one state to another due to which applicable regulation is changed.
      override fun onUserMovedToOtherState() {}
      
    • Added IAB encoder dependency
      implementation 'com.iabgpp:iabgpp-encoder:3.1.1'
      
    • Changed the way to customize the UI and the model names. Introduced the builder to create the object.
      ChoiceStyle.Builder().setThemeMode(ThemeMode.AUTO). setLightModeColors(ChoiceColor()). setDarkModeColors(ChoiceColor()).build()
      
  • Deprecation:
    • Deprecated CCPA. Recommend using MSPA.

Version 1.2.2

[13/June/2024]

  • Feature Enhancement:
    • Included Iceland, Liechtenstein, and Norway in the list of EEA countries.
  • Bug Fixes:
    • Fixed the crash related to late initialisation of few variables.
    • Fixed the Proguard issues related to Gson conversion.

Version 1.2.1

[02/May/2024]

  • Feature Enhancement:
    • Added support for Android 14 devices for apps targeting API 34.
    • Included Switzerland in the list of EEA countries.
  • Bug Fixes:
    • Fixed the issue related to the vendor numbers and details on each purpose.
    • Fixed the behaviour on back press from CCPA screen.
    • Fixed the crash on activity destroying while opening CCPA screen.
    • Fixed the issue in customisation of “More Options” button.

Version 1.2.0

[22/March/2024]

  • Feature Enhancement:
    • Introduced support for Google basic consent.
      • Seamlessly integrate it into GDPR or CCPA popups.
      • Can also be displayed independently through the API: showGBCScreen(activity: Activity).
      • Upon user consent in any of the aforementioned scenarios, publishers can use the callback onGoogleBasicConsentChange(consents: GoogleBasicConsents) will trigger, providing the consent values.
    • Added implementation to the build.gradle of your application: implementation 'com.google.code.gson:gson:2.8.8'
    • Modified ChoiceStyleSheet to suit the given fields in UI in a more appropriate way.
  • Deprecation:
    • Deprecated the following fields in ChoiceStyleSheet while passing in startChoice method for customisation:
      • tabForegroundColor
      • infoButtonForegroundColor
      • infoScreenBackgroundColor
      • infoScreenForegroundColor
      • globalTextColor
      • listTextColor
  • Bug Fixes:
    • Corrected inaccuracies in CCPA values under certain conditions.
    • Corrected colors applied in various fields while passing values to ChoiceStyleSheet.
    • Corrected inaccuracies in CCPA values under certain conditions.
    • Fixed showing number of purposes if language other than English is selected.
    • Started showing retention data in vendor description page..

Version 1.1.0

[25/January/2024]

  • Feature Enhancement:
    • Added functionality to configure styles for both dark and light modes. For more information, see Android.
      ChoiceCmp.startChoice( 
       app = application, 
       packageId = packageId,  
       pCode = <YOUR PCODE>,  
       callback= choiceCmpCallback,  
       resources = ChoiceStyleResources(themeMode = ThemeMode.AUTO, 
                                        styleId = R.raw.choice_style_sheet,
                                        styleIdNight = R.raw.choice_style_sheet_dark)
      )
      
  • Bug Fixes:
    • Publishers can now access purpose consent parameters via the Unity plugin on Native SDKs for downstream configurations. For more information, see Unity.

Version 1.0.0

[21/December/2023]

  • Feature Enhancement:
    • The design of the consent screen has been altered to display it as a bottom sheet.
  • Bug Fixes:
    • Users can now conveniently access purpose details within dedicated sections.
    • Non-IAB vendors removed by the publisher will no longer be visible to the end user. For more information, see Non-IAB Vendors.
    • The Move Objection button is now clickable when one or more purposes are deselected. For more information, see Blocking Vendors.
  • Deprecation Notice:
    • The package name for importing Choice components is deprecated. The previous package name was "com.inmobi.choice," and it has now been renamed "com.inmobi.cmp."

Other Enhancements

  • Fixed download error for publishers accessing logs for any property on InMobi CMP portal.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 24 Apr, 2025

iOS

Version 2.2.1

[05/March/2025]

  • Feature Enhancement:
    • Support for Colour customisation from the Themes Section in portal.
    • Reduced the SDK size.
  • Bug Fixes:
    • Fixed an issue where Google Basic Consent description was not visible on More Options view in Advanced Customization and Consent or Pay.

Version 2.2.0

[17/February/2025]

  • Feature Enhancement:
    • Added “Consent or Pay” feature for GDPR.
    • Added support for Hindi, Thai, Malay, and Vietnamese languages.
  • Bug Fixes:
    • Fixed few issues regarding Visit and Session events in Analytics.

Version 2.1.2

[24/January/2025]

  • Feature Enhancement:
    • Added support for GDPR in USA using the API `ChoiceCmp.shared.forceDisplayUI()`.
    • Added GDPR support for all the countries listed on the portal.
    • Added support for Japanese, Mandarin, Korean, and Bahasa languages.
    • GDPR-related callbacks will only be fired when GDPR is applicable.

Version 2.1.1

[21/Oct/2024]

  • Feature Enhancement:
    • 13 months expiry for GDPR consent.
    • Added support for the Norwegian language.
  • Bug Fixes:
    • Fixed the issue where the number of vendors / partners was not correct in some cases.

Version 2.1.0

[13/Sept/2024]

  • Feature Enhancement:
    • Introduced a new callback cmpUIStatusChanged(info: DisplayInfo) to inform when the CMP UI status is changed.
    • Added a new API for retrieving the current SDK version ChoiceCmp.shared.sdkVersion.
    • Added a new parameter usRegulationApplies in the PingResponse model to inform whether the US regulation is applicable at any point of time.
    • Added support for Ukranian and Turkish languages.
    • Removed auto pop-up for CCPA flow.
    • Removed cmpDidShow(info:PingResponse) callback. Use cmpUIStatusChanged(info: DisplayInfo) instead.
  • Bug Fixes:
    • Fixed the issue where sometimes Google vendor tab was not visible.
    • Fixed the issue where the Google basic consent popup did not retrigger when the configuration was changed from portal.
    • Fixed translation issues for some languages and features.
    • Fixed issue with data declaration in vendor details.

Version 2.0.1

[10/July/2024]

  • Feature Enhancement:
    • Introduced a new API for getting GDPRData in an asynchronous manner.
      ChoiceCmp.shared.getGDPRData { gdprData in
          print(gdprData.tcString)
          print(gdprData.gppString)
      }
      
      
  • Deprecation:
    • Deprecated the usage of getTCString and getGPPString API, use getGDPRData API instead.

Version 2.0.0

[03/July/2024]

  • Feature Enhancement:
    • Global Privacy Platform: The GPP is a protocol designed to streamline the transmission of privacy, consent, and consumer choice signals from sites and apps to ad tech providers. It enables advertisers, publishers, and technology vendors in the digital advertising industry to adapt to regulatory demands across markets. The GPP currently supports the following privacy strings: the IAB Europe TCF, the MSPA’s US National string, and US states-specific privacy strings for California, Virginia, Utah, Colorado, and Connecticut.
    • Implemented a new API for displaying MSPA / CCPA popup: showUSRegulations(ccpaDelegate: ).
    • Upon MSPA user consent, publishers can use the callback didReceiveUSRegulationsConsent(usRegData: ) to retrieve the MSPA consent values.
    • Introduced a new callback userDidMoveToOtherState(). This callback will be triggered when the user moves to a different state accompanied by a change of regulations.
    • Added Switzerland, Iceland, Liechtenstein, and Norway to the list of GDPR countries covered under "EEA & UK".
    • Updated the minimum deployment target to iOS 12.
    • didReceiveIABVendorConsent callback has been updated to didReceiveIABVendorConsent(gdprData: GDPRData, updated: Bool). GDPRData will entail both TC String and GPP String.
    • In addition to GPP String in GDPRData, privacyEncodingMode  has also been added to indicate which encoding mode has been set in the portal.
    • The ChoiceStyle API has been updated to accept dark and light mode colors using ChoiceColor API:
      let colors = ChoiceColor() 
      colors.dividerColor = "#CCBBFF"
      ChoiceStyle(preferredThemeMode: .auto, lightModeColors: colors, darkModeColors: colors)
      
  • Deprecation:
    • Deprecated the usage of the showCCPA(ccpaDelegate: ) API for displaying CCPA popup. Use showUSRegulations(ccpaDelegate: ) instead.

Version 1.2.1

[12/March/2024]

  • Feature Enhancement:
    • Implemented support for Google Basic Consent.
      • You can seamlessly integrate GBC into GDPR or CCPA popups.
      • Introduced independent display through the API: showGoogleBasicConsent(delegate: ).
      • Upon user consent in the scenarios above, you can leverage the callback didReceiveGoogleBasicConsentChange(consents: ), which will trigger and provide the consent values.
    • Expanded the startChoice API by incorporating the gbcDelegate parameter. Setting this delegate to receive the corresponding callback is imperative.
    • Introduced a new API for displaying CCPA popups: showCCPA(ccpaDelegate: ).
    • Added a Privacy manifest. For more information, see Privacy updates for App Store submissions.
  • Deprecation:
    • Deprecated the usage of the startCCPA(pcode: , ccpaDelegate: ) API for displaying CCPA popup. You should use showCCPA(ccpaDelegate: ) instead.
  • Bug Fixes:
    • Ensured appropriate persistence of Do Not Sell My Data Switch State.
    • Rectified inaccuracies in CCPA values occurring under specific conditions.
    • Resolved the problem where the GDPR popup failed to re-trigger upon TCF version changes in the portal.

Version 1.1.1

[23/February/2024]

  • Bug Fixes:
    • Improved Asynchronous Processes: Asynchronous processes have been improved to operate independently of the completion status of the didReceiveIABVendorConsent callback. This enhancement ensures a more seamless and predictable execution of concurrent tasks, contributing to a smoother user experience.

Version 1.1.0

[24/January/2024]

  • Feature Enhancement:
    • Implemented support for configuring styles in both dark and light modes. For more information, see iOS.
      
      let style = ChoiceStyle(preferredThemeMode: .auto, lightThemeStyleSheet: "LightStyleSheet", darkThemeStyleSheet: "DarkStyleSheet")
      ChoiceCmp.shared.startChoice(pcode: "< YOUR PCODE >", delegate: self, style: style)
      
      
  • Bug Fixes:
    • Publishers can now access purpose consent parameters via the Unity plugin on Native SDKs for downstream configurations. For more information, see Unity.

Version 1.0.0

[24/October/2023]

  • Feature Enhancement:
    • Introduced support for CocoaPods. For more information, see iOS.
    • Excluded architectures no longer require the addition of arm64.
    • Modified bundle name to InMobiCMP and updated the bundle ID to "com.inmobi.cmp".
  • Bug Fixes:
    • Users can now access purpose details within the legitimate section.
    • The tab texts are now visible in dark mode. For more information, see iOS.
    • Resolved issues with text and toggles displaying erratic behavior on the legitimate interest screen.
    • An error message is now generated when attempting to call the CCPA API without proper configuration from the portal.

Other Enhancements

  • Fixed download error for publishers accessing logs for any property on InMobi CMP portal.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 22 Apr, 2025

Web

Version 60

[24/March/2025]

  • Feature Enhancement:
    • Updated @iabgpp/cmpapi and @iabgpp/stub to their latest versions(v3.1.6).
    • Updated the iabtechlabtcf TCF libraries to support additional languages.
  • Bug Fixes:
    • Fixed a bug on the Partners page where clicking "Reject All" or "Accept All" unintentionally impacted legitimate interests (LI). This update ensures LI settings remain unaffected by choices made on the Partners page.

Version 59

[27/January/2025]

  • Feature Enhancement:
    • Added Japan, Korea, Indonesia, and Taiwan in consent location countries.
    • Added support for Japanese, Korean, Mandarin, and Bahasa languages.
    • Added functionality to show GDPR consent screen in the USA via applicable API.
    • Upgraded IAB GPP-related libraries to 3.1.5.

Version 58

[17/December/2024]

  • Bug Fixes:
    • Resolved an issue where Legitimate Interest was not included in the consent string when the close or reject button was clicked.

Version 57

[17/December/2024]

  • Bug Fixes:
    • Fixed an issue where the GPP string was invalid due to Publisher Restrictions.

Version 56

[21/October/2024]

  • Feature Enhancement:
    • Included new vendors disclosed section(along with Core and Publisher TC) in the TC string.
    • UX Changes
      • Vendor Screen (for every vendor)
        • Added Legitimate Interest Purpose(s)
        • Added Description for features, special features, and data categories
        • Under Storage disclosure, changed key maxAgeSeconds to Max Age Period for better clarity
        • Under Storage disclosure, for Cookie Refresh, we are showing either True or False
        • Minor CSS fixes

Version 55

[25/September/2024]

  • Feature Enhancement:
    • Added Dynamic Persistent link text in CMP description: A customizable privacy label will appear in the CMP description set on the Portal in the Themes section with the PERSISTENT CONSENT LINK LABEL field.
    • Categorization of Special Purposes, Features, and Special Features into separate categories.
    • Added Brazil and Canada as separate options along with EEA, USA, WorldWide, and Never.
    • Added special purpose: “Save and communicate privacy choices”.
    • Updated CMP description text to include consent storage mechanism and cookie expiration duration.
    • Added functionality to add GDPR Privacy Link on the init/purposes screen of the CMP consent screen.
    • The GPP stub function has been moved to the universal tag now. Please deploy the updated universal tag.
  • Bug Fixes:
    • Purposes are shown properly under storage disclosures in Vendors.
    • Added data retention for each purpose, special purpose, and feature.

Version 54

[04/June/2024]

  • Feature Enhancement:
    • Global Privacy Platform: The GPP is a protocol designed to streamline the transmission of privacy, consent, and consumer choice signals from sites and apps to ad tech providers. It enables advertisers, publishers, and technology vendors in the digital advertising industry to adapt to regulatory demands across markets. The GPP currently supports the following privacy strings: the IAB Europe TCF, the MSPA’s US National string, and US states-specific privacy strings for California, Virginia, Utah, Colorado, and Connecticut.
    • Added Iceland, Liechtenstein, and Norway: We have expanded our Consent Management Platform (CMP) to include additional countries under EEA (European Economic Area). Iceland, Liechtenstein, and Norway users will now see the GDPR consent popup and can give their consent under EEA.

Version 53

[29/April/2024]

  • Feature Enhancement:
    • Launched Group consents for Google Consents.
    • Added Switzerland to the list of GDPR countries covered under "EEA & UK".
  • Bug Fixes:
    • Fixed the issue where the CMP was failing to load on Firefox.
    • Accept All/Reject All buttons are now working for Google Consents.
    • Fixed consent_cookie_update gtm custom event firing on page refresh.

Version 52

[29/February/2024]

  • Feature Enhancement:
    • Google Basic Consent Support: Introduced functionality to activate Google Basic Consent support for properties utilizing Google services like Google Analytics and Google Ads. This enhancement ensures users can seamlessly continue using these applications while adhering to consent requirements. For more information, see Google Basic Consent with InMobi CMP.
    • Global Privacy Control Support: Implemented functionality to respect users' Global Privacy Control (GPC) signals, ensuring compliance with CCPA legislation requirements.
      • When an end-user activates the GPC flag in their browser and does not communicate any preferences through the consent banner, the Opt-out signal in the US privacy string will be set to Yes, effectively opting the user out.
      • Conversely, if an end-user enables the GPC flag and communicates an opt-out preference via the consent banner, the user's explicitly shared preference takes precedence over the GPC signal.
      • If the GPC flag is not set or not supported by the browser, there are no changes to the string.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 27 Mar, 2025

Best Practices

  • CMP comes first: For websites, implement the CMP in the header so that you gather users’ consent before any other tags are loaded. Most tags require consent before they can be used lawfully. Tags should look for the presence of a CMP to adjust their behavior dynamically depending on the user’s selected preferences. This only works if the CMP loads before any other tags.
  • Keep the CMP up to date: We regularly publish updates to InMobi CMP to fix bugs or change and update functionalities in response to new best practices, regulatory opinion, and case law. All versions are listed here.
  • Don’t modify InMobi CMP’s source code: Not only is doing so against our terms of service, but you run the risk of breaking or circumventing carefully considered elements that, when changed, may result in your and your partners’ non-compliance with the law.
  • Privacy by Default: If you are in doubt about what privacy and data protection laws require you to do, leverage InMobi’s default configuration settings and go TCF 2.2. We have carefully tuned the default to help reduce the risk of non‑compliance.
  • With great customizability comes great responsibility: Only change defaults after carefully considering the implications and after having consulted with your privacy and/or legal team. Even something as basic as changing the color scheme of the CMP can have severe consequences. For example, you could inadvertently change the color of text or buttons to make them hard to read or invisible against their background.
  • Keep the persistent Recall CMP link: Users must be able to withdraw their consent at any time, the persistent Recall CMP link is the easiest way to achieve that. Only remove the persistent Recall CMP link if you have added the link in another place in which the user would expect to withdraw their consent.

이 페이지가 도움이 되었나요?

이 페이지에서

마지막 업데이트 날짜: 04 Jan, 2024