דרישות מוקדמות
במדריך ההטמעה הזה ההנחה היא שאתם מכירים את הנושאים הבאים:
- פרוטוקול הטמעה של מודעות AdSense לחיפוש בהתאמה אישית (CSA)
- פיתוח אפליקציות ל-Android
- שיוך של Google Mobile Ads SDK ל-Android (כיום חלק משירותי Google Play) לפרויקט ב-Android Studio. נדרשת גרסה 9.0.0 של שירותי Google Play.
שיעורים
כדי להציג באפליקציה שלכם מודעות AFSMA (שנקראות גם מודעות דינמיות לרשת החיפוש) תוכלו להטמיע את המחלקות הבאות:
- הכיתה הזו יורשת את הסיווג
ViewGroup
של Android ומציגה את מודעות AFSMA. יחידת המודעותSearchAdView
שולחת את הבקשה להצגת מודעה עםDynamicHeightSearchAdRequest
, ומציגה את המודעות המוחזרות. צריך להוסיף את ה-SearchAdView
לכל אחת מקבוצות התצוגה הקיימות של האפליקציה. - ה-
SearchAdView
צריך להופיע עם ההקשר שבוSearchAdView
פועל, בדרך כללActivity
. - ברגע שנוצר ה-
SearchAdView
, עליכם להתקשר לשיטהsetAdSize()
עםAdSize.SEARCH
כדי לבקש מודעות של AFSMA. ערכי Enum אחרים יבקשו מודעות שאינן תואמות ל-AFS לאפליקציות לנייד. - יש להפעיל את השיטה
setAdUnitId()
באובייקט הזה ולציין את קוד הנכס.
DynamicHeightSearchAdRequest.Builder
- כיתה זו כוללת את הפרמטרים של הבקשות למודעות. הדבר דומה להגדרת פרמטרים באובייקטים של בקשות למודעות JavaScript (אפשרויות דף, אפשרויות יחידה) ב-AFS במחשב ובאינטרנט לנייד.
- הגדירו פרמטרים באמצעות הקובעים המתאימים (במילים אחרות, קראו ל-
setQuery()
כדי להגדיר את פרמטר השאילתה).
הטמעה לדוגמה
הדוגמה הבאה ממחישה את השימוש ב-Activity
ליצירת SearchAdView
בתור תצוגת משנה של ViewGroup
. כדי לבקש להציג מודעות AFSMA כראוי, האובייקט SearchAdView
חייב להתקשר לשיטה setAdSize()
עם AdSize.SEARCH
.
// MainActivity.java implementation
// (MainActivity is a subclass of Activity)
// Create the SearchAdView
final SearchAdView searchAdView = new SearchAdView(this);
// Set parameter to request for dynamic height search ads
searchAdView.setAdSize(AdSize.SEARCH); // Important!
// Replace with your pub ID (e.g. ms-app-pub-9616389000213823)
searchAdView.setAdUnitId("ms-app-pub-################");
// Add searchAdView to parent view group
...
בתוך אותו Activity
, יוצרים DynamicHeightSearchAdRequest.Builder
שמכתיב את הפרמטרים של המודעה שתוצג ב-SearchAdView
.
מודעות AdSense לחיפוש (AFSMA) מוגדרות בדיוק כמו מודעות AdSense לרשת החיפוש בהתאמה אישית של AdSense לחיפוש. כדי לקבל פרטים נוספים, ניתן לעיין במידע על מודעות לרשת החיפוש בהתאמה אישית של AdSense לחיפוש.
// Create the ad request
DynamicHeightSearchAdRequest.Builder builder =
new DynamicHeightSearchAdRequest.Builder();
builder.setQuery("flowers");
builder.setNumber(2);
// Replace with the ID of a style from your custom search styles
builder.setAdvancedOptionValue("csa_styleId", "0000000001");
// Customization options (set using setters on
// DynamicHeightSearchAdRequest.Builder)
builder.setAdTest(true);
אתם יכולים גם לבחור אפשרויות נוספות להתאמה אישית. לשם כך, צריך להגדיר מאפיינים נוספים באובייקט DynamicHeightSearchAdRequest.Builder
.
כדי לבקש מודעה, צריך לקרוא לשיטה loadAd()
ולהשתמש באובייקט DynamicHeightSearchAdRequest.Builder
מהאובייקט SearchAdView
:
searchAdView.loadAd(builder.build());
אפשרויות מתקדמות
ניתן להגדיר את רוב הפרמטרים של הבקשות למודעות באמצעות שיטות Setter באובייקט DynamicHeightSearchAdRequest.Builder
.
אם יש לכם פרמטרים של שיטות סידור ב-DynamicHeightSearchAdRequest.Builder
, אפשר להגדיר אותם באמצעות צמדי מפתח/ערך בשיטה setAdvancedOptionValue()
.
לקבלת רשימה מלאה של ההגדרות שאפשר להגדיר בשיטה setAdvancedOptionValue()
, תוכלו לעיין בחומר העזר בנושא מודעות לרשת החיפוש בהתאמה אישית של AdSense לחיפוש (AFS).
התחילית של פרמטר המפתח היא "csa_" כדי שהנכס יוגדר כראוי.
// Advanced customization options (set using key-value pair)
// Set a parameter (parameter_name) and its value (parameter_value)
// builder.setAdvancedOptionValue("csa_parameter_name", "parameter_value");
// Example: Show visible URL below description
// (domainLinkAboveDescription: false)
builder.setAdvancedOptionValue("csa_domainLinkAboveDescription", "false");
אם משתמשים בשיטת המגדיר של פרמטר ומגדירים אותו באמצעות setAdvancedOptionValue
, הקריאה השנייה תבטל את הערך של השיחה הראשונה.
בדיקת שגיאות
הרכיב SearchAdView
(searchAdView
כאן) מכיל שיטה של setAdListener()
לעזור לכם לבדוק שגיאות. באותו Activity
:
searchAdView.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
// Called when an ad is loaded
super.onAdLoaded();
Toast.makeText(MainActivity.this, "Ad Loaded",
Toast.LENGTH_SHORT).show();
Log.d(MainActivity.class.getSimpleName(), "Ad Loaded");
}
@Override
public void onAdOpened() {
// Called when an ad opens an overlay that covers the screen
super.onAdOpened();
Toast.makeText(MainActivity.this, "Ad Opened",
Toast.LENGTH_SHORT).show();
Log.d(MainActivity.class.getSimpleName(), "Ad Opened");
}
@Override
public void onAdLeftApplication() {
// Called when an ad leaves the application
// (to go to the browser for example)
super.onAdLeftApplication();
Toast.makeText(MainActivity.this, "Ad Left Application",
Toast.LENGTH_SHORT).show();
Log.d(MainActivity.class.getSimpleName(), "Ad Left Application");
}
@Override
public void onAdFailedToLoad(int errorCode) {
// Called when an ad request failed
super.onAdFailedToLoad(errorCode);
Toast.makeText(MainActivity.this, "Ad Failed to Load: " + errorCode,
Toast.LENGTH_SHORT).show();
Log.e(MainActivity.class.getSimpleName(), "Ad Failed to Load: " +
errorCode);
}
});
הקבצים הקבועים בשיטת הקריאה החוזרת onAdFailedToLoad()
מתוארים בהפניות API.
איך להתכונן לקראת דרישות הגילוי הנאות של Google Play לגבי איסוף נתונים
במאי 2021, פלטפורמת Google Play הכריזה על הסעיף החדש בנושא אבטחת נתונים. הסעיף הזה משמש כהודעת גילוי נאות שמסופקת על ידי המפתח לגבי איסוף הנתונים, שיתוף הנתונים שנאספו ונוהלי האבטחה באפליקציה.
הדף הזה יעזור לכם להשלים את השלבים הנחוצים כדי לעמוד בדרישות הגילוי הנאות לגבי איסוף נתונים, ביחס לשימוש שלכם ב-AFS Native SDK (רלוונטי גם לשימוש ב-AdSense for Shopping). בדף הזה אפשר למצוא מידע לגבי האופן שבו ערכות ה-SDK שלנו מטפלות בנתונים של משתמשי קצה, וכיצד.
המטרה שלנו היא להתנהל בשקיפות רבה ככל האפשר בכל הנוגע לתמיכה שאנחנו מספקים לכם. עם זאת, כמפתחים של האפליקציה, רק אתם אחראים להחליט איך לענות על השאלות בטופס אבטחת הנתונים של Google Play בנוגע לאיסוף הנתונים של משתמשי הקצה, לשיתוף הנתונים האלה ולנוהלי האבטחה באפליקציה.
איך להשתמש במידע שמפורט בדף הזה
דף זה מפרט את הנתונים של משתמשי הקצה שנאספו באמצעות גרסת ה-SDK האחרונה בלבד.
המדריך בנושא סוגי נתונים של Android יעזור לכם לקבוע איזה סוג נתונים מתאר בצורה הטובה ביותר את הנתונים שנאספים באפליקציה שלכם. כך תוכלו להשלים את השלבים הנחוצים כדי לעמוד בדרישות הגילוי הנאות לגבי איסוף נתונים. בהודעת הגילוי הנאות לגבי איסוף הנתונים, חשוב להביא בחשבון גם את האופן שבו האפליקציה הספציפית משתפת את הנתונים שנאספים ומשתמשת בהם.
סוג נתונים: SDK
חבילות:
com.google.android.gms:play-services-afs-native
com.google.ads.afsn
נתונים שנאספים באופן אוטומטי
ה-AFS SDK אוסף את הנתונים הבאים באופן אוטומטי. כל הנתונים מועברים אל מחוץ למכשיר אל Google לצורך הצגת מודעות, וכל הנתונים מוצפנים בזמן ההעברה. המידע האישי של המשתמש אף פעם לא נאסף, אלא אם נשלח בשאילתת משתמש על ידי האפליקציה.
נתונים | הנתונים האלה נאספים למטרות הבאות... |
---|---|
כתובת IP |
סיכום:
כתובת ה-IP משמשת למעקב אחר הונאות וניצול לרעה, וגם משמשת להערכה של מיקום המשתמש. לאחר מכן, המיקום המשוער משמש כדי להבטיח שהמודעות שמוצגות יכולות לעמוד בתקנות המקומיות, וכדי לספק מודעות שרלוונטיות למיקום הגיאוגרפי המשוער של המשתמש. |
פעילות באפליקציות
|
סיכום:
האפליקציה שלכם מספקת לנו את שאילתת המשתמש כדי שנוכל להחזיר מודעות לרשת החיפוש שרלוונטיות למילת המפתח. אנחנו מודדים צפיות ואינטראקציות עם מודעות שהוחזרו. |
ניתוחים |
סיכום:
ה-SDK מודד את זמן האחזור להצגת מודעות כדי לאפשר הטמעה ומדידה של שיפורי מוצרים. בנוסף, אנחנו שולחים דוחות קריסה/שגיאה ומדי פעם מוסיפים עוד אמצעים כדי להבין איך בעלי תוכן דיגיטלי משתמשים בפונקציות. |
מכשיר או מזהים אחרים |
סיכום:
מזהה המכשיר משמש למעקב אחר הונאות וניצול לרעה, וגם למדידת ביצועי מודעות. |