דרישות מוקדמות
מדריך הטמעה זה מבוסס על ההנחה שאתם מכירים את הנושאים הבאים:
- פרוטוקול של הטמעת מודעות לרשת החיפוש בהתאמה אישית (CSA) ב-AdSense לחיפוש (AFS)
- פיתוח אפליקציות ל-Android
- שיוך SDK של מודעות Google לנייד עבור Android (כיום הוא חלק מ-Google Play Services) אל פרויקט Android Studio. נדרשת גרסה 9.0.0 של Google Play Services.
מחלקות
כדי להציג באפליקציה מודעות AFSMA (שנקראות גם מודעות דינמיות לרשת החיפוש בגובה דינמי), צריך ליישם את הסיווגים הבאים:
- הסיווג הזה עובר בירושה מהכיתה
ViewGroup
של Android, ומציג את מודעות AFSMA. השדהSearchAdView
שולח את הבקשה להצגת מודעה עםDynamicHeightSearchAdRequest
, ומעבד את המודעות שהוחזרו. יש להוסיף אתSearchAdView
לכל אחת מהקבוצות הקיימות של תצוגות מפורטות באפליקציה. - צריך ליצור את
SearchAdView
בהתאם להקשר שבוSearchAdView
פועל, בדרך כלל עםActivity
. - אחרי שיוצרים את השדה
SearchAdView
, צריך להפעיל את השיטהsetAdSize()
עםAdSize.SEARCH
כדי לבקש מודעות AFSMA. ערכים אחרים של 'טיפוסים בני מנייה (enum)' יבקשו מודעות שלא תואמות ל-AdSense לחיפוש (AFS) לאפליקציות לנייד. - צריך לקרוא ל-method
setAdUnitId()
באובייקט הזה עם קוד הנכס שלכם.
DynamicHeightSearchAdRequest.Builder
- המחלקה הזו כוללת את הפרמטרים של הבקשות להצגת מודעות. הפעולה הזו דומה להגדרת פרמטרים באובייקטים של בקשות להצגת מודעות ב-JavaScript (אפשרויות דף, אפשרויות של יחידות) ב-AdSense לחיפוש (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
.
מודעות AFSMA מוגדרות באותו אופן כמו מודעות לרשת החיפוש בהתאמה אישית של AFS.
פרטים נוספים זמינים במאמר 'מודעות בהתאמה אישית לרשת החיפוש' ב-AFS
.
// 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());
אפשרויות מתקדמות
את רוב הפרמטרים של בקשות להצגת מודעות ניתן להגדיר באמצעות שיטות מגדיר
באובייקט DynamicHeightSearchAdRequest.Builder
.
אפשר להגדיר פרמטרים שאין להם שיטה מוגדרת ב-DynamicHeightSearchAdRequest.Builder
באמצעות צמדי מפתח/ערך באמצעות method setAdvancedOptionValue()
.
לקבלת רשימה מלאה של ההגדרות שניתן להגדיר באמצעות השיטה setAdvancedOptionValue()
, קראו את חומר העזר בנושא מודעות מותאמות אישית של AdSense לחיפוש.
כדי שהנכס יוגדר בצורה נכונה, הפרמטר של המפתח צריך להתחיל ב-"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);
}
});
קבועים שנעשה בהם שימוש בשיטת הקריאה החוזרת (callback) של 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 מודד את זמן האחזור של רינדור המודעות כדי לאפשר הטמעה ומדידה של שיפורי מוצרים. אנחנו גם שולחים דוחות קריסה או שגיאות ומדי פעם מוסיפים כלים נוספים לפי הצורך כדי להבין את אופן השימוש של בעלי התוכן הדיגיטלי בפונקציונליות. |
מכשיר או מזהים אחרים |
סיכום:
מזהה המכשיר משמש למעקב אחר תרמיות והתנהלות פוגעת, ולמדידת ביצועי המודעות. |